C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
my_usr_ext< T > Struct Template Reference
Inheritance diagram for my_usr_ext< T >:
[legend]
Collaboration diagram for my_usr_ext< T >:
[legend]

Public Types

typedef exprtk::symbol_table< T > symbol_table_t
 
typedef exprtk::parser< T >::unknown_symbol_resolver usr_t
 
typedef exprtk::symbol_table< T > symbol_table_t
 
typedef exprtk::parser< T >::unknown_symbol_resolver usr_t
 
typedef exprtk::symbol_table< T > symbol_table_t
 
typedef exprtk::parser< T >::unknown_symbol_resolver usr_t
 
- Public Types inherited from exprtk::parser< T >::unknown_symbol_resolver
enum  usr_symbol_type { e_usr_unknown_type = 0 , e_usr_variable_type = 1 , e_usr_constant_type = 2 }
 
enum  usr_mode { e_usrmode_default = 0 , e_usrmode_extended = 1 }
 

Public Member Functions

 my_usr_ext ()
 
bool process (const std::string &unknown_symbol, symbol_table_t &symbol_table, std::string &error_message)
 
 my_usr_ext ()
 
bool process (const std::string &unknown_symbol, symbol_table_t &symbol_table, std::string &error_message)
 
 my_usr_ext ()
 
bool process (const std::string &unknown_symbol, symbol_table_t &symbol_table, std::string &error_message)
 
virtual bool process (const std::string &, usr_symbol_type &st, T &default_value, std::string &error_message)
 
virtual bool process (const std::string &, symbol_table_t &, std::string &)
 
virtual bool process (const std::string &, usr_symbol_type &st, T &default_value, std::string &error_message)
 
virtual bool process (const std::string &, symbol_table_t &, std::string &)
 
virtual bool process (const std::string &, usr_symbol_type &st, T &default_value, std::string &error_message)
 
virtual bool process (const std::string &, symbol_table_t &, std::string &)
 
- Public Member Functions inherited from exprtk::parser< T >::unknown_symbol_resolver
 unknown_symbol_resolver (const usr_mode m=e_usrmode_default)
 
virtual ~unknown_symbol_resolver ()
 

Additional Inherited Members

- Public Attributes inherited from exprtk::parser< T >::unknown_symbol_resolver
usr_mode mode
 

Detailed Description

template<typename T>
struct my_usr_ext< T >

Definition at line 9851 of file exprtk_mpfr_test.cpp.

Member Typedef Documentation

◆ symbol_table_t [1/3]

template<typename T >
typedef exprtk::symbol_table<T> my_usr_ext< T >::symbol_table_t

Definition at line 9853 of file exprtk_mpfr_test.cpp.

◆ symbol_table_t [2/3]

template<typename T >
typedef exprtk::symbol_table<T> my_usr_ext< T >::symbol_table_t

Definition at line 9851 of file exprtk_real_test.cpp.

◆ symbol_table_t [3/3]

template<typename T >
typedef exprtk::symbol_table<T> my_usr_ext< T >::symbol_table_t

Definition at line 9879 of file exprtk_test.cpp.

◆ usr_t [1/3]

template<typename T >
typedef exprtk::parser<T>::unknown_symbol_resolver my_usr_ext< T >::usr_t

Definition at line 9854 of file exprtk_mpfr_test.cpp.

◆ usr_t [2/3]

template<typename T >
typedef exprtk::parser<T>::unknown_symbol_resolver my_usr_ext< T >::usr_t

Definition at line 9852 of file exprtk_real_test.cpp.

◆ usr_t [3/3]

template<typename T >
typedef exprtk::parser<T>::unknown_symbol_resolver my_usr_ext< T >::usr_t

Definition at line 9880 of file exprtk_test.cpp.

Constructor & Destructor Documentation

◆ my_usr_ext() [1/3]

template<typename T >
my_usr_ext< T >::my_usr_ext ( )
inline

Definition at line 9858 of file exprtk_mpfr_test.cpp.

9860 {}
exprtk::parser< T >::unknown_symbol_resolver usr_t

◆ my_usr_ext() [2/3]

template<typename T >
my_usr_ext< T >::my_usr_ext ( )
inline

Definition at line 9856 of file exprtk_real_test.cpp.

◆ my_usr_ext() [3/3]

template<typename T >
my_usr_ext< T >::my_usr_ext ( )
inline

Definition at line 9884 of file exprtk_test.cpp.

Member Function Documentation

◆ process() [1/9]

template<typename T >
virtual bool exprtk::parser< T >::unknown_symbol_resolver::process ( const std::string &  ,
symbol_table_t ,
std::string &   
)
inlinevirtual

Reimplemented from exprtk::parser< T >::unknown_symbol_resolver.

Definition at line 23466 of file exprtk.hpp.

23469 {
23470 return false;
23471 }

◆ process() [2/9]

template<typename T >
virtual bool exprtk::parser< T >::unknown_symbol_resolver::process ( const std::string &  ,
symbol_table_t ,
std::string &   
)
inlinevirtual

Reimplemented from exprtk::parser< T >::unknown_symbol_resolver.

Definition at line 23466 of file exprtk.hpp.

23469 {
23470 return false;
23471 }

◆ process() [3/9]

template<typename T >
virtual bool exprtk::parser< T >::unknown_symbol_resolver::process ( const std::string &  ,
symbol_table_t ,
std::string &   
)
inlinevirtual

Reimplemented from exprtk::parser< T >::unknown_symbol_resolver.

Definition at line 23466 of file exprtk.hpp.

23469 {
23470 return false;
23471 }

◆ process() [4/9]

template<typename T >
virtual bool exprtk::parser< T >::unknown_symbol_resolver::process ( const std::string &  ,
usr_symbol_type st,
T &  default_value,
std::string &  error_message 
)
inlinevirtual

Reimplemented from exprtk::parser< T >::unknown_symbol_resolver.

Definition at line 23451 of file exprtk.hpp.

23455 {
23456 if (e_usrmode_default != mode)
23457 return false;
23458
23460 default_value = T(0);
23461 error_message.clear();
23462
23463 return true;
23464 }

◆ process() [5/9]

template<typename T >
virtual bool exprtk::parser< T >::unknown_symbol_resolver::process ( const std::string &  ,
usr_symbol_type st,
T &  default_value,
std::string &  error_message 
)
inlinevirtual

Reimplemented from exprtk::parser< T >::unknown_symbol_resolver.

Definition at line 23451 of file exprtk.hpp.

23455 {
23456 if (e_usrmode_default != mode)
23457 return false;
23458
23460 default_value = T(0);
23461 error_message.clear();
23462
23463 return true;
23464 }

◆ process() [6/9]

template<typename T >
virtual bool exprtk::parser< T >::unknown_symbol_resolver::process ( const std::string &  ,
usr_symbol_type st,
T &  default_value,
std::string &  error_message 
)
inlinevirtual

Reimplemented from exprtk::parser< T >::unknown_symbol_resolver.

Definition at line 23451 of file exprtk.hpp.

23455 {
23456 if (e_usrmode_default != mode)
23457 return false;
23458
23460 default_value = T(0);
23461 error_message.clear();
23462
23463 return true;
23464 }

◆ process() [7/9]

template<typename T >
bool my_usr_ext< T >::process ( const std::string &  unknown_symbol,
symbol_table_t symbol_table,
std::string &  error_message 
)
inlinevirtual

Reimplemented from exprtk::parser< T >::unknown_symbol_resolver.

Definition at line 9862 of file exprtk_mpfr_test.cpp.

9865 {
9866 bool result = false;
9867
9868 if (unknown_symbol[0] == 'v')
9869 {
9870 static T var_default_value = 1.0;
9871
9872 if ((result = symbol_table.create_variable(unknown_symbol, var_default_value++)) == false)
9873 {
9874 error_message = "Failed to create variable(" + unknown_symbol + ") in primary symbol table";
9875 }
9876 }
9877 else if (unknown_symbol[0] == 'c')
9878 {
9879 static T cvar_default_value = 1.0;
9880
9881 if ((result = symbol_table.add_constant(unknown_symbol, cvar_default_value++)) == false)
9882 {
9883 error_message = "Failed to create const variable(" + unknown_symbol + ") in primary symbol table";
9884 }
9885 }
9886 else if (0 == unknown_symbol.find("foo"))
9887 {
9888 //functions of form: fooXX
9889 if (4 >= unknown_symbol.size())
9890 {
9891 switch(unknown_symbol[3])
9892 {
9893 case '1' : result = symbol_table.add_function(unknown_symbol,foo1);
9894 break;
9895
9896 case '2' : result = symbol_table.add_function(unknown_symbol,foo2);
9897 break;
9898
9899 case '3' : result = symbol_table.add_function(unknown_symbol,foo3);
9900 break;
9901
9902 case '4' : result = symbol_table.add_function(unknown_symbol,foo4);
9903 break;
9904
9905 case '5' : result = symbol_table.add_function(unknown_symbol,foo5);
9906 break;
9907
9908 case '6' : result = symbol_table.add_function(unknown_symbol,foo6);
9909 break;
9910 }
9911 }
9912
9913 if (!result)
9914 {
9915 error_message = "Failed to add function(" + unknown_symbol + ") in primary symbol table";
9916 }
9917 }
9918 else
9919 error_message = "Indeterminable symbol type.";
9920
9921 return result;
9922 }
numeric_type foo4(numeric_type v0, numeric_type v1, numeric_type v2, numeric_type v3)
numeric_type foo6(numeric_type v0, numeric_type v1, numeric_type v2, numeric_type v3, numeric_type v4, numeric_type v5)
numeric_type foo5(numeric_type v0, numeric_type v1, numeric_type v2, numeric_type v3, numeric_type v4)
numeric_type foo2(numeric_type v0, numeric_type v1)
numeric_type foo1(numeric_type v0)
numeric_type foo3(numeric_type v0, numeric_type v1, numeric_type v2)

References foo1(), foo2(), foo3(), foo4(), foo5(), and foo6().

Here is the call graph for this function:

◆ process() [8/9]

template<typename T >
bool my_usr_ext< T >::process ( const std::string &  unknown_symbol,
symbol_table_t symbol_table,
std::string &  error_message 
)
inlinevirtual

Reimplemented from exprtk::parser< T >::unknown_symbol_resolver.

Definition at line 9860 of file exprtk_real_test.cpp.

9863 {
9864 bool result = false;
9865
9866 if (unknown_symbol[0] == 'v')
9867 {
9868 static T var_default_value = 1.0;
9869
9870 if ((result = symbol_table.create_variable(unknown_symbol, var_default_value++)) == false)
9871 {
9872 error_message = "Failed to create variable(" + unknown_symbol + ") in primary symbol table";
9873 }
9874 }
9875 else if (unknown_symbol[0] == 'c')
9876 {
9877 static T cvar_default_value = 1.0;
9878
9879 if ((result = symbol_table.add_constant(unknown_symbol, cvar_default_value++)) == false)
9880 {
9881 error_message = "Failed to create const variable(" + unknown_symbol + ") in primary symbol table";
9882 }
9883 }
9884 else if (0 == unknown_symbol.find("foo"))
9885 {
9886 //functions of form: fooXX
9887 if (4 >= unknown_symbol.size())
9888 {
9889 switch(unknown_symbol[3])
9890 {
9891 case '1' : result = symbol_table.add_function(unknown_symbol,foo1);
9892 break;
9893
9894 case '2' : result = symbol_table.add_function(unknown_symbol,foo2);
9895 break;
9896
9897 case '3' : result = symbol_table.add_function(unknown_symbol,foo3);
9898 break;
9899
9900 case '4' : result = symbol_table.add_function(unknown_symbol,foo4);
9901 break;
9902
9903 case '5' : result = symbol_table.add_function(unknown_symbol,foo5);
9904 break;
9905
9906 case '6' : result = symbol_table.add_function(unknown_symbol,foo6);
9907 break;
9908 }
9909 }
9910
9911 if (!result)
9912 {
9913 error_message = "Failed to add function(" + unknown_symbol + ") in primary symbol table";
9914 }
9915 }
9916 else
9917 error_message = "Indeterminable symbol type.";
9918
9919 return result;
9920 }

References foo1(), foo2(), foo3(), foo4(), foo5(), and foo6().

Here is the call graph for this function:

◆ process() [9/9]

template<typename T >
bool my_usr_ext< T >::process ( const std::string &  unknown_symbol,
symbol_table_t symbol_table,
std::string &  error_message 
)
inlinevirtual

Reimplemented from exprtk::parser< T >::unknown_symbol_resolver.

Definition at line 9888 of file exprtk_test.cpp.

9891 {
9892 bool result = false;
9893
9894 if (unknown_symbol[0] == 'v')
9895 {
9896 static T var_default_value = 1.0;
9897
9898 if ((result = symbol_table.create_variable(unknown_symbol, var_default_value++)) == false)
9899 {
9900 error_message = "Failed to create variable(" + unknown_symbol + ") in primary symbol table";
9901 }
9902 }
9903 else if (unknown_symbol[0] == 'c')
9904 {
9905 static T cvar_default_value = 1.0;
9906
9907 if ((result = symbol_table.add_constant(unknown_symbol, cvar_default_value++)) == false)
9908 {
9909 error_message = "Failed to create const variable(" + unknown_symbol + ") in primary symbol table";
9910 }
9911 }
9912 else if (0 == unknown_symbol.find("foo"))
9913 {
9914 //functions of form: fooXX
9915 if (4 >= unknown_symbol.size())
9916 {
9917 switch(unknown_symbol[3])
9918 {
9919 case '1' : result = symbol_table.add_function(unknown_symbol,foo1);
9920 break;
9921
9922 case '2' : result = symbol_table.add_function(unknown_symbol,foo2);
9923 break;
9924
9925 case '3' : result = symbol_table.add_function(unknown_symbol,foo3);
9926 break;
9927
9928 case '4' : result = symbol_table.add_function(unknown_symbol,foo4);
9929 break;
9930
9931 case '5' : result = symbol_table.add_function(unknown_symbol,foo5);
9932 break;
9933
9934 case '6' : result = symbol_table.add_function(unknown_symbol,foo6);
9935 break;
9936 }
9937 }
9938
9939 if (!result)
9940 {
9941 error_message = "Failed to add function(" + unknown_symbol + ") in primary symbol table";
9942 }
9943 }
9944 else
9945 error_message = "Indeterminable symbol type.";
9946
9947 return result;
9948 }

References foo1(), foo2(), foo3(), foo4(), foo5(), and foo6().

Here is the call graph for this function:

The documentation for this struct was generated from the following files: