Добрый день, ЛОР.
Ищу класс/библиотеку для C++, которому можно сначала скармливать формулы с арифметическими действиями и общеупотребительными математическими функциями (тригонометрия, логарифмы, всё вот это вот), а потом прокачивать через него массив аргументов и получать результат обработки по этим формулам.
Давным-давно был неплохой класс Parser от Jos de Jong, у которого объём нужных функций был близок к идеалу. Но во-первых, в сохранившихся у меня файлах нет информации о лицензии, а актуальные файлы в интернете не находятся. Тот же автор потом написал программу SpeqMath и все открытые наработки, похоже, из Сети убрал (ну или я плохо искал). Во-вторых, оптимальность реализации у него была так себе: формула парсилась всякий раз при вычислении очередного значения.
А хотелось бы найти интерпретатор с предварительным парсингом — к примеру, в конструктор передаётся строка с формулой, тут же парсится и преобразуется в последовательность кодов операций, отдельными методами передаются дополнительные переменные, и наконец, аргумент (или даже массив аргументов) для собственно расчётов.
Есть такие библиотеки? Желательно под LGPL или вообще под пермиссивной лицензией, ибо будет использоваться в проприетарном коде (но если найду, что улучшить в самой библиотеке, патчи автору зашлю, разумеется).
P.S. Читерство в виде вызова компилятора из своей программы не предлагать.