C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
Functions
exprtk_extract_dependents.cpp File Reference
#include <cstdio>
#include <string>
#include "exprtk.hpp"
Include dependency graph for exprtk_extract_dependents.cpp:

Go to the source code of this file.

Functions

template<typename T >
void extract_expression_dependents ()
 
int main ()
 

Function Documentation

◆ extract_expression_dependents()

template<typename T >
void extract_expression_dependents ( )

Definition at line 27 of file exprtk_extract_dependents.cpp.

28{
29 const std::string expression = "a * sin(3x) + foo(abs(y - z) / w)";
30
31 exprtk::symbol_table<T> symbol_table;
32
33 /*
34 Note: Add any functions that are not part of the standard set
35 of ExprTk functions
36 */
37 symbol_table.add_function("foo",[](T /*t*/)->T { return T(0); });
38
39 std::deque<std::string> variable_list;
40 std::deque<std::string> function_list;
41
42 if (!exprtk::collect_variables(expression, symbol_table, variable_list))
43 {
44 printf("Error: Failed to collect variables for expression: %s\n",expression.c_str());
45 variable_list.clear();
46 }
47
48 if (!exprtk::collect_functions(expression, symbol_table, function_list))
49 {
50 printf("Error: Failed to collect functions for expression: %s\n",expression.c_str());
51 function_list.clear();
52 }
53
54 for (const auto& var : variable_list)
55 {
56 printf("variable: %s\n",var.c_str());
57 }
58
59 for (const auto& func : function_list)
60 {
61 printf("function: %s\n",func.c_str());
62 }
63}
bool add_function(const std::string &function_name, function_t &function)
Definition exprtk.hpp:20127
bool collect_variables(const std::string &expression, Sequence< std::string, Allocator > &symbol_list)
Definition exprtk.hpp:40260
bool collect_functions(const std::string &expression, Sequence< std::string, Allocator > &symbol_list)
Definition exprtk.hpp:40321

References exprtk::symbol_table< T >::add_function(), exprtk::collect_functions(), and exprtk::collect_variables().

Here is the call graph for this function:

◆ main()

int main ( )

Definition at line 65 of file exprtk_extract_dependents.cpp.

66{
67 extract_expression_dependents<double>();
68 return 0;
69}