Skip to content
Mariusz Gromada edited this page Dec 30, 2015 · 13 revisions

mXparser - a super easy, rich and highly flexible mathematical expressions parser (Math Parser) library for JAVA and C# .NET.

[calculator] You want simple calculator?

Expression e = new Expression("2+3");
e.calculate();

👍

[parenthesis] A calculator supporting parenthesis?

Expression e = new Expression("2+(3-5)^2");
e.calculate();

👍

[predefined constants] You care about predefined constants?

Expression e = new Expression("2*pi");
e.calculate();

👍

[your own constants] You need to define your own constants?

Constant tau = new Constant("tau = 2*pi");
Expression e = new Expression("3*tau", tau);
e.calculate();

👍

[built-in functions] You enjoy using many built-in functions?

Expression e = new Expression("sin(2*pi)");
e.calculate();

👍

[not only unary functions] You do not limit yourself to unary functions?

Expression e = new Expression("gcd(2,5,10,30)");
e.calculate();

👍

[arguments] What about user defined arguments - do you like it?

Argument x = new Argument("x = 5");
Expression e = new Expression("sin(x)");
e.calculate();

👍

[dependent arguments] You are thinking of dependent arguments?

Argument x = new Argument("x = 5");
Argument y = new Argument("y = 2*x", x);
Expression e = new Expression("sin(y)", y);
e.calculate();

👍

[logic] You need to apply some logic?

Argument x = new Argument("x = 5");
Expression e = new Expression("if(sin(x) > 5, 1, 0)", x);
e.calculate();

👍

[Boolean algebra] Yes, you are right, there is a support for Boolean algebra!

Expression e = new Expression("5=6");
e.calculate();

👍

[binary relations] And for binary relations as well!

Expression e = new Expression("5 <= 6");
e.calculate();

👍

Yes, mXparser i cool! But this is only the begging, we are just warming up!

[iterated operators] You want to play with iterated operators?

Expression e = new Expression("sum(i, 1, 10, 2*i^2 + pi)");
e.calculate();

👍

[iterated operators] You want to iterate differently by not necessarily whole numbers?

Expression e = new Expression("prod(i, 1, 5, i, 0.5)");
e.calculate();

👍

[iterated operators] You want to have fun with math? I have a special gift for you - lets approximate sin(x) by using sigma summation and Taylor series definition!

Argument x = new Argument("x = pi/2");
Expression e20 = new Expression("sum(n,0,10,(-1)^n*(x^(2*n+1))/(2*n+1)!)", x);
e.calculate();

👍

[calculus] You still want more fun with calculus operations? Great! There is a support for numerical differentiation!

Argument x = new Argument("x = pi/2");
Expression e = new Expression("cos(x)-der(sin(x), x)", x);
e.calculate();

👍

[calculus] And for definite integrals as well!

Expression e = new Expression("2*int(sqrt(1-x^2), x, -1, 1)");
e.calculate();

👍