# Z Evaluation Engine

Posted by infinitelocrian on July 9, 2010 at 6:04 PM PDT
Project URL

Go see Project Homepage

### Summary

Library for evaluating mathematic expressions and equations

### Community:

PublishedThis project's provides a robust library for evaluating mathematical expressions, functions, and sets of equations.
There are plenty of other mathematical expression parser and evaluation libraries available. The Z Evaluation Engine is unique in some specific ways:
• it allows for function definitions of multiple types, including exact definition (f(x)=abs(x)), piecewise definition (f(x)= if x<0 then abs(x), if x>0 then x), or numeric definition (f(x)=[-1,1;0,0;1,1])
• it allows for multiple equations to be defined as a set and to reference each other as arguments (f(x)=x^2, g(x)=sin(f), h(x,y)=g(y)+f)
• it allows a user-defined domain to be evaluated over any set of expressions that you want (let x=[1,2,3,4,5], y=[1,2,3,4,5] evaluate the equation set over all points in that domain and return a table with columns [x, y, f, g, h], with columns [x, y, g, f(y), h(x,y), h(y,x)], etc)

How to participate:
1) as a user: just by using the library and reporting any bugs
2) as a contributer: emailing patches, bug fixes, documentation, etc to a project developer
3) as a committer: you may be granted write permissions to the code base (if you have contributed multiple patches for this project and meet the required skills for being a project developer)

Prerequisites to becoming a project developer:
1) having Java programming skills (it is after all a Java project)
2) having taken a pre-calculus course (much of the library includes concepts such as functions and domains which won't make any sense to you otherwise)
3) knowledge of how to write unit tests (all new code must be unit-tested)