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  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_assignment_node
 
class  vector_celem_node
 
class  vector_celem_rtc_node
 
class  vector_elem_node
 
class  vector_elem_rtc_node
 
class  vector_holder
 
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_return_node (const expression_node< T > *node)
 
template<typename T >
bool is_negate_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 95 of file exprtk.hpp.

◆ _uint64_t

Definition at line 94 of file exprtk.hpp.

◆ char_cptr

Definition at line 90 of file exprtk.hpp.

◆ char_ptr

Definition at line 89 of file exprtk.hpp.

◆ char_t

Definition at line 88 of file exprtk.hpp.

◆ uchar_cptr

Definition at line 93 of file exprtk.hpp.

◆ uchar_ptr

Definition at line 92 of file exprtk.hpp.

◆ uchar_t

Definition at line 91 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 4922 of file exprtk.hpp.

4923 {
4924 e_default , e_null , e_add , e_sub ,
4925 e_mul , e_div , e_mod , e_pow ,
4926 e_atan2 , e_min , e_max , e_avg ,
4927 e_sum , e_prod , e_lt , e_lte ,
4928 e_eq , e_equal , e_ne , e_nequal ,
4929 e_gte , e_gt , e_and , e_nand ,
4930 e_or , e_nor , e_xor , e_xnor ,
4931 e_mand , e_mor , e_scand , e_scor ,
4932 e_shr , e_shl , e_abs , e_acos ,
4934 e_atanh , e_ceil , e_cos , e_cosh ,
4935 e_exp , e_expm1 , e_floor , e_log ,
4937 e_neg , e_pos , e_round , e_roundn ,
4938 e_root , e_sqrt , e_sin , e_sinc ,
4939 e_sinh , e_sec , e_csc , e_tan ,
4941 e_inrange , e_sgn , e_r2d , e_d2r ,
4942 e_d2g , e_g2d , e_hypot , e_notl ,
4943 e_erf , e_erfc , e_ncdf , e_frac ,
4947 e_swap ,
4948
4949 // Do not add new functions/operators after this point.
4950 e_sf00 = 1000, e_sf01 = 1001, e_sf02 = 1002, e_sf03 = 1003,
4951 e_sf04 = 1004, e_sf05 = 1005, e_sf06 = 1006, e_sf07 = 1007,
4952 e_sf08 = 1008, e_sf09 = 1009, e_sf10 = 1010, e_sf11 = 1011,
4953 e_sf12 = 1012, e_sf13 = 1013, e_sf14 = 1014, e_sf15 = 1015,
4954 e_sf16 = 1016, e_sf17 = 1017, e_sf18 = 1018, e_sf19 = 1019,
4955 e_sf20 = 1020, e_sf21 = 1021, e_sf22 = 1022, e_sf23 = 1023,
4956 e_sf24 = 1024, e_sf25 = 1025, e_sf26 = 1026, e_sf27 = 1027,
4957 e_sf28 = 1028, e_sf29 = 1029, e_sf30 = 1030, e_sf31 = 1031,
4958 e_sf32 = 1032, e_sf33 = 1033, e_sf34 = 1034, e_sf35 = 1035,
4959 e_sf36 = 1036, e_sf37 = 1037, e_sf38 = 1038, e_sf39 = 1039,
4960 e_sf40 = 1040, e_sf41 = 1041, e_sf42 = 1042, e_sf43 = 1043,
4961 e_sf44 = 1044, e_sf45 = 1045, e_sf46 = 1046, e_sf47 = 1047,
4962 e_sf48 = 1048, e_sf49 = 1049, e_sf50 = 1050, e_sf51 = 1051,
4963 e_sf52 = 1052, e_sf53 = 1053, e_sf54 = 1054, e_sf55 = 1055,
4964 e_sf56 = 1056, e_sf57 = 1057, e_sf58 = 1058, e_sf59 = 1059,
4965 e_sf60 = 1060, e_sf61 = 1061, e_sf62 = 1062, e_sf63 = 1063,
4966 e_sf64 = 1064, e_sf65 = 1065, e_sf66 = 1066, e_sf67 = 1067,
4967 e_sf68 = 1068, e_sf69 = 1069, e_sf70 = 1070, e_sf71 = 1071,
4968 e_sf72 = 1072, e_sf73 = 1073, e_sf74 = 1074, e_sf75 = 1075,
4969 e_sf76 = 1076, e_sf77 = 1077, e_sf78 = 1078, e_sf79 = 1079,
4970 e_sf80 = 1080, e_sf81 = 1081, e_sf82 = 1082, e_sf83 = 1083,
4971 e_sf84 = 1084, e_sf85 = 1085, e_sf86 = 1086, e_sf87 = 1087,
4972 e_sf88 = 1088, e_sf89 = 1089, e_sf90 = 1090, e_sf91 = 1091,
4973 e_sf92 = 1092, e_sf93 = 1093, e_sf94 = 1094, e_sf95 = 1095,
4974 e_sf96 = 1096, e_sf97 = 1097, e_sf98 = 1098, e_sf99 = 1099,
4975 e_sffinal = 1100,
4976 e_sf4ext00 = 2000, e_sf4ext01 = 2001, e_sf4ext02 = 2002, e_sf4ext03 = 2003,
4977 e_sf4ext04 = 2004, e_sf4ext05 = 2005, e_sf4ext06 = 2006, e_sf4ext07 = 2007,
4978 e_sf4ext08 = 2008, e_sf4ext09 = 2009, e_sf4ext10 = 2010, e_sf4ext11 = 2011,
4979 e_sf4ext12 = 2012, e_sf4ext13 = 2013, e_sf4ext14 = 2014, e_sf4ext15 = 2015,
4980 e_sf4ext16 = 2016, e_sf4ext17 = 2017, e_sf4ext18 = 2018, e_sf4ext19 = 2019,
4981 e_sf4ext20 = 2020, e_sf4ext21 = 2021, e_sf4ext22 = 2022, e_sf4ext23 = 2023,
4982 e_sf4ext24 = 2024, e_sf4ext25 = 2025, e_sf4ext26 = 2026, e_sf4ext27 = 2027,
4983 e_sf4ext28 = 2028, e_sf4ext29 = 2029, e_sf4ext30 = 2030, e_sf4ext31 = 2031,
4984 e_sf4ext32 = 2032, e_sf4ext33 = 2033, e_sf4ext34 = 2034, e_sf4ext35 = 2035,
4985 e_sf4ext36 = 2036, e_sf4ext37 = 2037, e_sf4ext38 = 2038, e_sf4ext39 = 2039,
4986 e_sf4ext40 = 2040, e_sf4ext41 = 2041, e_sf4ext42 = 2042, e_sf4ext43 = 2043,
4987 e_sf4ext44 = 2044, e_sf4ext45 = 2045, e_sf4ext46 = 2046, e_sf4ext47 = 2047,
4988 e_sf4ext48 = 2048, e_sf4ext49 = 2049, e_sf4ext50 = 2050, e_sf4ext51 = 2051,
4989 e_sf4ext52 = 2052, e_sf4ext53 = 2053, e_sf4ext54 = 2054, e_sf4ext55 = 2055,
4990 e_sf4ext56 = 2056, e_sf4ext57 = 2057, e_sf4ext58 = 2058, e_sf4ext59 = 2059,
4991 e_sf4ext60 = 2060, e_sf4ext61 = 2061
4992 };

