Calculation Steps Register

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

Nuget – .NET CLI

dotnet add package MathParser.org-mXparser --version 6.1.0

Nuget – Package Reference

<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

My other creative spaces

DONATION
Did you find the software useful?
Please consider donation 🙂
DONATE