mXparser - это анализатор математических выражений с открытым исходным кодом анализатор/вычислитель, обеспечивающий возможность вычисления различных выражений во время выполнения. Определения выражений даются в виде простого текста, затем проверяются с точки зрения грамматики/синтаксиса , после чего вычисляются.
Допустимые числовые форматы
| КЛЮЧЕВОЕ СЛОВО | КАТЕГОРИЯ | ОПИСАНИЕ | ПРИМЕР |
|---|---|---|---|
| Число | Десятичное число | Десятичное число | 1, 1.5, -2.3 |
| Число | Десятичное число | Десятичное число - научное представление | 1.2e10, -2.4e-10, 2.3E + 10 |
Основные функции / примеры использования
mXparser предоставляет такие функции, как: базовый вычисления, встроенные константы и функции, операции численного исчисления, повторяющиеся операторы, определяемые пользователем константы, определяемые пользователем функции, определяемая пользователем рекурсия.
Базовые операторы
| КЛЮЧЕВОЕ СЛОВО | КАТЕГОРИЯ | ОПИСАНИЕ | ПРИМЕР |
|---|---|---|---|
| + | Оператор | Добавление | а + б |
| - | Оператор | Вычитание | а - б |
| * | Оператор | Умножение | а * б |
| / | Оператор | Разделение | а / б |
| ^ | Оператор | Возведение в степень | а ^ б |
| ! | Оператор | Факториал | п! |
| # | Оператор | Функция по модулю | а # б |
Выражение e = new Expression ("2 + 3 / (4 + 5) ^ 4"); double v = e.calculate ();
Бинарные отношения
| КЛЮЧЕВОЕ СЛОВО | КАТЕГОРИЯ | ОПИСАНИЕ | ПРИМЕР |
|---|---|---|---|
| = | Бинарное отношение | Равенство | а = б |
| == | Бинарное отношение | Равенство | а == б |
| <> | Бинарное отношение | Неравенство | а <> б |
| ~= | Бинарное отношение | Неравенство | а ~ = Ь |
| != | Бинарное отношение | Неравенство | а! = Ь |
| < | Бинарное отношение | Ниже чем | а <б |
| > | Бинарное отношение | Больше чем | а> б |
| <= | Бинарное отношение | Меньше или равно | а <= б |
| > = | Бинарное отношение | Больше или равно | а> = б |
Можно комбинировать типичные выражения с бинарными отношениями (например: больше чем '>' , меньше чем '<', равенство '=' , неравенство '<>' , больше или равно '>=', меньше или равно '<='), так как каждая оценка отношения приводит либо к '1' для результата true или '0' для false .
Expression e = new Expression ("(2 <3)+5"); double v = e.calculate();
Булева логика
Boolean logic также работает, предполагая эквивалентность ' 1 как true 'и' 0 как false '. Поддерживаемые логические операторы включают: конъюнкция AND , OR дизъюнкция , NAND Sheffer stroke , NOR , XOR Exclusive OR , IMP Implication , CIMP Converse импликация , Неимпликация материала NIMP , Конверсия неимпликации CNIMP , Логическая двусмысленность EQV , Отрицание.
| КЛЮЧЕВОЕ СЛОВО | КАТЕГОРИЯ | ОПИСАНИЕ | ПРИМЕР |
|---|---|---|---|
| & | Логический оператор | Логическое соединение (И) | p & q |
| && | Логический оператор | Логическое соединение (И) | p && q |
| /\ | Логический оператор | Логическое соединение (И) | p / \ q |
| ~ & | Логический оператор | NAND - ход Шеффера | p ~ & q |
| ~ && | Логический оператор | NAND - ход Шеффера | p ~ && q |
| ~/\ | Логический оператор | NAND - ход Шеффера | р ~ / \ q |
| | | Логический оператор | Логическая дизъюнкция (ИЛИ) | p | q |
| || | Логический оператор | Логическая дизъюнкция (ИЛИ) | p || q |
| \/ | Логический оператор | Логическая дизъюнкция (ИЛИ) | р \ / д |
| ~| | Логический оператор | Логическое ИЛИ | р ~ | q |
| ~|| | Логический оператор | Логическое ИЛИ | p ~ || q |
| ~\/ | Логический оператор | Логическое ИЛИ | р ~ \ / д |
| (+) | Логический оператор | Эксклюзивное или (XOR) | р (+) д |
| -> | Логический оператор | Последствия (IMP) | p -> q |
| <- | Логический оператор | Конверс-вовлечение (CIMP) | р <- q |
| - /> | Логический оператор | Материальное отсутствие импликации (NIMP) | p - /> q |
| </ - | Логический оператор | Converse nonimplication (CNIMP) | р </ - q |
| <-> | Логический оператор | Логическая двусмысленность (EQV) | р <-> д |
| ~ | Логический оператор | Отрицание | ~p |
Выражение e = новое выражение ("1 ->0") ; double v = e.calculate ();
Встроенные математические функции
Поддерживаемая общая математика функции (унарные, двоичные и переменное количество аргументов), в том числе: тригонометрические функции , обратные тригонометрические функции , логарифмические функции , экспоненциальная функция , гиперболические функции , Обратные гиперболические функции , числа Белла , числа Люка , числа Стирлинга , функция подсчета простых чисел , экспоненциальная интегральная функция , логарифмическая интегральная функция , логарифмический интеграл смещения , биномиальный коэффициент и другие.
Выражение e = новое выражение ("sin (0) + ln (2) + log (3,9)"); двойной v = e.calculate (); Выражение e = новое выражение ("min (1,2,3,4) + gcd (1000,100,10)"); двойной v = e.calculate (); Выражение e = новое Выражение ("if (2 <1, 3, 4)"); double v = e.calculate(); Выражение e = новое Выражение (" iff (2 <1, 1; 3<4, 2; 10<2, 3; 5<10, 4)"); double v = e.calculate();
Встроенные математические константы
Встроенные математические константы с высокой точностью.
Выражение e = новое выражение ("sin (pi) + ln (e)"); double v = e.calculate ();
Итерированные операторы
Встроенные побитовые операторы
| КЛЮЧЕВОЕ СЛОВО | КАТЕГОРИЯ | ОПИСАНИЕ | ПРИМЕР |
|---|---|---|---|
| @~ | Побитовый оператор | Побитовое унарное дополнение | @~10 |
| @ & | Побитовый оператор | Побитовое И | 10 @ & 2 |
| @^ | Побитовый оператор | Побитовое исключающее ИЛИ | 10 @^ 2 |
| @| | Побитовый оператор | Поразрядное включающее ИЛИ | 10 @| 2 |
| @ << | Побитовый оператор | Подписанная левая смена | 10 @ << 2 |
| @ >> | Побитовый оператор | Подпись вправо | 10 @ >> 2 |
Встроенные унарные функции
| КЛЮЧЕВОЕ СЛОВО | КАТЕГОРИЯ | ОПИСАНИЕ | ПРИМЕРAMPLE |
|---|---|---|---|
| sin | Унарная функция | Тригонометрическая функция синуса | sin(x) |
| cos | Унарная функция | Тригонометрическая функция косинуса | cos(x) |
| tan | Унарная функция | Тригонометрическая функция тангенса | tan(x) |
| tg | Унарная функция | Тригонометрическая функция тангенса | tg(x) |
| ctan | Унарная функция | Тригонометрическая функция котангенса | ctan(x) |
| ctg | Унарная функция | Тригонометрическая функция котангенса | ctg(x) |
| cot | Унарная функция | Тригонометрическая функция котангенса | cot(x) |
| sec | Унарная функция | Тригонометрическая функция секанса | sec(x) |
| cosec | Унарная функция | Тригонометрическая функция косеканса | cosec(x) |
| csc | Унарная функция | Тригонометрическая функция косеканса | csc(x) |
| asin | Унарная функция | Обратная тригонометрическая функция синуса | asin(x) |
| arsin | Унарная функция | Обратная тригонометрическая функция синуса | arsin(x) |
| arcsin | Унарная функция | Обратная тригонометрическая функция синуса | arcsin(x) |
| acos | Унарная функция | Обратная тригонометрическая функция косинуса | acos(x) |
| arcos | Унарная функция | Обратная тригонометрическая функция косинуса | arcos(x) |
| arccos | Унарная функция | Обратная тригонометрическая функция косинуса | arccos(x) |
| atan | Унарная функция | Обратная тригонометрическая функция тангенса | atan(x) |
| arctan | Унарная функция | Обратная тригонометрическая функция тангенса | arctan(x) |
| atg | Унарная функция | Обратная тригонометрическая функция тангенса | atg(x) |
| arctg | Унарная функция | Обратная тригонометрическая функция тангенса | arctg(x) |
| actan | Унарная функция | Обратная тригонометрическая функция котангенса | actan(x) |
| arcctan | Унарная функция | Обратная тригонометрическая функция котангенса | arcctan(x) |
| actg | Унарная функция | Обратная тригонометрическая функция котангенса | actg(x) |
| arcctg | Унарная функция | Обратная тригонометрическая функция котангенса | arcctg(x) |
| acot | Унарная функция | Обратная тригонометрическая функция котангенса | acot(x) |
| arccot | Унарная функция | Обратная тригонометрическая функция котангенса | arccot(x) |
| ln | Унарная функция | Функция натурального логарифма (основание е) | ln(x) |
| log2 | Унарная функция | Функция двоичного логарифма (основание 2) | log2(x) |
| log10 | Унарная функция | Функция десятичного логарифма (основание 10) | log10(x) |
| rad | Унарная функция | Градусы в радианы функция | rad(x) |
| exp | Унарная функция | Экспоненциальная функция | exp(x) |
| sqrt | Унарная функция | SФункция квадратного корня | sqrt(x) |
| sinh | Унарная функция | Гиперболический синус | sinh(x) |
| cosh | Унарная функция | Гиперболический косинус | cosh(x) |
| tanh | Унарная функция | Гиперболический тангенс | tanh(x) |
| tgh | Унарная функция | Гиперболический тангенс | tgh(x) |
| ctanh | Унарная функция | Гиперболический котангенс | ctanh(x) |
| coth | Унарная функция | Гиперболический котангенс | coth(x) |
| ctgh | Унарная функция | Гиперболический котангенс | ctgh(x) |
| sech | Унарная функция | Гиперболический секанс | sech(x) |
| csch | Унарная функция | Гиперболический косеканс | csch(x) |
| cosech | Унарная функция | Гиперболический косеканс | cosech(x) |
| deg | Унарная функция | Радианы в градусы функция | deg(x) |
| abs | Унарная функция | Функция абсолютного значения | abs(x) |
| sgn | Унарная функция | Signum | sgn(x) |
| floor | Унарная функция | Floor | floor(x) |
| ceil | Унарная функция | Ceiling | ceil(x) |
| not | Унарная функция | Отрицание | not(x) |
| asinh | Унарная функция | Обратный гиперболический синус | asinh(x) |
| arsinh | Унарная функция | Обратный гиперболический синус | arsinh(x) |
| arcsinh | Унарная функция | Обратный гиперболический синус | arcsinh(x) |
| acosh | Унарная функция | Обратный гиперболический косинус | acosh(x) |
| arcosh | Унарная функция | Обратный гиперболический косинус | arcosh(x) |
| arccosh | Унарная функция | Обратный гиперболический косинус | arccosh(x) |
| atanh | Унарная функция | Обратный гиперболический тангенс | atanh(x) |
| arctanh | Унарная функция | Обратный гиперболический тангенс | arctanh(x) |
| atgh | Унарная функция | Обратный гиперболический тангенс | atgh(x) |
| arctgh | Унарная функция | Обратный гиперболический тангенс | arctgh(x) |
| actanh | Унарная функция | Обратный гиперболический котангенс | actanh(x) |
| arcctanh | Унарная функция | Обратный гиперболический котангенс | arcctanh(x) |
| acoth | Унарная функция | Обратный гиперболический котангенс | acoth(x) |
| arcoth | Унарная функция | Обратный гиперболический котангенс | arcoth(x) |
| arccoth | Унарная функция | Обратный гиперболический котангенс | arccoth(x) |
| actgh | Унарная функция | Обратный гиперболический котангенс | actgh(x) |
| arcctgh | Унарная функция | Обратный гиперболический котангенс | arcctgh(x) |
| asech | Унарная функция | Обратный гиперболический секанс | asech(x) |
| arsech | Унарная функция | Обратный гиперболический секанс | arsech(x) |
| arcsech | Унарная функция | Обратный гиперболический секанс | arcsech(x) |
| acsch | Унарная функция | Обратный гиперболический косеканс | acsch(x) |
| arcsch | Унарная функция | Обратный гиперболический косеканс | arcsch(x) |
| arccsch | Унарная функция | Обратный гиперболический косеканс | arccsch(x) |
| acosech | Унарная функция | Обратный гиперболический косеканс | acosech(x) |
| arcosech | Унарная функция | Обратный гиперболический косеканс | arcosech(x) |
| arccosech | Унарная функция | Обратный гиперболический косеканс | arccosech(x) |
| sinc | Унарная функция | Sinc (нормализованная) | sinc(x) |
| Sa | Унарная функция | Sinc (нормализованная) | Sa(x) |
| Sinc | Унарная функция | Sinc (ненормализованная) | Sinc(x) |
| Bell | Унарная функция | Bell число | Bell(x) |
| Luc | Унарная функция | Lucas число | Luc(n) |
| Fib | Унарная функция | Fibonacci число | Fib(n) |
| harm | Унарная функция | Harmonic число | harm(n) |
| ispr | Унарная функция | Тест на простое число (число простое?) | ispr(n) |
| Pi | Унарная функция | Функция подсчета простых чисел - Pi (n) | Pi(n) |
| Ei | Унарная функция | Экспоненциальная интегральная функция (неэлементарная специальная функция) - пример использования: Ei (x) | Ei(x) |
| li | Унарная функция | Логарифмическая интегральная функция (неэлементарная специальная функция) - пример использования: li (x) | li(x) |
| Li | Унарная функция | Логарифмическая интегральная функция смещения (неэлементарная специальная функция) - пример использования: Li (x) | Li(x) |
| erf | Унарная функция | Функция ошибок Гаусса (неэлементарная специальная функция) - пример использования: 2 + erf (x) | erf(x) |
| erfc | Унарная функция | Дополнительная функция ошибок Гаусса (неэлементарная специальная функция) - пример использования: 1 - erfc (x) | erfc(x) |
| erfInv | Унарная функция | Функция обратной ошибки Гаусса (неэлементарная специальная функция) - пример использования: erfInv (x) | erfInv(x) |
| erfcInv | Унарная функция | Обратная дополнительная функция ошибок Гаусса (неэлементарная специальная функция) - пример использования: erfcInv (x) | erfcInv(x) |
| ulp | Унарная функция | Unit на последнем месте - ulp (0.1) | ulp(x) |
Встроенные двоичные функции
| КЛЮЧЕВОЕ СЛОВО | КАТЕГОРИЯ | ОПИСАНИЕ | ПРИМЕР |
|---|---|---|---|
| log | Двоичная функция | Функция логарифма | log (а, б) |
| mod | Двоичная функция | Функция по модулю | mod (а, б) |
| C | Двоичная функция | Биномиальная функция коэффициента | С (п, к) |
| Bern | Двоичная функция | Числа Бернулли | Bern (п, к) |
| Stirl1 | Двоичная функция | Числа Стирлинга первого рода | Stirl1(n,k) |
| Stirl2 | Двоичная функция | Числа Стирлинга второго рода | Stirl2(n,k) |
| Worp | Двоичная функция | Число Ворпицкого | Worp (n, k) |
| Euler | Двоичная функция | Число Эйлера | Euler (п, к) |
| KDelta | Двоичная функция | Дельта Кронекера | KDelta(i,j) |
| EulerPol | Двоичная функция | EulerPol | EulerPol (м, х) |
| Harm | Двоичная функция | Номер гармоники | Harm (x, n) |
| rUni | Двоичная функция | Случайная величина - равномерное непрерывное распределение U (a, b), пример использования: 2 * rUni (2,10) | rUni (а, б) |
| rUnid | Двоичная функция | Случайная величина - равномерное дискретное распределение U {a, b}, пример использования: 2 * rUnid (2,100) | rUnid (а, б) |
| round | Двоичная функция | Половинное округление вверх, примеры использования: round (2.2, 0) = 2, round (2.6, 0) = 3, round (2.66,1) = 2.7 | round (х, п) |
| rNor | Двоичная функция | Случайная величина - нормальное распределение N (m, s) m - среднее, s - стандартное отклонение, пример использования: 3 * rNor (0,1) | rNor(m,s) |
Итерированное суммирование и product операторы.
Выражение e = новое выражение ("sum (i, 1, 10, ln (i))"); double v = e.calculate ();
Выражение e = новое выражение ("prod (i, 1, 10, sin (i))"); double v = e.calculate ();
Числовое дифференцирование и интегрирование
mXparser обеспечивает реализацию следующих операций исчисления: дифференцирование и интегрирование .
Выражение e = новое выражение ("der (sin (x), x)"); double v = e. Calculate ();
Выражение e = new Expression ("int (sqrt (1-x ^ 2), x, -1, 1)"); double v = e.calculate ();
Простые числа поддержка
Expression e = new Expression ("ispr (21)"); double v = e.calculate ();
Expression e = new E xpression («Пи (1000)»); двойной v = e.calculate ();
Элементы, определенные пользователем
Библиотека предоставляет API для создания определенных пользователем объектов, таких как: константы, аргументы, функции.
Пользовательские константы
Константа t = новое выражение ("t = 2 * pi"); Выражение e = новое выражение ("sin (t)", t); двойной v = e.calculate ();
Пользовательские аргументы
Аргумент x = новый аргумент ("x = 5"); Аргумент y = новый аргумент ("y = 2 * x", x); Выражение e = новое выражение ("sin (x) + y", x, y); двойной v = e.calculate ();
Пользовательские функции
Функция f = новая функция ("f (x, y) = sin (x) + cos (y)"); Выражение e = новое выражение ("f (1,2)", f); двойной v = e.calculate ();
Пользовательские вариативные функции
Функция f = новая функция ("f (...) = sum (i, 1, [npar], par (i))"); Выражение e = новое выражение ("f (1,2,3,4)", f); двойной v = e.calculate ();
Пользовательская рекурсия
Функция fib = new Function ("fib (n) = iff (n>1, fib (n-1) + fib (n-2); n = 1, 1) ; n = 0, 0)) "); Выражение e = новое выражение ("fib (10)", fib); двойной v = e.calculate (); Википедия site:360wiki.ru