Mxparser

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