| 25 | |
| 26 | template <typename T> |
| 27 | void polynomial() |
| 28 | { |
| 29 | typedef exprtk::symbol_table<T> symbol_table_t; |
| 30 | typedef exprtk::expression<T> expression_t; |
| 31 | typedef exprtk::parser<T> parser_t; |
| 32 | |
| 33 | const std::string expression_string = |
| 34 | "25x^5 - 35x^4 - 15x^3 + 40x^2 - 15x + 1"; |
| 35 | |
| 36 | const T r0 = T(0); |
| 37 | const T r1 = T(1); |
| 38 | T x = T(0); |
| 39 | |
| 40 | symbol_table_t symbol_table; |
| 41 | symbol_table.add_variable("x",x); |
| 42 | |
| 43 | expression_t expression; |
| 44 | expression.register_symbol_table(symbol_table); |
| 45 | |
| 46 | parser_t parser; |
| 47 | parser.compile(expression_string,expression); |
| 48 | |
| 49 | const T delta = T(1.0 / 100.0); |
| 50 | |
| 51 | for (x = r0; x <= r1; x += delta) |
| 52 | { |
| 53 | printf("%19.15f\t%19.15f\n", x, expression.value()); |
| 54 | } |
| 55 | } |
| 56 | |
| 57 | int main() |
| 58 | { |