algebrite

Computer Algebra System in Coffeescript

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
algebrite
943881.4.03 years ago8 years agoMinified + gzip package size for algebrite in KB

Readme

algebrite header
npm version
Algebrite is a Javascript library for symbolic mathematics (technically, CoffeeScript) designed to be comprehensible and easily extensible.
var Algebrite = require('algebrite')

Algebrite.run('x + x') // => "2 x"

Algebrite.factor('10!').toString() // => "2^8 3^4 5^2 7"

Algebrite.eval('integral(x^2)').toString() // => "1/3 x^3"

// composing...
Algebrite.integral(Algebrite.eval('x')).toString() // => "1/2 x^2"
Features
Algebrite supports: arbitrary-precision arithmetic, complex quantities, simplification, expansion , substitution, symbolic and numeric roots, units of measurement, matrices, derivatives and gradients, tensors, integrals, multi-integrals, computing integrals and much more!
Examples and manual
Please refer to http://algebrite.org/
All the built-in methods in Algebrite are exposed through a javascript interface. Strings are automatically parsed as expressions, numbers are converted into the appropriate representation, and the internal cons objects are returned.
The cons objects have a toString method which converts it into a pretty-print notation.
How to build
For node use:
  1. make sure npm is installed
  2. ``npm install`
  3. `npm run build``

To debug things, better use the debugger from Chrome, so build for the browser like so:
  1. make sure npm is installed
  2. make sure browserify is installed
  3. ``npm install`
  4. `npm run build-for-browser`
  5. open `index.html``
How to test
For full tests:
npm test

For the subset of tests in run-micro-tests.coffee:
npm run microtest
Contribute
please take a look at the contributing file.
References
Algebrite starts as an adaptation of the EigenMath CAS by George Weigt. Also you might want to check another fork of EigenMath: SMIB by Philippe Billet.
Another CAS of similar nature is SymPy made in Python.
Three other Javascript CAS are
  • javascript-cas by Anthony Foster supporting "differentiation, complex numbers, sums, vectors (dot products, cross products, gradient/curl etc)"
  • Coffeequate by Matthew Alger supporting "quadratic and linear equations, simplification of most algebraic expressions, uncertainties propagation, substitutions, variables, constants, and symbolic constants".
  • Algebra.js by Nicole White which among other things can build and solve equations via a "chainable" API.