Function Documentation

◆ all_nodes_valid() [1/2]

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

Definition at line 5786 of file exprtk.hpp.

5787 {
5788 for (std::size_t i = 0; i < b.size(); ++i)
5789 {
5790 if (0 == b[i]) return false;
5791 }
5792
5793 return true;
5794 }

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

5774 {
5775 for (std::size_t i = 0; i < N; ++i)
5776 {
5777 if (0 == b[i]) return false;
5778 }
5779
5780 return true;
5781 }

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

5814 {
5815 for (std::size_t i = 0; i < b.size(); ++i)
5816 {
5817 if (0 == b[i])
5818 return false;
5819 else if (!is_variable_node(b[i]))
5820 return false;
5821 }
5822
5823 return true;
5824 }
bool is_variable_node(const expression_node< T > *node)
Definition exprtk.hpp:5604

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

5798 {
5799 for (std::size_t i = 0; i < N; ++i)
5800 {
5801 if (0 == b[i])
5802 return false;
5803 else if (!is_variable_node(b[i]))
5804 return false;
5805 }
5806
5807 return true;
5808 }

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

11097 {
11098 // a*x^n
11100 }

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

11104 {
11105 // a*x^n+b
11107 }

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

267 {
268 return s[s.size() - 1];
269 }

◆ branch_deletable()

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

Definition at line 5765 of file exprtk.hpp.

5766 {
5767 return (0 != node) &&
5768 !is_variable_node(node) &&
5769 !is_string_node (node) ;
5770 }
bool is_string_node(const expression_node< T > *node)
Definition exprtk.hpp:18237

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(), and exprtk::details::function_N_node< T, IFunction, N >::init_branches().

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

177 {
178 for (std::size_t i = 0; i < s.size(); ++i)
179 {
180 s[i] = static_cast<std::string::value_type>(std::tolower(s[i]));
181 }
182 }

◆ cleanup_escapes()

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

Definition at line 339 of file exprtk.hpp.

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

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

1681 {
1682 static const double fract10[] =
1683 {
1684 0.0,
1685 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,
1686 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,
1687 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,
1688 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,
1689 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,
1690 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,
1691 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,
1692 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,
1693 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,
1694 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,
1695 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,
1696 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,
1697 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,
1698 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,
1699 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,
1700 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,
1701 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,
1702 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,
1703 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,
1704 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,
1705 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,
1706 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,
1707 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,
1708 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,
1709 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,
1710 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,
1711 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,
1712 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,
1713 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,
1714 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,
1715 1.0E+301, 1.0E+302, 1.0E+303, 1.0E+304, 1.0E+305, 1.0E+306, 1.0E+307, 1.0E+308
1716 };
1717
1718 static const int fract10_size = static_cast<int>(sizeof(fract10) / sizeof(double));
1719
1720 const int e = std::abs(exponent);
1721
1722 if (exponent >= std::numeric_limits<T>::min_exponent10)
1723 {
1724 if (e < fract10_size)
1725 {
1726 if (exponent > 0)
1727 return T(d * fract10[e]);
1728 else
1729 return T(d / fract10[e]);
1730 }
1731 else
1732 return T(d * std::pow(10.0, 10.0 * exponent));
1733 }
1734 else
1735 {
1736 d /= T(fract10[ -std::numeric_limits<T>::min_exponent10]);
1737 return T(d / fract10[-exponent + std::numeric_limits<T>::min_exponent10]);
1738 }
1739 }

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

6535 {
6536 if (b)
6537 {
6538 branch = std::make_pair(b,branch_deletable(b));
6539 }
6540 }
bool branch_deletable(const expression_node< T > *node)
Definition exprtk.hpp:5765

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

6526 {
6527 if (b && (index < N))
6528 {
6529 branch[index] = std::make_pair(b,branch_deletable(b));
6530 }
6531 }

References branch_deletable(), and match_impl().

Referenced by 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 5932 of file exprtk.hpp.

5933 {
5934 if (0 != node)
5935 {
5937 ::delete_nodes(node);
5938 }
5939 }

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

21320 {
21321 p.state_.type_check_enabled = false;
21322 }

References disable_type_checking().

Referenced by disable_type_checking().

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

5090{}

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

5091{}

◆ dump_vector()

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

Definition at line 5093 of file exprtk.hpp.

5093{}

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

5898 {
5899 for (std::size_t i = 0; i < N; ++i)
5900 {
5902 }
5903 }
void free_node(NodeAllocator &, expression_node< T > *&node)
Definition exprtk.hpp:5920

References free_node(), and match_impl().

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

5910 {
5911 for (std::size_t i = 0; i < b.size(); ++i)
5912 {
5914 }
5915
5916 b.clear();
5917 }

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

5921 {
5922 if ((0 == node) || is_variable_node(node) || is_string_node(node))
5923 {
5924 return;
5925 }
5926
5927 node_collection_destructor<expression_node<T> >
5928 ::delete_nodes(node);
5929 }

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

Referenced by free_all_nodes(), and free_all_nodes().

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

262 {
263 return s[0];
264 }

◆ hex_to_bin()

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

Definition at line 307 of file exprtk.hpp.

308 {
309 if (('0' <= h) && (h <= '9'))
310 return (h - '0');
311 else
312 return static_cast<uchar_t>(std::toupper(h) - 'A');
313 }
unsigned char uchar_t
Definition exprtk.hpp:91

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

