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

Namespaces

namespace  constant
 
namespace  loop_unroll
 
namespace  numeric
 

Classes

struct  abs_op
 
struct  acos_op
 
struct  acosh_op
 
struct  add_op
 
struct  and_op
 
struct  asin_op
 
struct  asinh_op
 
struct  asn_addassignment
 
struct  asn_assignment
 
class  assert_node
 
class  assignment_node
 
class  assignment_op_node
 
class  assignment_rebasevec_celem_node
 
class  assignment_rebasevec_celem_op_node
 
class  assignment_rebasevec_celem_op_rtc_node
 
class  assignment_rebasevec_elem_node
 
class  assignment_rebasevec_elem_op_node
 
class  assignment_rebasevec_elem_op_rtc_node
 
class  assignment_rebasevec_elem_rtc_node
 
class  assignment_string_node
 
class  assignment_string_range_node
 
class  assignment_vec_celem_op_rtc_node
 
class  assignment_vec_elem_node
 
class  assignment_vec_elem_op_node
 
class  assignment_vec_elem_op_rtc_node
 
class  assignment_vec_elem_rtc_node
 
class  assignment_vec_node
 
class  assignment_vec_op_node
 
class  assignment_vecvec_node
 
class  assignment_vecvec_op_node
 
struct  atan_op
 
struct  atanh_op
 
struct  base_operation_t
 
class  binary_ext_node
 
class  binary_node
 
class  bipow_node
 
class  bipowinv_node
 
class  boc_base_node
 
class  boc_node
 
class  bov_base_node
 
class  bov_node
 
class  break_exception
 
class  break_node
 
class  build_string
 
struct  ceil_op
 
struct  cis_match
 
class  cob_base_node
 
class  cob_node
 
struct  collector_helper
 
class  conditional_node
 
class  conditional_string_node
 
class  conditional_vector_node
 
class  cons_conditional_node
 
class  cons_conditional_str_node
 
class  const_string_range_node
 
class  continue_exception
 
class  continue_node
 
struct  cos_op
 
struct  cosh_op
 
struct  cot_op
 
class  cov_base_node
 
class  cov_node
 
struct  cs_match
 
struct  csc_op
 
struct  d2g_op
 
struct  d2r_op
 
struct  div_op
 
struct  eq_op
 
struct  equal_op
 
struct  erf_op
 
struct  erfc_op
 
struct  exp_op
 
struct  expm1_op
 
class  expression_node
 
struct  floor_op
 
class  for_loop_bc_node
 
class  for_loop_bc_rtc_node
 
class  for_loop_node
 
class  for_loop_rtc_node
 
struct  frac_op
 
class  function_N_node
 
class  function_N_node< T, IFunction, 0 >
 
struct  functor_t
 
struct  g2d_op
 
class  generic_function_node
 
class  generic_string_range_node
 
struct  gt_op
 
struct  gte_op
 
struct  ilesscompare
 
struct  ilike_op
 
struct  in_op
 
struct  inrange_op
 
class  ipow_node
 
class  ipowinv_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< const T & >
 
struct  is_ref< T & >
 
class  ivariable
 
struct  like_op
 
class  literal_node
 
struct  log10_op
 
struct  log1p_op
 
struct  log2_op
 
struct  log_op
 
struct  loop_runtime_checker
 
struct  lt_op
 
struct  lte_op
 
struct  memory_context_t
 
struct  mod_op
 
struct  mul_op
 
class  multi_switch_node
 
class  multimode_genfunction_node
 
class  multimode_strfunction_node
 
struct  nand_op
 
struct  ncdf_op
 
struct  ne_op
 
struct  neg_op
 
class  node_allocator
 
class  node_collection_destructor
 
struct  node_collector_interface
 
struct  node_depth_base
 
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 &, T1 & >
 
struct  nodetype_T0oT1< T, const T0, const T1 & >
 
struct  nodetype_T0oT1< T, const T0, const T1 >
 
struct  nodetype_T0oT1< T, const T0, T1 & >
 
struct  nodetype_T0oT1< T, T0 &, const T1 & >
 
struct  nodetype_T0oT1< T, T0 &, const T1 >
 
struct  nodetype_T0oT1< T, T0 &, 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 >
 
struct  nor_op
 
struct  notl_op
 
class  null_eq_node
 
class  null_igenfunc
 
class  null_node
 
struct  opr_base
 
struct  or_op
 
struct  param_to_str
 
struct  param_to_str< 0 >
 
struct  pos_op
 
struct  pow_op
 
class  quaternary_node
 
struct  r2d_op
 
struct  range_data_type
 
class  range_interface
 
struct  range_pack
 
class  rebasevector_celem_node
 
class  rebasevector_celem_rtc_node
 
class  rebasevector_elem_node
 
class  rebasevector_elem_rtc_node
 
class  repeat_until_loop_bc_node
 
class  repeat_until_loop_bc_rtc_node
 
class  repeat_until_loop_node
 
class  repeat_until_loop_rtc_node
 
class  return_envelope_node
 
class  return_exception
 
class  return_node
 
struct  round_op
 
class  scand_node
 
class  scor_node
 
struct  sec_op
 
struct  set_zero_value_impl
 
struct  set_zero_value_impl< double >
 
struct  set_zero_value_impl< float >
 
struct  set_zero_value_impl< long double >
 
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
 
class  sf3_node
 
class  sf3_var_node
 
class  sf3ext_type_node
 
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
 
class  sf4_node
 
class  sf4_var_node
 
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  sf_base
 
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
 
struct  sgn_op
 
struct  sin_op
 
struct  sinc_op
 
struct  sinh_op
 
class  sos_base_node
 
class  sos_node
 
class  sosos_base_node
 
class  sosos_node
 
struct  sqrt_op
 
class  str_sogens_node
 
class  str_vararg_node
 
class  str_xoxr_node
 
class  str_xrox_node
 
class  str_xroxr_node
 
class  string_base_node
 
class  string_concat_node
 
class  string_function_node
 
class  string_literal_node
 
class  string_range_node
 
class  string_size_node
 
class  stringvar_node
 
class  stringvar_size_node
 
struct  sub_op
 
class  swap_generic_node
 
class  swap_genstrings_node
 
class  swap_node
 
class  swap_string_node
 
class  swap_vecvec_node
 
class  switch_n_node
 
class  switch_node
 
class  T0oT1
 
struct  T0oT1_define
 
class  T0oT1oT2
 
struct  T0oT1oT20T3process
 
class  T0oT1oT2_base_node
 
struct  T0oT1oT2_define
 
class  T0oT1oT2_sf3
 
class  T0oT1oT2_sf3ext
 
class  T0oT1oT2oT3
 
class  T0oT1oT2oT3_base_node
 
struct  T0oT1oT2oT3_define
 
class  T0oT1oT2oT3_sf4
 
class  T0oT1oT2oT3_sf4ext
 
struct  T0oT1oT2process
 
struct  tan_op
 
struct  tanh_op
 
class  trinary_node
 
struct  trunc_op
 
class  unary_branch_node
 
class  unary_node
 
class  unary_variable_node
 
class  unary_vector_node
 
class  uv_base_node
 
class  uvouv_node
 
struct  vararg_add_op
 
struct  vararg_avg_op
 
class  vararg_function_node
 
struct  vararg_mand_op
 
struct  vararg_max_op
 
struct  vararg_min_op
 
struct  vararg_mor_op
 
struct  vararg_mul_op
 
struct  vararg_multi_op
 
class  vararg_node
 
class  vararg_varnode
 
class  variable_node
 
struct  vec_add_op
 
struct  vec_avg_op
 
class  vec_binop_valvec_node
 
class  vec_binop_vecval_node
 
class  vec_binop_vecvec_node
 
class  vec_data_store
 
struct  vec_max_op
 
struct  vec_min_op
 
struct  vec_mul_op
 
class  vector_celem_node
 
class  vector_celem_rtc_node
 
class  vector_elem_node
 
class  vector_elem_rtc_node
 
class  vector_holder
 
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  vector_init_single_constvalue_node
 
class  vector_init_single_value_node
 
class  vector_init_zero_value_node
 
class  vector_initialisation_node
 
class  vector_interface
 
class  vector_node
 
class  vector_size_node
 
class  vectorize_node
 
class  vob_base_node
 
class  vob_node
 
class  voc_base_node
 
class  voc_node
 
class  vov_base_node
 
class  vov_node
 
class  while_loop_bc_node
 
class  while_loop_bc_rtc_node
 
class  while_loop_node
 
class  while_loop_rtc_node
 
struct  xnor_op
 
struct  xor_op
 

Typedefs

typedef char char_t
 
typedef char_tchar_ptr
 
typedef char_t constchar_cptr
 
typedef unsigned char uchar_t
 
typedef uchar_tuchar_ptr
 
typedef uchar_t constuchar_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 >
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>
T axn (const T a, const T x)
 
template<typename T , std::size_t N>
T axnb (const T a, const T x, const T b)
 
template<typename T >
memory_context_t< Tmake_memory_context (vector_holder< T > &vec_holder, vec_data_store< T > &vds)
 
template<typename T >
memory_context_t< Tmake_memory_context (vector_holder< T > &vec_holder0, vector_holder< T > &vec_holder1, vec_data_store< T > &vds)
 
template<typename T >
T value (details::expression_node< T > *n)
 
template<typename T >
T value (std::pair< details::expression_node< T > *, bool > n)
 
template<typename T >
T value (const T *t)
 
template<typename T >
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)
 

Typedef Documentation

◆ _int64_t

Definition at line 101 of file exprtk.hpp.

◆ _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

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 5123 of file exprtk.hpp.

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

Function Documentation

◆ all_nodes_valid() [1/2]

bool exprtk::details::all_nodes_valid ( const Sequence< expression_node< T > *, Allocator > &  b)
inlineprivate

Definition at line 6018 of file exprtk.hpp.

6019 {
6020 for (std::size_t i = 0; i < b.size(); ++i)
6021 {
6022 if (0 == b[i]) return false;
6023 }
6024
6025 return true;
6026 }

References match_impl().

Here is the call graph for this function:

◆ all_nodes_valid() [2/2]

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

Definition at line 6005 of file exprtk.hpp.

6006 {
6007 for (std::size_t i = 0; i < N; ++i)
6008 {
6009 if (0 == b[i]) return false;
6010 }
6011
6012 return true;
6013 }

References match_impl().

Here is the call graph for this function:

◆ all_nodes_variables() [1/2]

bool exprtk::details::all_nodes_variables ( const Sequence< expression_node< T > *, Allocator > &  b)
inlineprivate

Definition at line 6045 of file exprtk.hpp.

6046 {
6047 for (std::size_t i = 0; i < b.size(); ++i)
6048 {
6049 if (0 == b[i])
6050 return false;
6051 else if (!is_variable_node(b[i]))
6052 return false;
6053 }
6054
6055 return true;
6056 }
bool is_variable_node(const expression_node< T > *node)
Definition exprtk.hpp:5806

References is_variable_node(), and match_impl().

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])
inlineprivate

Definition at line 6029 of file exprtk.hpp.

6030 {
6031 for (std::size_t i = 0; i < N; ++i)
6032 {
6033 if (0 == b[i])
6034 return false;
6035 else if (!is_variable_node(b[i]))
6036 return false;
6037 }
6038
6039 return true;
6040 }

References is_variable_node(), and match_impl().

Here is the call graph for this function:

◆ amalgamated_vecop()

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

Definition at line 5908 of file exprtk.hpp.

5909 {
5910 if (node)
5911 {
5912 switch (node->type())
5913 {
5918 default : return false;
5919 }
5920 }
5921 else
5922 return false;
5923 }
virtual node_type type() const
Definition exprtk.hpp:5728

References match_impl().

Referenced by exprtk::details::generic_function_node< T, GenericFunction >::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 
)
inlineprivate

Definition at line 11936 of file exprtk.hpp.

11937 {
11938 // a*x^n
11940 }

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

Here is the call 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 
)
inlineprivate

Definition at line 11943 of file exprtk.hpp.

11944 {
11945 // a*x^n+b
11947 }

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

Here is the call 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)
inlineprivate

Definition at line 5997 of file exprtk.hpp.

5998 {
5999 return (0 != node) &&
6000 !is_variable_node(node) &&
6001 !is_string_node (node) ;
6002 }
bool is_string_node(const expression_node< T > *node)
Definition exprtk.hpp:19118

References is_string_node(), is_variable_node(), and match_impl().

Referenced by exprtk::details::node_depth_base< Node >::collect(), exprtk::details::node_depth_base< Node >::collect(), construct_branch_pair(), construct_branch_pair(), exprtk::details::generic_function_node< T, GenericFunction >::init_branches(), exprtk::details::function_N_node< T, IFunction, N >::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 }

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 }

References match_impl().

Referenced by string_to_real().

Here is the call graph for this function:
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 
)
inlineprivate

Definition at line 6789 of file exprtk.hpp.

6790 {
6791 if (b)
6792 {
6793 branch = std::make_pair(b,branch_deletable(b));
6794 }
6795 }
bool branch_deletable(const expression_node< T > *node)
Definition exprtk.hpp:5997

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 
)
inlineprivate

Definition at line 6778 of file exprtk.hpp.

6781 {
6782 if (b && (index < N))
6783 {
6784 branch[index] = std::make_pair(b,branch_deletable(b));
6785 }
6786 }

References branch_deletable(), and match_impl().

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)
inlineprivate

Definition at line 6164 of file exprtk.hpp.

6165 {
6166 if (0 != node)
6167 {
6169 ::delete_nodes(node);
6170 }
6171 }

References match_impl().

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

Here is the call graph for this function:
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 22433 of file exprtk.hpp.

22434 {
22435 p.state_.type_check_enabled = false;
22436 }

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  
)
inlineprivate

Definition at line 5291 of file exprtk.hpp.

5291{}

Referenced by exprtk::details::vec_data_store< T >::control_block::create_data(), exprtk::expression< 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   
)
inlineprivate

Definition at line 5292 of file exprtk.hpp.

5292{}

◆ dump_vector()

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

Definition at line 5294 of file exprtk.hpp.

5294{}

◆ 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] 
)
inlineprivate

Definition at line 6129 of file exprtk.hpp.

6130 {
6131 for (std::size_t i = 0; i < N; ++i)
6132 {
6134 }
6135 }
void free_node(NodeAllocator &, expression_node< T > *&node)
Definition exprtk.hpp:6152

References free_node(), and match_impl().

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 >::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]

void exprtk::details::free_all_nodes ( NodeAllocator node_allocator,
Sequence< expression_node< T > *, Allocator > &  b 
)
inlineprivate

Definition at line 6141 of file exprtk.hpp.

6142 {
6143 for (std::size_t i = 0; i < b.size(); ++i)
6144 {
6146 }
6147
6148 b.clear();
6149 }

References free_node(), and match_impl().

Here is the call graph for this function:

◆ free_node()

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

Definition at line 6152 of file exprtk.hpp.

6153 {
6154 if ((0 == node) || is_variable_node(node) || is_string_node(node))
6155 {
6156 return;
6157 }
6158
6159 node_collection_destructor<expression_node<T> >
6160 ::delete_nodes(node);
6161 }

References is_string_node(), is_variable_node(), and match_impl().

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< T >::parse_branch(), exprtk::parser< T >::parse_define_vector_statement(), exprtk::parser< T >::expression_generator< Type >::synthesize_vob_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_boc_expression::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_cocob_expression::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_coboc_expression::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_cov_expression::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_voc_expression::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_vovoc_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovoc_expression1::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_covov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covov_expression1::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_cocov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vococ_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovoc_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovocov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covocov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovoc_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovoc_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vococov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovoc_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovocov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covocov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovoc_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovoc_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vococov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovov_expression2::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovoc_expression2::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovocov_expression2::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovov_expression2::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovov_expression2::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covocov_expression2::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovoc_expression2::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovoc_expression2::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovov_expression3::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovoc_expression3::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovocov_expression3::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovov_expression3::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovov_expression3::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covocov_expression3::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovoc_expression3::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovoc_expression3::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vococov_expression3::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovov_expression4::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovoc_expression4::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovocov_expression4::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovov_expression4::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovov_expression4::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covocov_expression4::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovoc_expression4::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovoc_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< T >::parse_assert_statement(), exprtk::parser< T >::parse_conditional_statement_02(), exprtk::parser< T >::parse_define_var_statement(), exprtk::parser< T >::parse_expression(), exprtk::parser< T >::parse_for_loop(), exprtk::parser< T >::parse_multi_switch_statement(), exprtk::parser< T >::parse_repeat_until_loop(), exprtk::parser< T >::parse_return_statement(), exprtk::parser< T >::parse_swap_statement(), exprtk::parser< T >::parse_switch_statement(), exprtk::parser< T >::parse_symbol(), exprtk::parser< T >::parse_symtab_symbol(), exprtk::parser< T >::parse_vararg_function(), exprtk::parser< T >::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< T >::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) 
)
inlineprivate

Definition at line 6798 of file exprtk.hpp.

6809 {
6810 construct_branch_pair(branch, b0, 0);
6811 construct_branch_pair(branch, b1, 1);
6812 construct_branch_pair(branch, b2, 2);
6813 construct_branch_pair(branch, b3, 3);
6814 construct_branch_pair(branch, b4, 4);
6815 construct_branch_pair(branch, b5, 5);
6816 construct_branch_pair(branch, b6, 6);
6817 construct_branch_pair(branch, b7, 7);
6818 construct_branch_pair(branch, b8, 8);
6819 construct_branch_pair(branch, b9, 9);
6820 }
void construct_branch_pair(std::pair< expression_node< T > *, bool >(&branch)[N], expression_node< T > *b, const std::size_t &index)
Definition exprtk.hpp:6778

References construct_branch_pair(), and match_impl().

Here is the call graph for this function:

◆ is_assert_node()

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

Definition at line 5991 of file exprtk.hpp.

5992 {
5993 return node && (details::expression_node<T>::e_assert == node->type());
5994 }

References match_impl(), 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

References base_function_list, base_function_list_size, and imatch().

Referenced by exprtk::parser< T >::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)
inlineprivate

Definition at line 5800 of file exprtk.hpp.

5801 {
5802 return node && (details::expression_node<T>::e_binary == node->type());
5803 }

References match_impl(), 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)
inlineprivate

Definition at line 19226 of file exprtk.hpp.

19227 {
19228 if (node)
19229 {
19230 if (is_loop_node(node))
19231 {
19232 return true;
19233 }
19234
19235 switch (node->type())
19236 {
19237 case expression_node<T>::e_conditional :
19238 case expression_node<T>::e_mswitch :
19239 case expression_node<T>::e_switch :
19240 case expression_node<T>::e_vararg : return true;
19241 default : return false;
19242 }
19243 }
19244
19245 return false;
19246 }
bool is_loop_node(const expression_node< T > *node)
Definition exprtk.hpp:19209

References is_loop_node(), and match_impl().

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)
inlineprivate

Definition at line 19094 of file exprtk.hpp.

19095 {
19096 return (0 != dynamic_cast<const boc_base_node<T>*>(node));
19097 }

References match_impl().

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 call graph for this function:
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)
inlineprivate

Definition at line 5942 of file exprtk.hpp.

5943 {
5944 return node && (details::expression_node<T>::e_break == node->type());
5945 }

References match_impl(), 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)
inlineprivate

Definition at line 19088 of file exprtk.hpp.

19089 {
19090 return (0 != dynamic_cast<const cob_base_node<T>*>(node));
19091 }

References match_impl().

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 call graph for this function:
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)
inlineprivate

Definition at line 19130 of file exprtk.hpp.

19131 {
19132 return node && (expression_node<T>::e_stringconst == node->type());
19133 }

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

Referenced by exprtk::parser< T >::expression_generator< Type >::branch_to_id(), exprtk::parser< T >::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)
inlineprivate

Definition at line 19136 of file exprtk.hpp.

19137 {
19138 return node && (expression_node<T>::e_cstringvarrng == node->type());
19139 }

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

Referenced by exprtk::parser< T >::expression_generator< Type >::branch_to_id(), exprtk::details::generic_function_node< T, GenericFunction >::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)
inlineprivate

Definition at line 5926 of file exprtk.hpp.

5927 {
5928 return node &&
5929 (
5932 );
5933 }

References match_impl(), 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< T >::parse_define_vector_statement(), exprtk::parser< T >::expression_generator< Type >::repeat_until_loop(), exprtk::parser< T >::expression_generator< Type >::synthesize_shortcircuit_expression(), exprtk::parser< T >::synthesize_vector_element(), exprtk::details::vector_init_single_constvalue_node< T >::valid(), exprtk::details::vector_init_single_value_node< T >::valid(), 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::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)
inlineprivate

Definition at line 5948 of file exprtk.hpp.

5949 {
5950 return node && (details::expression_node<T>::e_continue == node->type());
5951 }

References match_impl(), 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

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)
inlineprivate

Definition at line 19076 of file exprtk.hpp.

19077 {
19078 return (0 != dynamic_cast<const cov_base_node<T>*>(node));
19079 }

References match_impl().

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

Here is the call graph for this function:
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< T >::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)
inlineprivate

Definition at line 5770 of file exprtk.hpp.

5771 {
5772 return std::equal_to<T>()(T(0),node->value());
5773 }

References match_impl().

Referenced by exprtk::details::repeat_until_loop_node< T >::value(), exprtk::details::repeat_until_loop_rtc_node< T >::value(), exprtk::details::repeat_until_loop_bc_node< T >::value(), and exprtk::details::repeat_until_loop_bc_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.

383{ return details::numeric::details::is_false_impl(v); }

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)
inlineprivate

Definition at line 5776 of file exprtk.hpp.

5777 {
5778 return std::equal_to<T>()(T(0),node.first->value());
5779 }

References match_impl().

Here is the call graph for this function:

◆ is_function()

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

Definition at line 5960 of file exprtk.hpp.

5961 {
5962 return node && (details::expression_node<T>::e_function == node->type());
5963 }

References match_impl(), 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)
inlineprivate

Definition at line 19184 of file exprtk.hpp.

19185 {
19186 if (node)
19187 {
19188 switch (node->type())
19189 {
19200 case expression_node<T>::e_stringvararg : return true;
19201 default : return false;
19202 }
19203 }
19204
19205 return false;
19206 }

References match_impl().

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, GenericFunction >::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< T >::parse_assert_statement(), exprtk::parser< T >::parse_define_var_statement(), exprtk::parser< T >::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)
inlineprivate

Definition at line 19178 of file exprtk.hpp.

19179 {
19180 return node && (expression_node<T>::e_strgenrange == node->type());
19181 }

References match_impl(), 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().

Here is the call graph for this function:

◆ is_ivariable_node()

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

Definition at line 5812 of file exprtk.hpp.

References match_impl(), 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)
inlineprivate

Definition at line 5883 of file exprtk.hpp.

References match_impl().

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, GenericFunction >::init_branches(), exprtk::parser< T >::expression_generator< Type >::operator()(), exprtk::parser< T >::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)
inlineprivate

Definition at line 5782 of file exprtk.hpp.

5783 {
5784 return node && (details::expression_node<T>::e_constant == node->type());
5785 }

References match_impl(), 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< T >::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::size_t logic_ops_list_size
Definition exprtk.hpp:490

References imatch(), logic_ops_list, and logic_ops_list_size.

Referenced by exprtk::parser< T >::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)
inlineprivate

Definition at line 19209 of file exprtk.hpp.

19210 {
19211 if (node)
19212 {
19213 switch (node->type())
19214 {
19217 case expression_node<T>::e_while : return true;
19218 default : return false;
19219 }
19220 }
19221
19222 return false;
19223 }

References match_impl().

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)
inlineprivate

Definition at line 5794 of file exprtk.hpp.

5795 {
5796 return node && (details::expression_node<T>::e_neg == node->type());
5797 }

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

Referenced by exprtk::parser< T >::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)
inlineprivate

Definition at line 5980 of file exprtk.hpp.

5981 {
5982 if (node && is_unary_node(node))
5983 {
5984 return (details::e_neg == static_cast<const unary_node<T>*>(node)->operation());
5985 }
5986 else
5987 return false;
5988 }
bool is_unary_node(const expression_node< T > *node)
Definition exprtk.hpp:5788

References e_neg, is_unary_node(), and match_impl().

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)
inlineprivate

◆ 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)
inlineprivate

Definition at line 5871 of file exprtk.hpp.

5872 {
5873 return node && (details::expression_node<T>::e_rbveccelem == node->type());
5874 }

References match_impl(), 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)
inlineprivate

Definition at line 5865 of file exprtk.hpp.

5866 {
5867 return node && (details::expression_node<T>::e_rbveccelemrtc == node->type());
5868 }

References match_impl(), 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)
inlineprivate

Definition at line 5853 of file exprtk.hpp.

5854 {
5855 return node && (details::expression_node<T>::e_rbvecelem == node->type());
5856 }

References match_impl(), 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)
inlineprivate

Definition at line 5859 of file exprtk.hpp.

5860 {
5861 return node && (details::expression_node<T>::e_rbvecelemrtc == node->type());
5862 }

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

Referenced by exprtk::details::assignment_rebasevec_elem_op_rtc_node< T, Operation >::assignment_rebasevec_elem_op_rtc_node(), exprtk::details::assignment_rebasevec_elem_rtc_node< T >::assignment_rebasevec_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_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::size_t reserved_symbols_size
Definition exprtk.hpp:468

References imatch(), reserved_symbols, and reserved_symbols_size.

Referenced by exprtk::parser< T >::parse_define_constvar_statement(), exprtk::parser< T >::parse_define_var_statement(), and exprtk::parser< T >::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::size_t reserved_words_size
Definition exprtk.hpp:449

References imatch(), reserved_words, and reserved_words_size.

Referenced by exprtk::parser< T >::remove_replace_symbol(), and exprtk::parser< T >::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)
inlineprivate

Definition at line 5972 of file exprtk.hpp.

5973 {
5974 return node && (details::expression_node<T>::e_return == node->type());
5975 }

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

Referenced by exprtk::parser< T >::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)
inlineprivate

Definition at line 17855 of file exprtk.hpp.

17856 {
17857 switch (n->type())
17858 {
17859 case expression_node<T>::e_vovov : return true;
17860 case expression_node<T>::e_vovoc : return true;
17861 case expression_node<T>::e_vocov : return true;
17862 case expression_node<T>::e_covov : return true;
17863 case expression_node<T>::e_covoc : return true;
17864 default : return false;
17865 }
17866 }

References match_impl().

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_vob_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_boc_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)
inlineprivate

Definition at line 18033 of file exprtk.hpp.

18034 {
18035 switch (n->type())
18036 {
18037 case expression_node<T>::e_vovovov : return true;
18038 case expression_node<T>::e_vovovoc : return true;
18039 case expression_node<T>::e_vovocov : return true;
18040 case expression_node<T>::e_vocovov : return true;
18041 case expression_node<T>::e_covovov : return true;
18042 case expression_node<T>::e_covocov : return true;
18043 case expression_node<T>::e_vocovoc : return true;
18044 case expression_node<T>::e_covovoc : return true;
18045 case expression_node<T>::e_vococov : return true;
18046 default : return false;
18047 }
18048 }

References match_impl().

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)
inlineprivate

Definition at line 19142 of file exprtk.hpp.

19143 {
19144 return node && (expression_node<T>::e_strass == node->type());
19145 }

References match_impl(), 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)
inlineprivate

Definition at line 19166 of file exprtk.hpp.

19167 {
19168 return node && (expression_node<T>::e_strccondition == node->type());
19169 }

References match_impl(), 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)
inlineprivate

Definition at line 19148 of file exprtk.hpp.

19149 {
19150 return node && (expression_node<T>::e_strconcat == node->type());
19151 }

References match_impl(), 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)
inlineprivate

Definition at line 19160 of file exprtk.hpp.

19161 {
19162 return node && (expression_node<T>::e_strcondition == node->type());
19163 }

References match_impl(), 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)
inlineprivate

Definition at line 19154 of file exprtk.hpp.

19155 {
19156 return node && (expression_node<T>::e_strfunction == node->type());
19157 }

References match_impl(), 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()

template<typename T >
bool exprtk::details::is_string_node ( const expression_node< T > *  node)
inlineprivate

◆ is_string_range_node()

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

Definition at line 19124 of file exprtk.hpp.

19125 {
19126 return node && (expression_node<T>::e_stringvarrng == node->type());
19127 }

