Previous releases

TO SUPPORT MY WORK, ORDER A COMMERCIAL LICENSE
THANK YOU!

v.5.2.1 (2023-02-08): Orion: Improvement and standardization of descriptions and messages. Definition of your own translations. Exporting help in multiple formats. Clones for thread safe. Performance improvement.

v.5.2.0 (2023-01-29): Orion: Improvement and standardization of descriptions and messages. Definition of your own translations. Exporting help in multiple formats. Clones for thread safe.

## v.5.1.0 (2022-11-13): Libris - Implied Multiplication, Unicode Math Symbols, Additional Probability Distributions, Calculation Steps Register, Serialization Support

Latest release

v.5.1.0 (2022-11-13): Libris: Implied Multiplication, Unicode Math Symbols, Additional Probability Distributions, Calculation Steps Register, Serialization Support

v.5.0.7 (2022-08-21): Leonis: Implied Multiplication, Unicode Math Symbols, Additional Probability Distributions, Calculation Steps Register

v.5.0.7 (2022-08-21): Leonis - a major release: Implied Multiplication, Unicode Math Symbols, Additional Probability Distributions, Calculation Steps Register

Did you find the software useful?

  • please consider donation
  • purchase the commercial license from here or from here

Android App that is powered by MathParser.org-mXparser:

Other websites:

v.5.0.6 (2022-05-31): Leonis: Implied Multiplication, Unicode Math Symbols, Additional Probability Distributions, Calculation Steps Register

v.5.0.6 (2022-05-31): Leonis - a major release: Implied Multiplication, Unicode Math Symbols, Additional Probability Distributions, Calculation Steps Register

Did you find the software useful?

  • please consider donation
  • purchase the commercial license from here or from here

Android App that is powered by MathParser.org-mXparser:

Other websites:

v.5.0.5 (2022-05-29): Leonis: Implied Multiplication, Unicode Math Symbols, Additional Probability Distributions, Calculation Steps Register

v.5.0.5 (2022-05-29): Leonis - a major release: Implied Multiplication, Unicode Math Symbols, Additional Probability Distributions, Calculation Steps Register

Did you find the software useful?

  • please consider donation
  • purchase the commercial license from here or from here

Android App that is powered by MathParser.org-mXparser:

Other websites:

v.5.0.4 (2022-05-22): Leonis: Implied Multiplication, Unicode Math Symbols, Additional Probability Distributions, Calculation Steps Register

v.5.0.4 (2022-05-22): Leonis - a major release: Implied Multiplication, Unicode Math Symbols, Additional Probability Distributions, Calculation Steps Register

Did you find the software useful?

  • please consider donation
  • purchase the commercial license from here or from here

Android App that is powered by MathParser.org-mXparser:

Other websites:

v.5.0.3 (2022-05-21): Leonis: Implied Multiplication, Unicode Math Symbols, Additional Probability Distributions, Calculation Steps Register

v.5.0.3 (2022-05-21): Leonis - a major release: Implied Multiplication, Unicode Math Symbols, Additional Probability Distributions, Calculation Steps Register

Did you find the software useful?

  • please consider donation
  • purchase the commercial license from here or from here

Android App that is powered by MathParser.org-mXparser:

Other websites:

v.5.0.2 (Leonis): fix #258

258

v.5.0.1 (2022-04-10): Leonis - a major release: Implied Multiplication, Unicode Math Symbols, Additional Probability Distributions

Release notes:

Did you find the software useful? If yes:

Android App that is powered by MathParser.org-mXparser:

Other websites:

Gemoni - bugs fixing

v.4.4.2 (2020-01-25): Gemoni - bugs fixing

Download mXparser - Math Parser Java C# Library

Gemoni

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

Example 1

Expression e = new Expression("0.1 + 0.1 + 0.1");
System.out.println("Pure Java             : 0.1 + 0.1 + 0.1 = " + (0.1 + 0.1 + 0.1));
System.out.println("mXparser              : 0.1 + 0.1 + 0.1 = " + e.calculate());
mXparser.disableCanonicalRounding();
System.out.println("mXparser canonical off: 0.1 + 0.1 + 0.1 = " + e.calculate());
===========
Pure Java             : 0.1 + 0.1 + 0.1 = 0.30000000000000004
mXparser              : 0.1 + 0.1 + 0.1 = 0.3
mXparser canonical off: 0.1 + 0.1 + 0.1 = 0.30000000000000004

Example 2

Expression e = new Expression("(-1/6.2)^(-3)");
System.out.println("Pure Java             : (-1/6.2)^(-3) = " + Math.pow(-1/6.2, -3));
System.out.println("mXparser              : (-1/6.2)^(-3) = " + e.calculate());
mXparser.disableCanonicalRounding();
System.out.println("mXparser canonical off: (-1/6.2)^(-3) = " + e.calculate());
===========
Pure Java             : (-1/6.2)^(-3) = -238.32800000000003
mXparser              : (-1/6.2)^(-3) = -238.328
mXparser canonical off: (-1/6.2)^(-3) = -238.32800000000003

Argument extension - analogy to Function Extension

Now you can define user arguments implementing your own algorithm in source code.

Example

class PiMultArgExt implements ArgumentExtension {
    private int multiple = 0;
    public double getArgumentValue() {
        multiple++;
        return  MathConstants.PI * multiple;
    }
    public PiMultArgExt clone() {
        return new PiMultArgExt();
    }
}

Argument x = new Argument("x", new PiMultArgExt());
Expression e = new Expression("x/pi", x);
System.out.println("1st calc exec: " + e.calculate());
System.out.println("2nd calc exec: " + e.calculate());
System.out.println("3rd calc exec: " + e.calculate());
===========
1st calc exec: 1.0
2nd calc exec: 2.0
3rd calc exec: 3.0

Bugs fixed

  • 168, #18 Exact special trigonometric values

  • 192, #178 Logical operators precedence

  • 172 "x + 4 * - 2"

Download mXparser - Math Parser Java C# Library

Caprica - bugs fixing

Caprica

v.4.3.0 (2019-01-19): Caprica - API improvement

Cancel ongoing calculation

  • mXparser.cancelCurrentCalculation()
  • mXparser.resetCancelCurrentCalculationFlag();

Set default options

  • mXparser.setDefaultOptions()

User defined constants / units

  • constant name can be surrounded by square bracket, i.e. [const]
  • Expression.getMissingUserDefinedUnits()

Bug fixing

  • 153, #162 Endless Loop

  • 164 PrimeCache out of memory - handling error / exception

Download mXparser - Math Parser Java C# Library

Aquaria

v.4.2.0 (2018-07-15): Aquaria - Major release

Broader types of decimal number literals

  • No leading zero, i.e.: .2, .312, -.21

Fraction as number literals

  • 1_2 is recognized as 1/2
  • 2_3_4 is recognized as 2 + 3/4
  • 17_5 is recognized as 17/5
  • Just use Expression e = new Expression("2_3_2 + 1_2")

Double to fraction conversion

  • mXparser.toFraction(double value) - double[]
  • mXparser.toMixedFraction(double value) - double[]
  • mXparser.fractionToString(double[] fraction) - String
  • mXparser.toFractionString(double value) - String
  • mXparser.toMixedFractionString(double value) - String

Disable / enable almost int rounding

  • mXparser.enableAlmostIntRounding()
  • mXparser.disableAlmostIntRounding()
  • mXparser.checkIfAlmostIntRounding()
  • mXparser.getEpsilon()
  • mXparser.setEpsilon()

Variadic user defined functions

  • 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

Degrees / Radians mode for trigonometrix

  • mXparser.setDegreesMode()
  • mXparser.setRadiansMode()
  • mXparser.checkIfDegreesMode()
  • mXparser.checkIfRadiansMode()

New operator - Tetration

  • a^^n is recognized as a^a^a...^a - n times

Bugs fixed

Other framework support (binaries)

  • .NET Core: 2.0, 2.1
  • .NET Standard: 2.0
  • .NET Framework: 4.7, 4.7.2
  • JAVA: 1.9, 1.10

New regression tests - current tests coverage:

  • 1155 expression related tests
  • 245 syntax related tests
  • 65 API related tests
  • 20 performance tests

https://github.com/mariuszgromada/MathParser.org-mXparser/milestone/2

Enjoy 🙂

Download mXparser - Math Parser Java C# Library

Aeries - checkSyntax() bug fixing

v.4.1.1 (2017-07-28): Aeries - checkSyntax() bug fixing

  • Fixed: checkSyntax() returns true "already checked no errors" #75

Enjoy 🙂

Download mXparser - Math Parser Java C# Library

Aeries

v.4.1.0 (2017-07-09): Aeries - Major update

Various numeral systems

  • Binary numbers literals
  • Octal numbers literals
  • Hexadecimal numbers literals
  • Number literals with base between 1 and 36
  • base(b, digit1, ..., digitn) function to generate numbers in any given base

Leading zeros support

  • 0001
  • 0001.12e10
  • ...

Working with digits

  • ndig(number, targetBase) function - number of digits - specified numeral system base
  • ndig10(number) function - number of digits - base 10
  • dig(number, targetBase, position) - digit at position - specified numeral system base
  • dig10(number, position) - digit at position - base 10

Prime factorization

  • nfact(number) - number of prime factors
  • factval(number, factorId) - factor value
  • factexp(number, factorId) - factor exponent

Not-a-Number

  • [NaN] symbol
  • isNaN(x) function
  • coalesce(a1,...,an) function - first non-NaN value

Statistics

  • med(a1, a2, ..., an) - sample median
  • mode(a1, a2, ..., an) - sample mode

Boolean logic

  • [true] symbol
  • [false] symbol
  • or(a1,...an) - variadic or
  • and(a1,...an) - variadic and
  • xor(a1,...an) - variadic xor

Other functions

  • root(order, number) - root + support for negative numbers and odd-order
  • arcsec(x) - inverse trigonometric secant
  • arccsc(x) - inverse trigonometric cosecant
  • ndist(v1, v2, ... vn) - number of distinct values
  • argmin(v1, v2, ... vn) - index of minimum
  • argmax(v1, v2, ... vn) - index of maximum

New operator

  • % support (i.e. 2%, x%)

Calculus

  • der( f(x), x, x0 ) - alternative syntax for derivative (no need to define x as argument)

Built-in tokens

  • Option to override built-in tokens
  • Possibility to remove built-in tokens
  • Possibility to change built-in token
  • Key words: syntax + since
  • Get key words list

Working with expression tokens

  • Get missing user defined arguments
  • Get missing user defined functions

Bugs fixed

  • Dependent arguments and StackOverflowError #35 (introduction of recursion calls counter)
  • FunctionExtension.calculate #32

New regression tests - current tests coverage:

  • 829 expression related tests
  • 207 syntax related tests
  • 51 api related tests
  • 20 performance tests

Enjoy 🙂

Download mXparser - Math Parser Java C# Library

Port to various .NET frameworks

v.4.0.0.2 (2017-04-17): Port to various .NET frameworks

  • .NET Core
  • .NET Standard
  • .NET PCL (supporting i.e.: Windows Phone, MonoTouch, etc.)
  • Xamarin.Android
  • Xamarin.iOS

Enjoy 🙂

Download mXparser - Math Parser Java C# Library

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

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

  • [c] - 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)
  • [hP] - Planck constant (m=1, kg=1, s=1)
  • [h-] - Reduced Planck constant / Dirac constant (m=1, kg=1, s=1)]
  • [lP] - Planck length [m] (m=1)
  • [mP] - Planck mass [kg] (kg=1)
  • [tP] - Planck time [s] (s=1)

  • Astronomical Constants

  • [ly] - Light year [m] (m=1)
  • [au] - Astronomical unit [m] (m=1)
  • [pc] - Parsec [m] (m=1)
  • [kpc] - Kiloparsec [m] (m=1)
  • [Earth-R-eq - ]Earth equatorial radius [m] (m=1)
  • [Earth-R-po] - Earth polar radius [m] (m=1)
  • [Earth-R] - Earth mean radius (m=1)
  • [Earth-M] - Earth mass [kg] (kg=1)
  • [Earth-D] - Earth-Sun distance - semi major axis [m] (m=1)
  • [Moon-R] - Moon mean radius [m] (m=1)
  • [Moon-M] - Moon mass [kg] (kg=1)
  • [Moon-D] - Moon-Earth distance - semi major axis [m] (m=1)
  • [Solar-R] - Solar mean radius [m] (m=1)
  • [Solar-M] - Solar mass [kg] (kg=1)
  • [Mercury-R] - Mercury mean radius [m] (m=1)
  • [Mercury-M] - - Mercury mass [kg] (kg=1)
  • [Mercury-D]Mercury-Sun distance - semi major axis [m] (m=1)
  • [Venus-R] - Venus mean radius [m] (m=1)
  • [Venus-M] - Venus mass [kg] (kg=1)
  • [Venus-D] - Venus-Sun distance - semi major axis [m] (m=1)
  • [Mars-R] - Mars mean radius [m] (m=1)
  • [Mars-M] - Mars mass [kg] (kg=1)
  • [Mars-D] - Mars-Sun distance - semi major axis [m] (m=1)
  • [Jupiter-R] - Jupiter mean radius [m] (m=1)
  • [Jupiter-M] - Jupiter mass [kg] (kg=1)
  • [Jupiter-D] - Jupiter-Sun distance - semi major axis [m] (m=1)
  • [Saturn-R] - Saturn mean radius [m] (m=1)
  • [Saturn-M] - Saturn mass [kg] (kg=1)
  • [Saturn-D] - Saturn-Sun distance - semi major axis [m] (m=1)
  • [Uranus-R] - Uranus mean radius [m] (m=1)
  • [Uranus-M] - Uranus mass [kg] (kg=1)
  • [Uranus-D] - Uranus-Sun distance - semi major axis [m] (m=1)
  • [Neptune-R] - Neptune mean radius [m] (m=1)
  • [Neptune-M] - Neptune mass [kg] (kg=1)
  • [Neptune-D] - Neptune-Sun distance - semi major axis [m] (m=1)

  • Equations solving via finding function root

  • solve( f(x), x, a, b ) - solving f(x) = 0

  • Better tokens handling

  • Better handling of invalid / not known tokens
  • Looks like functionality

  • Function Extensions - possibility of using your own implementation

  • FunctionExtension interface + new constructor in Function class

  • Bugs fixed

  • Exception thrown by getCopyOfInitialTokens() #21
  • System.format.exception - system.IO.EndOfStreamException #20
  • Expression relating factorial "!" cause the application to hang #17
  • Negative sign missing when is right of operators #16
  • Negative in if statement #12
  • Speed when debugging #11
  • User defined arguments ending in e #10

  • New regression tests - current tests coverage:

  • 622 expression related tests
  • 114 syntax related tests
  • 30 api related tests
  • 20 performance tests

Enjoy 🙂

Major update: random numbers, double rounding, ULP rounding, epsilon comparison

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

Enjoy 🙂

Download mXparser - Math Parser Java C# Library

Average, Variance, Standard deviation + New iterative operators

v.2.4.0 (2016-02-28): Average, Variance, Standard deviation + New iterative operators

New functions with variadic parameters:

  • mean(a1, a2, ... , an) - sample average;
  • var(a1, a2, ... , an) - bias-corrected sample variance;
  • std(a1, a2, ... , an) - bias-corrected sample standard deviation.

New iterative operators:

  • mini(i, from, to, f(i), ) - minimum from function values;
  • maxi(i, from, to, f(i), ) - maximum from function values;
  • avg(i, from, to, f(i), ) - average from function values;
  • vari(i, from, to, f(i), ) - bias-corrected sample variance from function values;
  • stdi(i, from, to, f(i), ) - bias-corrected sample standard deviation from function values.

Other changes

  • New regression tests to cover new functions;
  • Small code reorganization;
  • Added manifest to jar files containing version information;
  • .dll files were signed.

Enjoy 🙂

Mariusz Gromada

Download mXparser - Math Parser Java C# Library

Trailing letter 'e' bug fix

v.2.3.1 (2016-01-29):

  • Trailing letter 'e' bug fix
  • Some minor changes in the code.

Download mXparser - Math Parser Java C# Library

Prime numbers supported! Multithreading performance tests! New functions: Exponential/Offset/Logarithmic integral!

v.2.3.0 (2016-01-17): Prime numbers supported! Multithreading performance tests! New functions: Exponential/Offset/Logarithmic integral!

Prime numbers supported:

  • new class PrimesCache in mathcollection
  • MathFunctions extended with prime testes
  • ispr(n) - Prime test function supported in expressions
  • Pi(n) - Prime Counting function supported in expressions
  • mXparser.initPrimesCache() methods (and others) to initialize prime numbers cache

Some special functions supported

  • Ei(x) - Exponential integral function supported in expressions
  • li(x) - Logarithmic integral function supported in expressions
  • Li(x) - Offset logarithmic integral function supported in expressions

New constants

  • [G] - Gompertz Constant OEIS A073003 supported in expressions
  • [li2] - li(2) A069284 - supported in expressions

Multithreading performance tests

  • Default number of cores taken from the environment
  • Possibility to change number of default threads:
  • PerformanceTests.start(int threadsNum)
  • mXparser.setThreadsNumber(int threadsNumber)

New regression tests to cover new functionalities

Enjoy 🙂

Mariusz Gromada

Download mXparser - Math Parser Java C# Library

Android is coming!

v.2.2.0 (2016-01-10): Android is coming!

mxparser_jdk1.7.jar - tested with Android !!!

  • all regression tests passed 🙂

New public methods in the mXparser class

  • static String getConsoleOutput() - returns as string output produced by mXparser.consolePrin/ln() methods. Using this method you can capture the output to the string variable.
  • static void resetConsoleOutput() - resets the string representing console output
  • Added CONSOLE/PREFIX & CONSOLE_OUTPUT_STRING/PREFIX + configuration

Method modified in mXparser class

  • consolePrintln()
  • consolePrintln(Object o)
  • consolePrint(Object o)
  • Above methods are outputting also to string representing console output.

New RunTest method in regressiontesting, method executes specified scenario according to below params:

  • reg - Expression regression tests
  • api - mXparser API regression tests
  • syn - Syntax checking regression tests
  • perf - Performance tests

Code clean-up

  • blank lines
  • trailing white spaces
  • src folders structure for c-sharp is now the same as in java

Enjoy 🙂

Mariusz Gromada

Download mXparser - Math Parser Java C# Library

Binaries for older versions of JAVA and .NET

v.2.1.1-1 (2016-01-07):

  • Binaries for java: 1.5, 1.6, 1.7, 1.8
  • Binaries for .NET: 2.0, 3.0, 3.5, 4.0, 4.5, 4.6

Download mXparser - Math Parser Java C# Library

Fixed bug with min/max function

v.2.1.1 (2016-01-04)

  • Fixed bug with min/max functions.

Documentation update + new methods for dec, hex, ASCII conversion

v.2.1.0 (2016-01-02):

New static methods in class mXparser

  • mXparser.numberToHexString(number) + overloads: int, long, double
  • mXparser.hexString2AsciiString(String hexString)
  • mXparser.numberToAsciiString(number) + overloads: int, long, double
  • additional regression tests for the above methods

Hello World examples showing how to use mXparser binary library (manual includes: projects, code, screenshots) for:

  • JAVA (project done in Eclipse Mars 1)
  • C# (project done in Visual Studio 2015)
  • Visual Basic (project done in Visual Studio 2015)
  • C++/CLI (project done in Visual Studio 2015)
  • F# (project done in Visual Studio 2015)

Major update of the library providing more intuitive and much simpler to use API

v.2.0.0 (2015-12-31):

Major update of the library providing more intuitive and much simpler to use API, no changes to the MathCollection.

Methods removed: setRecursiveMode(), disableRecursiveMode()

  • No need to manually mark recursive mode, mXparser is recognizing this mode automatically.

New handy and super easy (natural to use) constructors:

  • Constructors for user defined arguments (Argument / RecursiveArgument classes), user defined constant (Constant class), user defined functions (Function class).

Sample code:

   Constant c = new Constant("c=5");
   Constant c = new Constant("c=5+2");
   Argument x = new Argument("x=5");
   Constant c = new Constant("c=5+x", x);
   Argument y = new Argument("y=2*x", x);
   RecursiveArgument f = new RecursiveArgument("f(n)=n*f(n-1)");
   Function f = new Function("f(x,y)=sin(x)+y");
   Function f = new Function("f(n)=if( n>0, n*f(n-1), 1)");

New methods: addDefinitions(PrimitiveElement... elements), removeDefinitions(PrimitiveElement... elements)

  • New class PrimitiveElement introduced only to simplify constructors of arguments, constants, functions and expressions.
  • Classes Argument, RecursiveArgument, Constant, Functions inherits now from PrimitiveElement class, it means you can call one method for adding / removing definitions by passing comma separated list of elements that can be different type (supported types: Argument, RecursiveArgument, Constant, Function).
  • Method addArguments(), addConstants(), addFunctions(),removeArguments(), removeConstants(), removeFunctions() are still public, but this will change in the future.

Sample code:

   Constant c = new Constant("c=5");
   Argument x = new Argument("x=10/2");
   Expression e = new Expression("c+x");
   e.addDefinitions(x,c);

Modified constructors for classes Argument, RecursiveArgument, Constant, Function

  • Constructors relying on directly given argument / constant / function name are now checking given name according to the predefined regular expression (the name must start with letters, and then digits / underscores / letters are allowed).
  • Constructors removed – all constructors relying on ArrayList/List of arguments, constants, functions or on varidic type Argument, Constant, Function were substituted based on comma separated prams list of PrimitiveElement type, where Argument, Constant, Functions extend / inherit PrimitiveElement).

C# library is now Common Language Specification Compliant, it means mXparser is available right now to many other .NET languages (providing exactly the same API), including:

  • C#
  • Visual Basic .NET
  • C++/CLI
  • F#

Other changes

  • New extended list of regression tests (to cover new methods, constructors, etc...)
  • Implemented Performance Tests
  • Source code converted from cp150 to UTF-8
  • Source code reorganization (some part of package level code of the Expression class was moved to the mXparser class)
  • Some bugs fixed (for sure there are others)

v.1.0.3

1.0.3:

  • Fixed bug during indirect recursion (infinite loops while syntax checking)
  • Some minor modification of code making it more portable across platforms

1.0.2

  • Fixed bug in user defined function related to RecursiveArguments

1.0.1

1.0:

  • Initial release
Nuget – Package Manager

Install-Package MathParser.org-mXparser -Version 5.2.1

Nuget – .NET CLI

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

Nuget – Package Reference

<PackageReference Include="MathParser.org-mXparser" Version="5.2.1"/>

Maven – Dependency

<dependency>
<groupid>
org.mariuszgromada.math</groupid>
<artifactid>
MathParser.org-mXparser</artifactid>
<version>
5.2.1</version>
</dependency>

Maven – Gradle

implementation 'org.mariuszgromada.math:MathParser.org-mXparser:5.2.1'

Maven – Gradle (Kotlin)

implementation("org.mariuszgromada.math:MathParser.org-mXparser:5.2.1")

GitHub

git clone https://github.com/mariuszgromada/MathParser.org-mXparser

OTHER DOWNLOAD OPTIONS

Download latest release – v.5.2.1 Orion: .NET bin onlyDownload latest release – v.5.2.1 Orion: JAVA bin onlyDownload latest release – v.5.2.1 Orion: bin + doc

NEWS FROM MATHPARSER.ORG
SOURCE CODE

Source code .zipSource code .tar.gz
View on GitHubMathSpace.pl

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