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

4997 {
4998 e_default , e_null , e_add , e_sub ,
4999 e_mul , e_div , e_mod , e_pow ,
5000 e_atan2 , e_min , e_max , e_avg ,
5001 e_sum , e_prod , e_lt , e_lte ,
5002 e_eq , e_equal , e_ne , e_nequal ,
5003 e_gte , e_gt , e_and , e_nand ,
5004 e_or , e_nor , e_xor , e_xnor ,
5005 e_mand , e_mor , e_scand , e_scor ,
5006 e_shr , e_shl , e_abs , e_acos ,
5008 e_atanh , e_ceil , e_cos , e_cosh ,
5009 e_exp , e_expm1 , e_floor , e_log ,
5011 e_neg , e_pos , e_round , e_roundn ,
5012 e_root , e_sqrt , e_sin , e_sinc ,
5013 e_sinh , e_sec , e_csc , e_tan ,
5015 e_inrange , e_sgn , e_r2d , e_d2r ,
5016 e_d2g , e_g2d , e_hypot , e_notl ,
5017 e_erf , e_erfc , e_ncdf , e_frac ,
5021 e_swap ,
5022
5023 // Do not add new functions/operators after this point.
5024 e_sf00 = 1000, e_sf01 = 1001, e_sf02 = 1002, e_sf03 = 1003,
5025 e_sf04 = 1004, e_sf05 = 1005, e_sf06 = 1006, e_sf07 = 1007,
5026 e_sf08 = 1008, e_sf09 = 1009, e_sf10 = 1010, e_sf11 = 1011,
5027 e_sf12 = 1012, e_sf13 = 1013, e_sf14 = 1014, e_sf15 = 1015,
5028 e_sf16 = 1016, e_sf17 = 1017, e_sf18 = 1018, e_sf19 = 1019,
5029 e_sf20 = 1020, e_sf21 = 1021, e_sf22 = 1022, e_sf23 = 1023,
5030 e_sf24 = 1024, e_sf25 = 1025, e_sf26 = 1026, e_sf27 = 1027,
5031 e_sf28 = 1028, e_sf29 = 1029, e_sf30 = 1030, e_sf31 = 1031,
5032 e_sf32 = 1032, e_sf33 = 1033, e_sf34 = 1034, e_sf35 = 1035,
5033 e_sf36 = 1036, e_sf37 = 1037, e_sf38 = 1038, e_sf39 = 1039,
5034 e_sf40 = 1040, e_sf41 = 1041, e_sf42 = 1042, e_sf43 = 1043,
5035 e_sf44 = 1044, e_sf45 = 1045, e_sf46 = 1046, e_sf47 = 1047,
5036 e_sf48 = 1048, e_sf49 = 1049, e_sf50 = 1050, e_sf51 = 1051,
5037 e_sf52 = 1052, e_sf53 = 1053, e_sf54 = 1054, e_sf55 = 1055,
5038 e_sf56 = 1056, e_sf57 = 1057, e_sf58 = 1058, e_sf59 = 1059,
5039 e_sf60 = 1060, e_sf61 = 1061, e_sf62 = 1062, e_sf63 = 1063,
5040 e_sf64 = 1064, e_sf65 = 1065, e_sf66 = 1066, e_sf67 = 1067,
5041 e_sf68 = 1068, e_sf69 = 1069, e_sf70 = 1070, e_sf71 = 1071,
5042 e_sf72 = 1072, e_sf73 = 1073, e_sf74 = 1074, e_sf75 = 1075,
5043 e_sf76 = 1076, e_sf77 = 1077, e_sf78 = 1078, e_sf79 = 1079,
5044 e_sf80 = 1080, e_sf81 = 1081, e_sf82 = 1082, e_sf83 = 1083,
5045 e_sf84 = 1084, e_sf85 = 1085, e_sf86 = 1086, e_sf87 = 1087,
5046 e_sf88 = 1088, e_sf89 = 1089, e_sf90 = 1090, e_sf91 = 1091,
5047 e_sf92 = 1092, e_sf93 = 1093, e_sf94 = 1094, e_sf95 = 1095,
5048 e_sf96 = 1096, e_sf97 = 1097, e_sf98 = 1098, e_sf99 = 1099,
5049 e_sffinal = 1100,
5050 e_sf4ext00 = 2000, e_sf4ext01 = 2001, e_sf4ext02 = 2002, e_sf4ext03 = 2003,
5051 e_sf4ext04 = 2004, e_sf4ext05 = 2005, e_sf4ext06 = 2006, e_sf4ext07 = 2007,
5052 e_sf4ext08 = 2008, e_sf4ext09 = 2009, e_sf4ext10 = 2010, e_sf4ext11 = 2011,
5053 e_sf4ext12 = 2012, e_sf4ext13 = 2013, e_sf4ext14 = 2014, e_sf4ext15 = 2015,
5054 e_sf4ext16 = 2016, e_sf4ext17 = 2017, e_sf4ext18 = 2018, e_sf4ext19 = 2019,
5055 e_sf4ext20 = 2020, e_sf4ext21 = 2021, e_sf4ext22 = 2022, e_sf4ext23 = 2023,
5056 e_sf4ext24 = 2024, e_sf4ext25 = 2025, e_sf4ext26 = 2026, e_sf4ext27 = 2027,
5057 e_sf4ext28 = 2028, e_sf4ext29 = 2029, e_sf4ext30 = 2030, e_sf4ext31 = 2031,
5058 e_sf4ext32 = 2032, e_sf4ext33 = 2033, e_sf4ext34 = 2034, e_sf4ext35 = 2035,
5059 e_sf4ext36 = 2036, e_sf4ext37 = 2037, e_sf4ext38 = 2038, e_sf4ext39 = 2039,
5060 e_sf4ext40 = 2040, e_sf4ext41 = 2041, e_sf4ext42 = 2042, e_sf4ext43 = 2043,
5061 e_sf4ext44 = 2044, e_sf4ext45 = 2045, e_sf4ext46 = 2046, e_sf4ext47 = 2047,
5062 e_sf4ext48 = 2048, e_sf4ext49 = 2049, e_sf4ext50 = 2050, e_sf4ext51 = 2051,
5063 e_sf4ext52 = 2052, e_sf4ext53 = 2053, e_sf4ext54 = 2054, e_sf4ext55 = 2055,
5064 e_sf4ext56 = 2056, e_sf4ext57 = 2057, e_sf4ext58 = 2058, e_sf4ext59 = 2059,
5065 e_sf4ext60 = 2060, e_sf4ext61 = 2061
5066 };

