Base Framework
|
Expression evaluator. More...
#include <base/math/ExpressionParser.h>
Inherits Object.
Classes | |
class | BinaryOperator |
class | Function |
struct | Node |
class | Operation |
class | UnaryOperator |
Public Types | |
enum | NodeType { VALUE, VARIABLE, CONSTANT, BUILTIN, FUNCTION, UNKNOWN } |
enum | Glue { LEFT, RIGHT } |
enum | Builtin { PLUS = 0, MINUS = 1, ADD = 2, SUBTRACT = 3, MULTIPLY = 4, DIVIDE = 5, POWER = 6, PARENTHESIS = 7 } |
Public Member Functions | |
virtual double | onConstant (unsigned int constant) const |
virtual double | onFunction (unsigned int function, const double *value) const |
ExpressionEvaluator () noexcept | |
const List< Node > & | getExpression () const noexcept |
void | setExpression (const List< Node > &nodes) noexcept |
const List< String > & | getVariables () const noexcept |
void | setVariables (const List< String > &variables) noexcept |
double | evaluate () const |
double | evaluate (const double *variables) const |
void | evaluate (const double *variables, double *results, unsigned int count) const |
Static Public Member Functions | |
static Node | makeValueNode (double value) noexcept |
static Node | makeConstantNode (unsigned int id) noexcept |
static Node | makeVariableNode (unsigned int id) noexcept |
static Node | makeFunctionNode (unsigned int id, unsigned int arguments) noexcept |
static Node | makeUnknownNode (unsigned int id) noexcept |
static Node | makeNodeFromOperation (Operation operation) noexcept |
Expression evaluator.
Arithmetic expression evaluator.
|
noexcept |
Initializes expression evaluator.
double ExpressionEvaluator::evaluate | ( | ) | const |
Evaluates the constant expression once.
double ExpressionEvaluator::evaluate | ( | const double * | variables | ) | const |
Evaluates the formula once.
variables | The array containing the values of the variables (e.g. x0, y0, z0). |
void ExpressionEvaluator::evaluate | ( | const double * | variables, |
double * | results, | ||
unsigned int | count | ||
) | const |
Evaluates the formula several times.
variable | The values of the variables (e.g. x0, y0, z0, x1, y1, z1, x2, ...). |
results | The array to store the results in. (e.g. res0, res1, res3, ...). |
count | The desired number of evaluations. |
Returns the expression.
Returns the names of variables of the formula in the order expected by the evaluate methods.
Sets the expression.