Мкспарсер
![]() | |
Оригинальный автор(ы) | Мариуш Громада |
---|---|
Первоначальный выпуск | январь 2010 г |
Стабильная версия | 6.0.0 / 19 мая 2024 г |
Репозиторий | github |
Написано в | Ява , С# |
Платформа | JVM , Android , .NET , .NET Core , .NET Standard, Windows Phone , MONO , Xamarin , Xamarin.iOS , Xamarin.Android |
Веб-сайт | математический анализатор |
mXparser — это с открытым исходным кодом /оценщик математических выражений анализатор , обеспечивающий возможность вычисления различных выражений во время выполнения . [1] Определения выражений даются в виде обычного текста, затем проверяются с точки зрения грамматики/синтаксиса и, наконец, вычисляются. библиотеки Исходный код поддерживается отдельно для Java и C# , предоставляя один и тот же API для Java/JVM , Android , .NET и Mono ( соответствует спецификации общего языка ).
Основные возможности/примеры использования
[ редактировать ]mXparser предоставляет такие функциональные возможности, как: базовые вычисления, подразумеваемое умножение, встроенные константы и функции, операции числового исчисления, повторяющиеся операторы, определяемые пользователем константы, определяемые пользователем функции, определяемую пользователем рекурсию, поддержку математических символов Unicode .
Базовые операторы [2]
[ редактировать ]mXparser поддерживает основные операторы, такие как: сложение '+' , вычитание '-' , умножение '*' , деление '/' , факториал '!' , степень '^' , по модулю '#' .
Expression e = new Expression("2+3/(4+5)^4");double v = e.calculate();
Подразумеваемое умножение [2]
[ редактировать ]Expression e = new Expression("2(3+4)3");double v = e.calculate();
Expression e = new Expression("2pi(3+4)2sin(3)e");double v = e.calculate();
Можно комбинировать типичные выражения с бинарными отношениями (например: больше '>' , меньше '<' , равенство '=' , неравенство '<>' , больше или равно '>=', меньше или равно '< ='), поскольку каждая оценка отношения приводит либо к «1» для истинного результата, либо к «0» для ложного результата .
Expression e = new Expression("(2<3)+5");double v = e.calculate();
Булева логика также работает, предполагая эквивалентность «1» как истинного и «0» как ложного . Поддерживаемые логические операторы включают: соединение AND , дизъюнкция OR , NAND штрих Шеффера , NOR , исключающее ИЛИ XOR , импликация IMP , обратная импликация CIMP , неимпликация материала NIMP , обратная неимпликация CNIMP , логическое двуусловное выражение EQV , отрицание .
Expression e = new Expression("1 --> 0");double v = e.calculate();
Встроенные математические функции [2]
[ редактировать ]Поддерживаются общие математические функции (унарные, двоичные и переменное число аргументов), в том числе: тригонометрические функции , обратные тригонометрические функции , функции логарифма , экспоненциальная функция , гиперболические функции , обратные гиперболические функции , числа Белла , числа Люка , числа Стирлинга , функция подсчета простых чисел. , экспоненциальная интегральная функция , логарифмическая интегральная функция , смещенный логарифмический интеграл , биномиальный коэффициент и другие.
Expression e = new Expression("sin(0)+ln(2)+log(3,9)");double v = e.calculate();
Expression e = new Expression("min(1,2,3,4)+gcd(1000,100,10)");double v = e.calculate();
Expression e = new Expression("if(2<1, 3, 4)");double v = e.calculate();
Expression e = new Expression("iff(2<1, 1; 3<4, 2; 10<2, 3; 5<10, 4)");double v = e.calculate();
Встроенные математические константы [2]
[ редактировать ]Встроенные математические константы с высокой точностью.
Expression e = new Expression("sin(pi)+ln(e)");double v = e.calculate();
Итерированные операторы [2]
[ редактировать ]Итерированное суммирование и операторы произведения .
Expression e = new Expression("sum(i, 1, 10, ln(i))");double v = e.calculate();
Expression e = new Expression("prod(i, 1, 10, sin(i))");double v = e.calculate();
Численное дифференцирование и интегрирование [2]
[ редактировать ]mXparser обеспечивает реализацию следующих вычислительных операций: дифференцирование и интегрирование .
Expression e = new Expression("der( sin(x), x )");double v = e.calculate();
Expression e = new Expression("int( sqrt(1-x^2), x, -1, 1)");double v = e.calculate();
простых чисел Поддержка [2]
[ редактировать ]Expression e = new Expression("ispr(21)");double v = e.calculate();
Expression e = new Expression("Pi(1000)");double v = e.calculate();
Expression e = new Expression("√2");double v = e.calculate();
Expression e = new Expression("∜16 + ∛27 + √16");double v = e.calculate();
Expression e = new Expression("∑(i, 1, 5, i^2)");double v = e.calculate();
Элементы, определяемые пользователем
[ редактировать ]Библиотека предоставляет API для создания пользовательских объектов, таких как константы, аргументы, функции.
Пользовательские константы [3]
[ редактировать ]Constant t = new Constant("t = 2*pi");Expression e = new Expression("sin(t)", t);double v = e.calculate();
Пользовательские аргументы [3]
[ редактировать ]Argument x = new Argument("x = 5");Argument y = new Argument("y = 2*x", x);Expression e = new Expression("sin(x)+y", x, y);double v = e.calculate();
Пользовательские функции [3]
[ редактировать ]Function f = new Function("f(x, y) = sin(x)+cos(y)");Expression e = new Expression("f(1,2)", f);double v = e.calculate();
Пользовательские вариативные функции [3]
[ редактировать ]Function f = new Function("f(...) = sum( i, 1, [npar], par(i) )");Expression e = new Expression("f(1,2,3,4)", f);double v = e.calculate();
Пользовательская рекурсия [3]
[ редактировать ]Function fib = new Function("fib(n) = iff( n>1, fib(n-1)+fib(n-2); n=1, 1; n=0, 0 ) )");Expression e = new Expression("fib(10)", fib); double v = e.calculate();
Требования [3]
[ редактировать ]Документация
[ редактировать ]- Учебное пособие [3]
- Javadoc API Спецификация [4]
mXparser — исходный код
[ редактировать ]Исходный код поддерживается и публикуется на GitHub . [5]
См. также
[ редактировать ]- Список числовых библиотек
- Список программного обеспечения для численного анализа
- Математическое программное обеспечение
- Exp4j
Ссылки
[ редактировать ]Внешние ссылки
[ редактировать ]- Бесплатное математическое программное обеспечение
- Разбор
- программное обеспечение 2010 года
- Бесплатное программное обеспечение, написанное на Java (языке программирования).
- Бесплатное программное обеспечение, написанное на C Sharp.
- Программное обеспечение, использующее лицензию BSD
- Бесплатное мобильное программное обеспечение
- Программное обеспечение, использующее Mono (программное обеспечение)
- Бесплатное программное обеспечение Android с открытым исходным кодом.
- Программное обеспечение .NET Framework
- Системы компьютерной алгебры