Computer Algebra System in Javascript (Typescript)
See the code
Algebrite is a Javascript (Typescript) library for symbolic mathematics 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"
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!
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.
For a build to run tests:
npm installbazelisk build algebrite(bazelisk is the launcher for the bazel build system). The bazel build system tends to be smart and cache things. You can do a thorough clean by:
bazelisk clean; rm -rf ./dist/*
The so called "npm build" does a build for npm and browser:
npm install (if you didn't run this already)bazelisk build npmindex.htmlFor full tests:
bazelisk test :all
or, if caches get in the way:
bazelisk test :all --cache_test_results=no
please take a look at the contributing file.
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
Overall
Maintained
Code review
npm
Latest release
Releases this year
97 followers · starred Dec 2020
1,054 followers · starred Apr 2016
166 followers · starred Apr 2016
55 followers · starred Feb 2026
Computer Algebra System in Javascript (Typescript)
See the code
Algebrite is a Javascript (Typescript) library for symbolic mathematics 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"
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!
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.
For a build to run tests:
npm installbazelisk build algebrite(bazelisk is the launcher for the bazel build system). The bazel build system tends to be smart and cache things. You can do a thorough clean by:
bazelisk clean; rm -rf ./dist/*
The so called "npm build" does a build for npm and browser:
npm install (if you didn't run this already)bazelisk build npmindex.htmlFor full tests:
bazelisk test :all
or, if caches get in the way:
bazelisk test :all --cache_test_results=no
please take a look at the contributing file.
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
Overall
Maintained
Code review
npm
Latest release
Releases this year
97 followers · starred Dec 2020
1,054 followers · starred Apr 2016
166 followers · starred Apr 2016
55 followers · starred Feb 2026