| 3757 | |
| 3758 | template <typename T> |
| 3759 | bool run_test09() |
| 3760 | { |
| 3761 | { |
| 3762 | static const std::size_t rounds = 1000; |
| 3763 | |
| 3764 | for (std::size_t i = 0; i < rounds; ++i) |
| 3765 | { |
| 3766 | typedef exprtk::expression<T> expression_t; |
| 3767 | const std::string expression_string = |
| 3768 | "myfunc0(sin(x * pi),y / 2) + myfunc1(sin(x * pi),y / 2)+" |
| 3769 | "myfunc2(sin(x * pi),y / 2) + myfunc3(sin(x * pi),y / 2)+" |
| 3770 | "myfunc4(sin(x * pi),y / 2) + myfunc5(sin(x * pi),y / 2)+" |
| 3771 | "myfunc6(sin(x * pi),y / 2) + myfunc7(sin(x * pi),y / 2)+" |
| 3772 | "myfunc8(sin(x * pi),y / 2) + myfunc9(sin(x * pi),y / 2)+" |
| 3773 | "myfunc0(sin(x * pi),y / 2) + myfunc1(sin(x * pi),y / 2)+" |
| 3774 | "myfunc2(sin(x * pi),y / 2) + myfunc3(sin(x * pi),y / 2)+" |
| 3775 | "myfunc4(sin(x * pi),y / 2) + myfunc5(sin(x * pi),y / 2)+" |
| 3776 | "myfunc6(sin(x * pi),y / 2) + myfunc7(sin(x * pi),y / 2)+" |
| 3777 | "myfunc8(sin(x * pi),y / 2) + myfunc9(sin(x * pi),y / 2)+" |
| 3778 | "myfunc0(sin(x * pi),y / 2) + myfunc1(sin(x * pi),y / 2)+" |
| 3779 | "myfunc2(sin(x * pi),y / 2) + myfunc3(sin(x * pi),y / 2)+" |
| 3780 | "myfunc4(sin(x * pi),y / 2) + myfunc5(sin(x * pi),y / 2)+" |
| 3781 | "myfunc6(sin(x * pi),y / 2) + myfunc7(sin(x * pi),y / 2)+" |
| 3782 | "myfunc8(sin(x * pi),y / 2) + myfunc9(sin(x * pi),y / 2)+" |
| 3783 | "myfunc0(sin(x * pi),y / 2) + myfunc1(sin(x * pi),y / 2)+" |
| 3784 | "myfunc2(sin(x * pi),y / 2) + myfunc3(sin(x * pi),y / 2)+" |
| 3785 | "myfunc4(sin(x * pi),y / 2) + myfunc5(sin(x * pi),y / 2)+" |
| 3786 | "myfunc6(sin(x * pi),y / 2) + myfunc7(sin(x * pi),y / 2)+" |
| 3787 | "myfunc8(sin(x * pi),y / 2) + myfunc9(sin(x * pi),y / 2)"; |
| 3788 | |
| 3789 | T x = T(1) + (i / T(10000)); |
| 3790 | T y = T(2) + (i / T(10000)); |
| 3791 | myfunc<T> mf; |
| 3792 | |
| 3793 | exprtk::symbol_table<T> symbol_table; |
| 3794 | symbol_table.add_variable("x",x); |
| 3795 | symbol_table.add_variable("y",y); |
| 3796 | symbol_table.add_function("myfunc0",mf); |
| 3797 | symbol_table.add_function("myfunc1",mf); |
| 3798 | symbol_table.add_function("myfunc2",mf); |
| 3799 | symbol_table.add_function("myfunc3",mf); |
| 3800 | symbol_table.add_function("myfunc4",mf); |
| 3801 | symbol_table.add_function("myfunc5",mf); |
| 3802 | symbol_table.add_function("myfunc6",mf); |
| 3803 | symbol_table.add_function("myfunc7",mf); |
| 3804 | symbol_table.add_function("myfunc8",mf); |
| 3805 | symbol_table.add_function("myfunc9",mf); |
| 3806 | symbol_table.add_constants(); |
| 3807 | |
| 3808 | expression_t expression; |
| 3809 | expression.register_symbol_table(symbol_table); |
| 3810 | |
| 3811 | { |
| 3812 | exprtk::parser<T> parser; |
| 3813 | |
| 3814 | if (!parser.compile(expression_string,expression)) |
| 3815 | { |
| 3816 | printf("run_test09() - Error: %s Expression: %s\n", |