Skip to content
A simplistic computer algebra system
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Cas
Main.hs
README.md

README.md

cas

A computer algebra system in Haskell. At the time of writing this it consists of only 85 lines of code.

Example

As an example, some expansion rules are defined inside the library. Using these, the expression tan(X + Y) can be expanded into (((sin(X) * cos(Y)) + (cos(X) * sin(Y))) / ((cos(X) * cos(Y)) - (sin(X) * sin(Y)))) using the built-in trigonometry expansion rules.

What needs doing?

  • Write more transformation rules.
    • Basic axioms like a + b = b + a, a + 0 = a.
    • More trigonemtry identities.
    • Loads of other things.
    • Might be a good idea to transform a - b into a + (-b) and similarly a / b into a * (1/b).
  • Simplification of expressions.
    • Might be implemented as another set of transformation rules, constructed from some designed to simplify but also the inverses of some expansion rule sets.
  • Parsing of expressions, so things can be entered much more easily.
  • A REPL.
You can’t perform that action at this time.