1 #ifndef teca_evaluate_expression_h
2 #define teca_evaluate_expression_h
4 #include "teca_shared_object.h"
5 #include "teca_algorithm.h"
6 #include "teca_metadata.h"
40 TECA_GET_ALGORITHM_PROPERTIES_DESCRIPTION()
41 TECA_SET_ALGORITHM_PROPERTIES()
44 void set_expression(
const std::string &expr);
46 std::string get_expression()
47 {
return this->expression; }
50 TECA_ALGORITHM_PROPERTY(std::string, result_variable);
54 TECA_ALGORITHM_PROPERTY(
int, remove_dependent_variables)
61 const std::vector<teca_metadata> &input_md)
override;
63 std::vector<teca_metadata> get_upstream_request(
64 unsigned int port,
const std::vector<teca_metadata> &input_md,
67 const_p_teca_dataset execute(
unsigned int port,
68 const std::vector<const_p_teca_dataset> &input_data,
72 std::string expression;
73 std::string result_variable;
74 std::string postfix_expression;
75 std::set<std::string> dependent_variables;
76 int remove_dependent_variables;