6 #include <ginac/ginac.h>
12 * Demonstrates the use of link_ex.
14 * When run for the first time link_ex will fail. This is a rude way of
15 * checking whether the needed .so file is available. The .so is then created
16 * by compile_ex using the filename parameter. When run again link_ex will use
17 * the existing .so file.
24 link_ex("compile3_testprg.so", fp);
25 cout << "Using existing 'compile3_testprg.so'." << endl;
27 catch (const std::exception& e) {
28 // hope the exception is just raised because of missing 'compile2_testprg.so' file,
29 // so being lazy no error management here ...
30 cout << "Error: " << e.what() << endl;
31 cout << "Building new 'compile3_testprg.so'." << endl;
35 // Optionally, compile with custom compiler flags:
36 // setenv("CXXFLAGS", "-O3 -fomit-frame-pointer -ffast-math", 1);
37 compile_ex(expr, a, b, fp, "compile3_testprg");
40 cout << "result of 2.3*1.5 is " << fp(2.3, 1.5) << endl;