Mathematical expression solver / Reverse Polish Notation calculator for NodeJS
Features
- Solve infix-notated mathematical expressions
- Solve RPN expressions
- Converts infix-notated expressions to RPN
- Tokenize infix-notated expressions
- From string to array
- Able to handle negative numbers
- Spacing independent
With NPM:
npm install --save @enigmaoffline/node-exp-solver
const Solver = require('@enigmaoffline/node-exp-solver');
// Tokenization
console.log(Solver.tokenize('-1+2*(3-4)/5+(-6+-7)'));
// => [ '-1', '+', '2', '*', '(', '3', '-', '4', ')', '/', '5', '+', '(', '-6', '+', '-7', ')' ]
console.log(Solver.tokenize('1*2^3+3'));
// => [ '1', '*', '2', '^', '3', '+', '3' ]
// Infix to RPN
console.log(Solver.toRPN(Solver.tokenize('1+2*3')));
// => [ '1', '2', '3', '*', '+' ]
// Basic Solve
console.log(Solver.solve(Solver.tokenize('1+2*3')));
// => 7
// Solve RPN
console.log(Solver.solveRPN(Solver.toRPN(Solver.tokenize('-2+3^2+1'))));
// => 8
- Ability to handle Min / Max functions
- Ability to handle trig functions
- Ability to handle log functions