Tinymath
Tinymath is a tiny arithmetic and function evaluator for simple numbers and arrays. Named properties can be accessed from an optional scope parameter and new functions can be added without rebuilding. Enjoy.
NOTE: Tinymath requires an ES6 or newer environment. You can use it with your build system of choice to run in older environments, or use the ES5 compatible version by importing tinymath/lib/tinymath.es5.js
.
See Function Documentation for details on built-in functions available in Tinymath.
import { evaluate } from tinymath
evaluate('10 + 20');
evaluate('round(3.141592)')
evaluate('foo + 20', {foo: 5});
evaluate('bar + 20', {bar: [1, 2, 3]});
evaluate('bar + baz', {bar: [1, 2, 3], baz: [4, 5, 6]});
evaluate('multiply(bar, baz) / 10', {bar: [1, 2, 3], baz: [4, 5, 6]});
Adding Functions
Functions can be injected, and built in function overwritten, via the 3rd argument to evaluate
:
import { evaluate } from tinymath
evaluate('plustwo(foo)', {foo: 5}, {
plustwo: function(a) {
return a + 2;
}
});
Parsing
You can get to the parsed AST by importing parse
import { parse } from tinymath
parse('1 + random()')
Notes
- Floating point operations have the normal Javascript limitations