C++ Mathematical Expression Library (ExprTk) http://www.partow.net/programming/exprtk/index.html
This commit is contained in:
parent
3a684785a8
commit
57841f8a11
|
@ -14468,7 +14468,7 @@ namespace exprtk
|
||||||
freefunc6(ff6_functor ff) : exprtk::ifunction<T>(6), f(ff) {}
|
freefunc6(ff6_functor ff) : exprtk::ifunction<T>(6), f(ff) {}
|
||||||
inline T operator()(const T& v0, const T& v1, const T& v2, const T& v3, const T& v4, const T& v5)
|
inline T operator()(const T& v0, const T& v1, const T& v2, const T& v3, const T& v4, const T& v5)
|
||||||
{ return f(v0,v1,v2,v3,v4,v5); }
|
{ return f(v0,v1,v2,v3,v4,v5); }
|
||||||
ff5_functor f;
|
ff6_functor f;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename Type, typename RawType>
|
template <typename Type, typename RawType>
|
||||||
|
@ -14952,6 +14952,8 @@ namespace exprtk
|
||||||
}
|
}
|
||||||
|
|
||||||
inline symbol_table<T>& operator=(const symbol_table<T>& st)
|
inline symbol_table<T>& operator=(const symbol_table<T>& st)
|
||||||
|
{
|
||||||
|
if (this != &st)
|
||||||
{
|
{
|
||||||
if (holder_)
|
if (holder_)
|
||||||
{
|
{
|
||||||
|
@ -14965,6 +14967,7 @@ namespace exprtk
|
||||||
|
|
||||||
holder_ = st.holder_;
|
holder_ = st.holder_;
|
||||||
holder_->ref_count++;
|
holder_->ref_count++;
|
||||||
|
}
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3139,6 +3139,7 @@ double foo2(double v0, double v1) { return v0 + v1; }
|
||||||
double foo3(double v0, double v1, double v2) { return v0 + v1 + v2; }
|
double foo3(double v0, double v1, double v2) { return v0 + v1 + v2; }
|
||||||
double foo4(double v0, double v1, double v2, double v3) { return v0 + v1 + v2 + v3; }
|
double foo4(double v0, double v1, double v2, double v3) { return v0 + v1 + v2 + v3; }
|
||||||
double foo5(double v0, double v1, double v2, double v3, double v4) { return v0 + v1 + v2 + v3 + v4; }
|
double foo5(double v0, double v1, double v2, double v3, double v4) { return v0 + v1 + v2 + v3 + v4; }
|
||||||
|
double foo6(double v0, double v1, double v2, double v3, double v4, double v5) { return v0 + v1 + v2 + v3 + v4 + v5; }
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline bool run_test09()
|
inline bool run_test09()
|
||||||
|
@ -3245,7 +3246,8 @@ inline bool run_test09()
|
||||||
"foo2(1,2) == (1 + 2)",
|
"foo2(1,2) == (1 + 2)",
|
||||||
"foo3(1,2,3) == (1 + 2 + 3)",
|
"foo3(1,2,3) == (1 + 2 + 3)",
|
||||||
"foo4(1,2,3,4) == (1 + 2 + 3 + 4)",
|
"foo4(1,2,3,4) == (1 + 2 + 3 + 4)",
|
||||||
"foo5(1,2,3,4,5) == (1 + 2 + 3 + 4 + 5)"
|
"foo5(1,2,3,4,5) == (1 + 2 + 3 + 4 + 5)",
|
||||||
|
"foo6(1,2,3,4,5,6) == (1 + 2 + 3 + 4 + 5 + 6)"
|
||||||
};
|
};
|
||||||
|
|
||||||
const std::size_t expression_list_size = sizeof(expression_list) / sizeof(std::string);
|
const std::size_t expression_list_size = sizeof(expression_list) / sizeof(std::string);
|
||||||
|
@ -3257,6 +3259,7 @@ inline bool run_test09()
|
||||||
symbol_table.add_function("foo3",foo3);
|
symbol_table.add_function("foo3",foo3);
|
||||||
symbol_table.add_function("foo4",foo4);
|
symbol_table.add_function("foo4",foo4);
|
||||||
symbol_table.add_function("foo5",foo5);
|
symbol_table.add_function("foo5",foo5);
|
||||||
|
symbol_table.add_function("foo6",foo6);
|
||||||
|
|
||||||
for (std::size_t i = 0; i < expression_list_size; ++i)
|
for (std::size_t i = 0; i < expression_list_size; ++i)
|
||||||
{
|
{
|
||||||
|
|
|
@ -881,7 +881,7 @@ std::vector.
|
||||||
Expressions | | Expressions as
|
Expressions | | Expressions as
|
||||||
in string form A V exprtk::expression
|
in string form A V exprtk::expression
|
||||||
| | instances
|
| | instances
|
||||||
[s0:'x+1' ]-+ | | +-[e0: x+1]
|
[s0:'x+1']------+ | | +-[e0: x+1]
|
||||||
| | | |
|
| | | |
|
||||||
[s1:'2z+y']-----+--+ +-->+-[e1: 2z+y]
|
[s1:'2z+y']-----+--+ +-->+-[e1: 2z+y]
|
||||||
| |
|
| |
|
||||||
|
|
Loading…
Reference in New Issue