MathParser.org-mXparser
4.4.2
Only versions 5.x of MathParser.org-mXparser are going to be maintained. From now on all the previous versions are legacy. API of versions 5.x are fully backward compatible with all 4.x. Technical migrating to 5.x should be hassle free.
See the version list below for details.
Install-Package MathParser.org-mXparser -Version 4.4.2
dotnet add package MathParser.org-mXparser --version 4.4.2
<PackageReference Include="MathParser.org-mXparser" Version="4.4.2" />
paket add MathParser.org-mXparser --version 4.4.2
#r "nuget: MathParser.org-mXparser, 4.4.2"
// Install MathParser.org-mXparser as a Cake Addin
#addin nuget:?package=MathParser.org-mXparser&version=4.4.2
// Install MathParser.org-mXparser as a Cake Tool
#tool nuget:?package=MathParser.org-mXparser&version=4.4.2
v.4.4.2 (2020-01-26): Gemoni - Bug fixing
- #200 System.OutOfMemoryException: Array dimensions exceeded supported range (https://github.com/mariuszgromada/MathParser.org-mXparser/issues/200)
- #199 cancelCurrentCalculation does not stop for some expressions (https://github.com/mariuszgromada/MathParser.org-mXparser/issues/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
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"
If you find the software useful you might consider below information
- Donation to support my work
- Scalar Pro - The Most Advanced Scientific Calculator app purchase also supports my work
- Scalar Lite - The Most Advanced Scientific Calculator app download and review is also a support
Thank you!
Product | Versions |
---|---|
.NET | net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows |
.NET Core | netcoreapp1.0 netcoreapp1.1 netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1 |
.NET Standard | netstandard1.0 netstandard1.1 netstandard1.2 netstandard1.3 netstandard1.4 netstandard1.5 netstandard1.6 netstandard2.0 netstandard2.1 |
.NET Framework | net20 net35 net40 net403 net45 net451 net452 net46 net461 net462 net463 net47 net471 net472 net48 |
MonoAndroid | monoandroid |
MonoMac | monomac |
MonoTouch | monotouch |
Tizen | tizen30 tizen40 tizen60 |
Universal Windows Platform | uap uap10.0 |
Windows Phone | wp8 wp81 wpa81 |
Windows Store | netcore netcore45 netcore451 |
Xamarin.iOS | xamarinios |
Xamarin.Mac | xamarinmac |
Xamarin.TVOS | xamarintvos |
Xamarin.WatchOS | xamarinwatchos |
This package has no dependencies.
NuGet packages (6)
Showing the top 5 NuGet packages that depend on MathParser.org-mXparser:
Package | Downloads |
---|---|
FrontLookCoreLibraryAssembly
This package adds an asp.net core class library! |
|
LightConversion.Topas4
Library to control optical parametric amplifiers by Light Conversion. |
|
TTRPG.Engine
Manage game algorithms in serializable structures. https://github.com/timjen3/ttrpg-engine/blob/main/Readme.md |
|
ProCode.Business
Package Description |
|
Vsa.Framework
Vsa Framework |
GitHub repositories (3)
Showing the top 3 popular GitHub repositories that depend on MathParser.org-mXparser:
Repository | Stars |
---|---|
ArduPilot/MissionPlanner
Mission Planner Ground Control Station (c# .net)
|
|
MatterHackers/MatterControl
3D printing software for Windows, Mac and Linux
|
|
MUnique/OpenMU
This project aims to create an easy to use, extendable and customizable server for a MMORPG called "MU Online".
|
Version | Downloads | Last updated | |
---|---|---|---|
5.0.4 | 183 | 5/22/2022 | |
5.0.3 | 83 | 5/21/2022 | |
5.0.2 | 2,770 | 4/18/2022 | |
5.0.1 | 864 | 4/10/2022 | |
5.0.0 | 63 | 4/10/2022 | |
4.4.2 | 414,133 | 1/25/2020 | |
4.4.1 | 4,602 | 1/15/2020 | |
4.4.0 | 25,760 | 1/11/2020 | |
4.3.3 | 292,257 | 1/27/2019 | |
4.3.2 | 1,834 | 1/25/2019 | |
4.3.1 | 4,352 | 1/19/2019 | |
4.3.0 | 575 | 1/19/2019 | |
4.2.2 | 48,626 | 10/11/2018 | |
4.2.1 | 21,765 | 7/18/2018 | |
4.2.0 | 1,090 | 7/15/2018 | |
4.1.1 | 85,450 | 7/28/2017 | |
4.1.0 | 1,762 | 7/8/2017 | |
4.0.0.2 | 9,309 | 4/16/2017 | |
4.0.0.1 | 1,439 | 4/8/2017 | |
4.0.0 | 1,514 | 3/26/2017 | |
3.0.0 | 25,685 | 5/17/2016 | |
2.4.0.2 | 1,376 | 3/19/2016 | |
2.4.0.1 | 1,080 | 3/12/2016 | |
2.4.0 | 1,248 | 3/12/2016 |
v.4.4 Gemoni: API improvements: 1. Canonical rounding solving the problem of floating-point arithmetic artifact, 2. ArgumentExtension allowing user defined arguments implementation via source code, 3. Binaries also covering new frameworks: .NET Core 3.1, .NET Standard 2.1, .NET Framework 4.8