Mxparser
Oryginalni autorzy | Mariusza Gromady |
---|---|
Pierwsze wydanie | styczeń 2010 |
Wersja stabilna | 5.0.7 / 21 sierpnia 2022
|
Magazyn | |
Napisane w | Jawa , C# |
Platforma | JVM , Android , .NET , .NET Core , .NET Standard, Windows Phone , MONO , Xamarin , Xamarin.iOS , Xamarin.Android |
Strona internetowa |
mXparser to parser /ocena wyrażeń matematycznych typu open source , który umożliwia obliczanie różnych wyrażeń w czasie wykonywania . Definicje wyrażeń podawane są jako zwykły tekst, następnie weryfikowane pod względem gramatycznym/składniowym , ostatecznie obliczane. Kod źródłowy biblioteki jest obsługiwany oddzielnie dla języka Java i języka C# , zapewniając ten sam interfejs API dla środowiska Java/JVM , Android , .NET i Mono ( Zgodność ze specyfikacją wspólnego języka ).
Główne cechy / przykłady użycia
mXparser zapewnia takie funkcjonalności, jak: podstawowe obliczenia, mnożenie implikowane, wbudowane stałe i funkcje, operacje na rachunku różniczkowym, operatory iteracyjne, stałe zdefiniowane przez użytkownika, funkcje zdefiniowane przez użytkownika, rekurencja zdefiniowana przez użytkownika, obsługa symboli matematycznych Unicode .
Podstawowe operatory
mXparser obsługuje podstawowe operatory, takie jak: dodawanie '+' , odejmowanie '-' , mnożenie '*' , dzielenie '/' , silnia '!' , potęga '^' , modulo '#' .
Wyrażenie e = nowe Wyrażenie ( "2+3/(4+5)^4" ); podwójne v = mi . obliczyć ();
Implikowane mnożenie
Wyrażenie e = nowe Wyrażenie ( "2(3+4)3" ); podwójne v = mi . obliczyć ();
Wyrażenie e = nowe Wyrażenie ( "2pi(3+4)2sin(3)e" ); podwójne v = mi . obliczyć ();
Relacje binarne
Możliwe jest łączenie typowych wyrażeń relacjami binarnymi (takimi jak: większe niż '>' , mniejsze niż '<' , równość '=' , nierówność '<>' , większe lub równe '>=', mniejsze lub równe '< ='), ponieważ każda ocena relacji daje wynik „1” dla wyniku true lub „0” dla false .
Wyrażenie e = nowe Wyrażenie ( "(2<3)+5" ); podwójne v = mi . obliczyć ();
Logika boolowska
Logika boolowska działa również przy założeniu równoważności „1 jako prawdy ” i „0 jako fałszu ”. Obsługiwane operatory boolowskie obejmują: koniunkcja AND , alternatywna OR , obrys Sheffera NAND , NOR , XOR wyłączne OR , implikacja IMP , implikacja odwrotna CIMP , nieimplikacja materialna NIMP , nieimplikacja odwrotna CNIMP , dwuwarunkowa logiczna EQV , Negacja .
Wyrażenie e = nowe Wyrażenie ( "1 --> 0" ); podwójne v = mi . obliczyć ();
Wbudowane funkcje matematyczne
Obsługiwane wspólne funkcje matematyczne (jednoargumentowe, binarne i zmienna liczba argumentów), w tym: funkcje trygonometryczne , odwrotne funkcje trygonometryczne , funkcje logarytmiczne , funkcja wykładnicza , funkcje hiperboliczne , odwrotne funkcje hiperboliczne , liczby Bella , liczby Lucasa , liczby Stirlinga , funkcja liczenia liczb pierwszych , całka wykładnicza , całka logarytmiczna , przesunięta całka logarytmiczna , współczynnik dwumianu i inne.
Wyrażenie e = nowe Wyrażenie ( "sin(0)+ln(2)+log(3,9)" ); podwójne v = mi . obliczyć ();
Wyrażenie e = nowe Wyrażenie ( "min(1,2,3,4)+gcd(1000,100,10)" ); podwójne v = mi . obliczyć ();
Wyrażenie e = nowe Wyrażenie ( "if(2<1, 3, 4)" ); podwójne v = mi . obliczyć ();
Wyrażenie e = nowe Wyrażenie ( "iff(2<1, 1; 3<4, 2; 10<2, 3; 5<10, 4)" ) ; podwójne v = mi . obliczyć ();
Wbudowane stałe matematyczne
Wbudowane stałe matematyczne z dużą precyzją.
Wyrażenie e = nowe Wyrażenie ( "sin(pi)+ln(e)" ); podwójne v = mi . obliczyć ();
Operatory iteracyjne
sumowania iteracyjnego i iloczynu .
Wyrażenie e = nowe Wyrażenie ( "suma(i, 1, 10, ln(i))" ); podwójne v = mi . obliczyć ();
Wyrażenie e = nowe Wyrażenie ( "prod(i, 1, 10, sin(i))" ); podwójne v = mi . obliczyć ();
Różniczkowanie i całkowanie numeryczne
mXparser zapewnia implementację następujących operacji na rachunku różniczkowym: różniczkowanie i całkowanie .
Wyrażenie e = nowe Wyrażenie ( "der( sin(x), x )" ); podwójne v = mi . obliczyć ();
Wyrażenie e = nowe Wyrażenie ( "int( sqrt(1-x^2), x, -1, 1)" ); podwójne v = mi . obliczyć ();
Obsługa liczb pierwszych
Wyrażenie e = nowe Wyrażenie ( "ispr(21)" ); podwójne v = mi . obliczyć ();
Wyrażenie e = nowe Wyrażenie ( "Pi(1000)" ); podwójne v = mi . obliczyć ();
Obsługa symboli matematycznych Unicode
Wyrażenie e = nowe Wyrażenie ( "√2" ); podwójne v = mi . obliczyć ();
Wyrażenie e = nowe Wyrażenie ( "∜16 + ∛27 + √16" ); podwójne v = mi . obliczyć ();
Wyrażenie e = nowe Wyrażenie ( "∑(i, 1, 5, i^2)" ); podwójne v = mi . obliczyć ();
Elementy zdefiniowane przez użytkownika
Biblioteka udostępnia API do tworzenia obiektów zdefiniowanych przez użytkownika, takich jak: stałe, argumenty, funkcje.
Stałe zdefiniowane przez użytkownika
Stała t = nowa Stała ( "t = 2*pi" ); Wyrażenie e = nowe Wyrażenie ( "sin(t)" , t ); podwójne v = mi . obliczyć ();
Argumenty zdefiniowane przez użytkownika
Argument x = nowy Argument ( "x = 5" ); Argument y = nowy Argument ( "y = 2*x" , x ); Wyrażenie e = nowe Wyrażenie ( "sin(x)+y" , x , y ); podwójne v = mi . obliczyć ();
Funkcje zdefiniowane przez użytkownika
Funkcja f = nowa funkcja ( "f(x, y) = sin(x)+cos(y)" ); Wyrażenie e = nowe Wyrażenie ( "f(1,2)" , f ); podwójne v = mi . obliczyć ();
Zdefiniowane przez użytkownika funkcje zmiennoprzecinkowe
Funkcja f = nowa funkcja ( "f(...) = sum( i, 1, [npar], par(i) )" ); Wyrażenie e = nowe Wyrażenie ( "f(1,2,3,4)" , f ); podwójne v = mi . obliczyć ();
Rekurencja zdefiniowana przez użytkownika
Funkcja fib = nowa funkcja ( "fib(n) = iff(n>1, fib(n-1)+fib(n-2); n=1, 1; n=0, 0 )" ) ; Wyrażenie e = nowe Wyrażenie ( "fib(10)" , fib ); podwójne v = mi . obliczyć ();
Wymagania
Dokumentacja
- Instruktaż
- Specyfikacja API Javadoc
mXparser - kod źródłowy
Kod źródłowy jest utrzymywany i udostępniany w serwisie GitHub .
Zobacz też
- Wykaz bibliotek numerycznych
- Lista oprogramowania do analizy numerycznej
- Oprogramowanie matematyczne
- Exp4j
Linki zewnętrzne
- MathParser.org
- mXparser na NuGet
- mXparser na Apache Maven
- Skalar zasilany przez mXparser
- ScalarMath.org zasilany przez mXparser
- Oprogramowanie .NET Framework
- oprogramowanie 2010
- Systemy algebry komputerowej
- Darmowe i otwarte oprogramowanie na Androida
- Darmowy program do matematyki
- Darmowe oprogramowanie mobilne
- Darmowe oprogramowanie zaprogramowane w C Sharp
- Wolne oprogramowanie zaprogramowane w Javie (język programowania)
- Rozbiór gramatyczny zdania
- Oprogramowanie używające Mono (oprogramowanie)
- Oprogramowanie korzystające z licencji BSD