87{
91
92 const std::string inline_resize_expression =
93 " var vec_original_size := v[]; "
94 " "
95 " for (var i := 1; i <= 2 * vec_original_size; i += 1) "
96 " { "
97 " if (resize(v,i) == true and v[] == i and sum(2v) == (i^2 + i)) "
98 " { "
99 " println('Success: set size: ', i ,' v[] = ', v[]); "
100 " } "
101 " else "
102 " { "
103 " println('Error: Failed to resize vector v to size: ', i); "
104 " } "
105 " }; ";
106
107 std::vector<T> v0 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
108 std::vector<T> v1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
109
111
112
114
117
118 symbol_table_t symbol_table;
119 symbol_table.add_vector ("v", vv);
120 symbol_table.add_function("resize", vv_size_handler);
121 symbol_table.add_package (io_package);
122
123 expression_t expression;
124 expression.register_symbol_table(symbol_table);
125
126 parser_t parser;
127
128 if (!parser.compile(inline_resize_expression, expression))
129 {
130 printf("Error: %s\tExpression: %s\n",
131 parser.error().c_str(),
132 inline_resize_expression.c_str());
133 return;
134 }
135
138 expression.value();
139
142 expression.value();
143}
void rebase(data_ptr_t data)
void register_vector_view(exprtk::vector_view< T > &vec_view)
vector_view< T > make_vector_view(T *data, const std::size_t size, const std::size_t offset=0)