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