Mxparser
Originalförfattare | Mariusz Gromada |
---|---|
Initial release | januari 2010 |
Stabil frisättning | 5.0.7 / 21 augusti 2022
|
Förvar | |
Skrivet i | Java , C# |
Plattform | JVM , Android , .NET , .NET Core , .NET Standard, Windows Phone , MONO , Xamarin , Xamarin.iOS , Xamarin.Android |
Hemsida |
mXparser är en öppen källkod för matematiska uttryckstolkare / utvärderare som ger möjlighet att beräkna olika uttryck samtidigt . Uttrycksdefinitioner ges som vanlig text, verifieras sedan i termer av grammatik/syntax , slutligen beräknas. Bibliotekets källkod upprätthålls separat för Java och C# , vilket ger samma API för Java/JVM , Android , .NET och Mono ( Compatible Language Specification) .
Huvudfunktioner / användningsexempel
mXparser levererar funktioner som: grundläggande beräkningar, implicit multiplikation, inbyggda konstanter och funktioner, numeriska kalkyloperationer, itererade operatorer, användardefinierade konstanter, användardefinierade funktioner, användardefinierad rekursion, stöd för matematiska Unicode-symboler .
Grundläggande operatörer
mXparser stöder grundläggande operatorer, såsom: addition '+' , subtraktion '-' , multiplikation '*' , division '/' , faktoriell '!' , effekt '^' , modulo '#' .
Uttryck e = nytt uttryck ( "2+3/(4+5)^4" ) ; dubbel v = e . beräkna ();
Underförstådd multiplikation
Uttryck e = nytt uttryck ( "2(3+4)3") ; dubbel v = e . beräkna ();
Uttryck e = nytt uttryck ( "2pi(3+4)2sin(3)e" ); dubbel v = e . beräkna ();
Binära relationer
Det är möjligt att kombinera typiska uttryck med binära relationer (som: större än '>' , mindre än '<' , likhet '=' , olikhet '<>' , större eller lika '>=', lägre eller lika '< ='), eftersom varje relationsutvärdering resulterar i antingen '1' för sant resultat eller '0' för falskt .
Uttryck e = nytt uttryck ( "(2<3)+5") ; dubbel v = e . beräkna ();
boolesk logik
Boolesk logik fungerar också under antagande av ekvivalensen av '1 som sant ' och '0 som falskt '. Stödda booleska operatorer inkluderar: AND konjunktion , OR disjunktion , NAND Sheffer stroke , NOR , XOR Exclusive OR , IMP Implikation , CIMP Converse implikation , NIMP Material nonimplication , CNIMP Converse nonimplication , EQV Logical biconditional , Negation .
Uttryck e = nytt uttryck ( "1 --> 0") ; dubbel v = e . beräkna ();
Inbyggda matematiska funktioner
Stöds vanliga matematiska funktioner (unära, binära och variabelt antal argument), inklusive: trigonometriska funktioner , inversa trigonometriska funktioner , logaritmfunktioner , exponentialfunktion , hyperboliska funktioner , inversa hyperboliska funktioner , klocktal , Lucas-tal , Stirlingtal , primtalsfunktion , exponentiell integralfunktion , logaritmisk integralfunktion , offset logaritmisk integral , binomialkoefficient och andra.
Uttryck e = nytt uttryck ( "sin(0)+ln(2)+log(3,9)" ) ; dubbel v = e . beräkna ();
Uttryck e = nytt uttryck ( "min(1,2,3,4)+gcd(1000,100,10)") ; dubbel v = e . beräkna ();
Uttryck e = nytt uttryck ( "if(2<1, 3, 4)") ; dubbel v = e . beräkna ();
Uttryck e = nytt uttryck ( "iff(2<1, 1; 3<4, 2; 10<2, 3; 5<10, 4)") ; dubbel v = e . beräkna ();
Inbyggda matematikkonstanter
Inbyggda matematiska konstanter, med hög precision.
Uttryck e = nytt uttryck ( "sin(pi)+ln(e)" ); dubbel v = e . beräkna ();
Itererade operatörer
Itererad summering och produktoperatörer .
Uttryck e = nytt uttryck ( "summa(i, 1, 10, ln(i))" ) ; dubbel v = e . beräkna ();
Uttryck e = nytt uttryck ( "prod(i, 1, 10, sin(i))" ) ; dubbel v = e . beräkna ();
Numerisk differentiering och integration
mXparser levererar implementering av följande kalkyloperationer: differentiering och integration .
Uttryck e = nytt uttryck ( "der( sin(x), x )" ) ; dubbel v = e . beräkna ();
Uttryck e = nytt uttryck ( "int( sqrt(1-x^2), x, -1, 1)" ) ; dubbel v = e . beräkna ();
Stöd för primtal
Uttryck e = nytt uttryck ( "ispr(21)" ) ; dubbel v = e . beräkna ();
Uttryck e = nytt uttryck ( "Pi(1000)" ) ; dubbel v = e . beräkna ();
Unicode matematiska symboler stöder
Uttryck e = nytt uttryck ( "√2" ); dubbel v = e . beräkna ();
Uttryck e = nytt uttryck ( "∜16 + ∛27 + √16") ; dubbel v = e . beräkna ();
Uttryck e = nytt uttryck ( "∑(i, 1, 5, i^2)" ); dubbel v = e . beräkna ();
Element definierade av användaren
Library tillhandahåller API för att skapa användardefinierade objekt, såsom: konstanter, argument, funktioner.
Användardefinierade konstanter
Konstant t = ny konstant ( "t = 2*pi") ; Uttryck e = nytt Uttryck ( "sin(t)", t ) ; dubbel v = e . beräkna ();
Användardefinierade argument
Argument x = nytt argument ( "x = 5") ; Argument y = nytt Argument ( "y = 2*x" , x ) ; Uttryck e = nytt Uttryck ( "sin(x)+y" , x , y ); dubbel v = e . beräkna ();
Användardefinierade funktioner
Funktion f = ny Funktion ( "f(x, y) = sin(x)+cos(y)" ); Uttryck e = nytt uttryck ( "f(1,2)", f ) ; dubbel v = e . beräkna ();
Användardefinierade variadiska funktioner
Funktion f = ny Funktion ( "f(...) = summa( i, 1, [npar], par(i) )" ) ; Uttryck e = nytt uttryck ( "f(1,2,3,4)" , f ) ; dubbel v = e . beräkna ();
Användardefinierad rekursion
Funktion fib = ny Funktion ( "fib(n) = iff( n>1, fib(n-1)+fib(n-2); n=1, 1; n=0, 0 ) )" ) ; Uttryck e = nytt uttryck ( "fib(10)", fib ) ; dubbel v = e . beräkna ();
Krav
Dokumentation
- Handledning
- Javadoc API- specifikation
mXparser - källkod
Källkoden underhålls och delas på GitHub .
Se även
- Lista över numeriska bibliotek
- Lista över programvara för numerisk analys
- Matematisk programvara
- Exp4j
externa länkar
- MathParser.org
- mXparser på NuGet
- mXparser på Apache Maven
- Skalär drivs av mXparser
- ScalarMath.org drivs av mXparser
- .NET Framework-programvara
- 2010 programvara
- Datoralgebrasystem
- Gratis Android-programvara med öppen källkod
- Gratis programvara för matematik
- Gratis mobil programvara
- Gratis programvara programmerad i C Sharp
- Gratis programvara programmerad i Java (programmeringsspråk)
- Parsing
- Programvara som använder Mono (programvara)
- Programvara som använder BSD-licensen