MathLib - Extending the core functionality
By default, JBEE only knows it's operators and a basic set of safe to call functions (safe to call in the sense that they may fail, but will never compute a result with precision loss). The core functionality can be enhanced by either implementing the
MathLib interface or extending the
DefaultMathLib class and passing an instance to the
Evaluator like this:
MathLib myLib = new MyLib(); DecimalFormat df = (DecimalFormat)DecimalFormat.getInstance(); Evaluator e = new Evaluator(df, myLib);
MathLib interface is a very powerful concept, allowing for hooking into nearly every part of the parsing process. Care should be taken when implementing it. In most cases (such as when only new functions are needed), it is usually a better idea to extend the
DefaultMathLib interface instead.