Qualcuno conosce un buon approccio/librerie per fare calcoli algebrici in C++?calcolo simbolico
Ho un'applicazione sviluppata in C++ che deve eseguire il calcolo algebrico. Per ora ho creato un parser C++ che accetta espressioni in forma di stringhe come "5 + (2 - MYFUNC (3))" che vengono tokenizzate in struct e poi convertite in notazione postfix usando l'algoritmo Shunting Yard e valutate.
Il MYFUNC in queste espressioni sono le mie funzioni definite che possono eseguire calcoli complessi.
tratta di un'applicazione ad alte prestazioni, le espressioni hanno anche variabili dinamicamente sostituiti con valori e l'espressione viene valutata
esempio var1 + (2 - MYFUNC (var2)) -> con var1 e var2 sostituiti da alcuni valori durante il corso della corsa e rivalutati
Sto usando Linux e finora ho trovato Giac library ma non sono sicuro che sia buono , qualsiasi commento sarebbe benvenuto.
In che modo le persone si avvicinano di solito a questo problema? La lingua principale in questo caso è C++.
Grazie, lo esaminerò. Avevo già intrapreso un percorso simile per cercare in Boost :: Spirit di creare una DSL per questo, ma sentivo che stava diventando eccessivo. Suona fin dai commenti finora che la funzione C compilata sarebbe una soluzione molto performante. Ho solo bisogno di trovare gli strumenti giusti. –