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