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)
Bugs fixed
- bugs related to iterated operators
Other changes
- Many new regression tests
I’m not having much luck using the library via NuGet for a dnx based console project.
The error I get is, “The dependency MathParser.org-mXparser 3.0.0 in project TestSample does not support framework DNXCore,Version=v5.0”
Has anyone had a luck getting it to work with the new .Net stuff? I’m currently using RC1 still.
I have one query mXparser – v.3.0.0.
How can I work on traditional sum and average like
sum(1,2,3,4,5,6,7)= 28
avg(6,9,2,3)=5
can you please send me sample code
Hi,
“sum” keyword is reserved for SIGMA operator (sum an for n=a to b) – the same in case of “avg”. In order to perform variadic sum please use add(1,2,3,4,5,6,7). In case of variadic average you should use mean(6,9,2,3).
Best regards
Working fine.
Thanks for reply
Hi ,
For large values it is not giving proper output. Is there any thing wrong from my inputs
FYI.
I am using like
Expression e1 = new Expression(“add(122,32312312,5434543,553112,554332432,566878545,5432433242,99876677,321313,44312132121,31213123,444112313131,441133432234)”);
mXparser.consolePrintln(“Res 1: ” + e1.getExpressionString() + ” = ” + e1.calculate());
output :
[mXparser-v.3.0.0] Res 1: add(122,32312312,5434543,553112,554332432,566878545,5432433242,99876677,321313,44312132121,31213123,444112313131,441133432234) = 9.36281232907E11
Hi,
Everything seems to be ok. mXparser performs calculation on double numbers. If you expect integer please do casting to int / long, or simply format the number when displaying.
9.36281232907E11 = 936281232907
Best regards
Working fine.
Thanks for reply.
Hi,
Is there a way to keep zeroes after decimal point in rounding function?
e.g. round(1.6000,2) = 1.60 ?? On Java I can use string formatter, but I want to make it more generic.
Hi,
The result is always a double, so you need to convert it at the end to a string.
Best regards
can add or avg use like Expression(“add(x)”); x is array