Function Documentation

◆ all_nodes_valid() [1/2]

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

Definition at line 5873 of file exprtk.hpp.

5874 {
5875 for (std::size_t i = 0; i < b.size(); ++i)
5876 {
5877 if (0 == b[i]) return false;
5878 }
5879
5880 return true;
5881 }

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

5861 {
5862 for (std::size_t i = 0; i < N; ++i)
5863 {
5864 if (0 == b[i]) return false;
5865 }
5866
5867 return true;
5868 }

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

5901 {
5902 for (std::size_t i = 0; i < b.size(); ++i)
5903 {
5904 if (0 == b[i])
5905 return false;
5906 else if (!is_variable_node(b[i]))
5907 return false;
5908 }
5909
5910 return true;
5911 }
bool is_variable_node(const expression_node< T > *node)
Definition exprtk.hpp:5679

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

5885 {
5886 for (std::size_t i = 0; i < N; ++i)
5887 {
5888 if (0 == b[i])
5889 return false;
5890 else if (!is_variable_node(b[i]))
5891 return false;
5892 }
5893
5894 return true;
5895 }

References is_variable_node(), and match_impl().

Here is the call 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 11769 of file exprtk.hpp.

11770 {
11771 // a*x^n
11773 }

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

11777 {
11778 // a*x^n+b
11780 }

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

5853 {
5854 return (0 != node) &&
5855 !is_variable_node(node) &&
5856 !is_string_node (node) ;
5857 }
bool is_string_node(const expression_node< T > *node)
Definition exprtk.hpp:18919

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

346 {
347 typedef std::string::iterator str_itr_t;
348
349 str_itr_t itr1 = s.begin();
350 str_itr_t itr2 = s.begin();
351 str_itr_t end = s.end ();
352
353 std::size_t removal_count = 0;
354
355 while (end != itr1)
356 {
357 if ('\\' == (*itr1))
358 {
359 if (end == ++itr1)
360 {
361 return false;
362 }
363 else if (parse_hex(itr1, end, *itr2))
364 {
365 itr1 += 4;
366 itr2 += 1;
367 removal_count += 4;
368 }
369 else if ('a' == (*itr1)) { (*itr2++) = '\a'; ++itr1; ++removal_count; }
370 else if ('b' == (*itr1)) { (*itr2++) = '\b'; ++itr1; ++removal_count; }
371 else if ('f' == (*itr1)) { (*itr2++) = '\f'; ++itr1; ++removal_count; }
372 else if ('n' == (*itr1)) { (*itr2++) = '\n'; ++itr1; ++removal_count; }
373 else if ('r' == (*itr1)) { (*itr2++) = '\r'; ++itr1; ++removal_count; }
374 else if ('t' == (*itr1)) { (*itr2++) = '\t'; ++itr1; ++removal_count; }
375 else if ('v' == (*itr1)) { (*itr2++) = '\v'; ++itr1; ++removal_count; }
376 else if ('0' == (*itr1)) { (*itr2++) = '\0'; ++itr1; ++removal_count; }
377 else
378 {
379 (*itr2++) = (*itr1++);
380 ++removal_count;
381 }
382
383 continue;
384 }
385 else
386 (*itr2++) = (*itr1++);
387 }
388
389 if ((removal_count > s.size()) || (0 == removal_count))
390 return false;
391
392 s.resize(s.size() - removal_count);
393
394 return true;
395 }

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

