В MathGL есть специальные классы mglExpr
и mglExprC
для вычисления формул заданных строкой для действительных и комплексных чисел соответственно. Классы определены в #include <mgl2/data.h>
и #include <mgl2/datac.h>
соответственно. При создании класса происходит разбор формулы в древовидную структуру. А при вычислении только выполняется достаточно быстрый обход по дереву. В данный момент нет различия между верхним и нижним регистром. Если аргумент какой-либо функции лежит вне её области определения, то возвращается NaN. See Текстовые формулы.
mglExpr
:
mglExpr (const char *
expr)
¶mglExprC
:
mglExprC (const char *
expr)
¶HMEX
mgl_create_expr (const char *
expr)
¶HAEX
mgl_create_cexpr (const char *
expr)
¶Разбирает формулу expr и создает древовидную структуру, содержащую последовательность вызова функций и операторов для последующего быстрого вычисления формулы с помощью функций Calc()
и/или CalcD()
.
mglExpr
:
~mglExpr ()
¶mglExprC
:
~mglExprC ()
¶void
mgl_delete_expr (HMEX
ex)
¶void
mgl_delete_cexpr (HAEX
ex)
¶Удаляет объект типа mglExpr
.
mglExpr
: mreal
Eval (mreal
x, mreal
y, mreal
z)
¶mglExprC
: dual
Eval (dual
x, dual
y, dual
z)
¶mreal
mgl_expr_eval (HMEX
ex, mreal
x, mreal
y, mreal
z)
¶dual
mgl_cexpr_eval (HAEX
ex, dual
x, dual
y, dual
z)
¶Вычисляет значение формулы для 'x','r'
=x, 'y','n'
=y, 'z','t'
=z, 'a','u'
=u.
mglExpr
: mreal
Eval (mreal
var[26])
¶mglExprC
: dual
Eval (dual
var[26])
¶mreal
mgl_expr_eval_v (HMEX
ex, mreal *
var)
¶dual
mgl_cexpr_eval_v (HMEX
ex, dual *
var)
¶Вычисляет значение формулы для переменных в массиве var[0,...,’z’-’a’].