27template <
typename Allocator,
28 template <
typename,
typename>
class Sequence>
30 Sequence<std::string,Allocator>& sequence)
32 std::ifstream stream(file_name.c_str());
33 if (!stream)
return 0;
36 std::size_t line_count = 0;
37 while (std::getline(stream,buffer))
40 sequence.push_back(buffer);
47 std::deque<std::string> expr_str_list;
51 typedef std::deque<exprtk::expression<double> > exprlist_t;
54 static const std::size_t
rounds = 100;
58 for (std::size_t r = 0; r <
rounds; ++r)
72 for (std::size_t i = 0; i < expr_str_list.size(); ++i)
74 if (!parser.
compile(expr_str_list[i],temp_expr))
76 printf(
"[load_expression] - [%04d] Parser Error: %s\tExpression: %s\n",
78 parser.
error().c_str(),
79 expr_str_list[i].c_str());
92 std::cout <<
"Round: " << r << std::endl;
97 printf(
"Total Time:%12.8fsec Rate:%15.5fcompiles/sec\n",
99 (
rounds * expr_str_list.size()) / timer.
time());
bool register_symbol_table(symbol_table< T > &st)
bool compile(const std::string &expression_string, expression< T > &expr)
std::string error() const
bool create_variable(const std::string &variable_name, const T &value=T(0))
static const std::size_t rounds
std::size_t load_expressions(const std::string &file_name, Sequence< std::string, Allocator > &sequence)
static const std::string expression_list[]