C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
Classes | Typedefs | Functions
exprtk::details::numeric::details Namespace Reference

Classes

struct  complex_type_tag
 
struct  epsilon_type
 
struct  epsilon_type< cmplx::complex_t >
 
struct  epsilon_type< double >
 
struct  epsilon_type< float >
 
struct  epsilon_type< long double >
 
struct  epsilon_type< mpfr::mpreal >
 
struct  epsilon_type< real::type >
 
struct  int_type_tag
 
struct  mpfrreal_type_tag
 
struct  my_real_type_tag
 
struct  number_type
 
struct  number_type< _int64_t >
 
struct  number_type< _uint64_t >
 
struct  number_type< cmplx::complex_t >
 
struct  number_type< double >
 
struct  number_type< float >
 
struct  number_type< int >
 
struct  number_type< long double >
 
struct  number_type< mpfr::mpreal >
 
struct  number_type< real::type >
 
struct  number_type< short >
 
struct  number_type< unsigned int >
 
struct  number_type< unsigned short >
 
struct  real_type_tag
 
struct  unknown_type_tag
 

Typedefs

using complex_t = cmplx::complex_t
 

Functions

template<typename T >
bool is_nan_impl (const T v, real_type_tag)
 
template<typename T >
int to_int32_impl (const T v, real_type_tag)
 
template<typename T >
_int64_t to_int64_impl (const T v, real_type_tag)
 
template<typename T >
_uint64_t to_uint64_impl (const T v, real_type_tag)
 
template<typename T >
bool is_true_impl (const T v)
 
template<typename T >
bool is_false_impl (const T v)
 
template<typename T >
T abs_impl (const T v, real_type_tag)
 
template<typename T >
T min_impl (const T v0, const T v1, real_type_tag)
 
template<typename T >
T max_impl (const T v0, const T v1, real_type_tag)
 
template<typename T >
T equal_impl (const T v0, const T v1, real_type_tag)
 
float equal_impl (const float v0, const float v1, real_type_tag)
 
template<typename T >
T equal_impl (const T v0, const T v1, int_type_tag)
 
template<typename T >
T nequal_impl (const T v0, const T v1, real_type_tag)
 
float nequal_impl (const float v0, const float v1, real_type_tag)
 
template<typename T >
T nequal_impl (const T v0, const T v1, int_type_tag)
 
template<typename T >
T modulus_impl (const T v0, const T v1, real_type_tag)
 
template<typename T >
T modulus_impl (const T v0, const T v1, int_type_tag)
 
template<typename T >
T pow_impl (const T v0, const T v1, real_type_tag)
 
template<typename T >
T pow_impl (const T v0, const T v1, int_type_tag)
 
template<typename T >
T logn_impl (const T v0, const T v1, real_type_tag)
 
template<typename T >
T logn_impl (const T v0, const T v1, int_type_tag)
 
template<typename T >
T root_impl (const T v0, const T v1, real_type_tag)
 
template<typename T >
T root_impl (const T v0, const T v1, int_type_tag)
 
template<typename T >
T round_impl (const T v, real_type_tag)
 
template<typename T >
T roundn_impl (const T v0, const T v1, real_type_tag)
 
template<typename T >
T roundn_impl (const T v0, const T, int_type_tag)
 
template<typename T >
T hypot_impl (const T v0, const T v1, real_type_tag)
 
template<typename T >
T hypot_impl (const T v0, const T v1, int_type_tag)
 
template<typename T >
T atan2_impl (const T v0, const T v1, real_type_tag)
 
template<typename T >
T atan2_impl (const T, const T, int_type_tag)
 
template<typename T >
T shr_impl (const T v0, const T v1, real_type_tag)
 
template<typename T >
T shr_impl (const T v0, const T v1, int_type_tag)
 
template<typename T >
T shl_impl (const T v0, const T v1, real_type_tag)
 
template<typename T >
T shl_impl (const T v0, const T v1, int_type_tag)
 
template<typename T >
T sgn_impl (const T v, real_type_tag)
 
template<typename T >
T sgn_impl (const T v, int_type_tag)
 
template<typename T >
T and_impl (const T v0, const T v1, real_type_tag)
 
template<typename T >
T and_impl (const T v0, const T v1, int_type_tag)
 
template<typename T >
T nand_impl (const T v0, const T v1, real_type_tag)
 
template<typename T >
T nand_impl (const T v0, const T v1, int_type_tag)
 
template<typename T >
T or_impl (const T v0, const T v1, real_type_tag)
 
template<typename T >
T or_impl (const T v0, const T v1, int_type_tag)
 
template<typename T >
T nor_impl (const T v0, const T v1, real_type_tag)
 
template<typename T >
T nor_impl (const T v0, const T v1, int_type_tag)
 
template<typename T >
T xor_impl (const T v0, const T v1, real_type_tag)
 
template<typename T >
T xor_impl (const T v0, const T v1, int_type_tag)
 
template<typename T >
T xnor_impl (const T v0, const T v1, real_type_tag)
 
template<typename T >
T xnor_impl (const T v0, const T v1, int_type_tag)
 
float erf_impl (const float v)
 
double erf_impl (const double v)
 
long double erf_impl (const long double v)
 
template<typename T >
T erf_impl (const T v, real_type_tag)
 
template<typename T >
T erf_impl (const T v, int_type_tag)
 
float erfc_impl (const float v)
 
double erfc_impl (const double v)
 
long double erfc_impl (const long double v)
 
template<typename T >
T erfc_impl (const T v, real_type_tag)
 
template<typename T >
T erfc_impl (const T v, int_type_tag)
 
template<typename T >
T ncdf_impl (const T v, real_type_tag)
 
template<typename T >
T ncdf_impl (const T v, int_type_tag)
 
template<typename T >
T sinc_impl (const T v, real_type_tag)
 
template<typename T >
T sinc_impl (const T v, int_type_tag)
 
template<typename T >
T acosh_impl (const T v, real_type_tag)
 
template<typename T >
T asinh_impl (const T v, real_type_tag)
 
template<typename T >
T atanh_impl (const T v, real_type_tag)
 
template<typename T >
T trunc_impl (const T v, real_type_tag)
 
template<typename T >
T expm1_impl (const T v, real_type_tag)
 
template<typename T >
T expm1_impl (const T v, int_type_tag)
 
template<typename T >
T log1p_impl (const T v, real_type_tag)
 
template<typename T >
T log1p_impl (const T v, int_type_tag)
 
template<typename T >
T acos_impl (const T v, real_type_tag)
 
template<typename T >
T asin_impl (const T v, real_type_tag)
 
template<typename T >
T atan_impl (const T v, real_type_tag)
 
template<typename T >
T ceil_impl (const T v, real_type_tag)
 
template<typename T >
T cos_impl (const T v, real_type_tag)
 
template<typename T >
T cosh_impl (const T v, real_type_tag)
 
template<typename T >
T exp_impl (const T v, real_type_tag)
 
template<typename T >
T floor_impl (const T v, real_type_tag)
 
template<typename T >
T log_impl (const T v, real_type_tag)
 
template<typename T >
T log10_impl (const T v, real_type_tag)
 
template<typename T >
T log2_impl (const T v, real_type_tag)
 
template<typename T >
T neg_impl (const T v, real_type_tag)
 
template<typename T >
T pos_impl (const T v, real_type_tag)
 
template<typename T >
T sin_impl (const T v, real_type_tag)
 
template<typename T >
T sinh_impl (const T v, real_type_tag)
 
template<typename T >
T sqrt_impl (const T v, real_type_tag)
 
template<typename T >
T tan_impl (const T v, real_type_tag)
 
template<typename T >
T tanh_impl (const T v, real_type_tag)
 
template<typename T >
T cot_impl (const T v, real_type_tag)
 
template<typename T >
T sec_impl (const T v, real_type_tag)
 
template<typename T >
T csc_impl (const T v, real_type_tag)
 
template<typename T >
T r2d_impl (const T v, real_type_tag)
 
template<typename T >
T d2r_impl (const T v, real_type_tag)
 
template<typename T >
T d2g_impl (const T v, real_type_tag)
 
template<typename T >
T g2d_impl (const T v, real_type_tag)
 
template<typename T >
T notl_impl (const T v, real_type_tag)
 
template<typename T >
T frac_impl (const T v, real_type_tag)
 
template<typename T >
T const_pi_impl (real_type_tag)
 
template<typename T >
T const_e_impl (real_type_tag)
 
template<typename T >
T const_qnan_impl (real_type_tag)
 
template<typename T >
T abs_impl (const T v, int_type_tag)
 
template<typename T >
T exp_impl (const T v, int_type_tag)
 
template<typename T >
T log_impl (const T v, int_type_tag)
 
template<typename T >
T log10_impl (const T v, int_type_tag)
 
template<typename T >
T log2_impl (const T v, int_type_tag)
 
template<typename T >
T neg_impl (const T v, int_type_tag)
 
template<typename T >
T pos_impl (const T v, int_type_tag)
 
template<typename T >
T ceil_impl (const T v, int_type_tag)
 
template<typename T >
T floor_impl (const T v, int_type_tag)
 
template<typename T >
T round_impl (const T v, int_type_tag)
 
template<typename T >
T notl_impl (const T v, int_type_tag)
 
template<typename T >
T sqrt_impl (const T v, int_type_tag)
 
template<typename T >
T frac_impl (const T, int_type_tag)
 
template<typename T >
T trunc_impl (const T v, int_type_tag)
 
template<typename T >
T acos_impl (const T, int_type_tag)
 
template<typename T >
T acosh_impl (const T, int_type_tag)
 
template<typename T >
T asin_impl (const T, int_type_tag)
 
template<typename T >
T asinh_impl (const T, int_type_tag)
 
template<typename T >
T atan_impl (const T, int_type_tag)
 
template<typename T >
T atanh_impl (const T, int_type_tag)
 
template<typename T >
T cos_impl (const T, int_type_tag)
 
template<typename T >
T cosh_impl (const T, int_type_tag)
 
template<typename T >
T sin_impl (const T, int_type_tag)
 
template<typename T >
T sinh_impl (const T, int_type_tag)
 
template<typename T >
T tan_impl (const T, int_type_tag)
 
template<typename T >
T tanh_impl (const T, int_type_tag)
 
template<typename T >
T cot_impl (const T, int_type_tag)
 
template<typename T >
T sec_impl (const T, int_type_tag)
 
template<typename T >
T csc_impl (const T, int_type_tag)
 
template<typename T >
bool is_integer_impl (const T &v, real_type_tag)
 
template<typename T >
bool is_integer_impl (const T &, int_type_tag)
 
template<typename T >
T process_impl (const operator_type operation, const T arg)
 
template<typename T >
T process_impl (const operator_type operation, const T arg0, const T arg1)
 
template<typename T >
T process_impl (const operator_type operation, const T arg0, const T arg1, int_type_tag)
 
template<typename T >
T const_pi_impl (complex_type_tag)
 
template<typename T >
T const_e_impl (complex_type_tag)
 
bool is_nan_impl (const cmplx::complex_t &v, complex_type_tag)
 
template<typename T >
T abs_impl (const T v, complex_type_tag)
 
template<typename T >
T acos_impl (const T v, complex_type_tag)
 
template<typename T >
T acosh_impl (const T v, complex_type_tag)
 
template<typename T >
T asin_impl (const T v, complex_type_tag)
 
template<typename T >
T asinh_impl (const T v, complex_type_tag)
 
template<typename T >
T atan_impl (const T v, complex_type_tag)
 
template<typename T >
T atanh_impl (const T v, complex_type_tag)
 
template<typename T >
T ceil_impl (const T v, complex_type_tag)
 
template<typename T >
T cos_impl (const T v, complex_type_tag)
 
template<typename T >
T cosh_impl (const T v, complex_type_tag)
 
template<typename T >
T exp_impl (const T v, complex_type_tag)
 
template<typename T >
T floor_impl (const T v, complex_type_tag)
 
template<typename T >
T log_impl (const T v, complex_type_tag)
 
template<typename T >
T log10_impl (const T v, complex_type_tag)
 
template<typename T >
T log2_impl (const T v, complex_type_tag)
 
template<typename T >
T neg_impl (const T v, complex_type_tag)
 
template<typename T >
T pos_impl (const T v, complex_type_tag)
 
template<typename T >
T sin_impl (const T v, complex_type_tag)
 
template<typename T >
T sinh_impl (const T v, complex_type_tag)
 
template<typename T >
T sqrt_impl (const T v, complex_type_tag)
 
template<typename T >
T tan_impl (const T v, complex_type_tag)
 
template<typename T >
T tanh_impl (const T v, complex_type_tag)
 
template<typename T >
T cot_impl (const T v, complex_type_tag)
 
template<typename T >
T sec_impl (const T v, complex_type_tag)
 
template<typename T >
T csc_impl (const T v, complex_type_tag)
 
template<typename T >
T r2d_impl (const T v, complex_type_tag)
 
template<typename T >
T d2r_impl (const T v, complex_type_tag)
 
template<typename T >
T d2g_impl (const T v, complex_type_tag)
 
template<typename T >
T g2d_impl (const T v, complex_type_tag)
 
template<typename T >
T notl_impl (const T v, complex_type_tag)
 
template<typename T >
T frac_impl (const T v, complex_type_tag)
 
template<typename T >
T trunc_impl (const T v, complex_type_tag)
 
template<typename T >
int to_int32_impl (const T v, complex_type_tag)
 
template<typename T >
long long to_int64_impl (const T v, complex_type_tag)
 
template<typename T >
unsigned long long to_uint64_impl (const T v, complex_type_tag)
 
bool is_true_impl (const cmplx::complex_t v)
 
bool is_false_impl (const cmplx::complex_t v)
 
template<typename T >
T expm1_impl (const T v, complex_type_tag)
 
template<typename T >
T nequal_impl (const T v0, const T v1, complex_type_tag)
 
template<typename T >
T sgn_impl (const T v, complex_type_tag)
 
template<typename T >
T log1p_impl (const T v, complex_type_tag)
 
template<typename T >
T erf_impl (T v, complex_type_tag)
 
template<typename T >
T erfc_impl (T v, complex_type_tag)
 
template<typename T >
T ncdf_impl (T v, complex_type_tag)
 
template<typename T >
T modulus_impl (const T v0, const T v1, complex_type_tag)
 
template<typename T >
T pow_impl (const T v0, const T v1, complex_type_tag)
 
template<typename T >
T logn_impl (const T v0, const T v1, complex_type_tag)
 
template<typename T >
T sinc_impl (T v, complex_type_tag)
 
template<typename T >
T xor_impl (const T v0, const T v1, complex_type_tag)
 
template<typename T >
T xnor_impl (const T v0, const T v1, complex_type_tag)
 
template<typename T >
T equal_impl (const T v0, const T v1, complex_type_tag)
 
template<typename T >
T round_impl (const T v, complex_type_tag)
 
