|
| 1 | + mXparser - Math Parser Java C# .NET (CLS) Library beta |
| 2 | + A flexible mathematical expressions parser for JAVA and C# .NET (CLS) |
| 3 | + |
| 4 | +v.2.1.0 (2016-01-02): |
| 5 | + * New static methods in class mxparser |
| 6 | + - mXparser.numberToHexString(number) + overloads: int, long, double |
| 7 | + - mXparser.hexString2AsciiString(String hexString) |
| 8 | + - mXparser.numberToAsciiString(number) + overloads: int, long, double |
| 9 | + - additional regression tests for the above methods |
| 10 | + |
| 11 | + * Hello World examples of how to use mXparser binary library (manual includes: |
| 12 | + projects, code, screenshots) for: |
| 13 | + - JAVA (project done in Eclipse Mars 1) |
| 14 | + - C# (project done in Visual Studio 2015) |
| 15 | + - Visual Basic (project done in Visual Studio 2015) |
| 16 | + - C++/CLI (project done in Visual Studio 2015) |
| 17 | + - F# (project done in Visual Studio 2015) |
| 18 | + |
| 19 | +v.2.0.0 (2015-12-31): Major update of the library providing more intuitive and |
| 20 | +much simpler to use API, no changes to the MathCollection. |
| 21 | + |
| 22 | + * Methods removed: setRecursiveMode(), disableRecursiveMode() |
| 23 | + - No need to manually mark recursive mode, mXparser is recognizing this |
| 24 | + mode automatically. |
| 25 | + - New handy and super easy (natural to use) constructors: |
| 26 | + |
| 27 | + * Constructors for user defined arguments (Argument / RecursiveArgument |
| 28 | + classes), user defined constant (Constant class), user defined functions |
| 29 | + (Function class). |
| 30 | + |
| 31 | + Sample code: |
| 32 | + |
| 33 | + Constant c = new Constant("c=5"); |
| 34 | + Constant c = new Constant("c=5+2"); |
| 35 | + Argument x = new Argument("x=5"); |
| 36 | + Constant c = new Constant("c=5+x", x); |
| 37 | + Argument y = new Argument("y=2*x", x); |
| 38 | + RecursiveArgument f = new RecursiveArgument("f(n)=n*f(n-1)"); |
| 39 | + Function f = new Function("f(x,y)=sin(x)+y"); |
| 40 | + Function f = new Function("f(n)=if( n>0, n*f(n-1), 1)"); |
| 41 | + |
| 42 | + |
| 43 | + * New methods: addDefinitions(PrimitiveElement... elements), |
| 44 | + removeDefinitions(PrimitiveElement... elements) |
| 45 | + |
| 46 | + * New class PrimitiveElement introduced only to simplify constructors of |
| 47 | + arguments, constants, functions and expressions. |
| 48 | + |
| 49 | + * Classes Argument, RecursiveArgument, Constant, Functions inherits now |
| 50 | + from PrimitiveElement class, it means you can call one method for |
| 51 | + adding / removing definitions by passing comma separated list of elements |
| 52 | + that can be different type (supported types: Argument, RecursiveArgument, |
| 53 | + Constant, Function). |
| 54 | + |
| 55 | + * Method addArguments(), addConstants(), addFunctions(),removeArguments(), |
| 56 | + removeConstants(), removeFunctions() are still public, but this will |
| 57 | + change in the future. |
| 58 | + |
| 59 | + Sample code: |
| 60 | + |
| 61 | + Constant c = new Constant("c=5"); |
| 62 | + Argument x = new Argument("x=10/2"); |
| 63 | + Expression e = new Expression("c+x"); |
| 64 | + e.addDefinitions(x,c); |
| 65 | + |
| 66 | + * Modified constructors for classes Argument, RecursiveArgument, Constant, |
| 67 | + Function |
| 68 | + |
| 69 | + * Constructors relying on directly given argument / constant / function |
| 70 | + name are now checking given name according to the predefined regular |
| 71 | + expression (the name must start with letters, and then |
| 72 | + digits / underscores/ letters are allowed). |
| 73 | + |
| 74 | + * Constructors removed – all constructors relying on ArrayList/List |
| 75 | + of arguments, constants, functions or on varidic type Argument, Constant, |
| 76 | + Function were substituted based on comma separated prams list of |
| 77 | + PrimitiveElement type, where Argument, Constant, Functions |
| 78 | + extend / inherit PrimitiveElement). |
| 79 | + |
| 80 | + * C# library is now Common Language Specification Compliant, it means |
| 81 | + mXparser is available right now to many other .NET languages |
| 82 | + (providing exactly the same API), including: |
| 83 | + |
| 84 | + - C# |
| 85 | + - Visual Basic .NET |
| 86 | + - C++/CLI |
| 87 | + - F# |
| 88 | + |
| 89 | + * Other changes |
| 90 | + |
| 91 | + - New extended list of regression tests (to cover new methods, |
| 92 | + constructors, etc...) |
| 93 | + - Implemented Performance Tests |
| 94 | + - Source code converted from cp150 to UTF-8 |
| 95 | + - Source code reorganization (some part of package level code of the |
| 96 | + Expression class was moved to the mXparser class) |
| 97 | + - Some bugs fixed (for sure there are others) |
| 98 | + |
| 99 | +v.1.0.3 (2015-12-15): |
| 100 | + * Fixed bug during indirect recursion (infinite loops while syntax checking) |
| 101 | + Some minor modification of code making it more portable across platforms |
| 102 | + |
| 103 | +v.1.0.2 (2015-12-06): |
| 104 | + * Fixed bug in user defined function related to RecursiveArguments |
| 105 | + |
| 106 | +v.1.0.1 (2010-04-17): |
| 107 | + * Fixed BAG BIG Problem with evaluation without parenthesis |
| 108 | + ID: 2985722http://sourceforge.net/tracker/index.php?func=detail&aid=2985722&group_id=300839&atid=1268726 |
| 109 | + |
| 110 | +v.1.0.0 (2010-02-01): |
| 111 | + * Initial release |
| 112 | + |
| 113 | + You may use this software under the condition of Simplified BSD License: |
| 114 | + |
| 115 | +Copyright 2010-2015 MARIUSZ GROMADA. All rights reserved. |
| 116 | + |
| 117 | +Redistribution and use in source and binary forms, with or without modification, are |
| 118 | +permitted provided that the following conditions are met: |
| 119 | + |
| 120 | + 1. Redistributions of source code must retain the above copyright notice, this list of |
| 121 | + conditions and the following disclaimer. |
| 122 | + |
| 123 | + 2. Redistributions in binary form must reproduce the above copyright notice, this list |
| 124 | + of conditions and the following disclaimer in the documentation and/or other materials |
| 125 | + provided with the distribution. |
| 126 | + |
| 127 | +THIS SOFTWARE IS PROVIDED BY MARIUSZ GROMADA ``AS IS'' AND ANY EXPRESS OR IMPLIED |
| 128 | +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND |
| 129 | +FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MARIUSZ GROMADA OR |
| 130 | +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| 131 | +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
| 132 | +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON |
| 133 | +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
| 134 | +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
| 135 | +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 136 | + |
| 137 | +The views and conclusions contained in the software and documentation are those of the |
| 138 | +authors and should not be interpreted as representing official policies, either expressed |
| 139 | +or implied, of MARIUSZ GROMADA. |
| 140 | + |
| 141 | +If you have any questions/bugs feel free to contact: |
| 142 | + |
| 143 | + Mariusz Gromada |
| 144 | + |
| 145 | + http://mathspace.pl/ |
| 146 | + http://mathparser.org/ |
| 147 | + http://github.com/mariuszgromada/MathParser.org-mXparser |
| 148 | + http://mariuszgromada.github.io/MathParser.org-mXparser/ |
| 149 | + http://mxparser.sourceforge.net/ |
| 150 | + |
| 151 | +mXparser tutorial: |
| 152 | +doc/tutorial.html |
| 153 | + |
| 154 | +mXparser API: |
| 155 | +doc/index.html |
| 156 | + |
| 157 | +If you would like to run some regression testing just hit commands listed below: |
| 158 | + |
| 159 | +JAVA: |
| 160 | +jav -cp mxparser.jar org.mariuszgromada.math.mxparser.Tutorial |
| 161 | +java -Xss515m -cp mxparser.jar org.mariuszgromada.math.mxparser.regressiontesting.RegTestExpressionV2 |
| 162 | +java -cp mxparser.jar org.mariuszgromada.math.mxparser.regressiontesting.RegTestExpressionAPI |
| 163 | +java -cp mxparser.jar org.mariuszgromada.math.mxparser.regressiontesting.RegTestSyntax |
| 164 | +java -cp mxparser.jar org.mariuszgromada.math.mxparser.regressiontesting.PerformanceTests |
| 165 | + |
| 166 | +C#: |
| 167 | +[Reflection.Assembly]::LoadFile("full\exact\path\to\mxparser.dll") |
| 168 | +[org.mariuszgromada.math.mxparser.Tutorial]::Start() |
| 169 | +[org.mariuszgromada.math.mxparser.regressiontesting.RegTestExpressionV2]::Main() |
| 170 | +[org.mariuszgromada.math.mxparser.regressiontesting.RegTestExpressionAPI]::Start() |
| 171 | +[org.mariuszgromada.math.mxparser.regressiontesting.RegTestSyntax]::Start() |
| 172 | +[org.mariuszgromada.math.mxparser.regressiontesting.PerformanceTests]::Start() |
0 commit comments