Мне нужно что-то встроить в мою программу на C/C++ для интерпретации формул x * log (x) или sin (x). Я хотел бы что-то маленькое и простое, иначе я могу просто вставлять Python, Ch или Scheme, или вы называете это. Но все, что мне нужно, это простые формулы. Я искал в Интернете без везения. Хотя я не требую этого, производительность (например, использование простой JIT) будет бонусом.Встраиваемый интерпретатор формул
2
A
ответ
4
Lua - это, безусловно, самый простой для внедрения и использования и там это очень маленький и очень быстро версия с JIT: http://luajit.org/
4
5
Использовать обратную польский обозначение. Существует несколько алгоритмов:
1. Разберем уравнение и преобразуйте в инфиксную нотацию (это легко, вы просто идентифицируете цепочку символов)
2. Используя алгоритм маневрового двора Дейкстры, преобразуйте инфикс в RPN.
3. Используя DFS, вычислите выражение
Я уверен, что в сети существует множество реализаций. Я даже написал свои собственные несколько лет назад (без функции).
0
FFmpeg имеет очень хороший тот, который вы должны проверить.
0
Как насчет написания собственной простой стековой машины для расчета таких формул?
Я успешно ассимилировал luajit в своем коде сейчас. Хотя мне понадобилось пару часов для выяснения того, что luaL_loadbuffer нуждается в luaL_pcall после него ... кроме того, что он работает o.k. – dsign
Прохладный! Удачи с вашим проектом! –