template<typename T >
T roundn_impl (const T v0, const T v1, complex_type_tag)
 
template<typename T >
bool is_integer_impl (const T v, complex_type_tag)
 
template<typename T >
T root_impl (const T v0, const T v1, complex_type_tag)
 
template<typename T >
T hypot_impl (const T v0, const T v1, complex_type_tag)
 
template<typename T >
T atan2_impl (const T v0, const T v1, complex_type_tag)
 
template<typename T >
T shr_impl (const T v0, const T v1, complex_type_tag)
 
template<typename T >
T shl_impl (const T v0, const T v1, complex_type_tag)
 
template<typename T >
T and_impl (const T v0, const T v1, complex_type_tag)
 
template<typename T >
T nand_impl (const T v0, const T v1, complex_type_tag)
 
template<typename T >
T or_impl (const T v0, const T v1, complex_type_tag)
 
template<typename T >
T nor_impl (const T v0, const T v1, complex_type_tag)
 
template<typename T >
T const_pi_impl (mpfrreal_type_tag)
 
template<typename T >
T const_e_impl (mpfrreal_type_tag)
 
bool is_nan_impl (const mpfr::mpreal &v, mpfrreal_type_tag)
 
template<typename T >
int to_int32_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
long long to_int64_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
long long to_uint64_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T abs_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T acos_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T acosh_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T asin_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T asinh_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T atan_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T atanh_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T ceil_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T cos_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T cosh_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T exp_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T floor_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T log_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T log10_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T log2_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T neg_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T pos_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T sin_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T sinh_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T sqrt_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T tan_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T tanh_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T cot_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T sec_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T csc_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T r2d_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T d2r_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T d2g_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T g2d_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T notl_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T frac_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T trunc_impl (const T &v, mpfrreal_type_tag)
 
bool is_true_impl (const mpfr::mpreal &v)
 
bool is_false_impl (const mpfr::mpreal &v)
 
template<typename T >
T expm1_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T min_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
T max_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
T nequal_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
T sgn_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T log1p_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T erf_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T erfc_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T ncdf_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T modulus_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
T pow_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
T logn_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
T sinc_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T xor_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
T xnor_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
T equal_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
T round_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T roundn_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
bool is_integer_impl (const T &v, mpfrreal_type_tag)
 
template<typename T >
T root_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
T hypot_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
T atan2_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
T shr_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
T shl_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
T and_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
T nand_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
T or_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
T nor_impl (const T &v0, const T &v1, mpfrreal_type_tag)
 
template<typename T >
T const_pi_impl (my_real_type_tag)
 
template<typename T >
T const_e_impl (my_real_type_tag)
 
bool is_nan_impl (const real::type &v, my_real_type_tag)
 
template<typename T >
T abs_impl (const T v, my_real_type_tag)
 
template<typename T >
T acos_impl (const T v, my_real_type_tag)
 
template<typename T >
T acosh_impl (const T v, my_real_type_tag)
 
template<typename T >
T asin_impl (const T v, my_real_type_tag)
 
template<typename T >
T asinh_impl (const T v, my_real_type_tag)
 
template<typename T >
T atan_impl (const T v, my_real_type_tag)
 
template<typename T >
T atanh_impl (const T v, my_real_type_tag)
 
template<typename T >
T ceil_impl (const T v, my_real_type_tag)
 
template<typename T >
T cos_impl (const T v, my_real_type_tag)
 
template<typename T >
T cosh_impl (const T v, my_real_type_tag)
 
template<typename T >
T exp_impl (const T v, my_real_type_tag)
 
template<typename T >
T floor_impl (const T v, my_real_type_tag)
 
template<typename T >
T log_impl (const T v, my_real_type_tag)
 
template<typename T >
T log10_impl (const T v, my_real_type_tag)
 
template<typename T >
T log2_impl (const T v, my_real_type_tag)
 
template<typename T >
T neg_impl (const T v, my_real_type_tag)
 
template<typename T >
T pos_impl (const T v, my_real_type_tag)
 
template<typename T >
T sin_impl (const T v, my_real_type_tag)
 
template<typename T >
T sinh_impl (const T v, my_real_type_tag)
 
template<typename T >
T sqrt_impl (const T v, my_real_type_tag)
 
template<typename T >
T tan_impl (const T v, my_real_type_tag)
 
template<typename T >
T tanh_impl (const T v, my_real_type_tag)
 
template<typename T >
T cot_impl (const T v, my_real_type_tag)
 
template<typename T >
T sec_impl (const T v, my_real_type_tag)
 
template<typename T >
T csc_impl (const T v, my_real_type_tag)
 
template<typename T >
T r2d_impl (const T v, my_real_type_tag)
 
template<typename T >
T d2r_impl (const T v, my_real_type_tag)
 
template<typename T >
T d2g_impl (const T v, my_real_type_tag)
 
template<typename T >
T g2d_impl (const T v, my_real_type_tag)
 
template<typename T >
T notl_impl (const T v, my_real_type_tag)
 
template<typename T >
T frac_impl (const T v, my_real_type_tag)
 
template<typename T >
T trunc_impl (const T v, my_real_type_tag)
 
template<typename T >
int to_int32_impl (const T v, my_real_type_tag)
 
template<typename T >
long long to_int64_impl (const T v, my_real_type_tag)
 
template<typename T >
unsigned long long to_uint64_impl (const T v, my_real_type_tag)
 
bool is_true_impl (const real::type v)
 
bool is_false_impl (const real::type v)
 
template<typename T >
T expm1_impl (const T v, my_real_type_tag)
 
template<typename T >
T nequal_impl (const T v0, const T v1, my_real_type_tag)
 
template<typename T >
T sgn_impl (const T v, my_real_type_tag)
 
template<typename T >
T log1p_impl (const T v, my_real_type_tag)
 
template<typename T >
T erf_impl (T v, my_real_type_tag)
 
template<typename T >
T erfc_impl (T v, my_real_type_tag)
 
template<typename T >
T ncdf_impl (T v, my_real_type_tag)
 
template<typename T >
T modulus_impl (const T v0, const T v1, my_real_type_tag)
 
template<typename T >
T pow_impl (const T v0, const T v1, my_real_type_tag)
 
template<typename T >
T logn_impl (const T v0, const T v1, my_real_type_tag)
 
template<typename T >
T sinc_impl (T v, my_real_type_tag)
 
template<typename T >
T xor_impl (const T v0, const T v1, my_real_type_tag)
 
template<typename T >
T xnor_impl (const T v0, const T v1, my_real_type_tag)
 
template<typename T >
T equal_impl (const T v0, const T v1, my_real_type_tag)
 
template<typename T >
T round_impl (const T v, my_real_type_tag)
 
template<typename T >
T roundn_impl (const T v0, const T v1, my_real_type_tag)
 
template<typename T >
bool is_integer_impl (const T v, my_real_type_tag)
 
template<typename T >
T root_impl (const T v0, const T v1, my_real_type_tag)
 
template<typename T >
T hypot_impl (const T v0, const T v1, my_real_type_tag)
 
template<typename T >
T atan2_impl (const T v0, const T v1, my_real_type_tag)
 
template<typename T >
T shr_impl (const T v0, const T v1, my_real_type_tag)
 
template<typename T >
T shl_impl (const T v0, const T v1, my_real_type_tag)
 
template<typename T >
T and_impl (const T v0, const T v1, my_real_type_tag)
 
template<typename T >
T nand_impl (const T v0, const T v1, my_real_type_tag)
 
template<typename T >
T or_impl (const T v0, const T v1, my_real_type_tag)
 
template<typename T >
T nor_impl (const T v0, const T v1, my_real_type_tag)
 

Typedef Documentation

◆ complex_t

Definition at line 68 of file exprtk_complex_adaptor.hpp.

Function Documentation

◆ abs_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::abs_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 129 of file exprtk_mpfr_adaptor.hpp.

129{ return mpfr::abs (v); }

◆ abs_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::abs_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 88 of file exprtk_complex_adaptor.hpp.

88{ return cmplx::abs (v); }
complex_t abs(const complex_t v)

References cmplx::abs().

Here is the call graph for this function:

◆ abs_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::abs_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1453 of file exprtk.hpp.

1453{ return ((v >= T(0)) ? v : -v); }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ abs_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::abs_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 88 of file exprtk_real_adaptor.hpp.

88{ return real::abs (v); }
type abs(const type v)

References real::abs().

Here is the call graph for this function:

◆ abs_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::abs_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 922 of file exprtk.hpp.

923 {
924 return ((v < T(0)) ? -v : v);
925 }

References exprtk::details::match_impl().

Referenced by equal_impl(), equal_impl(), equal_impl(), equal_impl(), erf_impl(), erf_impl(), expm1_impl(), log1p_impl(), log1p_impl(), log1p_impl(), ncdf_impl(), nequal_impl(), nequal_impl(), nequal_impl(), nequal_impl(), root_impl(), root_impl(), root_impl(), sinc_impl(), and sinc_impl().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ acos_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::acos_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 130 of file exprtk_mpfr_adaptor.hpp.

130{ return mpfr::acos (v); }

◆ acos_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::acos_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 89 of file exprtk_complex_adaptor.hpp.

89{ return cmplx::acos (v); }
complex_t acos(const complex_t v)

References cmplx::acos().

Here is the call graph for this function:

◆ acos_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::acos_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 89 of file exprtk_real_adaptor.hpp.

89{ return real::acos (v); }
type acos(const type v)

References real::acos().

Here is the call graph for this function:

◆ acos_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::acos_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1421 of file exprtk.hpp.

1421{ return std::acos (v); }

◆ acos_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::acos_impl ( const T  ,
int_type_tag   
)
inline

Definition at line 1467 of file exprtk.hpp.

1467{ return std::numeric_limits<T>::quiet_NaN(); }

◆ acosh_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::acosh_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 131 of file exprtk_mpfr_adaptor.hpp.

131{ return mpfr::acosh(v); }

◆ acosh_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::acosh_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 90 of file exprtk_complex_adaptor.hpp.

90{ return cmplx::log(v + cmplx::sqrt((v * v) - cmplx::complex_t(1))); }
complex_t log(const complex_t v)
complex_t sqrt(const complex_t v)

References cmplx::log(), and cmplx::sqrt().

Here is the call graph for this function:

◆ acosh_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::acosh_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 90 of file exprtk_real_adaptor.hpp.

90{ return real::acosh(v); }
type acosh(const type v)

References real::acosh().

Here is the call graph for this function:

◆ acosh_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::acosh_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1355 of file exprtk.hpp.

1356 {
1357 return std::log(v + std::sqrt((v * v) - T(1)));
1358 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ acosh_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::acosh_impl ( const T  ,
int_type_tag   
)
inline

Definition at line 1468 of file exprtk.hpp.

1468{ return std::numeric_limits<T>::quiet_NaN(); }

◆ and_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::and_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 350 of file exprtk_mpfr_adaptor.hpp.

351 {
352 return (is_true_impl(v0) && is_true_impl(v1)) ? T(1) : T(0);
353 }

References is_true_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ and_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::and_impl ( const T  v0,
const T  v1,
complex_type_tag   
)
inline

Definition at line 337 of file exprtk_complex_adaptor.hpp.

338 {
339 return (is_true_impl(v0) && is_true_impl(v1)) ? T(1) : T(0);
340 }

References is_true_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ and_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::and_impl ( const T  v0,
const T  v1,
int_type_tag   
)
inline

Definition at line 1130 of file exprtk.hpp.

1131 {
1132 return v0 && v1;
1133 }

◆ and_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::and_impl ( const T  v0,
const T  v1,
my_real_type_tag   
)
inline

Definition at line 325 of file exprtk_real_adaptor.hpp.

326 {
327 return (is_true_impl(v0) && is_true_impl(v1)) ? T(1) : T(0);
328 }

References is_true_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ and_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::and_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 1124 of file exprtk.hpp.

1125 {
1126 return (is_true_impl(v0) && is_true_impl(v1)) ? T(1) : T(0);
1127 }

References is_true_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ asin_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::asin_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 132 of file exprtk_mpfr_adaptor.hpp.

132{ return mpfr::asin (v); }

◆ asin_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::asin_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 91 of file exprtk_complex_adaptor.hpp.

91{ return cmplx::asin (v); }
complex_t asin(const complex_t v)

References cmplx::asin().

Here is the call graph for this function:

◆ asin_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::asin_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 91 of file exprtk_real_adaptor.hpp.

91{ return real::asin (v); }
type asin(const type v)

References real::asin().

Here is the call graph for this function:

◆ asin_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::asin_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1422 of file exprtk.hpp.

1422{ return std::asin (v); }

◆ asin_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::asin_impl ( const T  ,
int_type_tag   
)
inline

Definition at line 1469 of file exprtk.hpp.

1469{ return std::numeric_limits<T>::quiet_NaN(); }

◆ asinh_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::asinh_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 133 of file exprtk_mpfr_adaptor.hpp.

133{ return mpfr::asinh(v); }

◆ asinh_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::asinh_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 92 of file exprtk_complex_adaptor.hpp.

92{ return cmplx::log(v + cmplx::sqrt((v * v) + cmplx::complex_t(1))); }

References cmplx::log(), and cmplx::sqrt().

Here is the call graph for this function:

◆ asinh_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::asinh_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 92 of file exprtk_real_adaptor.hpp.

92{ return real::asinh(v); }
type asinh(const type v)

References real::asinh().

Here is the call graph for this function:

◆ asinh_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::asinh_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1361 of file exprtk.hpp.

1362 {
1363 return std::log(v + std::sqrt((v * v) + T(1)));
1364 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ asinh_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::asinh_impl ( const T  ,
int_type_tag   
)
inline

Definition at line 1470 of file exprtk.hpp.

1470{ return std::numeric_limits<T>::quiet_NaN(); }

◆ atan2_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::atan2_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 332 of file exprtk_mpfr_adaptor.hpp.

333 {
334 return mpfr::atan2(v0,v1);
335 }

◆ atan2_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::atan2_impl ( const T  v0,
const T  v1,
complex_type_tag   
)
inline

Definition at line 319 of file exprtk_complex_adaptor.hpp.

320 {
321 return cmplx::atan2(v0,v1);
322 }
complex_t atan2(const complex_t v0, const complex_t v1)

References cmplx::atan2().

Here is the call graph for this function:

◆ atan2_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::atan2_impl ( const T  v0,
const T  v1,
my_real_type_tag   
)
inline

Definition at line 307 of file exprtk_real_adaptor.hpp.

308 {
309 return std::atan2(v0.d_,v1.d_);
310 }

◆ atan2_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::atan2_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 1072 of file exprtk.hpp.

1073 {
1074 return std::atan2(v0,v1);
1075 }

◆ atan2_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::atan2_impl ( const T  ,
const T  ,
int_type_tag   
)
inline

Definition at line 1078 of file exprtk.hpp.

1079 {
1080 return 0;
1081 }

◆ atan_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::atan_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 134 of file exprtk_mpfr_adaptor.hpp.

134{ return mpfr::atan (v); }

◆ atan_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::atan_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 93 of file exprtk_complex_adaptor.hpp.

93{ return cmplx::atan (v); }
complex_t atan(const complex_t v)

References cmplx::atan().

Here is the call graph for this function:

◆ atan_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::atan_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 93 of file exprtk_real_adaptor.hpp.

93{ return real::atan (v); }
type atan(const type v)

References real::atan().

Here is the call graph for this function:

◆ atan_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::atan_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1423 of file exprtk.hpp.

1423{ return std::atan (v); }

◆ atan_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::atan_impl ( const T  ,
int_type_tag   
)
inline

Definition at line 1471 of file exprtk.hpp.

1471{ return std::numeric_limits<T>::quiet_NaN(); }

◆ atanh_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::atanh_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 135 of file exprtk_mpfr_adaptor.hpp.

135{ return mpfr::atanh(v); }

◆ atanh_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::atanh_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 94 of file exprtk_complex_adaptor.hpp.

94{ return (cmplx::log(cmplx::complex_t(1) + v) - log(cmplx::complex_t(1) - v)) / cmplx::complex_t(2); }

References cmplx::log(), and exprtk::details::numeric::log().

Here is the call graph for this function:

◆ atanh_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::atanh_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 94 of file exprtk_real_adaptor.hpp.

94{ return real::atanh(v); }
type atanh(const type v)

References real::atanh().

Here is the call graph for this function:

◆ atanh_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::atanh_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1367 of file exprtk.hpp.

1368 {
1369 return (std::log(T(1) + v) - std::log(T(1) - v)) / T(2);
1370 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ atanh_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::atanh_impl ( const T  ,
int_type_tag   
)
inline

Definition at line 1472 of file exprtk.hpp.

1472{ return std::numeric_limits<T>::quiet_NaN(); }

◆ ceil_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::ceil_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 136 of file exprtk_mpfr_adaptor.hpp.

136{ return mpfr::ceil (v); }

◆ ceil_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::ceil_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 95 of file exprtk_complex_adaptor.hpp.

95{ return cmplx::ceil (v); }
complex_t ceil(const complex_t v)

References cmplx::ceil().

Here is the call graph for this function:

◆ ceil_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::ceil_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1460 of file exprtk.hpp.

1460{ return v; }

◆ ceil_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::ceil_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 95 of file exprtk_real_adaptor.hpp.

95{ return real::ceil (v); }
type ceil(const type v)

References real::ceil().

Here is the call graph for this function:

◆ ceil_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::ceil_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1424 of file exprtk.hpp.

1424{ return std::ceil (v); }

◆ const_e_impl() [1/4]

template<typename T >
T exprtk::details::numeric::details::const_e_impl ( complex_type_tag  )
inline

Definition at line 122 of file exprtk_complex_adaptor.hpp.

static const complex_t e

References cmplx::details::constant::e.

◆ const_e_impl() [2/4]

template<typename T >
T exprtk::details::numeric::details::const_e_impl ( mpfrreal_type_tag  )
inline

Definition at line 163 of file exprtk_mpfr_adaptor.hpp.

163{ return mpfr::const_euler(1024, exprtk::details::constant::mpfr_round); }
static const mp_rnd_t mpfr_round

References exprtk::details::constant::mpfr_round.

◆ const_e_impl() [3/4]

template<typename T >
T exprtk::details::numeric::details::const_e_impl ( my_real_type_tag  )
inline

Definition at line 122 of file exprtk_real_adaptor.hpp.

static const double e

References real::details::constant::e.

◆ const_e_impl() [4/4]

template<typename T >
T exprtk::details::numeric::details::const_e_impl ( real_type_tag  )
inline

Definition at line 1450 of file exprtk.hpp.

1450{ return T(numeric::constant::e); }

References exprtk::details::numeric::constant::e, and exprtk::details::match_impl().

Here is the call graph for this function:

◆ const_pi_impl() [1/4]

template<typename T >
T exprtk::details::numeric::details::const_pi_impl ( complex_type_tag  )
inline

Definition at line 121 of file exprtk_complex_adaptor.hpp.

static const complex_t pi

References cmplx::details::constant::pi.

◆ const_pi_impl() [2/4]

template<typename T >
T exprtk::details::numeric::details::const_pi_impl ( mpfrreal_type_tag  )
inline

Definition at line 162 of file exprtk_mpfr_adaptor.hpp.

162{ return mpfr::const_pi (1024, exprtk::details::constant::mpfr_round); }

References exprtk::details::constant::mpfr_round.

◆ const_pi_impl() [3/4]

template<typename T >
T exprtk::details::numeric::details::const_pi_impl ( my_real_type_tag  )
inline

Definition at line 121 of file exprtk_real_adaptor.hpp.

static const double pi

References real::details::constant::pi.

◆ const_pi_impl() [4/4]

template<typename T >
T exprtk::details::numeric::details::const_pi_impl ( real_type_tag  )
inline

Definition at line 1449 of file exprtk.hpp.

1449{ return T(numeric::constant::pi); }

References exprtk::details::match_impl(), and exprtk::details::numeric::constant::pi.

Here is the call graph for this function:

◆ const_qnan_impl()

template<typename T >
T exprtk::details::numeric::details::const_qnan_impl ( real_type_tag  )
inline

Definition at line 1451 of file exprtk.hpp.

1451{ return std::numeric_limits<T>::quiet_NaN(); }

◆ cos_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::cos_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 137 of file exprtk_mpfr_adaptor.hpp.

137{ return mpfr::cos (v); }

◆ cos_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::cos_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 96 of file exprtk_complex_adaptor.hpp.

96{ return cmplx::cos (v); }
complex_t cos(const complex_t v)

References cmplx::cos().

Here is the call graph for this function:

◆ cos_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::cos_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 96 of file exprtk_real_adaptor.hpp.

96{ return real::cos (v); }
type cos(const type v)

References real::cos().

Here is the call graph for this function:

◆ cos_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::cos_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1425 of file exprtk.hpp.

1425{ return std::cos (v); }

◆ cos_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::cos_impl ( const T  ,
int_type_tag   
)
inline

Definition at line 1473 of file exprtk.hpp.

1473{ return std::numeric_limits<T>::quiet_NaN(); }

◆ cosh_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::cosh_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 138 of file exprtk_mpfr_adaptor.hpp.

138{ return mpfr::cosh (v); }

◆ cosh_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::cosh_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 97 of file exprtk_complex_adaptor.hpp.

97{ return cmplx::cosh (v); }
complex_t cosh(const complex_t v)

References cmplx::cosh().

Here is the call graph for this function:

◆ cosh_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::cosh_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 97 of file exprtk_real_adaptor.hpp.

97{ return real::cosh (v); }
type cosh(const type v)

References real::cosh().

Here is the call graph for this function:

◆ cosh_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::cosh_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1426 of file exprtk.hpp.

1426{ return std::cosh (v); }

◆ cosh_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::cosh_impl ( const T  ,
int_type_tag   
)
inline

Definition at line 1474 of file exprtk.hpp.

1474{ return std::numeric_limits<T>::quiet_NaN(); }

◆ cot_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::cot_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 151 of file exprtk_mpfr_adaptor.hpp.

151{ return mpfr::cot (v); }

◆ cot_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::cot_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 110 of file exprtk_complex_adaptor.hpp.

110{ return cmplx::complex_t(1) / cmplx::tan(v); }
complex_t tan(const complex_t v)

References cmplx::tan().

Here is the call graph for this function:

◆ cot_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::cot_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 110 of file exprtk_real_adaptor.hpp.

110{ return real::cot (v); }
type cot(const type v)

References real::cot().

Here is the call graph for this function:

◆ cot_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::cot_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1439 of file exprtk.hpp.

1439{ return T(1) / std::tan(v); }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ cot_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::cot_impl ( const T  ,
int_type_tag   
)
inline

Definition at line 1479 of file exprtk.hpp.

1479{ return std::numeric_limits<T>::quiet_NaN(); }

◆ csc_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::csc_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 153 of file exprtk_mpfr_adaptor.hpp.

153{ return mpfr::csc (v); }

◆ csc_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::csc_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 112 of file exprtk_complex_adaptor.hpp.

112{ return cmplx::complex_t(1) / cmplx::sin(v); }
complex_t sin(const complex_t v)

References cmplx::sin().

Here is the call graph for this function:

◆ csc_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::csc_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 112 of file exprtk_real_adaptor.hpp.

112{ return real::csc (v); }
type csc(const type v)

References real::csc().

Here is the call graph for this function:

◆ csc_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::csc_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1441 of file exprtk.hpp.

1441{ return T(1) / std::sin(v); }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ csc_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::csc_impl ( const T  ,
int_type_tag   
)
inline

Definition at line 1481 of file exprtk.hpp.

1481{ return std::numeric_limits<T>::quiet_NaN(); }

◆ d2g_impl() [1/4]

template<typename T >
T exprtk::details::numeric::details::d2g_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 156 of file exprtk_mpfr_adaptor.hpp.

156{ return (v * T(10.0) / T(9.0)); }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ d2g_impl() [2/4]

template<typename T >
T exprtk::details::numeric::details::d2g_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 115 of file exprtk_complex_adaptor.hpp.

115{ return (v * cmplx::complex_t(10.0/9.0)); }

◆ d2g_impl() [3/4]

template<typename T >
T exprtk::details::numeric::details::d2g_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 115 of file exprtk_real_adaptor.hpp.

115{ return real::d2g (v); }
type d2g(const type v)

References real::d2g().

Here is the call graph for this function:

◆ d2g_impl() [4/4]

template<typename T >
T exprtk::details::numeric::details::d2g_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1444 of file exprtk.hpp.

1444{ return (v * T(10.0/9.0)); }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ d2r_impl() [1/4]

template<typename T >
T exprtk::details::numeric::details::d2r_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 155 of file exprtk_mpfr_adaptor.hpp.

155{ return (v * exprtk::details::constant::pi_180 ); }
static const mpfr::mpreal pi_180

References exprtk::details::constant::pi_180.

◆ d2r_impl() [2/4]

template<typename T >
T exprtk::details::numeric::details::d2r_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 114 of file exprtk_complex_adaptor.hpp.

114{ return (v * cmplx::complex_t(constant::pi_180)); }

References exprtk::details::numeric::constant::pi_180.

◆ d2r_impl() [3/4]

template<typename T >
T exprtk::details::numeric::details::d2r_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 114 of file exprtk_real_adaptor.hpp.

114{ return real::d2r (v); }
type d2r(const type v)

References real::d2r().

Here is the call graph for this function:

◆ d2r_impl() [4/4]

template<typename T >
T exprtk::details::numeric::details::d2r_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1443 of file exprtk.hpp.

1443{ return (v * T(numeric::constant::pi_180)); }

References exprtk::details::match_impl(), and exprtk::details::numeric::constant::pi_180.

Here is the call graph for this function:

◆ equal_impl() [1/6]

float exprtk::details::numeric::details::equal_impl ( const float  v0,
const float  v1,
real_type_tag   
)
inline

Definition at line 946 of file exprtk.hpp.

947 {
948 const float epsilon = epsilon_type<float>::value();
949 return (abs_impl(v0 - v1,real_type_tag()) <= (std::max(1.0f,std::max(abs_impl(v0,real_type_tag()),abs_impl(v1,real_type_tag()))) * epsilon)) ? 1.0f : 0.0f;
950 }
T abs_impl(const T v, real_type_tag)
Definition exprtk.hpp:922

References abs_impl().

Here is the call graph for this function:

◆ equal_impl() [2/6]

template<typename T >
T exprtk::details::numeric::details::equal_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 281 of file exprtk_mpfr_adaptor.hpp.

282 {
283 const T epsilon = epsilon_type<T>::value();
284 const T eps_norm = (mpfr::max(T(1),mpfr::max(mpfr::abs(v0),mpfr::abs(v1))) * epsilon);
285 const T diff = mpfr::abs(v0 - v1);
286 return (diff <= eps_norm) ? T(1) : T(0);
287 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ equal_impl() [3/6]

template<typename T >
T exprtk::details::numeric::details::equal_impl ( const T  v0,
const T  v1,
complex_type_tag   
)
inline

Definition at line 276 of file exprtk_complex_adaptor.hpp.

277 {
278 const T epsilon = epsilon_type<T>::value();
279 const T eps_norm = (max(T(1),max(abs_impl(v0,complex_type_tag()),abs_impl(v1,complex_type_tag()))) * epsilon);
280 return (abs_impl(v0 - v1,complex_type_tag()) <= eps_norm) ? T(1) : T(0);
281 }

References abs_impl(), exprtk::details::match_impl(), and exprtk::details::numeric::max().

Here is the call graph for this function:

◆ equal_impl() [4/6]

template<typename T >
T exprtk::details::numeric::details::equal_impl ( const T  v0,
const T  v1,
int_type_tag   
)
inline

Definition at line 953 of file exprtk.hpp.

954 {
955 return (v0 == v1) ? 1 : 0;
956 }

◆ equal_impl() [5/6]

template<typename T >
T exprtk::details::numeric::details::equal_impl ( const T  v0,
const T  v1,
my_real_type_tag   
)
inline

Definition at line 256 of file exprtk_real_adaptor.hpp.

257 {
258 const T epsilon = epsilon_type<T>::value();
259 const T eps_norm = (max(T(1),max(abs_impl(v0,my_real_type_tag()),abs_impl(v1,my_real_type_tag()))) * epsilon);
260 return (abs_impl(v0 - v1,my_real_type_tag()) <= eps_norm) ? T(1) : T(0);
261 }

References abs_impl(), exprtk::details::match_impl(), and exprtk::details::numeric::max().

Here is the call graph for this function:

◆ equal_impl() [6/6]

template<typename T >
T exprtk::details::numeric::details::equal_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 940 of file exprtk.hpp.

941 {
942 const T epsilon = epsilon_type<T>::value();
943 return (abs_impl(v0 - v1,real_type_tag()) <= (std::max(T(1),std::max(abs_impl(v0,real_type_tag()),abs_impl(v1,real_type_tag()))) * epsilon)) ? T(1) : T(0);
944 }

References abs_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ erf_impl() [1/8]

double exprtk::details::numeric::details::erf_impl ( const double  v)
inline

Definition at line 1212 of file exprtk.hpp.

◆ erf_impl() [2/8]

float exprtk::details::numeric::details::erf_impl ( const float  v)
inline

Definition at line 1211 of file exprtk.hpp.

Referenced by erf_impl(), erf_impl(), erfc_impl(), erfc_impl(), erfc_impl(), and ncdf_impl().

Here is the caller graph for this function:

◆ erf_impl() [3/8]

long double exprtk::details::numeric::details::erf_impl ( const long double  v)
inline

Definition at line 1213 of file exprtk.hpp.

◆ erf_impl() [4/8]

template<typename T >
T exprtk::details::numeric::details::erf_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 218 of file exprtk_mpfr_adaptor.hpp.

219 {
220 return mpfr::erf(v);
221 }

◆ erf_impl() [5/8]

template<typename T >
T exprtk::details::numeric::details::erf_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1247 of file exprtk.hpp.

1248 {
1249 return erf_impl(static_cast<double>(v),real_type_tag());
1250 }
float erf_impl(const float v)
Definition exprtk.hpp:1211

References erf_impl().

Here is the call graph for this function:

◆ erf_impl() [6/8]

template<typename T >
T exprtk::details::numeric::details::erf_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1218 of file exprtk.hpp.

1219 {
1220 #if defined(_MSC_VER) && (_MSC_VER < 1900)
1221 // Credits: Abramowitz & Stegun Equations 7.1.25-28
1222 static const T c[] =
1223 {
1224 T( 1.26551223), T(1.00002368),
1225 T( 0.37409196), T(0.09678418),
1226 T(-0.18628806), T(0.27886807),
1227 T(-1.13520398), T(1.48851587),
1228 T(-0.82215223), T(0.17087277)
1229 };
1230
1231 const T t = T(1) / (T(1) + T(0.5) * abs_impl(v,real_type_tag()));
1232
1233 const T result = T(1) - t * std::exp((-v * v) -
1234 c[0] + t * (c[1] + t *
1235 (c[2] + t * (c[3] + t *
1236 (c[4] + t * (c[5] + t *
1237 (c[6] + t * (c[7] + t *
1238 (c[8] + t * (c[9]))))))))));
1239
1240 return (v >= T(0)) ? result : -result;
1241 #else
1242 return erf_impl(v);
1243 #endif
1244 }

References abs_impl(), erf_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ erf_impl() [7/8]

template<typename T >
T exprtk::details::numeric::details::erf_impl ( T  v,
complex_type_tag   
)
inline

Definition at line 194 of file exprtk_complex_adaptor.hpp.

195 {
196 const T t = T(1) / (T(1) + T(0.5) * abs_impl(v,complex_type_tag()));
197
198 static const T c[] = {
199 T( 1.26551223), T(1.00002368),
200 T( 0.37409196), T(0.09678418),
201 T(-0.18628806), T(0.27886807),
202 T(-1.13520398), T(1.48851587),
203 T(-0.82215223), T(0.17087277)
204 };
205
206 T result = T(1) - t * exp_impl((-v * v) -
207 c[0] + t * (c[1] + t *
208 (c[2] + t * (c[3] + t *
209 (c[4] + t * (c[5] + t *
210 (c[6] + t * (c[7] + t *
211 (c[8] + t * (c[9]))))))))),complex_type_tag());
212
213 return (v >= T(0)) ? result : -result;
214 }

References abs_impl(), exp_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ erf_impl() [8/8]

template<typename T >
T exprtk::details::numeric::details::erf_impl ( T  v,
my_real_type_tag   
)
inline

Definition at line 194 of file exprtk_real_adaptor.hpp.

195 {
196 return real::erf(v);
197 }
type erf(type v)

References real::erf().

Here is the call graph for this function:

◆ erfc_impl() [1/8]

double exprtk::details::numeric::details::erfc_impl ( const double  v)
inline

Definition at line 1257 of file exprtk.hpp.

◆ erfc_impl() [2/8]

float exprtk::details::numeric::details::erfc_impl ( const float  v)
inline

Definition at line 1256 of file exprtk.hpp.

Referenced by erfc_impl(), erfc_impl(), ncdf_impl(), ncdf_impl(), and ncdf_impl().

Here is the caller graph for this function:

◆ erfc_impl() [3/8]

long double exprtk::details::numeric::details::erfc_impl ( const long double  v)
inline

Definition at line 1258 of file exprtk.hpp.

◆ erfc_impl() [4/8]

template<typename T >
T exprtk::details::numeric::details::erfc_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 224 of file exprtk_mpfr_adaptor.hpp.

225 {
226 return mpfr::erfc(v);
227 }

◆ erfc_impl() [5/8]

template<typename T >
T exprtk::details::numeric::details::erfc_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1273 of file exprtk.hpp.

1274 {
1275 return erfc_impl(static_cast<double>(v),real_type_tag());
1276 }
float erfc_impl(const float v)
Definition exprtk.hpp:1256

References erfc_impl().

Here is the call graph for this function:

◆ erfc_impl() [6/8]

template<typename T >
T exprtk::details::numeric::details::erfc_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1263 of file exprtk.hpp.

1264 {
1265 #if defined(_MSC_VER) && (_MSC_VER < 1900)
1266 return T(1) - erf_impl(v,real_type_tag());
1267 #else
1268 return erfc_impl(v);
1269 #endif
1270 }

References erf_impl(), erfc_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ erfc_impl() [7/8]

template<typename T >
T exprtk::details::numeric::details::erfc_impl ( T  v,
complex_type_tag   
)
inline

Definition at line 217 of file exprtk_complex_adaptor.hpp.

218 {
219 return T(1) - erf_impl(v,complex_type_tag());
220 }

References erf_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ erfc_impl() [8/8]

template<typename T >
T exprtk::details::numeric::details::erfc_impl ( T  v,
my_real_type_tag   
)
inline

Definition at line 200 of file exprtk_real_adaptor.hpp.

201 {
202 return T(1) - erf_impl(v,my_real_type_tag());
203 }

References erf_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ exp_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::exp_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 139 of file exprtk_mpfr_adaptor.hpp.

139{ return mpfr::exp (v); }

◆ exp_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::exp_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 98 of file exprtk_complex_adaptor.hpp.

98{ return cmplx::exp (v); }
complex_t exp(const complex_t v)

References cmplx::exp().

Here is the call graph for this function:

◆ exp_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::exp_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1454 of file exprtk.hpp.

1454{ return std::exp (v); }

◆ exp_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::exp_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 98 of file exprtk_real_adaptor.hpp.

98{ return real::exp (v); }
type exp(const type v)

References real::exp().

Here is the call graph for this function:

◆ exp_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::exp_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1427 of file exprtk.hpp.

1427{ return std::exp (v); }

Referenced by erf_impl().

Here is the caller graph for this function:

◆ expm1_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::expm1_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 176 of file exprtk_mpfr_adaptor.hpp.

177 {
178 return mpfr::expm1(v);
179 }

◆ expm1_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::expm1_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 153 of file exprtk_complex_adaptor.hpp.

154 {
155 if (abs(v) < T(0.00001))
156 return v + (T(0.5) * v * v);
157 else
158 return exp(v) - T(1);
159 }

References exprtk::details::numeric::abs(), exprtk::details::numeric::exp(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ expm1_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::expm1_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1388 of file exprtk.hpp.

1389 {
1390 return T(std::exp<double>(v)) - T(1);
1391 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ expm1_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::expm1_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 153 of file exprtk_real_adaptor.hpp.

154 {
155 if (abs(v) < T(0.00001))
156 return v + (T(0.5) * v * v);
157 else
158 return exp(v) - T(1);
159 }

References exprtk::details::numeric::abs(), exprtk::details::numeric::exp(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ expm1_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::expm1_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1379 of file exprtk.hpp.

1380 {
1381 if (abs_impl(v,real_type_tag()) < T(0.00001))
1382 return v + (T(0.5) * v * v);
1383 else
1384 return std::exp(v) - T(1);
1385 }

References abs_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ floor_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::floor_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 140 of file exprtk_mpfr_adaptor.hpp.

140{ return mpfr::floor(v); }

◆ floor_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::floor_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 99 of file exprtk_complex_adaptor.hpp.

99{ return cmplx::floor(v); }
complex_t floor(const complex_t v)

References cmplx::floor().

Here is the call graph for this function:

◆ floor_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::floor_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1461 of file exprtk.hpp.

1461{ return v; }

◆ floor_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::floor_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 99 of file exprtk_real_adaptor.hpp.

99{ return real::floor(v); }
type floor(const type v)

References real::floor().

Here is the call graph for this function:

◆ floor_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::floor_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1428 of file exprtk.hpp.

1428{ return std::floor(v); }

◆ frac_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::frac_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 159 of file exprtk_mpfr_adaptor.hpp.

159{ return mpfr::frac (v); }

◆ frac_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::frac_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 118 of file exprtk_complex_adaptor.hpp.

118{ return cmplx::frac(v); }
complex_t frac(const complex_t v)

References cmplx::frac().

Here is the call graph for this function:

◆ frac_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::frac_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 118 of file exprtk_real_adaptor.hpp.

118{ return real::frac (v); }
type frac(const type v)

References real::frac().

Here is the call graph for this function:

◆ frac_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::frac_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1447 of file exprtk.hpp.

1447{ return (v - trunc_impl(v,real_type_tag())); }
T trunc_impl(const T v, real_type_tag)
Definition exprtk.hpp:1373

References trunc_impl().

Here is the call graph for this function:

◆ frac_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::frac_impl ( const T  ,
int_type_tag   
)
inline

Definition at line 1465 of file exprtk.hpp.

1465{ return T(0); }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ g2d_impl() [1/4]

template<typename T >
T exprtk::details::numeric::details::g2d_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 157 of file exprtk_mpfr_adaptor.hpp.

157{ return (v * T(9.0) / T(10.0)); }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ g2d_impl() [2/4]

template<typename T >
T exprtk::details::numeric::details::g2d_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 116 of file exprtk_complex_adaptor.hpp.

116{ return (v * cmplx::complex_t(9.0/10.0)); }

◆ g2d_impl() [3/4]

template<typename T >
T exprtk::details::numeric::details::g2d_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 116 of file exprtk_real_adaptor.hpp.

116{ return real::g2d (v); }
type g2d(const type v)

References real::g2d().

Here is the call graph for this function:

◆ g2d_impl() [4/4]

template<typename T >
T exprtk::details::numeric::details::g2d_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1445 of file exprtk.hpp.

1445{ return (v * T(9.0/10.0)); }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ hypot_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::hypot_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 326 of file exprtk_mpfr_adaptor.hpp.

327 {
328 return mpfr::hypot(v0,v1);
329 }

◆ hypot_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::hypot_impl ( const T  v0,
const T  v1,
complex_type_tag   
)
inline

Definition at line 313 of file exprtk_complex_adaptor.hpp.

314 {
315 return sqrt((v0 * v0) + (v1 * v1));
316 }

References exprtk::details::numeric::sqrt().

Here is the call graph for this function:

◆ hypot_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::hypot_impl ( const T  v0,
const T  v1,
int_type_tag   
)
inline

Definition at line 1066 of file exprtk.hpp.

1067 {
1068 return static_cast<T>(std::sqrt(static_cast<double>((v0 * v0) + (v1 * v1))));
1069 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ hypot_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::hypot_impl ( const T  v0,
const T  v1,
my_real_type_tag   
)
inline

Definition at line 301 of file exprtk_real_adaptor.hpp.

302 {
303 return sqrt((v0 * v0) + (v1 * v1));
304 }

References exprtk::details::numeric::sqrt().

Here is the call graph for this function:

◆ hypot_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::hypot_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 1060 of file exprtk.hpp.

1061 {
1062 return std::sqrt((v0 * v0) + (v1 * v1));
1063 }

◆ is_false_impl() [1/4]

bool exprtk::details::numeric::details::is_false_impl ( const cmplx::complex_t  v)
inline

Definition at line 147 of file exprtk_complex_adaptor.hpp.

148 {
149 return (0.0 == v);
150 }

◆ is_false_impl() [2/4]

bool exprtk::details::numeric::details::is_false_impl ( const mpfr::mpreal &  v)
inline

Definition at line 170 of file exprtk_mpfr_adaptor.hpp.

171 {
172 return !is_true_impl(v);
173 }

References is_true_impl().

Here is the call graph for this function:

◆ is_false_impl() [3/4]

bool exprtk::details::numeric::details::is_false_impl ( const real::type  v)
inline

Definition at line 147 of file exprtk_real_adaptor.hpp.

148 {
149 return (0.0 == v);
150 }

◆ is_false_impl() [4/4]

template<typename T >
bool exprtk::details::numeric::details::is_false_impl ( const T  v)
inline

Definition at line 916 of file exprtk.hpp.

917 {
918 return std::equal_to<T>()(T(0),v);
919 }

References exprtk::details::match_impl().

Referenced by exprtk::details::is_false(), nand_impl(), nand_impl(), nand_impl(), nand_impl(), nor_impl(), nor_impl(), nor_impl(), nor_impl(), xor_impl(), xor_impl(), xor_impl(), and xor_impl().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_integer_impl() [1/5]

template<typename T >
bool exprtk::details::numeric::details::is_integer_impl ( const T ,
int_type_tag   
)
inline

Definition at line 1490 of file exprtk.hpp.

1491 {
1492 return true;
1493 }

◆ is_integer_impl() [2/5]

template<typename T >
bool exprtk::details::numeric::details::is_integer_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 306 of file exprtk_mpfr_adaptor.hpp.

307 {
308 return mpfr::isint(v);
309 }

◆ is_integer_impl() [3/5]

template<typename T >
bool exprtk::details::numeric::details::is_integer_impl ( const T v,
real_type_tag   
)
inline

Definition at line 1484 of file exprtk.hpp.

1485 {
1486 return std::equal_to<T>()(T(0),std::fmod(v,T(1)));
1487 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ is_integer_impl() [4/5]

template<typename T >
bool exprtk::details::numeric::details::is_integer_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 301 of file exprtk_complex_adaptor.hpp.

302 {
303 return (T(0) == modulus_impl(v,T(1),complex_type_tag()));
304 }
T modulus_impl(const T v0, const T v1, real_type_tag)
Definition exprtk.hpp:980

References exprtk::details::match_impl(), and modulus_impl().

Here is the call graph for this function:

◆ is_integer_impl() [5/5]

template<typename T >
bool exprtk::details::numeric::details::is_integer_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 281 of file exprtk_real_adaptor.hpp.

282 {
283 return (T(0) == modulus_impl(v,T(1),my_real_type_tag()));
284 }

References exprtk::details::match_impl(), and modulus_impl().

Here is the call graph for this function:

◆ is_nan_impl() [1/4]

bool exprtk::details::numeric::details::is_nan_impl ( const cmplx::complex_t v,
complex_type_tag   
)
inline

Definition at line 83 of file exprtk_complex_adaptor.hpp.

84 {
85 return std::isnan(v.c_.real()) || std::isnan(v.c_.imag()) ;
86 }
std::complex< double > c_

References cmplx::complex_t::c_.

◆ is_nan_impl() [2/4]

bool exprtk::details::numeric::details::is_nan_impl ( const mpfr::mpreal &  v,
mpfrreal_type_tag   
)
inline

Definition at line 106 of file exprtk_mpfr_adaptor.hpp.

107 {
108 return mpfr::isnan(v);
109 }

◆ is_nan_impl() [3/4]

bool exprtk::details::numeric::details::is_nan_impl ( const real::type v,
my_real_type_tag   
)
inline

Definition at line 83 of file exprtk_real_adaptor.hpp.

84 {
85 return v.d_ != v.d_;
86 }
double d_
Definition real_type.hpp:82

References real::type::d_.

◆ is_nan_impl() [4/4]

template<typename T >
bool exprtk::details::numeric::details::is_nan_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 886 of file exprtk.hpp.

887 {
888 return std::not_equal_to<T>()(v,v);
889 }

◆ is_true_impl() [1/4]

bool exprtk::details::numeric::details::is_true_impl ( const cmplx::complex_t  v)
inline

Definition at line 142 of file exprtk_complex_adaptor.hpp.

143 {
144 return (0.0 != v);
145 }

◆ is_true_impl() [2/4]

bool exprtk::details::numeric::details::is_true_impl ( const mpfr::mpreal &  v)
inline

Definition at line 165 of file exprtk_mpfr_adaptor.hpp.

166 {
167 return v.toBool();
168 }

◆ is_true_impl() [3/4]

bool exprtk::details::numeric::details::is_true_impl ( const real::type  v)
inline

Definition at line 142 of file exprtk_real_adaptor.hpp.

143 {
144 return (0.0 != v);
145 }

◆ is_true_impl() [4/4]

template<typename T >
bool exprtk::details::numeric::details::is_true_impl ( const T  v)
inline

Definition at line 910 of file exprtk.hpp.

911 {
912 return std::not_equal_to<T>()(T(0),v);
913 }

References exprtk::details::match_impl().

Referenced by and_impl(), and_impl(), and_impl(), and_impl(), is_false_impl(), exprtk::details::is_true(), or_impl(), or_impl(), or_impl(), or_impl(), xnor_impl(), xnor_impl(), xnor_impl(), xnor_impl(), and xnor_impl().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ log10_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::log10_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 142 of file exprtk_mpfr_adaptor.hpp.

142{ return mpfr::log10(v); }

◆ log10_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::log10_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 101 of file exprtk_complex_adaptor.hpp.

101{ return cmplx::log10(v); }
complex_t log10(const complex_t v)

References cmplx::log10().

Here is the call graph for this function:

◆ log10_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::log10_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1456 of file exprtk.hpp.

1456{ return std::log10(v); }

◆ log10_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::log10_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 101 of file exprtk_real_adaptor.hpp.

101{ return real::log10(v); }
type log10(const type v)

References real::log10().

Here is the call graph for this function:

◆ log10_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::log10_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1430 of file exprtk.hpp.

1430{ return std::log10(v); }

◆ log1p_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::log1p_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 212 of file exprtk_mpfr_adaptor.hpp.

213 {
214 return mpfr::log1p(v);
215 }

◆ log1p_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::log1p_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 178 of file exprtk_complex_adaptor.hpp.

179 {
180 if (v > T(-1))
181 {
182 if (abs_impl(v,complex_type_tag()) > T(0.0001))
183 {
184 return log_impl(T(1) + v,complex_type_tag());
185 }
186 else
187 return (T(-0.5) * v + T(1)) * v;
188 }
189 else
190 return T(std::numeric_limits<T>::quiet_NaN());
191 }
T log_impl(const T v, real_type_tag)
Definition exprtk.hpp:1429

References abs_impl(), log_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ log1p_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::log1p_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1410 of file exprtk.hpp.

1411 {
1412 if (v > T(-1))
1413 {
1414 return std::log(T(1) + v);
1415 }
1416
1417 return std::numeric_limits<T>::quiet_NaN();
1418 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ log1p_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::log1p_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 178 of file exprtk_real_adaptor.hpp.

179 {
180 if (v > T(-1))
181 {
182 if (abs_impl(v,my_real_type_tag()) > T(0.0001))
183 {
184 return log_impl(T(1) + v,my_real_type_tag());
185 }
186 else
187 return (T(-0.5) * v + T(1)) * v;
188 }
189 else
190 return T(std::numeric_limits<T>::quiet_NaN());
191 }

References abs_impl(), log_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ log1p_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::log1p_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1394 of file exprtk.hpp.

1395 {
1396 if (v > T(-1))
1397 {
1398 if (abs_impl(v,real_type_tag()) > T(0.0001))
1399 {
1400 return std::log(T(1) + v);
1401 }
1402 else
1403 return (T(-0.5) * v + T(1)) * v;
1404 }
1405
1406 return std::numeric_limits<T>::quiet_NaN();
1407 }

References abs_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ log2_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::log2_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 143 of file exprtk_mpfr_adaptor.hpp.

143{ return mpfr::log2 (v); }

◆ log2_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::log2_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 102 of file exprtk_complex_adaptor.hpp.

102{ return cmplx::log(v)/cmplx::complex_t(constant::log2); }

References cmplx::log(), and exprtk::details::numeric::constant::log2.

Here is the call graph for this function:

◆ log2_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::log2_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1457 of file exprtk.hpp.

1457{ return std::log(v)/T(numeric::constant::log2); }

References exprtk::details::numeric::constant::log2, and exprtk::details::match_impl().

Here is the call graph for this function:

◆ log2_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::log2_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 102 of file exprtk_real_adaptor.hpp.

102{ return real::log2 (v); }
type log2(const type v)

References real::log2().

Here is the call graph for this function:

◆ log2_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::log2_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1431 of file exprtk.hpp.

1431{ return std::log(v)/T(numeric::constant::log2); }

References exprtk::details::numeric::constant::log2, and exprtk::details::match_impl().

Here is the call graph for this function:

◆ log_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::log_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 141 of file exprtk_mpfr_adaptor.hpp.

141{ return mpfr::log (v); }

◆ log_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::log_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 100 of file exprtk_complex_adaptor.hpp.

100{ return cmplx::log (v); }

References cmplx::log().

Here is the call graph for this function:

◆ log_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::log_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1455 of file exprtk.hpp.

1455{ return std::log (v); }

◆ log_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::log_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 100 of file exprtk_real_adaptor.hpp.

100{ return real::log (v); }
type log(const type v)

References real::log().

Here is the call graph for this function:

◆ log_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::log_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1429 of file exprtk.hpp.

1429{ return std::log (v); }

Referenced by log1p_impl(), and log1p_impl().

Here is the caller graph for this function:

◆ logn_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::logn_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 249 of file exprtk_mpfr_adaptor.hpp.

250 {
251 return mpfr::log(v0) / mpfr::log(v1);
252 }

◆ logn_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::logn_impl ( const T  v0,
const T  v1,
complex_type_tag   
)
inline

Definition at line 244 of file exprtk_complex_adaptor.hpp.

245 {
246 return log(v0) / log(v1);
247 }

References exprtk::details::numeric::log().

Here is the call graph for this function:

◆ logn_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::logn_impl ( const T  v0,
const T  v1,
int_type_tag   
)
inline

Definition at line 1010 of file exprtk.hpp.

1011 {
1012 return static_cast<T>(logn_impl<double>(static_cast<double>(v0),static_cast<double>(v1),real_type_tag()));
1013 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ logn_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::logn_impl ( const T  v0,
const T  v1,
my_real_type_tag   
)
inline

Definition at line 224 of file exprtk_real_adaptor.hpp.

225 {
226 return log(v0) / log(v1);
227 }

References exprtk::details::numeric::log().

Here is the call graph for this function:

◆ logn_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::logn_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 1004 of file exprtk.hpp.

1005 {
1006 return std::log(v0) / std::log(v1);
1007 }

◆ max_impl() [1/2]

template<typename T >
T exprtk::details::numeric::details::max_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 189 of file exprtk_mpfr_adaptor.hpp.

190 {
191 using std::max;
192 return max(v0,v1);
193 }

References exprtk::details::numeric::max().

Here is the call graph for this function:

◆ max_impl() [2/2]

template<typename T >
T exprtk::details::numeric::details::max_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 934 of file exprtk.hpp.

935 {
936 return std::max<T>(v0,v1);
937 }

◆ min_impl() [1/2]

template<typename T >
T exprtk::details::numeric::details::min_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 182 of file exprtk_mpfr_adaptor.hpp.

183 {
184 using std::min;
185 return min(v0,v1);
186 }

References exprtk::details::numeric::min().

Here is the call graph for this function:

◆ min_impl() [2/2]

template<typename T >
T exprtk::details::numeric::details::min_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 928 of file exprtk.hpp.

929 {
930 return std::min<T>(v0,v1);
931 }

◆ modulus_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::modulus_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 237 of file exprtk_mpfr_adaptor.hpp.

238 {
239 return mpfr::fmod(v0,v1);
240 }

◆ modulus_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::modulus_impl ( const T  v0,
const T  v1,
complex_type_tag   
)
inline

Definition at line 232 of file exprtk_complex_adaptor.hpp.

233 {
234 return modulus(v0,v1);
235 }

References exprtk::details::numeric::modulus().

Here is the call graph for this function:

◆ modulus_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::modulus_impl ( const T  v0,
const T  v1,
int_type_tag   
)
inline

Definition at line 986 of file exprtk.hpp.

987 {
988 return v0 % v1;
989 }

◆ modulus_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::modulus_impl ( const T  v0,
const T  v1,
my_real_type_tag   
)
inline

Definition at line 212 of file exprtk_real_adaptor.hpp.

213 {
214 return modulus(v0,v1);
215 }

References exprtk::details::numeric::modulus().

Here is the call graph for this function:

◆ modulus_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::modulus_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 980 of file exprtk.hpp.

981 {
982 return std::fmod(v0,v1);
983 }

Referenced by is_integer_impl(), is_integer_impl(), root_impl(), root_impl(), and root_impl().

Here is the caller graph for this function:

◆ nand_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::nand_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 356 of file exprtk_mpfr_adaptor.hpp.

357 {
358 return (is_false_impl(v0) || is_false_impl(v1)) ? T(1) : T(0);
359 }

References is_false_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ nand_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::nand_impl ( const T  v0,
const T  v1,
complex_type_tag   
)
inline

Definition at line 343 of file exprtk_complex_adaptor.hpp.

344 {
345 return (is_false_impl(v0) || is_false_impl(v1)) ? T(1) : T(0);
346 }

References is_false_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ nand_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::nand_impl ( const T  v0,
const T  v1,
int_type_tag   
)
inline

Definition at line 1142 of file exprtk.hpp.

1143 {
1144 return !(v0 && v1);
1145 }

◆ nand_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::nand_impl ( const T  v0,
const T  v1,
my_real_type_tag   
)
inline

Definition at line 331 of file exprtk_real_adaptor.hpp.

332 {
333 return (is_false_impl(v0) || is_false_impl(v1)) ? T(1) : T(0);
334 }

References is_false_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ nand_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::nand_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 1136 of file exprtk.hpp.

1137 {
1138 return (is_false_impl(v0) || is_false_impl(v1)) ? T(1) : T(0);
1139 }

References is_false_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ ncdf_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::ncdf_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 230 of file exprtk_mpfr_adaptor.hpp.

231 {
232 static const T _05 = T(0.5);
233 return _05 * erfc_impl(-(v / constant::sqrt2),mpfrreal_type_tag());
234 }

References erfc_impl(), exprtk::details::match_impl(), and exprtk::details::numeric::constant::sqrt2.

Here is the call graph for this function:

◆ ncdf_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::ncdf_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1285 of file exprtk.hpp.

1286 {
1287 return ncdf_impl(static_cast<double>(v),real_type_tag());
1288 }
T ncdf_impl(const T v, real_type_tag)
Definition exprtk.hpp:1279

References ncdf_impl().

Here is the call graph for this function:

◆ ncdf_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::ncdf_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1279 of file exprtk.hpp.

1280 {
1281 return T(0.5) * erfc_impl(-(v / T(numeric::constant::sqrt2)),real_type_tag());
1282 }

References erfc_impl(), exprtk::details::match_impl(), and exprtk::details::numeric::constant::sqrt2.

Referenced by ncdf_impl().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ncdf_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::ncdf_impl ( T  v,
complex_type_tag   
)
inline

Definition at line 223 of file exprtk_complex_adaptor.hpp.

224 {
225 T cnd = T(0.5) * (T(1) + erf_impl(
227 T(constant::sqrt2),complex_type_tag()));
228 return (v < T(0)) ? (T(1) - cnd) : cnd;
229 }

References abs_impl(), erf_impl(), exprtk::details::match_impl(), and exprtk::details::numeric::constant::sqrt2.

Here is the call graph for this function:

◆ ncdf_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::ncdf_impl ( T  v,
my_real_type_tag   
)
inline

Definition at line 206 of file exprtk_real_adaptor.hpp.

207 {
208 return T(0.5) * erfc_impl(-(v / T(numeric::constant::sqrt2)),my_real_type_tag());
209 }

References erfc_impl(), exprtk::details::match_impl(), and exprtk::details::numeric::constant::sqrt2.

Here is the call graph for this function:

◆ neg_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::neg_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 144 of file exprtk_mpfr_adaptor.hpp.

144{ return -v; }

◆ neg_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::neg_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 103 of file exprtk_complex_adaptor.hpp.

103{ return -v; }

◆ neg_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::neg_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1458 of file exprtk.hpp.

1458{ return -v; }

◆ neg_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::neg_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 103 of file exprtk_real_adaptor.hpp.

103{ return -v; }

◆ neg_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::neg_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1432 of file exprtk.hpp.

1432{ return -v; }

◆ nequal_impl() [1/6]

float exprtk::details::numeric::details::nequal_impl ( const float  v0,
const float  v1,
real_type_tag   
)
inline

Definition at line 966 of file exprtk.hpp.

967 {
968 typedef real_type_tag rtg;
969 const float epsilon = epsilon_type<float>::value();
970 return (abs_impl(v0 - v1,rtg()) > (std::max(1.0f,std::max(abs_impl(v0,rtg()),abs_impl(v1,rtg()))) * epsilon)) ? 1.0f : 0.0f;
971 }

References abs_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ nequal_impl() [2/6]

template<typename T >
T exprtk::details::numeric::details::nequal_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 196 of file exprtk_mpfr_adaptor.hpp.

197 {
198 const T epsilon = epsilon_type<T>::value();
199 const T eps_norm = (mpfr::max(T(1),mpfr::max(mpfr::abs(v0),mpfr::abs(v1))) * epsilon);
200 return (mpfr::abs(v0 - v1) > eps_norm) ? T(1) : T(0);
201 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ nequal_impl() [3/6]

template<typename T >
T exprtk::details::numeric::details::nequal_impl ( const T  v0,
const T  v1,
complex_type_tag   
)
inline

Definition at line 162 of file exprtk_complex_adaptor.hpp.

163 {
164 const T epsilon = epsilon_type<T>::value();
165 const T eps_norm = (std::max(T(1),std::max(abs_impl(v0,complex_type_tag()),abs_impl(v1,complex_type_tag()))) * epsilon);
166 return (abs_impl(v0 - v1,complex_type_tag()) > eps_norm) ? T(1) : T(0);
167 }

References abs_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ nequal_impl() [4/6]

template<typename T >
T exprtk::details::numeric::details::nequal_impl ( const T  v0,
const T  v1,
int_type_tag   
)
inline

Definition at line 974 of file exprtk.hpp.

975 {
976 return (v0 != v1) ? 1 : 0;
977 }

◆ nequal_impl() [5/6]

template<typename T >
T exprtk::details::numeric::details::nequal_impl ( const T  v0,
const T  v1,
my_real_type_tag   
)
inline

Definition at line 162 of file exprtk_real_adaptor.hpp.

163 {
164 const T epsilon = epsilon_type<T>::value();
165 const T eps_norm = (std::max(T(1),std::max(abs_impl(v0,my_real_type_tag()),abs_impl(v1,my_real_type_tag()))) * epsilon);
166 return (abs_impl(v0 - v1,my_real_type_tag()) > eps_norm) ? T(1) : T(0);
167 }

References abs_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ nequal_impl() [6/6]

template<typename T >
T exprtk::details::numeric::details::nequal_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 959 of file exprtk.hpp.

960 {
961 typedef real_type_tag rtg;
962 const T epsilon = epsilon_type<T>::value();
963 return (abs_impl(v0 - v1,rtg()) > (std::max(T(1),std::max(abs_impl(v0,rtg()),abs_impl(v1,rtg()))) * epsilon)) ? T(1) : T(0);
964 }

References abs_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ nor_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::nor_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 368 of file exprtk_mpfr_adaptor.hpp.

369 {
370 return (is_false_impl(v0) && is_false_impl(v1)) ? T(1) : T(0);
371 }

References is_false_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ nor_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::nor_impl ( const T  v0,
const T  v1,
complex_type_tag   
)
inline

Definition at line 355 of file exprtk_complex_adaptor.hpp.

356 {
357 return (is_false_impl(v0) && is_false_impl(v1)) ? T(1) : T(0);
358 }

References is_false_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ nor_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::nor_impl ( const T  v0,
const T  v1,
int_type_tag   
)
inline

Definition at line 1166 of file exprtk.hpp.

1167 {
1168 return !(v0 || v1);
1169 }

◆ nor_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::nor_impl ( const T  v0,
const T  v1,
my_real_type_tag   
)
inline

Definition at line 343 of file exprtk_real_adaptor.hpp.

344 {
345 return (is_false_impl(v0) && is_false_impl(v1)) ? T(1) : T(0);
346 }

References is_false_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ nor_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::nor_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 1160 of file exprtk.hpp.

1161 {
1162 return (is_false_impl(v0) && is_false_impl(v1)) ? T(1) : T(0);
1163 }

References is_false_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ notl_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::notl_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 158 of file exprtk_mpfr_adaptor.hpp.

158{ return (v != T(0) ? T(0) : T(1)); }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ notl_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::notl_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 117 of file exprtk_complex_adaptor.hpp.

117{ return (v != cmplx::complex_t(0) ? cmplx::complex_t(0) : cmplx::complex_t(1)); }

◆ notl_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::notl_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1463 of file exprtk.hpp.

1463{ return !v; }

◆ notl_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::notl_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 117 of file exprtk_real_adaptor.hpp.

117{ return real::notl (v); }
type notl(const type v)

References real::notl().

Here is the call graph for this function:

◆ notl_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::notl_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1446 of file exprtk.hpp.

1446{ return (std::not_equal_to<T>()(T(0),v) ? T(0) : T(1)); }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ or_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::or_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 362 of file exprtk_mpfr_adaptor.hpp.

363 {
364 return (is_true_impl(v0) || is_true_impl(v1)) ? T(1) : T(0);
365 }

References is_true_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ or_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::or_impl ( const T  v0,
const T  v1,
complex_type_tag   
)
inline

Definition at line 349 of file exprtk_complex_adaptor.hpp.

350 {
351 return (is_true_impl(v0) || is_true_impl(v1)) ? T(1) : T(0);
352 }

References is_true_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ or_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::or_impl ( const T  v0,
const T  v1,
int_type_tag   
)
inline

Definition at line 1154 of file exprtk.hpp.

1155 {
1156 return (v0 || v1);
1157 }

◆ or_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::or_impl ( const T  v0,
const T  v1,
my_real_type_tag   
)
inline

Definition at line 337 of file exprtk_real_adaptor.hpp.

338 {
339 return (is_true_impl(v0) || is_true_impl(v1)) ? T(1) : T(0);
340 }

References is_true_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ or_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::or_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 1148 of file exprtk.hpp.

1149 {
1150 return (is_true_impl(v0) || is_true_impl(v1)) ? T(1) : T(0);
1151 }

References is_true_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ pos_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::pos_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 145 of file exprtk_mpfr_adaptor.hpp.

145{ return v; }

◆ pos_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::pos_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 104 of file exprtk_complex_adaptor.hpp.

104{ return v; }

◆ pos_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::pos_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1459 of file exprtk.hpp.

1459{ return +v; }

◆ pos_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::pos_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 104 of file exprtk_real_adaptor.hpp.

104{ return v; }

◆ pos_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::pos_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1433 of file exprtk.hpp.

1433{ return +v; }

◆ pow_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::pow_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 243 of file exprtk_mpfr_adaptor.hpp.

244 {
245 return mpfr::pow(v0,v1);
246 }

◆ pow_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::pow_impl ( const T  v0,
const T  v1,
complex_type_tag   
)
inline

Definition at line 238 of file exprtk_complex_adaptor.hpp.

239 {
240 return cmplx::pow(v0,v1);
241 }
complex_t pow(const complex_t v0, const complex_t v1)

References cmplx::pow().

Here is the call graph for this function:

◆ pow_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::pow_impl ( const T  v0,
const T  v1,
int_type_tag   
)
inline

Definition at line 998 of file exprtk.hpp.

999 {
1000 return std::pow(static_cast<double>(v0),static_cast<double>(v1));
1001 }

◆ pow_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::pow_impl ( const T  v0,
const T  v1,
my_real_type_tag   
)
inline

Definition at line 218 of file exprtk_real_adaptor.hpp.

219 {
220 return real::pow(v0,v1);
221 }
type pow(const type v0, const type v1)

References real::pow().

Here is the call graph for this function:

◆ pow_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::pow_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 992 of file exprtk.hpp.

993 {
994 return std::pow(v0,v1);
995 }

◆ process_impl() [1/3]

template<typename T >
T exprtk::details::numeric::details::process_impl ( const operator_type  operation,
const T  arg 
)
inlineprivate

Definition at line 5501 of file exprtk.hpp.

5502 {
5503 switch (operation)
5504 {
5505 case e_abs : return numeric::abs (arg);
5506 case e_acos : return numeric::acos (arg);
5507 case e_acosh : return numeric::acosh(arg);
5508 case e_asin : return numeric::asin (arg);
5509 case e_asinh : return numeric::asinh(arg);
5510 case e_atan : return numeric::atan (arg);
5511 case e_atanh : return numeric::atanh(arg);
5512 case e_ceil : return numeric::ceil (arg);
5513 case e_cos : return numeric::cos (arg);
5514 case e_cosh : return numeric::cosh (arg);
5515 case e_exp : return numeric::exp (arg);
5516 case e_expm1 : return numeric::expm1(arg);
5517 case e_floor : return numeric::floor(arg);
5518 case e_log : return numeric::log (arg);
5519 case e_log10 : return numeric::log10(arg);
5520 case e_log2 : return numeric::log2 (arg);
5521 case e_log1p : return numeric::log1p(arg);
5522 case e_neg : return numeric::neg (arg);
5523 case e_pos : return numeric::pos (arg);
5524 case e_round : return numeric::round(arg);
5525 case e_sin : return numeric::sin (arg);
5526 case e_sinc : return numeric::sinc (arg);
5527 case e_sinh : return numeric::sinh (arg);
5528 case e_sqrt : return numeric::sqrt (arg);
5529 case e_tan : return numeric::tan (arg);
5530 case e_tanh : return numeric::tanh (arg);
5531 case e_cot : return numeric::cot (arg);
5532 case e_sec : return numeric::sec (arg);
5533 case e_csc : return numeric::csc (arg);
5534 case e_r2d : return numeric::r2d (arg);
5535 case e_d2r : return numeric::d2r (arg);
5536 case e_d2g : return numeric::d2g (arg);
5537 case e_g2d : return numeric::g2d (arg);
5538 case e_notl : return numeric::notl (arg);
5539 case e_sgn : return numeric::sgn (arg);
5540 case e_erf : return numeric::erf (arg);
5541 case e_erfc : return numeric::erfc (arg);
5542 case e_ncdf : return numeric::ncdf (arg);
5543 case e_frac : return numeric::frac (arg);
5544 case e_trunc : return numeric::trunc(arg);
5545
5546 default : exprtk_debug(("numeric::details::process_impl<T> - Invalid unary operation.\n"));
5547 return std::numeric_limits<T>::quiet_NaN();
5548 }
5549 }
#define exprtk_debug(params)
Definition exprtk.hpp:64

References exprtk::details::numeric::abs(), exprtk::details::numeric::acos(), exprtk::details::numeric::acosh(), exprtk::details::numeric::asin(), exprtk::details::numeric::asinh(), exprtk::details::numeric::atan(), exprtk::details::numeric::atanh(), exprtk::details::numeric::ceil(), exprtk::details::numeric::cos(), exprtk::details::numeric::cosh(), exprtk::details::numeric::cot(), exprtk::details::numeric::csc(), exprtk::details::numeric::d2g(), exprtk::details::numeric::d2r(), exprtk::details::e_abs, exprtk::details::e_acos, exprtk::details::e_acosh, exprtk::details::e_asin, exprtk::details::e_asinh, exprtk::details::e_atan, exprtk::details::e_atanh, exprtk::details::e_ceil, exprtk::details::e_cos, exprtk::details::e_cosh, exprtk::details::e_cot, exprtk::details::e_csc, exprtk::details::e_d2g, exprtk::details::e_d2r, exprtk::details::e_erf, exprtk::details::e_erfc, exprtk::details::e_exp, exprtk::details::e_expm1, exprtk::details::e_floor, exprtk::details::e_frac, exprtk::details::e_g2d, exprtk::details::e_log, exprtk::details::e_log10, exprtk::details::e_log1p, exprtk::details::e_log2, exprtk::details::e_ncdf, exprtk::details::e_neg, exprtk::details::e_notl, exprtk::details::e_pos, exprtk::details::e_r2d, exprtk::details::e_round, exprtk::details::e_sec, exprtk::details::e_sgn, exprtk::details::e_sin, exprtk::details::e_sinc, exprtk::details::e_sinh, exprtk::details::e_sqrt, exprtk::details::e_tan, exprtk::details::e_tanh, exprtk::details::e_trunc, exprtk::details::numeric::erf(), exprtk::details::numeric::erfc(), exprtk::details::numeric::exp(), exprtk::details::numeric::expm1(), exprtk_debug, exprtk::details::numeric::floor(), exprtk::details::numeric::frac(), exprtk::details::numeric::g2d(), exprtk::details::numeric::log(), exprtk::details::numeric::log10(), exprtk::details::numeric::log1p(), exprtk::details::numeric::log2(), exprtk::details::match_impl(), exprtk::details::numeric::ncdf(), exprtk::details::numeric::neg(), exprtk::details::numeric::notl(), exprtk::details::numeric::pos(), exprtk::details::numeric::r2d(), exprtk::details::numeric::round(), exprtk::details::numeric::sec(), exprtk::details::numeric::sgn(), exprtk::details::numeric::sin(), exprtk::details::numeric::sinc(), exprtk::details::numeric::sinh(), exprtk::details::numeric::sqrt(), exprtk::details::numeric::tan(), exprtk::details::numeric::tanh(), and exprtk::details::numeric::trunc().

Referenced by exprtk::details::numeric::process(), and exprtk::details::numeric::process().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_impl() [2/3]

template<typename T >
T exprtk::details::numeric::details::process_impl ( const operator_type  operation,
const T  arg0,
const T  arg1 
)
inlineprivate

Definition at line 5552 of file exprtk.hpp.

5553 {
5554 switch (operation)
5555 {
5556 case e_add : return (arg0 + arg1);
5557 case e_sub : return (arg0 - arg1);
5558 case e_mul : return (arg0 * arg1);
5559 case e_div : return (arg0 / arg1);
5560 case e_mod : return modulus<T>(arg0,arg1);
5561 case e_pow : return pow<T>(arg0,arg1);
5562 case e_atan2 : return atan2<T>(arg0,arg1);
5563 case e_min : return std::min<T>(arg0,arg1);
5564 case e_max : return std::max<T>(arg0,arg1);
5565 case e_logn : return logn<T>(arg0,arg1);
5566 case e_lt : return (arg0 < arg1) ? T(1) : T(0);
5567 case e_lte : return (arg0 <= arg1) ? T(1) : T(0);
5568 case e_eq : return std::equal_to<T>()(arg0,arg1) ? T(1) : T(0);
5569 case e_ne : return std::not_equal_to<T>()(arg0,arg1) ? T(1) : T(0);
5570 case e_gte : return (arg0 >= arg1) ? T(1) : T(0);
5571 case e_gt : return (arg0 > arg1) ? T(1) : T(0);
5572 case e_and : return and_opr <T>(arg0,arg1);
5573 case e_nand : return nand_opr<T>(arg0,arg1);
5574 case e_or : return or_opr <T>(arg0,arg1);
5575 case e_nor : return nor_opr <T>(arg0,arg1);
5576 case e_xor : return xor_opr <T>(arg0,arg1);
5577 case e_xnor : return xnor_opr<T>(arg0,arg1);
5578 case e_root : return root <T>(arg0,arg1);
5579 case e_roundn : return roundn <T>(arg0,arg1);
5580 case e_equal : return equal <T>(arg0,arg1);
5581 case e_nequal : return nequal <T>(arg0,arg1);
5582 case e_hypot : return hypot <T>(arg0,arg1);
5583 case e_shr : return shr <T>(arg0,arg1);
5584 case e_shl : return shl <T>(arg0,arg1);
5585
5586 default : exprtk_debug(("numeric::details::process_impl<T> - Invalid binary operation.\n"));
5587 return std::numeric_limits<T>::quiet_NaN();
5588 }
5589 }

References exprtk::details::e_add, exprtk::details::e_and, exprtk::details::e_atan2, exprtk::details::e_div, exprtk::details::e_eq, exprtk::details::e_equal, exprtk::details::e_gt, exprtk::details::e_gte, exprtk::details::e_hypot, exprtk::details::e_logn, exprtk::details::e_lt, exprtk::details::e_lte, exprtk::details::e_max, exprtk::details::e_min, exprtk::details::e_mod, exprtk::details::e_mul, exprtk::details::e_nand, exprtk::details::e_ne, exprtk::details::e_nequal, exprtk::details::e_nor, exprtk::details::e_or, exprtk::details::e_pow, exprtk::details::e_root, exprtk::details::e_roundn, exprtk::details::e_shl, exprtk::details::e_shr, exprtk::details::e_sub, exprtk::details::e_xnor, exprtk::details::e_xor, exprtk_debug, and exprtk::details::match_impl().

Here is the call graph for this function:

◆ process_impl() [3/3]

template<typename T >
T exprtk::details::numeric::details::process_impl ( const operator_type  operation,
const T  arg0,
const T  arg1,
int_type_tag   
)
inlineprivate

Definition at line 5592 of file exprtk.hpp.

5593 {
5594 switch (operation)
5595 {
5596 case e_add : return (arg0 + arg1);
5597 case e_sub : return (arg0 - arg1);
5598 case e_mul : return (arg0 * arg1);
5599 case e_div : return (arg0 / arg1);
5600 case e_mod : return arg0 % arg1;
5601 case e_pow : return pow<T>(arg0,arg1);
5602 case e_min : return std::min<T>(arg0,arg1);
5603 case e_max : return std::max<T>(arg0,arg1);
5604 case e_logn : return logn<T>(arg0,arg1);
5605 case e_lt : return (arg0 < arg1) ? T(1) : T(0);
5606 case e_lte : return (arg0 <= arg1) ? T(1) : T(0);
5607 case e_eq : return (arg0 == arg1) ? T(1) : T(0);
5608 case e_ne : return (arg0 != arg1) ? T(1) : T(0);
5609 case e_gte : return (arg0 >= arg1) ? T(1) : T(0);
5610 case e_gt : return (arg0 > arg1) ? T(1) : T(0);
5611 case e_and : return ((arg0 != T(0)) && (arg1 != T(0))) ? T(1) : T(0);
5612 case e_nand : return ((arg0 != T(0)) && (arg1 != T(0))) ? T(0) : T(1);
5613 case e_or : return ((arg0 != T(0)) || (arg1 != T(0))) ? T(1) : T(0);
5614 case e_nor : return ((arg0 != T(0)) || (arg1 != T(0))) ? T(0) : T(1);
5615 case e_xor : return arg0 ^ arg1;
5616 case e_xnor : return !(arg0 ^ arg1);
5617 case e_root : return root<T>(arg0,arg1);
5618 case e_equal : return arg0 == arg1;
5619 case e_nequal : return arg0 != arg1;
5620 case e_hypot : return hypot<T>(arg0,arg1);
5621 case e_shr : return arg0 >> arg1;
5622 case e_shl : return arg0 << arg1;
5623
5624 default : exprtk_debug(("numeric::details::process_impl<IntType> - Invalid binary operation.\n"));
5625 return std::numeric_limits<T>::quiet_NaN();
5626 }
5627 }

References exprtk::details::e_add, exprtk::details::e_and, exprtk::details::e_div, exprtk::details::e_eq, exprtk::details::e_equal, exprtk::details::e_gt, exprtk::details::e_gte, exprtk::details::e_hypot, exprtk::details::e_logn, exprtk::details::e_lt, exprtk::details::e_lte, exprtk::details::e_max, exprtk::details::e_min, exprtk::details::e_mod, exprtk::details::e_mul, exprtk::details::e_nand, exprtk::details::e_ne, exprtk::details::e_nequal, exprtk::details::e_nor, exprtk::details::e_or, exprtk::details::e_pow, exprtk::details::e_root, exprtk::details::e_shl, exprtk::details::e_shr, exprtk::details::e_sub, exprtk::details::e_xnor, exprtk::details::e_xor, exprtk_debug, and exprtk::details::match_impl().

Here is the call graph for this function:

◆ r2d_impl() [1/4]

template<typename T >
T exprtk::details::numeric::details::r2d_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 154 of file exprtk_mpfr_adaptor.hpp.

static const mpfr::mpreal _180_pi

References exprtk::details::constant::_180_pi.

◆ r2d_impl() [2/4]

template<typename T >
T exprtk::details::numeric::details::r2d_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 113 of file exprtk_complex_adaptor.hpp.

113{ return (v * cmplx::complex_t(constant::_180_pi)); }

References exprtk::details::numeric::constant::_180_pi.

◆ r2d_impl() [3/4]

template<typename T >
T exprtk::details::numeric::details::r2d_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 113 of file exprtk_real_adaptor.hpp.

113{ return real::r2d (v); }
type r2d(const type v)

References real::r2d().

Here is the call graph for this function:

◆ r2d_impl() [4/4]

template<typename T >
T exprtk::details::numeric::details::r2d_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1442 of file exprtk.hpp.

1442{ return (v * T(numeric::constant::_180_pi)); }

References exprtk::details::numeric::constant::_180_pi, and exprtk::details::match_impl().

Here is the call graph for this function:

◆ root_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::root_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 312 of file exprtk_mpfr_adaptor.hpp.

313 {
314 if (v0 < T(0))
315 {
316 return (v1 == trunc_impl(v1, mpfrreal_type_tag())) &&
317 (modulus_impl(v1, T(2), mpfrreal_type_tag()) != T(0)) ?
318 -pow(abs_impl(v0, mpfrreal_type_tag()), T(1) / v1) :
319 T().setNan();
320 }
321
322 return pow(v0, T(1) / v1);
323 }

References abs_impl(), exprtk::details::match_impl(), modulus_impl(), exprtk::details::numeric::pow(), and trunc_impl().

Here is the call graph for this function:

◆ root_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::root_impl ( const T  v0,
const T  v1,
complex_type_tag   
)
inline

Definition at line 307 of file exprtk_complex_adaptor.hpp.

308 {
309 return pow(v0,T(1) / v1);
310 }

References exprtk::details::match_impl(), and exprtk::details::numeric::pow().

Here is the call graph for this function:

◆ root_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::root_impl ( const T  v0,
const T  v1,
int_type_tag   
)
inline

Definition at line 1030 of file exprtk.hpp.

1031 {
1032 return root_impl<double>(static_cast<double>(v0),static_cast<double>(v1),real_type_tag());
1033 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ root_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::root_impl ( const T  v0,
const T  v1,
my_real_type_tag   
)
inline

Definition at line 287 of file exprtk_real_adaptor.hpp.

288 {
289 if (v0 < T(0))
290 {
291 return (v1 == trunc_impl(v1, my_real_type_tag())) &&
292 (modulus_impl(v1, T(2), my_real_type_tag()) != T(0)) ?
293 -pow(abs_impl(v0, my_real_type_tag()), T(1) / v1) :
294 std::numeric_limits<T>::quiet_NaN();
295 }
296
297 return pow(v0, T(1) / v1);
298 }

References abs_impl(), exprtk::details::match_impl(), modulus_impl(), exprtk::details::numeric::pow(), and trunc_impl().

Here is the call graph for this function:

◆ root_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::root_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 1016 of file exprtk.hpp.

1017 {
1018 if (v0 < T(0))
1019 {
1020 return (v1 == trunc_impl(v1, real_type_tag())) &&
1021 (modulus_impl(v1, T(2), real_type_tag()) != T(0)) ?
1022 -std::pow(abs_impl(v0, real_type_tag()), T(1) / v1) :
1023 std::numeric_limits<T>::quiet_NaN();
1024 }
1025
1026 return std::pow(v0, T(1) / v1);
1027 }

References abs_impl(), exprtk::details::match_impl(), modulus_impl(), and trunc_impl().

Here is the call graph for this function:

◆ round_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::round_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 290 of file exprtk_mpfr_adaptor.hpp.

291 {
292 return mpfr::round(v);
293 }

◆ round_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::round_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 284 of file exprtk_complex_adaptor.hpp.

285 {
286 return ((v < T(0)) ? ceil(v - T(0.5)) : floor(v + T(0.5)));
287 }

References exprtk::details::numeric::ceil(), exprtk::details::numeric::floor(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ round_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::round_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1462 of file exprtk.hpp.

1462{ return v; }

◆ round_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::round_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 264 of file exprtk_real_adaptor.hpp.

265 {
266 return ((v < T(0)) ? ceil(v - T(0.5)) : floor(v + T(0.5)));
267 }

References exprtk::details::numeric::ceil(), exprtk::details::numeric::floor(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ round_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::round_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1036 of file exprtk.hpp.

1037 {
1038 return ((v < T(0)) ? std::ceil(v - T(0.5)) : std::floor(v + T(0.5)));
1039 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ roundn_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::roundn_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 296 of file exprtk_mpfr_adaptor.hpp.

297 {
298 const T p10 = mpfr::pow(T(10),mpfr::floor(v1));
299 if (v0 < T(0))
300 return T(mpfr::ceil ((v0 * p10) - T(0.5)) / p10);
301 else
302 return T(mpfr::floor((v0 * p10) + T(0.5)) / p10);
303 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ roundn_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::roundn_impl ( const T  v0,
const T  v1,
complex_type_tag   
)
inline

Definition at line 290 of file exprtk_complex_adaptor.hpp.

291 {
292 const int index = std::max<int>(0, std::min<int>(pow10_size - 1, (int)floor(v1)));
293 const T p10 = T(pow10[index]);
294 if (v0 < T(0))
295 return T(ceil ((v0 * p10) - T(0.5)) / p10);
296 else
297 return T(floor((v0 * p10) + T(0.5)) / p10);
298 }

References exprtk::details::numeric::ceil(), exprtk::details::numeric::floor(), exprtk::details::match_impl(), exprtk::details::pow10, and exprtk::details::pow10_size.

Here is the call graph for this function:

◆ roundn_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::roundn_impl ( const T  v0,
const T  v1,
my_real_type_tag   
)
inline

Definition at line 270 of file exprtk_real_adaptor.hpp.

271 {
272 const int index = std::max<int>(0, std::min<int>(pow10_size - 1, static_cast<int>(floor(v1))));
273 const T p10 = T(pow10[index]);
274 if (v0 < T(0))
275 return T(ceil ((v0 * p10) - T(0.5)) / p10);
276 else
277 return T(floor((v0 * p10) + T(0.5)) / p10);
278 }

References exprtk::details::numeric::ceil(), exprtk::details::numeric::floor(), exprtk::details::match_impl(), exprtk::details::pow10, and exprtk::details::pow10_size.

Here is the call graph for this function:

◆ roundn_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::roundn_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 1042 of file exprtk.hpp.

1043 {
1044 const int index = std::max<int>(0, std::min<int>(pow10_size - 1, static_cast<int>(std::floor(v1))));
1045 const T p10 = T(pow10[index]);
1046
1047 if (v0 < T(0))
1048 return T(std::ceil ((v0 * p10) - T(0.5)) / p10);
1049 else
1050 return T(std::floor((v0 * p10) + T(0.5)) / p10);
1051 }

References exprtk::details::match_impl(), exprtk::details::pow10, and exprtk::details::pow10_size.

Here is the call graph for this function:

◆ roundn_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::roundn_impl ( const T  v0,
const T  ,
int_type_tag   
)
inline

Definition at line 1054 of file exprtk.hpp.

1055 {
1056 return v0;
1057 }

◆ sec_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::sec_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 152 of file exprtk_mpfr_adaptor.hpp.

152{ return mpfr::sec (v); }

◆ sec_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::sec_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 111 of file exprtk_complex_adaptor.hpp.

111{ return cmplx::complex_t(1) / cmplx::cos(v); }

References cmplx::cos().

Here is the call graph for this function:

◆ sec_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::sec_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 111 of file exprtk_real_adaptor.hpp.

111{ return real::sec (v); }
type sec(const type v)

References real::sec().

Here is the call graph for this function:

◆ sec_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::sec_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1440 of file exprtk.hpp.

1440{ return T(1) / std::cos(v); }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ sec_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::sec_impl ( const T  ,
int_type_tag   
)
inline

Definition at line 1480 of file exprtk.hpp.

1480{ return std::numeric_limits<T>::quiet_NaN(); }

◆ sgn_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::sgn_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 204 of file exprtk_mpfr_adaptor.hpp.

205 {
206 if (v > T(0)) return T(+1);
207 else if (v < T(0)) return T(-1);
208 else return T( 0);
209 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ sgn_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::sgn_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 170 of file exprtk_complex_adaptor.hpp.

171 {
172 if (v > T(0)) return T(+1);
173 else if (v < T(0)) return T(-1);
174 else return T( 0);
175 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ sgn_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::sgn_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1116 of file exprtk.hpp.

1117 {
1118 if (v > T(0)) return T(+1);
1119 else if (v < T(0)) return T(-1);
1120 else return T( 0);
1121 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ sgn_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::sgn_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 170 of file exprtk_real_adaptor.hpp.

171 {
172 if (v > T(0)) return T(+1);
173 else if (v < T(0)) return T(-1);
174 else return T( 0);
175 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ sgn_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::sgn_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1108 of file exprtk.hpp.

1109 {
1110 if (v > T(0)) return T(+1);
1111 else if (v < T(0)) return T(-1);
1112 else return T( 0);
1113 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ shl_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::shl_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 344 of file exprtk_mpfr_adaptor.hpp.

345 {
346 return v0 * mpfr::pow(T(2.0),v1);
347 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ shl_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::shl_impl ( const T  v0,
const T  v1,
complex_type_tag   
)
inline

Definition at line 331 of file exprtk_complex_adaptor.hpp.

332 {
333 return v0 * pow(T(2),v1);
334 }

References exprtk::details::match_impl(), and exprtk::details::numeric::pow().

Here is the call graph for this function:

◆ shl_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::shl_impl ( const T  v0,
const T  v1,
int_type_tag   
)
inline

Definition at line 1102 of file exprtk.hpp.

1103 {
1104 return v0 << v1;
1105 }

◆ shl_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::shl_impl ( const T  v0,
const T  v1,
my_real_type_tag   
)
inline

Definition at line 319 of file exprtk_real_adaptor.hpp.

320 {
321 return v0 * pow(T(2),v1);
322 }

References exprtk::details::match_impl(), and exprtk::details::numeric::pow().

Here is the call graph for this function:

◆ shl_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::shl_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 1096 of file exprtk.hpp.

1097 {
1098 return v0 * std::pow(T(2),static_cast<T>(static_cast<int>(v1)));
1099 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ shr_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::shr_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 338 of file exprtk_mpfr_adaptor.hpp.

339 {
340 return v0 * (T(1) / mpfr::pow(T(2.0),v1));
341 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ shr_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::shr_impl ( const T  v0,
const T  v1,
complex_type_tag   
)
inline

Definition at line 325 of file exprtk_complex_adaptor.hpp.

326 {
327 return v0 * (T(1) / pow(T(2),v1));
328 }

References exprtk::details::match_impl(), and exprtk::details::numeric::pow().

Here is the call graph for this function:

◆ shr_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::shr_impl ( const T  v0,
const T  v1,
int_type_tag   
)
inline

Definition at line 1090 of file exprtk.hpp.

1091 {
1092 return v0 >> v1;
1093 }

◆ shr_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::shr_impl ( const T  v0,
const T  v1,
my_real_type_tag   
)
inline

Definition at line 313 of file exprtk_real_adaptor.hpp.

314 {
315 return v0 * (T(1) / pow(T(2),v1));
316 }

References exprtk::details::match_impl(), and exprtk::details::numeric::pow().

Here is the call graph for this function:

◆ shr_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::shr_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 1084 of file exprtk.hpp.

1085 {
1086 return v0 * (T(1) / std::pow(T(2),static_cast<T>(static_cast<int>(v1))));
1087 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ sin_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::sin_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 146 of file exprtk_mpfr_adaptor.hpp.

146{ return mpfr::sin (v); }

◆ sin_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::sin_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 105 of file exprtk_complex_adaptor.hpp.

105{ return cmplx::sin (v); }

References cmplx::sin().

Here is the call graph for this function:

◆ sin_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::sin_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 105 of file exprtk_real_adaptor.hpp.

105{ return real::sin (v); }
type sin(const type v)

References real::sin().

Here is the call graph for this function:

◆ sin_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::sin_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1434 of file exprtk.hpp.

1434{ return std::sin (v); }

Referenced by sinc_impl(), and sinc_impl().

Here is the caller graph for this function:

◆ sin_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::sin_impl ( const T  ,
int_type_tag   
)
inline

Definition at line 1475 of file exprtk.hpp.

1475{ return std::numeric_limits<T>::quiet_NaN(); }

◆ sinc_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::sinc_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 255 of file exprtk_mpfr_adaptor.hpp.

256 {
257 if (mpfr::abs(v) >= epsilon_type<mpfr::mpreal>::value())
258 return(mpfr::sin(v) / v);
259 else
260 return T(1);
261 }

References exprtk::details::match_impl().

Here is the call graph for this function:

◆ sinc_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::sinc_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1300 of file exprtk.hpp.

1301 {
1302 return sinc_impl(static_cast<double>(v),real_type_tag());
1303 }
T sinc_impl(const T v, real_type_tag)
Definition exprtk.hpp:1291

References sinc_impl().

Here is the call graph for this function:

◆ sinc_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::sinc_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1291 of file exprtk.hpp.

1292 {
1293 if (std::abs(v) >= std::numeric_limits<T>::epsilon())
1294 return(std::sin(v) / v);
1295 else
1296 return T(1);
1297 }

References exprtk::details::match_impl().

Referenced by sinc_impl().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sinc_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::sinc_impl ( T  v,
complex_type_tag   
)
inline

Definition at line 250 of file exprtk_complex_adaptor.hpp.

251 {
252 if (abs_impl(v,complex_type_tag()) >= std::numeric_limits<T>::epsilon())
253 return(sin_impl(v,complex_type_tag()) / v);
254 else
255 return T(1);
256 }
T sin_impl(const T v, real_type_tag)
Definition exprtk.hpp:1434

References abs_impl(), exprtk::details::match_impl(), and sin_impl().

Here is the call graph for this function:

◆ sinc_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::sinc_impl ( T  v,
my_real_type_tag   
)
inline

Definition at line 230 of file exprtk_real_adaptor.hpp.

231 {
232 if (abs_impl(v,my_real_type_tag()) >= std::numeric_limits<T>::epsilon())
233 return(sin_impl(v,my_real_type_tag()) / v);
234 else
235 return T(1);
236 }

References abs_impl(), exprtk::details::match_impl(), and sin_impl().

Here is the call graph for this function:

◆ sinh_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::sinh_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 147 of file exprtk_mpfr_adaptor.hpp.

147{ return mpfr::sinh (v); }

◆ sinh_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::sinh_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 106 of file exprtk_complex_adaptor.hpp.

106{ return cmplx::sinh (v); }
complex_t sinh(const complex_t v)

References cmplx::sinh().

Here is the call graph for this function:

◆ sinh_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::sinh_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 106 of file exprtk_real_adaptor.hpp.

106{ return real::sinh (v); }
type sinh(const type v)

References real::sinh().

Here is the call graph for this function:

◆ sinh_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::sinh_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1435 of file exprtk.hpp.

1435{ return std::sinh (v); }

◆ sinh_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::sinh_impl ( const T  ,
int_type_tag   
)
inline

Definition at line 1476 of file exprtk.hpp.

1476{ return std::numeric_limits<T>::quiet_NaN(); }

◆ sqrt_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::sqrt_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 148 of file exprtk_mpfr_adaptor.hpp.

148{ return mpfr::sqrt (v); }

◆ sqrt_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::sqrt_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 107 of file exprtk_complex_adaptor.hpp.

107{ return cmplx::sqrt (v); }

References cmplx::sqrt().

Here is the call graph for this function:

◆ sqrt_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::sqrt_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1464 of file exprtk.hpp.

1464{ return std::sqrt (v); }

◆ sqrt_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::sqrt_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 107 of file exprtk_real_adaptor.hpp.

107{ return real::sqrt (v); }
type sqrt(const type v)

References real::sqrt().

Here is the call graph for this function:

◆ sqrt_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::sqrt_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1436 of file exprtk.hpp.

1436{ return std::sqrt (v); }

◆ tan_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::tan_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 149 of file exprtk_mpfr_adaptor.hpp.

149{ return mpfr::tan (v); }

◆ tan_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::tan_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 108 of file exprtk_complex_adaptor.hpp.

108{ return cmplx::tan (v); }

References cmplx::tan().

Here is the call graph for this function:

◆ tan_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::tan_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 108 of file exprtk_real_adaptor.hpp.

108{ return real::tan (v); }
type tan(const type v)

References real::tan().

Here is the call graph for this function:

◆ tan_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::tan_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1437 of file exprtk.hpp.

1437{ return std::tan (v); }

◆ tan_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::tan_impl ( const T  ,
int_type_tag   
)
inline

Definition at line 1477 of file exprtk.hpp.

1477{ return std::numeric_limits<T>::quiet_NaN(); }

◆ tanh_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::tanh_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 150 of file exprtk_mpfr_adaptor.hpp.

150{ return mpfr::tanh (v); }

◆ tanh_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::tanh_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 109 of file exprtk_complex_adaptor.hpp.

109{ return cmplx::tanh (v); }
complex_t tanh(const complex_t v)

References cmplx::tanh().

Here is the call graph for this function:

◆ tanh_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::tanh_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 109 of file exprtk_real_adaptor.hpp.

109{ return real::tanh (v); }
type tanh(const type v)

References real::tanh().

Here is the call graph for this function:

◆ tanh_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::tanh_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1438 of file exprtk.hpp.

1438{ return std::tanh (v); }

◆ tanh_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::tanh_impl ( const T  ,
int_type_tag   
)
inline

Definition at line 1478 of file exprtk.hpp.

1478{ return std::numeric_limits<T>::quiet_NaN(); }

◆ to_int32_impl() [1/4]

template<typename T >
int exprtk::details::numeric::details::to_int32_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 112 of file exprtk_mpfr_adaptor.hpp.

113 {
114 return static_cast<int>(v.toLong());
115 }

◆ to_int32_impl() [2/4]

template<typename T >
int exprtk::details::numeric::details::to_int32_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 125 of file exprtk_complex_adaptor.hpp.

126 {
127 return static_cast<int>(v);
128 }

◆ to_int32_impl() [3/4]

template<typename T >
int exprtk::details::numeric::details::to_int32_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 125 of file exprtk_real_adaptor.hpp.

126 {
127 return static_cast<int>(v);
128 }

◆ to_int32_impl() [4/4]

template<typename T >
int exprtk::details::numeric::details::to_int32_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 892 of file exprtk.hpp.

893 {
894 return static_cast<int>(v);
895 }

◆ to_int64_impl() [1/4]

template<typename T >
long long exprtk::details::numeric::details::to_int64_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 118 of file exprtk_mpfr_adaptor.hpp.

119 {
120 return static_cast<long long int>(v.toLLong());
121 }

◆ to_int64_impl() [2/4]

template<typename T >
long long exprtk::details::numeric::details::to_int64_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 131 of file exprtk_complex_adaptor.hpp.

132 {
133 return static_cast<long long int>(v);
134 }

◆ to_int64_impl() [3/4]

template<typename T >
long long exprtk::details::numeric::details::to_int64_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 131 of file exprtk_real_adaptor.hpp.

132 {
133 return static_cast<long long int>(v);
134 }

◆ to_int64_impl() [4/4]

template<typename T >
_int64_t exprtk::details::numeric::details::to_int64_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 898 of file exprtk.hpp.

899 {
900 return static_cast<_int64_t>(v);
901 }
long long int _int64_t
Definition exprtk.hpp:101

◆ to_uint64_impl() [1/4]

template<typename T >
long long exprtk::details::numeric::details::to_uint64_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 124 of file exprtk_mpfr_adaptor.hpp.

125 {
126 return static_cast<long long int>(v.toULLong());
127 }

◆ to_uint64_impl() [2/4]

template<typename T >
unsigned long long exprtk::details::numeric::details::to_uint64_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 137 of file exprtk_complex_adaptor.hpp.

138 {
139 return static_cast<unsigned long long int>(v);
140 }

◆ to_uint64_impl() [3/4]

template<typename T >
unsigned long long exprtk::details::numeric::details::to_uint64_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 137 of file exprtk_real_adaptor.hpp.

138 {
139 return static_cast<unsigned long long int>(v);
140 }

◆ to_uint64_impl() [4/4]

template<typename T >
_uint64_t exprtk::details::numeric::details::to_uint64_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 904 of file exprtk.hpp.

905 {
906 return static_cast<_uint64_t>(v);
907 }
unsigned long long int _uint64_t
Definition exprtk.hpp:100

◆ trunc_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::trunc_impl ( const T v,
mpfrreal_type_tag   
)
inline

Definition at line 160 of file exprtk_mpfr_adaptor.hpp.

160{ return mpfr::trunc(v); }

◆ trunc_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::trunc_impl ( const T  v,
complex_type_tag   
)
inline

Definition at line 119 of file exprtk_complex_adaptor.hpp.

119{ return cmplx::trunc(v); }
complex_t trunc(const complex_t v)

References cmplx::trunc().

Here is the call graph for this function:

◆ trunc_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::trunc_impl ( const T  v,
int_type_tag   
)
inline

Definition at line 1466 of file exprtk.hpp.

1466{ return v; }

◆ trunc_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::trunc_impl ( const T  v,
my_real_type_tag   
)
inline

Definition at line 119 of file exprtk_real_adaptor.hpp.

119{ return real::trunc(v); }
type trunc(const type v)

References real::trunc().

Here is the call graph for this function:

◆ trunc_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::trunc_impl ( const T  v,
real_type_tag   
)
inline

Definition at line 1373 of file exprtk.hpp.

1374 {
1375 return T(static_cast<long long>(v));
1376 }

References exprtk::details::match_impl().

Referenced by frac_impl(), root_impl(), root_impl(), and root_impl().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ xnor_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::xnor_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 270 of file exprtk_mpfr_adaptor.hpp.

271 {
272 const bool v0_true = is_true_impl(v0);
273 const bool v1_true = is_true_impl(v1);
274 if ((v0_true && v1_true) || (!v0_true && !v1_true))
275 return T(1);
276 else
277 return T(0);
278 }

References is_true_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ xnor_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::xnor_impl ( const T  v0,
const T  v1,
complex_type_tag   
)
inline

Definition at line 265 of file exprtk_complex_adaptor.hpp.

266 {
267 const bool v0_true = is_true_impl(v0);
268 const bool v1_true = is_true_impl(v1);
269 if ((v0_true && v1_true) || (!v0_true && !v1_true))
270 return T(1);
271 else
272 return T(0);
273 }

References is_true_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ xnor_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::xnor_impl ( const T  v0,
const T  v1,
int_type_tag   
)
inline

Definition at line 1196 of file exprtk.hpp.

1197 {
1198 const bool v0_true = is_true_impl(v0);
1199 const bool v1_true = is_true_impl(v1);
1200
1201 if ((v0_true && v1_true) || (!v0_true && !v1_true))
1202 return T(1);
1203 else
1204 return T(0);
1205 }

References is_true_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ xnor_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::xnor_impl ( const T  v0,
const T  v1,
my_real_type_tag   
)
inline

Definition at line 245 of file exprtk_real_adaptor.hpp.

246 {
247 const bool v0_true = is_true_impl(v0);
248 const bool v1_true = is_true_impl(v1);
249 if ((v0_true && v1_true) || (!v0_true && !v1_true))
250 return T(1);
251 else
252 return T(0);
253 }

References is_true_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ xnor_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::xnor_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 1184 of file exprtk.hpp.

1185 {
1186 const bool v0_true = is_true_impl(v0);
1187 const bool v1_true = is_true_impl(v1);
1188
1189 if ((v0_true && v1_true) || (!v0_true && !v1_true))
1190 return T(1);
1191 else
1192 return T(0);
1193 }

References is_true_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ xor_impl() [1/5]

template<typename T >
T exprtk::details::numeric::details::xor_impl ( const T v0,
const T v1,
mpfrreal_type_tag   
)
inline

Definition at line 264 of file exprtk_mpfr_adaptor.hpp.

265 {
266 return (is_false_impl(v0) != is_false_impl(v1)) ? T(1) : T(0);
267 }

References is_false_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ xor_impl() [2/5]

template<typename T >
T exprtk::details::numeric::details::xor_impl ( const T  v0,
const T  v1,
complex_type_tag   
)
inline

Definition at line 259 of file exprtk_complex_adaptor.hpp.

260 {
261 return (is_false_impl(v0) != is_false_impl(v1)) ? T(1) : T(0);
262 }

References is_false_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ xor_impl() [3/5]

template<typename T >
T exprtk::details::numeric::details::xor_impl ( const T  v0,
const T  v1,
int_type_tag   
)
inline

Definition at line 1178 of file exprtk.hpp.

1179 {
1180 return v0 ^ v1;
1181 }

◆ xor_impl() [4/5]

template<typename T >
T exprtk::details::numeric::details::xor_impl ( const T  v0,
const T  v1,
my_real_type_tag   
)
inline

Definition at line 239 of file exprtk_real_adaptor.hpp.

240 {
241 return (is_false_impl(v0) != is_false_impl(v1)) ? T(1) : T(0);
242 }

References is_false_impl(), and exprtk::details::match_impl().

Here is the call graph for this function:

◆ xor_impl() [5/5]

template<typename T >
T exprtk::details::numeric::details::xor_impl ( const T  v0,
const T  v1,
real_type_tag   
)
inline

Definition at line 1172 of file exprtk.hpp.

1173 {
1174 return (is_false_impl(v0) != is_false_impl(v1)) ? T(1) : T(0);
1175 }

References is_false_impl(), and exprtk::details::match_impl().

Here is the call graph for this function: