32static const double delta = 0.0111;
35template <
typename Allocator,
36 template <
typename,
typename>
class Sequence>
38 Sequence<std::string,Allocator>& sequence)
40 std::ifstream stream(file_name.c_str());
41 if (!stream)
return 0;
44 std::size_t line_count = 0;
45 while (std::getline(stream,buffer))
48 sequence.push_back(buffer);
55 std::deque<std::string> expr_str_list;
77 static const std::size_t
rounds = 10;
78 for (std::size_t r = 0; r <
rounds; r++)
82 for (std::size_t i = 0; i < expr_str_list.size(); ++i)
84 if (!parser.
compile(expr_str_list[i],temp_expr))
86 printf(
"[load_expression] - [%04d] Parser Error: %s\tExpression: %s\n",
88 parser.
error().c_str(),
89 expr_str_list[i].c_str());
95 std::cout <<
"Expression load: " << r <<
" Loaded: " <<
expression_list.size() << std::endl;
96 expr_str_list.clear();
104 for (std::size_t i = 0; i < expr_str_list.size(); ++i)
106 if (!parser.
compile(expr_str_list[i],temp_expr))
108 printf(
"[load_expression] - [%04d] Parser Error: %s\tExpression: %s\n",
110 parser.
error().c_str(),
111 expr_str_list[i].c_str());
117 static const std::size_t
rounds = 100000;
128 for (std::size_t r = 0; r <
rounds; r++)
145 printf(
"Total Time:%12.8fsec Rate:%15.5fevals/sec\n",
bool register_symbol_table(symbol_table< T > &st)
bool compile(const std::string &expression_string, expression< T > &expr)
std::string error() const
bool add_variable(const std::string &variable_name, T &t, const bool is_constant=false)
static const std::size_t rounds
static const double upper_bound_y
static const double upper_bound_x
static const double delta
std::size_t load_expressions(const std::string &file_name, Sequence< std::string, Allocator > &sequence)
static const double lower_bound_x
static const double lower_bound_y
static const std::string expression_list[]