v.5.0.4 (2022-05-22): Leonis – a major release: Implied Multiplication, Unicode Math Symbols, Additional Probability Distributions, Calculation Steps Register:
#200 System.OutOfMemoryException: Array dimensions exceeded supported range (#200)
#199 cancelCurrentCalculation does not stop for some expressions (#199)
v.4.4.0 (2020-01-14): Gemoni – API improvement
Canonical rounding: Bye bye floating point arithmetic artifacts
ULP rounding is switched of as a default setting (can be enabled / disabled). As a default canonical rounding is switched on (can be disabled / enabled). New methods:
mXparser.enableCanonicalRounding()
mXparser.disableCanonicalRounding()
mXparser.setCanonicalRounding(boolean)
mXparser.checkIfCanonicalRounding
Argument extension – analogy to Function Extension
Now you can define user arguments implementing your own algorithm in source code.
Function f = new Function(“f(…) = sum(i, 1, [npar], par(i)^2 )”);
[npar] – number of available parameters
par(i) – parameter value
body extended is supported
New special functions
Gamma(x) – Gamma special function Γ(s)
LambW0(x) – Lambert-W special function, principal branch 0, also called the omega function or product logarithm
LambW1(x) – Lambert-W special function, branch -1, also called the omega function or product logarithm
sgnGamma(x) – Signum of Gamma special function, Γ(s)
logGamma(x) – Log Gamma special function, lnΓ(s)
diGamma(x) – Digamma function as the logarithmic derivative of the Gamma special function, ψ(x)
GammaL(s,x) – Lower incomplete gamma special function, γ(s,x)
GammaU(s,x) – Upper incomplete Gamma special function, Γ(s,x)
GammaP(s,x), GammaRegL(s,x) – Lower regularized P gamma special function, P(s,x)
GammaQ(s,x), GammaRegU(s,x) – Upper regularized Q Gamma special function, Q(s,x)
Beta(x,y) – The Beta special function B(x,y), also called the Euler integral of the first kind
logBeta(x,y) – The Log Beta special function ln B(x,y), also called the Log Euler integral of the first kind, ln B(x,y)
BetaInc(x,a,b) – The incomplete beta special function B(x; a, b), also called the incomplete Euler integral of the first kind
BetaI(x,a,b), BetaReg(x,a,b) – The regularized incomplete beta (or regularized beta) special function I(x; a, b), also called the regularized incomplete Euler integral of the first kind
v.4.0.0 (2017-03-27): Major update: Bitwise Operators, Numbers in scientific notation, Units, Physical & Astronomical Constants, Equations solving via finding function root, Better tokens handling, Function Extensions – possibility of using your own implementation, Bugs fixed!
Bitwise Operators
@~ – Bitwise unary complement
@& – Bitwise AND
@^ – Bitwise exclusive OR
@| – Bitwise inclusive OR
@<< – Signed left shift
@>> – Signed right shift
Numbers in scientific notation
1.2e10
1.2e-10
1.2e+10
1.2E10
1.2E-10
1.2E+10
…
Units
[%] – <Ratio, Fraction> Percentage = 0.01
[%%] – <Ratio, Fraction> Promil, Per mille = 0.001
[Y] – Septillion / Yotta = 10^24
[sept] – Septillion / Yotta = 10^24
[Z] – Sextillion / Zetta = 10^21
[sext] – Sextillion / Zetta = 10^21
[E] – Quintillion / Exa = 10^18
[quint] – Quintillion / Exa = 10^18
[P] – Quadrillion / Peta = 10^15
[quad] – Quadrillion / Peta = 10^15
[T] – Trillion / Tera = 10^12
[tril] – Trillion / Tera = 10^12
[G] – Billion / Giga = 10^9
[bil] – Billion / Giga = 10^9
[M] – Million / Mega = 10^6
[mil] – Million / Mega = 10^6
[k] – Thousand / Kilo = 10^3
[th] – Thousand / Kilo = 10^3
[hecto] – Hundred / Hecto = 10^2
[hund] – Hundred / Hecto = 10^2
[deca] – Ten / Deca = 10
[ten] – Ten / Deca = 10
[deci] – Tenth / Deci = 0.1
[centi] – Hundredth / Centi = 0.01
[milli] – Thousandth / Milli = 0.001
[mic] – Millionth / Micro = 10^-6
[n] – Billionth / Nano = 10^-9
[p] – Trillionth / Pico = 10^-12
[f] – Quadrillionth / Femto = 10^-15
[a] – Quintillionth / Atoo = 10^-18
[z] – Sextillionth / Zepto = 10^-21
[y] – Septillionth / Yocto = 10^-24
[m] – Metre / Meter (m=1)
[km] – Kilometre / Kilometer (m=1)
[cm] – Centimetre / Centimeter (m=1)
[mm] – Millimetre / Millimeter (m=1)
[inch] – Inch (m=1)
[yd] – Yard (m=1)
[ft] – Feet (m=1)
[mile] – Mile (m=1)
[nmi] – Nautical mile (m=1)
[m2] – Square metre / Square meter (m=
[cm2] – Square centimetre / Square cent
[mm2] – Square millimetre / Square mill
[are] – Are (m=1)
[ha] – Hectare (m=1)
[acre] – Acre (m=1)
[km2] – Square kilometre / Square kilom
[mm3] – Cubic millimetre / Cubic mill
[cm3] – Cubic centimetre / Cubic cent
[m3] – Cubic metre / Cubic meter (m=
[km3] – Cubic kilometre / Cubic kilom
[ml] – Millilitre / Milliliter (m=1)
[l] – Litre / Liter (m=1)
[gall] – Gallon (m=1)
[pint] – Pint (m=1)
[s] – Second (s=1)
[ms] – Millisecond (s=1)
[min] – Minute (s=1)
[h] – Hour (s=1)
[day] – Day (s=1)
[week] – Week (s=1)
[yearj] – Julian year = 365.25 days (s=1)
[kg] – Kilogram (kg=1)
[gr] – Gram (kg=1)
[mg] – Milligram (kg=1)
[dag] – Decagram (kg=1)
[t] – Tonne (kg=1)
[oz] – Ounce (kg=1)
[lb] – Pound (kg=1)
[b] – Bit (bit=1)
[kb] – Kilobit (bit=1)
[Mb] – Megabit (bit=1)
[Gb] – Gigabit (bit=1)
[Tb] – Terabit (bit=1)
[Pb] – Petabit (bit=1)
[Eb] – Exabit (bit=1)
[Zb] – Zettabit (bit=1)
[Yb] – Yottabit (bit=1)
[B] – Byte (bit=1)
[kB] – Kilobyte (bit=1)
[MB] – Megabyte (bit=1)
[GB] – Gigabyte (bit=1)
[TB] – Terabyte (bit=1)
[PB] – Petabyte (bit=1)
[EB] – Exabyte (bit=1)
[ZB] – Zettabyte (bit=1)
[YB] – Yottabyte (bit=1)
[J] – Joule (m=1, kg=1, s=1)
[eV] – Electronovolt (m=1, kg=1, s=1
[keV] – Kiloelectronovolt (m=1, kg=1,
[MeV] – Megaelectronovolt (m=1, kg=1,
[GeV] – Gigaelectronovolt (m=1, kg=1,
[TeV] – Teraelectronovolt (m=1, kg=1,
[m/s] – Metre / Meter per second (m=1,
[km/h] – Kilometre / Kilometer per hour
[mi/h] – Mile per hour (m=1, s=1)
[knot] – Knot (m=1, s=1)
[m/s2] – Metre / Meter per squar
[km/h2] – Kilometre / Kilometer p
[mi/h2] – Mile per square hour (m
[rad] – Radian (rad=1)
[deg] – Degree of arc (rad=1)
[‘] – Minute of arc (rad=1)
[”] – Second of arc (rad=1)
Physical Constants
– Light speed in vacuum [m/s] (m=1, s=1)
[G.] – Gravitational constant (m=1, kg=1, s=1)]
[g] – Gravitational acceleration on Earth [m/s^2] (m=1, s=1)
mathMC“is a 3d function plotter in Minecraft. You can easily plot math functions in your MC world. Minecraft is a 3-dimensional world, so it’s perfect for 3d functions.”
Using built-in random variable [Uni] from uniform continuous distribution over [0; 1] interval we sample two numbers (x,y) then check if point is inside the circle. Operation is repeated n-times, then proportion falling into circle is being measured. This is only 1/4 of the circle (positive x and positive y) with radius 1, so 4 times proportion should give estimation of pi.
Argument n = new Argument("n = 100000");
Expression e = new Expression("4 * sum(i, 1, n, if( [Uni]^2 + [Uni]^2 <= 1; 1; 0) ) / n", n);
mXparser.consolePrintln("Res. : " + e.getExpressionString() + " = " + e.calculate());
v.3.0.0 (2016-05-18): Major update: Random numbers, Probability distributions & Random variables, Double precision rounding, ULP rounding, epsilon comparison, New special functions.
.NET: since v.3.0.0 dll – different private key used for signing.
Random numbers – new functions
rUni(a, b) – Random number from uniform continuous distribution U(a,b)
rUnid(a, b) – Random number from uniform discrete distribution U{a,b}
rNor(m, s) – Random number from normal distribution N(m,s)
rList(a1, a2, …, an) – Random number from given list of numbers
Probability distributions – new functions
pUni(x, a, b) – Probability distribution function – Uniform continuous distribution U(a,b)
cUni(x, a, b) – Cumulative distribution function – Uniform continuous distribution U(a,b)
qUni(q, a, b) – Quantile function (inverse cumulative distribution function) – Uniform continuous distribution U(a,b)
pNor(x, a, b) – Probability distribution function – Normal distribution N(m,s)
cNor(x, a, b) – Cumulative distribution function – Normal distribution N(m,s)
qNor(q, m, s) – Quantile function (inverse cumulative distribution function) – Normal distribution N(m,s)
Random variables (predefined) – acting as random constant (no parameters)
[Int] – Random variable – random integer
[Int1] – Random variable – random integer – Uniform discrete distribution U{-10^1, 10^1}
[Int2] – Random variable – random integer – Uniform discrete distribution U{-10^2, 10^2}
[Int3] – Random variable – random integer – Uniform discrete distribution U{-10^3, 10^3}
[Int4] – Random variable – random integer – Uniform discrete distribution U{-10^4, 10^4}
[Int5] – Random variable – random integer – Uniform discrete distribution U{-10^5, 10^5}
[Int6] – Random variable – random integer – Uniform discrete distribution U{-10^6, 10^6}
[Int7] – Random variable – random integer – Uniform discrete distribution U{-10^7, 10^7}
[Int8] – Random variable – random integer – Uniform discrete distribution U{-10^8, 10^8}
[Int9] – Random variable – random integer – Uniform discrete distribution U{-10^9, 10^9}
[nat] – Random variable – random natural number including 0
[nat1] – Random variable – random natural number including 0 – Uniform discrete distribution U{0, 10^1}
[nat2] – Random variable – random natural number including 0 – Uniform discrete distribution U{0, 10^2}
[nat3] – Random variable – random natural number including 0 – Uniform discrete distribution U{0, 10^3}
[nat4] – Random variable – random natural number including 0 – Uniform discrete distribution U{0, 10^4}
[nat5] – Random variable – random natural number including 0 – Uniform discrete distribution U{0, 10^5}
[nat6] – Random variable – random natural number including 0 – Uniform discrete distribution U{0, 10^6}
[nat7] – Random variable – random natural number including 0 – Uniform discrete distribution U{0, 10^7}
[nat8] – Random variable – random natural number including 0 – Uniform discrete distribution U{0, 10^8}
[nat9] – Random variable – random natural number including 0 – Uniform discrete distribution U{0, 10^9}
[Nat] – Random variable – random natural number
[Nat1] – Random variable – random natural number – Uniform discrete distribution U{1, 10^1}
[Nat2] – Random variable – random natural number – Uniform discrete distribution U{1, 10^2}
[Nat3] – Random variable – random natural number – Uniform discrete distribution U{1, 10^3}
[Nat4] – Random variable – random natural number – Uniform discrete distribution U{1, 10^4}
[Nat5] – Random variable – random natural number – Uniform discrete distribution U{1, 10^5}
[Nat6] – Random variable – random natural number – Uniform discrete distribution U{1, 10^6}
[Nat7] – Random variable – random natural number – Uniform discrete distribution U{1, 10^7}
[Nat8] – Random variable – random natural number – Uniform discrete distribution U{1, 10^8}
[Nat9] – Random variable – random natural number – Uniform discrete distribution U{1, 10^9}
[Nor] – Random variable – Normal distribution N(0,1)
Double precision rounding
round(value, places) – decimal rounding (half-up)
New special functions
erf(x) – Gauss error function
erfc(x) – Gauss complementary error function
erfInv(x) – Inverse Gauss error function
erfcInv(x) – Inverse Gauss complementary error function
Other functions
ulp(x) – Unit in The Last Place
Binary relations – epsilon+ulp comparison – enabled as default
If a rel b then applied epsilon is maximum from epsilon and ulp(b) : i.e. a eq b if a \in [b-eps; b+eps] inclusive
mXparser.setExactComparison()
mXparser.setEpsilonComparison()
mXparser.setEpsilon(double epsilon)
mXparser.setDefaultEpsilon()
mXparser.getEpsilon()
mXparser.checkIfEpsilonMode()
mXparser.checkIfExactMode()
Intelligent automatic double ULP rounding – enabled as default
** Try 0.1 + 0.1 + 0.1 – it will give exact 0.3 🙂 **
mXparser.enableUlpRounding()
mXparser.disableUlpRounding()
mXparser.checkIfUlpRounding()
Parser tokens definition now public in API
mxparser.parsertokens
Expression after tokenization now public in API
Expression.getCopyOfInitialTokens()
mxparser.parsertokens
mXparser.consolePrintTokens()
Significant reorganization of code
Mainly mathcollection & parser tokens
Backwards compatibility
is preserved for String API, Expression, Function, Argument, Constnat, …
other public API was reorganized (mainly mxparser.mathcollection)
Recently I found on the internet online calculator powered by mXparser. This is one possible usage scenario of mXparser engine, here only part of functionalities are utilized. (no user defined functions, recursion, only one argument), yet calculator is nice 🙂
I am happy to announce that first milestone was achieved – as of today mXparser has 1000 unique downloads, and the number is growing! This is very exciting, especially considering questions you asked and feedback I gained. mXparser seems fits your needs providing the same API for JAVA, Android and .NET (including MONO). Single framework / technology days have gone away, and are not coming back, meaning cross-platform apps are with us for good.
MathParser.org launch
mXparser downloads were significantly boosted after launching http://MathParser.orgsite, amazing! Thank you Google!
By continuing to use the site, you agree to the use of cookies. more information
The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.