mXparser – wysoce elastyczny parser (interpreter) wyrażeń matematycznych dla JAVA oraz C# .NET
mXparser – wersja 1.0.2 dostępna do pobrania
Zmiana w stosunku do 1.0.1 to poprawa kontroli składni w funkcji definiowanej przez użytkownika. Do wersji 1.0.1 użycie argumentu rekurencyjnego w funkcji definiowanej przez użytkownika powodowało zwiększenie liczby oczekiwanych parametrów wywołania funkcji. Wartość argumentu rekurencyjnego jest wyznaczana automatycznie, stąd w kontroli składni (weryfikując liczbę podanych parametrów) taki argument należy pominąć. Od wersji 1.0.2 liczba parametrów funkcji definiowanej przez użytkownika opiera się na bazie liczby argumentów pomniejszonej o argumenty rekurencyjne.
Przykład
Poniżej przykład demonstrujący działanie wprowadzonej zmiany – proszę przesunąć tekst w celu uwidocznienia komentarzy.
import org.mariuszgromada.math.mxparser.*; public class mXparserTests { public static void main(String[] args) { RecursiveArgument z = new RecursiveArgument("z","z(n-1)^2+c", "n"); /* Definicja argumentu rekurencyjnego */ z.addBaseCase(0, 0); /* Definicja elementu początkowego */ Constant c = new Constant("c", 0.3); /* Deklaracja stałej występującej w równaniu rekurencyjnym */ z.addConstants(c); /* Wskazanie argumentowi oczekiwanej stałej 'c' */ Function diff1 = new Function("diff1", "z(n) - z(n-1)", "n"); /* Definicja funkcji o parametrze n opartej również na argumencie rekurencyjnym */ diff1.addArguments(z); /* Wskazanie funkcji oczekiwanego argumentu 'z' */ System.out.println(diff1.calculate(10)); /* Obliczenie wartości funkcji + wyświetlenie wyniku */ } }
Rezultat
0.17863353779409574
Pozdrowienia,
Mariusz Gromada