References match_impl(), 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)
inlineprivate

Definition at line 19172 of file exprtk.hpp.

19173 {
19174 return node && (expression_node<T>::e_stringvararg == node->type());
19175 }

References match_impl(), 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)
inlineprivate

Definition at line 5954 of file exprtk.hpp.

5955 {
5956 return node && (details::expression_node<T>::e_swap == node->type());
5957 }

References match_impl(), 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)
inlineprivate

Definition at line 19100 of file exprtk.hpp.

19101 {
19102 return (0 != dynamic_cast<const T0oT1oT2_base_node<T>*>(node));
19103 }

References match_impl().

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

Here is the call graph for this function:
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)
inlineprivate

Definition at line 19106 of file exprtk.hpp.

19107 {
19108 return (0 != dynamic_cast<const T0oT1oT2oT3_base_node<T>*>(node));
19109 }

References match_impl().

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

Here is the call graph for this function:
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)
inlineprivate

◆ is_true() [3/8]

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

Definition at line 5758 of file exprtk.hpp.

5759 {
5760 return std::not_equal_to<T>()(T(0),node->value());
5761 }

References match_impl().

Here is the call graph for this function:

◆ is_true() [4/8]

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

Definition at line 5752 of file exprtk.hpp.

5753 {
5754 return std::not_equal_to<float>()(0.0f,v);
5755 }

◆ is_true() [5/8]

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

Definition at line 5747 of file exprtk.hpp.

5748 {
5749 return std::not_equal_to<long double>()(0.0L,v);
5750 }

◆ is_true() [6/8]

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

Definition at line 382 of file exprtk_mpfr_adaptor.hpp.

382{ return details::numeric::details::is_true_impl (v); }

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)
inlineprivate

Definition at line 5764 of file exprtk.hpp.

5765 {
5766 return std::not_equal_to<T>()(T(0),node.first->value());
5767 }

References match_impl().

Here is the call graph for this function:

◆ is_unary_node()

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

Definition at line 5788 of file exprtk.hpp.

5789 {
5790 return node && (details::expression_node<T>::e_unary == node->type());
5791 }

References match_impl(), 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)
inlineprivate

Definition at line 19112 of file exprtk.hpp.

19113 {
19114 return (0 != dynamic_cast<const uv_base_node<T>*>(node));
19115 }

References match_impl().

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

Here is the call graph for this function:
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< T >::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)
inlineprivate

Definition at line 5966 of file exprtk.hpp.

5967 {
5968 return node && (details::expression_node<T>::e_vararg == node->type());
5969 }

References match_impl(), 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)
inlineprivate

Definition at line 5806 of file exprtk.hpp.

5807 {
5808 return node && (details::expression_node<T>::e_variable == node->type());
5809 }

References match_impl(), 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, GenericFunction >::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)
inlineprivate

Definition at line 5835 of file exprtk.hpp.

5836 {
5837 return node && (details::expression_node<T>::e_veccelem == node->type());
5838 }

References match_impl(), 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)
inlineprivate

Definition at line 5847 of file exprtk.hpp.

5848 {
5849 return node && (details::expression_node<T>::e_veccelemrtc == node->type());
5850 }

References match_impl(), 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)
inlineprivate

Definition at line 5829 of file exprtk.hpp.

5830 {
5831 return node && (details::expression_node<T>::e_vecelem == node->type());
5832 }

References match_impl(), 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)
inlineprivate

Definition at line 5841 of file exprtk.hpp.

5842 {
5843 return node && (details::expression_node<T>::e_vecelemrtc == node->type());
5844 }

References match_impl(), 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)
inlineprivate

Definition at line 5877 of file exprtk.hpp.

5878 {
5879 return node && (details::expression_node<T>::e_vector == node->type());
5880 }

References match_impl(), 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)
inlineprivate

Definition at line 19082 of file exprtk.hpp.

19083 {
19084 return (0 != dynamic_cast<const voc_base_node<T>*>(node));
19085 }

References match_impl().

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

Here is the call graph for this function:
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)
inlineprivate

Definition at line 19070 of file exprtk.hpp.

19071 {
19072 return (0 != dynamic_cast<const vov_base_node<T>*>(node));
19073 }

References match_impl().

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

Here is the call graph for this function:
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< T >::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)
inlineprivate

Definition at line 19634 of file exprtk.hpp.

19635 {
19636 #define register_op(Symbol, Type, Args) \
19637 m.insert(std::make_pair(std::string(Symbol),details::base_operation_t(Type,Args))); \
19638
19639 register_op("abs" , e_abs , 1)
19640 register_op("acos" , e_acos , 1)
19641 register_op("acosh" , e_acosh , 1)
19642 register_op("asin" , e_asin , 1)
19643 register_op("asinh" , e_asinh , 1)
19644 register_op("atan" , e_atan , 1)
19645 register_op("atanh" , e_atanh , 1)
19646 register_op("ceil" , e_ceil , 1)
19647 register_op("cos" , e_cos , 1)
19648 register_op("cosh" , e_cosh , 1)
19649 register_op("exp" , e_exp , 1)
19650 register_op("expm1" , e_expm1 , 1)
19651 register_op("floor" , e_floor , 1)
19652 register_op("log" , e_log , 1)
19653 register_op("log10" , e_log10 , 1)
19654 register_op("log2" , e_log2 , 1)
19655 register_op("log1p" , e_log1p , 1)
19656 register_op("round" , e_round , 1)
19657 register_op("sin" , e_sin , 1)
19658 register_op("sinc" , e_sinc , 1)
19659 register_op("sinh" , e_sinh , 1)
19660 register_op("sec" , e_sec , 1)
19661 register_op("csc" , e_csc , 1)
19662 register_op("sqrt" , e_sqrt , 1)
19663 register_op("tan" , e_tan , 1)
19664 register_op("tanh" , e_tanh , 1)
19665 register_op("cot" , e_cot , 1)
19666 register_op("rad2deg" , e_r2d , 1)
19667 register_op("deg2rad" , e_d2r , 1)
19668 register_op("deg2grad" , e_d2g , 1)
19669 register_op("grad2deg" , e_g2d , 1)
19670 register_op("sgn" , e_sgn , 1)
19671 register_op("not" , e_notl , 1)
19672 register_op("erf" , e_erf , 1)
19673 register_op("erfc" , e_erfc , 1)
19674 register_op("ncdf" , e_ncdf , 1)
19675 register_op("frac" , e_frac , 1)
19676 register_op("trunc" , e_trunc , 1)
19677 register_op("atan2" , e_atan2 , 2)
19678 register_op("mod" , e_mod , 2)
19679 register_op("logn" , e_logn , 2)
19680 register_op("pow" , e_pow , 2)
19681 register_op("root" , e_root , 2)
19682 register_op("roundn" , e_roundn , 2)
19683 register_op("equal" , e_equal , 2)
19684 register_op("not_equal" , e_nequal , 2)
19685 register_op("hypot" , e_hypot , 2)
19686 register_op("shr" , e_shr , 2)
19687 register_op("shl" , e_shl , 2)
19688 register_op("clamp" , e_clamp , 3)
19689 register_op("iclamp" , e_iclamp , 3)
19690 register_op("inrange" , e_inrange , 3)
19691 #undef register_op
19692 }
#define register_op(Symbol, Type, Args)
bool not_equal(const T &t0, const T &t1, const T &epsilon=T(0.000000000001))
T clamp(const T &l, const T &v, const T &u)

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 
)
inlineprivate

Definition at line 13637 of file exprtk.hpp.

13639 {
13640 memory_context_t<T> result_ctxt;
13641
13642 result_ctxt.temp_ = (vec_holder.rebaseable()) ?
13643 new vector_holder<T>(vec_holder,vds) :
13644 new vector_holder<T>(vds) ;
13645
13646 result_ctxt.temp_vec_node_ = new vector_node<T>(vds,result_ctxt.temp_);
13647
13648 return result_ctxt;
13649 }

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

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 
)
inlineprivate

Definition at line 13652 of file exprtk.hpp.

13655 {
13656 memory_context_t<T> result_ctxt;
13657
13658 if (!vec_holder0.rebaseable() && !vec_holder1.rebaseable())
13659 result_ctxt.temp_ = new vector_holder<T>(vds);
13660 else if (vec_holder0.rebaseable() && !vec_holder1.rebaseable())
13661 result_ctxt.temp_ = new vector_holder<T>(vec_holder0,vds);
13662 else if (!vec_holder0.rebaseable() && vec_holder1.rebaseable())
13663 result_ctxt.temp_ = new vector_holder<T>(vec_holder1,vds);
13664 else
13665 {
13666 result_ctxt.temp_ = (vec_holder0.base_size() >= vec_holder1.base_size()) ?
13667 new vector_holder<T>(vec_holder0, vds) :
13668 new vector_holder<T>(vec_holder1, vds) ;
13669 }
13670
13671 result_ctxt.temp_vec_node_ = new vector_node<T>(vds,result_ctxt.temp_);
13672
13673 return result_ctxt;
13674 }
std::size_t base_size() const
Definition exprtk.hpp:6700

References match_impl(), and exprtk::details::memory_context_t< T >::temp_.

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 exprtk::details::numeric::details::abs_impl(), exprtk::details::numeric::details::abs_impl(), exprtk::details::vector_elem_rtc_node< T >::access_vector(), exprtk::details::vector_celem_rtc_node< T >::access_vector(), exprtk::details::rebasevector_elem_rtc_node< T >::access_vector(), exprtk::details::rebasevector_celem_rtc_node< T >::access_vector(), exprtk::details::numeric::details::acosh_impl(), all_nodes_valid(), all_nodes_valid(), all_nodes_variables(), all_nodes_variables(), exprtk::details::T0oT1< T, T0, T1 >::allocate(), exprtk::details::T0oT1oT2_sf3ext< T, T0, T1, T2, SF3Operation >::allocate(), exprtk::details::T0oT1oT2< T, T0, T1, T2, ProcessMode >::allocate(), exprtk::details::T0oT1oT2oT3_sf4ext< T, T0, T1, T2, T3, SF4Operation >::allocate(), exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::allocate(), exprtk::details::T0oT1oT2oT3_sf4< T, T0, T1, T2, T3 >::allocate(), exprtk::details::T0oT1oT2_sf3< T, T0, T1, T2 >::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_rrrr(), exprtk::details::node_allocator::allocate_rrrrr(), 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(), amalgamated_vecop(), exprtk::details::numeric::details::and_impl(), exprtk::details::numeric::details::and_impl(), exprtk::details::numeric::details::and_impl(), exprtk::details::numeric::details::and_impl(), exprtk::details::numeric::details::asinh_impl(), exprtk::details::assert_node< T >::assert_node(), exprtk::details::assignment_op_node< T, Operation >::assignment_op_node(), 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::details::assignment_rebasevec_celem_op_rtc_node< T, Operation >::assignment_rebasevec_celem_op_rtc_node(), 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::details::assignment_rebasevec_elem_op_rtc_node< T, Operation >::assignment_rebasevec_elem_op_rtc_node(), exprtk::details::assignment_rebasevec_elem_rtc_node< T >::assignment_rebasevec_elem_rtc_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::assignment_vec_celem_op_rtc_node< T, Operation >::assignment_vec_celem_op_rtc_node(), 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::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::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::details::numeric::details::atanh_impl(), exprtk::details::binary_ext_node< T, Operation >::binary_ext_node(), exprtk::details::binary_node< T >::binary_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::binary_node< T >::branch(), exprtk::details::binary_ext_node< T, Operation >::branch(), branch_deletable(), exprtk::details::break_node< T >::break_node(), exprtk::details::loop_runtime_checker::check(), exprtk::rtl::io::file::close< T >::close(), exprtk::details::cob_node< T, Operation >::cob_node(), exprtk::details::node_depth_base< Node >::collect(), exprtk::details::node_depth_base< Node >::collect(), exprtk::details::node_depth_base< Node >::collect(), exprtk::details::node_depth_base< Node >::collect(), exprtk::details::node_depth_base< Node >::collect(), exprtk::details::node_depth_base< Node >::collect(), exprtk::details::node_depth_base< Node >::collect(), exprtk::details::node_collection_destructor< Node >::collect_nodes(), exprtk::details::null_eq_node< T >::collect_nodes(), exprtk::details::unary_node< T >::collect_nodes(), exprtk::details::binary_node< T >::collect_nodes(), exprtk::details::binary_ext_node< T, Operation >::collect_nodes(), exprtk::details::trinary_node< T >::collect_nodes(), exprtk::details::quaternary_node< T >::collect_nodes(), exprtk::details::conditional_node< T >::collect_nodes(), exprtk::details::cons_conditional_node< T >::collect_nodes(), exprtk::details::break_node< T >::collect_nodes(), exprtk::details::while_loop_node< T >::collect_nodes(), exprtk::details::repeat_until_loop_node< T >::collect_nodes(), exprtk::details::for_loop_node< T >::collect_nodes(), exprtk::details::switch_node< T >::collect_nodes(), exprtk::details::multi_switch_node< T >::collect_nodes(), exprtk::details::vector_elem_node< T >::collect_nodes(), exprtk::details::vector_celem_node< T >::collect_nodes(), exprtk::details::vector_elem_rtc_node< T >::collect_nodes(), exprtk::details::vector_celem_rtc_node< T >::collect_nodes(), exprtk::details::rebasevector_elem_node< T >::collect_nodes(), exprtk::details::rebasevector_celem_node< T >::collect_nodes(), exprtk::details::rebasevector_elem_rtc_node< T >::collect_nodes(), exprtk::details::rebasevector_celem_rtc_node< T >::collect_nodes(), exprtk::details::vector_initialisation_node< T >::collect_nodes(), exprtk::details::vector_init_zero_value_node< T >::collect_nodes(), exprtk::details::vector_init_single_constvalue_node< T >::collect_nodes(), exprtk::details::vector_init_single_value_node< T >::collect_nodes(), exprtk::details::vector_init_iota_constconst_node< T >::collect_nodes(), exprtk::details::vector_init_iota_constnconst_node< T >::collect_nodes(), exprtk::details::vector_init_iota_nconstconst_node< T >::collect_nodes(), exprtk::details::vector_init_iota_nconstnconst_node< T >::collect_nodes(), exprtk::details::generic_string_range_node< T >::collect_nodes(), exprtk::details::string_size_node< T >::collect_nodes(), exprtk::details::str_vararg_node< T, VarArgFunction >::collect_nodes(), exprtk::details::assert_node< T >::collect_nodes(), exprtk::details::vararg_node< T, VarArgFunction >::collect_nodes(), exprtk::details::vectorize_node< T, VecFunction >::collect_nodes(), exprtk::details::conditional_vector_node< T >::collect_nodes(), exprtk::details::function_N_node< T, IFunction, N >::collect_nodes(), exprtk::details::vararg_function_node< T, VarArgFunction >::collect_nodes(), exprtk::details::generic_function_node< T, GenericFunction >::collect_nodes(), exprtk::details::return_envelope_node< T >::collect_nodes(), exprtk::details::unary_branch_node< T, Operation >::collect_nodes(), exprtk::details::vob_node< T, Operation >::collect_nodes(), exprtk::details::bov_node< T, Operation >::collect_nodes(), exprtk::details::cob_node< T, Operation >::collect_nodes(), exprtk::details::boc_node< T, Operation >::collect_nodes(), exprtk::details::bipow_node< T, PowOp >::collect_nodes(), exprtk::details::bipowinv_node< T, PowOp >::collect_nodes(), exprtk::details::collector_helper< T >::collection_pass(), exprtk::details::node_depth_base< Node >::compute_node_depth(), exprtk::details::node_depth_base< Node >::compute_node_depth(), exprtk::details::node_depth_base< Node >::compute_node_depth(), exprtk::details::node_depth_base< Node >::compute_node_depth(), exprtk::details::node_depth_base< Node >::compute_node_depth(), exprtk::details::node_depth_base< Node >::compute_node_depth(), exprtk::details::node_depth_base< Node >::compute_node_depth(), compute_pow10(), exprtk::details::conditional_node< T >::conditional_node(), exprtk::details::conditional_string_node< T >::conditional_string_node(), exprtk::details::conditional_vector_node< T >::conditional_vector_node(), exprtk::details::cons_conditional_node< T >::cons_conditional_node(), exprtk::details::cons_conditional_str_node< T >::cons_conditional_str_node(), exprtk::details::numeric::details::const_e_impl(), exprtk::details::numeric::details::const_pi_impl(), construct_branch_pair(), exprtk::details::numeric::details::cot_impl(), exprtk::details::vec_data_store< T >::control_block::create(), exprtk::details::vec_data_store< T >::control_block::create_data(), exprtk::details::numeric::details::csc_impl(), exprtk::details::numeric::details::d2g_impl(), exprtk::details::numeric::details::d2g_impl(), exprtk::details::numeric::details::d2r_impl(), exprtk::details::node_collection_destructor< Node >::delete_nodes(), exprtk::details::vec_data_store< T >::control_block::destroy(), destroy_node(), exprtk::details::vec_data_store< T >::dump(), exprtk::rtl::io::file::eof< T >::eof(), exprtk::details::numeric::details::equal_impl(), exprtk::details::numeric::details::equal_impl(), exprtk::details::numeric::details::equal_impl(), exprtk::details::numeric::details::equal_impl(), exprtk::details::numeric::details::erf_impl(), exprtk::details::numeric::details::erf_impl(), exprtk::details::numeric::details::erfc_impl(), exprtk::details::numeric::details::erfc_impl(), exprtk::details::numeric::details::erfc_impl(), exprtk::details::function_N_node< T, IFunction, N >::invoke< T_, ParamCount >::execute(), exprtk::details::function_N_node< T, IFunction, N >::evaluate_branches< T_, BranchCount >::execute(), exprtk::details::numeric::details::expm1_impl(), exprtk::details::numeric::details::expm1_impl(), exprtk::details::numeric::details::expm1_impl(), exprtk::details::numeric::details::expm1_impl(), exprtk::details::for_loop_bc_node< T >::for_loop_bc_node(), exprtk::details::for_loop_bc_rtc_node< T >::for_loop_bc_rtc_node(), exprtk::details::for_loop_node< T >::for_loop_node(), exprtk::details::for_loop_rtc_node< T >::for_loop_rtc_node(), exprtk::details::numeric::details::frac_impl(), free_all_nodes(), free_all_nodes(), free_node(), exprtk::details::function_N_node< T, IFunction, 0 >::function_N_node(), exprtk::details::numeric::details::g2d_impl(), exprtk::details::numeric::details::g2d_impl(), exprtk::parser< T >::expression_generator< Type >::generic_function_call(), exprtk::details::generic_string_range_node< T >::generic_string_range_node(), exprtk::rtl::io::file::getline< T >::getline(), exprtk::details::numeric::details::hypot_impl(), exprtk::details::T0oT1oT2< T, T0, T1, T2, ProcessMode >::id(), exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::id(), exprtk::details::generic_function_node< T, GenericFunction >::init_branches(), exprtk::details::function_N_node< T, IFunction, N >::init_branches(), init_branches(), is_assert_node(), is_binary_node(), is_block_node(), is_boc_node(), is_break_node(), is_cob_node(), is_const_string_node(), is_const_string_range_node(), is_constant_node(), is_continue_node(), is_cov_node(), is_false(), is_false(), exprtk::details::numeric::details::is_false_impl(), is_function(), is_generally_string_node(), is_genricstring_range_node(), exprtk::details::numeric::details::is_integer_impl(), exprtk::details::numeric::details::is_integer_impl(), exprtk::details::numeric::details::is_integer_impl(), is_ivariable_node(), is_ivector_node(), is_literal_node(), is_loop_node(), is_neg_unary_node(), is_negate_node(), is_null_node(), is_rebasevector_celem_node(), is_rebasevector_celem_rtc_node(), is_rebasevector_elem_node(), is_rebasevector_elem_rtc_node(), is_return_node(), is_sf3ext_node(), is_sf4ext_node(), is_string_assignment_node(), is_string_ccondition_node(), is_string_concat_node(), is_string_condition_node(), is_string_function_node(), is_string_node(), is_string_range_node(), is_string_vararg_node(), is_swap_node(), is_t0ot1ot2_node(), is_t0ot1ot2ot3_node(), is_true(), is_true(), exprtk::details::numeric::details::is_true_impl(), is_unary_node(), is_uv_node(), is_vararg_node(), is_variable_node(), is_vector_celem_node(), is_vector_celem_rtc_node(), is_vector_elem_node(), is_vector_elem_rtc_node(), is_vector_node(), is_voc_node(), is_vov_node(), exprtk::details::numeric::details::log1p_impl(), exprtk::details::numeric::details::log1p_impl(), exprtk::details::numeric::details::log1p_impl(), exprtk::details::numeric::details::log1p_impl(), exprtk::details::numeric::details::log2_impl(), exprtk::details::numeric::details::log2_impl(), exprtk::details::numeric::details::logn_impl(), exprtk::details::loop_runtime_checker::loop_runtime_checker(), make_memory_context(), make_memory_context(), exprtk::details::vec_data_store< T >::match_sizes(), exprtk::details::node_depth_base< Node >::max_node_depth(), exprtk::details::node_depth_base< Node >::max_node_depth(), exprtk::details::node_depth_base< Node >::max_node_depth(), exprtk::details::vec_data_store< T >::min_size(), exprtk::details::multi_switch_node< T >::multi_switch_node(), exprtk::details::numeric::details::nand_impl(), exprtk::details::numeric::details::nand_impl(), exprtk::details::numeric::details::nand_impl(), exprtk::details::numeric::details::nand_impl(), exprtk::details::numeric::details::ncdf_impl(), exprtk::details::numeric::details::ncdf_impl(), exprtk::details::numeric::details::ncdf_impl(), exprtk::details::numeric::details::ncdf_impl(), exprtk::details::numeric::details::nequal_impl(), exprtk::details::numeric::details::nequal_impl(), exprtk::details::numeric::details::nequal_impl(), exprtk::details::numeric::details::nequal_impl(), exprtk::details::numeric::details::nequal_impl(), exprtk::details::binary_node< T >::node_depth(), exprtk::details::binary_ext_node< T, Operation >::node_depth(), exprtk::details::trinary_node< T >::node_depth(), exprtk::details::quaternary_node< T >::node_depth(), exprtk::details::function_N_node< T, IFunction, N >::node_depth(), exprtk::details::numeric::details::nor_impl(), exprtk::details::numeric::details::nor_impl(), exprtk::details::numeric::details::nor_impl(), exprtk::details::numeric::details::nor_impl(), exprtk::details::numeric::details::notl_impl(), exprtk::details::numeric::details::notl_impl(), exprtk::details::null_eq_node< T >::null_eq_node(), exprtk::rtl::io::file::open< T >::open(), exprtk::details::range_pack< T >::operator()(), exprtk::details::function_N_node< T, IFunction, 0 >::operator<(), exprtk::details::function_N_node< T, IFunction, N >::operator<(), exprtk::details::generic_function_node< T, GenericFunction >::operator<(), exprtk::details::string_function_node< T, StringFunction >::operator<(), exprtk::details::vararg_function_node< T, VarArgFunction >::operator<(), exprtk::details::vec_data_store< T >::operator=(), exprtk::details::numeric::details::or_impl(), exprtk::details::numeric::details::or_impl(), exprtk::details::numeric::details::or_impl(), exprtk::details::numeric::details::or_impl(), exprtk::parser< T >::parse_assert_statement(), parse_inf(), parse_nan(), exprtk::details::vararg_function_node< T, VarArgFunction >::populate_value_list(), exprtk::details::generic_function_node< T, GenericFunction >::populate_value_list(), exprtk::details::return_node< T >::prepare_typestore_list(), exprtk::details::vec_add_op< T >::process(), exprtk::details::vec_mul_op< T >::process(), exprtk::details::vec_avg_op< T >::process(), exprtk::details::vec_min_op< T >::process(), exprtk::details::vec_max_op< T >::process(), exprtk::details::numeric::process(), exprtk::details::numeric::process(), exprtk::details::vararg_add_op< T >::process(), exprtk::details::vararg_mul_op< T >::process(), exprtk::details::vararg_avg_op< T >::process(), exprtk::details::vararg_min_op< T >::process(), exprtk::details::vararg_max_op< T >::process(), exprtk::details::vararg_mand_op< T >::process(), exprtk::details::vararg_mor_op< T >::process(), exprtk::details::vararg_multi_op< T >::process(), exprtk::details::inrange_op< T >::process(), exprtk::details::lt_op< T >::process(), exprtk::details::lte_op< T >::process(), exprtk::details::gt_op< T >::process(), exprtk::details::gte_op< T >::process(), exprtk::details::eq_op< T >::process(), exprtk::details::equal_op< T >::process(), exprtk::details::ne_op< T >::process(), exprtk::details::in_op< T >::process(), exprtk::details::like_op< T >::process(), exprtk::details::ilike_op< T >::process(), exprtk::details::collector_helper< T >::resolve_as_vector::process(), exprtk::details::inrange_op< T >::process(), exprtk::details::T0oT1oT2process< T >::mode0::process(), exprtk::details::T0oT1oT2process< T >::mode1::process(), exprtk::details::T0oT1oT20T3process< T >::mode0::process(), exprtk::details::T0oT1oT20T3process< T >::mode1::process(), exprtk::details::T0oT1oT20T3process< T >::mode2::process(), exprtk::details::T0oT1oT20T3process< T >::mode3::process(), exprtk::details::T0oT1oT20T3process< T >::mode4::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_bov_expression::process(), exprtk::details::set_zero_value_impl< T >::process(), exprtk::details::lt_op< T >::process(), exprtk::details::lte_op< T >::process(), exprtk::details::gt_op< T >::process(), exprtk::details::gte_op< T >::process(), exprtk::details::eq_op< T >::process(), exprtk::details::ne_op< T >::process(), exprtk::details::and_op< T >::process(), exprtk::details::nand_op< T >::process(), exprtk::details::or_op< T >::process(), exprtk::details::nor_op< T >::process(), exprtk::details::vararg_add_op< T >::process_1(), exprtk::details::vararg_mul_op< T >::process_1(), exprtk::details::vararg_avg_op< T >::process_1(), exprtk::details::vararg_min_op< T >::process_1(), exprtk::details::vararg_max_op< T >::process_1(), exprtk::details::vararg_mand_op< T >::process_1(), exprtk::details::vararg_mor_op< T >::process_1(), exprtk::details::vararg_multi_op< T >::process_1(), exprtk::details::vararg_add_op< T >::process_2(), exprtk::details::vararg_mul_op< T >::process_2(), exprtk::details::vararg_avg_op< T >::process_2(), exprtk::details::vararg_min_op< T >::process_2(), exprtk::details::vararg_max_op< T >::process_2(), exprtk::details::vararg_mand_op< T >::process_2(), exprtk::details::vararg_mor_op< T >::process_2(), exprtk::details::vararg_multi_op< T >::process_2(), exprtk::details::vararg_add_op< T >::process_3(), exprtk::details::vararg_mul_op< T >::process_3(), exprtk::details::vararg_avg_op< T >::process_3(), exprtk::details::vararg_min_op< T >::process_3(), exprtk::details::vararg_max_op< T >::process_3(), exprtk::details::vararg_mand_op< T >::process_3(), exprtk::details::vararg_mor_op< T >::process_3(), exprtk::details::vararg_multi_op< T >::process_3(), exprtk::details::vararg_add_op< T >::process_4(), exprtk::details::vararg_mul_op< T >::process_4(), exprtk::details::vararg_avg_op< T >::process_4(), exprtk::details::vararg_min_op< T >::process_4(), exprtk::details::vararg_max_op< T >::process_4(), exprtk::details::vararg_mand_op< T >::process_4(), exprtk::details::vararg_mor_op< T >::process_4(), exprtk::details::vararg_multi_op< T >::process_4(), exprtk::details::vararg_add_op< T >::process_5(), exprtk::details::vararg_mul_op< T >::process_5(), exprtk::details::vararg_avg_op< T >::process_5(), exprtk::details::vararg_min_op< T >::process_5(), exprtk::details::vararg_max_op< T >::process_5(), exprtk::details::vararg_mand_op< T >::process_5(), exprtk::details::vararg_mor_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(), exprtk::details::vararg_multi_op< T >::process_8(), exprtk::details::numeric::details::process_impl(), exprtk::details::numeric::details::process_impl(), exprtk::details::numeric::details::process_impl(), exprtk::details::quaternary_node< T >::quaternary_node(), exprtk::details::numeric::details::r2d_impl(), exprtk::rtl::io::file::read< T >::read(), 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_bc_node< T >::repeat_until_loop_bc_node(), exprtk::details::repeat_until_loop_bc_rtc_node< T >::repeat_until_loop_bc_rtc_node(), exprtk::details::repeat_until_loop_node< T >::repeat_until_loop_node(), exprtk::details::repeat_until_loop_rtc_node< T >::repeat_until_loop_rtc_node(), exprtk::details::loop_runtime_checker::reset(), exprtk::details::vector_holder< Type >::resizable_vector_impl::resizable_vector_impl(), exprtk::details::numeric::fast_exp< T, 10 >::result(), exprtk::details::numeric::fast_exp< T, 9 >::result(), exprtk::details::numeric::fast_exp< T, 8 >::result(), exprtk::details::numeric::fast_exp< T, 7 >::result(), exprtk::details::numeric::fast_exp< T, 6 >::result(), exprtk::details::numeric::fast_exp< T, 5 >::result(), exprtk::details::numeric::fast_exp< T, 4 >::result(), exprtk::details::numeric::fast_exp< T, 3 >::result(), exprtk::details::numeric::fast_exp< T, 2 >::result(), exprtk::details::numeric::fast_exp< T, 1 >::result(), exprtk::details::numeric::fast_exp< T, 0 >::result(), exprtk::details::numeric::fast_exp< T, N >::result(), exprtk::details::return_envelope_node< T >::return_envelope_node(), exprtk::details::return_node< T >::return_node(), exprtk::details::numeric::details::root_impl(), exprtk::details::numeric::details::root_impl(), exprtk::details::numeric::details::root_impl(), exprtk::details::numeric::details::root_impl(), exprtk::details::numeric::details::root_impl(), exprtk::details::numeric::details::round_impl(), exprtk::details::numeric::details::round_impl(), exprtk::details::numeric::details::round_impl(), exprtk::details::numeric::details::roundn_impl(), exprtk::details::numeric::details::roundn_impl(), exprtk::details::numeric::details::roundn_impl(), exprtk::details::numeric::details::roundn_impl(), exprtk::details::scand_node< T >::scand_node(), exprtk::details::scor_node< T >::scor_node(), exprtk::details::numeric::details::sec_impl(), sequence_match(), exprtk::details::cob_node< T, Operation >::set_c(), exprtk::details::boc_node< T, Operation >::set_c(), exprtk::details::numeric::details::sgn_impl(), exprtk::details::numeric::details::sgn_impl(), exprtk::details::numeric::details::sgn_impl(), exprtk::details::numeric::details::sgn_impl(), exprtk::details::numeric::details::sgn_impl(), exprtk::details::numeric::details::shl_impl(), exprtk::details::numeric::details::shl_impl(), exprtk::details::numeric::details::shl_impl(), exprtk::details::numeric::details::shl_impl(), exprtk::details::numeric::details::shr_impl(), exprtk::details::numeric::details::shr_impl(), exprtk::details::numeric::details::shr_impl(), exprtk::details::numeric::details::shr_impl(), exprtk::details::numeric::details::sinc_impl(), exprtk::details::numeric::details::sinc_impl(), exprtk::details::numeric::details::sinc_impl(), exprtk::details::numeric::details::sinc_impl(), 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::parser< T >::expression_generator< Type >::string_function_call(), exprtk::details::string_function_node< T, StringFunction >::string_function_node(), exprtk::details::string_size_node< T >::string_size_node(), string_to_real(), string_to_real(), string_to_real(), string_to_real(), string_to_type_converter_impl_ref(), exprtk::details::swap_genstrings_node< T >::swap_genstrings_node(), exprtk::details::swap_string_node< T >::swap_string_node(), exprtk::details::swap_vecvec_node< T >::swap_vecvec_node(), exprtk::details::switch_node< T >::switch_node(), exprtk::parser< T >::expression_generator< Type >::synthesize_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_uvouv_expression(), to_str(), exprtk::details::trinary_node< T >::trinary_node(), exprtk::details::numeric::details::trunc_impl(), exprtk::details::unary_node< T >::unary_node(), exprtk::details::unary_vector_node< T, Operation >::unary_vector_node(), exprtk::details::vector_init_single_constvalue_node< T >::valid(), valid_exponent(), exprtk::details::null_eq_node< T >::value(), exprtk::details::binary_node< T >::value(), exprtk::details::binary_ext_node< T, Operation >::value(), exprtk::details::trinary_node< T >::value(), exprtk::details::break_node< T >::value(), exprtk::details::while_loop_node< T >::value(), exprtk::details::while_loop_rtc_node< T >::value(), exprtk::details::repeat_until_loop_node< T >::value(), exprtk::details::repeat_until_loop_rtc_node< T >::value(), exprtk::details::for_loop_node< T >::value(), exprtk::details::for_loop_rtc_node< T >::value(), exprtk::details::while_loop_bc_node< T >::value(), exprtk::details::while_loop_bc_rtc_node< T >::value(), exprtk::details::repeat_until_loop_bc_node< T >::value(), exprtk::details::repeat_until_loop_bc_rtc_node< T >::value(), exprtk::details::for_loop_bc_node< T >::value(), exprtk::details::for_loop_bc_rtc_node< T >::value(), exprtk::details::switch_node< T >::value(), exprtk::details::multi_switch_node< T >::value(), exprtk::details::vector_size_node< T >::value(), exprtk::details::vector_initialisation_node< T >::value(), exprtk::details::vector_init_single_constvalue_node< T >::value(), exprtk::details::vector_init_single_value_node< T >::value(), exprtk::details::vector_init_iota_constconst_node< T >::value(), exprtk::details::vector_init_iota_constnconst_node< T >::value(), exprtk::details::vector_init_iota_nconstconst_node< T >::value(), exprtk::details::vector_init_iota_nconstnconst_node< T >::value(), exprtk::details::swap_vecvec_node< T >::value(), exprtk::details::generic_string_range_node< T >::value(), exprtk::details::string_concat_node< T >::value(), exprtk::details::swap_genstrings_node< T >::value(), exprtk::details::stringvar_size_node< T >::value(), exprtk::details::string_size_node< T >::value(), exprtk::details::assignment_string_node< T, AssignmentProcess >::value(), exprtk::details::assignment_string_range_node< T, AssignmentProcess >::value(), exprtk::details::conditional_string_node< T >::value(), exprtk::details::cons_conditional_str_node< T >::value(), exprtk::details::assert_node< T >::value(), exprtk::details::sf3_node< T, SpecialFunction >::value(), exprtk::details::sf4_node< T, SpecialFunction >::value(), exprtk::details::assignment_node< T >::value(), exprtk::details::assignment_vec_elem_node< T >::value(), exprtk::details::assignment_vec_elem_rtc_node< T >::value(), exprtk::details::assignment_rebasevec_elem_node< T >::value(), exprtk::details::assignment_rebasevec_elem_rtc_node< T >::value(), exprtk::details::assignment_rebasevec_celem_node< T >::value(), exprtk::details::assignment_vec_node< T >::value(), exprtk::details::assignment_vecvec_node< T >::value(), exprtk::details::assignment_op_node< T, Operation >::value(), exprtk::details::assignment_vec_elem_op_node< T, Operation >::value(), exprtk::details::assignment_vec_elem_op_rtc_node< T, Operation >::value(), exprtk::details::assignment_vec_celem_op_rtc_node< T, Operation >::value(), exprtk::details::assignment_rebasevec_elem_op_node< T, Operation >::value(), exprtk::details::assignment_rebasevec_celem_op_node< T, Operation >::value(), exprtk::details::assignment_rebasevec_elem_op_rtc_node< T, Operation >::value(), exprtk::details::assignment_rebasevec_celem_op_rtc_node< T, Operation >::value(), exprtk::details::assignment_vec_op_node< T, Operation >::value(), exprtk::details::assignment_vecvec_op_node< T, Operation >::value(), exprtk::details::vec_binop_vecvec_node< T, Operation >::value(), exprtk::details::vec_binop_vecval_node< T, Operation >::value(), exprtk::details::vec_binop_valvec_node< T, Operation >::value(), exprtk::details::unary_vector_node< T, Operation >::value(), exprtk::details::conditional_vector_node< T >::value(), exprtk::details::scand_node< T >::value(), exprtk::details::scor_node< T >::value(), exprtk::details::function_N_node< T, IFunction, N >::value(), exprtk::details::string_function_node< T, StringFunction >::value(), exprtk::details::multimode_genfunction_node< T, GenericFunction >::value(), exprtk::details::multimode_strfunction_node< T, StringFunction >::value(), exprtk::details::str_xrox_node< T, SType0, SType1, RangePack, Operation >::value(), exprtk::details::str_xoxr_node< T, SType0, SType1, RangePack, Operation >::value(), exprtk::details::str_xroxr_node< T, SType0, SType1, RangePack, Operation >::value(), exprtk::details::str_sogens_node< T, Operation >::value(), exprtk::details::ipowinv_node< T, PowOp >::value(), exprtk::details::bipowinv_node< T, PowOp >::value(), value(), value(), exprtk::details::vector_holder< Type >::array_vector_impl::value_at(), exprtk::details::vector_holder< Type >::sequence_vector_impl< Allocator, Sequence >::value_at(), exprtk::details::vector_holder< Type >::vector_view_impl::value_at(), exprtk::details::vector_holder< Type >::resizable_vector_impl::value_at(), exprtk::details::vararg_function_node< T, VarArgFunction >::vararg_function_node(), exprtk::details::vararg_node< T, VarArgFunction >::vararg_node(), exprtk::details::vararg_varnode< T, VarArgFunction >::vararg_varnode(), 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::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::vector_init_iota_constconst_node< T >::vector_init_iota_constconst_node(), exprtk::details::vector_init_iota_constnconst_node< T >::vector_init_iota_constnconst_node(), exprtk::details::vector_init_iota_nconstconst_node< T >::vector_init_iota_nconstconst_node(), exprtk::details::vector_init_iota_nconstnconst_node< T >::vector_init_iota_nconstnconst_node(), exprtk::details::vector_init_single_constvalue_node< T >::vector_init_single_constvalue_node(), exprtk::details::vector_init_single_value_node< T >::vector_init_single_value_node(), exprtk::details::vector_initialisation_node< T >::vector_initialisation_node(), exprtk::details::vector_holder< Type >::vector_view_impl::vector_view_impl(), exprtk::details::vob_node< T, Operation >::vob_node(), wc_imatch(), wc_match(), exprtk::details::while_loop_bc_node< T >::while_loop_bc_node(), exprtk::details::while_loop_bc_rtc_node< T >::while_loop_bc_rtc_node(), exprtk::details::while_loop_node< T >::while_loop_node(), exprtk::details::while_loop_rtc_node< T >::while_loop_rtc_node(), exprtk::rtl::io::file::write< T >::write(), exprtk::details::numeric::details::xnor_impl(), exprtk::details::numeric::details::xnor_impl(), exprtk::details::numeric::details::xnor_impl(), exprtk::details::numeric::details::xnor_impl(), exprtk::details::numeric::details::xnor_impl(), exprtk::details::numeric::details::xor_impl(), exprtk::details::numeric::details::xor_impl(), exprtk::details::numeric::details::xor_impl(), exprtk::details::numeric::details::xor_impl(), exprtk::details::generic_function_node< T, GenericFunction >::~generic_function_node(), exprtk::details::vector_node< T >::~vector_node(), and exprtk::details::vector_size_node< T >::~vector_size_node().

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

References hex_to_bin(), and is_hex_digit().

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 >
static 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

References match_impl().

Referenced by string_to_real().

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

◆ parse_nan()

template<typename Iterator , typename T >
static 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 }

References match_impl().

Referenced by string_to_real().

Here is the call graph for this function:
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 }

References match_impl().

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

Here is the call graph for this function:
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.

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

Referenced by exprtk::parser< T >::parse_define_vector_statement(), set_zero_value(), exprtk::details::vector_initialisation_node< T >::value(), and exprtk::details::vector_init_zero_value_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_, and match_impl().

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 }

References match_impl().

Here is the call graph for this function:

◆ 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 match_impl().

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
2047 if (!valid_exponent<T>(frac_exponent, numeric::details::real_type_tag()))
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;
2122 else if (!valid_exponent<T>(exponent, numeric::details::real_type_tag()))
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
static bool parse_inf(Iterator &itr, const Iterator end, T &t, const bool negative)
Definition exprtk.hpp:1932

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

Referenced by exprtk::lexer::helper::numeric_checker< T >::operator()(), exprtk::parser< T >::parse_branch(), 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 match_impl().

Referenced by string_to_real().

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

◆ to_str() [1/3]

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

Definition at line 5195 of file exprtk.hpp.

5196 {
5197 switch (opr)
5198 {
5199 case e_add : return "+" ;
5200 case e_sub : return "-" ;
5201 case e_mul : return "*" ;
5202 case e_div : return "/" ;
5203 case e_mod : return "%" ;
5204 case e_pow : return "^" ;
5205 case e_assign : return ":=" ;
5206 case e_addass : return "+=" ;
5207 case e_subass : return "-=" ;
5208 case e_mulass : return "*=" ;
5209 case e_divass : return "/=" ;
5210 case e_modass : return "%=" ;
5211 case e_lt : return "<" ;
5212 case e_lte : return "<=" ;
5213 case e_eq : return "==" ;
5214 case e_equal : return "=" ;
5215 case e_ne : return "!=" ;
5216 case e_nequal : return "<>" ;
5217 case e_gte : return ">=" ;
5218 case e_gt : return ">" ;
5219 case e_and : return "and" ;
5220 case e_or : return "or" ;
5221 case e_xor : return "xor" ;
5222 case e_nand : return "nand";
5223 case e_nor : return "nor" ;
5224 case e_xnor : return "xnor";
5225 default : return "N/A" ;
5226 }
5227 }

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, e_xor, and match_impl().