◆ imatch() [2/2]

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

Definition at line 189 of file exprtk.hpp.

190 {
191 if (s1.size() == s2.size())
192 {
193 for (std::size_t i = 0; i < s1.size(); ++i)
194 {
195 if (std::tolower(s1[i]) != std::tolower(s2[i]))
196 {
197 return false;
198 }
199 }
200
201 return true;
202 }
203
204 return false;
205 }

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

6554 {
6555 construct_branch_pair(branch, b0, 0);
6556 construct_branch_pair(branch, b1, 1);
6557 construct_branch_pair(branch, b2, 2);
6558 construct_branch_pair(branch, b3, 3);
6559 construct_branch_pair(branch, b4, 4);
6560 construct_branch_pair(branch, b5, 5);
6561 construct_branch_pair(branch, b6, 6);
6562 construct_branch_pair(branch, b7, 7);
6563 construct_branch_pair(branch, b8, 8);
6564 construct_branch_pair(branch, b9, 9);
6565 }
void construct_branch_pair(std::pair< expression_node< T > *, bool >(&branch)[N], expression_node< T > *b, const std::size_t &index)
Definition exprtk.hpp:6523

References construct_branch_pair(), and match_impl().

Here is the call graph for this function:

◆ is_base_function()

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

Definition at line 535 of file exprtk.hpp.

536 {
537 for (std::size_t i = 0; i < base_function_list_size; ++i)
538 {
539 if (imatch(function_name, base_function_list[i]))
540 {
541 return true;
542 }
543 }
544
545 return false;
546 }
bool imatch(const char_t c1, const char_t c2)
Definition exprtk.hpp:184
static const std::size_t base_function_list_size
Definition exprtk.hpp:469

References base_function_list, base_function_list_size, and imatch().

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

5599 {
5600 return node && (details::expression_node<T>::e_binary == node->type());
5601 }
virtual node_type type() const
Definition exprtk.hpp:5526

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

Here is the call graph for this function:

◆ is_boc_node()

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

Definition at line 18213 of file exprtk.hpp.

18214 {
18215 return (0 != dynamic_cast<const boc_base_node<T>*>(node));
18216 }

References match_impl().

Here is the call graph for this function:

◆ is_bracket()

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

Definition at line 146 of file exprtk.hpp.

147 {
148 return is_left_bracket(c) || is_right_bracket(c);
149 }
bool is_left_bracket(const char_t c)
Definition exprtk.hpp:136
bool is_right_bracket(const char_t c)
Definition exprtk.hpp:141

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

5723 {
5724 return node && (details::expression_node<T>::e_break == node->type());
5725 }

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

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

18208 {
18209 return (0 != dynamic_cast<const cob_base_node<T>*>(node));
18210 }

References match_impl().

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

18250 {
18251 return node && (expression_node<T>::e_stringconst == node->type());
18252 }

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

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

18256 {
18257 return node && (expression_node<T>::e_cstringvarrng == node->type());
18258 }

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

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

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

◆ is_constant_node()

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

Definition at line 5706 of file exprtk.hpp.

5707 {
5708 return node &&
5709 (
5712 );
5713 }

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

Referenced by exprtk::details::vector_assignment_node< T >::vector_assignment_node().

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

5729 {
5730 return node && (details::expression_node<T>::e_continue == node->type());
5731 }

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

Here is the call graph for this function:

◆ is_control_struct()

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

Definition at line 548 of file exprtk.hpp.

549 {
550 for (std::size_t i = 0; i < cntrl_struct_list_size; ++i)
551 {
552 if (imatch(cntrl_strct, cntrl_struct_list[i]))
553 {
554 return true;
555 }
556 }
557
558 return false;
559 }
static const std::size_t cntrl_struct_list_size
Definition exprtk.hpp:483

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

18196 {
18197 return (0 != dynamic_cast<const cov_base_node<T>*>(node));
18198 }

References match_impl().

Here is the call graph for this function:

◆ is_digit()

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

Definition at line 126 of file exprtk.hpp.

127 {
128 return ('0' <= c) && (c <= '9');
129 }

Referenced by is_invalid(), is_letter_or_digit(), is_valid_sf_symbol(), 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 5568 of file exprtk.hpp.

5569 {
5570 return std::equal_to<T>()(T(0),node->value());
5571 }

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

377{ 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 369 of file exprtk_real_adaptor.hpp.

369{ 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 5574 of file exprtk.hpp.

5575 {
5576 return std::equal_to<T>()(T(0),node.first->value());
5577 }

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

5741 {
5742 return node && (details::expression_node<T>::e_function == node->type());
5743 }

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

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

18304 {
18305 if (node)
18306 {
18307 switch (node->type())
18308 {
18319 case expression_node<T>::e_stringvararg : return true;
18320 default : return false;
18321 }
18322 }
18323
18324 return false;
18325 }

References match_impl().

Referenced by 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::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(), and exprtk::details::swap_genstrings_node< T >::swap_genstrings_node().

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

18298 {
18299 return node && (expression_node<T>::e_strgenrange == node->type());
18300 }

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

Here is the call graph for this function:

◆ is_hex_digit()

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

Definition at line 300 of file exprtk.hpp.

301 {
302 return (('0' <= digit) && (digit <= '9')) ||
303 (('A' <= digit) && (digit <= 'F')) ||
304 (('a' <= digit) && (digit <= 'f')) ;
305 }

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

157 {
158 return !is_whitespace (c) &&
159 !is_operator_char(c) &&
160 !is_letter (c) &&
161 !is_digit (c) &&
162 ('.' != c) &&
163 ('_' != c) &&
164 ('$' != c) &&
165 ('~' != c) &&
166 ('\'' != c);
167 }
bool is_whitespace(const char_t c)
Definition exprtk.hpp:97
bool is_operator_char(const char_t c)
Definition exprtk.hpp:105
bool is_letter(const char_t c)
Definition exprtk.hpp:120
bool is_digit(const char_t c)
Definition exprtk.hpp:126

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

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

Here is the call 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 5681 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::details::swap_vecvec_node< T >::swap_vecvec_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(), exprtk::details::vec_binop_vecvec_node< T, Operation >::vec_binop_vecvec_node(), 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 136 of file exprtk.hpp.

137 {
138 return ('(' == c) || ('[' == c) || ('{' == c);
139 }

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

121 {
122 return (('a' <= c) && (c <= 'z')) ||
123 (('A' <= c) && (c <= 'Z')) ;
124 }

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

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

132 {
133 return is_letter(c) || is_digit(c);
134 }

References is_digit(), and is_letter().

Referenced by exprtk::lexer::generator::scan_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 5580 of file exprtk.hpp.

5581 {
5582 return node && (details::expression_node<T>::e_constant == node->type());
5583 }

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

Here is the call graph for this function:

◆ is_logic_opr()

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

Definition at line 561 of file exprtk.hpp.

562 {
563 for (std::size_t i = 0; i < logic_ops_list_size; ++i)
564 {
565 if (imatch(lgc_opr, logic_ops_list[i]))
566 {
567 return true;
568 }
569 }
570
571 return false;
572 }
static const std::size_t logic_ops_list_size
Definition exprtk.hpp:476

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

5593 {
5594 return node && (details::expression_node<T>::e_neg == node->type());
5595 }

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

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

5755 {
5756 if (node && is_unary_node(node))
5757 {
5758 return (details::e_neg == static_cast<const unary_node<T>*>(node)->operation());
5759 }
5760 else
5761 return false;
5762 }
bool is_unary_node(const expression_node< T > *node)
Definition exprtk.hpp:5586

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

Definition at line 5716 of file exprtk.hpp.

5717 {
5718 return node && (details::expression_node<T>::e_null == node->type());
5719 }

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

Here is the call graph for this function:

◆ is_operator_char()

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

Definition at line 105 of file exprtk.hpp.

106 {
107 return ('+' == c) || ('-' == c) ||
108 ('*' == c) || ('/' == c) ||
109 ('^' == c) || ('<' == c) ||
110 ('>' == c) || ('=' == c) ||
111 (',' == c) || ('!' == c) ||
112 ('(' == c) || (')' == c) ||
113 ('[' == c) || (']' == c) ||
114 ('{' == c) || ('}' == c) ||
115 ('%' == c) || (':' == c) ||
116 ('?' == c) || ('&' == c) ||
117 ('|' == c) || (';' == c) ;
118 }

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

5670 {
5671 return node && (details::expression_node<T>::e_rbveccelem == node->type());
5672 }

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

Referenced by exprtk::details::assignment_rebasevec_celem_node< T >::assignment_rebasevec_celem_node(), and exprtk::details::assignment_rebasevec_celem_op_node< T, Operation >::assignment_rebasevec_celem_op_node().

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

5664 {
5665 return node && (details::expression_node<T>::e_rbveccelemrtc == node->type());
5666 }

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

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

5652 {
5653 return node && (details::expression_node<T>::e_rbvecelem == node->type());
5654 }

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

Referenced by exprtk::details::assignment_rebasevec_elem_node< T >::assignment_rebasevec_elem_node(), and exprtk::details::assignment_rebasevec_elem_op_node< T, Operation >::assignment_rebasevec_elem_op_node().

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

5658 {
5659 return node && (details::expression_node<T>::e_rbvecelemrtc == node->type());
5660 }

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(), and exprtk::details::assignment_rebasevec_elem_rtc_node< T >::assignment_rebasevec_elem_rtc_node().

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

523 {
524 for (std::size_t i = 0; i < reserved_symbols_size; ++i)
525 {
526 if (imatch(symbol, reserved_symbols[i]))
527 {
528 return true;
529 }
530 }
531
532 return false;
533 }
static const std::size_t reserved_symbols_size
Definition exprtk.hpp:454

References imatch(), reserved_symbols, and reserved_symbols_size.

Here is the call graph for this function:

◆ is_reserved_word()

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

Definition at line 509 of file exprtk.hpp.

510 {
511 for (std::size_t i = 0; i < reserved_words_size; ++i)
512 {
513 if (imatch(symbol, reserved_words[i]))
514 {
515 return true;
516 }
517 }
518
519 return false;
520 }
static const std::size_t reserved_words_size
Definition exprtk.hpp:435

References imatch(), reserved_words, and reserved_words_size.

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

5747 {
5748 return node && (details::expression_node<T>::e_return == node->type());
5749 }

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

Here is the call graph for this function:

◆ is_right_bracket()

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

Definition at line 141 of file exprtk.hpp.

142 {
143 return (')' == c) || (']' == c) || ('}' == c);
144 }

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

16975 {
16976 switch (n->type())
16977 {
16978 case expression_node<T>::e_vovov : return true;
16979 case expression_node<T>::e_vovoc : return true;
16980 case expression_node<T>::e_vocov : return true;
16981 case expression_node<T>::e_covov : return true;
16982 case expression_node<T>::e_covoc : return true;
16983 default : return false;
16984 }
16985 }

References match_impl().

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

17153 {
17154 switch (n->type())
17155 {
17156 case expression_node<T>::e_vovovov : return true;
17157 case expression_node<T>::e_vovovoc : return true;
17158 case expression_node<T>::e_vovocov : return true;
17159 case expression_node<T>::e_vocovov : return true;
17160 case expression_node<T>::e_covovov : return true;
17161 case expression_node<T>::e_covocov : return true;
17162 case expression_node<T>::e_vocovoc : return true;
17163 case expression_node<T>::e_covovoc : return true;
17164 case expression_node<T>::e_vococov : return true;
17165 default : return false;
17166 }
17167 }

References match_impl().

Here is the call graph for this function:

◆ is_sign()

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

Definition at line 151 of file exprtk.hpp.

152 {
153 return ('+' == c) || ('-' == c);
154 }

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

18262 {
18263 return node && (expression_node<T>::e_strass == node->type());
18264 }

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

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

18286 {
18287 return node && (expression_node<T>::e_strccondition == node->type());
18288 }

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

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

18268 {
18269 return node && (expression_node<T>::e_strconcat == node->type());
18270 }

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

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

18280 {
18281 return node && (expression_node<T>::e_strcondition == node->type());
18282 }

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

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

18274 {
18275 return node && (expression_node<T>::e_strfunction == node->type());
18276 }

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

Here is the call graph for this function:

◆ is_string_node()

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

Definition at line 18237 of file exprtk.hpp.

18238 {
18239 return node && (expression_node<T>::e_stringvar == node->type());
18240 }

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

Referenced by exprtk::details::assignment_string_node< T, AssignmentProcess >::assignment_string_node(), branch_deletable(), exprtk::details::range_pack< T >::free(), free_node(), and exprtk::details::swap_string_node< T >::swap_string_node().

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

◆ is_string_range_node()

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

Definition at line 18243 of file exprtk.hpp.

18244 {
18245 return node && (expression_node<T>::e_stringvarrng == node->type());
18246 }

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

Referenced by exprtk::details::assignment_string_range_node< T, AssignmentProcess >::assignment_string_range_node().

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

18292 {
18293 return node && (expression_node<T>::e_stringvararg == node->type());
18294 }

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

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

5735 {
5736 return node && (details::expression_node<T>::e_swap == node->type());
5737 }

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

18220 {
18221 return (0 != dynamic_cast<const T0oT1oT2_base_node<T>*>(node));
18222 }

References match_impl().

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

18226 {
18227 return (0 != dynamic_cast<const T0oT1oT2oT3_base_node<T>*>(node));
18228 }

References match_impl().

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

Definition at line 5540 of file exprtk.hpp.

5541 {
5542 return std::not_equal_to<double>()(0.0,v);
5543 }

Referenced by exprtk::details::and_op< T >::process(), exprtk::details::nand_op< T >::process(), exprtk::details::or_op< T >::process(), and exprtk::details::nor_op< T >::process().

Here is the caller graph for this function:

◆ is_true() [3/8]

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

Definition at line 5556 of file exprtk.hpp.

5557 {
5558 return std::not_equal_to<T>()(T(0),node->value());
5559 }

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

5551 {
5552 return std::not_equal_to<float>()(0.0f,v);
5553 }

◆ is_true() [5/8]

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

Definition at line 5545 of file exprtk.hpp.

5546 {
5547 return std::not_equal_to<long double>()(0.0L,v);
5548 }

◆ is_true() [6/8]

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

Definition at line 376 of file exprtk_mpfr_adaptor.hpp.

376{ 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 368 of file exprtk_real_adaptor.hpp.

368{ 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 5562 of file exprtk.hpp.

5563 {
5564 return std::not_equal_to<T>()(T(0),node.first->value());
5565 }

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

5587 {
5588 return node && (details::expression_node<T>::e_unary == node->type());
5589 }

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

Referenced by is_negate_node().

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

18232 {
18233 return (0 != dynamic_cast<const uv_base_node<T>*>(node));
18234 }

References match_impl().

Here is the call graph for this function:

◆ is_valid_sf_symbol()

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

Definition at line 251 of file exprtk.hpp.

252 {
253 // Special function: $f12 or $F34
254 return (4 == symbol.size()) &&
255 ('$' == symbol[0]) &&
256 imatch('f',symbol[1]) &&
257 is_digit(symbol[2]) &&
258 is_digit(symbol[3]);
259 }

References imatch(), and is_digit().

Here is the call graph for this function:

◆ is_valid_string_char()

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

Definition at line 169 of file exprtk.hpp.

170 {
171 return std::isprint(static_cast<uchar_t>(c)) ||
172 is_whitespace(c);
173 }

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

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

Definition at line 5604 of file exprtk.hpp.

5605 {
5606 return node && (details::expression_node<T>::e_variable == node->type());
5607 }

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(), branch_deletable(), exprtk::details::vararg_function_node< T, VarArgFunction >::collect_nodes(), exprtk::details::range_pack< T >::free(), free_node(), exprtk::details::generic_function_node< T, GenericFunction >::init_branches(), and exprtk::details::vararg_varnode< T, VarArgFunction >::vararg_varnode().

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

5634 {
5635 return node && (details::expression_node<T>::e_veccelem == node->type());
5636 }

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

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

5646 {
5647 return node && (details::expression_node<T>::e_veccelemrtc == node->type());
5648 }

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

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

5628 {
5629 return node && (details::expression_node<T>::e_vecelem == node->type());
5630 }

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

Referenced by exprtk::details::assignment_vec_elem_node< T >::assignment_vec_elem_node(), and exprtk::details::assignment_vec_elem_op_node< T, Operation >::assignment_vec_elem_op_node().

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

5640 {
5641 return node && (details::expression_node<T>::e_vecelemrtc == node->type());
5642 }

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(), and exprtk::details::assignment_vec_elem_rtc_node< T >::assignment_vec_elem_rtc_node().

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

◆ is_voc_node()

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

Definition at line 18201 of file exprtk.hpp.

18202 {
18203 return (0 != dynamic_cast<const voc_base_node<T>*>(node));
18204 }

References match_impl().

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

18190 {
18191 return (0 != dynamic_cast<const vov_base_node<T>*>(node));
18192 }

References match_impl().

Here is the call graph for this function:

◆ is_whitespace()

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

Definition at line 97 of file exprtk.hpp.

98 {
99 return (' ' == c) || ('\n' == c) ||
100 ('\r' == c) || ('\t' == c) ||
101 ('\b' == c) || ('\v' == c) ||
102 ('\f' == c) ;
103 }

Referenced by 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 18713 of file exprtk.hpp.

18714 {
18715 #define register_op(Symbol, Type, Args) \
18716 m.insert(std::make_pair(std::string(Symbol),details::base_operation_t(Type,Args))); \
18717
18718 register_op("abs" , e_abs , 1)
18719 register_op("acos" , e_acos , 1)
18720 register_op("acosh" , e_acosh , 1)
18721 register_op("asin" , e_asin , 1)
18722 register_op("asinh" , e_asinh , 1)
18723 register_op("atan" , e_atan , 1)
18724 register_op("atanh" , e_atanh , 1)
18725 register_op("ceil" , e_ceil , 1)
18726 register_op("cos" , e_cos , 1)
18727 register_op("cosh" , e_cosh , 1)
18728 register_op("exp" , e_exp , 1)
18729 register_op("expm1" , e_expm1 , 1)
18730 register_op("floor" , e_floor , 1)
18731 register_op("log" , e_log , 1)
18732 register_op("log10" , e_log10 , 1)
18733 register_op("log2" , e_log2 , 1)
18734 register_op("log1p" , e_log1p , 1)
18735 register_op("round" , e_round , 1)
18736 register_op("sin" , e_sin , 1)
18737 register_op("sinc" , e_sinc , 1)
18738 register_op("sinh" , e_sinh , 1)
18739 register_op("sec" , e_sec , 1)
18740 register_op("csc" , e_csc , 1)
18741 register_op("sqrt" , e_sqrt , 1)
18742 register_op("tan" , e_tan , 1)
18743 register_op("tanh" , e_tanh , 1)
18744 register_op("cot" , e_cot , 1)
18745 register_op("rad2deg" , e_r2d , 1)
18746 register_op("deg2rad" , e_d2r , 1)
18747 register_op("deg2grad" , e_d2g , 1)
18748 register_op("grad2deg" , e_g2d , 1)
18749 register_op("sgn" , e_sgn , 1)
18750 register_op("not" , e_notl , 1)
18751 register_op("erf" , e_erf , 1)
18752 register_op("erfc" , e_erfc , 1)
18753 register_op("ncdf" , e_ncdf , 1)
18754 register_op("frac" , e_frac , 1)
18755 register_op("trunc" , e_trunc , 1)
18756 register_op("atan2" , e_atan2 , 2)
18757 register_op("mod" , e_mod , 2)
18758 register_op("logn" , e_logn , 2)
18759 register_op("pow" , e_pow , 2)
18760 register_op("root" , e_root , 2)
18761 register_op("roundn" , e_roundn , 2)
18762 register_op("equal" , e_equal , 2)
18763 register_op("not_equal" , e_nequal , 2)
18764 register_op("hypot" , e_hypot , 2)
18765 register_op("shr" , e_shr , 2)
18766 register_op("shl" , e_shl , 2)
18767 register_op("clamp" , e_clamp , 3)
18768 register_op("iclamp" , e_iclamp , 3)
18769 register_op("inrange" , e_inrange , 3)
18770 #undef register_op
18771 }
#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 12787 of file exprtk.hpp.

12789 {
12790 memory_context_t<T> result_ctxt;
12791 result_ctxt.temp_ = (vec_holder.rebaseable()) ?
12792 new vector_holder<T>(vec_holder,vds) :
12793 new vector_holder<T>(vds) ;
12794 result_ctxt.temp_vec_node_ = new vector_node <T>(vds,result_ctxt.temp_);
12795 return result_ctxt;
12796 }

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

12802 {
12803 memory_context_t<T> result_ctxt;
12804
12805 if (!vec_holder0.rebaseable() && !vec_holder1.rebaseable())
12806 result_ctxt.temp_ = new vector_holder<T>(vds);
12807 else if (vec_holder0.rebaseable() && !vec_holder1.rebaseable())
12808 result_ctxt.temp_ = new vector_holder<T>(vec_holder0,vds);
12809 else if (!vec_holder0.rebaseable() && vec_holder1.rebaseable())
12810 result_ctxt.temp_ = new vector_holder<T>(vec_holder1,vds);
12811 else
12812 {
12813 result_ctxt.temp_ = (vec_holder0.base_size() >= vec_holder1.base_size()) ?
12814 new vector_holder<T>(vec_holder0, vds) :
12815 new vector_holder<T>(vec_holder1, vds) ;
12816 }
12817
12818 result_ctxt.temp_vec_node_ = new vector_node <T>(vds,result_ctxt.temp_);
12819 return result_ctxt;
12820 }
std::size_t base_size() const
Definition exprtk.hpp:6461

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

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

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::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_assignment_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::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::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::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::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::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_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_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::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(), 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::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::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::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::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(), 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(), 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_assignment_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::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_assignment_node< T >::vector_assignment_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_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 316 of file exprtk.hpp.

318 {
319 if (
320 (end == (itr )) ||
321 (end == (itr + 1)) ||
322 (end == (itr + 2)) ||
323 (end == (itr + 3)) ||
324 ('0' != *(itr )) ||
325 ('X' != std::toupper(*(itr + 1))) ||
326 (!is_hex_digit(*(itr + 2))) ||
327 (!is_hex_digit(*(itr + 3)))
328 )
329 {
330 return false;
331 }
332
333 result = hex_to_bin(static_cast<uchar_t>(*(itr + 2))) << 4 |
334 hex_to_bin(static_cast<uchar_t>(*(itr + 3))) ;
335
336 return true;
337 }
bool is_hex_digit(const uchar_t digit)
Definition exprtk.hpp:300

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

1853 {
1854 static const char_t inf_uc[] = "INFINITY";
1855 static const char_t inf_lc[] = "infinity";
1856 static const std::size_t inf_length = 8;
1857
1858 const std::size_t length = static_cast<std::size_t>(std::distance(itr,end));
1859
1860 if ((3 != length) && (inf_length != length))
1861 return false;
1862
1863 char_cptr inf_itr = ('i' == (*itr)) ? inf_lc : inf_uc;
1864
1865 while (end != itr)
1866 {
1867 if (*inf_itr == static_cast<char_t>(*itr))
1868 {
1869 ++itr;
1870 ++inf_itr;
1871 continue;
1872 }
1873 else
1874 return false;
1875 }
1876
1877 if (negative)
1878 t = -std::numeric_limits<T>::infinity();
1879 else
1880 t = std::numeric_limits<T>::infinity();
1881
1882 return true;
1883 }
char_t const * char_cptr
Definition exprtk.hpp:90

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

1820 {
1821 typedef typename std::iterator_traits<Iterator>::value_type type;
1822
1823 static const std::size_t nan_length = 3;
1824
1825 if (std::distance(itr,end) != static_cast<int>(nan_length))
1826 return false;
1827
1828 if (static_cast<type>('n') == (*itr))
1829 {
1830 if (
1831 (static_cast<type>('a') != *(itr + 1)) ||
1832 (static_cast<type>('n') != *(itr + 2))
1833 )
1834 {
1835 return false;
1836 }
1837 }
1838 else if (
1839 (static_cast<type>('A') != *(itr + 1)) ||
1840 (static_cast<type>('N') != *(itr + 2))
1841 )
1842 {
1843 return false;
1844 }
1845
1846 t = std::numeric_limits<T>::quiet_NaN();
1847
1848 return true;
1849 }

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

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

References match_impl().

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

786 {
787 set_zero_value(v.data(),v.size());
788 }
void set_zero_value(T *data, const std::size_t size)
Definition exprtk.hpp:779

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

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

Referenced by set_zero_value(), and exprtk::details::vector_assignment_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 2051 of file exprtk.hpp.

2052 {
2053 const typename numeric::details::number_type<T>::type num_type;
2054
2055 char_cptr begin = s.data();
2056 char_cptr end = s.data() + s.size();
2057
2058 return string_to_real(begin, end, t, num_type);
2059 }
bool string_to_real(Iterator &itr_external, const Iterator end, T &t, numeric::details::real_type_tag)
Definition exprtk.hpp:1893

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

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

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

363 {
365 return string_to_real<Iterator,double>(itr_external,end,t.d_,num_type);
366 }
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 1893 of file exprtk.hpp.

1894 {
1895 if (end == itr_external) return false;
1896
1897 Iterator itr = itr_external;
1898
1899 T d = T(0);
1900
1901 const bool negative = ('-' == (*itr));
1902
1903 if (negative || '+' == (*itr))
1904 {
1905 if (end == ++itr)
1906 return false;
1907 }
1908
1909 bool instate = false;
1910
1911 static const char_t zero = static_cast<uchar_t>('0');
1912
1913 #define parse_digit_1(d) \
1914 if ((digit = (*itr - zero)) < 10) \
1915 { d = d * T(10) + digit; } \
1916 else \
1917 { break; } \
1918 if (end == ++itr) break; \
1919
1920 #define parse_digit_2(d) \
1921 if ((digit = (*itr - zero)) < 10) \
1922 { d = d * T(10) + digit; } \
1923 else \
1924 { break; } \
1925 ++itr; \
1926
1927 if ('.' != (*itr))
1928 {
1929 const Iterator curr = itr;
1930
1931 while ((end != itr) && (zero == (*itr))) ++itr;
1932
1933 while (end != itr)
1934 {
1935 unsigned int digit;
1936 parse_digit_1(d)
1937 parse_digit_1(d)
1938 parse_digit_2(d)
1939 }
1940
1941 if (curr != itr) instate = true;
1942 }
1943
1944 int exponent = 0;
1945
1946 if (end != itr)
1947 {
1948 if ('.' == (*itr))
1949 {
1950 const Iterator curr = ++itr;
1951 T tmp_d = T(0);
1952
1953 while (end != itr)
1954 {
1955 unsigned int digit;
1956 parse_digit_1(tmp_d)
1957 parse_digit_1(tmp_d)
1958 parse_digit_2(tmp_d)
1959 }
1960
1961 if (curr != itr)
1962 {
1963 instate = true;
1964
1965 const int frac_exponent = static_cast<int>(-std::distance(curr, itr));
1966
1967 if (!valid_exponent<T>(frac_exponent, numeric::details::real_type_tag()))
1968 return false;
1969
1970 d += compute_pow10(tmp_d, frac_exponent);
1971 }
1972
1973 #undef parse_digit_1
1974 #undef parse_digit_2
1975 }
1976
1977 if (end != itr)
1978 {
1979 typename std::iterator_traits<Iterator>::value_type c = (*itr);
1980
1981 if (('e' == c) || ('E' == c))
1982 {
1983 int exp = 0;
1984
1985 if (!details::string_to_type_converter_impl_ref(++itr, end, exp))
1986 {
1987 if (end == itr)
1988 return false;
1989 else
1990 c = (*itr);
1991 }
1992
1993 exponent += exp;
1994 }
1995
1996 if (end != itr)
1997 {
1998 if (('f' == c) || ('F' == c) || ('l' == c) || ('L' == c))
1999 ++itr;
2000 else if ('#' == c)
2001 {
2002 if (end == ++itr)
2003 return false;
2004 else if (('I' <= (*itr)) && ((*itr) <= 'n'))
2005 {
2006 if (('i' == (*itr)) || ('I' == (*itr)))
2007 {
2008 return parse_inf(itr, end, t, negative);
2009 }
2010 else if (('n' == (*itr)) || ('N' == (*itr)))
2011 {
2012 return parse_nan(itr, end, t);
2013 }
2014 else
2015 return false;
2016 }
2017 else
2018 return false;
2019 }
2020 else if (('I' <= (*itr)) && ((*itr) <= 'n'))
2021 {
2022 if (('i' == (*itr)) || ('I' == (*itr)))
2023 {
2024 return parse_inf(itr, end, t, negative);
2025 }
2026 else if (('n' == (*itr)) || ('N' == (*itr)))
2027 {
2028 return parse_nan(itr, end, t);
2029 }
2030 else
2031 return false;
2032 }
2033 else
2034 return false;
2035 }
2036 }
2037 }
2038
2039 if ((end != itr) || (!instate))
2040 return false;
2041 else if (!valid_exponent<T>(exponent, numeric::details::real_type_tag()))
2042 return false;
2043 else if (exponent)
2044 d = compute_pow10(d,exponent);
2045
2046 t = static_cast<T>((negative) ? -d : d);
2047 return true;
2048 }
#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:1819
T compute_pow10(T d, const int exponent)
Definition exprtk.hpp:1680
static bool parse_inf(Iterator &itr, const Iterator end, T &t, const bool negative)
Definition exprtk.hpp:1852

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

1743 {
1744 if (itr == end)
1745 return false;
1746
1747 const bool negative = ('-' == (*itr));
1748
1749 if (negative || ('+' == (*itr)))
1750 {
1751 if (end == ++itr)
1752 return false;
1753 }
1754
1755 static const uchar_t zero = static_cast<uchar_t>('0');
1756
1757 while ((end != itr) && (zero == (*itr))) ++itr;
1758
1759 bool return_result = true;
1760 unsigned int digit = 0;
1761 const std::size_t length = static_cast<std::size_t>(std::distance(itr,end));
1762
1763 if (length <= 4)
1764 {
1765 switch (length)
1766 {
1767 #ifdef exprtk_use_lut
1768
1769 #define exprtk_process_digit \
1770 if ((digit = details::digit_table[(int)*itr++]) < 10) \
1771 result = result * 10 + (digit); \
1772 else \
1773 { \
1774 return_result = false; \
1775 break; \
1776 } \
1777 exprtk_fallthrough \
1778
1779 #else
1780
1781 #define exprtk_process_digit \
1782 if ((digit = (*itr++ - zero)) < 10) \
1783 result = result * T(10) + digit; \
1784 else \
1785 { \
1786 return_result = false; \
1787 break; \
1788 } \
1789 exprtk_fallthrough \
1790
1791 #endif
1792
1793 case 4 : exprtk_process_digit
1794 case 3 : exprtk_process_digit
1795 case 2 : exprtk_process_digit
1796 case 1 : if ((digit = (*itr - zero))>= 10)
1797 {
1798 digit = 0;
1799 return_result = false;
1800 }
1801
1802 #undef exprtk_process_digit
1803 }
1804 }
1805 else
1806 return_result = false;
1807
1808 if (length && return_result)
1809 {
1810 result = result * 10 + static_cast<T>(digit);
1811 ++itr;
1812 }
1813
1814 result = negative ? -result : result;
1815 return return_result;
1816 }
#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 4994 of file exprtk.hpp.

4995 {
4996 switch (opr)
4997 {
4998 case e_add : return "+" ;
4999 case e_sub : return "-" ;
5000 case e_mul : return "*" ;
5001 case e_div : return "/" ;
5002 case e_mod : return "%" ;
5003 case e_pow : return "^" ;
5004 case e_assign : return ":=" ;
5005 case e_addass : return "+=" ;
5006 case e_subass : return "-=" ;
5007 case e_mulass : return "*=" ;
5008 case e_divass : return "/=" ;
5009 case e_modass : return "%=" ;
5010 case e_lt : return "<" ;
5011 case e_lte : return "<=" ;
5012 case e_eq : return "==" ;
5013 case e_equal : return "=" ;
5014 case e_ne : return "!=" ;
5015 case e_nequal : return "<>" ;
5016 case e_gte : return ">=" ;
5017 case e_gt : return ">" ;
5018 case e_and : return "and" ;
5019 case e_or : return "or" ;
5020 case e_xor : return "xor" ;
5021 case e_nand : return "nand";
5022 case e_nor : return "nor" ;
5023 case e_xnor : return "xnor";
5024 default : return "N/A" ;
5025 }
5026 }

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

Here is the call graph for this function:

◆ to_str() [2/3]

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

Definition at line 271 of file exprtk.hpp.

272 {
273 if (0 == i)
274 return std::string("0");
275
276 std::string result;
277
278 const int sign = (i < 0) ? -1 : 1;
279
280 for ( ; i; i /= 10)
281 {
282 result += '0' + static_cast<char_t>(sign * (i % 10));
283 }
284
285 if (sign < 0)
286 {
287 result += '-';
288 }
289
290 std::reverse(result.begin(), result.end());
291
292 return result;
293 }

Referenced by to_str().

Here is the caller graph for this function:

◆ to_str() [3/3]

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

Definition at line 295 of file exprtk.hpp.

296 {
297 return to_str(static_cast<int>(i));
298 }
std::string to_str(int i)
Definition exprtk.hpp:271

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

1887 {
1888 using namespace details::numeric;
1889 return (numeric_info<T>::min_exp <= exponent) && (exponent <= numeric_info<T>::max_exp);
1890 }

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

15086 {
15087 return t;
15088 }

◆ value() [2/4]

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

Definition at line 15079 of file exprtk.hpp.

15080 {
15081 return (*t);
15082 }

◆ value() [3/4]

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

Definition at line 15067 of file exprtk.hpp.

15068 {
15069 return n->value();
15070 }

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

15074 {
15075 return n.first->value();
15076 }

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

668 {
669 return match_impl<char_cptr,cis_match>
670 (
671 wild_card.data(),
672 wild_card.data() + wild_card.size(),
673 str.data(),
674 str.data() + str.size(),
675 '*', '?'
676 );
677 }

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

655 {
656 return match_impl<char_cptr,cs_match>
657 (
658 wild_card.data(),
659 wild_card.data() + wild_card.size(),
660 str.data(),
661 str.data() + str.size(),
662 '*', '?'
663 );
664 }

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

486 {
487 "+", "-", "*", "/", "%", "^"
488 };

◆ arithmetic_ops_list_size

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

Definition at line 490 of file exprtk.hpp.

◆ assignment_ops_list

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

Definition at line 492 of file exprtk.hpp.

493 {
494 ":=", "+=", "-=",
495 "*=", "/=", "%="
496 };

◆ assignment_ops_list_size

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

Definition at line 498 of file exprtk.hpp.

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

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

Referenced by 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

Definition at line 469 of file exprtk.hpp.

Referenced by is_base_function().

◆ cntrl_struct_list

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

Definition at line 478 of file exprtk.hpp.

479 {
480 "if", "switch", "for", "while", "repeat", "return"
481 };

Referenced by 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

Definition at line 483 of file exprtk.hpp.

Referenced by is_control_struct().

◆ inequality_ops_list

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

Definition at line 500 of file exprtk.hpp.

501 {
502 "<", "<=", "==",
503 "=", "!=", "<>",
504 ">=", ">"
505 };

◆ inequality_ops_list_size

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

Definition at line 507 of file exprtk.hpp.

◆ logic_ops_list

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

Definition at line 471 of file exprtk.hpp.

472 {
473 "and", "nand", "nor", "not", "or", "xnor", "xor", "&", "|"
474 };

Referenced by 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

Definition at line 476 of file exprtk.hpp.

Referenced by is_logic_opr().

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

791 {
792 1.0,
793 1.0E+001, 1.0E+002, 1.0E+003, 1.0E+004,
794 1.0E+005, 1.0E+006, 1.0E+007, 1.0E+008,
795 1.0E+009, 1.0E+010, 1.0E+011, 1.0E+012,
796 1.0E+013, 1.0E+014, 1.0E+015, 1.0E+016
797 };

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", "atan",
"atanh", "atan2", "avg", "break", "case", "ceil", "clamp",
"continue", "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 437 of file exprtk.hpp.

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

Referenced by is_reserved_symbol().

◆ reserved_symbols_size

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

Definition at line 454 of file exprtk.hpp.

Referenced by is_reserved_symbol().

◆ reserved_words

const std::string exprtk::details::reserved_words[]
static
Initial value:
=
{
"break", "case", "continue", "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 426 of file exprtk.hpp.

427 {
428 "break", "case", "continue", "default", "false", "for",
429 "if", "else", "ilike", "in", "like", "and", "nand", "nor",
430 "not", "null", "or", "repeat", "return", "shl", "shr",
431 "swap", "switch", "true", "until", "var", "while", "xnor",
432 "xor", "&", "|"
433 };

Referenced by is_reserved_word().

◆ reserved_words_size

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

Definition at line 435 of file exprtk.hpp.

Referenced by is_reserved_word().