1720 {
1721 static const double fract10[] =
1722 {
1723 0.0,
1724 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,
1725 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,
1726 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,
1727 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,
1728 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,
1729 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,
1730 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,
1731 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,
1732 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,
1733 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,
1734 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,
1735 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,
1736 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,
1737 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,
1738 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,
1739 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,
1740 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,
1741 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,
1742 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,
1743 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,
1744 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,
1745 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,
1746 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,
1747 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,
1748 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,
1749 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,
1750 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,
1751 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,
1752 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,
1753 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,
1754 1.0E+301, 1.0E+302, 1.0E+303, 1.0E+304, 1.0E+305, 1.0E+306, 1.0E+307, 1.0E+308
1755 };
1756
1757 static const int fract10_size = static_cast<int>(sizeof(fract10) / sizeof(double));
1758
1759 const int e = std::abs(exponent);
1760
1761 if (exponent >= std::numeric_limits<T>::min_exponent10)
1762 {
1763 if (e < fract10_size)
1764 {
1765 if (exponent > 0)
1766 return T(d * fract10[e]);
1767 else
1768 return T(d / fract10[e]);
1769 }
1770 else
1771 return T(d * std::pow(10.0, 10.0 * exponent));
1772 }
1773 else
1774 {
1775 d /= T(fract10[ -std::numeric_limits<T>::min_exponent10]);
1776 return T(d / fract10[-exponent + std::numeric_limits<T>::min_exponent10]);
1777 }
1778 }

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

6623 {
6624 if (b)
6625 {
6626 branch = std::make_pair(b,branch_deletable(b));
6627 }
6628 }
bool branch_deletable(const expression_node< T > *node)
Definition exprtk.hpp:5852

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

6614 {
6615 if (b && (index < N))
6616 {
6617 branch[index] = std::make_pair(b,branch_deletable(b));
6618 }
6619 }

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

6020 {
6021 if (0 != node)
6022 {
6024 ::delete_nodes(node);
6025 }
6026 }

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

22169 {
22170 p.state_.type_check_enabled = false;
22171 }

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

5164{}

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

5165{}

◆ dump_vector()

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

Definition at line 5167 of file exprtk.hpp.

5167{}

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

5985 {
5986 for (std::size_t i = 0; i < N; ++i)
5987 {
5989 }
5990 }
void free_node(NodeAllocator &, expression_node< T > *&node)
Definition exprtk.hpp:6007

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

5997 {
5998 for (std::size_t i = 0; i < b.size(); ++i)
5999 {
6001 }
6002
6003 b.clear();
6004 }

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

6008 {
6009 if ((0 == node) || is_variable_node(node) || is_string_node(node))
6010 {
6011 return;
6012 }
6013
6014 node_collection_destructor<expression_node<T> >
6015 ::delete_nodes(node);
6016 }

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

314 {
315 if (('0' <= h) && (h <= '9'))
316 return (h - '0');
317 else
318 return static_cast<uchar_t>(std::toupper(h) - 'A');
319 }
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 6631 of file exprtk.hpp.

6642 {
6643 construct_branch_pair(branch, b0, 0);
6644 construct_branch_pair(branch, b1, 1);
6645 construct_branch_pair(branch, b2, 2);
6646 construct_branch_pair(branch, b3, 3);
6647 construct_branch_pair(branch, b4, 4);
6648 construct_branch_pair(branch, b5, 5);
6649 construct_branch_pair(branch, b6, 6);
6650 construct_branch_pair(branch, b7, 7);
6651 construct_branch_pair(branch, b8, 8);
6652 construct_branch_pair(branch, b9, 9);
6653 }
void construct_branch_pair(std::pair< expression_node< T > *, bool >(&branch)[N], expression_node< T > *b, const std::size_t &index)
Definition exprtk.hpp:6611

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

5847 {
5848 return node && (details::expression_node<T>::e_assert == node->type());
5849 }
virtual node_type type() const
Definition exprtk.hpp:5601

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

543 {
544 for (std::size_t i = 0; i < base_function_list_size; ++i)
545 {
546 if (imatch(function_name, base_function_list[i]))
547 {
548 return true;
549 }
550 }
551
552 return false;
553 }
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:476

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

5674 {
5675 return node && (details::expression_node<T>::e_binary == node->type());
5676 }

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_boc_node()

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

Definition at line 18895 of file exprtk.hpp.

18896 {
18897 return (0 != dynamic_cast<const boc_base_node<T>*>(node));
18898 }

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

5798 {
5799 return node && (details::expression_node<T>::e_break == node->type());
5800 }

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

18890 {
18891 return (0 != dynamic_cast<const cob_base_node<T>*>(node));
18892 }

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

18932 {
18933 return node && (expression_node<T>::e_stringconst == node->type());
18934 }

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

18938 {
18939 return node && (expression_node<T>::e_cstringvarrng == node->type());
18940 }

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

5782 {
5783 return node &&
5784 (
5787 );
5788 }

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

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

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

556 {
557 for (std::size_t i = 0; i < cntrl_struct_list_size; ++i)
558 {
559 if (imatch(cntrl_strct, cntrl_struct_list[i]))
560 {
561 return true;
562 }
563 }
564
565 return false;
566 }
static const std::size_t cntrl_struct_list_size
Definition exprtk.hpp:490

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

18878 {
18879 return (0 != dynamic_cast<const cov_base_node<T>*>(node));
18880 }

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

5644 {
5645 return std::equal_to<T>()(T(0),node->value());
5646 }

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 375 of file exprtk_mpfr_adaptor.hpp.

375{ 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 350 of file exprtk_real_adaptor.hpp.

350{ 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 5649 of file exprtk.hpp.

5650 {
5651 return std::equal_to<T>()(T(0),node.first->value());
5652 }

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

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

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

18986 {
18987 if (node)
18988 {
18989 switch (node->type())
18990 {
19001 case expression_node<T>::e_stringvararg : return true;
19002 default : return false;
19003 }
19004 }
19005
19006 return false;
19007 }

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

18980 {
18981 return node && (expression_node<T>::e_strgenrange == node->type());
18982 }

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

307 {
308 return (('0' <= digit) && (digit <= '9')) ||
309 (('A' <= digit) && (digit <= 'F')) ||
310 (('a' <= digit) && (digit <= 'f')) ;
311 }

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 5685 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 5756 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::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 5655 of file exprtk.hpp.

5656 {
5657 return node && (details::expression_node<T>::e_constant == node->type());
5658 }

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

569 {
570 for (std::size_t i = 0; i < logic_ops_list_size; ++i)
571 {
572 if (imatch(lgc_opr, logic_ops_list[i]))
573 {
574 return true;
575 }
576 }
577
578 return false;
579 }
static const std::size_t logic_ops_list_size
Definition exprtk.hpp:483

References imatch(), logic_ops_list, and logic_ops_list_size.

Here is the call 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 5667 of file exprtk.hpp.

5668 {
5669 return node && (details::expression_node<T>::e_neg == node->type());
5670 }

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

5836 {
5837 if (node && is_unary_node(node))
5838 {
5839 return (details::e_neg == static_cast<const unary_node<T>*>(node)->operation());
5840 }
5841 else
5842 return false;
5843 }
bool is_unary_node(const expression_node< T > *node)
Definition exprtk.hpp:5661

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

5745 {
5746 return node && (details::expression_node<T>::e_rbveccelem == node->type());
5747 }

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

5739 {
5740 return node && (details::expression_node<T>::e_rbveccelemrtc == node->type());
5741 }

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

5727 {
5728 return node && (details::expression_node<T>::e_rbvecelem == node->type());
5729 }

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

5733 {
5734 return node && (details::expression_node<T>::e_rbvecelemrtc == node->type());
5735 }

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

530 {
531 for (std::size_t i = 0; i < reserved_symbols_size; ++i)
532 {
533 if (imatch(symbol, reserved_symbols[i]))
534 {
535 return true;
536 }
537 }
538
539 return false;
540 }
static const std::size_t reserved_symbols_size
Definition exprtk.hpp:461

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

517 {
518 for (std::size_t i = 0; i < reserved_words_size; ++i)
519 {
520 if (imatch(symbol, reserved_words[i]))
521 {
522 return true;
523 }
524 }
525
526 return false;
527 }
static const std::size_t reserved_words_size
Definition exprtk.hpp:442

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

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

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

17657 {
17658 switch (n->type())
17659 {
17660 case expression_node<T>::e_vovov : return true;
17661 case expression_node<T>::e_vovoc : return true;
17662 case expression_node<T>::e_vocov : return true;
17663 case expression_node<T>::e_covov : return true;
17664 case expression_node<T>::e_covoc : return true;
17665 default : return false;
17666 }
17667 }

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

17835 {
17836 switch (n->type())
17837 {
17838 case expression_node<T>::e_vovovov : return true;
17839 case expression_node<T>::e_vovovoc : return true;
17840 case expression_node<T>::e_vovocov : return true;
17841 case expression_node<T>::e_vocovov : return true;
17842 case expression_node<T>::e_covovov : return true;
17843 case expression_node<T>::e_covocov : return true;
17844 case expression_node<T>::e_vocovoc : return true;
17845 case expression_node<T>::e_covovoc : return true;
17846 case expression_node<T>::e_vococov : return true;
17847 default : return false;
17848 }
17849 }

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

18944 {
18945 return node && (expression_node<T>::e_strass == node->type());
18946 }

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

18968 {
18969 return node && (expression_node<T>::e_strccondition == node->type());
18970 }

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

18950 {
18951 return node && (expression_node<T>::e_strconcat == node->type());
18952 }

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

18962 {
18963 return node && (expression_node<T>::e_strcondition == node->type());
18964 }

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

18956 {
18957 return node && (expression_node<T>::e_strfunction == node->type());
18958 }

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

18926 {
18927 return node && (expression_node<T>::e_stringvarrng == node->type());
18928 }

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

18974 {
18975 return node && (expression_node<T>::e_stringvararg == node->type());
18976 }

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

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

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

18902 {
18903 return (0 != dynamic_cast<const T0oT1oT2_base_node<T>*>(node));
18904 }

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

18908 {
18909 return (0 != dynamic_cast<const T0oT1oT2oT3_base_node<T>*>(node));
18910 }

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

5632 {
5633 return std::not_equal_to<T>()(T(0),node->value());
5634 }

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

5626 {
5627 return std::not_equal_to<float>()(0.0f,v);
5628 }

◆ is_true() [5/8]

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

Definition at line 5620 of file exprtk.hpp.

5621 {
5622 return std::not_equal_to<long double>()(0.0L,v);
5623 }

◆ is_true() [6/8]

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

Definition at line 374 of file exprtk_mpfr_adaptor.hpp.

374{ 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 349 of file exprtk_real_adaptor.hpp.

349{ 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 5637 of file exprtk.hpp.

5638 {
5639 return std::not_equal_to<T>()(T(0),node.first->value());
5640 }

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

5662 {
5663 return node && (details::expression_node<T>::e_unary == node->type());
5664 }

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

18914 {
18915 return (0 != dynamic_cast<const uv_base_node<T>*>(node));
18916 }

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

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

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

5680 {
5681 return node && (details::expression_node<T>::e_variable == node->type());
5682 }

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

5709 {
5710 return node && (details::expression_node<T>::e_veccelem == node->type());
5711 }

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

5721 {
5722 return node && (details::expression_node<T>::e_veccelemrtc == node->type());
5723 }

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

5703 {
5704 return node && (details::expression_node<T>::e_vecelem == node->type());
5705 }

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

5715 {
5716 return node && (details::expression_node<T>::e_vecelemrtc == node->type());
5717 }

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

5751 {
5752 return node && (details::expression_node<T>::e_vector == node->type());
5753 }

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

18884 {
18885 return (0 != dynamic_cast<const voc_base_node<T>*>(node));
18886 }

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

18872 {
18873 return (0 != dynamic_cast<const vov_base_node<T>*>(node));
18874 }

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

19396 {
19397 #define register_op(Symbol, Type, Args) \
19398 m.insert(std::make_pair(std::string(Symbol),details::base_operation_t(Type,Args))); \
19399
19400 register_op("abs" , e_abs , 1)
19401 register_op("acos" , e_acos , 1)
19402 register_op("acosh" , e_acosh , 1)
19403 register_op("asin" , e_asin , 1)
19404 register_op("asinh" , e_asinh , 1)
19405 register_op("atan" , e_atan , 1)
19406 register_op("atanh" , e_atanh , 1)
19407 register_op("ceil" , e_ceil , 1)
19408 register_op("cos" , e_cos , 1)
19409 register_op("cosh" , e_cosh , 1)
19410 register_op("exp" , e_exp , 1)
19411 register_op("expm1" , e_expm1 , 1)
19412 register_op("floor" , e_floor , 1)
19413 register_op("log" , e_log , 1)
19414 register_op("log10" , e_log10 , 1)
19415 register_op("log2" , e_log2 , 1)
19416 register_op("log1p" , e_log1p , 1)
19417 register_op("round" , e_round , 1)
19418 register_op("sin" , e_sin , 1)
19419 register_op("sinc" , e_sinc , 1)
19420 register_op("sinh" , e_sinh , 1)
19421 register_op("sec" , e_sec , 1)
19422 register_op("csc" , e_csc , 1)
19423 register_op("sqrt" , e_sqrt , 1)
19424 register_op("tan" , e_tan , 1)
19425 register_op("tanh" , e_tanh , 1)
19426 register_op("cot" , e_cot , 1)
19427 register_op("rad2deg" , e_r2d , 1)
19428 register_op("deg2rad" , e_d2r , 1)
19429 register_op("deg2grad" , e_d2g , 1)
19430 register_op("grad2deg" , e_g2d , 1)
19431 register_op("sgn" , e_sgn , 1)
19432 register_op("not" , e_notl , 1)
19433 register_op("erf" , e_erf , 1)
19434 register_op("erfc" , e_erfc , 1)
19435 register_op("ncdf" , e_ncdf , 1)
19436 register_op("frac" , e_frac , 1)
19437 register_op("trunc" , e_trunc , 1)
19438 register_op("atan2" , e_atan2 , 2)
19439 register_op("mod" , e_mod , 2)
19440 register_op("logn" , e_logn , 2)
19441 register_op("pow" , e_pow , 2)
19442 register_op("root" , e_root , 2)
19443 register_op("roundn" , e_roundn , 2)
19444 register_op("equal" , e_equal , 2)
19445 register_op("not_equal" , e_nequal , 2)
19446 register_op("hypot" , e_hypot , 2)
19447 register_op("shr" , e_shr , 2)
19448 register_op("shl" , e_shl , 2)
19449 register_op("clamp" , e_clamp , 3)
19450 register_op("iclamp" , e_iclamp , 3)
19451 register_op("inrange" , e_inrange , 3)
19452 #undef register_op
19453 }
#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 13470 of file exprtk.hpp.

13472 {
13473 memory_context_t<T> result_ctxt;
13474 result_ctxt.temp_ = (vec_holder.rebaseable()) ?
13475 new vector_holder<T>(vec_holder,vds) :
13476 new vector_holder<T>(vds) ;
13477 result_ctxt.temp_vec_node_ = new vector_node <T>(vds,result_ctxt.temp_);
13478 return result_ctxt;
13479 }

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

13485 {
13486 memory_context_t<T> result_ctxt;
13487
13488 if (!vec_holder0.rebaseable() && !vec_holder1.rebaseable())
13489 result_ctxt.temp_ = new vector_holder<T>(vds);
13490 else if (vec_holder0.rebaseable() && !vec_holder1.rebaseable())
13491 result_ctxt.temp_ = new vector_holder<T>(vec_holder0,vds);
13492 else if (!vec_holder0.rebaseable() && vec_holder1.rebaseable())
13493 result_ctxt.temp_ = new vector_holder<T>(vec_holder1,vds);
13494 else
13495 {
13496 result_ctxt.temp_ = (vec_holder0.base_size() >= vec_holder1.base_size()) ?
13497 new vector_holder<T>(vec_holder0, vds) :
13498 new vector_holder<T>(vec_holder1, vds) ;
13499 }
13500
13501 result_ctxt.temp_vec_node_ = new vector_node <T>(vds,result_ctxt.temp_);
13502 return result_ctxt;
13503 }
std::size_t base_size() const
Definition exprtk.hpp:6549

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

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

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(), 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_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_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::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 322 of file exprtk.hpp.

324 {
325 if (
326 (end == (itr )) ||
327 (end == (itr + 1)) ||
328 (end == (itr + 2)) ||
329 (end == (itr + 3)) ||
330 ('0' != *(itr )) ||
331 ('X' != std::toupper(*(itr + 1))) ||
332 (!is_hex_digit(*(itr + 2))) ||
333 (!is_hex_digit(*(itr + 3)))
334 )
335 {
336 return false;
337 }
338
339 result = hex_to_bin(static_cast<uchar_t>(*(itr + 2))) << 4 |
340 hex_to_bin(static_cast<uchar_t>(*(itr + 3))) ;
341
342 return true;
343 }
bool is_hex_digit(const uchar_t digit)
Definition exprtk.hpp:306

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

1892 {
1893 static const char_t inf_uc[] = "INFINITY";
1894 static const char_t inf_lc[] = "infinity";
1895 static const std::size_t inf_length = 8;
1896
1897 const std::size_t length = static_cast<std::size_t>(std::distance(itr,end));
1898
1899 if ((3 != length) && (inf_length != length))
1900 return false;
1901
1902 char_cptr inf_itr = ('i' == (*itr)) ? inf_lc : inf_uc;
1903
1904 while (end != itr)
1905 {
1906 if (*inf_itr == static_cast<char_t>(*itr))
1907 {
1908 ++itr;
1909 ++inf_itr;
1910 continue;
1911 }
1912 else
1913 return false;
1914 }
1915
1916 if (negative)
1917 t = -std::numeric_limits<T>::infinity();
1918 else
1919 t = std::numeric_limits<T>::infinity();
1920
1921 return true;
1922 }
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 1858 of file exprtk.hpp.

1859 {
1860 typedef typename std::iterator_traits<Iterator>::value_type type;
1861
1862 static const std::size_t nan_length = 3;
1863
1864 if (std::distance(itr,end) != static_cast<int>(nan_length))
1865 return false;
1866
1867 if (static_cast<type>('n') == (*itr))
1868 {
1869 if (
1870 (static_cast<type>('a') != *(itr + 1)) ||
1871 (static_cast<type>('n') != *(itr + 2))
1872 )
1873 {
1874 return false;
1875 }
1876 }
1877 else if (
1878 (static_cast<type>('A') != *(itr + 1)) ||
1879 (static_cast<type>('N') != *(itr + 2))
1880 )
1881 {
1882 return false;
1883 }
1884
1885 t = std::numeric_limits<T>::quiet_NaN();
1886
1887 return true;
1888 }

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

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

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

793 {
794 set_zero_value(v.data(),v.size());
795 }
void set_zero_value(T *data, const std::size_t size)
Definition exprtk.hpp:786

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

2091 {
2092 const typename numeric::details::number_type<T>::type num_type;
2093
2094 char_cptr begin = s.data();
2095 char_cptr end = s.data() + s.size();
2096
2097 return string_to_real(begin, end, t, num_type);
2098 }
bool string_to_real(Iterator &itr_external, const Iterator end, T &t, numeric::details::real_type_tag)
Definition exprtk.hpp:1932

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 368 of file exprtk_mpfr_adaptor.hpp.

369 {
370 t = mpfr::mpreal(std::string(itr_external,end));
371 return true;
372 }

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 343 of file exprtk_real_adaptor.hpp.

344 {
346 return string_to_real<Iterator,double>(itr_external,end,t.d_,num_type);
347 }
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 1932 of file exprtk.hpp.

1933 {
1934 if (end == itr_external) return false;
1935
1936 Iterator itr = itr_external;
1937
1938 T d = T(0);
1939
1940 const bool negative = ('-' == (*itr));
1941
1942 if (negative || '+' == (*itr))
1943 {
1944 if (end == ++itr)
1945 return false;
1946 }
1947
1948 bool instate = false;
1949
1950 static const char_t zero = static_cast<uchar_t>('0');
1951
1952 #define parse_digit_1(d) \
1953 if ((digit = (*itr - zero)) < 10) \
1954 { d = d * T(10) + digit; } \
1955 else \
1956 { break; } \
1957 if (end == ++itr) break; \
1958
1959 #define parse_digit_2(d) \
1960 if ((digit = (*itr - zero)) < 10) \
1961 { d = d * T(10) + digit; } \
1962 else \
1963 { break; } \
1964 ++itr; \
1965
1966 if ('.' != (*itr))
1967 {
1968 const Iterator curr = itr;
1969
1970 while ((end != itr) && (zero == (*itr))) ++itr;
1971
1972 while (end != itr)
1973 {
1974 unsigned int digit;
1975 parse_digit_1(d)
1976 parse_digit_1(d)
1977 parse_digit_2(d)
1978 }
1979
1980 if (curr != itr) instate = true;
1981 }
1982
1983 int exponent = 0;
1984
1985 if (end != itr)
1986 {
1987 if ('.' == (*itr))
1988 {
1989 const Iterator curr = ++itr;
1990 T tmp_d = T(0);
1991
1992 while (end != itr)
1993 {
1994 unsigned int digit;
1995 parse_digit_1(tmp_d)
1996 parse_digit_1(tmp_d)
1997 parse_digit_2(tmp_d)
1998 }
1999
2000 if (curr != itr)
2001 {
2002 instate = true;
2003
2004 const int frac_exponent = static_cast<int>(-std::distance(curr, itr));
2005
2006 if (!valid_exponent<T>(frac_exponent, numeric::details::real_type_tag()))
2007 return false;
2008
2009 d += compute_pow10(tmp_d, frac_exponent);
2010 }
2011
2012 #undef parse_digit_1
2013 #undef parse_digit_2
2014 }
2015
2016 if (end != itr)
2017 {
2018 typename std::iterator_traits<Iterator>::value_type c = (*itr);
2019
2020 if (('e' == c) || ('E' == c))
2021 {
2022 int exp = 0;
2023
2024 if (!details::string_to_type_converter_impl_ref(++itr, end, exp))
2025 {
2026 if (end == itr)
2027 return false;
2028 else
2029 c = (*itr);
2030 }
2031
2032 exponent += exp;
2033 }
2034
2035 if (end != itr)
2036 {
2037 if (('f' == c) || ('F' == c) || ('l' == c) || ('L' == c))
2038 ++itr;
2039 else if ('#' == c)
2040 {
2041 if (end == ++itr)
2042 return false;
2043 else if (('I' <= (*itr)) && ((*itr) <= 'n'))
2044 {
2045 if (('i' == (*itr)) || ('I' == (*itr)))
2046 {
2047 return parse_inf(itr, end, t, negative);
2048 }
2049 else if (('n' == (*itr)) || ('N' == (*itr)))
2050 {
2051 return parse_nan(itr, end, t);
2052 }
2053 else
2054 return false;
2055 }
2056 else
2057 return false;
2058 }
2059 else if (('I' <= (*itr)) && ((*itr) <= 'n'))
2060 {
2061 if (('i' == (*itr)) || ('I' == (*itr)))
2062 {
2063 return parse_inf(itr, end, t, negative);
2064 }
2065 else if (('n' == (*itr)) || ('N' == (*itr)))
2066 {
2067 return parse_nan(itr, end, t);
2068 }
2069 else
2070 return false;
2071 }
2072 else
2073 return false;
2074 }
2075 }
2076 }
2077
2078 if ((end != itr) || (!instate))
2079 return false;
2080 else if (!valid_exponent<T>(exponent, numeric::details::real_type_tag()))
2081 return false;
2082 else if (exponent)
2083 d = compute_pow10(d,exponent);
2084
2085 t = static_cast<T>((negative) ? -d : d);
2086 return true;
2087 }
#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:1858
T compute_pow10(T d, const int exponent)
Definition exprtk.hpp:1719
static bool parse_inf(Iterator &itr, const Iterator end, T &t, const bool negative)
Definition exprtk.hpp:1891

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

1782 {
1783 if (itr == end)
1784 return false;
1785
1786 const bool negative = ('-' == (*itr));
1787
1788 if (negative || ('+' == (*itr)))
1789 {
1790 if (end == ++itr)
1791 return false;
1792 }
1793
1794 static const uchar_t zero = static_cast<uchar_t>('0');
1795
1796 while ((end != itr) && (zero == (*itr))) ++itr;
1797
1798 bool return_result = true;
1799 unsigned int digit = 0;
1800 const std::size_t length = static_cast<std::size_t>(std::distance(itr,end));
1801
1802 if (length <= 4)
1803 {
1804 switch (length)
1805 {
1806 #ifdef exprtk_use_lut
1807
1808 #define exprtk_process_digit \
1809 if ((digit = details::digit_table[(int)*itr++]) < 10) \
1810 result = result * 10 + (digit); \
1811 else \
1812 { \
1813 return_result = false; \
1814 break; \
1815 } \
1816 exprtk_fallthrough \
1817
1818 #else
1819
1820 #define exprtk_process_digit \
1821 if ((digit = (*itr++ - zero)) < 10) \
1822 result = result * T(10) + digit; \
1823 else \
1824 { \
1825 return_result = false; \
1826 break; \
1827 } \
1828 exprtk_fallthrough \
1829
1830 #endif
1831
1832 case 4 : exprtk_process_digit
1833 case 3 : exprtk_process_digit
1834 case 2 : exprtk_process_digit
1835 case 1 : if ((digit = (*itr - zero))>= 10)
1836 {
1837 digit = 0;
1838 return_result = false;
1839 }
1840
1841 #undef exprtk_process_digit
1842 }
1843 }
1844 else
1845 return_result = false;
1846
1847 if (length && return_result)
1848 {
1849 result = result * 10 + static_cast<T>(digit);
1850 ++itr;
1851 }
1852
1853 result = negative ? -result : result;
1854 return return_result;
1855 }
#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 5068 of file exprtk.hpp.

5069 {
5070 switch (opr)
5071 {
5072 case e_add : return "+" ;
5073 case e_sub : return "-" ;
5074 case e_mul : return "*" ;
5075 case e_div : return "/" ;
5076 case e_mod : return "%" ;
5077 case e_pow : return "^" ;
5078 case e_assign : return ":=" ;
5079 case e_addass : return "+=" ;
5080 case e_subass : return "-=" ;
5081 case e_mulass : return "*=" ;
5082 case e_divass : return "/=" ;
5083 case e_modass : return "%=" ;
5084 case e_lt : return "<" ;
5085 case e_lte : return "<=" ;
5086 case e_eq : return "==" ;
5087 case e_equal : return "=" ;
5088 case e_ne : return "!=" ;
5089 case e_nequal : return "<>" ;
5090 case e_gte : return ">=" ;
5091 case e_gt : return ">" ;
5092 case e_and : return "and" ;
5093 case e_or : return "or" ;
5094 case e_xor : return "xor" ;
5095 case e_nand : return "nand";
5096 case e_nor : return "nor" ;
5097 case e_xnor : return "xnor";
5098 default : return "N/A" ;
5099 }
5100 }

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

◆ to_str() [3/3]

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

Definition at line 301 of file exprtk.hpp.

302 {
303 return to_str(static_cast<int>(i));
304 }
std::string to_str(int i)
Definition exprtk.hpp:277

References to_str().

Here is the call 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 1925 of file exprtk.hpp.

1926 {
1927 using namespace details::numeric;
1928 return (numeric_info<T>::min_exp <= exponent) && (exponent <= numeric_info<T>::max_exp);
1929 }

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

15768 {
15769 return t;
15770 }

◆ value() [2/4]

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

Definition at line 15761 of file exprtk.hpp.

15762 {
15763 return (*t);
15764 }

◆ value() [3/4]

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

Definition at line 15749 of file exprtk.hpp.

15750 {
15751 return n->value();
15752 }

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

15756 {
15757 return n.first->value();
15758 }

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

675 {
676 return match_impl<char_cptr,cis_match>
677 (
678 wild_card.data(),
679 wild_card.data() + wild_card.size(),
680 str.data(),
681 str.data() + str.size(),
682 '*', '?'
683 );
684 }

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

662 {
663 return match_impl<char_cptr,cs_match>
664 (
665 wild_card.data(),
666 wild_card.data() + wild_card.size(),
667 str.data(),
668 str.data() + str.size(),
669 '*', '?'
670 );
671 }

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

493 {
494 "+", "-", "*", "/", "%", "^"
495 };

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

500 {
501 ":=", "+=", "-=",
502 "*=", "/=", "%="
503 };

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

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

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

486 {
487 "if", "switch", "for", "while", "repeat", "return"
488 };

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

508 {
509 "<", "<=", "==",
510 "=", "!=", "<>",
511 ">=", ">"
512 };

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

479 {
480 "and", "nand", "nor", "not", "or", "xnor", "xor", "&", "|"
481 };

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

798 {
799 1.0,
800 1.0E+001, 1.0E+002, 1.0E+003, 1.0E+004,
801 1.0E+005, 1.0E+006, 1.0E+007, 1.0E+008,
802 1.0E+009, 1.0E+010, 1.0E+011, 1.0E+012,
803 1.0E+013, 1.0E+014, 1.0E+015, 1.0E+016
804 };

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

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

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

434 {
435 "assert", "break", "case", "continue", "const", "default",
436 "false", "for", "if", "else", "ilike", "in", "like", "and",
437 "nand", "nor", "not", "null", "or", "repeat", "return",
438 "shl", "shr", "swap", "switch", "true", "until", "var",
439 "while", "xnor", "xor", "&", "|"
440 };

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