Fixed private member access in init_branches()

This commit is contained in:
Schoenit, Tobias ST/BHL-TPO1 2023-04-12 09:26:08 +02:00
parent ef2d4ba215
commit 8c793fd103
1 changed files with 127 additions and 123 deletions

View File

@ -4471,7 +4471,7 @@ namespace exprtk
} }
#ifdef exprtk_enable_vector_runtime_checks #ifdef exprtk_enable_vector_runtime_checks
inline void set(std::size_t i, value_t value) inline void set(std::size_t i, value_t value)
{ {
if (i < size()) if (i < size())
{ {
data_[i] = value; data_[i] = value;
@ -7598,7 +7598,7 @@ namespace exprtk
} }
#endif #endif
inline const T& ref() const exprtk_override inline const T& ref() const exprtk_override
{ {
return (*value_); return (*value_);
} }
@ -8189,15 +8189,15 @@ namespace exprtk
inline T value() const exprtk_override inline T value() const exprtk_override
{ {
#ifdef exprtk_enable_vector_runtime_checks #ifdef exprtk_enable_vector_runtime_checks
const T tmp = var1_->ref(); const T tmp = var1_->ref();
var1_->set(var0_->ref()); var1_->set(var0_->ref());
var0_->set(tmp); var0_->set(tmp);
return tmp; return tmp;
#else #else
std::swap(var0_->ref(),var1_->ref()); std::swap(var0_->ref(),var1_->ref());
return var1_->ref(); return var1_->ref();
#endif #endif
} }
inline typename expression_node<T>::node_type type() const exprtk_override inline typename expression_node<T>::node_type type() const exprtk_override
@ -10471,13 +10471,13 @@ namespace exprtk
if (var_node_ptr_) if (var_node_ptr_)
{ {
assert(branch(1)); assert(branch(1));
#ifdef exprtk_enable_vector_runtime_checks #ifdef exprtk_enable_vector_runtime_checks
T result = branch(1)->value(); T result = branch(1)->value();
var_node_ptr_->set(result); var_node_ptr_->set(result);
#else #else
T& result = var_node_ptr_->ref(); T& result = var_node_ptr_->ref();
result = branch(1)->value(); result = branch(1)->value();
#endif #endif
return result; return result;
} }
@ -10558,13 +10558,13 @@ namespace exprtk
if (rbvec_node_ptr_) if (rbvec_node_ptr_)
{ {
assert(branch(1)); assert(branch(1));
#ifdef exprtk_enable_vector_runtime_checks #ifdef exprtk_enable_vector_runtime_checks
T result = branch(1)->value(); T result = branch(1)->value();
rbvec_node_ptr_->set(result); rbvec_node_ptr_->set(result);
#else #else
T& result = rbvec_node_ptr_->ref(); T& result = rbvec_node_ptr_->ref();
result = branch(1)->value(); result = branch(1)->value();
#endif #endif
return result; return result;
} }
else else
@ -10601,15 +10601,15 @@ namespace exprtk
if (rbvec_node_ptr_) if (rbvec_node_ptr_)
{ {
assert(branch(1)); assert(branch(1));
#ifdef exprtk_enable_vector_runtime_checks #ifdef exprtk_enable_vector_runtime_checks
T val = branch(1)->value(); T val = branch(1)->value();
rbvec_node_ptr_->set(val); rbvec_node_ptr_->set(val);
return val; return val;
#else #else
T& result = rbvec_node_ptr_->ref(); T& result = rbvec_node_ptr_->ref();
result = branch(1)->value(); result = branch(1)->value();
return result; return result;
#endif #endif
} }
else else
return std::numeric_limits<T>::quiet_NaN(); return std::numeric_limits<T>::quiet_NaN();
@ -12759,7 +12759,11 @@ namespace exprtk
return false; return false;
ts.size = 1; ts.size = 1;
#ifdef exprtk_enable_vector_runtime_checks
ts.data = var->value_ptr(); ts.data = var->value_ptr();
#else
ts.data = &var->ref();
#endif
ts.type = type_store_t::e_scalar; ts.type = type_store_t::e_scalar;
} }
else else
@ -37812,21 +37816,21 @@ namespace exprtk
if (var) if (var)
{ {
#ifdef exprtk_enable_vector_runtime_checks #ifdef exprtk_enable_vector_runtime_checks
T& x = *(var->value_ptr()); T& x = *(var->value_ptr());
const T x_original = x; const T x_original = x;
const T result = integrate(e, x, r0, r1, number_of_intervals); const T result = integrate(e, x, r0, r1, number_of_intervals);
var->set(x_original); var->set(x_original);
return result; return result;
#else #else
T& x = var->ref(); T& x = var->ref();
const T x_original = x; const T x_original = x;
const T result = integrate(e, x, r0, r1, number_of_intervals); const T result = integrate(e, x, r0, r1, number_of_intervals);
x = x_original; x = x_original;
return result; return result;
#endif #endif
} }
else else
return std::numeric_limits<T>::quiet_NaN(); return std::numeric_limits<T>::quiet_NaN();
@ -37912,21 +37916,21 @@ namespace exprtk
if (var) if (var)
{ {
#ifdef exprtk_enable_vector_runtime_checks #ifdef exprtk_enable_vector_runtime_checks
T& x = *(var->value_ptr()); T& x = *(var->value_ptr());
const T x_original = x; const T x_original = x;
const T result = derivative(e, x, h); const T result = derivative(e, x, h);
var->set(x_original); var->set(x_original);
return result; return result;
#else #else
T& x = var->ref(); T& x = var->ref();
const T x_original = x; const T x_original = x;
const T result = derivative(e, x, h); const T result = derivative(e, x, h);
x = x_original; x = x_original;
return result; return result;
#endif #endif
} }
else else
return std::numeric_limits<T>::quiet_NaN(); return std::numeric_limits<T>::quiet_NaN();
@ -37948,21 +37952,21 @@ namespace exprtk
if (var) if (var)
{ {
#ifdef exprtk_enable_vector_runtime_checks #ifdef exprtk_enable_vector_runtime_checks
T &x = *(var->value_ptr()); T &x = *(var->value_ptr());
const T x_original = x; const T x_original = x;
const T result = second_derivative(e, x, h); const T result = second_derivative(e, x, h);
var->set(x_original); var->set(x_original);
return result; return result;
#else #else
T& x = var->ref(); T& x = var->ref();
const T x_original = x; const T x_original = x;
const T result = second_derivative(e, x, h); const T result = second_derivative(e, x, h);
x = x_original; x = x_original;
return result; return result;
#endif #endif
} }
else else
return std::numeric_limits<T>::quiet_NaN(); return std::numeric_limits<T>::quiet_NaN();
@ -37984,21 +37988,21 @@ namespace exprtk
if (var) if (var)
{ {
#ifdef exprtk_enable_vector_runtime_checks #ifdef exprtk_enable_vector_runtime_checks
T &x = *(var->value_ptr()); T &x = *(var->value_ptr());
const T x_original = x; const T x_original = x;
const T result = third_derivative(e, x, h); const T result = third_derivative(e, x, h);
var->set(x_original); var->set(x_original);
return result; return result;
#else #else
T& x = var->ref(); T& x = var->ref();
const T x_original = x; const T x_original = x;
const T result = third_derivative(e, x, h); const T result = third_derivative(e, x, h);
x = x_original; x = x_original;
return result; return result;
#endif #endif
} }
else else
return std::numeric_limits<T>::quiet_NaN(); return std::numeric_limits<T>::quiet_NaN();
@ -40408,11 +40412,11 @@ namespace exprtk
for (std::size_t i = r1 - n + 1; i <= r1; ++i) for (std::size_t i = r1 - n + 1; i <= r1; ++i)
{ {
#ifdef exprtk_enable_vector_runtime_checks #ifdef exprtk_enable_vector_runtime_checks
vec.set(i, T(0)); vec.set(i, T(0));
#else #else
vec[i] = T(0); vec[i] = T(0);
#endif #endif
} }
return T(1); return T(1);
@ -40472,11 +40476,11 @@ namespace exprtk
for (std::size_t i = r0; i < r0 + n; ++i) for (std::size_t i = r0; i < r0 + n; ++i)
{ {
#ifdef exprtk_enable_vector_runtime_checks #ifdef exprtk_enable_vector_runtime_checks
vec.set(i, T(0)); vec.set(i, T(0));
#else #else
vec[i] = T(0); vec[i] = T(0);
#endif #endif
} }
return T(1); return T(1);
@ -40635,11 +40639,11 @@ namespace exprtk
for (std::size_t i = r0; i <= r1; ++i, ++j) for (std::size_t i = r0; i <= r1; ++i, ++j)
{ {
#ifdef exprtk_enable_vector_runtime_checks #ifdef exprtk_enable_vector_runtime_checks
vec.set(i, base + (increment * j)); vec.set(i, base + (increment * j));
#else #else
vec[i] = base + (increment * j); vec[i] = base + (increment * j);
#endif #endif
} }
} }
@ -40730,11 +40734,11 @@ namespace exprtk
for (std::size_t i = r0; i <= r1; ++i) for (std::size_t i = r0; i <= r1; ++i)
{ {
#ifdef exprtk_enable_vector_runtime_checks #ifdef exprtk_enable_vector_runtime_checks
y.set(i, (a * x[i]) + y[i]); y.set(i, (a * x[i]) + y[i]);
#else #else
y[i] = (a * x[i]) + y[i]; y[i] = (a * x[i]) + y[i];
#endif #endif
} }
return T(1); return T(1);
@ -40782,11 +40786,11 @@ namespace exprtk
for (std::size_t i = r0; i <= r1; ++i) for (std::size_t i = r0; i <= r1; ++i)
{ {
#ifdef exprtk_enable_vector_runtime_checks #ifdef exprtk_enable_vector_runtime_checks
y.set(i, (a * x[i]) + (b * y[i])); y.set(i, (a * x[i]) + (b * y[i]));
#else #else
y[i] = (a * x[i]) + (b * y[i]); y[i] = (a * x[i]) + (b * y[i]);
#endif #endif
} }
return T(1); return T(1);
@ -40836,11 +40840,11 @@ namespace exprtk
for (std::size_t i = r0; i <= r1; ++i) for (std::size_t i = r0; i <= r1; ++i)
{ {
#ifdef exprtk_enable_vector_runtime_checks #ifdef exprtk_enable_vector_runtime_checks
z.set(i, (a * x[i]) + y[i]); z.set(i, (a * x[i]) + y[i]);
#else #else
z[i] = (a * x[i]) + y[i]; z[i] = (a * x[i]) + y[i];
#endif #endif
} }
return T(1); return T(1);
@ -40891,11 +40895,11 @@ namespace exprtk
for (std::size_t i = r0; i <= r1; ++i) for (std::size_t i = r0; i <= r1; ++i)
{ {
#ifdef exprtk_enable_vector_runtime_checks #ifdef exprtk_enable_vector_runtime_checks
z.set(i, (a * x[i]) + (b * y[i])); z.set(i, (a * x[i]) + (b * y[i]));
#else #else
z[i] = (a * x[i]) + (b * y[i]); z[i] = (a * x[i]) + (b * y[i]);
#endif #endif
} }
return T(1); return T(1);
@ -40943,11 +40947,11 @@ namespace exprtk
for (std::size_t i = r0; i <= r1; ++i) for (std::size_t i = r0; i <= r1; ++i)
{ {
#ifdef exprtk_enable_vector_runtime_checks #ifdef exprtk_enable_vector_runtime_checks
z.set(i, (a * x[i]) + b); z.set(i, (a * x[i]) + b);
#else #else
z[i] = (a * x[i]) + b; z[i] = (a * x[i]) + b;
#endif #endif
} }
return T(1); return T(1);