Algebrite

Computer Algebra System in Javascript (Coffeescript)

Github星跟蹤圖

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.

主要指標

概覽
名稱與所有者davidedc/Algebrite
主編程語言TypeScript
編程語言CoffeeScript (語言數: 6)
平台
許可證MIT License
所有者活动
創建於2016-03-23 18:39:26
推送於2023-06-23 20:38:54
最后一次提交2022-03-21 21:27:59
發布數14
最新版本名稱v1.4.0 (發布於 )
第一版名稱v0.4.3 (發布於 )
用户参与
星數1k
關注者數36
派生數61
提交數0.9k
已啟用問題?
問題數140
打開的問題數84
拉請求數27
打開的拉請求數4
關閉的拉請求數4
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?