Skip to content

Instantly share code, notes, and snippets.

@dharmatech
Last active August 29, 2015 14:24
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dharmatech/598677f3068e048699cc to your computer and use it in GitHub Desktop.
Save dharmatech/598677f3068e048699cc to your computer and use it in GitHub Desktop.

Library that implements automatic simplification of algebraic expressions in C#.

To get an idea of the kinds of expressions it handles, see the tests in this file.

The automatic simplification algorithm comes from the book "Computer Algebra and Symbolic Computation: Mathematical Methods" by Joel S. Cohen.

GiNaC and SymbolicC++ are of course very inspirational.

The projects "PSE 5E ..." are examples and problems from the textbook "Physics for Scientists and Engineers, 5th Edition" by Serway and Jewett.

Here's a walk-through of solving a physics problem.

A slightly more complex walk-through.

This paper by members of the GiNaC team gets into some reasons to consider using general purpose programming languages for computer algebra. Here's a quote:

The traditional split into a low level language and a high level language in the design of computer algebra systems may become obsolete with the advent of more versatile computer languages.

References

Computer Algebra and Symbolic Computation: Elementary Algorithms by Joel S. Cohen

Computer Algebra and Symbolic Computation: Mathematical Methods by Joel S. Cohen

Other systems

GiNaC (C++)

SymbolicC++ (C++)

ComputerAlgebra (C++)

Math.NET Symbolics (F#)

SymPy (Python)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment