C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
exprtk::details Namespace Reference

Namespaces

namespace  constant
namespace  loop_unroll
namespace  numeric

Classes

struct  ilesscompare
class  build_string
struct  cs_match
struct  cis_match
struct  set_zero_value_impl
struct  set_zero_value_impl< float >
struct  set_zero_value_impl< double >
struct  set_zero_value_impl< long double >
struct  functor_t
class  vector_interface
class  return_node
class  return_envelope_node
struct  base_operation_t
class  vec_data_store
struct  node_collector_interface
struct  node_depth_base
class  expression_node
class  unary_node
class  node_collection_destructor
class  vector_holder
class  null_node
class  null_eq_node
class  literal_node
struct  range_pack
struct  range_data_type
class  range_interface
class  string_base_node
class  string_literal_node
class  binary_node
class  binary_ext_node
class  trinary_node
class  quaternary_node
class  conditional_node
class  cons_conditional_node
class  break_exception
class  continue_exception
class  break_node
class  continue_node
struct  loop_runtime_checker
class  while_loop_node
class  while_loop_rtc_node
class  repeat_until_loop_node
class  repeat_until_loop_rtc_node
class  for_loop_node
class  for_loop_rtc_node
class  while_loop_bc_node
class  while_loop_bc_rtc_node
class  repeat_until_loop_bc_node
class  repeat_until_loop_bc_rtc_node
class  for_loop_bc_node
class  for_loop_bc_rtc_node
class  switch_node
class  switch_n_node
class  multi_switch_node
class  ivariable
class  variable_node
class  vector_node
class  vector_size_node
class  vector_elem_node
class  vector_celem_node
class  vector_elem_rtc_node
class  vector_celem_rtc_node
class  rebasevector_elem_node
class  rebasevector_celem_node
class  rebasevector_elem_rtc_node
class  rebasevector_celem_rtc_node
class  vector_initialisation_node
class  vector_init_zero_value_node
class  vector_init_single_constvalue_node
class  vector_init_single_value_node
class  vector_init_iota_constconst_node
class  vector_init_iota_constnconst_node
class  vector_init_iota_nconstconst_node
class  vector_init_iota_nconstnconst_node
class  swap_node
class  swap_generic_node
class  swap_vecvec_node
class  stringvar_node
class  string_range_node
class  const_string_range_node
class  generic_string_range_node
class  string_concat_node
class  swap_string_node
class  swap_genstrings_node
class  stringvar_size_node
class  string_size_node
struct  asn_assignment
struct  asn_addassignment
class  assignment_string_node
class  assignment_string_range_node
class  conditional_string_node
class  cons_conditional_str_node
class  str_vararg_node
class  assert_node
struct  sf_base
struct  sf00_op
struct  sf01_op
struct  sf02_op
struct  sf03_op
struct  sf04_op
struct  sf05_op
struct  sf06_op
struct  sf07_op
struct  sf08_op
struct  sf09_op
struct  sf10_op
struct  sf11_op
struct  sf12_op
struct  sf13_op
struct  sf14_op
struct  sf15_op
struct  sf16_op
struct  sf17_op
struct  sf18_op
struct  sf19_op
struct  sf20_op
struct  sf21_op
struct  sf22_op
struct  sf23_op
struct  sf24_op
struct  sf25_op
struct  sf26_op
struct  sf27_op
struct  sf28_op
struct  sf29_op
struct  sf30_op
struct  sf31_op
struct  sf32_op
struct  sf33_op
struct  sf34_op
struct  sf35_op
struct  sf36_op
struct  sf37_op
struct  sf38_op
struct  sf39_op
struct  sf40_op
struct  sf41_op
struct  sf42_op
struct  sf43_op
struct  sf44_op
struct  sf45_op
struct  sf46_op
struct  sf47_op
struct  sf48_op
struct  sf49_op
struct  sf50_op
struct  sf51_op
struct  sf52_op
struct  sf53_op
struct  sf54_op
struct  sf55_op
struct  sf56_op
struct  sf57_op
struct  sf58_op
struct  sf59_op
struct  sf60_op
struct  sf61_op
struct  sf62_op
struct  sf63_op
struct  sf64_op
struct  sf65_op
struct  sf66_op
struct  sf67_op
struct  sf68_op
struct  sf69_op
struct  sf70_op
struct  sf71_op
struct  sf72_op
struct  sf73_op
struct  sf74_op
struct  sf75_op
struct  sf76_op
struct  sf77_op
struct  sf78_op
struct  sf79_op
struct  sf80_op
struct  sf81_op
struct  sf82_op
struct  sf83_op
struct  sf84_op
struct  sf85_op
struct  sf86_op
struct  sf87_op
struct  sf88_op
struct  sf89_op
struct  sf90_op
struct  sf91_op
struct  sf92_op
struct  sf93_op
struct  sf94_op
struct  sf95_op
struct  sf96_op
struct  sf97_op
struct  sf98_op
struct  sf99_op
struct  sfext00_op
struct  sfext01_op
struct  sfext02_op
struct  sfext03_op
struct  sfext04_op
struct  sfext05_op
struct  sfext06_op
struct  sfext07_op
struct  sfext08_op
struct  sfext09_op
struct  sfext10_op
struct  sfext11_op
struct  sfext12_op
struct  sfext13_op
struct  sfext14_op
struct  sfext15_op
struct  sfext16_op
struct  sfext17_op
struct  sfext18_op
struct  sfext19_op
struct  sfext20_op
struct  sfext21_op
struct  sfext22_op
struct  sfext23_op
struct  sfext24_op
struct  sfext25_op
struct  sfext26_op
struct  sfext27_op
struct  sfext28_op
struct  sfext29_op
struct  sfext30_op
struct  sfext31_op
struct  sfext32_op
struct  sfext33_op
struct  sfext34_op
struct  sfext35_op
struct  sfext36_op
struct  sfext37_op
struct  sfext38_op
struct  sfext39_op
struct  sfext40_op
struct  sfext41_op
struct  sfext42_op
struct  sfext43_op
struct  sfext44_op
struct  sfext45_op
struct  sfext46_op
struct  sfext47_op
struct  sfext48_op
struct  sfext49_op
struct  sfext50_op
struct  sfext51_op
struct  sfext52_op
struct  sfext53_op
struct  sfext54_op
struct  sfext55_op
struct  sfext56_op
struct  sfext57_op
struct  sfext58_op
struct  sfext59_op
struct  sfext60_op
struct  sfext61_op
class  sf3_node
class  sf4_node
class  sf3_var_node
class  sf4_var_node
class  vararg_node
class  vararg_varnode
class  vectorize_node
class  assignment_node
class  assignment_vec_elem_node
class  assignment_vec_elem_rtc_node
class  assignment_rebasevec_elem_node
class  assignment_rebasevec_elem_rtc_node
class  assignment_rebasevec_celem_node
class  assignment_vec_node
class  assignment_vecvec_node
class  assignment_op_node
class  assignment_vec_elem_op_node
class  assignment_vec_elem_op_rtc_node
class  assignment_vec_celem_op_rtc_node
class  assignment_rebasevec_elem_op_node
class  assignment_rebasevec_celem_op_node
class  assignment_rebasevec_elem_op_rtc_node
class  assignment_rebasevec_celem_op_rtc_node
class  assignment_vec_op_node
class  assignment_vecvec_op_node
struct  memory_context_t
class  vec_binop_vecvec_node
class  vec_binop_vecval_node
class  vec_binop_valvec_node
class  unary_vector_node
class  conditional_vector_node
class  scand_node
class  scor_node
class  function_N_node
class  function_N_node< T, IFunction, 0 >
class  vararg_function_node
class  generic_function_node
class  string_function_node
class  multimode_genfunction_node
class  multimode_strfunction_node
class  return_exception
class  null_igenfunc
struct  abs_op
struct  acos_op
struct  acosh_op
struct  asin_op
struct  asinh_op
struct  atan_op
struct  atanh_op
struct  ceil_op
struct  cos_op
struct  cosh_op
struct  cot_op
struct  csc_op
struct  d2g_op
struct  d2r_op
struct  erf_op
struct  erfc_op
struct  exp_op
struct  expm1_op
struct  floor_op
struct  frac_op
struct  g2d_op
struct  log_op
struct  log10_op
struct  log2_op
struct  log1p_op
struct  ncdf_op
struct  neg_op
struct  notl_op
struct  pos_op
struct  r2d_op
struct  round_op
struct  sec_op
struct  sgn_op
struct  sin_op
struct  sinc_op
struct  sinh_op
struct  sqrt_op
struct  tan_op
struct  tanh_op
struct  trunc_op
struct  opr_base
struct  add_op
struct  mul_op
struct  sub_op
struct  div_op
struct  mod_op
struct  pow_op
struct  lt_op
struct  lte_op
struct  gt_op
struct  gte_op
struct  eq_op
struct  equal_op
struct  ne_op
struct  and_op
struct  nand_op
struct  or_op
struct  nor_op
struct  xor_op
struct  xnor_op
struct  in_op
struct  like_op
struct  ilike_op
struct  inrange_op
struct  vararg_add_op
struct  vararg_mul_op
struct  vararg_avg_op
struct  vararg_min_op
struct  vararg_max_op
struct  vararg_mand_op
struct  vararg_mor_op
struct  vararg_multi_op
struct  vec_add_op
struct  vec_mul_op
struct  vec_avg_op
struct  vec_min_op
struct  vec_max_op
class  vov_base_node
class  cov_base_node
class  voc_base_node
class  vob_base_node
class  bov_base_node
class  cob_base_node
class  boc_base_node
class  uv_base_node
class  sos_base_node
class  sosos_base_node
class  T0oT1oT2_base_node
class  T0oT1oT2oT3_base_node
class  unary_variable_node
class  uvouv_node
class  unary_branch_node
struct  is_const
struct  is_const< const T >
struct  is_const_ref
struct  is_const_ref< const T & >
struct  is_ref
struct  is_ref< T & >
struct  is_ref< const T & >
struct  param_to_str
struct  param_to_str< 0 >
struct  T0oT1oT2process
struct  T0oT1oT20T3process
struct  nodetype_T0oT1
struct  nodetype_T0oT1< T, const T0 &, const T1 & >
struct  nodetype_T0oT1< T, const T0 &, const T1 >
struct  nodetype_T0oT1< T, const T0, const T1 & >
struct  nodetype_T0oT1< T, T0 &, T1 & >
struct  nodetype_T0oT1< T, const T0, const T1 >
struct  nodetype_T0oT1< T, T0 &, const T1 >
struct  nodetype_T0oT1< T, const T0, T1 & >
struct  nodetype_T0oT1< T, const T0 &, T1 & >
struct  nodetype_T0oT1< T, T0 &, const T1 & >
struct  nodetype_T0oT1oT2
struct  nodetype_T0oT1oT2< T, const T0 &, const T1 &, const T2 & >
struct  nodetype_T0oT1oT2< T, const T0 &, const T1 &, const T2 >
struct  nodetype_T0oT1oT2< T, const T0 &, const T1, const T2 & >
struct  nodetype_T0oT1oT2< T, const T0, const T1 &, const T2 & >
struct  nodetype_T0oT1oT2< T, const T0, const T1 &, const T2 >
struct  nodetype_T0oT1oT2< T, const T0, const T1, const T2 >
struct  nodetype_T0oT1oT2< T, const T0, const T1, const T2 & >
struct  nodetype_T0oT1oT2< T, const T0 &, const T1, const T2 >
struct  nodetype_T0oT1oT2< T, T0 &, T1 &, T2 & >
struct  nodetype_T0oT1oT2oT3
struct  nodetype_T0oT1oT2oT3< T, const T0 &, const T1 &, const T2 &, const T3 & >
struct  nodetype_T0oT1oT2oT3< T, const T0 &, const T1 &, const T2 &, const T3 >
struct  nodetype_T0oT1oT2oT3< T, const T0 &, const T1 &, const T2, const T3 & >
struct  nodetype_T0oT1oT2oT3< T, const T0 &, const T1, const T2 &, const T3 & >
struct  nodetype_T0oT1oT2oT3< T, const T0, const T1 &, const T2 &, const T3 & >
struct  nodetype_T0oT1oT2oT3< T, const T0, const T1 &, const T2, const T3 & >
struct  nodetype_T0oT1oT2oT3< T, const T0 &, const T1, const T2 &, const T3 >
struct  nodetype_T0oT1oT2oT3< T, const T0, const T1 &, const T2 &, const T3 >
struct  nodetype_T0oT1oT2oT3< T, const T0 &, const T1, const T2, const T3 & >
struct  nodetype_T0oT1oT2oT3< T, const T0, const T1, const T2, const T3 >
struct  nodetype_T0oT1oT2oT3< T, const T0, const T1, const T2, const T3 & >
struct  nodetype_T0oT1oT2oT3< T, const T0, const T1, const T2 &, const T3 >
struct  nodetype_T0oT1oT2oT3< T, const T0, const T1 &, const T2, const T3 >
struct  nodetype_T0oT1oT2oT3< T, const T0 &, const T1, const T2, const T3 >
struct  nodetype_T0oT1oT2oT3< T, const T0, const T1, const T2 &, const T3 & >
struct  nodetype_T0oT1oT2oT3< T, const T0 &, const T1 &, const T2, const T3 >
class  T0oT1
class  T0oT1oT2
class  T0oT1oT2oT3
class  T0oT1oT2_sf3
class  sf3ext_type_node
class  T0oT1oT2_sf3ext
class  T0oT1oT2oT3_sf4
class  T0oT1oT2oT3_sf4ext
struct  T0oT1_define
struct  T0oT1oT2_define
struct  T0oT1oT2oT3_define
class  vov_node
class  cov_node
class  voc_node
class  vob_node
class  bov_node
class  cob_node
class  boc_node
class  sos_node
class  str_xrox_node
class  str_xoxr_node
class  str_xroxr_node
class  str_sogens_node
class  sosos_node
class  ipow_node
class  bipow_node
class  ipowinv_node
class  bipowinv_node
class  node_allocator
struct  collector_helper

Typedefs

typedef char char_t
typedef char_tchar_ptr
typedef char_t const * char_cptr
typedef unsigned char uchar_t
typedef uchar_tuchar_ptr
typedef uchar_t const * uchar_cptr
typedef unsigned long long int _uint64_t
typedef long long int _int64_t

Enumerations

enum  operator_type {
  e_default , e_null , e_add , e_sub ,
  e_mul , e_div , e_mod , e_pow ,
  e_atan2 , e_min , e_max , e_avg ,
  e_sum , e_prod , e_lt , e_lte ,
  e_eq , e_equal , e_ne , e_nequal ,
  e_gte , e_gt , e_and , e_nand ,
  e_or , e_nor , e_xor , e_xnor ,
  e_mand , e_mor , e_scand , e_scor ,
  e_shr , e_shl , e_abs , e_acos ,
  e_acosh , e_asin , e_asinh , e_atan ,
  e_atanh , e_ceil , e_cos , e_cosh ,
  e_exp , e_expm1 , e_floor , e_log ,
  e_log10 , e_log2 , e_log1p , e_logn ,
  e_neg , e_pos , e_round , e_roundn ,
  e_root , e_sqrt , e_sin , e_sinc ,
  e_sinh , e_sec , e_csc , e_tan ,
  e_tanh , e_cot , e_clamp , e_iclamp ,
  e_inrange , e_sgn , e_r2d , e_d2r ,
  e_d2g , e_g2d , e_hypot , e_notl ,
  e_erf , e_erfc , e_ncdf , e_frac ,
  e_trunc , e_assign , e_addass , e_subass ,
  e_mulass , e_divass , e_modass , e_in ,
  e_like , e_ilike , e_multi , e_smulti ,
  e_swap , e_sf00 = 1000 , e_sf01 = 1001 , e_sf02 = 1002 ,
  e_sf03 = 1003 , e_sf04 = 1004 , e_sf05 = 1005 , e_sf06 = 1006 ,
  e_sf07 = 1007 , e_sf08 = 1008 , e_sf09 = 1009 , e_sf10 = 1010 ,
  e_sf11 = 1011 , e_sf12 = 1012 , e_sf13 = 1013 , e_sf14 = 1014 ,
  e_sf15 = 1015 , e_sf16 = 1016 , e_sf17 = 1017 , e_sf18 = 1018 ,
  e_sf19 = 1019 , e_sf20 = 1020 , e_sf21 = 1021 , e_sf22 = 1022 ,
  e_sf23 = 1023 , e_sf24 = 1024 , e_sf25 = 1025 , e_sf26 = 1026 ,
  e_sf27 = 1027 , e_sf28 = 1028 , e_sf29 = 1029 , e_sf30 = 1030 ,
  e_sf31 = 1031 , e_sf32 = 1032 , e_sf33 = 1033 , e_sf34 = 1034 ,
  e_sf35 = 1035 , e_sf36 = 1036 , e_sf37 = 1037 , e_sf38 = 1038 ,
  e_sf39 = 1039 , e_sf40 = 1040 , e_sf41 = 1041 , e_sf42 = 1042 ,
  e_sf43 = 1043 , e_sf44 = 1044 , e_sf45 = 1045 , e_sf46 = 1046 ,
  e_sf47 = 1047 , e_sf48 = 1048 , e_sf49 = 1049 , e_sf50 = 1050 ,
  e_sf51 = 1051 , e_sf52 = 1052 , e_sf53 = 1053 , e_sf54 = 1054 ,
  e_sf55 = 1055 , e_sf56 = 1056 , e_sf57 = 1057 , e_sf58 = 1058 ,
  e_sf59 = 1059 , e_sf60 = 1060 , e_sf61 = 1061 , e_sf62 = 1062 ,
  e_sf63 = 1063 , e_sf64 = 1064 , e_sf65 = 1065 , e_sf66 = 1066 ,
  e_sf67 = 1067 , e_sf68 = 1068 , e_sf69 = 1069 , e_sf70 = 1070 ,
  e_sf71 = 1071 , e_sf72 = 1072 , e_sf73 = 1073 , e_sf74 = 1074 ,
  e_sf75 = 1075 , e_sf76 = 1076 , e_sf77 = 1077 , e_sf78 = 1078 ,
  e_sf79 = 1079 , e_sf80 = 1080 , e_sf81 = 1081 , e_sf82 = 1082 ,
  e_sf83 = 1083 , e_sf84 = 1084 , e_sf85 = 1085 , e_sf86 = 1086 ,
  e_sf87 = 1087 , e_sf88 = 1088 , e_sf89 = 1089 , e_sf90 = 1090 ,
  e_sf91 = 1091 , e_sf92 = 1092 , e_sf93 = 1093 , e_sf94 = 1094 ,
  e_sf95 = 1095 , e_sf96 = 1096 , e_sf97 = 1097 , e_sf98 = 1098 ,
  e_sf99 = 1099 , e_sffinal = 1100 , e_sf4ext00 = 2000 , e_sf4ext01 = 2001 ,
  e_sf4ext02 = 2002 , e_sf4ext03 = 2003 , e_sf4ext04 = 2004 , e_sf4ext05 = 2005 ,
  e_sf4ext06 = 2006 , e_sf4ext07 = 2007 , e_sf4ext08 = 2008 , e_sf4ext09 = 2009 ,
  e_sf4ext10 = 2010 , e_sf4ext11 = 2011 , e_sf4ext12 = 2012 , e_sf4ext13 = 2013 ,
  e_sf4ext14 = 2014 , e_sf4ext15 = 2015 , e_sf4ext16 = 2016 , e_sf4ext17 = 2017 ,
  e_sf4ext18 = 2018 , e_sf4ext19 = 2019 , e_sf4ext20 = 2020 , e_sf4ext21 = 2021 ,
  e_sf4ext22 = 2022 , e_sf4ext23 = 2023 , e_sf4ext24 = 2024 , e_sf4ext25 = 2025 ,
  e_sf4ext26 = 2026 , e_sf4ext27 = 2027 , e_sf4ext28 = 2028 , e_sf4ext29 = 2029 ,
  e_sf4ext30 = 2030 , e_sf4ext31 = 2031 , e_sf4ext32 = 2032 , e_sf4ext33 = 2033 ,
  e_sf4ext34 = 2034 , e_sf4ext35 = 2035 , e_sf4ext36 = 2036 , e_sf4ext37 = 2037 ,
  e_sf4ext38 = 2038 , e_sf4ext39 = 2039 , e_sf4ext40 = 2040 , e_sf4ext41 = 2041 ,
  e_sf4ext42 = 2042 , e_sf4ext43 = 2043 , e_sf4ext44 = 2044 , e_sf4ext45 = 2045 ,
  e_sf4ext46 = 2046 , e_sf4ext47 = 2047 , e_sf4ext48 = 2048 , e_sf4ext49 = 2049 ,
  e_sf4ext50 = 2050 , e_sf4ext51 = 2051 , e_sf4ext52 = 2052 , e_sf4ext53 = 2053 ,
  e_sf4ext54 = 2054 , e_sf4ext55 = 2055 , e_sf4ext56 = 2056 , e_sf4ext57 = 2057 ,
  e_sf4ext58 = 2058 , e_sf4ext59 = 2059 , e_sf4ext60 = 2060 , e_sf4ext61 = 2061
}

Functions

bool is_whitespace (const char_t c)
bool is_operator_char (const char_t c)
bool is_letter (const char_t c)
bool is_digit (const char_t c)
bool is_letter_or_digit (const char_t c)
bool is_left_bracket (const char_t c)
bool is_right_bracket (const char_t c)
bool is_bracket (const char_t c)
bool is_sign (const char_t c)
bool is_invalid (const char_t c)
bool is_valid_string_char (const char_t c)
void case_normalise (std::string &s)
bool imatch (const char_t c1, const char_t c2)
bool imatch (const std::string &s1, const std::string &s2)
bool is_valid_sf_symbol (const std::string &symbol)
const char_tfront (const std::string &s)
const char_tback (const std::string &s)
template<typename SignedType>
std::string to_str_impl (SignedType i)
std::string to_str (int i)
std::string to_str (std::size_t i)
bool is_hex_digit (const uchar_t digit)
uchar_t hex_to_bin (uchar_t h)
template<typename Iterator>
bool parse_hex (Iterator &itr, Iterator end, char_t &result)
bool cleanup_escapes (std::string &s)
bool is_reserved_word (const std::string &symbol)
bool is_reserved_symbol (const std::string &symbol)
bool is_base_function (const std::string &function_name)
bool is_control_struct (const std::string &cntrl_strct)
bool is_logic_opr (const std::string &lgc_opr)
template<typename Iterator, typename Compare>
bool match_impl (const Iterator pattern_begin, const Iterator pattern_end, const Iterator data_begin, const Iterator data_end, const typename std::iterator_traits< Iterator >::value_type &zero_or_more, const typename std::iterator_traits< Iterator >::value_type &exactly_one)
bool wc_match (const std::string &wild_card, const std::string &str)
bool wc_imatch (const std::string &wild_card, const std::string &str)
bool sequence_match (const std::string &pattern, const std::string &str, std::size_t &diff_index, char_t &diff_value)
template<typename T>
void set_zero_value (T *data, const std::size_t size)
template<typename T>
void set_zero_value (std::vector< T > &v)
template<typename T>
compute_pow10 (T d, const int exponent)
template<typename Iterator, typename T>
bool string_to_type_converter_impl_ref (Iterator &itr, const Iterator end, T &result)
template<typename Iterator, typename T>
static bool parse_nan (Iterator &itr, const Iterator end, T &t)
template<typename Iterator, typename T>
static bool parse_inf (Iterator &itr, const Iterator end, T &t, const bool negative)
template<typename T>
bool valid_exponent (const int exponent, numeric::details::real_type_tag)
template<typename Iterator, typename T>
bool string_to_real (Iterator &itr_external, const Iterator end, T &t, numeric::details::real_type_tag)
template<typename T>
bool string_to_real (const std::string &s, T &t)
std::string to_str (const operator_type opr)
void dump_ptr (const std::string &, const void *)
void dump_ptr (const std::string &, const void *, const std::size_t)
template<typename T>
void dump_vector (const std::string &, const T *, const std::size_t)
template<typename T>
bool is_generally_string_node (const expression_node< T > *node)
bool is_true (const double v)
bool is_true (const long double v)
bool is_true (const float v)
template<typename T>
bool is_true (const expression_node< T > *node)
template<typename T>
bool is_true (const std::pair< expression_node< T > *, bool > &node)
template<typename T>
bool is_false (const expression_node< T > *node)
template<typename T>
bool is_false (const std::pair< expression_node< T > *, bool > &node)
template<typename T>
bool is_literal_node (const expression_node< T > *node)
template<typename T>
bool is_unary_node (const expression_node< T > *node)
template<typename T>
bool is_neg_unary_node (const expression_node< T > *node)
template<typename T>
bool is_binary_node (const expression_node< T > *node)
template<typename T>
bool is_variable_node (const expression_node< T > *node)
template<typename T>
bool is_ivariable_node (const expression_node< T > *node)
template<typename T>
bool is_vector_elem_node (const expression_node< T > *node)
template<typename T>
bool is_vector_celem_node (const expression_node< T > *node)
template<typename T>
bool is_vector_elem_rtc_node (const expression_node< T > *node)
template<typename T>
bool is_vector_celem_rtc_node (const expression_node< T > *node)
template<typename T>
bool is_rebasevector_elem_node (const expression_node< T > *node)
template<typename T>
bool is_rebasevector_elem_rtc_node (const expression_node< T > *node)
template<typename T>
bool is_rebasevector_celem_rtc_node (const expression_node< T > *node)
template<typename T>
bool is_rebasevector_celem_node (const expression_node< T > *node)
template<typename T>
bool is_vector_node (const expression_node< T > *node)
template<typename T>
bool is_ivector_node (const expression_node< T > *node)
template<typename T>
bool amalgamated_vecop (const expression_node< T > *node)
template<typename T>
bool is_constant_node (const expression_node< T > *node)
template<typename T>
bool is_null_node (const expression_node< T > *node)
template<typename T>
bool is_break_node (const expression_node< T > *node)
template<typename T>
bool is_continue_node (const expression_node< T > *node)
template<typename T>
bool is_swap_node (const expression_node< T > *node)
template<typename T>
bool is_function (const expression_node< T > *node)
template<typename T>
bool is_vararg_node (const expression_node< T > *node)
template<typename T>
bool is_return_node (const expression_node< T > *node)
template<typename T>
bool is_negate_node (const expression_node< T > *node)
template<typename T>
bool is_assert_node (const expression_node< T > *node)
template<typename T>
bool branch_deletable (const expression_node< T > *node)
template<std::size_t N, typename T>
bool all_nodes_valid (expression_node< T > *const (&b)[N])
template<typename T, typename Allocator, template< typename, typename > class Sequence>
bool all_nodes_valid (const Sequence< expression_node< T > *, Allocator > &b)
template<std::size_t N, typename T>
bool all_nodes_variables (expression_node< T > *const (&b)[N])
template<typename T, typename Allocator, template< typename, typename > class Sequence>
bool all_nodes_variables (const Sequence< expression_node< T > *, Allocator > &b)
template<typename NodeAllocator, typename T, std::size_t N>
void free_all_nodes (NodeAllocator &node_allocator, expression_node< T > *(&b)[N])
template<typename NodeAllocator, typename T, typename Allocator, template< typename, typename > class Sequence>
void free_all_nodes (NodeAllocator &node_allocator, Sequence< expression_node< T > *, Allocator > &b)
template<typename NodeAllocator, typename T>
void free_node (NodeAllocator &, expression_node< T > *&node)
template<typename T>
void destroy_node (expression_node< T > *&node)
template<typename T, std::size_t N>
void construct_branch_pair (std::pair< expression_node< T > *, bool >(&branch)[N], expression_node< T > *b, const std::size_t &index)
template<typename T>
void construct_branch_pair (std::pair< expression_node< T > *, bool > &branch, expression_node< T > *b)
template<std::size_t N, typename T>
void init_branches (std::pair< expression_node< T > *, bool >(&branch)[N], expression_node< T > *b0, expression_node< T > *b1=reinterpret_cast< expression_node< T > * >(0), expression_node< T > *b2=reinterpret_cast< expression_node< T > * >(0), expression_node< T > *b3=reinterpret_cast< expression_node< T > * >(0), expression_node< T > *b4=reinterpret_cast< expression_node< T > * >(0), expression_node< T > *b5=reinterpret_cast< expression_node< T > * >(0), expression_node< T > *b6=reinterpret_cast< expression_node< T > * >(0), expression_node< T > *b7=reinterpret_cast< expression_node< T > * >(0), expression_node< T > *b8=reinterpret_cast< expression_node< T > * >(0), expression_node< T > *b9=reinterpret_cast< expression_node< T > * >(0))
template<typename T, std::size_t N>
axn (const T a, const T x)
template<typename T, std::size_t N>
axnb (const T a, const T x, const T b)
template<typename T>
memory_context_t< T > make_memory_context (vector_holder< T > &vec_holder, vec_data_store< T > &vds)
template<typename T>
memory_context_t< T > make_memory_context (vector_holder< T > &vec_holder0, vector_holder< T > &vec_holder1, vec_data_store< T > &vds)
template<typename T>
value (details::expression_node< T > *n)
template<typename T>
value (std::pair< details::expression_node< T > *, bool > n)
template<typename T>
value (const T *t)
template<typename T>
value (const T &t)
template<typename T>
bool is_sf3ext_node (const expression_node< T > *n)
template<typename T>
bool is_sf4ext_node (const expression_node< T > *n)
template<typename T>
bool is_vov_node (const expression_node< T > *node)
template<typename T>
bool is_cov_node (const expression_node< T > *node)
template<typename T>
bool is_voc_node (const expression_node< T > *node)
template<typename T>
bool is_cob_node (const expression_node< T > *node)
template<typename T>
bool is_boc_node (const expression_node< T > *node)
template<typename T>
bool is_t0ot1ot2_node (const expression_node< T > *node)
template<typename T>
bool is_t0ot1ot2ot3_node (const expression_node< T > *node)
template<typename T>
bool is_uv_node (const expression_node< T > *node)
template<typename T>
bool is_string_node (const expression_node< T > *node)
template<typename T>
bool is_string_range_node (const expression_node< T > *node)
template<typename T>
bool is_const_string_node (const expression_node< T > *node)
template<typename T>
bool is_const_string_range_node (const expression_node< T > *node)
template<typename T>
bool is_string_assignment_node (const expression_node< T > *node)
template<typename T>
bool is_string_concat_node (const expression_node< T > *node)
template<typename T>
bool is_string_function_node (const expression_node< T > *node)
template<typename T>
bool is_string_condition_node (const expression_node< T > *node)
template<typename T>
bool is_string_ccondition_node (const expression_node< T > *node)
template<typename T>
bool is_string_vararg_node (const expression_node< T > *node)
template<typename T>
bool is_genricstring_range_node (const expression_node< T > *node)
template<typename T>
bool is_loop_node (const expression_node< T > *node)
template<typename T>
bool is_block_node (const expression_node< T > *node)
void load_operations_map (std::multimap< std::string, details::base_operation_t, details::ilesscompare > &m)
template<typename Parser>
void disable_type_checking (Parser &p)
bool is_true (const cmplx::complex_t &v)
bool is_false (const cmplx::complex_t &v)
template<typename Iterator>
bool string_to_real (Iterator &itr_external, const Iterator end, cmplx::complex_t &t, details::numeric::details::complex_type_tag)
bool is_true (const mpfr::mpreal &v)
bool is_false (const mpfr::mpreal &v)
template<typename Iterator>
bool string_to_real (Iterator &itr_external, const Iterator end, mpfr::mpreal &t, numeric::details::mpfrreal_type_tag)
bool is_true (const real::type v)
bool is_false (const real::type v)
template<typename Iterator>
bool string_to_real (Iterator &itr_external, const Iterator end, real::type &t, details::numeric::details::my_real_type_tag)

Variables

static const std::string reserved_words []
static const std::size_t reserved_words_size = sizeof(reserved_words) / sizeof(std::string)
static const std::string reserved_symbols []
static const std::size_t reserved_symbols_size = sizeof(reserved_symbols) / sizeof(std::string)
static const std::string base_function_list []
static const std::size_t base_function_list_size = sizeof(base_function_list) / sizeof(std::string)
static const std::string logic_ops_list []
static const std::size_t logic_ops_list_size = sizeof(logic_ops_list) / sizeof(std::string)
static const std::string cntrl_struct_list []
static const std::size_t cntrl_struct_list_size = sizeof(cntrl_struct_list) / sizeof(std::string)
static const std::string arithmetic_ops_list []
static const std::size_t arithmetic_ops_list_size = sizeof(arithmetic_ops_list) / sizeof(std::string)
static const std::string assignment_ops_list []
static const std::size_t assignment_ops_list_size = sizeof(assignment_ops_list) / sizeof(std::string)
static const std::string inequality_ops_list []
static const std::size_t inequality_ops_list_size = sizeof(inequality_ops_list) / sizeof(std::string)
static const double pow10 []
static const std::size_t pow10_size = sizeof(pow10) / sizeof(double)
template<typename T>
variable_node< T >::null_value = T(std::numeric_limits<T>::quiet_NaN())
template<typename T>
std::string stringvar_node< T >::null_value = std::string("")
template<typename T>
std::string string_range_node< T >::null_value = std::string("")
template<typename T>
const std::string stringvar_size_node< T >::null_value = std::string("")
template<typename T, typename T0, typename T1>
const expression_node< T >::node_type nodetype_T0oT1< T, T0, T1 >::result = expression_node<T>::e_none
template<typename T, typename T0, typename T1>
const expression_node< T >::node_type nodetype_T0oT1< T, constT0 &, constT1 & >::result = expression_node<T>:: e_vov
template<typename T, typename T0, typename T1>
const expression_node< T >::node_type nodetype_T0oT1< T, constT0 &, constT1 >::result = expression_node<T>:: e_voc
template<typename T, typename T0, typename T1>
const expression_node< T >::node_type nodetype_T0oT1< T, constT0, constT1 & >::result = expression_node<T>:: e_cov
template<typename T, typename T0, typename T1>
const expression_node< T >::node_type nodetype_T0oT1< T, T0 &, T1 & >::result = expression_node<T>:: e_none
template<typename T, typename T0, typename T1>
const expression_node< T >::node_type nodetype_T0oT1< T, constT0, constT1 >::result = expression_node<T>:: e_none
template<typename T, typename T0, typename T1>
const expression_node< T >::node_type nodetype_T0oT1< T, T0 &, constT1 >::result = expression_node<T>:: e_none
template<typename T, typename T0, typename T1>
const expression_node< T >::node_type nodetype_T0oT1< T, constT0, T1 & >::result = expression_node<T>:: e_none
template<typename T, typename T0, typename T1>
const expression_node< T >::node_type nodetype_T0oT1< T, constT0 &, T1 & >::result = expression_node<T>:: e_none
template<typename T, typename T0, typename T1>
const expression_node< T >::node_type nodetype_T0oT1< T, T0 &, constT1 & >::result = expression_node<T>:: e_none
template<typename T, typename T0, typename T1, typename T2>
const expression_node< T >::node_type nodetype_T0oT1oT2< T, T0, T1, T2 >::result = expression_node<T>::e_none
template<typename T, typename T0, typename T1, typename T2>
const expression_node< T >::node_type nodetype_T0oT1oT2< T, constT0 &, constT1 &, constT2 & >::result = expression_node<T>:: e_vovov
template<typename T, typename T0, typename T1, typename T2>
const expression_node< T >::node_type nodetype_T0oT1oT2< T, constT0 &, constT1 &, constT2 >::result = expression_node<T>:: e_vovoc
template<typename T, typename T0, typename T1, typename T2>
const expression_node< T >::node_type nodetype_T0oT1oT2< T, constT0 &, constT1, constT2 & >::result = expression_node<T>:: e_vocov
template<typename T, typename T0, typename T1, typename T2>
const expression_node< T >::node_type nodetype_T0oT1oT2< T, constT0, constT1 &, constT2 & >::result = expression_node<T>:: e_covov
template<typename T, typename T0, typename T1, typename T2>
const expression_node< T >::node_type nodetype_T0oT1oT2< T, constT0, constT1 &, constT2 >::result = expression_node<T>:: e_covoc
template<typename T, typename T0, typename T1, typename T2>
const expression_node< T >::node_type nodetype_T0oT1oT2< T, constT0, constT1, constT2 >::result = expression_node<T>:: e_none
template<typename T, typename T0, typename T1, typename T2>
const expression_node< T >::node_type nodetype_T0oT1oT2< T, constT0, constT1, constT2 & >::result = expression_node<T>:: e_none
template<typename T, typename T0, typename T1, typename T2>
const expression_node< T >::node_type nodetype_T0oT1oT2< T, constT0 &, constT1, constT2 >::result = expression_node<T>:: e_none
template<typename T, typename T0, typename T1, typename T2>
const expression_node< T >::node_type nodetype_T0oT1oT2< T, T0 &, T1 &, T2 & >::result = expression_node<T>:: e_none
template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node< T >::node_type nodetype_T0oT1oT2oT3< T, T0, T1, T2, T3 >::result = expression_node<T>::e_none
template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node< T >::node_type nodetype_T0oT1oT2oT3< T, constT0 &, constT1 &, constT2 &, constT3 & >::result = expression_node<T>:: e_vovovov
template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node< T >::node_type nodetype_T0oT1oT2oT3< T, constT0 &, constT1 &, constT2 &, constT3 >::result = expression_node<T>:: e_vovovoc
template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node< T >::node_type nodetype_T0oT1oT2oT3< T, constT0 &, constT1 &, constT2, constT3 & >::result = expression_node<T>:: e_vovocov
template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node< T >::node_type nodetype_T0oT1oT2oT3< T, constT0 &, constT1, constT2 &, constT3 & >::result = expression_node<T>:: e_vocovov
template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node< T >::node_type nodetype_T0oT1oT2oT3< T, constT0, constT1 &, constT2 &, constT3 & >::result = expression_node<T>:: e_covovov
template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node< T >::node_type nodetype_T0oT1oT2oT3< T, constT0, constT1 &, constT2, constT3 & >::result = expression_node<T>:: e_covocov
template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node< T >::node_type nodetype_T0oT1oT2oT3< T, constT0 &, constT1, constT2 &, constT3 >::result = expression_node<T>:: e_vocovoc
template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node< T >::node_type nodetype_T0oT1oT2oT3< T, constT0, constT1 &, constT2 &, constT3 >::result = expression_node<T>:: e_covovoc
template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node< T >::node_type nodetype_T0oT1oT2oT3< T, constT0 &, constT1, constT2, constT3 & >::result = expression_node<T>:: e_vococov
template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node< T >::node_type nodetype_T0oT1oT2oT3< T, constT0, constT1, constT2, constT3 >::result = expression_node<T>:: e_none
template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node< T >::node_type nodetype_T0oT1oT2oT3< T, constT0, constT1, constT2, constT3 & >::result = expression_node<T>:: e_none
template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node< T >::node_type nodetype_T0oT1oT2oT3< T, constT0, constT1, constT2 &, constT3 >::result = expression_node<T>:: e_none
template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node< T >::node_type nodetype_T0oT1oT2oT3< T, constT0, constT1 &, constT2, constT3 >::result = expression_node<T>:: e_none
template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node< T >::node_type nodetype_T0oT1oT2oT3< T, constT0 &, constT1, constT2, constT3 >::result = expression_node<T>:: e_none
template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node< T >::node_type nodetype_T0oT1oT2oT3< T, constT0, constT1, constT2 &, constT3 & >::result = expression_node<T>:: e_none
template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node< T >::node_type nodetype_T0oT1oT2oT3< T, constT0 &, constT1 &, constT2, constT3 >::result = expression_node<T>:: e_none

Typedef Documentation

◆ _int64_t

typedef long long int exprtk::details::_int64_t

Definition at line 101 of file exprtk.hpp.

◆ _uint64_t

typedef unsigned long long int exprtk::details::_uint64_t

Definition at line 100 of file exprtk.hpp.

◆ char_cptr

Definition at line 96 of file exprtk.hpp.

◆ char_ptr

Definition at line 95 of file exprtk.hpp.

◆ char_t

Definition at line 94 of file exprtk.hpp.

◆ uchar_cptr

Definition at line 99 of file exprtk.hpp.

◆ uchar_ptr

Definition at line 98 of file exprtk.hpp.

◆ uchar_t

typedef unsigned char exprtk::details::uchar_t

Definition at line 97 of file exprtk.hpp.

Enumeration Type Documentation

◆ operator_type

Enumerator
e_default 
e_null 
e_add 
e_sub 
e_mul 
e_div 
e_mod 
e_pow 
e_atan2 
e_min 
e_max 
e_avg 
e_sum 
e_prod 
e_lt 
e_lte 
e_eq 
e_equal 
e_ne 
e_nequal 
e_gte 
e_gt 
e_and 
e_nand 
e_or 
e_nor 
e_xor 
e_xnor 
e_mand 
e_mor 
e_scand 
e_scor 
e_shr 
e_shl 
e_abs 
e_acos 
e_acosh 
e_asin 
e_asinh 
e_atan 
e_atanh 
e_ceil 
e_cos 
e_cosh 
e_exp 
e_expm1 
e_floor 
e_log 
e_log10 
e_log2 
e_log1p 
e_logn 
e_neg 
e_pos 
e_round 
e_roundn 
e_root 
e_sqrt 
e_sin 
e_sinc 
e_sinh 
e_sec 
e_csc 
e_tan 
e_tanh 
e_cot 
e_clamp 
e_iclamp 
e_inrange 
e_sgn 
e_r2d 
e_d2r 
e_d2g 
e_g2d 
e_hypot 
e_notl 
e_erf 
e_erfc 
e_ncdf 
e_frac 
e_trunc 
e_assign 
e_addass 
e_subass 
e_mulass 
e_divass 
e_modass 
e_in 
e_like 
e_ilike 
e_multi 
e_smulti 
e_swap 
e_sf00 
e_sf01 
e_sf02 
e_sf03 
e_sf04 
e_sf05 
e_sf06 
e_sf07 
e_sf08 
e_sf09 
e_sf10 
e_sf11 
e_sf12 
e_sf13 
e_sf14 
e_sf15 
e_sf16 
e_sf17 
e_sf18 
e_sf19 
e_sf20 
e_sf21 
e_sf22 
e_sf23 
e_sf24 
e_sf25 
e_sf26 
e_sf27 
e_sf28 
e_sf29 
e_sf30 
e_sf31 
e_sf32 
e_sf33 
e_sf34 
e_sf35 
e_sf36 
e_sf37 
e_sf38 
e_sf39 
e_sf40 
e_sf41 
e_sf42 
e_sf43 
e_sf44 
e_sf45 
e_sf46 
e_sf47 
e_sf48 
e_sf49 
e_sf50 
e_sf51 
e_sf52 
e_sf53 
e_sf54 
e_sf55 
e_sf56 
e_sf57 
e_sf58 
e_sf59 
e_sf60 
e_sf61 
e_sf62 
e_sf63 
e_sf64 
e_sf65 
e_sf66 
e_sf67 
e_sf68 
e_sf69 
e_sf70 
e_sf71 
e_sf72 
e_sf73 
e_sf74 
e_sf75 
e_sf76 
e_sf77 
e_sf78 
e_sf79 
e_sf80 
e_sf81 
e_sf82 
e_sf83 
e_sf84 
e_sf85 
e_sf86 
e_sf87 
e_sf88 
e_sf89 
e_sf90 
e_sf91 
e_sf92 
e_sf93 
e_sf94 
e_sf95 
e_sf96 
e_sf97 
e_sf98 
e_sf99 
e_sffinal 
e_sf4ext00 
e_sf4ext01 
e_sf4ext02 
e_sf4ext03 
e_sf4ext04 
e_sf4ext05 
e_sf4ext06 
e_sf4ext07 
e_sf4ext08 
e_sf4ext09 
e_sf4ext10 
e_sf4ext11 
e_sf4ext12 
e_sf4ext13 
e_sf4ext14 
e_sf4ext15 
e_sf4ext16 
e_sf4ext17 
e_sf4ext18 
e_sf4ext19 
e_sf4ext20 
e_sf4ext21 
e_sf4ext22 
e_sf4ext23 
e_sf4ext24 
e_sf4ext25 
e_sf4ext26 
e_sf4ext27 
e_sf4ext28 
e_sf4ext29 
e_sf4ext30 
e_sf4ext31 
e_sf4ext32 
e_sf4ext33 
e_sf4ext34 
e_sf4ext35 
e_sf4ext36 
e_sf4ext37 
e_sf4ext38 
e_sf4ext39 
e_sf4ext40 
e_sf4ext41 
e_sf4ext42 
e_sf4ext43 
e_sf4ext44 
e_sf4ext45 
e_sf4ext46 
e_sf4ext47 
e_sf4ext48 
e_sf4ext49 
e_sf4ext50 
e_sf4ext51 
e_sf4ext52 
e_sf4ext53 
e_sf4ext54 
e_sf4ext55 
e_sf4ext56 
e_sf4ext57 
e_sf4ext58 
e_sf4ext59 
e_sf4ext60 
e_sf4ext61 

Definition at line 5144 of file exprtk.hpp.

5145 {
5146 e_default , e_null , e_add , e_sub ,
5147 e_mul , e_div , e_mod , e_pow ,
5148 e_atan2 , e_min , e_max , e_avg ,
5149 e_sum , e_prod , e_lt , e_lte ,
5150 e_eq , e_equal , e_ne , e_nequal ,
5151 e_gte , e_gt , e_and , e_nand ,
5152 e_or , e_nor , e_xor , e_xnor ,
5153 e_mand , e_mor , e_scand , e_scor ,
5154 e_shr , e_shl , e_abs , e_acos ,
5156 e_atanh , e_ceil , e_cos , e_cosh ,
5157 e_exp , e_expm1 , e_floor , e_log ,
5159 e_neg , e_pos , e_round , e_roundn ,
5160 e_root , e_sqrt , e_sin , e_sinc ,
5161 e_sinh , e_sec , e_csc , e_tan ,
5163 e_inrange , e_sgn , e_r2d , e_d2r ,
5164 e_d2g , e_g2d , e_hypot , e_notl ,
5165 e_erf , e_erfc , e_ncdf , e_frac ,
5169 e_swap ,
5170
5171 // Do not add new functions/operators after this point.
5172 e_sf00 = 1000, e_sf01 = 1001, e_sf02 = 1002, e_sf03 = 1003,
5173 e_sf04 = 1004, e_sf05 = 1005, e_sf06 = 1006, e_sf07 = 1007,
5174 e_sf08 = 1008, e_sf09 = 1009, e_sf10 = 1010, e_sf11 = 1011,
5175 e_sf12 = 1012, e_sf13 = 1013, e_sf14 = 1014, e_sf15 = 1015,
5176 e_sf16 = 1016, e_sf17 = 1017, e_sf18 = 1018, e_sf19 = 1019,
5177 e_sf20 = 1020, e_sf21 = 1021, e_sf22 = 1022, e_sf23 = 1023,
5178 e_sf24 = 1024, e_sf25 = 1025, e_sf26 = 1026, e_sf27 = 1027,
5179 e_sf28 = 1028, e_sf29 = 1029, e_sf30 = 1030, e_sf31 = 1031,
5180 e_sf32 = 1032, e_sf33 = 1033, e_sf34 = 1034, e_sf35 = 1035,
5181 e_sf36 = 1036, e_sf37 = 1037, e_sf38 = 1038, e_sf39 = 1039,
5182 e_sf40 = 1040, e_sf41 = 1041, e_sf42 = 1042, e_sf43 = 1043,
5183 e_sf44 = 1044, e_sf45 = 1045, e_sf46 = 1046, e_sf47 = 1047,
5184 e_sf48 = 1048, e_sf49 = 1049, e_sf50 = 1050, e_sf51 = 1051,
5185 e_sf52 = 1052, e_sf53 = 1053, e_sf54 = 1054, e_sf55 = 1055,
5186 e_sf56 = 1056, e_sf57 = 1057, e_sf58 = 1058, e_sf59 = 1059,
5187 e_sf60 = 1060, e_sf61 = 1061, e_sf62 = 1062, e_sf63 = 1063,
5188 e_sf64 = 1064, e_sf65 = 1065, e_sf66 = 1066, e_sf67 = 1067,
5189 e_sf68 = 1068, e_sf69 = 1069, e_sf70 = 1070, e_sf71 = 1071,
5190 e_sf72 = 1072, e_sf73 = 1073, e_sf74 = 1074, e_sf75 = 1075,
5191 e_sf76 = 1076, e_sf77 = 1077, e_sf78 = 1078, e_sf79 = 1079,
5192 e_sf80 = 1080, e_sf81 = 1081, e_sf82 = 1082, e_sf83 = 1083,
5193 e_sf84 = 1084, e_sf85 = 1085, e_sf86 = 1086, e_sf87 = 1087,
5194 e_sf88 = 1088, e_sf89 = 1089, e_sf90 = 1090, e_sf91 = 1091,
5195 e_sf92 = 1092, e_sf93 = 1093, e_sf94 = 1094, e_sf95 = 1095,
5196 e_sf96 = 1096, e_sf97 = 1097, e_sf98 = 1098, e_sf99 = 1099,
5197 e_sffinal = 1100,
5198 e_sf4ext00 = 2000, e_sf4ext01 = 2001, e_sf4ext02 = 2002, e_sf4ext03 = 2003,
5199 e_sf4ext04 = 2004, e_sf4ext05 = 2005, e_sf4ext06 = 2006, e_sf4ext07 = 2007,
5200 e_sf4ext08 = 2008, e_sf4ext09 = 2009, e_sf4ext10 = 2010, e_sf4ext11 = 2011,
5201 e_sf4ext12 = 2012, e_sf4ext13 = 2013, e_sf4ext14 = 2014, e_sf4ext15 = 2015,
5202 e_sf4ext16 = 2016, e_sf4ext17 = 2017, e_sf4ext18 = 2018, e_sf4ext19 = 2019,
5203 e_sf4ext20 = 2020, e_sf4ext21 = 2021, e_sf4ext22 = 2022, e_sf4ext23 = 2023,
5204 e_sf4ext24 = 2024, e_sf4ext25 = 2025, e_sf4ext26 = 2026, e_sf4ext27 = 2027,
5205 e_sf4ext28 = 2028, e_sf4ext29 = 2029, e_sf4ext30 = 2030, e_sf4ext31 = 2031,
5206 e_sf4ext32 = 2032, e_sf4ext33 = 2033, e_sf4ext34 = 2034, e_sf4ext35 = 2035,
5207 e_sf4ext36 = 2036, e_sf4ext37 = 2037, e_sf4ext38 = 2038, e_sf4ext39 = 2039,
5208 e_sf4ext40 = 2040, e_sf4ext41 = 2041, e_sf4ext42 = 2042, e_sf4ext43 = 2043,
5209 e_sf4ext44 = 2044, e_sf4ext45 = 2045, e_sf4ext46 = 2046, e_sf4ext47 = 2047,
5210 e_sf4ext48 = 2048, e_sf4ext49 = 2049, e_sf4ext50 = 2050, e_sf4ext51 = 2051,
5211 e_sf4ext52 = 2052, e_sf4ext53 = 2053, e_sf4ext54 = 2054, e_sf4ext55 = 2055,
5212 e_sf4ext56 = 2056, e_sf4ext57 = 2057, e_sf4ext58 = 2058, e_sf4ext59 = 2059,
5213 e_sf4ext60 = 2060, e_sf4ext61 = 2061
5214 };

Function Documentation

◆ all_nodes_valid() [1/2]

template<typename T, typename Allocator, template< typename, typename > class Sequence>
bool exprtk::details::all_nodes_valid ( const Sequence< expression_node< T > *, Allocator > & b)
inline

Definition at line 6039 of file exprtk.hpp.

6040 {
6041 for (std::size_t i = 0; i < b.size(); ++i)
6042 {
6043 if (0 == b[i]) return false;
6044 }
6045
6046 return true;
6047 }

◆ all_nodes_valid() [2/2]

template<std::size_t N, typename T>
bool exprtk::details::all_nodes_valid ( expression_node< T > *const (&) b[N])
inline

Definition at line 6026 of file exprtk.hpp.

6027 {
6028 for (std::size_t i = 0; i < N; ++i)
6029 {
6030 if (0 == b[i]) return false;
6031 }
6032
6033 return true;
6034 }

Referenced by exprtk::parser< T >::expression_generator< Type >::synthesize_expression(), and exprtk::parser< T >::expression_generator< Type >::synthesize_expression().

Here is the caller graph for this function:

◆ all_nodes_variables() [1/2]

template<typename T, typename Allocator, template< typename, typename > class Sequence>
bool exprtk::details::all_nodes_variables ( const Sequence< expression_node< T > *, Allocator > & b)
inline

Definition at line 6066 of file exprtk.hpp.

6067 {
6068 for (std::size_t i = 0; i < b.size(); ++i)
6069 {
6070 if (0 == b[i])
6071 return false;
6072 else if (!is_variable_node(b[i]))
6073 return false;
6074 }
6075
6076 return true;
6077 }
bool is_variable_node(const expression_node< T > *node)
Definition exprtk.hpp:5827

References is_variable_node().

Here is the call graph for this function:

◆ all_nodes_variables() [2/2]

template<std::size_t N, typename T>
bool exprtk::details::all_nodes_variables ( expression_node< T > *const (&) b[N])
inline

Definition at line 6050 of file exprtk.hpp.

6051 {
6052 for (std::size_t i = 0; i < N; ++i)
6053 {
6054 if (0 == b[i])
6055 return false;
6056 else if (!is_variable_node(b[i]))
6057 return false;
6058 }
6059
6060 return true;
6061 }

References is_variable_node().

Here is the call graph for this function:

◆ amalgamated_vecop()

template<typename T>
bool exprtk::details::amalgamated_vecop ( const expression_node< T > * node)
inline

Definition at line 5929 of file exprtk.hpp.

5930 {
5931 if (node)
5932 {
5933 switch (node->type())
5934 {
5939 default : return false;
5940 }
5941 }
5942 else
5943 return false;
5944 }
virtual node_type type() const
Definition exprtk.hpp:5749

References exprtk::details::expression_node< T >::e_valvecarith, exprtk::details::expression_node< T >::e_vecunaryop, exprtk::details::expression_node< T >::e_vecvalarith, exprtk::details::expression_node< T >::e_vecvecarith, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::details::generic_function_node< T, StringFunction >::init_branches().

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

◆ axn()

template<typename T, std::size_t N>
T exprtk::details::axn ( const T a,
const T x )
inline

Definition at line 11997 of file exprtk.hpp.

11998 {
11999 // a*x^n
12001 }

References exprtk::details::numeric::fast_exp< T, N >::result().

Referenced by exprtk::details::sf84_op< T >::id(), exprtk::details::sf85_op< T >::id(), exprtk::details::sf86_op< T >::id(), exprtk::details::sf87_op< T >::id(), exprtk::details::sf88_op< T >::id(), exprtk::details::sf89_op< T >::id(), exprtk::details::sf90_op< T >::id(), and exprtk::details::sf91_op< T >::id().

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

◆ axnb()

template<typename T, std::size_t N>
T exprtk::details::axnb ( const T a,
const T x,
const T b )
inline

Definition at line 12004 of file exprtk.hpp.

12005 {
12006 // a*x^n+b
12008 }

References exprtk::details::numeric::fast_exp< T, N >::result().

Referenced by exprtk::details::sf31_op< T >::id(), exprtk::details::sf32_op< T >::id(), exprtk::details::sf33_op< T >::id(), exprtk::details::sf34_op< T >::id(), exprtk::details::sf35_op< T >::id(), exprtk::details::sf36_op< T >::id(), exprtk::details::sf37_op< T >::id(), and exprtk::details::sf38_op< T >::id().

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

◆ back()

const char_t & exprtk::details::back ( const std::string & s)
inline

Definition at line 272 of file exprtk.hpp.

273 {
274 return s[s.size() - 1];
275 }

Referenced by exprtk::function_compositor< T >::compile_expression().

Here is the caller graph for this function:

◆ branch_deletable()

template<typename T>
bool exprtk::details::branch_deletable ( const expression_node< T > * node)
inline

Definition at line 6018 of file exprtk.hpp.

6019 {
6020 return (0 != node) &&
6021 !is_variable_node(node) &&
6022 !is_string_node (node) ;
6023 }
bool is_string_node(const expression_node< T > *node)
Definition exprtk.hpp:19198

References is_string_node(), and is_variable_node().

Referenced by exprtk::details::node_depth_base< expression_node< T > >::collect(), exprtk::details::node_depth_base< expression_node< T > >::collect(), construct_branch_pair(), construct_branch_pair(), exprtk::details::function_N_node< T, IFunction, N >::init_branches(), exprtk::details::generic_function_node< T, StringFunction >::init_branches(), and exprtk::expression< T >::control_block::~control_block().

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

◆ case_normalise()

void exprtk::details::case_normalise ( std::string & s)
inline

Definition at line 182 of file exprtk.hpp.

183 {
184 for (std::size_t i = 0; i < s.size(); ++i)
185 {
186 s[i] = static_cast<std::string::value_type>(std::tolower(s[i]));
187 }
188 }

Referenced by exprtk::parser< T >::dependent_entity_collector::assignment_symbols(), and exprtk::parser< T >::dependent_entity_collector::symbols().

Here is the caller graph for this function:

◆ cleanup_escapes()

bool exprtk::details::cleanup_escapes ( std::string & s)
inline

Definition at line 352 of file exprtk.hpp.

353 {
354 typedef std::string::iterator str_itr_t;
355
356 str_itr_t itr1 = s.begin();
357 str_itr_t itr2 = s.begin();
358 str_itr_t end = s.end ();
359
360 std::size_t removal_count = 0;
361
362 while (end != itr1)
363 {
364 if ('\\' == (*itr1))
365 {
366 if (end == ++itr1)
367 {
368 return false;
369 }
370 else if (parse_hex(itr1, end, *itr2))
371 {
372 itr1 += 4;
373 itr2 += 1;
374 removal_count += 4;
375 }
376 else if ('a' == (*itr1)) { (*itr2++) = '\a'; ++itr1; ++removal_count; }
377 else if ('b' == (*itr1)) { (*itr2++) = '\b'; ++itr1; ++removal_count; }
378 else if ('f' == (*itr1)) { (*itr2++) = '\f'; ++itr1; ++removal_count; }
379 else if ('n' == (*itr1)) { (*itr2++) = '\n'; ++itr1; ++removal_count; }
380 else if ('r' == (*itr1)) { (*itr2++) = '\r'; ++itr1; ++removal_count; }
381 else if ('t' == (*itr1)) { (*itr2++) = '\t'; ++itr1; ++removal_count; }
382 else if ('v' == (*itr1)) { (*itr2++) = '\v'; ++itr1; ++removal_count; }
383 else if ('0' == (*itr1)) { (*itr2++) = '\0'; ++itr1; ++removal_count; }
384 else
385 {
386 (*itr2++) = (*itr1++);
387 ++removal_count;
388 }
389
390 continue;
391 }
392 else
393 (*itr2++) = (*itr1++);
394 }
395
396 if ((removal_count > s.size()) || (0 == removal_count))
397 return false;
398
399 s.resize(s.size() - removal_count);
400
401 return true;
402 }
bool parse_hex(Iterator &itr, Iterator end, char_t &result)
Definition exprtk.hpp:328

References parse_hex().

Referenced by exprtk::lexer::generator::scan_string().

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

◆ compute_pow10()

template<typename T>
T exprtk::details::compute_pow10 ( T d,
const int exponent )
inline

Definition at line 1760 of file exprtk.hpp.

1761 {
1762 static const double fract10[] =
1763 {
1764 0.0,
1765 1.0E+001, 1.0E+002, 1.0E+003, 1.0E+004, 1.0E+005, 1.0E+006, 1.0E+007, 1.0E+008, 1.0E+009, 1.0E+010,
1766 1.0E+011, 1.0E+012, 1.0E+013, 1.0E+014, 1.0E+015, 1.0E+016, 1.0E+017, 1.0E+018, 1.0E+019, 1.0E+020,
1767 1.0E+021, 1.0E+022, 1.0E+023, 1.0E+024, 1.0E+025, 1.0E+026, 1.0E+027, 1.0E+028, 1.0E+029, 1.0E+030,
1768 1.0E+031, 1.0E+032, 1.0E+033, 1.0E+034, 1.0E+035, 1.0E+036, 1.0E+037, 1.0E+038, 1.0E+039, 1.0E+040,
1769 1.0E+041, 1.0E+042, 1.0E+043, 1.0E+044, 1.0E+045, 1.0E+046, 1.0E+047, 1.0E+048, 1.0E+049, 1.0E+050,
1770 1.0E+051, 1.0E+052, 1.0E+053, 1.0E+054, 1.0E+055, 1.0E+056, 1.0E+057, 1.0E+058, 1.0E+059, 1.0E+060,
1771 1.0E+061, 1.0E+062, 1.0E+063, 1.0E+064, 1.0E+065, 1.0E+066, 1.0E+067, 1.0E+068, 1.0E+069, 1.0E+070,
1772 1.0E+071, 1.0E+072, 1.0E+073, 1.0E+074, 1.0E+075, 1.0E+076, 1.0E+077, 1.0E+078, 1.0E+079, 1.0E+080,
1773 1.0E+081, 1.0E+082, 1.0E+083, 1.0E+084, 1.0E+085, 1.0E+086, 1.0E+087, 1.0E+088, 1.0E+089, 1.0E+090,
1774 1.0E+091, 1.0E+092, 1.0E+093, 1.0E+094, 1.0E+095, 1.0E+096, 1.0E+097, 1.0E+098, 1.0E+099, 1.0E+100,
1775 1.0E+101, 1.0E+102, 1.0E+103, 1.0E+104, 1.0E+105, 1.0E+106, 1.0E+107, 1.0E+108, 1.0E+109, 1.0E+110,
1776 1.0E+111, 1.0E+112, 1.0E+113, 1.0E+114, 1.0E+115, 1.0E+116, 1.0E+117, 1.0E+118, 1.0E+119, 1.0E+120,
1777 1.0E+121, 1.0E+122, 1.0E+123, 1.0E+124, 1.0E+125, 1.0E+126, 1.0E+127, 1.0E+128, 1.0E+129, 1.0E+130,
1778 1.0E+131, 1.0E+132, 1.0E+133, 1.0E+134, 1.0E+135, 1.0E+136, 1.0E+137, 1.0E+138, 1.0E+139, 1.0E+140,
1779 1.0E+141, 1.0E+142, 1.0E+143, 1.0E+144, 1.0E+145, 1.0E+146, 1.0E+147, 1.0E+148, 1.0E+149, 1.0E+150,
1780 1.0E+151, 1.0E+152, 1.0E+153, 1.0E+154, 1.0E+155, 1.0E+156, 1.0E+157, 1.0E+158, 1.0E+159, 1.0E+160,
1781 1.0E+161, 1.0E+162, 1.0E+163, 1.0E+164, 1.0E+165, 1.0E+166, 1.0E+167, 1.0E+168, 1.0E+169, 1.0E+170,
1782 1.0E+171, 1.0E+172, 1.0E+173, 1.0E+174, 1.0E+175, 1.0E+176, 1.0E+177, 1.0E+178, 1.0E+179, 1.0E+180,
1783 1.0E+181, 1.0E+182, 1.0E+183, 1.0E+184, 1.0E+185, 1.0E+186, 1.0E+187, 1.0E+188, 1.0E+189, 1.0E+190,
1784 1.0E+191, 1.0E+192, 1.0E+193, 1.0E+194, 1.0E+195, 1.0E+196, 1.0E+197, 1.0E+198, 1.0E+199, 1.0E+200,
1785 1.0E+201, 1.0E+202, 1.0E+203, 1.0E+204, 1.0E+205, 1.0E+206, 1.0E+207, 1.0E+208, 1.0E+209, 1.0E+210,
1786 1.0E+211, 1.0E+212, 1.0E+213, 1.0E+214, 1.0E+215, 1.0E+216, 1.0E+217, 1.0E+218, 1.0E+219, 1.0E+220,
1787 1.0E+221, 1.0E+222, 1.0E+223, 1.0E+224, 1.0E+225, 1.0E+226, 1.0E+227, 1.0E+228, 1.0E+229, 1.0E+230,
1788 1.0E+231, 1.0E+232, 1.0E+233, 1.0E+234, 1.0E+235, 1.0E+236, 1.0E+237, 1.0E+238, 1.0E+239, 1.0E+240,
1789 1.0E+241, 1.0E+242, 1.0E+243, 1.0E+244, 1.0E+245, 1.0E+246, 1.0E+247, 1.0E+248, 1.0E+249, 1.0E+250,
1790 1.0E+251, 1.0E+252, 1.0E+253, 1.0E+254, 1.0E+255, 1.0E+256, 1.0E+257, 1.0E+258, 1.0E+259, 1.0E+260,
1791 1.0E+261, 1.0E+262, 1.0E+263, 1.0E+264, 1.0E+265, 1.0E+266, 1.0E+267, 1.0E+268, 1.0E+269, 1.0E+270,
1792 1.0E+271, 1.0E+272, 1.0E+273, 1.0E+274, 1.0E+275, 1.0E+276, 1.0E+277, 1.0E+278, 1.0E+279, 1.0E+280,
1793 1.0E+281, 1.0E+282, 1.0E+283, 1.0E+284, 1.0E+285, 1.0E+286, 1.0E+287, 1.0E+288, 1.0E+289, 1.0E+290,
1794 1.0E+291, 1.0E+292, 1.0E+293, 1.0E+294, 1.0E+295, 1.0E+296, 1.0E+297, 1.0E+298, 1.0E+299, 1.0E+300,
1795 1.0E+301, 1.0E+302, 1.0E+303, 1.0E+304, 1.0E+305, 1.0E+306, 1.0E+307, 1.0E+308
1796 };
1797
1798 static const int fract10_size = static_cast<int>(sizeof(fract10) / sizeof(double));
1799
1800 const int e = std::abs(exponent);
1801
1802 if (exponent >= std::numeric_limits<T>::min_exponent10)
1803 {
1804 if (e < fract10_size)
1805 {
1806 if (exponent > 0)
1807 return T(d * fract10[e]);
1808 else
1809 return T(d / fract10[e]);
1810 }
1811 else
1812 return T(d * std::pow(10.0, 10.0 * exponent));
1813 }
1814 else
1815 {
1816 d /= T(fract10[ -std::numeric_limits<T>::min_exponent10]);
1817 return T(d / fract10[-exponent + std::numeric_limits<T>::min_exponent10]);
1818 }
1819 }

Referenced by string_to_real().

Here is the caller graph for this function:

◆ construct_branch_pair() [1/2]

template<typename T>
void exprtk::details::construct_branch_pair ( std::pair< expression_node< T > *, bool > & branch,
expression_node< T > * b )
inline

Definition at line 6810 of file exprtk.hpp.

6811 {
6812 if (b)
6813 {
6814 branch = std::make_pair(b,branch_deletable(b));
6815 }
6816 }
bool branch_deletable(const expression_node< T > *node)
Definition exprtk.hpp:6018

References branch_deletable().

Here is the call graph for this function:

◆ construct_branch_pair() [2/2]

template<typename T, std::size_t N>
void exprtk::details::construct_branch_pair ( std::pair< expression_node< T > *, bool >(&) branch[N],
expression_node< T > * b,
const std::size_t & index )
inline

Definition at line 6799 of file exprtk.hpp.

6802 {
6803 if (b && (index < N))
6804 {
6805 branch[index] = std::make_pair(b,branch_deletable(b));
6806 }
6807 }

References branch_deletable().

Referenced by exprtk::details::assert_node< T >::assert_node(), exprtk::details::bipow_node< T, PowOp >::bipow_node(), exprtk::details::bipowinv_node< T, PowOp >::bipowinv_node(), exprtk::details::boc_node< T, Operation >::boc_node(), exprtk::details::bov_node< T, Operation >::bov_node(), exprtk::details::break_node< T >::break_node(), exprtk::details::cob_node< T, Operation >::cob_node(), exprtk::details::conditional_node< T >::conditional_node(), exprtk::details::conditional_vector_node< T >::conditional_vector_node(), exprtk::details::cons_conditional_node< T >::cons_conditional_node(), exprtk::details::for_loop_node< T >::for_loop_node(), exprtk::details::generic_string_range_node< T >::generic_string_range_node(), init_branches(), exprtk::details::multi_switch_node< T >::multi_switch_node(), exprtk::details::null_eq_node< T >::null_eq_node(), exprtk::details::rebasevector_celem_node< T >::rebasevector_celem_node(), exprtk::details::rebasevector_celem_rtc_node< T >::rebasevector_celem_rtc_node(), exprtk::details::rebasevector_elem_node< T >::rebasevector_elem_node(), exprtk::details::rebasevector_elem_rtc_node< T >::rebasevector_elem_rtc_node(), exprtk::details::repeat_until_loop_node< T >::repeat_until_loop_node(), exprtk::details::return_envelope_node< T >::return_envelope_node(), exprtk::details::str_vararg_node< T, VarArgFunction >::str_vararg_node(), exprtk::details::string_size_node< T >::string_size_node(), exprtk::details::switch_node< T >::switch_node(), exprtk::details::unary_branch_node< T, Operation >::unary_branch_node(), exprtk::details::unary_node< T >::unary_node(), exprtk::details::vararg_node< T, VarArgFunction >::vararg_node(), exprtk::details::vector_celem_node< T >::vector_celem_node(), exprtk::details::vector_celem_rtc_node< T >::vector_celem_rtc_node(), exprtk::details::vector_elem_node< T >::vector_elem_node(), exprtk::details::vector_elem_rtc_node< T >::vector_elem_rtc_node(), exprtk::details::vectorize_node< T, VecFunction >::vectorize_node(), exprtk::details::vob_node< T, Operation >::vob_node(), and exprtk::details::while_loop_node< T >::while_loop_node().

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

◆ destroy_node()

template<typename T>
void exprtk::details::destroy_node ( expression_node< T > *& node)
inline

Definition at line 6185 of file exprtk.hpp.

6186 {
6187 if (0 != node)
6188 {
6190 ::delete_nodes(node);
6191 }
6192 }

Referenced by exprtk::details::range_pack< T >::free().

Here is the caller graph for this function:

◆ disable_type_checking()

template<typename Parser>
void exprtk::details::disable_type_checking ( Parser & p)
inline

Definition at line 22517 of file exprtk.hpp.

22518 {
22519 p.state_.type_check_enabled = false;
22520 }

Referenced by exprtk::details::collector_helper< T >::collection_pass().

Here is the caller graph for this function:

◆ dump_ptr() [1/2]

void exprtk::details::dump_ptr ( const std::string & ,
const void *  )
inline

Definition at line 5312 of file exprtk.hpp.

5312{}

Referenced by exprtk::details::vec_data_store< T >::control_block::create_data(), exprtk::symtab_list_t< T >::release(), exprtk::details::vec_data_store< T >::control_block::~control_block(), and exprtk::symbol_table< T >::~symbol_table().

Here is the caller graph for this function:

◆ dump_ptr() [2/2]

void exprtk::details::dump_ptr ( const std::string & ,
const void * ,
const std::size_t  )
inline

Definition at line 5313 of file exprtk.hpp.

5313{}

◆ dump_vector()

template<typename T>
void exprtk::details::dump_vector ( const std::string & ,
const T * ,
const std::size_t  )
inline

Definition at line 5315 of file exprtk.hpp.

5315{}

◆ free_all_nodes() [1/2]

template<typename NodeAllocator, typename T, std::size_t N>
void exprtk::details::free_all_nodes ( NodeAllocator & node_allocator,
expression_node< T > *(&) b[N] )
inline

Definition at line 6150 of file exprtk.hpp.

6151 {
6152 for (std::size_t i = 0; i < N; ++i)
6153 {
6155 }
6156 }
void free_node(NodeAllocator &, expression_node< T > *&node)
Definition exprtk.hpp:6173

References free_node().

Referenced by exprtk::parser< T >::expression_generator< Type >::cardinal_pow_optimisation(), exprtk::parser< T >::expression_generator< Type >::generic_function_call(), exprtk::parser< T >::expression_generator< Type >::multi_switch_statement(), exprtk::parser< T >::expression_generator< Type >::operator()(), exprtk::parser< T >::expression_generator< Type >::operator()(), exprtk::parser< T >::expression_generator< Type >::synthesize_binary_ext_expression::process(), exprtk::parser< T >::expression_generator< Type >::return_call(), exprtk::parser< T >::expression_generator< Type >::string_function_call(), exprtk::parser< T >::expression_generator< Type >::switch_statement(), exprtk::parser< T >::expression_generator< Type >::synthesize_csocs_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_csrocs_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_csrocsr_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_string_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_string_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_uvouv_expression(), exprtk::parser< T >::expression_generator< Type >::vararg_function(), and exprtk::parser< T >::expression_generator< Type >::vararg_function_call().

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

◆ free_all_nodes() [2/2]

template<typename NodeAllocator, typename T, typename Allocator, template< typename, typename > class Sequence>
void exprtk::details::free_all_nodes ( NodeAllocator & node_allocator,
Sequence< expression_node< T > *, Allocator > & b )
inline

Definition at line 6162 of file exprtk.hpp.

6163 {
6164 for (std::size_t i = 0; i < b.size(); ++i)
6165 {
6167 }
6168
6169 b.clear();
6170 }

References free_node().

Here is the call graph for this function:

◆ free_node()

template<typename NodeAllocator, typename T>
void exprtk::details::free_node ( NodeAllocator & ,
expression_node< T > *& node )
inline

Definition at line 6173 of file exprtk.hpp.

6174 {
6175 if ((0 == node) || is_variable_node(node) || is_string_node(node))
6176 {
6177 return;
6178 }
6179
6180 node_collection_destructor<expression_node<T> >
6181 ::delete_nodes(node);
6182 }

References is_string_node(), and is_variable_node().

Referenced by exprtk::parser< T >::expression_generator< Type >::assert_call(), exprtk::parser< T >::expression_generator< Type >::conditional(), exprtk::parser< T >::expression_generator< Type >::conditional_string(), exprtk::parser< T >::expression_generator< Type >::conditional_vector(), exprtk::parser< T >::expression_generator< Type >::const_optimise_mswitch(), exprtk::parser< T >::expression_generator< Type >::const_optimise_sf3(), exprtk::parser< T >::expression_generator< Type >::const_optimise_sf4(), exprtk::parser< T >::expression_generator< Type >::const_optimise_varargfunc(), exprtk::parser< T >::expression_generator< Type >::for_loop(), free_all_nodes(), free_all_nodes(), exprtk::parser< T >::expression_generator< Type >::function(), exprtk::parser< T >::expression_generator< Type >::generic_function_call(), exprtk::parser< Type >::parse_branch(), exprtk::parser< Type >::parse_define_vector_statement(), exprtk::parser< T >::expression_generator< Type >::synthesize_boc_expression::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_bov_expression::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_cob_expression::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_coboc_expression::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_cocob_expression::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_cocov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_cov_expression::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covoc_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covoc_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covocov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covocov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covocov_expression2::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covocov_expression3::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covocov_expression4::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovoc_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovoc_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovoc_expression2::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovoc_expression3::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovoc_expression4::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovov_expression2::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovov_expression3::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovov_expression4::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vob_expression::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_voc_expression::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vococ_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vococov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vococov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vococov_expression3::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovoc_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovoc_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovoc_expression2::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovoc_expression3::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovoc_expression4::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovov_expression2::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovov_expression3::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovov_expression4::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovoc_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovoc_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovocov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovocov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovocov_expression2::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovocov_expression3::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovocov_expression4::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovoc_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovoc_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovoc_expression2::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovoc_expression3::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovoc_expression4::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovov_expression2::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovov_expression3::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovov_expression4::process(), exprtk::parser< T >::expression_generator< Type >::repeat_until_loop(), exprtk::parser< T >::expression_generator< Type >::return_call(), exprtk::parser< T >::expression_generator< Type >::string_function_call(), exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_operation_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_csocs_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_csocsr_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_csos_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_csosr_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_csros_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_csrosr_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_null_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_shortcircuit_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_socs_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_socsr_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_sosr_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_srocs_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_srocsr_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_sros_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_srosr_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_string_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_swap_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_vecarithmetic_operation_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_veceqineqlogic_operation_expression(), exprtk::parser< T >::expression_generator< Type >::vararg_function(), exprtk::parser< T >::expression_generator< Type >::vararg_function_call(), exprtk::parser< T >::expression_generator< Type >::vector_element(), and exprtk::parser< T >::expression_generator< Type >::while_loop().

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

◆ front()

const char_t & exprtk::details::front ( const std::string & s)
inline

Definition at line 267 of file exprtk.hpp.

268 {
269 return s[0];
270 }

Referenced by exprtk::function_compositor< T >::compile_expression().

Here is the caller graph for this function:

◆ hex_to_bin()

uchar_t exprtk::details::hex_to_bin ( uchar_t h)
inline

Definition at line 319 of file exprtk.hpp.

320 {
321 if (('0' <= h) && (h <= '9'))
322 return (h - '0');
323 else
324 return static_cast<uchar_t>(std::toupper(h) - 'A' + 10);
325 }
unsigned char uchar_t
Definition exprtk.hpp:97

Referenced by parse_hex().

Here is the caller graph for this function:

◆ imatch() [1/2]

bool exprtk::details::imatch ( const char_t c1,
const char_t c2 )
inline

Definition at line 190 of file exprtk.hpp.

191 {
192 return std::tolower(c1) == std::tolower(c2);
193 }

Referenced by exprtk::parser< T >::scope_element_manager::add_element(), exprtk::symbol_table< T >::type_store< Type, RawType >::add_impl(), exprtk::parser< T >::scope_element_manager::get_active_element(), exprtk::parser< T >::scope_element_manager::get_element(), is_base_function(), is_control_struct(), is_logic_opr(), is_reserved_symbol(), is_reserved_word(), is_valid_sf_symbol(), exprtk::rtl::vecops::sort< T >::operator()(), exprtk::parser< Type >::parse_assert_statement(), exprtk::parser< Type >::parse_conditional_statement_02(), exprtk::parser< Type >::parse_define_var_statement(), exprtk::parser< Type >::parse_expression(), exprtk::parser< Type >::parse_for_loop(), exprtk::parser< Type >::parse_multi_switch_statement(), exprtk::parser< Type >::parse_repeat_until_loop(), exprtk::parser< Type >::parse_return_statement(), exprtk::parser< Type >::parse_swap_statement(), exprtk::parser< Type >::parse_switch_statement(), exprtk::parser< Type >::parse_symbol(), exprtk::parser< Type >::parse_symtab_symbol(), exprtk::parser< Type >::parse_vararg_function(), exprtk::parser< Type >::parse_vector(), exprtk::lexer::parser_helper::peek_token_is(), expression_processor< T >::process_function_definition(), exprtk::lexer::generator::scan_special_function(), exprtk::lexer::parser_helper::token_is(), exprtk::lexer::parser_helper::token_is(), truth_table_generator(), and exprtk::parser< Type >::valid_vararg_operation().

Here is the caller graph for this function:

◆ imatch() [2/2]

bool exprtk::details::imatch ( const std::string & s1,
const std::string & s2 )
inline

Definition at line 195 of file exprtk.hpp.

196 {
197 if (s1.size() == s2.size())
198 {
199 for (std::size_t i = 0; i < s1.size(); ++i)
200 {
201 if (std::tolower(s1[i]) != std::tolower(s2[i]))
202 {
203 return false;
204 }
205 }
206
207 return true;
208 }
209
210 return false;
211 }

◆ init_branches()

template<std::size_t N, typename T>
void exprtk::details::init_branches ( std::pair< expression_node< T > *, bool >(&) branch[N],
expression_node< T > * b0,
expression_node< T > * b1 = reinterpret_cast<expression_node<T>*>(0),
expression_node< T > * b2 = reinterpret_cast<expression_node<T>*>(0),
expression_node< T > * b3 = reinterpret_cast<expression_node<T>*>(0),
expression_node< T > * b4 = reinterpret_cast<expression_node<T>*>(0),
expression_node< T > * b5 = reinterpret_cast<expression_node<T>*>(0),
expression_node< T > * b6 = reinterpret_cast<expression_node<T>*>(0),
expression_node< T > * b7 = reinterpret_cast<expression_node<T>*>(0),
expression_node< T > * b8 = reinterpret_cast<expression_node<T>*>(0),
expression_node< T > * b9 = reinterpret_cast<expression_node<T>*>(0) )
inline

Definition at line 6819 of file exprtk.hpp.

6830 {
6831 construct_branch_pair(branch, b0, 0);
6832 construct_branch_pair(branch, b1, 1);
6833 construct_branch_pair(branch, b2, 2);
6834 construct_branch_pair(branch, b3, 3);
6835 construct_branch_pair(branch, b4, 4);
6836 construct_branch_pair(branch, b5, 5);
6837 construct_branch_pair(branch, b6, 6);
6838 construct_branch_pair(branch, b7, 7);
6839 construct_branch_pair(branch, b8, 8);
6840 construct_branch_pair(branch, b9, 9);
6841 }
void construct_branch_pair(std::pair< expression_node< T > *, bool >(&branch)[N], expression_node< T > *b, const std::size_t &index)
Definition exprtk.hpp:6799

References construct_branch_pair().

Referenced by exprtk::details::binary_ext_node< T, Operation >::binary_ext_node(), exprtk::details::binary_node< T >::binary_node(), exprtk::details::quaternary_node< T >::quaternary_node(), and exprtk::details::trinary_node< T >::trinary_node().

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

◆ is_assert_node()

template<typename T>
bool exprtk::details::is_assert_node ( const expression_node< T > * node)
inline

Definition at line 6012 of file exprtk.hpp.

6013 {
6014 return node && (details::expression_node<T>::e_assert == node->type());
6015 }

References exprtk::details::expression_node< T >::e_assert, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::expression_helper< T >::is_assert(), and exprtk::expression_helper< T >::match_type_sequence().

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

◆ is_base_function()

bool exprtk::details::is_base_function ( const std::string & function_name)
inline

Definition at line 549 of file exprtk.hpp.

550 {
551 for (std::size_t i = 0; i < base_function_list_size; ++i)
552 {
553 if (imatch(function_name, base_function_list[i]))
554 {
555 return true;
556 }
557 }
558
559 return false;
560 }
bool imatch(const char_t c1, const char_t c2)
Definition exprtk.hpp:190
static const std::size_t base_function_list_size
Definition exprtk.hpp:483
static const std::string base_function_list[]
Definition exprtk.hpp:470

References base_function_list, base_function_list_size, and imatch().

Referenced by exprtk::parser< Type >::parse_symtab_symbol().

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

◆ is_binary_node()

template<typename T>
bool exprtk::details::is_binary_node ( const expression_node< T > * node)
inline

Definition at line 5821 of file exprtk.hpp.

5822 {
5823 return node && (details::expression_node<T>::e_binary == node->type());
5824 }

References exprtk::details::expression_node< T >::e_binary, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::expression_helper< T >::is_binary(), and exprtk::expression_helper< T >::match_type_sequence().

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

◆ is_block_node()

template<typename T>
bool exprtk::details::is_block_node ( const expression_node< T > * node)
inline

Definition at line 19306 of file exprtk.hpp.

19307 {
19308 if (node)
19309 {
19310 if (is_loop_node(node))
19311 {
19312 return true;
19313 }
19314
19315 switch (node->type())
19316 {
19320 case expression_node<T>::e_vararg : return true;
19321 default : return false;
19322 }
19323 }
19324
19325 return false;
19326 }
bool is_loop_node(const expression_node< T > *node)
Definition exprtk.hpp:19289

References exprtk::details::expression_node< T >::e_conditional, exprtk::details::expression_node< T >::e_mswitch, exprtk::details::expression_node< T >::e_switch, exprtk::details::expression_node< T >::e_vararg, is_loop_node(), and exprtk::details::expression_node< T >::type().

Here is the call graph for this function:

◆ is_boc_node()

template<typename T>
bool exprtk::details::is_boc_node ( const expression_node< T > * node)
inline

Definition at line 19174 of file exprtk.hpp.

19175 {
19176 return (0 != dynamic_cast<const boc_base_node<T>*>(node));
19177 }

Referenced by exprtk::parser< T >::expression_generator< Type >::coboc_optimisable(), exprtk::parser< T >::expression_generator< Type >::synthesize_boc_expression::process(), and exprtk::parser< T >::expression_generator< Type >::synthesize_coboc_expression::process().

Here is the caller graph for this function:

◆ is_bracket()

bool exprtk::details::is_bracket ( const char_t c)
inline

Definition at line 152 of file exprtk.hpp.

153 {
154 return is_left_bracket(c) || is_right_bracket(c);
155 }
bool is_left_bracket(const char_t c)
Definition exprtk.hpp:142
bool is_right_bracket(const char_t c)
Definition exprtk.hpp:147

References is_left_bracket(), and is_right_bracket().

Referenced by exprtk::lexer::helper::bracket_checker::operator()().

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

◆ is_break_node()

template<typename T>
bool exprtk::details::is_break_node ( const expression_node< T > * node)
inline

Definition at line 5963 of file exprtk.hpp.

5964 {
5965 return node && (details::expression_node<T>::e_break == node->type());
5966 }

References exprtk::details::expression_node< T >::e_break, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::parser< T >::expression_generator< Type >::is_invalid_break_continue_op(), and exprtk::parser< T >::expression_generator< Type >::operator()().

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

◆ is_cob_node()

template<typename T>
bool exprtk::details::is_cob_node ( const expression_node< T > * node)
inline

Definition at line 19168 of file exprtk.hpp.

19169 {
19170 return (0 != dynamic_cast<const cob_base_node<T>*>(node));
19171 }

Referenced by exprtk::parser< T >::expression_generator< Type >::cocob_optimisable(), exprtk::parser< T >::expression_generator< Type >::synthesize_cob_expression::process(), and exprtk::parser< T >::expression_generator< Type >::synthesize_cocob_expression::process().

Here is the caller graph for this function:

◆ is_const_string_node()

template<typename T>
bool exprtk::details::is_const_string_node ( const expression_node< T > * node)
inline

Definition at line 19210 of file exprtk.hpp.

19211 {
19212 return node && (expression_node<T>::e_stringconst == node->type());
19213 }

References exprtk::details::expression_node< T >::e_stringconst, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::parser< T >::expression_generator< Type >::branch_to_id(), exprtk::parser< Type >::parse_assert_statement(), exprtk::parser< T >::expression_generator< Type >::synthesize_string_expression(), and exprtk::parser< T >::expression_generator< Type >::synthesize_string_expression().

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

◆ is_const_string_range_node()

template<typename T>
bool exprtk::details::is_const_string_range_node ( const expression_node< T > * node)
inline

Definition at line 19216 of file exprtk.hpp.

19217 {
19218 return node && (expression_node<T>::e_cstringvarrng == node->type());
19219 }

References exprtk::details::expression_node< T >::e_cstringvarrng, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::parser< T >::expression_generator< Type >::branch_to_id(), exprtk::details::generic_function_node< T, StringFunction >::init_branches(), and exprtk::parser< T >::expression_generator< Type >::synthesize_string_expression().

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

◆ is_constant_node()

template<typename T>
bool exprtk::details::is_constant_node ( const expression_node< T > * node)
inline

Definition at line 5947 of file exprtk.hpp.

5948 {
5949 return node &&
5950 (
5953 );
5954 }

References exprtk::details::expression_node< T >::e_constant, exprtk::details::expression_node< T >::e_stringconst, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::parser< T >::expression_generator< Type >::binext_optimisable(), exprtk::parser< T >::expression_generator< Type >::boc_optimisable(), exprtk::parser< T >::expression_generator< Type >::branch_to_id(), exprtk::parser< T >::expression_generator< Type >::cob_optimisable(), exprtk::parser< T >::expression_generator< Type >::coboc_optimisable(), exprtk::parser< T >::expression_generator< Type >::cocob_optimisable(), exprtk::parser< T >::expression_generator< Type >::conditional(), exprtk::parser< T >::expression_generator< Type >::conditional_string(), exprtk::parser< T >::expression_generator< Type >::conditional_vector(), exprtk::parser< T >::expression_generator< Type >::cov_optimisable(), exprtk::parser< T >::expression_generator< Type >::for_loop(), exprtk::parser< T >::expression_generator< Type >::function(), exprtk::parser< T >::expression_generator< Type >::is_constant_foldable(), exprtk::parser< T >::expression_generator< Type >::is_constant_foldable(), exprtk::parser< T >::expression_generator< Type >::is_constpow_operation(), exprtk::parser< T >::expression_generator< Type >::operator()(), exprtk::parser< Type >::parse_define_vector_statement(), exprtk::parser< T >::expression_generator< Type >::repeat_until_loop(), exprtk::parser< T >::expression_generator< Type >::synthesize_shortcircuit_expression(), exprtk::parser< Type >::synthesize_vector_element(), exprtk::details::vector_init_iota_constconst_node< T >::valid(), exprtk::details::vector_init_iota_constnconst_node< T >::valid(), exprtk::details::vector_init_iota_nconstconst_node< T >::valid(), exprtk::details::vector_init_iota_nconstnconst_node< T >::valid(), exprtk::details::vector_init_single_constvalue_node< T >::valid(), exprtk::details::vector_init_single_value_node< T >::valid(), exprtk::parser< T >::expression_generator< Type >::vector_element(), exprtk::details::vector_initialisation_node< T >::vector_initialisation_node(), exprtk::parser< T >::expression_generator< Type >::voc_optimisable(), and exprtk::parser< T >::expression_generator< Type >::while_loop().

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

◆ is_continue_node()

template<typename T>
bool exprtk::details::is_continue_node ( const expression_node< T > * node)
inline

Definition at line 5969 of file exprtk.hpp.

5970 {
5971 return node && (details::expression_node<T>::e_continue == node->type());
5972 }

References exprtk::details::expression_node< T >::e_continue, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::parser< T >::expression_generator< Type >::is_invalid_break_continue_op(), and exprtk::parser< T >::expression_generator< Type >::operator()().

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

◆ is_control_struct()

bool exprtk::details::is_control_struct ( const std::string & cntrl_strct)
inline

Definition at line 562 of file exprtk.hpp.

563 {
564 for (std::size_t i = 0; i < cntrl_struct_list_size; ++i)
565 {
566 if (imatch(cntrl_strct, cntrl_struct_list[i]))
567 {
568 return true;
569 }
570 }
571
572 return false;
573 }
static const std::size_t cntrl_struct_list_size
Definition exprtk.hpp:497
static const std::string cntrl_struct_list[]
Definition exprtk.hpp:492

References cntrl_struct_list, cntrl_struct_list_size, and imatch().

Here is the call graph for this function:

◆ is_cov_node()

template<typename T>
bool exprtk::details::is_cov_node ( const expression_node< T > * node)
inline

Definition at line 19156 of file exprtk.hpp.

19157 {
19158 return (0 != dynamic_cast<const cov_base_node<T>*>(node));
19159 }

Referenced by exprtk::parser< T >::expression_generator< Type >::branch_to_id().

Here is the caller graph for this function:

◆ is_digit()

bool exprtk::details::is_digit ( const char_t c)
inline

Definition at line 132 of file exprtk.hpp.

133 {
134 return ('0' <= c) && (c <= '9');
135 }

Referenced by is_invalid(), is_letter_or_digit(), is_valid_sf_symbol(), exprtk::lexer::generator::next_is_digit(), exprtk::parser< Type >::parse_special_function(), exprtk::lexer::generator::scan_number(), exprtk::lexer::generator::scan_special_function(), and exprtk::lexer::generator::scan_token().

Here is the caller graph for this function:

◆ is_false() [1/5]

bool exprtk::details::is_false ( const cmplx::complex_t & v)
inline

Definition at line 375 of file exprtk_complex_adaptor.hpp.

375{ return cmplx::is_false(v); }
bool is_false(const complex_t v)

References cmplx::is_false().

Here is the call graph for this function:

◆ is_false() [2/5]

template<typename T>
bool exprtk::details::is_false ( const expression_node< T > * node)
inline

Definition at line 5791 of file exprtk.hpp.

5792 {
5793 return std::equal_to<T>()(T(0),node->value());
5794 }

References exprtk::details::expression_node< T >::value().

Referenced by exprtk::details::repeat_until_loop_bc_node< T >::value(), exprtk::details::repeat_until_loop_bc_rtc_node< T >::value(), exprtk::details::repeat_until_loop_node< T >::value(), and exprtk::details::repeat_until_loop_rtc_node< T >::value().

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

◆ is_false() [3/5]

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

Definition at line 383 of file exprtk_mpfr_adaptor.hpp.

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

Here is the call graph for this function:

◆ is_false() [4/5]

bool exprtk::details::is_false ( const real::type v)
inline

Definition at line 358 of file exprtk_real_adaptor.hpp.

358{ return real::is_false(v); }
bool is_false(const type v)

References real::is_false().

Here is the call graph for this function:

◆ is_false() [5/5]

template<typename T>
bool exprtk::details::is_false ( const std::pair< expression_node< T > *, bool > & node)
inline

Definition at line 5797 of file exprtk.hpp.

5798 {
5799 return std::equal_to<T>()(T(0),node.first->value());
5800 }

◆ is_function()

template<typename T>
bool exprtk::details::is_function ( const expression_node< T > * node)
inline

Definition at line 5981 of file exprtk.hpp.

5982 {
5983 return node && (details::expression_node<T>::e_function == node->type());
5984 }

References exprtk::details::expression_node< T >::e_function, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::expression_helper< T >::is_function(), and exprtk::expression_helper< T >::match_type_sequence().

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

◆ is_generally_string_node()

template<typename T>
bool exprtk::details::is_generally_string_node ( const expression_node< T > * node)
inline

Definition at line 19264 of file exprtk.hpp.

References exprtk::details::expression_node< T >::e_cstringvarrng, exprtk::details::expression_node< T >::e_strass, exprtk::details::expression_node< T >::e_strccondition, exprtk::details::expression_node< T >::e_strconcat, exprtk::details::expression_node< T >::e_strcondition, exprtk::details::expression_node< T >::e_strfunction, exprtk::details::expression_node< T >::e_strgenrange, exprtk::details::expression_node< T >::e_stringconst, exprtk::details::expression_node< T >::e_stringvar, exprtk::details::expression_node< T >::e_stringvararg, exprtk::details::expression_node< T >::e_stringvarrng, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::details::assert_node< T >::assert_node(), exprtk::details::assignment_string_node< T, AssignmentProcess >::assignment_string_node(), exprtk::details::assignment_string_range_node< T, AssignmentProcess >::assignment_string_range_node(), exprtk::details::conditional_string_node< T >::conditional_string_node(), exprtk::details::cons_conditional_str_node< T >::cons_conditional_str_node(), exprtk::details::generic_string_range_node< T >::generic_string_range_node(), exprtk::details::generic_function_node< T, StringFunction >::init_branches(), exprtk::parser< T >::expression_generator< Type >::is_constpow_operation(), exprtk::parser< T >::expression_generator< Type >::is_invalid_assignment_op(), exprtk::expression_helper< T >::is_string(), exprtk::expression_helper< T >::match_type_sequence(), exprtk::parser< Type >::parse_assert_statement(), exprtk::parser< Type >::parse_define_var_statement(), exprtk::parser< Type >::post_bracket_process(), exprtk::details::str_sogens_node< T, Operation >::str_sogens_node(), exprtk::details::str_vararg_node< T, VarArgFunction >::str_vararg_node(), exprtk::details::string_concat_node< T >::string_concat_node(), exprtk::details::string_size_node< T >::string_size_node(), exprtk::details::swap_genstrings_node< T >::swap_genstrings_node(), exprtk::parser< T >::expression_generator< Type >::synthesize_swap_expression(), and exprtk::details::assert_node< T >::valid().

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

◆ is_genricstring_range_node()

template<typename T>
bool exprtk::details::is_genricstring_range_node ( const expression_node< T > * node)
inline

Definition at line 19258 of file exprtk.hpp.

19259 {
19260 return node && (expression_node<T>::e_strgenrange == node->type());
19261 }

References exprtk::details::expression_node< T >::e_strgenrange, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::parser< T >::expression_generator< Type >::synthesize_string_expression().

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

◆ is_hex_digit()

bool exprtk::details::is_hex_digit ( const uchar_t digit)
inline

Definition at line 312 of file exprtk.hpp.

313 {
314 return (('0' <= digit) && (digit <= '9')) ||
315 (('A' <= digit) && (digit <= 'F')) ||
316 (('a' <= digit) && (digit <= 'f')) ;
317 }

Referenced by parse_hex(), and exprtk::lexer::generator::scan_string().

Here is the caller graph for this function:

◆ is_invalid()

bool exprtk::details::is_invalid ( const char_t c)
inline

Definition at line 162 of file exprtk.hpp.

163 {
164 return !is_whitespace (c) &&
165 !is_operator_char(c) &&
166 !is_letter (c) &&
167 !is_digit (c) &&
168 ('.' != c) &&
169 ('_' != c) &&
170 ('$' != c) &&
171 ('~' != c) &&
172 ('\'' != c);
173 }
bool is_whitespace(const char_t c)
Definition exprtk.hpp:103
bool is_operator_char(const char_t c)
Definition exprtk.hpp:111
bool is_letter(const char_t c)
Definition exprtk.hpp:126
bool is_digit(const char_t c)
Definition exprtk.hpp:132

References is_digit(), is_letter(), is_operator_char(), and is_whitespace().

Referenced by exprtk::lexer::generator::skip_comments().

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

◆ is_ivariable_node()

template<typename T>
bool exprtk::details::is_ivariable_node ( const expression_node< T > * node)
inline

Definition at line 5833 of file exprtk.hpp.

References exprtk::details::expression_node< T >::e_rbveccelem, exprtk::details::expression_node< T >::e_rbveccelemrtc, exprtk::details::expression_node< T >::e_rbvecelem, exprtk::details::expression_node< T >::e_rbvecelemrtc, exprtk::details::expression_node< T >::e_variable, exprtk::details::expression_node< T >::e_veccelem, exprtk::details::expression_node< T >::e_veccelemrtc, exprtk::details::expression_node< T >::e_vecelem, exprtk::details::expression_node< T >::e_vecelemrtc, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::parser< T >::expression_generator< Type >::synthesize_swap_expression().

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

◆ is_ivector_node()

template<typename T>
bool exprtk::details::is_ivector_node ( const expression_node< T > * node)
inline

Definition at line 5904 of file exprtk.hpp.

References exprtk::details::expression_node< T >::e_valvecarith, exprtk::details::expression_node< T >::e_vecondition, exprtk::details::expression_node< T >::e_vecopvalass, exprtk::details::expression_node< T >::e_vecopvecass, exprtk::details::expression_node< T >::e_vector, exprtk::details::expression_node< T >::e_vecunaryop, exprtk::details::expression_node< T >::e_vecvalarith, exprtk::details::expression_node< T >::e_vecvalass, exprtk::details::expression_node< T >::e_vecvecarith, exprtk::details::expression_node< T >::e_vecvecass, exprtk::details::expression_node< T >::e_vecvecswap, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::details::assignment_vecvec_node< T >::assignment_vecvec_node(), exprtk::details::assignment_vecvec_op_node< T, Operation >::assignment_vecvec_op_node(), exprtk::details::conditional_vector_node< T >::conditional_vector_node(), exprtk::details::generic_function_node< T, StringFunction >::init_branches(), exprtk::parser< T >::expression_generator< Type >::operator()(), exprtk::parser< Type >::post_bracket_process(), exprtk::details::swap_vecvec_node< T >::swap_vecvec_node(), exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_operation_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_swap_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_vecarithmetic_operation_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_veceqineqlogic_operation_expression(), exprtk::details::unary_vector_node< T, Operation >::unary_vector_node(), exprtk::parser< T >::expression_generator< Type >::vararg_function(), exprtk::details::vec_binop_valvec_node< T, Operation >::vec_binop_valvec_node(), exprtk::details::vec_binop_vecval_node< T, Operation >::vec_binop_vecval_node(), exprtk::details::vec_binop_vecvec_node< T, Operation >::vec_binop_vecvec_node(), exprtk::parser< T >::expression_generator< Type >::vector_element(), and exprtk::details::vectorize_node< T, VecFunction >::vectorize_node().

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

◆ is_left_bracket()

bool exprtk::details::is_left_bracket ( const char_t c)
inline

Definition at line 142 of file exprtk.hpp.

143 {
144 return ('(' == c) || ('[' == c) || ('{' == c);
145 }

Referenced by exprtk::lexer::helper::sequence_validator::invalid_bracket_check(), and is_bracket().

Here is the caller graph for this function:

◆ is_letter()

bool exprtk::details::is_letter ( const char_t c)
inline

Definition at line 126 of file exprtk.hpp.

127 {
128 return (('a' <= c) && (c <= 'z')) ||
129 (('A' <= c) && (c <= 'Z')) ;
130 }

Referenced by is_invalid(), is_letter_or_digit(), exprtk::lexer::generator::scan_token(), exprtk::symbol_table< T >::valid_function(), and exprtk::symbol_table< T >::valid_symbol().

Here is the caller graph for this function:

◆ is_letter_or_digit()

bool exprtk::details::is_letter_or_digit ( const char_t c)
inline

Definition at line 137 of file exprtk.hpp.

138 {
139 return is_letter(c) || is_digit(c);
140 }

References is_digit(), and is_letter().

Referenced by exprtk::lexer::generator::scan_symbol(), exprtk::symbol_table< T >::valid_function(), and exprtk::symbol_table< T >::valid_symbol().

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

◆ is_literal_node()

template<typename T>
bool exprtk::details::is_literal_node ( const expression_node< T > * node)
inline

Definition at line 5803 of file exprtk.hpp.

5804 {
5805 return node && (details::expression_node<T>::e_constant == node->type());
5806 }

References exprtk::details::expression_node< T >::e_constant, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::parser< T >::expression_generator< Type >::is_invalid_assignment_op(), exprtk::expression_helper< T >::is_literal(), exprtk::expression_helper< T >::match_type_sequence(), exprtk::parser< Type >::parse_define_constvar_statement(), and exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_expression().

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

◆ is_logic_opr()

bool exprtk::details::is_logic_opr ( const std::string & lgc_opr)
inline

Definition at line 575 of file exprtk.hpp.

576 {
577 for (std::size_t i = 0; i < logic_ops_list_size; ++i)
578 {
579 if (imatch(lgc_opr, logic_ops_list[i]))
580 {
581 return true;
582 }
583 }
584
585 return false;
586 }
static const std::string logic_ops_list[]
Definition exprtk.hpp:485
static const std::size_t logic_ops_list_size
Definition exprtk.hpp:490

References imatch(), logic_ops_list, and logic_ops_list_size.

Referenced by exprtk::parser< Type >::parse_expression().

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

◆ is_loop_node()

template<typename T>
bool exprtk::details::is_loop_node ( const expression_node< T > * node)
inline

Definition at line 19289 of file exprtk.hpp.

19290 {
19291 if (node)
19292 {
19293 switch (node->type())
19294 {
19297 case expression_node<T>::e_while : return true;
19298 default : return false;
19299 }
19300 }
19301
19302 return false;
19303 }

References exprtk::details::expression_node< T >::e_for, exprtk::details::expression_node< T >::e_repeat, exprtk::details::expression_node< T >::e_while, and exprtk::details::expression_node< T >::type().

Referenced by is_block_node().

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

◆ is_neg_unary_node()

template<typename T>
bool exprtk::details::is_neg_unary_node ( const expression_node< T > * node)
inline

Definition at line 5815 of file exprtk.hpp.

5816 {
5817 return node && (details::expression_node<T>::e_neg == node->type());
5818 }

References exprtk::details::expression_node< T >::e_neg, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::parser< Type >::parse_branch().

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

◆ is_negate_node()

template<typename T>
bool exprtk::details::is_negate_node ( const expression_node< T > * node)
inline

Definition at line 6001 of file exprtk.hpp.

6002 {
6003 if (node && is_unary_node(node))
6004 {
6005 return (details::e_neg == static_cast<const unary_node<T>*>(node)->operation());
6006 }
6007 else
6008 return false;
6009 }
bool is_unary_node(const expression_node< T > *node)
Definition exprtk.hpp:5809

References e_neg, and is_unary_node().

Here is the call graph for this function:

◆ is_null_node()

template<typename T>
bool exprtk::details::is_null_node ( const expression_node< T > * node)
inline

◆ is_operator_char()

bool exprtk::details::is_operator_char ( const char_t c)
inline

Definition at line 111 of file exprtk.hpp.

112 {
113 return ('+' == c) || ('-' == c) ||
114 ('*' == c) || ('/' == c) ||
115 ('^' == c) || ('<' == c) ||
116 ('>' == c) || ('=' == c) ||
117 (',' == c) || ('!' == c) ||
118 ('(' == c) || (')' == c) ||
119 ('[' == c) || (']' == c) ||
120 ('{' == c) || ('}' == c) ||
121 ('%' == c) || (':' == c) ||
122 ('?' == c) || ('&' == c) ||
123 ('|' == c) || (';' == c) ;
124 }

Referenced by is_invalid(), and exprtk::lexer::generator::scan_token().

Here is the caller graph for this function:

◆ is_rebasevector_celem_node()

template<typename T>
bool exprtk::details::is_rebasevector_celem_node ( const expression_node< T > * node)
inline

Definition at line 5892 of file exprtk.hpp.

5893 {
5894 return node && (details::expression_node<T>::e_rbveccelem == node->type());
5895 }

References exprtk::details::expression_node< T >::e_rbveccelem, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::details::assignment_rebasevec_celem_node< T >::assignment_rebasevec_celem_node(), exprtk::details::assignment_rebasevec_celem_op_node< T, Operation >::assignment_rebasevec_celem_op_node(), exprtk::parser< T >::expression_generator< Type >::is_invalid_assignment_op(), exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_expression(), and exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_operation_expression().

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

◆ is_rebasevector_celem_rtc_node()

template<typename T>
bool exprtk::details::is_rebasevector_celem_rtc_node ( const expression_node< T > * node)
inline

Definition at line 5886 of file exprtk.hpp.

5887 {
5888 return node && (details::expression_node<T>::e_rbveccelemrtc == node->type());
5889 }

References exprtk::details::expression_node< T >::e_rbveccelemrtc, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::details::assignment_rebasevec_celem_op_rtc_node< T, Operation >::assignment_rebasevec_celem_op_rtc_node(), exprtk::parser< T >::expression_generator< Type >::is_invalid_assignment_op(), and exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_operation_expression().

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

◆ is_rebasevector_elem_node()

template<typename T>
bool exprtk::details::is_rebasevector_elem_node ( const expression_node< T > * node)
inline

Definition at line 5874 of file exprtk.hpp.

5875 {
5876 return node && (details::expression_node<T>::e_rbvecelem == node->type());
5877 }

References exprtk::details::expression_node< T >::e_rbvecelem, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::details::assignment_rebasevec_elem_node< T >::assignment_rebasevec_elem_node(), exprtk::details::assignment_rebasevec_elem_op_node< T, Operation >::assignment_rebasevec_elem_op_node(), exprtk::parser< T >::expression_generator< Type >::is_invalid_assignment_op(), exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_expression(), and exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_operation_expression().

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

◆ is_rebasevector_elem_rtc_node()

template<typename T>
bool exprtk::details::is_rebasevector_elem_rtc_node ( const expression_node< T > * node)
inline

◆ is_reserved_symbol()

bool exprtk::details::is_reserved_symbol ( const std::string & symbol)
inline

Definition at line 536 of file exprtk.hpp.

537 {
538 for (std::size_t i = 0; i < reserved_symbols_size; ++i)
539 {
540 if (imatch(symbol, reserved_symbols[i]))
541 {
542 return true;
543 }
544 }
545
546 return false;
547 }
static const std::string reserved_symbols[]
Definition exprtk.hpp:451
static const std::size_t reserved_symbols_size
Definition exprtk.hpp:468

References imatch(), reserved_symbols, and reserved_symbols_size.

Referenced by exprtk::parser< Type >::parse_define_constvar_statement(), exprtk::parser< Type >::parse_define_var_statement(), and exprtk::parser< Type >::parse_symtab_symbol().

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

◆ is_reserved_word()

bool exprtk::details::is_reserved_word ( const std::string & symbol)
inline

Definition at line 523 of file exprtk.hpp.

524 {
525 for (std::size_t i = 0; i < reserved_words_size; ++i)
526 {
527 if (imatch(symbol, reserved_words[i]))
528 {
529 return true;
530 }
531 }
532
533 return false;
534 }
static const std::string reserved_words[]
Definition exprtk.hpp:440
static const std::size_t reserved_words_size
Definition exprtk.hpp:449

References imatch(), reserved_words, and reserved_words_size.

Referenced by exprtk::parser< Type >::remove_replace_symbol(), and exprtk::parser< Type >::replace_symbol().

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

◆ is_return_node()

template<typename T>
bool exprtk::details::is_return_node ( const expression_node< T > * node)
inline

Definition at line 5993 of file exprtk.hpp.

5994 {
5995 return node && (details::expression_node<T>::e_return == node->type());
5996 }

References exprtk::details::expression_node< T >::e_return, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::parser< Type >::parse_expression().

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

◆ is_right_bracket()

bool exprtk::details::is_right_bracket ( const char_t c)
inline

Definition at line 147 of file exprtk.hpp.

148 {
149 return (')' == c) || (']' == c) || ('}' == c);
150 }

Referenced by exprtk::lexer::helper::sequence_validator::invalid_bracket_check(), is_bracket(), and exprtk::lexer::helper::bracket_checker::operator()().

Here is the caller graph for this function:

◆ is_sf3ext_node()

template<typename T>
bool exprtk::details::is_sf3ext_node ( const expression_node< T > * n)
inline

Definition at line 17935 of file exprtk.hpp.

17936 {
17937 switch (n->type())
17938 {
17939 case expression_node<T>::e_vovov : return true;
17940 case expression_node<T>::e_vovoc : return true;
17941 case expression_node<T>::e_vocov : return true;
17942 case expression_node<T>::e_covov : return true;
17943 case expression_node<T>::e_covoc : return true;
17944 default : return false;
17945 }
17946 }

References exprtk::details::expression_node< T >::e_covoc, exprtk::details::expression_node< T >::e_covov, exprtk::details::expression_node< T >::e_vocov, exprtk::details::expression_node< T >::e_vovoc, exprtk::details::expression_node< T >::e_vovov, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::parser< T >::expression_generator< Type >::synthesize_sf4ext_expression::compile_left(), exprtk::parser< T >::expression_generator< Type >::synthesize_sf4ext_expression::compile_right(), exprtk::expression_helper< T >::is_sf3ext(), exprtk::expression_helper< T >::match_type_sequence(), exprtk::parser< T >::expression_generator< Type >::synthesize_boc_expression::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_bov_expression::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_cob_expression::process(), and exprtk::parser< T >::expression_generator< Type >::synthesize_vob_expression::process().

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

◆ is_sf4ext_node()

template<typename T>
bool exprtk::details::is_sf4ext_node ( const expression_node< T > * n)
inline

Definition at line 18113 of file exprtk.hpp.

18114 {
18115 switch (n->type())
18116 {
18117 case expression_node<T>::e_vovovov : return true;
18118 case expression_node<T>::e_vovovoc : return true;
18119 case expression_node<T>::e_vovocov : return true;
18120 case expression_node<T>::e_vocovov : return true;
18121 case expression_node<T>::e_covovov : return true;
18122 case expression_node<T>::e_covocov : return true;
18123 case expression_node<T>::e_vocovoc : return true;
18124 case expression_node<T>::e_covovoc : return true;
18125 case expression_node<T>::e_vococov : return true;
18126 default : return false;
18127 }
18128 }

References exprtk::details::expression_node< T >::e_covocov, exprtk::details::expression_node< T >::e_covovoc, exprtk::details::expression_node< T >::e_covovov, exprtk::details::expression_node< T >::e_vococov, exprtk::details::expression_node< T >::e_vocovoc, exprtk::details::expression_node< T >::e_vocovov, exprtk::details::expression_node< T >::e_vovocov, exprtk::details::expression_node< T >::e_vovovoc, exprtk::details::expression_node< T >::e_vovovov, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::expression_helper< T >::is_sf4ext(), and exprtk::expression_helper< T >::match_type_sequence().

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

◆ is_sign()

bool exprtk::details::is_sign ( const char_t c)
inline

Definition at line 157 of file exprtk.hpp.

158 {
159 return ('+' == c) || ('-' == c);
160 }

Referenced by exprtk::lexer::generator::scan_number().

Here is the caller graph for this function:

◆ is_string_assignment_node()

template<typename T>
bool exprtk::details::is_string_assignment_node ( const expression_node< T > * node)
inline

Definition at line 19222 of file exprtk.hpp.

19223 {
19224 return node && (expression_node<T>::e_strass == node->type());
19225 }

References exprtk::details::expression_node< T >::e_strass, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::parser< T >::expression_generator< Type >::synthesize_string_expression().

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

◆ is_string_ccondition_node()

template<typename T>
bool exprtk::details::is_string_ccondition_node ( const expression_node< T > * node)
inline

Definition at line 19246 of file exprtk.hpp.

19247 {
19248 return node && (expression_node<T>::e_strccondition == node->type());
19249 }

References exprtk::details::expression_node< T >::e_strccondition, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::parser< T >::expression_generator< Type >::synthesize_string_expression().

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

◆ is_string_concat_node()

template<typename T>
bool exprtk::details::is_string_concat_node ( const expression_node< T > * node)
inline

Definition at line 19228 of file exprtk.hpp.

19229 {
19230 return node && (expression_node<T>::e_strconcat == node->type());
19231 }

References exprtk::details::expression_node< T >::e_strconcat, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::parser< T >::expression_generator< Type >::synthesize_string_expression().

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

◆ is_string_condition_node()

template<typename T>
bool exprtk::details::is_string_condition_node ( const expression_node< T > * node)
inline

Definition at line 19240 of file exprtk.hpp.

19241 {
19242 return node && (expression_node<T>::e_strcondition == node->type());
19243 }

References exprtk::details::expression_node< T >::e_strcondition, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::parser< T >::expression_generator< Type >::synthesize_string_expression().

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

◆ is_string_function_node()

template<typename T>
bool exprtk::details::is_string_function_node ( const expression_node< T > * node)
inline

Definition at line 19234 of file exprtk.hpp.

19235 {
19236 return node && (expression_node<T>::e_strfunction == node->type());
19237 }

References exprtk::details::expression_node< T >::e_strfunction, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::parser< T >::expression_generator< Type >::synthesize_string_expression().

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

◆ is_string_node()

◆ is_string_range_node()

template<typename T>
bool exprtk::details::is_string_range_node ( const expression_node< T > * node)
inline

Definition at line 19204 of file exprtk.hpp.

19205 {
19206 return node && (expression_node<T>::e_stringvarrng == node->type());
19207 }

References exprtk::details::expression_node< T >::e_stringvarrng, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::details::assignment_string_range_node< T, AssignmentProcess >::assignment_string_range_node(), exprtk::parser< T >::expression_generator< Type >::branch_to_id(), exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_expression(), and exprtk::parser< T >::expression_generator< Type >::synthesize_string_expression().

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

◆ is_string_vararg_node()

template<typename T>
bool exprtk::details::is_string_vararg_node ( const expression_node< T > * node)
inline

Definition at line 19252 of file exprtk.hpp.

19253 {
19254 return node && (expression_node<T>::e_stringvararg == node->type());
19255 }

References exprtk::details::expression_node< T >::e_stringvararg, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::parser< T >::expression_generator< Type >::synthesize_string_expression().

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

◆ is_swap_node()

template<typename T>
bool exprtk::details::is_swap_node ( const expression_node< T > * node)
inline

Definition at line 5975 of file exprtk.hpp.

5976 {
5977 return node && (details::expression_node<T>::e_swap == node->type());
5978 }

References exprtk::details::expression_node< T >::e_swap, and exprtk::details::expression_node< T >::type().

Here is the call graph for this function:

◆ is_t0ot1ot2_node()

template<typename T>
bool exprtk::details::is_t0ot1ot2_node ( const expression_node< T > * node)
inline

Definition at line 19180 of file exprtk.hpp.

19181 {
19182 return (0 != dynamic_cast<const T0oT1oT2_base_node<T>*>(node));
19183 }

Referenced by exprtk::parser< T >::expression_generator< Type >::branch_to_id().

Here is the caller graph for this function:

◆ is_t0ot1ot2ot3_node()

template<typename T>
bool exprtk::details::is_t0ot1ot2ot3_node ( const expression_node< T > * node)
inline

Definition at line 19186 of file exprtk.hpp.

19187 {
19188 return (0 != dynamic_cast<const T0oT1oT2oT3_base_node<T>*>(node));
19189 }

Referenced by exprtk::parser< T >::expression_generator< Type >::branch_to_id().

Here is the caller graph for this function:

◆ is_true() [1/8]

bool exprtk::details::is_true ( const cmplx::complex_t & v)
inline

Definition at line 374 of file exprtk_complex_adaptor.hpp.

374{ return cmplx::is_true(v); }
bool is_true(const complex_t v)

References cmplx::is_true().

Here is the call graph for this function:

◆ is_true() [2/8]

bool exprtk::details::is_true ( const double v)
inline

Definition at line 5763 of file exprtk.hpp.

5764 {
5765 return std::not_equal_to<double>()(0.0,v);
5766 }

Referenced by exprtk::parser< T >::expression_generator< Type >::conditional(), exprtk::parser< T >::expression_generator< Type >::conditional_string(), exprtk::parser< T >::expression_generator< Type >::conditional_vector(), exprtk::parser< T >::expression_generator< Type >::const_optimise_mswitch(), exprtk::parser< T >::expression_generator< Type >::const_optimise_switch(), exprtk::parser< T >::expression_generator< Type >::for_loop(), exprtk::details::sf47_op< T >::id(), exprtk::details::sf92_op< T >::id(), exprtk::details::sf93_op< T >::id(), exprtk::details::sf98_op< T >::id(), exprtk::symtab_list_t< T >::operator bool(), pgo_primer(), exprtk::details::and_op< T >::process(), exprtk::details::nand_op< T >::process(), exprtk::details::nor_op< T >::process(), exprtk::details::or_op< T >::process(), exprtk::parser< T >::expression_generator< Type >::repeat_until_loop(), exprtk::details::assert_node< T >::value(), exprtk::details::conditional_node< T >::value(), exprtk::details::conditional_string_node< T >::value(), exprtk::details::conditional_vector_node< T >::value(), exprtk::details::cons_conditional_node< T >::value(), exprtk::details::cons_conditional_str_node< T >::value(), exprtk::details::for_loop_bc_node< T >::value(), exprtk::details::for_loop_bc_rtc_node< T >::value(), exprtk::details::for_loop_node< T >::value(), exprtk::details::for_loop_rtc_node< T >::value(), exprtk::details::multi_switch_node< T >::value(), exprtk::details::switch_node< T >::value(), exprtk::details::while_loop_bc_node< T >::value(), exprtk::details::while_loop_bc_rtc_node< T >::value(), exprtk::details::while_loop_node< T >::value(), exprtk::details::while_loop_rtc_node< T >::value(), and exprtk::parser< T >::expression_generator< Type >::while_loop().

Here is the caller graph for this function:

◆ is_true() [3/8]

template<typename T>
bool exprtk::details::is_true ( const expression_node< T > * node)
inline

Definition at line 5779 of file exprtk.hpp.

5780 {
5781 return std::not_equal_to<T>()(T(0),node->value());
5782 }

References exprtk::details::expression_node< T >::value().

Here is the call graph for this function:

◆ is_true() [4/8]

bool exprtk::details::is_true ( const float v)
inline

Definition at line 5773 of file exprtk.hpp.

5774 {
5775 return std::not_equal_to<float>()(0.0f,v);
5776 }

◆ is_true() [5/8]

bool exprtk::details::is_true ( const long double v)
inline

Definition at line 5768 of file exprtk.hpp.

5769 {
5770 return std::not_equal_to<long double>()(0.0L,v);
5771 }

◆ is_true() [6/8]

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

Definition at line 382 of file exprtk_mpfr_adaptor.hpp.

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

Here is the call graph for this function:

◆ is_true() [7/8]

bool exprtk::details::is_true ( const real::type v)
inline

Definition at line 357 of file exprtk_real_adaptor.hpp.

357{ return real::is_true(v); }
bool is_true(const type v)

References real::is_true().

Here is the call graph for this function:

◆ is_true() [8/8]

template<typename T>
bool exprtk::details::is_true ( const std::pair< expression_node< T > *, bool > & node)
inline

Definition at line 5785 of file exprtk.hpp.

5786 {
5787 return std::not_equal_to<T>()(T(0),node.first->value());
5788 }

◆ is_unary_node()

template<typename T>
bool exprtk::details::is_unary_node ( const expression_node< T > * node)
inline

Definition at line 5809 of file exprtk.hpp.

5810 {
5811 return node && (details::expression_node<T>::e_unary == node->type());
5812 }

References exprtk::details::expression_node< T >::e_unary, and exprtk::details::expression_node< T >::type().

Referenced by is_negate_node(), exprtk::expression_helper< T >::is_unary(), and exprtk::expression_helper< T >::match_type_sequence().

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

◆ is_uv_node()

template<typename T>
bool exprtk::details::is_uv_node ( const expression_node< T > * node)
inline

Definition at line 19192 of file exprtk.hpp.

19193 {
19194 return (0 != dynamic_cast<const uv_base_node<T>*>(node));
19195 }

Referenced by exprtk::parser< T >::expression_generator< Type >::synthesize_bov_expression::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vob_expression::process(), and exprtk::parser< T >::expression_generator< Type >::uvouv_optimisable().

Here is the caller graph for this function:

◆ is_valid_sf_symbol()

bool exprtk::details::is_valid_sf_symbol ( const std::string & symbol)
inline

Definition at line 257 of file exprtk.hpp.

258 {
259 // Special function: $f12 or $F34
260 return (4 == symbol.size()) &&
261 ('$' == symbol[0]) &&
262 imatch('f',symbol[1]) &&
263 is_digit(symbol[2]) &&
264 is_digit(symbol[3]);
265 }

References imatch(), and is_digit().

Referenced by exprtk::parser< Type >::parse_symbol().

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

◆ is_valid_string_char()

bool exprtk::details::is_valid_string_char ( const char_t c)
inline

Definition at line 175 of file exprtk.hpp.

176 {
177 return std::isprint(static_cast<uchar_t>(c)) ||
178 is_whitespace(c);
179 }

References is_whitespace().

Referenced by exprtk::lexer::generator::scan_string().

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

◆ is_vararg_node()

template<typename T>
bool exprtk::details::is_vararg_node ( const expression_node< T > * node)
inline

Definition at line 5987 of file exprtk.hpp.

5988 {
5989 return node && (details::expression_node<T>::e_vararg == node->type());
5990 }

References exprtk::details::expression_node< T >::e_vararg, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::expression_helper< T >::is_vararg().

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

◆ is_variable_node()

template<typename T>
bool exprtk::details::is_variable_node ( const expression_node< T > * node)
inline

Definition at line 5827 of file exprtk.hpp.

5828 {
5829 return node && (details::expression_node<T>::e_variable == node->type());
5830 }

References exprtk::details::expression_node< T >::e_variable, and exprtk::details::expression_node< T >::type().

Referenced by all_nodes_variables(), all_nodes_variables(), exprtk::details::assignment_node< T >::assignment_node(), exprtk::details::assignment_op_node< T, Operation >::assignment_op_node(), exprtk::parser< T >::expression_generator< Type >::bov_optimisable(), branch_deletable(), exprtk::parser< T >::expression_generator< Type >::branch_to_id(), exprtk::details::vararg_function_node< T, VarArgFunction >::collect_nodes(), exprtk::parser< T >::expression_generator< Type >::cov_optimisable(), exprtk::details::range_pack< T >::free(), free_node(), exprtk::parser< T >::scope_element_manager::get_variable(), exprtk::details::generic_function_node< T, StringFunction >::init_branches(), exprtk::parser< T >::expression_generator< Type >::is_constpow_operation(), exprtk::parser< T >::expression_generator< Type >::is_invalid_assignment_op(), exprtk::expression_helper< T >::is_variable(), exprtk::expression_helper< T >::match_type_sequence(), exprtk::parser< T >::expression_generator< Type >::operator()(), exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_operation_expression(), exprtk::details::vararg_varnode< T, VarArgFunction >::vararg_varnode(), exprtk::parser< T >::expression_generator< Type >::vob_optimisable(), exprtk::parser< T >::expression_generator< Type >::voc_optimisable(), and exprtk::parser< T >::expression_generator< Type >::vov_optimisable().

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

◆ is_vector_celem_node()

template<typename T>
bool exprtk::details::is_vector_celem_node ( const expression_node< T > * node)
inline

Definition at line 5856 of file exprtk.hpp.

5857 {
5858 return node && (details::expression_node<T>::e_veccelem == node->type());
5859 }

References exprtk::details::expression_node< T >::e_veccelem, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::parser< T >::expression_generator< Type >::is_invalid_assignment_op(), and exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_expression().

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

◆ is_vector_celem_rtc_node()

template<typename T>
bool exprtk::details::is_vector_celem_rtc_node ( const expression_node< T > * node)
inline

Definition at line 5868 of file exprtk.hpp.

5869 {
5870 return node && (details::expression_node<T>::e_veccelemrtc == node->type());
5871 }

References exprtk::details::expression_node< T >::e_veccelemrtc, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::details::assignment_vec_celem_op_rtc_node< T, Operation >::assignment_vec_celem_op_rtc_node(), exprtk::parser< T >::expression_generator< Type >::is_invalid_assignment_op(), exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_expression(), and exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_operation_expression().

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

◆ is_vector_elem_node()

template<typename T>
bool exprtk::details::is_vector_elem_node ( const expression_node< T > * node)
inline

Definition at line 5850 of file exprtk.hpp.

5851 {
5852 return node && (details::expression_node<T>::e_vecelem == node->type());
5853 }

References exprtk::details::expression_node< T >::e_vecelem, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::details::assignment_vec_elem_node< T >::assignment_vec_elem_node(), exprtk::details::assignment_vec_elem_op_node< T, Operation >::assignment_vec_elem_op_node(), exprtk::parser< T >::expression_generator< Type >::is_invalid_assignment_op(), exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_expression(), and exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_operation_expression().

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

◆ is_vector_elem_rtc_node()

template<typename T>
bool exprtk::details::is_vector_elem_rtc_node ( const expression_node< T > * node)
inline

Definition at line 5862 of file exprtk.hpp.

5863 {
5864 return node && (details::expression_node<T>::e_vecelemrtc == node->type());
5865 }

References exprtk::details::expression_node< T >::e_vecelemrtc, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::details::assignment_vec_elem_op_rtc_node< T, Operation >::assignment_vec_elem_op_rtc_node(), exprtk::details::assignment_vec_elem_rtc_node< T >::assignment_vec_elem_rtc_node(), exprtk::parser< T >::expression_generator< Type >::is_invalid_assignment_op(), exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_expression(), and exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_operation_expression().

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

◆ is_vector_node()

template<typename T>
bool exprtk::details::is_vector_node ( const expression_node< T > * node)
inline

Definition at line 5898 of file exprtk.hpp.

5899 {
5900 return node && (details::expression_node<T>::e_vector == node->type());
5901 }

References exprtk::details::expression_node< T >::e_vector, and exprtk::details::expression_node< T >::type().

Referenced by exprtk::details::assignment_vec_node< T >::assignment_vec_node(), exprtk::details::assignment_vec_op_node< T, Operation >::assignment_vec_op_node(), exprtk::details::assignment_vecvec_node< T >::assignment_vecvec_node(), exprtk::details::assignment_vecvec_op_node< T, Operation >::assignment_vecvec_op_node(), exprtk::parser< T >::expression_generator< Type >::is_constpow_operation(), exprtk::parser< T >::expression_generator< Type >::is_invalid_assignment_op(), exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_operation_expression(), exprtk::details::unary_vector_node< T, Operation >::unary_vector_node(), exprtk::details::vec_binop_valvec_node< T, Operation >::vec_binop_valvec_node(), exprtk::details::vec_binop_vecval_node< T, Operation >::vec_binop_vecval_node(), exprtk::details::vec_binop_vecvec_node< T, Operation >::vec_binop_vecvec_node(), and exprtk::parser< T >::expression_generator< Type >::vector_element().

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

◆ is_voc_node()

template<typename T>
bool exprtk::details::is_voc_node ( const expression_node< T > * node)
inline

Definition at line 19162 of file exprtk.hpp.

19163 {
19164 return (0 != dynamic_cast<const voc_base_node<T>*>(node));
19165 }

Referenced by exprtk::parser< T >::expression_generator< Type >::branch_to_id().

Here is the caller graph for this function:

◆ is_vov_node()

template<typename T>
bool exprtk::details::is_vov_node ( const expression_node< T > * node)
inline

Definition at line 19150 of file exprtk.hpp.

19151 {
19152 return (0 != dynamic_cast<const vov_base_node<T>*>(node));
19153 }

Referenced by exprtk::parser< T >::expression_generator< Type >::branch_to_id().

Here is the caller graph for this function:

◆ is_whitespace()

bool exprtk::details::is_whitespace ( const char_t c)
inline

Definition at line 103 of file exprtk.hpp.

104 {
105 return (' ' == c) || ('\n' == c) ||
106 ('\r' == c) || ('\t' == c) ||
107 ('\b' == c) || ('\v' == c) ||
108 ('\f' == c) ;
109 }

Referenced by exprtk::parser< Type >::construct_subexpr(), is_invalid(), is_valid_string_char(), exprtk::lexer::generator::scan_token(), and exprtk::lexer::generator::skip_whitespace().

Here is the caller graph for this function:

◆ load_operations_map()

void exprtk::details::load_operations_map ( std::multimap< std::string, details::base_operation_t, details::ilesscompare > & m)
inline

Definition at line 19714 of file exprtk.hpp.

19715 {
19716 #define register_op(Symbol, Type, Args) \
19717 m.insert(std::make_pair(std::string(Symbol),details::base_operation_t(Type,Args))); \
19718
19719 register_op("abs" , e_abs , 1)
19720 register_op("acos" , e_acos , 1)
19721 register_op("acosh" , e_acosh , 1)
19722 register_op("asin" , e_asin , 1)
19723 register_op("asinh" , e_asinh , 1)
19724 register_op("atan" , e_atan , 1)
19725 register_op("atanh" , e_atanh , 1)
19726 register_op("ceil" , e_ceil , 1)
19727 register_op("cos" , e_cos , 1)
19728 register_op("cosh" , e_cosh , 1)
19729 register_op("exp" , e_exp , 1)
19730 register_op("expm1" , e_expm1 , 1)
19731 register_op("floor" , e_floor , 1)
19732 register_op("log" , e_log , 1)
19733 register_op("log10" , e_log10 , 1)
19734 register_op("log2" , e_log2 , 1)
19735 register_op("log1p" , e_log1p , 1)
19736 register_op("round" , e_round , 1)
19737 register_op("sin" , e_sin , 1)
19738 register_op("sinc" , e_sinc , 1)
19739 register_op("sinh" , e_sinh , 1)
19740 register_op("sec" , e_sec , 1)
19741 register_op("csc" , e_csc , 1)
19742 register_op("sqrt" , e_sqrt , 1)
19743 register_op("tan" , e_tan , 1)
19744 register_op("tanh" , e_tanh , 1)
19745 register_op("cot" , e_cot , 1)
19746 register_op("rad2deg" , e_r2d , 1)
19747 register_op("deg2rad" , e_d2r , 1)
19748 register_op("deg2grad" , e_d2g , 1)
19749 register_op("grad2deg" , e_g2d , 1)
19750 register_op("sgn" , e_sgn , 1)
19751 register_op("not" , e_notl , 1)
19752 register_op("erf" , e_erf , 1)
19753 register_op("erfc" , e_erfc , 1)
19754 register_op("ncdf" , e_ncdf , 1)
19755 register_op("frac" , e_frac , 1)
19756 register_op("trunc" , e_trunc , 1)
19757 register_op("atan2" , e_atan2 , 2)
19758 register_op("mod" , e_mod , 2)
19759 register_op("logn" , e_logn , 2)
19760 register_op("pow" , e_pow , 2)
19761 register_op("root" , e_root , 2)
19762 register_op("roundn" , e_roundn , 2)
19763 register_op("equal" , e_equal , 2)
19764 register_op("not_equal" , e_nequal , 2)
19765 register_op("hypot" , e_hypot , 2)
19766 register_op("shr" , e_shr , 2)
19767 register_op("shl" , e_shl , 2)
19768 register_op("clamp" , e_clamp , 3)
19769 register_op("iclamp" , e_iclamp , 3)
19770 register_op("inrange" , e_inrange , 3)
19771 #undef register_op
19772 }
#define register_op(Symbol, Type, Args)

References e_abs, e_acos, e_acosh, e_asin, e_asinh, e_atan, e_atan2, e_atanh, e_ceil, e_clamp, e_cos, e_cosh, e_cot, e_csc, e_d2g, e_d2r, e_equal, e_erf, e_erfc, e_exp, e_expm1, e_floor, e_frac, e_g2d, e_hypot, e_iclamp, e_inrange, e_log, e_log10, e_log1p, e_log2, e_logn, e_mod, e_ncdf, e_nequal, e_notl, e_pow, e_r2d, e_root, e_round, e_roundn, e_sec, e_sgn, e_shl, e_shr, e_sin, e_sinc, e_sinh, e_sqrt, e_tan, e_tanh, e_trunc, and register_op.

◆ make_memory_context() [1/2]

template<typename T>
memory_context_t< T > exprtk::details::make_memory_context ( vector_holder< T > & vec_holder,
vec_data_store< T > & vds )
inline

Definition at line 13698 of file exprtk.hpp.

13700 {
13701 memory_context_t<T> result_ctxt;
13702
13703 result_ctxt.temp_ = (vec_holder.rebaseable()) ?
13704 new vector_holder<T>(vec_holder,vds) :
13705 new vector_holder<T>(vds) ;
13706
13707 result_ctxt.temp_vec_node_ = new vector_node<T>(vds,result_ctxt.temp_);
13708
13709 return result_ctxt;
13710 }

References exprtk::details::vector_holder< Type >::rebaseable(), exprtk::details::memory_context_t< T >::temp_, and exprtk::details::memory_context_t< T >::temp_vec_node_.

Referenced by exprtk::details::conditional_vector_node< T >::conditional_vector_node(), exprtk::details::unary_vector_node< T, Operation >::unary_vector_node(), exprtk::details::vec_binop_valvec_node< T, Operation >::vec_binop_valvec_node(), exprtk::details::vec_binop_vecval_node< T, Operation >::vec_binop_vecval_node(), and exprtk::details::vec_binop_vecvec_node< T, Operation >::vec_binop_vecvec_node().

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

◆ make_memory_context() [2/2]

template<typename T>
memory_context_t< T > exprtk::details::make_memory_context ( vector_holder< T > & vec_holder0,
vector_holder< T > & vec_holder1,
vec_data_store< T > & vds )
inline

Definition at line 13713 of file exprtk.hpp.

13716 {
13717 memory_context_t<T> result_ctxt;
13718
13719 if (!vec_holder0.rebaseable() && !vec_holder1.rebaseable())
13720 result_ctxt.temp_ = new vector_holder<T>(vds);
13721 else if (vec_holder0.rebaseable() && !vec_holder1.rebaseable())
13722 result_ctxt.temp_ = new vector_holder<T>(vec_holder0,vds);
13723 else if (!vec_holder0.rebaseable() && vec_holder1.rebaseable())
13724 result_ctxt.temp_ = new vector_holder<T>(vec_holder1,vds);
13725 else
13726 {
13727 result_ctxt.temp_ = (vec_holder0.base_size() >= vec_holder1.base_size()) ?
13728 new vector_holder<T>(vec_holder0, vds) :
13729 new vector_holder<T>(vec_holder1, vds) ;
13730 }
13731
13732 result_ctxt.temp_vec_node_ = new vector_node<T>(vds,result_ctxt.temp_);
13733
13734 return result_ctxt;
13735 }
std::size_t base_size() const
Definition exprtk.hpp:6721

References exprtk::details::vector_holder< Type >::base_size(), exprtk::details::vector_holder< Type >::rebaseable(), exprtk::details::memory_context_t< T >::temp_, and exprtk::details::memory_context_t< T >::temp_vec_node_.

Here is the call graph for this function:

◆ match_impl()

template<typename Iterator, typename Compare>
bool exprtk::details::match_impl ( const Iterator pattern_begin,
const Iterator pattern_end,
const Iterator data_begin,
const Iterator data_end,
const typename std::iterator_traits< Iterator >::value_type & zero_or_more,
const typename std::iterator_traits< Iterator >::value_type & exactly_one )
inline

Definition at line 605 of file exprtk.hpp.

611 {
612 typedef typename std::iterator_traits<Iterator>::value_type type;
613
614 const Iterator null_itr(0);
615
616 Iterator p_itr = pattern_begin;
617 Iterator d_itr = data_begin;
618 Iterator np_itr = null_itr;
619 Iterator nd_itr = null_itr;
620
621 for ( ; ; )
622 {
623 if (p_itr != pattern_end)
624 {
625 const type c = *(p_itr);
626
627 if ((data_end != d_itr) && (Compare::cmp(c,*(d_itr)) || (exactly_one == c)))
628 {
629 ++d_itr;
630 ++p_itr;
631 continue;
632 }
633 else if (zero_or_more == c)
634 {
635 while ((pattern_end != p_itr) && (zero_or_more == *(p_itr)))
636 {
637 ++p_itr;
638 }
639
640 const type d = *(p_itr);
641
642 while ((data_end != d_itr) && !(Compare::cmp(d,*(d_itr)) || (exactly_one == d)))
643 {
644 ++d_itr;
645 }
646
647 // set backtrack iterators
648 np_itr = p_itr - 1;
649 nd_itr = d_itr + 1;
650
651 continue;
652 }
653 }
654 else if (data_end == d_itr)
655 break;
656
657 if ((data_end == d_itr) || (null_itr == nd_itr))
658 return false;
659
660 p_itr = np_itr;
661 d_itr = nd_itr;
662 }
663
664 return true;
665 }

Referenced by wc_imatch(), and wc_match().

Here is the caller graph for this function:

◆ parse_hex()

template<typename Iterator>
bool exprtk::details::parse_hex ( Iterator & itr,
Iterator end,
char_t & result )
inline

Definition at line 328 of file exprtk.hpp.

330 {
331 if (
332 (end == (itr )) ||
333 (end == (itr + 1)) ||
334 (end == (itr + 2)) ||
335 (end == (itr + 3)) ||
336 ('0' != *(itr )) ||
337 ('X' != std::toupper(*(itr + 1))) ||
338 (!is_hex_digit(*(itr + 2))) ||
339 (!is_hex_digit(*(itr + 3)))
340 )
341 {
342 return false;
343 }
344
345 result = static_cast<char_t>(
346 hex_to_bin(static_cast<uchar_t>(*(itr + 2))) << 4 |
347 hex_to_bin(static_cast<uchar_t>(*(itr + 3)))) ;
348
349 return true;
350 }
bool is_hex_digit(const uchar_t digit)
Definition exprtk.hpp:312
const expression_node< T >::node_type nodetype_T0oT1< T, T0, T1 >::result
Definition exprtk.hpp:17438
uchar_t hex_to_bin(uchar_t h)
Definition exprtk.hpp:319

References hex_to_bin(), is_hex_digit(), and nodetype_T0oT1< T, T0, T1 >::result.

Referenced by cleanup_escapes().

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

◆ parse_inf()

template<typename Iterator, typename T>
bool exprtk::details::parse_inf ( Iterator & itr,
const Iterator end,
T & t,
const bool negative )
inlinestatic

Definition at line 1932 of file exprtk.hpp.

1933 {
1934 static const char_t inf_uc[] = "INFINITY";
1935 static const char_t inf_lc[] = "infinity";
1936 static const std::size_t inf_length = 8;
1937
1938 const std::size_t length = static_cast<std::size_t>(std::distance(itr,end));
1939
1940 if ((3 != length) && (inf_length != length))
1941 return false;
1942
1943 char_cptr inf_itr = ('i' == (*itr)) ? inf_lc : inf_uc;
1944
1945 while (end != itr)
1946 {
1947 if (*inf_itr == static_cast<char_t>(*itr))
1948 {
1949 ++itr;
1950 ++inf_itr;
1951 continue;
1952 }
1953 else
1954 return false;
1955 }
1956
1957 if (negative)
1958 t = -std::numeric_limits<T>::infinity();
1959 else
1960 t = std::numeric_limits<T>::infinity();
1961
1962 return true;
1963 }
char_t const * char_cptr
Definition exprtk.hpp:96

Referenced by string_to_real().

Here is the caller graph for this function:

◆ parse_nan()

template<typename Iterator, typename T>
bool exprtk::details::parse_nan ( Iterator & itr,
const Iterator end,
T & t )
inlinestatic

Definition at line 1899 of file exprtk.hpp.

1900 {
1901 typedef typename std::iterator_traits<Iterator>::value_type type;
1902
1903 static const std::size_t nan_length = 3;
1904
1905 if (std::distance(itr,end) != static_cast<int>(nan_length))
1906 return false;
1907
1908 if (static_cast<type>('n') == (*itr))
1909 {
1910 if (
1911 (static_cast<type>('a') != *(itr + 1)) ||
1912 (static_cast<type>('n') != *(itr + 2))
1913 )
1914 {
1915 return false;
1916 }
1917 }
1918 else if (
1919 (static_cast<type>('A') != *(itr + 1)) ||
1920 (static_cast<type>('N') != *(itr + 2))
1921 )
1922 {
1923 return false;
1924 }
1925
1926 t = std::numeric_limits<T>::quiet_NaN();
1927
1928 return true;
1929 }

Referenced by string_to_real().

Here is the caller graph for this function:

◆ sequence_match()

bool exprtk::details::sequence_match ( const std::string & pattern,
const std::string & str,
std::size_t & diff_index,
char_t & diff_value )
inline

Definition at line 693 of file exprtk.hpp.

697 {
698 if (str.empty())
699 {
700 return ("Z" == pattern);
701 }
702 else if ('*' == pattern[0])
703 return false;
704
705 typedef std::string::const_iterator itr_t;
706
707 itr_t p_itr = pattern.begin();
708 itr_t s_itr = str .begin();
709
710 const itr_t p_end = pattern.end();
711 const itr_t s_end = str .end();
712
713 while ((s_end != s_itr) && (p_end != p_itr))
714 {
715 if ('*' == (*p_itr))
716 {
717 const char_t target = static_cast<char_t>(std::toupper(*(p_itr - 1)));
718
719 if ('*' == target)
720 {
721 diff_index = static_cast<std::size_t>(std::distance(str.begin(),s_itr));
722 diff_value = static_cast<char_t>(std::toupper(*p_itr));
723
724 return false;
725 }
726 else
727 ++p_itr;
728
729 while (s_itr != s_end)
730 {
731 if (target != std::toupper(*s_itr))
732 break;
733 else
734 ++s_itr;
735 }
736
737 continue;
738 }
739 else if (
740 ('?' != *p_itr) &&
741 std::toupper(*p_itr) != std::toupper(*s_itr)
742 )
743 {
744 diff_index = static_cast<std::size_t>(std::distance(str.begin(),s_itr));
745 diff_value = static_cast<char_t>(std::toupper(*p_itr));
746
747 return false;
748 }
749
750 ++p_itr;
751 ++s_itr;
752 }
753
754 return (
755 (s_end == s_itr) &&
756 (
757 (p_end == p_itr) ||
758 ('*' == *p_itr)
759 )
760 );
761 }

Referenced by exprtk::parser< T >::type_checker::verify().

Here is the caller graph for this function:

◆ set_zero_value() [1/2]

template<typename T>
void exprtk::details::set_zero_value ( std::vector< T > & v)
inline

Definition at line 799 of file exprtk.hpp.

800 {
801 set_zero_value(v.data(),v.size());
802 }
void set_zero_value(T *data, const std::size_t size)
Definition exprtk.hpp:793

References set_zero_value().

Here is the call graph for this function:

◆ set_zero_value() [2/2]

template<typename T>
void exprtk::details::set_zero_value ( T * data,
const std::size_t size )
inline

Definition at line 793 of file exprtk.hpp.

794 {
796 }
static void process(T *base_ptr, const std::size_t size)
Definition exprtk.hpp:766

References exprtk::details::set_zero_value_impl< T >::process().

Referenced by exprtk::parser< Type >::parse_define_vector_statement(), set_zero_value(), exprtk::details::vector_init_zero_value_node< T >::value(), and exprtk::details::vector_initialisation_node< T >::value().

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

◆ string_to_real() [1/5]

template<typename T>
bool exprtk::details::string_to_real ( const std::string & s,
T & t )
inline

Definition at line 2132 of file exprtk.hpp.

2133 {
2134 const typename numeric::details::number_type<T>::type num_type;
2135
2136 char_cptr begin = s.data();
2137 char_cptr end = s.data() + s.size();
2138
2139 return string_to_real(begin, end, t, num_type);
2140 }
bool string_to_real(Iterator &itr_external, const Iterator end, T &t, numeric::details::real_type_tag)
Definition exprtk.hpp:1973

References string_to_real().

Here is the call graph for this function:

◆ string_to_real() [2/5]

template<typename Iterator>
bool exprtk::details::string_to_real ( Iterator & itr_external,
const Iterator end,
cmplx::complex_t & t,
details::numeric::details::complex_type_tag  )
inline

Definition at line 363 of file exprtk_complex_adaptor.hpp.

366 {
368 double real_component;
369 const bool result = string_to_real<Iterator,double>(itr_external,end,real_component,num_type);
370 t.c_.real(real_component);
371 return result;
372 }
std::complex< double > c_

References cmplx::complex_t::c_, nodetype_T0oT1< T, T0, T1 >::result, and string_to_real().

Here is the call graph for this function:

◆ string_to_real() [3/5]

template<typename Iterator>
bool exprtk::details::string_to_real ( Iterator & itr_external,
const Iterator end,
mpfr::mpreal & t,
numeric::details::mpfrreal_type_tag  )
inline

Definition at line 376 of file exprtk_mpfr_adaptor.hpp.

377 {
378 t = mpfr::mpreal(std::string(itr_external,end));
379 return true;
380 }

◆ string_to_real() [4/5]

template<typename Iterator>
bool exprtk::details::string_to_real ( Iterator & itr_external,
const Iterator end,
real::type & t,
details::numeric::details::my_real_type_tag  )
inline

Definition at line 351 of file exprtk_real_adaptor.hpp.

352 {
354 return string_to_real<Iterator,double>(itr_external,end,t.d_,num_type);
355 }
double d_
Definition real_type.hpp:82

References real::type::d_, and string_to_real().

Here is the call graph for this function:

◆ string_to_real() [5/5]

template<typename Iterator, typename T>
bool exprtk::details::string_to_real ( Iterator & itr_external,
const Iterator end,
T & t,
numeric::details::real_type_tag  )
inline

Definition at line 1973 of file exprtk.hpp.

1974 {
1975 if (end == itr_external) return false;
1976
1977 Iterator itr = itr_external;
1978
1979 T d = T(0);
1980
1981 const bool negative = ('-' == (*itr));
1982
1983 if (negative || '+' == (*itr))
1984 {
1985 if (end == ++itr)
1986 return false;
1987 }
1988
1989 bool instate = false;
1990
1991 static const char_t zero = static_cast<uchar_t>('0');
1992
1993 #define parse_digit_1(d) \
1994 if ((digit = (*itr - zero)) < 10) \
1995 { d = d * T(10) + digit; } \
1996 else \
1997 { break; } \
1998 if (end == ++itr) break; \
1999
2000 #define parse_digit_2(d) \
2001 if ((digit = (*itr - zero)) < 10) \
2002 { d = d * T(10) + digit; } \
2003 else \
2004 { break; } \
2005 ++itr; \
2006
2007 if ('.' != (*itr))
2008 {
2009 const Iterator curr = itr;
2010
2011 while ((end != itr) && (zero == (*itr))) ++itr;
2012
2013 while (end != itr)
2014 {
2015 unsigned int digit;
2016 parse_digit_1(d)
2017 parse_digit_1(d)
2018 parse_digit_2(d)
2019 }
2020
2021 if (curr != itr) instate = true;
2022 }
2023
2024 int exponent = 0;
2025
2026 if (end != itr)
2027 {
2028 if ('.' == (*itr))
2029 {
2030 const Iterator curr = ++itr;
2031 T tmp_d = T(0);
2032
2033 while (end != itr)
2034 {
2035 unsigned int digit;
2036 parse_digit_1(tmp_d)
2037 parse_digit_1(tmp_d)
2038 parse_digit_2(tmp_d)
2039 }
2040
2041 if (curr != itr)
2042 {
2043 instate = true;
2044
2045 const int frac_exponent = static_cast<int>(-std::distance(curr, itr));
2046
2048 return false;
2049
2050 d += compute_pow10(tmp_d, frac_exponent);
2051 }
2052
2053 #undef parse_digit_1
2054 #undef parse_digit_2
2055 }
2056
2057 if (end != itr)
2058 {
2059 typename std::iterator_traits<Iterator>::value_type c = (*itr);
2060
2061 if (('e' == c) || ('E' == c))
2062 {
2063 int exp = 0;
2064
2065 if (!details::string_to_type_converter_impl_ref(++itr, end, exp))
2066 {
2067 if (end == itr)
2068 return false;
2069 else
2070 c = (*itr);
2071 }
2072
2073 exponent += exp;
2074 }
2075
2076 if (end != itr)
2077 {
2078 if (('f' == c) || ('F' == c) || ('l' == c) || ('L' == c))
2079 ++itr;
2080 else if ('#' == c)
2081 {
2082 if (end == ++itr)
2083 return false;
2084
2085 if (('I' <= (*itr)) && ((*itr) <= 'n'))
2086 {
2087 if (('i' == (*itr)) || ('I' == (*itr)))
2088 {
2089 return parse_inf(itr, end, t, negative);
2090 }
2091 else if (('n' == (*itr)) || ('N' == (*itr)))
2092 {
2093 return parse_nan(itr, end, t);
2094 }
2095 else
2096 return false;
2097 }
2098 else
2099 return false;
2100 }
2101 else if (('I' <= (*itr)) && ((*itr) <= 'n'))
2102 {
2103 if (('i' == (*itr)) || ('I' == (*itr)))
2104 {
2105 return parse_inf(itr, end, t, negative);
2106 }
2107 else if (('n' == (*itr)) || ('N' == (*itr)))
2108 {
2109 return parse_nan(itr, end, t);
2110 }
2111 else
2112 return false;
2113 }
2114 else
2115 return false;
2116 }
2117 }
2118 }
2119
2120 if ((end != itr) || (!instate))
2121 return false;
2123 return false;
2124 else if (exponent)
2125 d = compute_pow10(d,exponent);
2126
2127 t = static_cast<T>((negative) ? -d : d);
2128 return true;
2129 }
#define parse_digit_1(d)
#define parse_digit_2(d)
complex_t exp(const complex_t v)
static bool parse_nan(Iterator &itr, const Iterator end, T &t)
Definition exprtk.hpp:1899
T compute_pow10(T d, const int exponent)
Definition exprtk.hpp:1760
bool string_to_type_converter_impl_ref(Iterator &itr, const Iterator end, T &result)
Definition exprtk.hpp:1822
static bool parse_inf(Iterator &itr, const Iterator end, T &t, const bool negative)
Definition exprtk.hpp:1932
bool valid_exponent(const int exponent, numeric::details::real_type_tag)
Definition exprtk.hpp:1966

References compute_pow10(), parse_digit_1, parse_digit_2, parse_inf(), parse_nan(), string_to_type_converter_impl_ref(), and valid_exponent().

Referenced by exprtk::lexer::helper::numeric_checker< T >::operator()(), exprtk::parser< Type >::parse_branch(), string_to_real(), string_to_real(), and string_to_real().

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

◆ string_to_type_converter_impl_ref()

template<typename Iterator, typename T>
bool exprtk::details::string_to_type_converter_impl_ref ( Iterator & itr,
const Iterator end,
T & result )
inline

Definition at line 1822 of file exprtk.hpp.

1823 {
1824 if (itr == end)
1825 return false;
1826
1827 const bool negative = ('-' == (*itr));
1828
1829 if (negative || ('+' == (*itr)))
1830 {
1831 if (end == ++itr)
1832 return false;
1833 }
1834
1835 static const uchar_t zero = static_cast<uchar_t>('0');
1836
1837 while ((end != itr) && (zero == (*itr))) ++itr;
1838
1839 bool return_result = true;
1840 unsigned int digit = 0;
1841 const std::size_t length = static_cast<std::size_t>(std::distance(itr,end));
1842
1843 if (length <= 4)
1844 {
1845 switch (length)
1846 {
1847 #ifdef exprtk_use_lut
1848
1849 #define exprtk_process_digit \
1850 if ((digit = details::digit_table[(int)*itr++]) < 10) \
1851 result = result * 10 + (digit); \
1852 else \
1853 { \
1854 return_result = false; \
1855 break; \
1856 } \
1857 exprtk_fallthrough \
1858
1859 #else
1860
1861 #define exprtk_process_digit \
1862 if ((digit = (*itr++ - zero)) < 10) \
1863 result = result * T(10) + digit; \
1864 else \
1865 { \
1866 return_result = false; \
1867 break; \
1868 } \
1869 exprtk_fallthrough \
1870
1871 #endif
1872
1873 case 4 : exprtk_process_digit
1874 case 3 : exprtk_process_digit
1875 case 2 : exprtk_process_digit
1876 case 1 : if ((digit = (*itr - zero)) >= 10)
1877 {
1878 digit = 0;
1879 return_result = false;
1880 }
1881
1882 #undef exprtk_process_digit
1883 }
1884 }
1885 else
1886 return_result = false;
1887
1888 if (length && return_result)
1889 {
1890 result = result * 10 + static_cast<T>(digit);
1891 ++itr;
1892 }
1893
1894 result = negative ? -result : result;
1895 return return_result;
1896 }
#define exprtk_process_digit

References exprtk_process_digit, and nodetype_T0oT1< T, T0, T1 >::result.

Referenced by string_to_real().

Here is the caller graph for this function:

◆ to_str() [1/3]

std::string exprtk::details::to_str ( const operator_type opr)
inline

Definition at line 5216 of file exprtk.hpp.

5217 {
5218 switch (opr)
5219 {
5220 case e_add : return "+" ;
5221 case e_sub : return "-" ;
5222 case e_mul : return "*" ;
5223 case e_div : return "/" ;
5224 case e_mod : return "%" ;
5225 case e_pow : return "^" ;
5226 case e_assign : return ":=" ;
5227 case e_addass : return "+=" ;
5228 case e_subass : return "-=" ;
5229 case e_mulass : return "*=" ;
5230 case e_divass : return "/=" ;
5231 case e_modass : return "%=" ;
5232 case e_lt : return "<" ;
5233 case e_lte : return "<=" ;
5234 case e_eq : return "==" ;
5235 case e_equal : return "=" ;
5236 case e_ne : return "!=" ;
5237 case e_nequal : return "<>" ;
5238 case e_gte : return ">=" ;
5239 case e_gt : return ">" ;
5240 case e_and : return "and" ;
5241 case e_or : return "or" ;
5242 case e_xor : return "xor" ;
5243 case e_nand : return "nand";
5244 case e_nor : return "nor" ;
5245 case e_xnor : return "xnor";
5246 default : return "N/A" ;
5247 }
5248 }

References e_add, e_addass, e_and, e_assign, e_div, e_divass, e_eq, e_equal, e_gt, e_gte, e_lt, e_lte, e_mod, e_modass, e_mul, e_mulass, e_nand, e_ne, e_nequal, e_nor, e_or, e_pow, e_sub, e_subass, e_xnor, and e_xor.

◆ to_str() [2/3]

std::string exprtk::details::to_str ( int i)
inline

◆ to_str() [3/3]

std::string exprtk::details::to_str ( std::size_t i)
inline

Definition at line 307 of file exprtk.hpp.

308 {
309 return to_str_impl(static_cast<long long int>(i));
310 }

References to_str_impl().

Here is the call graph for this function:

◆ to_str_impl()

template<typename SignedType>
std::string exprtk::details::to_str_impl ( SignedType i)
inline

Definition at line 278 of file exprtk.hpp.

279 {
280 if (0 == i)
281 return std::string("0");
282
283 std::string result;
284
285 const int sign = (i < 0) ? -1 : 1;
286
287 for ( ; i; i /= 10)
288 {
289 result += '0' + static_cast<char_t>(sign * (i % 10));
290 }
291
292 if (sign < 0)
293 {
294 result += '-';
295 }
296
297 std::reverse(result.begin(), result.end());
298
299 return result;
300 }

References nodetype_T0oT1< T, T0, T1 >::result.

Referenced by to_str(), and to_str().

Here is the caller graph for this function:

◆ valid_exponent()

template<typename T>
bool exprtk::details::valid_exponent ( const int exponent,
numeric::details::real_type_tag  )
inline

Definition at line 1966 of file exprtk.hpp.

1967 {
1968 using namespace details::numeric;
1969 return (numeric_info<T>::min_exp <= exponent) && (exponent <= numeric_info<T>::max_exp);
1970 }

Referenced by string_to_real().

Here is the caller graph for this function:

◆ value() [1/4]

template<typename T>
T exprtk::details::value ( const T & t)
inline

Definition at line 16046 of file exprtk.hpp.

16047 {
16048 return t;
16049 }

◆ value() [2/4]

template<typename T>
T exprtk::details::value ( const T * t)
inline

Definition at line 16040 of file exprtk.hpp.

16041 {
16042 return (*t);
16043 }

◆ value() [3/4]

template<typename T>
T exprtk::details::value ( details::expression_node< T > * n)
inline

Definition at line 16028 of file exprtk.hpp.

16029 {
16030 return n->value();
16031 }

References exprtk::details::expression_node< T >::value().

Referenced by exprtk::details::vararg_add_op< T >::process(), exprtk::details::vararg_mand_op< T >::process(), exprtk::details::vararg_max_op< T >::process(), exprtk::details::vararg_min_op< T >::process(), exprtk::details::vararg_mor_op< T >::process(), exprtk::details::vararg_mul_op< T >::process(), exprtk::details::vararg_multi_op< T >::process(), exprtk::details::vararg_add_op< T >::process_1(), exprtk::details::vararg_avg_op< T >::process_1(), exprtk::details::vararg_mand_op< T >::process_1(), exprtk::details::vararg_max_op< T >::process_1(), exprtk::details::vararg_min_op< T >::process_1(), exprtk::details::vararg_mor_op< T >::process_1(), exprtk::details::vararg_mul_op< T >::process_1(), exprtk::details::vararg_multi_op< T >::process_1(), exprtk::details::vararg_add_op< T >::process_2(), exprtk::details::vararg_avg_op< T >::process_2(), exprtk::details::vararg_mand_op< T >::process_2(), exprtk::details::vararg_max_op< T >::process_2(), exprtk::details::vararg_min_op< T >::process_2(), exprtk::details::vararg_mor_op< T >::process_2(), exprtk::details::vararg_mul_op< T >::process_2(), exprtk::details::vararg_multi_op< T >::process_2(), exprtk::details::vararg_add_op< T >::process_3(), exprtk::details::vararg_avg_op< T >::process_3(), exprtk::details::vararg_mand_op< T >::process_3(), exprtk::details::vararg_max_op< T >::process_3(), exprtk::details::vararg_min_op< T >::process_3(), exprtk::details::vararg_mor_op< T >::process_3(), exprtk::details::vararg_mul_op< T >::process_3(), exprtk::details::vararg_multi_op< T >::process_3(), exprtk::details::vararg_add_op< T >::process_4(), exprtk::details::vararg_avg_op< T >::process_4(), exprtk::details::vararg_mand_op< T >::process_4(), exprtk::details::vararg_max_op< T >::process_4(), exprtk::details::vararg_min_op< T >::process_4(), exprtk::details::vararg_mor_op< T >::process_4(), exprtk::details::vararg_mul_op< T >::process_4(), exprtk::details::vararg_multi_op< T >::process_4(), exprtk::details::vararg_add_op< T >::process_5(), exprtk::details::vararg_avg_op< T >::process_5(), exprtk::details::vararg_mand_op< T >::process_5(), exprtk::details::vararg_max_op< T >::process_5(), exprtk::details::vararg_min_op< T >::process_5(), exprtk::details::vararg_mor_op< T >::process_5(), exprtk::details::vararg_mul_op< T >::process_5(), exprtk::details::vararg_multi_op< T >::process_5(), exprtk::details::vararg_multi_op< T >::process_6(), exprtk::details::vararg_multi_op< T >::process_7(), and exprtk::details::vararg_multi_op< T >::process_8().

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

◆ value() [4/4]

template<typename T>
T exprtk::details::value ( std::pair< details::expression_node< T > *, bool > n)
inline

Definition at line 16034 of file exprtk.hpp.

16035 {
16036 return n.first->value();
16037 }

◆ wc_imatch()

bool exprtk::details::wc_imatch ( const std::string & wild_card,
const std::string & str )
inline

Definition at line 680 of file exprtk.hpp.

682 {
684 (
685 wild_card.data(),
686 wild_card.data() + wild_card.size(),
687 str.data(),
688 str.data() + str.size(),
689 '*', '?'
690 );
691 }
bool match_impl(const Iterator pattern_begin, const Iterator pattern_end, const Iterator data_begin, const Iterator data_end, const typename std::iterator_traits< Iterator >::value_type &zero_or_more, const typename std::iterator_traits< Iterator >::value_type &exactly_one)
Definition exprtk.hpp:605

References match_impl().

Referenced by exprtk::details::ilike_op< T >::process().

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

◆ wc_match()

bool exprtk::details::wc_match ( const std::string & wild_card,
const std::string & str )
inline

Definition at line 667 of file exprtk.hpp.

669 {
671 (
672 wild_card.data(),
673 wild_card.data() + wild_card.size(),
674 str.data(),
675 str.data() + str.size(),
676 '*', '?'
677 );
678 }

References match_impl().

Referenced by exprtk::details::like_op< T >::process().

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

Variable Documentation

◆ arithmetic_ops_list

const std::string exprtk::details::arithmetic_ops_list[]
static
Initial value:
=
{
"+", "-", "*", "/", "%", "^"
}

Definition at line 499 of file exprtk.hpp.

499 {
500 "+", "-", "*", "/", "%", "^"
501 };

Referenced by exprtk::parser< T >::settings_store::disable_all_arithmetic_ops(), exprtk::parser< T >::settings_store::disable_arithmetic_operation(), and exprtk::parser< T >::settings_store::enable_arithmetic_operation().

◆ arithmetic_ops_list_size

const std::size_t exprtk::details::arithmetic_ops_list_size = sizeof(arithmetic_ops_list) / sizeof(std::string)
static

◆ assignment_ops_list

const std::string exprtk::details::assignment_ops_list[]
static
Initial value:
=
{
":=", "+=", "-=",
"*=", "/=", "%="
}

Definition at line 506 of file exprtk.hpp.

506 {
507 ":=", "+=", "-=",
508 "*=", "/=", "%="
509 };

Referenced by exprtk::parser< T >::settings_store::disable_all_assignment_ops(), exprtk::parser< T >::settings_store::disable_assignment_operation(), and exprtk::parser< T >::settings_store::enable_assignment_operation().

◆ assignment_ops_list_size

const std::size_t exprtk::details::assignment_ops_list_size = sizeof(assignment_ops_list) / sizeof(std::string)
static

◆ base_function_list

const std::string exprtk::details::base_function_list[]
static
Initial value:
=
{
"abs", "acos", "acosh", "asin", "asinh", "atan", "atanh",
"atan2", "avg", "ceil", "clamp", "cos", "cosh", "cot",
"csc", "equal", "erf", "erfc", "exp", "expm1", "floor",
"frac", "hypot", "iclamp", "like", "log", "log10", "log2",
"logn", "log1p", "mand", "max", "min", "mod", "mor", "mul",
"ncdf", "pow", "root", "round", "roundn", "sec", "sgn",
"sin", "sinc", "sinh", "sqrt", "sum", "swap", "tan", "tanh",
"trunc", "not_equal", "inrange", "deg2grad", "deg2rad",
"rad2deg", "grad2deg"
}

Definition at line 470 of file exprtk.hpp.

470 {
471 "abs", "acos", "acosh", "asin", "asinh", "atan", "atanh",
472 "atan2", "avg", "ceil", "clamp", "cos", "cosh", "cot",
473 "csc", "equal", "erf", "erfc", "exp", "expm1", "floor",
474 "frac", "hypot", "iclamp", "like", "log", "log10", "log2",
475 "logn", "log1p", "mand", "max", "min", "mod", "mor", "mul",
476 "ncdf", "pow", "root", "round", "roundn", "sec", "sgn",
477 "sin", "sinc", "sinh", "sqrt", "sum", "swap", "tan", "tanh",
478 "trunc", "not_equal", "inrange", "deg2grad", "deg2rad",
479 "rad2deg", "grad2deg"
480 };

Referenced by exprtk::parser< T >::settings_store::disable_all_base_functions(), exprtk::parser< T >::settings_store::disable_base_function(), exprtk::parser< T >::settings_store::enable_base_function(), and is_base_function().

◆ base_function_list_size

const std::size_t exprtk::details::base_function_list_size = sizeof(base_function_list) / sizeof(std::string)
static

◆ cntrl_struct_list

const std::string exprtk::details::cntrl_struct_list[]
static
Initial value:
=
{
"if", "switch", "for", "while", "repeat", "return"
}

Definition at line 492 of file exprtk.hpp.

492 {
493 "if", "switch", "for", "while", "repeat", "return"
494 };

Referenced by exprtk::parser< T >::settings_store::disable_all_control_structures(), exprtk::parser< T >::settings_store::disable_control_structure(), exprtk::parser< T >::settings_store::enable_control_structure(), and is_control_struct().

◆ cntrl_struct_list_size

◆ inequality_ops_list

const std::string exprtk::details::inequality_ops_list[]
static
Initial value:
=
{
"<", "<=", "==",
"=", "!=", "<>",
">=", ">"
}

Definition at line 514 of file exprtk.hpp.

514 {
515 "<", "<=", "==",
516 "=", "!=", "<>",
517 ">=", ">"
518 };

Referenced by exprtk::parser< T >::settings_store::disable_all_inequality_ops(), exprtk::parser< T >::settings_store::disable_inequality_operation(), and exprtk::parser< T >::settings_store::enable_inequality_operation().

◆ inequality_ops_list_size

const std::size_t exprtk::details::inequality_ops_list_size = sizeof(inequality_ops_list) / sizeof(std::string)
static

◆ logic_ops_list

const std::string exprtk::details::logic_ops_list[]
static
Initial value:
=
{
"and", "nand", "nor", "not", "or", "xnor", "xor", "&", "|"
}

Definition at line 485 of file exprtk.hpp.

485 {
486 "and", "nand", "nor", "not", "or", "xnor", "xor", "&", "|"
487 };

Referenced by exprtk::parser< T >::settings_store::disable_all_logic_ops(), exprtk::parser< T >::settings_store::disable_logic_operation(), exprtk::parser< T >::settings_store::enable_logic_operation(), and is_logic_opr().

◆ logic_ops_list_size

const std::size_t exprtk::details::logic_ops_list_size = sizeof(logic_ops_list) / sizeof(std::string)
static

◆ nodetype_T0oT1< T, constT0 &, constT1 & >::result

template<typename T, typename T0, typename T1>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1< T, constT0 &, constT1 & >::result = expression_node<T>:: e_vov

Definition at line 17446 of file exprtk.hpp.

◆ nodetype_T0oT1< T, constT0 &, constT1 >::result

template<typename T, typename T0, typename T1>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1< T, constT0 &, constT1 >::result = expression_node<T>:: e_voc

Definition at line 17447 of file exprtk.hpp.

◆ nodetype_T0oT1< T, constT0 &, T1 & >::result

template<typename T, typename T0, typename T1>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1< T, constT0 &, T1 & >::result = expression_node<T>:: e_none

Definition at line 17453 of file exprtk.hpp.

◆ nodetype_T0oT1< T, constT0, constT1 & >::result

template<typename T, typename T0, typename T1>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1< T, constT0, constT1 & >::result = expression_node<T>:: e_cov

Definition at line 17448 of file exprtk.hpp.

◆ nodetype_T0oT1< T, constT0, constT1 >::result

template<typename T, typename T0, typename T1>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1< T, constT0, constT1 >::result = expression_node<T>:: e_none

Definition at line 17450 of file exprtk.hpp.

◆ nodetype_T0oT1< T, constT0, T1 & >::result

template<typename T, typename T0, typename T1>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1< T, constT0, T1 & >::result = expression_node<T>:: e_none

Definition at line 17452 of file exprtk.hpp.

◆ nodetype_T0oT1< T, T0 &, constT1 & >::result

template<typename T, typename T0, typename T1>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1< T, T0 &, constT1 & >::result = expression_node<T>:: e_none

Definition at line 17454 of file exprtk.hpp.

◆ nodetype_T0oT1< T, T0 &, constT1 >::result

template<typename T, typename T0, typename T1>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1< T, T0 &, constT1 >::result = expression_node<T>:: e_none

Definition at line 17451 of file exprtk.hpp.

◆ nodetype_T0oT1< T, T0 &, T1 & >::result

template<typename T, typename T0, typename T1>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1< T, T0 &, T1 & >::result = expression_node<T>:: e_none

Definition at line 17449 of file exprtk.hpp.

◆ nodetype_T0oT1< T, T0, T1 >::result

template<typename T, typename T0, typename T1>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1< T, T0, T1 >::result = expression_node<T>::e_none

Definition at line 17438 of file exprtk.hpp.

Referenced by exprtk::details::node_allocator::allocate(), exprtk::details::node_allocator::allocate(), exprtk::details::node_allocator::allocate(), exprtk::details::node_allocator::allocate(), exprtk::details::node_allocator::allocate(), exprtk::details::node_allocator::allocate(), exprtk::details::node_allocator::allocate(), exprtk::details::node_allocator::allocate(), exprtk::details::node_allocator::allocate(), exprtk::details::node_allocator::allocate(), exprtk::details::node_allocator::allocate(), exprtk::details::node_allocator::allocate(), exprtk::details::node_allocator::allocate(), exprtk::details::node_allocator::allocate(), exprtk::details::node_allocator::allocate(), exprtk::details::node_allocator::allocate(), exprtk::details::node_allocator::allocate(), exprtk::details::node_allocator::allocate_c(), exprtk::details::node_allocator::allocate_cr(), exprtk::details::node_allocator::allocate_rc(), exprtk::details::node_allocator::allocate_rr(), exprtk::details::node_allocator::allocate_rrr(), exprtk::details::node_allocator::allocate_rrrr(), exprtk::details::node_allocator::allocate_rrrrr(), exprtk::details::node_allocator::allocate_tt(), exprtk::details::node_allocator::allocate_ttt(), exprtk::details::node_allocator::allocate_tttt(), exprtk::details::node_allocator::allocate_type(), exprtk::details::node_allocator::allocate_type(), exprtk::details::node_allocator::allocate_type(), exprtk::details::node_allocator::allocate_type(), exprtk::details::node_allocator::allocate_type(), exprtk::details::numeric::details::erf_impl(), exprtk::details::numeric::details::erf_impl(), exprtk::details::T0oT1oT20T3process< T >::mode0::id(), exprtk::details::T0oT1oT20T3process< T >::mode1::id(), exprtk::details::T0oT1oT20T3process< T >::mode2::id(), exprtk::details::T0oT1oT20T3process< T >::mode3::id(), exprtk::details::T0oT1oT20T3process< T >::mode4::id(), exprtk::details::T0oT1oT2process< T >::mode0::id(), exprtk::details::T0oT1oT2process< T >::mode1::id(), parse_hex(), exprtk::details::vararg_add_op< T >::process(), exprtk::details::vararg_max_op< T >::process(), exprtk::details::vararg_min_op< T >::process(), exprtk::details::vararg_mul_op< T >::process(), exprtk::details::vec_add_op< T >::process(), exprtk::details::vec_max_op< T >::process(), exprtk::details::vec_min_op< T >::process(), exprtk::details::vec_mul_op< T >::process(), string_to_real(), string_to_type_converter_impl_ref(), to_str_impl(), exprtk::details::T0oT1< T, T0, T1 >::type(), exprtk::details::T0oT1oT2< T, T0, T1, T2, typename T0oT1oT2process< T >::mode0 >::type(), exprtk::details::T0oT1oT2_sf3< T, T0, T1, T2 >::type(), exprtk::details::T0oT1oT2_sf3ext< T, T0, T1, T2, SF3Operation >::type(), exprtk::details::T0oT1oT2oT3_sf4< T, T0, T1, T2, T3 >::type(), exprtk::details::T0oT1oT2oT3_sf4ext< T, T0, T1, T2, T3, SF4Operation >::type(), exprtk::details::assignment_node< T >::value(), exprtk::details::assignment_rebasevec_celem_node< T >::value(), exprtk::details::assignment_rebasevec_elem_node< T >::value(), exprtk::details::assignment_rebasevec_elem_rtc_node< T >::value(), exprtk::details::assignment_vec_elem_node< T >::value(), exprtk::details::assignment_vec_elem_rtc_node< T >::value(), exprtk::details::break_node< T >::value(), exprtk::details::conditional_vector_node< T >::value(), exprtk::details::for_loop_bc_node< T >::value(), exprtk::details::for_loop_bc_rtc_node< T >::value(), exprtk::details::for_loop_node< T >::value(), exprtk::details::for_loop_rtc_node< T >::value(), exprtk::details::multi_switch_node< T >::value(), exprtk::details::multimode_strfunction_node< T, StringFunction >::value(), exprtk::details::null_eq_node< T >::value(), exprtk::details::repeat_until_loop_bc_node< T >::value(), exprtk::details::repeat_until_loop_bc_rtc_node< T >::value(), exprtk::details::repeat_until_loop_node< T >::value(), exprtk::details::repeat_until_loop_rtc_node< T >::value(), exprtk::details::string_function_node< T, StringFunction >::value(), exprtk::details::while_loop_bc_node< T >::value(), exprtk::details::while_loop_bc_rtc_node< T >::value(), exprtk::details::while_loop_node< T >::value(), and exprtk::details::while_loop_rtc_node< T >::value().

◆ nodetype_T0oT1oT2< T, constT0 &, constT1 &, constT2 & >::result

template<typename T, typename T0, typename T1, typename T2>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2< T, constT0 &, constT1 &, constT2 & >::result = expression_node<T>:: e_vovov

Definition at line 17468 of file exprtk.hpp.

◆ nodetype_T0oT1oT2< T, constT0 &, constT1 &, constT2 >::result

template<typename T, typename T0, typename T1, typename T2>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2< T, constT0 &, constT1 &, constT2 >::result = expression_node<T>:: e_vovoc

Definition at line 17469 of file exprtk.hpp.

◆ nodetype_T0oT1oT2< T, constT0 &, constT1, constT2 & >::result

template<typename T, typename T0, typename T1, typename T2>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2< T, constT0 &, constT1, constT2 & >::result = expression_node<T>:: e_vocov

Definition at line 17470 of file exprtk.hpp.

◆ nodetype_T0oT1oT2< T, constT0 &, constT1, constT2 >::result

template<typename T, typename T0, typename T1, typename T2>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2< T, constT0 &, constT1, constT2 >::result = expression_node<T>:: e_none

Definition at line 17475 of file exprtk.hpp.

◆ nodetype_T0oT1oT2< T, constT0, constT1 &, constT2 & >::result

template<typename T, typename T0, typename T1, typename T2>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2< T, constT0, constT1 &, constT2 & >::result = expression_node<T>:: e_covov

Definition at line 17471 of file exprtk.hpp.

◆ nodetype_T0oT1oT2< T, constT0, constT1 &, constT2 >::result

template<typename T, typename T0, typename T1, typename T2>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2< T, constT0, constT1 &, constT2 >::result = expression_node<T>:: e_covoc

Definition at line 17472 of file exprtk.hpp.

◆ nodetype_T0oT1oT2< T, constT0, constT1, constT2 & >::result

template<typename T, typename T0, typename T1, typename T2>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2< T, constT0, constT1, constT2 & >::result = expression_node<T>:: e_none

Definition at line 17474 of file exprtk.hpp.

◆ nodetype_T0oT1oT2< T, constT0, constT1, constT2 >::result

template<typename T, typename T0, typename T1, typename T2>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2< T, constT0, constT1, constT2 >::result = expression_node<T>:: e_none

Definition at line 17473 of file exprtk.hpp.

◆ nodetype_T0oT1oT2< T, T0 &, T1 &, T2 & >::result

template<typename T, typename T0, typename T1, typename T2>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2< T, T0 &, T1 &, T2 & >::result = expression_node<T>:: e_none

Definition at line 17476 of file exprtk.hpp.

◆ nodetype_T0oT1oT2< T, T0, T1, T2 >::result

template<typename T, typename T0, typename T1, typename T2>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2< T, T0, T1, T2 >::result = expression_node<T>::e_none

Definition at line 17460 of file exprtk.hpp.

◆ nodetype_T0oT1oT2oT3< T, constT0 &, constT1 &, constT2 &, constT3 & >::result

template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2oT3< T, constT0 &, constT1 &, constT2 &, constT3 & >::result = expression_node<T>:: e_vovovov

Definition at line 17490 of file exprtk.hpp.

◆ nodetype_T0oT1oT2oT3< T, constT0 &, constT1 &, constT2 &, constT3 >::result

template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2oT3< T, constT0 &, constT1 &, constT2 &, constT3 >::result = expression_node<T>:: e_vovovoc

Definition at line 17491 of file exprtk.hpp.

◆ nodetype_T0oT1oT2oT3< T, constT0 &, constT1 &, constT2, constT3 & >::result

template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2oT3< T, constT0 &, constT1 &, constT2, constT3 & >::result = expression_node<T>:: e_vovocov

Definition at line 17492 of file exprtk.hpp.

◆ nodetype_T0oT1oT2oT3< T, constT0 &, constT1 &, constT2, constT3 >::result

template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2oT3< T, constT0 &, constT1 &, constT2, constT3 >::result = expression_node<T>:: e_none

Definition at line 17505 of file exprtk.hpp.

◆ nodetype_T0oT1oT2oT3< T, constT0 &, constT1, constT2 &, constT3 & >::result

template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2oT3< T, constT0 &, constT1, constT2 &, constT3 & >::result = expression_node<T>:: e_vocovov

Definition at line 17493 of file exprtk.hpp.

◆ nodetype_T0oT1oT2oT3< T, constT0 &, constT1, constT2 &, constT3 >::result

template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2oT3< T, constT0 &, constT1, constT2 &, constT3 >::result = expression_node<T>:: e_vocovoc

Definition at line 17496 of file exprtk.hpp.

◆ nodetype_T0oT1oT2oT3< T, constT0 &, constT1, constT2, constT3 & >::result

template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2oT3< T, constT0 &, constT1, constT2, constT3 & >::result = expression_node<T>:: e_vococov

Definition at line 17498 of file exprtk.hpp.

◆ nodetype_T0oT1oT2oT3< T, constT0 &, constT1, constT2, constT3 >::result

template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2oT3< T, constT0 &, constT1, constT2, constT3 >::result = expression_node<T>:: e_none

Definition at line 17503 of file exprtk.hpp.

◆ nodetype_T0oT1oT2oT3< T, constT0, constT1 &, constT2 &, constT3 & >::result

template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2oT3< T, constT0, constT1 &, constT2 &, constT3 & >::result = expression_node<T>:: e_covovov

Definition at line 17494 of file exprtk.hpp.

◆ nodetype_T0oT1oT2oT3< T, constT0, constT1 &, constT2 &, constT3 >::result

template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2oT3< T, constT0, constT1 &, constT2 &, constT3 >::result = expression_node<T>:: e_covovoc

Definition at line 17497 of file exprtk.hpp.

◆ nodetype_T0oT1oT2oT3< T, constT0, constT1 &, constT2, constT3 & >::result

template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2oT3< T, constT0, constT1 &, constT2, constT3 & >::result = expression_node<T>:: e_covocov

Definition at line 17495 of file exprtk.hpp.

◆ nodetype_T0oT1oT2oT3< T, constT0, constT1 &, constT2, constT3 >::result

template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2oT3< T, constT0, constT1 &, constT2, constT3 >::result = expression_node<T>:: e_none

Definition at line 17502 of file exprtk.hpp.

◆ nodetype_T0oT1oT2oT3< T, constT0, constT1, constT2 &, constT3 & >::result

template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2oT3< T, constT0, constT1, constT2 &, constT3 & >::result = expression_node<T>:: e_none

Definition at line 17504 of file exprtk.hpp.

◆ nodetype_T0oT1oT2oT3< T, constT0, constT1, constT2 &, constT3 >::result

template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2oT3< T, constT0, constT1, constT2 &, constT3 >::result = expression_node<T>:: e_none

Definition at line 17501 of file exprtk.hpp.

◆ nodetype_T0oT1oT2oT3< T, constT0, constT1, constT2, constT3 & >::result

template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2oT3< T, constT0, constT1, constT2, constT3 & >::result = expression_node<T>:: e_none

Definition at line 17500 of file exprtk.hpp.

◆ nodetype_T0oT1oT2oT3< T, constT0, constT1, constT2, constT3 >::result

template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2oT3< T, constT0, constT1, constT2, constT3 >::result = expression_node<T>:: e_none

Definition at line 17499 of file exprtk.hpp.

◆ nodetype_T0oT1oT2oT3< T, T0, T1, T2, T3 >::result

template<typename T, typename T0, typename T1, typename T2, typename T3>
const expression_node<T>::node_type exprtk::details::nodetype_T0oT1oT2oT3< T, T0, T1, T2, T3 >::result = expression_node<T>::e_none

Definition at line 17482 of file exprtk.hpp.

◆ pow10

const double exprtk::details::pow10[]
static
Initial value:
=
{
1.0,
1.0E+001, 1.0E+002, 1.0E+003, 1.0E+004,
1.0E+005, 1.0E+006, 1.0E+007, 1.0E+008,
1.0E+009, 1.0E+010, 1.0E+011, 1.0E+012,
1.0E+013, 1.0E+014, 1.0E+015, 1.0E+016
}

Definition at line 804 of file exprtk.hpp.

804 {
805 1.0,
806 1.0E+001, 1.0E+002, 1.0E+003, 1.0E+004,
807 1.0E+005, 1.0E+006, 1.0E+007, 1.0E+008,
808 1.0E+009, 1.0E+010, 1.0E+011, 1.0E+012,
809 1.0E+013, 1.0E+014, 1.0E+015, 1.0E+016
810 };

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

◆ pow10_size

const std::size_t exprtk::details::pow10_size = sizeof(pow10) / sizeof(double)
static

◆ reserved_symbols

const std::string exprtk::details::reserved_symbols[]
static
Initial value:
=
{
"abs", "acos", "acosh", "and", "asin", "asinh", "assert",
"atan", "atanh", "atan2", "avg", "break", "case", "ceil",
"clamp", "continue", "const", "cos", "cosh", "cot", "csc",
"default", "deg2grad", "deg2rad", "equal", "erf", "erfc",
"exp", "expm1", "false", "floor", "for", "frac", "grad2deg",
"hypot", "iclamp", "if", "else", "ilike", "in", "inrange",
"like", "log", "log10", "log2", "logn", "log1p", "mand",
"max", "min", "mod", "mor", "mul", "ncdf", "nand", "nor",
"not", "not_equal", "null", "or", "pow", "rad2deg",
"repeat", "return", "root", "round", "roundn", "sec", "sgn",
"shl", "shr", "sin", "sinc", "sinh", "sqrt", "sum", "swap",
"switch", "tan", "tanh", "true", "trunc", "until", "var",
"while", "xnor", "xor", "&", "|"
}

Definition at line 451 of file exprtk.hpp.

451 {
452 "abs", "acos", "acosh", "and", "asin", "asinh", "assert",
453 "atan", "atanh", "atan2", "avg", "break", "case", "ceil",
454 "clamp", "continue", "const", "cos", "cosh", "cot", "csc",
455 "default", "deg2grad", "deg2rad", "equal", "erf", "erfc",
456 "exp", "expm1", "false", "floor", "for", "frac", "grad2deg",
457 "hypot", "iclamp", "if", "else", "ilike", "in", "inrange",
458 "like", "log", "log10", "log2", "logn", "log1p", "mand",
459 "max", "min", "mod", "mor", "mul", "ncdf", "nand", "nor",
460 "not", "not_equal", "null", "or", "pow", "rad2deg",
461 "repeat", "return", "root", "round", "roundn", "sec", "sgn",
462 "shl", "shr", "sin", "sinc", "sinh", "sqrt", "sum", "swap",
463 "switch", "tan", "tanh", "true", "trunc", "until", "var",
464 "while", "xnor", "xor", "&", "|"
465 };

Referenced by exprtk::symbol_table< T >::type_store< Type, RawType >::add_impl(), is_reserved_symbol(), and exprtk::symbol_table< T >::control_block::st_data::st_data().

◆ reserved_symbols_size

const std::size_t exprtk::details::reserved_symbols_size = sizeof(reserved_symbols) / sizeof(std::string)
static

◆ reserved_words

const std::string exprtk::details::reserved_words[]
static
Initial value:
=
{
"assert", "break", "case", "continue", "const", "default",
"false", "for", "if", "else", "ilike", "in", "like", "and",
"nand", "nor", "not", "null", "or", "repeat", "return",
"shl", "shr", "swap", "switch", "true", "until", "var",
"while", "xnor", "xor", "&", "|"
}

Definition at line 440 of file exprtk.hpp.

440 {
441 "assert", "break", "case", "continue", "const", "default",
442 "false", "for", "if", "else", "ilike", "in", "like", "and",
443 "nand", "nor", "not", "null", "or", "repeat", "return",
444 "shl", "shr", "swap", "switch", "true", "until", "var",
445 "while", "xnor", "xor", "&", "|"
446 };

Referenced by exprtk::parser< Type >::init_precompilation(), is_reserved_word(), and exprtk::symbol_table< T >::control_block::st_data::st_data().

◆ reserved_words_size

const std::size_t exprtk::details::reserved_words_size = sizeof(reserved_words) / sizeof(std::string)
static

◆ string_range_node< T >::null_value

template<typename T>
std::string exprtk::details::string_range_node< T >::null_value = std::string("")

Definition at line 10500 of file exprtk.hpp.

◆ stringvar_node< T >::null_value

template<typename T>
std::string exprtk::details::stringvar_node< T >::null_value = std::string("")

Definition at line 10414 of file exprtk.hpp.

◆ stringvar_size_node< T >::null_value

template<typename T>
const std::string exprtk::details::stringvar_size_node< T >::null_value = std::string("")

Definition at line 11136 of file exprtk.hpp.

◆ variable_node< T >::null_value

template<typename T>
T exprtk::details::variable_node< T >::null_value = T(std::numeric_limits<T>::quiet_NaN())

Definition at line 8484 of file exprtk.hpp.