¿Alguien sabe un buen enfoque/libs para hacer cálculos algebraicos en C++?cálculo simbólico
Tengo una aplicación desarrollada en C++ que necesita hacer cálculos algebraicos. Por ahora construí un analizador de C++ que acepta expresiones en forma de cadenas como "5 + (2 - MYFUNC (3))" que se tokenizan en estructuras y luego se convierten en notación de postfijo usando el algoritmo de yarda de derivación y se evalúan.
El MYFUNC en estas expresiones son mis propias funciones definidas que pueden hacer algunos cálculos complejos.
Esta es una aplicación de alto rendimiento, las expresiones también tienen variables que están dinámicamente reemplazados con los valores y la expresión se vuelve a evaluar
por ejemplo var1 + (2 - MYFUNC (var2)) -> con var1 y var2 reemplazados por algunos valores durante el curso de la ejecución y reevaluados
Estoy usando Linux y hasta ahora encontré Giac library pero no estoy seguro de si es bueno , cualquier comentario sería bienvenido.
¿Cómo se suele enfrentar la gente a este problema? El lenguaje principal en este caso es C++.
Gracias, lo investigaré. Ya estaba en una ruta similar de búsqueda en Boost :: Spirit para crear una DSL para esto, pero sentía que se estaba volviendo demasiado. Suena desde los comentarios hasta el momento que la función C compilada sería una solución muy eficiente. Solo necesito encontrar las herramientas adecuadas. –