Here is the call graph for this function:

◆ to_str() [2/3]

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

Definition at line 302 of file exprtk.hpp.

303 {
304 return to_str_impl(i);
305 }
std::string to_str_impl(SignedType i)
Definition exprtk.hpp:278

References to_str_impl().

Referenced by exprtk::parser< T >::expression_generator< Type >::operator()(), exprtk::parser< T >::expression_generator< Type >::operator()(), depth_to_str< T >::operator()(), exprtk::parser< T >::parse_const_string(), exprtk::parser< T >::parse_define_constvar_statement(), exprtk::parser< T >::parse_define_var_statement(), exprtk::parser< T >::parse_define_vector_statement(), exprtk::parser< T >::parse_expression(), exprtk::parser< T >::parse_function_call(), exprtk::parser< T >::type_checker::parse_function_prototypes(), exprtk::parser< T >::parse_uninitialised_var_statement(), exprtk::parser< T >::parse_vararg_function_call(), exprtk::parser< T >::stack_limit_handler::stack_limit_handler(), exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_expression(), exprtk::parser< T >::expression_generator< Type >::synthesize_assignment_operation_expression(), exprtk::parser< T >::synthesize_vector_element(), exprtk::parser< T >::valid_settings(), 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:

◆ 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 }

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 }

References match_impl().

Here is the call graph for this function:

◆ value() [1/4]

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

Definition at line 15966 of file exprtk.hpp.

15967 {
15968 return t;
15969 }

◆ value() [2/4]

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

Definition at line 15960 of file exprtk.hpp.

15961 {
15962 return (*t);
15963 }

◆ value() [3/4]

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

Definition at line 15948 of file exprtk.hpp.

15949 {
15950 return n->value();
15951 }

References match_impl().

Referenced by exprtk::details::vararg_add_op< T >::process(), exprtk::details::vararg_mul_op< T >::process(), exprtk::details::vararg_min_op< T >::process(), exprtk::details::vararg_max_op< T >::process(), exprtk::details::vararg_mand_op< T >::process(), exprtk::details::vararg_mor_op< T >::process(), exprtk::details::vararg_multi_op< T >::process(), exprtk::details::vararg_add_op< T >::process_1(), exprtk::details::vararg_mul_op< T >::process_1(), exprtk::details::vararg_avg_op< T >::process_1(), exprtk::details::vararg_min_op< T >::process_1(), exprtk::details::vararg_max_op< T >::process_1(), exprtk::details::vararg_mand_op< T >::process_1(), exprtk::details::vararg_mor_op< T >::process_1(), exprtk::details::vararg_multi_op< T >::process_1(), exprtk::details::vararg_add_op< T >::process_2(), exprtk::details::vararg_mul_op< T >::process_2(), exprtk::details::vararg_avg_op< T >::process_2(), exprtk::details::vararg_min_op< T >::process_2(), exprtk::details::vararg_max_op< T >::process_2(), exprtk::details::vararg_mand_op< T >::process_2(), exprtk::details::vararg_mor_op< T >::process_2(), exprtk::details::vararg_multi_op< T >::process_2(), exprtk::details::vararg_add_op< T >::process_3(), exprtk::details::vararg_mul_op< T >::process_3(), exprtk::details::vararg_avg_op< T >::process_3(), exprtk::details::vararg_min_op< T >::process_3(), exprtk::details::vararg_max_op< T >::process_3(), exprtk::details::vararg_mand_op< T >::process_3(), exprtk::details::vararg_mor_op< T >::process_3(), exprtk::details::vararg_multi_op< T >::process_3(), exprtk::details::vararg_add_op< T >::process_4(), exprtk::details::vararg_mul_op< T >::process_4(), exprtk::details::vararg_avg_op< T >::process_4(), exprtk::details::vararg_min_op< T >::process_4(), exprtk::details::vararg_max_op< T >::process_4(), exprtk::details::vararg_mand_op< T >::process_4(), exprtk::details::vararg_mor_op< T >::process_4(), exprtk::details::vararg_multi_op< T >::process_4(), exprtk::details::vararg_add_op< T >::process_5(), exprtk::details::vararg_mul_op< T >::process_5(), exprtk::details::vararg_avg_op< T >::process_5(), exprtk::details::vararg_min_op< T >::process_5(), exprtk::details::vararg_max_op< T >::process_5(), exprtk::details::vararg_mand_op< T >::process_5(), exprtk::details::vararg_mor_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)
inlineprivate

Definition at line 15954 of file exprtk.hpp.

15955 {
15956 return n.first->value();
15957 }

References match_impl().

Here is the call graph for this function:

◆ 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 {
683 return match_impl<char_cptr,cis_match>
684 (
685 wild_card.data(),
686 wild_card.data() + wild_card.size(),
687 str.data(),
688 str.data() + str.size(),
689 '*', '?'
690 );
691 }

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 {
670 return match_impl<char_cptr,cs_match>
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.

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

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.

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

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.

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

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.

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

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

const std::size_t exprtk::details::cntrl_struct_list_size = sizeof(cntrl_struct_list) / sizeof(std::string)
static

◆ inequality_ops_list

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

Definition at line 514 of file exprtk.hpp.

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

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.

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

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

◆ 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.

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

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.

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

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.

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

Referenced by exprtk::parser< T >::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