Кто-нибудь знает хороший подход / libs для выполнения алгебраических вычислений в C ++?
У меня есть приложение, разрабатываемое на c ++, которое должно выполнять алгебраические вычисления. На данный момент я создал синтаксический анализатор C ++, который принимает выражения в виде строк типа «5 + (2 - MYFUNC (3))», которые токенизируются в структуры, а затем преобразуются в постфиксную запись с использованием алгоритма Shunting Yard и оцениваются.
MYFUNC в этих выражениях - мои собственные определенные функции, которые могут выполнять некоторые сложные вычисления.
Это высокопроизводительное приложение, в выражениях также есть переменные, которые динамически заменяются значениями, а выражение переоценивается
например. var1 + (2 - MYFUNC (var2)) -> с заменой var1 и var2 на некоторые значения в ходе прогона и повторной оценкой
Я использую Linux и до сих пор нашел библиотеку Giac , но не уверен, что это хорошо, любые отзывы будут приветствоваться.
Как люди обычно подходят к этой проблеме? Основным языком в этом случае является C ++.