TO SUPPORT MY WORK, ORDER A COMMERCIAL LICENSE
THANK YOU!
The tutorial consists of more than 200 live examples from 50 sections given separately for JAVA, C# and C++. Each of the examples can be copied and run on your own environment. In addition, mXparser provides an extensive collection of over 500 built-in math functions, expressions and symbols. Familiarize yourself with the scope and the syntax. Live testing is the best way to learn. Good luck! 🙂
Tutorial Math Collection API spec Download
Below is the code for JAVA, C# (the code for C# is almost identical) and C++. To copy the code, double-click inside the frame.
Calculation is a multi-step process and the CalculationStepsRegister class provides a register to store all the steps as a collection of CalculationStepRecord, also done in a recursive way.
Case 1: Simple Expression
Java/C# code
// JAVA: import org.mariuszgromada.math.mxparser.*;
// C#: using org.mariuszgromada.math.mxparser;
// ...
Expression e = new Expression("2*(3+4)+5");
CalcStepsRegister calcStepsRegister = new CalcStepsRegister();
mXparser.consolePrintln(e.getExpressionString() + " = " + e.calculate(calcStepsRegister));
mXparser.consolePrintln("----");
/* Printing content of all the calculation steps */
for (CalcStepRecord step : calcStepsRegister.calcStepRecords)
mXparser.consolePrintln(step.content);
C++ code
#include "org/mariuszgromada/math/mxparser.hpp"
// ...
ExpressionPtr e = new_Expression("2*(3+4)+5");
CalcStepsRegisterPtr calcStepsRegister = new_CalcStepsRegister();
mXparser::consolePrintln(e->getExpressionString() + " = " + e->calculate(calcStepsRegister));
mXparser::consolePrintln("----");
/* Printing content of all the calculation steps */
for (const CalcStepRecordPtr &step : *calcStepsRegister->calcStepRecords)
mXparser::consolePrintln(step->content);
Code result
[mXparser-v.5.2.1] 2*(3+4)+5 = 19.0
[mXparser-v.5.2.1] ----
[mXparser-v.5.2.1] 2*(3+4)+5
[mXparser-v.5.2.1] 2*(7)+5
[mXparser-v.5.2.1] 14+5
[mXparser-v.5.2.1] 19
Case 2: Dependent User Argument
Java/C# code
// JAVA: import org.mariuszgromada.math.mxparser.*;
// C#: using org.mariuszgromada.math.mxparser;
// ...
Argument x = new Argument("x", "2*(3+4)+5");
CalcStepsRegister calcStepsRegister = new CalcStepsRegister();
mXparser.consolePrintln(x.getArgumentName() + " = " + x.getArgumentValue(calcStepsRegister));
mXparser.consolePrintln("----");
/* Printing a bit more just than the steps content */
mXparser.consolePrintln("calcStepsRegister.argumentNameStart = " + calcStepsRegister.argumentNameStart);
mXparser.consolePrintln("calcStepsRegister.expressionStringStart = " + calcStepsRegister.expressionStringStart);
mXparser.consolePrintln("calcStepsRegister.result = " + calcStepsRegister.result);
mXparser.consolePrintln("calcStepsRegister.computingTime = " + calcStepsRegister.computingTime);
mXparser.consolePrintln("----");
for (CalcStepRecord step : calcStepsRegister.calcStepRecords)
mXparser.consolePrintln(step.numberGroupWithin + ". " + step.content);
C++ code
#include "org/mariuszgromada/math/mxparser.hpp"
// ...
ArgumentPtr x = new_Argument("x", "2*(3+4)+5");
CalcStepsRegisterPtr calcStepsRegister = new_CalcStepsRegister();
mXparser::consolePrintln(x->getArgumentName() + " = " + x->getArgumentValue(calcStepsRegister));
mXparser::consolePrintln("----");
/* Printing a bit more just than the steps content */
mXparser::consolePrintln("calcStepsRegister.argumentNameStart = " + calcStepsRegister->argumentNameStart);
mXparser::consolePrintln("calcStepsRegister.expressionStringStart = " + calcStepsRegister->expressionStringStart);
mXparser_consolePrintln("calcStepsRegister.result = " + calcStepsRegister->result);
mXparser_consolePrintln("calcStepsRegister.computingTime = " + calcStepsRegister->computingTime);
mXparser::consolePrintln("----");
for (const CalcStepRecordPtr &step : *calcStepsRegister->calcStepRecords)
mXparser_consolePrintln(step->numberGroupWithin + ". " + step->content);
Code result
[mXparser-v.5.2.1] x = 19.0
[mXparser-v.5.2.1] ----
[mXparser-v.5.2.1] calcStepsRegister.argumentNameStart = x
[mXparser-v.5.2.1] calcStepsRegister.expressionStringStart = 2*(3+4)+5
[mXparser-v.5.2.1] calcStepsRegister.result = 19.0
[mXparser-v.5.2.1] calcStepsRegister.computingTime = 0.083
[mXparser-v.5.2.1] ----
[mXparser-v.5.2.1] 1. 2*(3+4)+5
[mXparser-v.5.2.1] 2. 2*(7)+5
[mXparser-v.5.2.1] 3. 14+5
[mXparser-v.5.2.1] 4. 19
Case 3: User Function
Java/C# code
// JAVA: import org.mariuszgromada.math.mxparser.*;
// C#: using org.mariuszgromada.math.mxparser;
// ...
Function f = new Function("f(x) = x*(2*(3+4)+5)");
CalcStepsRegister calcStepsRegister = new CalcStepsRegister();
f.setArgumentValue(0, 2);
mXparser.consolePrintln(f.getFunctionName() + " = " + f.calculate(calcStepsRegister));
mXparser.consolePrintln("----");
/* Printing a bit more just than the steps content - adding step type */
mXparser.consolePrintln("calcStepsRegister.functionNameStart = " + calcStepsRegister.functionNameStart);
mXparser.consolePrintln("calcStepsRegister.expressionStringStart = " + calcStepsRegister.expressionStringStart);
mXparser.consolePrintln("calcStepsRegister.result = " + calcStepsRegister.result);
mXparser.consolePrintln("calcStepsRegister.computingTime = " + calcStepsRegister.computingTime);
mXparser.consolePrintln("----");
for (CalcStepRecord step : calcStepsRegister.calcStepRecords)
mXparser.consolePrintln(step.type + " " + step.numberGroupWithin + ". " + step.content);
C++ code
#include "org/mariuszgromada/math/mxparser.hpp"
// ...
FunctionPtr f = new_Function("f(x) = x*(2*(3+4)+5)");
CalcStepsRegisterPtr calcStepsRegister = new_CalcStepsRegister();
f->setArgumentValue(0, 2);
mXparser::consolePrintln(f->getFunctionName() + " = " + f->calculate(calcStepsRegister));
mXparser::consolePrintln("----");
/* Printing a bit more just than the steps content - adding step type */
mXparser::consolePrintln("calcStepsRegister.functionNameStart = " + calcStepsRegister->functionNameStart);
mXparser::consolePrintln("calcStepsRegister.expressionStringStart = " + calcStepsRegister->expressionStringStart);
mXparser_consolePrintln("calcStepsRegister.result = " + calcStepsRegister->result);
mXparser_consolePrintln("calcStepsRegister.computingTime = " + calcStepsRegister->computingTime);
mXparser::consolePrintln("----");
for (const CalcStepRecordPtr &step : *calcStepsRegister->calcStepRecords)
mXparser::consolePrintln(CalcStepRecord::stepTypeToString(step->type) + " " + step->numberGroupWithin + ". " + step->content);
Code result
[mXparser-v.5.2.1] f = 38.0
[mXparser-v.5.2.1] ----
[mXparser-v.5.2.1] calcStepsRegister.functionNameStart = f
[mXparser-v.5.2.1] calcStepsRegister.expressionStringStart = x*(2*(3+4)+5)
[mXparser-v.5.2.1] calcStepsRegister.result = 38.0
[mXparser-v.5.2.1] calcStepsRegister.computingTime = 0.106
[mXparser-v.5.2.1] ----
[mXparser-v.5.2.1] Function 1. x*(2*(3+4)+5)
[mXparser-v.5.2.1] Function 2. 2*(2*(7)+5)
[mXparser-v.5.2.1] Function 3. 2*(14+5)
[mXparser-v.5.2.1] Function 4. 2*(19)
[mXparser-v.5.2.1] Function 5. 38
Case 4: Expression referencing User Argument and User Function
Java/C# code
// JAVA: import org.mariuszgromada.math.mxparser.*;
// C#: using org.mariuszgromada.math.mxparser;
// ...
public static String repeatString(String str, int times) {
StringBuilder result = new StringBuilder();
for (int i = 0; i < times; i++)
result.append(str);
return result.toString();
}
// ...
Argument x = new Argument("x", "2rList(2,1,3,5,4)");
Argument y = new Argument("y = 2*x", x);
Argument z = new Argument("z = 3*y/x", x, y);
Function f = new Function("f(a,b) = a*b");
CalcStepsRegister calcStepsRegister = new CalcStepsRegister();
Expression e = new Expression("f(x,y)+z+(x*y)/z", x, y, z, f);
mXparser.consolePrintln(e.getExpressionString() + " = " + e.calculate(calcStepsRegister));
mXparser.consolePrintln("----");
/* Printing a bit more just than the steps content - adding step type */
for (CalcStepRecord step : calcStepsRegister.calcStepRecords)
mXparser.consolePrintln(step.numberGroup + "." + step.numberGroupWithin + " " + repeatString(" ", step.numberGroup - 1) + step.type + " " + step.content);
mXparser.consolePrintln("----");
/* Using built-in console print of steps register */
calcStepsRegister.consolePrint();
C++ code
#include "org/mariuszgromada/math/mxparser.hpp"
// ...
ArgumentPtr x = new_Argument("x", "2rList(2,1,3,5,4)");
ArgumentPtr y = new_Argument("y = 2*x", x);
ArgumentPtr z = new_Argument("z = 3*y/x", x, y);
FunctionPtr f = new_Function("f(a,b) = a*b");
CalcStepsRegisterPtr calcStepsRegister = new_CalcStepsRegister();
ExpressionPtr e = new_Expression("f(x,y)+z+(x*y)/z", x, y, z, f);
mXparser::consolePrintln(e->getExpressionString() + " = " + e->calculate(calcStepsRegister));
mXparser::consolePrintln("----");
/* Printing a bit more just than the steps content - adding step type */
for (const CalcStepRecordPtr &step : *calcStepsRegister->calcStepRecords)
mXparser_consolePrintln(step->numberGroup + "." + step->numberGroupWithin + " " + StringUtils::repeatString(S(" "), step->numberGroup - 1) + CalcStepRecord::stepTypeToString(step->type) + " " + step->content);
mXparser::consolePrintln("----");
/* Using built-in console print of steps register */
calcStepsRegister->consolePrint();
Code result
[mXparser-v.5.2.1] f(x,y)+z+(x*y)/z = 134.0
[mXparser-v.5.2.1] ----
[mXparser-v.5.2.1] 1.1 Expression f(x,y)+z+(x*y)/z
[mXparser-v.5.2.1] 2.1 Argument 2*rList(2,1,3,5,4)
[mXparser-v.5.2.1] 2.2 Argument 2*5
[mXparser-v.5.2.1] 2.3 Argument 10
[mXparser-v.5.2.1] 1.2 Expression f(10,y)+z+(x*y)/z
[mXparser-v.5.2.1] 2.1 Argument 2*x
[mXparser-v.5.2.1] 3.1 Argument 2*rList(2,1,3,5,4)
[mXparser-v.5.2.1] 3.2 Argument 2*3
[mXparser-v.5.2.1] 3.3 Argument 6
[mXparser-v.5.2.1] 2.2 Argument 2*6
[mXparser-v.5.2.1] 2.3 Argument 12
[mXparser-v.5.2.1] 1.3 Expression f(10,12)+z+(x*y)/z
[mXparser-v.5.2.1] 2.1 Argument 3*y/x
[mXparser-v.5.2.1] 3.1 Argument 2*x
[mXparser-v.5.2.1] 4.1 Argument 2*rList(2,1,3,5,4)
[mXparser-v.5.2.1] 4.2 Argument 2*5
[mXparser-v.5.2.1] 4.3 Argument 10
[mXparser-v.5.2.1] 3.2 Argument 2*10
[mXparser-v.5.2.1] 3.3 Argument 20
[mXparser-v.5.2.1] 2.2 Argument 3*20/x
[mXparser-v.5.2.1] 3.1 Argument 2*rList(2,1,3,5,4)
[mXparser-v.5.2.1] 3.2 Argument 2*5
[mXparser-v.5.2.1] 3.3 Argument 10
[mXparser-v.5.2.1] 2.3 Argument 3*20/10
[mXparser-v.5.2.1] 2.4 Argument 60/10
[mXparser-v.5.2.1] 2.5 Argument 6
[mXparser-v.5.2.1] 1.4 Expression f(10,12)+6+(x*y)/z
[mXparser-v.5.2.1] 2.1 Argument 2*rList(2,1,3,5,4)
[mXparser-v.5.2.1] 2.2 Argument 2*2
[mXparser-v.5.2.1] 2.3 Argument 4
[mXparser-v.5.2.1] 1.5 Expression f(10,12)+6+(4*y)/z
[mXparser-v.5.2.1] 2.1 Argument 2*x
[mXparser-v.5.2.1] 3.1 Argument 2*rList(2,1,3,5,4)
[mXparser-v.5.2.1] 3.2 Argument 2*2
[mXparser-v.5.2.1] 3.3 Argument 4
[mXparser-v.5.2.1] 2.2 Argument 2*4
[mXparser-v.5.2.1] 2.3 Argument 8
[mXparser-v.5.2.1] 1.6 Expression f(10,12)+6+(4*8)/z
[mXparser-v.5.2.1] 2.1 Argument 3*y/x
[mXparser-v.5.2.1] 3.1 Argument 2*x
[mXparser-v.5.2.1] 4.1 Argument 2*rList(2,1,3,5,4)
[mXparser-v.5.2.1] 4.2 Argument 2*2
[mXparser-v.5.2.1] 4.3 Argument 4
[mXparser-v.5.2.1] 3.2 Argument 2*4
[mXparser-v.5.2.1] 3.3 Argument 8
[mXparser-v.5.2.1] 2.2 Argument 3*8/x
[mXparser-v.5.2.1] 3.1 Argument 2*rList(2,1,3,5,4)
[mXparser-v.5.2.1] 3.2 Argument 2*3
[mXparser-v.5.2.1] 3.3 Argument 6
[mXparser-v.5.2.1] 2.3 Argument 3*8/6
[mXparser-v.5.2.1] 2.4 Argument 24/6
[mXparser-v.5.2.1] 2.5 Argument 4
[mXparser-v.5.2.1] 1.7 Expression f(10,12)+6+(4*8)/4
[mXparser-v.5.2.1] 2.1 Function a*b
[mXparser-v.5.2.1] 2.2 Function 120
[mXparser-v.5.2.1] 1.8 Expression 120+6+(4*8)/4
[mXparser-v.5.2.1] 1.9 Expression 120+6+(32)/4
[mXparser-v.5.2.1] 1.10 Expression 120+6+8
[mXparser-v.5.2.1] 1.11 Expression 126+8
[mXparser-v.5.2.1] 1.12 Expression 134
[mXparser-v.5.2.1] ----
[mXparser-v.5.2.1] CalcStepsRegister for Expression f(x,y)+z+(x*y)/z, result = 134.0
[mXparser-v.5.2.1] gr = 1, nr = 1, first = true, last = false, Type = Expression, descr = f(x,y)+z+(x*y)/z, step = f(x,y)+z+(x*y)/z
[mXparser-v.5.2.1] gr = 2, nr = 1, first = true, last = false, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 2*rList(2,1,3,5,4)
[mXparser-v.5.2.1] gr = 2, nr = 2, first = false, last = false, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 2*5
[mXparser-v.5.2.1] gr = 2, nr = 3, first = false, last = true, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 10
[mXparser-v.5.2.1] gr = 1, nr = 2, first = false, last = false, Type = Expression, descr = f(x,y)+z+(x*y)/z, step = f(10,y)+z+(x*y)/z
[mXparser-v.5.2.1] gr = 2, nr = 1, first = true, last = false, Type = Argument, descr = y = 2*x, step = 2*x
[mXparser-v.5.2.1] gr = 3, nr = 1, first = true, last = false, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 2*rList(2,1,3,5,4)
[mXparser-v.5.2.1] gr = 3, nr = 2, first = false, last = false, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 2*3
[mXparser-v.5.2.1] gr = 3, nr = 3, first = false, last = true, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 6
[mXparser-v.5.2.1] gr = 2, nr = 2, first = false, last = false, Type = Argument, descr = y = 2*x, step = 2*6
[mXparser-v.5.2.1] gr = 2, nr = 3, first = false, last = true, Type = Argument, descr = y = 2*x, step = 12
[mXparser-v.5.2.1] gr = 1, nr = 3, first = false, last = false, Type = Expression, descr = f(x,y)+z+(x*y)/z, step = f(10,12)+z+(x*y)/z
[mXparser-v.5.2.1] gr = 2, nr = 1, first = true, last = false, Type = Argument, descr = z = 3*y/x, step = 3*y/x
[mXparser-v.5.2.1] gr = 3, nr = 1, first = true, last = false, Type = Argument, descr = y = 2*x, step = 2*x
[mXparser-v.5.2.1] gr = 4, nr = 1, first = true, last = false, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 2*rList(2,1,3,5,4)
[mXparser-v.5.2.1] gr = 4, nr = 2, first = false, last = false, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 2*5
[mXparser-v.5.2.1] gr = 4, nr = 3, first = false, last = true, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 10
[mXparser-v.5.2.1] gr = 3, nr = 2, first = false, last = false, Type = Argument, descr = y = 2*x, step = 2*10
[mXparser-v.5.2.1] gr = 3, nr = 3, first = false, last = true, Type = Argument, descr = y = 2*x, step = 20
[mXparser-v.5.2.1] gr = 2, nr = 2, first = false, last = false, Type = Argument, descr = z = 3*y/x, step = 3*20/x
[mXparser-v.5.2.1] gr = 3, nr = 1, first = true, last = false, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 2*rList(2,1,3,5,4)
[mXparser-v.5.2.1] gr = 3, nr = 2, first = false, last = false, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 2*5
[mXparser-v.5.2.1] gr = 3, nr = 3, first = false, last = true, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 10
[mXparser-v.5.2.1] gr = 2, nr = 3, first = false, last = false, Type = Argument, descr = z = 3*y/x, step = 3*20/10
[mXparser-v.5.2.1] gr = 2, nr = 4, first = false, last = false, Type = Argument, descr = z = 3*y/x, step = 60/10
[mXparser-v.5.2.1] gr = 2, nr = 5, first = false, last = true, Type = Argument, descr = z = 3*y/x, step = 6
[mXparser-v.5.2.1] gr = 1, nr = 4, first = false, last = false, Type = Expression, descr = f(x,y)+z+(x*y)/z, step = f(10,12)+6+(x*y)/z
[mXparser-v.5.2.1] gr = 2, nr = 1, first = true, last = false, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 2*rList(2,1,3,5,4)
[mXparser-v.5.2.1] gr = 2, nr = 2, first = false, last = false, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 2*2
[mXparser-v.5.2.1] gr = 2, nr = 3, first = false, last = true, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 4
[mXparser-v.5.2.1] gr = 1, nr = 5, first = false, last = false, Type = Expression, descr = f(x,y)+z+(x*y)/z, step = f(10,12)+6+(4*y)/z
[mXparser-v.5.2.1] gr = 2, nr = 1, first = true, last = false, Type = Argument, descr = y = 2*x, step = 2*x
[mXparser-v.5.2.1] gr = 3, nr = 1, first = true, last = false, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 2*rList(2,1,3,5,4)
[mXparser-v.5.2.1] gr = 3, nr = 2, first = false, last = false, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 2*2
[mXparser-v.5.2.1] gr = 3, nr = 3, first = false, last = true, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 4
[mXparser-v.5.2.1] gr = 2, nr = 2, first = false, last = false, Type = Argument, descr = y = 2*x, step = 2*4
[mXparser-v.5.2.1] gr = 2, nr = 3, first = false, last = true, Type = Argument, descr = y = 2*x, step = 8
[mXparser-v.5.2.1] gr = 1, nr = 6, first = false, last = false, Type = Expression, descr = f(x,y)+z+(x*y)/z, step = f(10,12)+6+(4*8)/z
[mXparser-v.5.2.1] gr = 2, nr = 1, first = true, last = false, Type = Argument, descr = z = 3*y/x, step = 3*y/x
[mXparser-v.5.2.1] gr = 3, nr = 1, first = true, last = false, Type = Argument, descr = y = 2*x, step = 2*x
[mXparser-v.5.2.1] gr = 4, nr = 1, first = true, last = false, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 2*rList(2,1,3,5,4)
[mXparser-v.5.2.1] gr = 4, nr = 2, first = false, last = false, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 2*2
[mXparser-v.5.2.1] gr = 4, nr = 3, first = false, last = true, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 4
[mXparser-v.5.2.1] gr = 3, nr = 2, first = false, last = false, Type = Argument, descr = y = 2*x, step = 2*4
[mXparser-v.5.2.1] gr = 3, nr = 3, first = false, last = true, Type = Argument, descr = y = 2*x, step = 8
[mXparser-v.5.2.1] gr = 2, nr = 2, first = false, last = false, Type = Argument, descr = z = 3*y/x, step = 3*8/x
[mXparser-v.5.2.1] gr = 3, nr = 1, first = true, last = false, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 2*rList(2,1,3,5,4)
[mXparser-v.5.2.1] gr = 3, nr = 2, first = false, last = false, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 2*3
[mXparser-v.5.2.1] gr = 3, nr = 3, first = false, last = true, Type = Argument, descr = x = 2rList(2,1,3,5,4), step = 6
[mXparser-v.5.2.1] gr = 2, nr = 3, first = false, last = false, Type = Argument, descr = z = 3*y/x, step = 3*8/6
[mXparser-v.5.2.1] gr = 2, nr = 4, first = false, last = false, Type = Argument, descr = z = 3*y/x, step = 24/6
[mXparser-v.5.2.1] gr = 2, nr = 5, first = false, last = true, Type = Argument, descr = z = 3*y/x, step = 4
[mXparser-v.5.2.1] gr = 1, nr = 7, first = false, last = false, Type = Expression, descr = f(x,y)+z+(x*y)/z, step = f(10,12)+6+(4*8)/4
[mXparser-v.5.2.1] gr = 2, nr = 1, first = true, last = false, Type = Function, descr = f(a,b) = a*b, step = a*b
[mXparser-v.5.2.1] gr = 2, nr = 2, first = false, last = true, Type = Function, descr = f(a,b) = a*b, step = 120
[mXparser-v.5.2.1] gr = 1, nr = 8, first = false, last = false, Type = Expression, descr = f(x,y)+z+(x*y)/z, step = 120+6+(4*8)/4
[mXparser-v.5.2.1] gr = 1, nr = 9, first = false, last = false, Type = Expression, descr = f(x,y)+z+(x*y)/z, step = 120+6+(32)/4
[mXparser-v.5.2.1] gr = 1, nr = 10, first = false, last = false, Type = Expression, descr = f(x,y)+z+(x*y)/z, step = 120+6+8
[mXparser-v.5.2.1] gr = 1, nr = 11, first = false, last = false, Type = Expression, descr = f(x,y)+z+(x*y)/z, step = 126+8
[mXparser-v.5.2.1] gr = 1, nr = 12, first = false, last = true, Type = Expression, descr = f(x,y)+z+(x*y)/z, step = 134
[mXparser-v.5.2.1] Computing time = 0.089 s.
Nuget – Package Manager (C#, F#, Visual Basic, …)
Install-Package
MathParser.org-mXparser
-Version
6.1.0
dotnet add package
MathParser.org-mXparser
--version
6.1.0
<PackageReference Include=
"MathParser.org-mXparser"
Version=
"6.1.0"
/>
Maven – Dependency (Java, Kotlin, Scala, Groovy, …)
<dependency>
<groupid>org.mariuszgromada.math
</groupid>
<artifactid>MathParser.org-mXparser
</artifactid>
<version>6.1.0
</version>
</dependency>
Maven – Gradle
implementation
'org.mariuszgromada.math:MathParser.org-mXparser:6.1.0'
CMake – Dependency / FetchContent (C++, MSVC, LLVM/Clang, GNU/GCC, MinGW, MSYS2, WSL, Windows, Linux, Unix, MacOS)
include(FetchContent)
FetchContent_Declare(
MathParserOrgMxParser
GIT_REPOSITORY https://github.com/mariuszgromada/MathParser.org-mXparser.git
GIT_TAG v.6.1.0
SOURCE_SUBDIR CURRENT/cpp/lib
)
FetchContent_MakeAvailable(MathParserOrgMxParser
)
target_link_libraries(YourExecutable MathParserOrgMxParser
)
GitHub
git clone
https://github.com/mariuszgromada/MathParser.org-mXparser
OTHER DOWNLOAD OPTIONS
Download latest release – v.6.1.0 Sagitara: .NET bin onlyDownload latest release – v.6.1.0 Sagitara: JAVA bin onlyDownload latest release – v.6.1.0 Sagitara: bin + doc
NEWS FROM MATHPARSER.ORG
SOURCE CODE
Source code .zipSource code .tar.gz
View on GitHubMathSpace.pl