TO SUPPORT MY WORK, ORDER A COMMERCIAL LICENSE
THANK YOU!
Tutorial Math Collection API spec Download
Below is the code for JAVA, the code for C# is almost identical.
Case 1: Numbers and parenthesis
import org.mariuszgromada.math.mxparser.*; ... Expression e = new Expression("2(3+4)3"); mXparser.consolePrintln(e.getExpressionString() + " = " + e.getCanonicalExpressionString()); mXparser.consolePrintln("Res: " + e.getExpressionString() + " = " + e.calculate())
[mXparser-v.5.0.0] 2(3+4)3 = 2*(3+4)*3 [mXparser-v.5.0.0] Res: 2(3+4)3 = 42.0
Case 2: Numbers and constants / arguments
import org.mariuszgromada.math.mxparser.*; ... Expression e = new Expression("2pi+3e"); mXparser.consolePrintln(e.getExpressionString() + " = " + e.getCanonicalExpressionString()); mXparser.consolePrintln("Res: " + e.getExpressionString() + " = " + e.calculate());
[mXparser-v.5.0.0] 2pi+3e = 2*pi+3*e [mXparser-v.5.0.0] Res: 2pi+3e = 14.438030792556722
Case 3: Numbers and constants / arguments and parenthesis
import org.mariuszgromada.math.mxparser.*; ... Expression e = new Expression("2pi(3+4)2e"); mXparser.consolePrintln(e.getExpressionString() + " = " + e.getCanonicalExpressionString()); mXparser.consolePrintln("Res: " + e.getExpressionString() + " = " + e.calculate());
[mXparser-v.5.0.0] 2pi(3+4)2e = 2*pi*(3+4)*2*e [mXparser-v.5.0.0] Res: 2pi(3+4)2e = 239.11255823485985
Case 4: Numbers and constants / arguments and parenthesis and functions
import org.mariuszgromada.math.mxparser.*; ... Expression e = new Expression("2pi(3+4)2sin(3)e"); mXparser.consolePrintln(e.getExpressionString() + " = " + e.getCanonicalExpressionString()); mXparser.consolePrintln("Res: " + e.getExpressionString() + " = " + e.calculate());
[mXparser-v.5.0.0] 2pi(3+4)2sin(3)e = 2*pi*(3+4)*2*sin(3)*e [mXparser-v.5.0.0] Res: 2pi(3+4)2sin(3)e = 33.74356614531889
Case 5: Implied multiplication and possible ambiguity
import org.mariuszgromada.math.mxparser.*; ... Expression e = new Expression("2pi2"); e.checkSyntax(); mXparser.consolePrintln(e.getExpressionString() + " = " + e.getCanonicalExpressionString()); mXparser.consolePrintln(e.getErrorMessage());
[mXparser-v.5.0.0] 2pi2 = 2*pi2 [mXparser-v.5.0.0] [2pi2] checking ... [2pi2] (pi2, 2) invalid <TOKEN>. [2pi2] errors were found. [mXparser-v.5.0.0]
Case 6: Implied multiplication and list of tokens
import org.mariuszgromada.math.mxparser.*; ... Expression e = new Expression("2pi(3+4)2e"); e.consolePrintCopyOfInitialTokens();
[mXparser-v.5.0.0] -------------------- [mXparser-v.5.0.0] | Expression tokens: | [mXparser-v.5.0.0] --------------------------------------------------------------------------------------------------------------- [mXparser-v.5.0.0] | TokenIdx | Token | KeyW | TokenId | TokenTypeId | TokenLevel | TokenValue | LooksLike | [mXparser-v.5.0.0] --------------------------------------------------------------------------------------------------------------- [mXparser-v.5.0.0] | 0 | 2 | | 1 | 0 | 0 | 2.0 | | [mXparser-v.5.0.0] | 1 | * | | 3 | 1 | 0 | NaN | | [mXparser-v.5.0.0] | 2 | pi | | 1 | 9 | 0 | NaN | | [mXparser-v.5.0.0] | 3 | * | | 3 | 1 | 0 | NaN | | [mXparser-v.5.0.0] | 4 | ( | ( | 1 | 20 | 1 | NaN | | [mXparser-v.5.0.0] | 5 | 3 | _num_ | 1 | 0 | 1 | 3.0 | | [mXparser-v.5.0.0] | 6 | + | + | 1 | 1 | 1 | NaN | | [mXparser-v.5.0.0] | 7 | 4 | _num_ | 1 | 0 | 1 | 4.0 | | [mXparser-v.5.0.0] | 8 | ) | ) | 2 | 20 | 1 | NaN | | [mXparser-v.5.0.0] | 9 | * | | 3 | 1 | 0 | NaN | | [mXparser-v.5.0.0] | 10 | 2 | | 1 | 0 | 0 | 2.0 | | [mXparser-v.5.0.0] | 11 | * | | 3 | 1 | 0 | NaN | | [mXparser-v.5.0.0] | 12 | e | | 2 | 9 | 0 | NaN | | [mXparser-v.5.0.0] ---------------------------------------------------------------------------------------------------------------
Case 7: Enable / disable implied multiplication and list of tokens
import org.mariuszgromada.math.mxparser.*; ... Expression e = new Expression("2pi+3e"); e.disableImpliedMultiplicationMode(); e.checkSyntax(); mXparser.consolePrintln("Disable: \n" + e.getErrorMessage()); e.enableImpliedMultiplicationMode(); e.checkSyntax(); mXparser.consolePrintln("Enable: \n" + e.getErrorMessage());
[mXparser-v.5.0.0] Disable: [2pi+3e] checking ... [2pi+3e] (2pi, 0) invalid <TOKEN>. [2pi+3e] (3e, 2) invalid <TOKEN>. [2pi+3e] errors were found. [mXparser-v.5.0.0] Enable: [2pi+3e] checking ... [2pi+3e] no errors. [mXparser-v.5.0.0]
Nuget
Install-Package MathParser.org-mXparser -Version 5.0.2
Maven
<dependency>
<groupid>org.mariuszgromada.math</groupid>
<artifactid>MathParser.org-mXparser</artifactid>
<version>5.0.2</version>
</dependency>
Gradle
implementation 'org.mariuszgromada.math:MathParser.org-mXparser:5.0.2'
Gradle (Kotlin)
implementation("org.mariuszgromada.math:MathParser.org-mXparser:5.0.2")
GitHub
git clone https://github.com/mariuszgromada/MathParser.org-mXparser
OTHER DOWNLOAD OPTIONS
Download latest release – v.5.0.2 Leonis: bin + docDownload latest release – v.5.0.2 Leonis: bin only, includes separate binaries for various .NET platforms and Java versions
NEWS FROM MATHPARSER.ORG
SOURCE CODE
Source code .zipSource code .tar.gz
View on GitHubMathSpace.pl