UNPKG

3.72 kBMarkdownView Raw
1<img src="https://raw.githubusercontent.com/davidedc/Algebrite/941de5515ec57baee3f5d2bacbd4db2ee382c461/readme-images/algebrite-logo-for-readme.png" width="150px" alt="algebrite header"/>
2
3[![npm version](https://badge.fury.io/js/algebrite.svg)](https://badge.fury.io/js/algebrite)
4
5Algebrite is a Javascript library for symbolic mathematics (technically, CoffeeScript) designed to be comprehensible and easily extensible.
6
7
8```js
9var Algebrite = require('algebrite')
10
11Algebrite.run('x + x') // => "2 x"
12
13Algebrite.factor('10!').toString() // => "2^8 3^4 5^2 7"
14
15Algebrite.eval('integral(x^2)').toString() // => "1/3 x^3"
16
17// composing...
18Algebrite.integral(Algebrite.eval('x')).toString() // => "1/2 x^2"
19```
20
21# Features
22
23Algebrite 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!
24
25# Examples and manual
26
27Please refer to [http://algebrite.org/](http://algebrite.org/)
28
29All 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.
30
31The cons objects have a `toString` method which converts it into a pretty-print notation.
32
33# How to build
34
351. install npm on your system
362. ```npm install```
373. ```npm run build```
38
39# How to test
40
41```
42npm test
43```
44
45# Contribute
46please take a look at the [contributing](https://github.com/davidedc/Algebrite/blob/master/contributing.md) file.
47
48# References
49
50Algebrite starts as an adaptation of [the EigenMath CAS by George Weigt](http://eigenmath.sourceforge.net/Eigenmath.pdf). Also you might want to check another fork of EigenMath: [SMIB by Philippe Billet](http://smib.sourceforge.net/).
51
52Another CAS of similar nature is [SymPy](http://www.sympy.org/en/index.html) made in Python.
53
54Three other Javascript CAS are
55
56* [javascript-cas by Anthony Foster](https://github.com/aantthony/javascript-cas) supporting "differentiation, complex numbers, sums, vectors (dot products, cross products, gradient/curl etc)"
57* [Coffeequate by Matthew Alger](http://coffeequate.readthedocs.org/) supporting "quadratic and linear equations, simplification of most algebraic expressions, uncertainties propagation, substitutions, variables, constants, and symbolic constants".
58* [Algebra.js by Nicole White](http://algebra.js.org) which among other things can build and solve equations via a "chainable" API.
59
60
61# The MIT License (MIT)
62
63Copyright © `2016` `all algebrite contributors`
64
65Permission is hereby granted, free of charge, to any person
66obtaining a copy of this software and associated documentation
67files (the “Software”), to deal in the Software without
68restriction, including without limitation the rights to use,
69copy, modify, merge, publish, distribute, sublicense, and/or sell
70copies of the Software, and to permit persons to whom the
71Software is furnished to do so, subject to the following
72conditions:
73
74The above copyright notice and this permission notice shall be
75included in all copies or substantial portions of the Software.
76
77THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
78EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
79OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
80NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
81HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
82WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
83FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
84OTHER DEALINGS IN THE SOFTWARE.
85
\No newline at end of file