Est-ce que quelqu'un connaît une bonne approche/libs pour faire des calculs algébriques en C++?calcul symbolique
J'ai une application en cours de développement en C++ qui a besoin de faire un calcul algébrique. Pour l'instant je construis un analyseur C++ qui accepte des expressions sous forme de chaînes comme "5 + (2 - MYFUNC (3))" qui se transforme en structures et qui est ensuite converti en notation postfixée en utilisant l'algorithme Shunt Yard et évalué. MYFUNC dans ces expressions sont mes propres fonctions définies qui peuvent effectuer des calculs complexes.
Ceci est une application de haute performance, les expressions ont aussi des variables qui sont dynamiquement remplacées par des valeurs et l'expression est réévalué
par exemple var1 + (2 - MYFUNC (var2)) -> avec var1 et var2 remplacées par quelques valeurs au cours de la course et réévaluées
J'utilise Linux et j'ai trouvé Giac library mais je ne sais pas si c'est bon , Tous les commentaires seraient les bienvenus.
Comment les gens abordent-ils généralement ce problème? La langue principale dans ce cas est C++.
Merci, je vais y jeter un coup d'oeil. J'étais déjà sur le même chemin en regardant Boost :: Spirit pour créer une DSL pour cela mais je sentais que ça devenait exagéré. Il semble que des commentaires jusqu'à présent que la fonction C compilé serait une solution très performante. Juste besoin de trouver les bons outils. –