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 9901 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 9903 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 9900 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 9920 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 9904 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 9901 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 9921 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 9908 of file exprtk_mpfr_test.cpp.

9910 {}
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 9905 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 9925 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 23753 of file exprtk.hpp.

23756 {
23757 return false;
23758 }

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

23756 {
23757 return false;
23758 }

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

23756 {
23757 return false;
23758 }

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

23742 {
23743 if (e_usrmode_default != mode)
23744 return false;
23745
23747 default_value = T(0);
23748 error_message.clear();
23749
23750 return true;
23751 }

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

23742 {
23743 if (e_usrmode_default != mode)
23744 return false;
23745
23747 default_value = T(0);
23748 error_message.clear();
23749
23750 return true;
23751 }

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

23742 {
23743 if (e_usrmode_default != mode)
23744 return false;
23745
23747 default_value = T(0);
23748 error_message.clear();
23749
23750 return true;
23751 }

◆ 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 9912 of file exprtk_mpfr_test.cpp.

9915 {
9916 bool result = false;
9917
9918 if (unknown_symbol[0] == 'v')
9919 {
9920 static T var_default_value = 1.0;
9921
9922 if ((result = symbol_table.create_variable(unknown_symbol, var_default_value++)) == false)
9923 {
9924 error_message = "Failed to create variable(" + unknown_symbol + ") in primary symbol table";
9925 }
9926 }
9927 else if (unknown_symbol[0] == 'c')
9928 {
9929 static T cvar_default_value = 1.0;
9930
9931 if ((result = symbol_table.add_constant(unknown_symbol, cvar_default_value++)) == false)
9932 {
9933 error_message = "Failed to create const variable(" + unknown_symbol + ") in primary symbol table";
9934 }
9935 }
9936 else if (0 == unknown_symbol.find("foo"))
9937 {
9938 //functions of form: fooXX
9939 if (4 >= unknown_symbol.size())
9940 {
9941 switch(unknown_symbol[3])
9942 {
9943 case '1' : result = symbol_table.add_function(unknown_symbol,foo1);
9944 break;
9945
9946 case '2' : result = symbol_table.add_function(unknown_symbol,foo2);
9947 break;
9948
9949 case '3' : result = symbol_table.add_function(unknown_symbol,foo3);
9950 break;
9951
9952 case '4' : result = symbol_table.add_function(unknown_symbol,foo4);
9953 break;
9954
9955 case '5' : result = symbol_table.add_function(unknown_symbol,foo5);
9956 break;
9957
9958 case '6' : result = symbol_table.add_function(unknown_symbol,foo6);
9959 break;
9960 }
9961 }
9962
9963 if (!result)
9964 {
9965 error_message = "Failed to add function(" + unknown_symbol + ") in primary symbol table";
9966 }
9967 }
9968 else
9969 error_message = "Indeterminable symbol type.";
9970
9971 return result;
9972 }
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 9909 of file exprtk_real_test.cpp.

9912 {
9913 bool result = false;
9914
9915 if (unknown_symbol[0] == 'v')
9916 {
9917 static T var_default_value = 1.0;
9918
9919 if ((result = symbol_table.create_variable(unknown_symbol, var_default_value++)) == false)
9920 {
9921 error_message = "Failed to create variable(" + unknown_symbol + ") in primary symbol table";
9922 }
9923 }
9924 else if (unknown_symbol[0] == 'c')
9925 {
9926 static T cvar_default_value = 1.0;
9927
9928 if ((result = symbol_table.add_constant(unknown_symbol, cvar_default_value++)) == false)
9929 {
9930 error_message = "Failed to create const variable(" + unknown_symbol + ") in primary symbol table";
9931 }
9932 }
9933 else if (0 == unknown_symbol.find("foo"))
9934 {
9935 //functions of form: fooXX
9936 if (4 >= unknown_symbol.size())
9937 {
9938 switch(unknown_symbol[3])
9939 {
9940 case '1' : result = symbol_table.add_function(unknown_symbol,foo1);
9941 break;
9942
9943 case '2' : result = symbol_table.add_function(unknown_symbol,foo2);
9944 break;
9945
9946 case '3' : result = symbol_table.add_function(unknown_symbol,foo3);
9947 break;
9948
9949 case '4' : result = symbol_table.add_function(unknown_symbol,foo4);
9950 break;
9951
9952 case '5' : result = symbol_table.add_function(unknown_symbol,foo5);
9953 break;
9954
9955 case '6' : result = symbol_table.add_function(unknown_symbol,foo6);
9956 break;
9957 }
9958 }
9959
9960 if (!result)
9961 {
9962 error_message = "Failed to add function(" + unknown_symbol + ") in primary symbol table";
9963 }
9964 }
9965 else
9966 error_message = "Indeterminable symbol type.";
9967
9968 return result;
9969 }

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 9929 of file exprtk_test.cpp.

9932 {
9933 bool result = false;
9934
9935 if (unknown_symbol[0] == 'v')
9936 {
9937 static T var_default_value = 1.0;
9938
9939 if ((result = symbol_table.create_variable(unknown_symbol, var_default_value++)) == false)
9940 {
9941 error_message = "Failed to create variable(" + unknown_symbol + ") in primary symbol table";
9942 }
9943 }
9944 else if (unknown_symbol[0] == 'c')
9945 {
9946 static T cvar_default_value = 1.0;
9947
9948 if ((result = symbol_table.add_constant(unknown_symbol, cvar_default_value++)) == false)
9949 {
9950 error_message = "Failed to create const variable(" + unknown_symbol + ") in primary symbol table";
9951 }
9952 }
9953 else if (0 == unknown_symbol.find("foo"))
9954 {
9955 //functions of form: fooXX
9956 if (4 >= unknown_symbol.size())
9957 {
9958 switch(unknown_symbol[3])
9959 {
9960 case '1' : result = symbol_table.add_function(unknown_symbol,foo1);
9961 break;
9962
9963 case '2' : result = symbol_table.add_function(unknown_symbol,foo2);
9964 break;
9965
9966 case '3' : result = symbol_table.add_function(unknown_symbol,foo3);
9967 break;
9968
9969 case '4' : result = symbol_table.add_function(unknown_symbol,foo4);
9970 break;
9971
9972 case '5' : result = symbol_table.add_function(unknown_symbol,foo5);
9973 break;
9974
9975 case '6' : result = symbol_table.add_function(unknown_symbol,foo6);
9976 break;
9977 }
9978 }
9979
9980 if (!result)
9981 {
9982 error_message = "Failed to add function(" + unknown_symbol + ") in primary symbol table";
9983 }
9984 }
9985 else
9986 error_message = "Indeterminable symbol type.";
9987
9988 return result;
9989 }

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: