Hello, I am currently evaluating GiNaC for use in an engineering software that we use internally. Therefore, I am still inexperienced with it and only ask for some pointers. I have read in the news feed http://www.ginac.de/News.html that new C++11 features like "constexpr" are being implemented into GiNaC. My question is: how much can be done at compile time? Background: The basic workflow that we would like to optimize is the following: 1) Design an algorithm in C++, which involves manipulation of scientific formulae 2) Elaborate the "manipulation" part in a separate environment (mostly SageMath) 3) Translate the result of the separate CAS as C++ 4) Integrate the result into the original C++ algorithm This works, but has the following disadvantages: - it requires to leave one environment (C++ IDE) to the other (CAS environment) - translating the mathematical results to C++ is tedious and error prone (although it can be automated for simple cases) - it separates the various parts of the algorithm into different documents, which makes it hard to mantain Ideally then, we would use GiNaC instead of SageMath (or other CAS) to unify the code. However, we would like to remove the runtime overhead of expression manipulation and interpretation. I am looking for something like the "compilation of expressions to function pointers", but with the addition of compile-time expression manipulation. http://www.ginac.de/tutorial/#Compiling-expressions-to-C-function-pointers The closest I have found so far is ViennaMath, but it seems still very limited in features. http://viennamath.sourceforge.net/viennamath-example-integration.html Thank you for any help!
participants (1)
-
Matteo