MtxVec expression evaluator can be used to evaluate individual expressions or it can evaluate a list of expressions (a script).
MtxVec expression evaluator can be used to evaluate individual expressions or it can evaluate a list of expressions (a script). The parser compiles the expression and types can not be changed at run time. The compiled code can then be executed at top speed with:
- Support for real and complex numbers
- Support for vectors and matrices
- Many matrix operations are multithreaded
- Most built-in vectorized functions are optimized for SSE2/SSE3/SSE4
- Performance of vectorized expression evaluation is 10 to 20x higher than scalar expression parsers.
- It can solve systems of linear equations, do QR or LQ decompositions.
- Operator support for per element and matrix/vector operations ( *., /., *, /,\)
- Complete set of standard math routines (Log, Power, Sin,...)
- Very fast also when evaluating not vectorized expressions
- Constant expressions evaluated during the parsing stage
- You can add user defined variables, constants, functions and operators
- Custom functions can be object methods.
- Functions can be overloaded allowing same name but different param count.
- Vectors and matrices can be accessed by elements a(i) or m(r,c).
- Function parameters and results can be string types.
- Colon operator allows selection of ranges of rows and colums m(:), m(1,:),v(2:3)
- Assign operator supports colon operator: m(2:3) = 4
- Colon operator supports step <> 1 and allows: m(10:-1:3) = 4
- Vectors and matrices can return elements from conditions: a = m(m > 4)
- Evaluation of a list of expressions.
Scripting currently supports only evaluation of a list of expressions, but this can already be very usefull when giving your customers an option to customize the processing of your application. Here is an example of the scripting interface included with the MtxVec demo application: