MAiNGO
maingo::MaingoEvaluator Class Reference

Evaluates ALE expressions to Var. More...

#include <MAiNGOevaluator.h>

Public Member Functions

 MaingoEvaluator (symbol_table &symbols, const std::vector< Var > &variables, const std::unordered_map< std::string, int > &positions)
 Constructor. More...
 
Dispatch functions

Functions dispatching to visit functions

Var dispatch (expression< real< 0 >> &expr)
 
ConstraintContainer dispatch (expression< boolean< 0 >> &expr)
 
template<typename TReturn , typename TType >
TReturn dispatch (value_node< TType > *node)
 
template<unsigned IDim>
ale::index< IDim >::ref_type dispatch (value_node< ale::index< IDim >> *node)
 
template<typename TType >
set< TType, 0 >::basic_type dispatch (value_node< set< TType, 0 >> *node)
 
template<unsigned IDim>
tensor< Var, IDim > dispatch (value_node< real< IDim >> *node)
 
Var dispatch (value_node< real< 0 >> *node)
 
ConstraintContainer dispatch (value_node< boolean< 0 >> *node)
 
template<unsigned IDim>
tensor< Var, IDim > dispatch (value_symbol< real< IDim >> *sym)
 
Var dispatch (value_symbol< real< 0 >> *sym)
 

Visit functions

Specific visit implementations

symbol_table & _symbols
 
const std::vector< Var > & _variables
 
const std::unordered_map< std::string, int > & _positions
 
template<unsigned IDim>
tensor< Var, IDim > operator() (constant_node< real< IDim >> *node)
 
Var operator() (constant_node< real< 0 >> *node)
 
ConstraintContainer operator() (constant_node< boolean< 0 >> *node)
 
template<unsigned IDim>
tensor< Var, IDim > operator() (parameter_node< real< IDim >> *node)
 
Var operator() (parameter_node< real< 0 >> *node)
 
ConstraintContainer operator() (parameter_node< boolean< 0 >> *node)
 
template<unsigned IDim>
tensor< Var, IDim > operator() (parameter_symbol< real< IDim >> *sym)
 
Var operator() (parameter_symbol< real< 0 >> *sym)
 
template<unsigned IDim>
tensor< Var, IDim > operator() (variable_symbol< real< IDim >> *sym)
 
Var operator() (variable_symbol< real< 0 >> *sym)
 
Var operator() (expression_symbol< real< 0 >> *sym)
 
ConstraintContainer operator() (expression_symbol< boolean< 0 >> *sym)
 
template<unsigned IDim>
tensor< Var, IDim > operator() (entry_node< real< IDim >> *node)
 
Var operator() (entry_node< real< 0 >> *node)
 
Var operator() (minus_node *node)
 
Var operator() (inverse_node *node)
 
Var operator() (addition_node *node)
 
Var operator() (sum_div_node *node)
 
Var operator() (xlog_sum_node *node)
 
Var operator() (multiplication_node *node)
 
Var operator() (exponentiation_node *node)
 
Var operator() (min_node *node)
 
Var operator() (max_node *node)
 
template<typename TType >
Var operator() (set_min_node< TType > *node)
 
template<typename TType >
Var operator() (set_max_node< TType > *node)
 
Var operator() (exp_node *node)
 
Var operator() (log_node *node)
 
Var operator() (sqrt_node *node)
 
Var operator() (sin_node *node)
 
Var operator() (asin_node *node)
 
Var operator() (cos_node *node)
 
Var operator() (acos_node *node)
 
Var operator() (tan_node *node)
 
Var operator() (atan_node *node)
 
Var operator() (lmtd_node *node)
 
Var operator() (xexpax_node *node)
 
Var operator() (arh_node *node)
 
Var operator() (lb_func_node *node)
 
Var operator() (ub_func_node *node)
 
Var operator() (bounding_func_node *node)
 
Var operator() (ale::squash_node *node)
 
Var operator() (ale::regnormal_node *node)
 
Var operator() (nrtl_dtau_node *node)
 
Var operator() (ext_antoine_psat_node *node)
 
Var operator() (antoine_psat_node *node)
 
Var operator() (wagner_psat_node *node)
 
Var operator() (ik_cape_psat_node *node)
 
Var operator() (aspen_hig_node *node)
 
Var operator() (nasa9_hig_node *node)
 
Var operator() (dippr107_hig_node *node)
 
Var operator() (dippr127_hig_node *node)
 
Var operator() (antoine_tsat_node *node)
 
Var operator() (watson_dhvap_node *node)
 
Var operator() (dippr106_dhvap_node *node)
 
Var operator() (cost_turton_node *node)
 
Var operator() (covar_matern_1_node *node)
 
Var operator() (covar_matern_3_node *node)
 
Var operator() (covar_matern_5_node *node)
 
Var operator() (covar_sqrexp_node *node)
 
Var operator() (gpdf_node *node)
 
Var operator() (nrtl_tau_node *node)
 
Var operator() (nrtl_g_node *node)
 
Var operator() (nrtl_gtau_node *node)
 
Var operator() (nrtl_gdtau_node *node)
 
Var operator() (nrtl_dgtau_node *node)
 
Var operator() (norm2_node *node)
 
Var operator() (abs_node *node)
 
Var operator() (xabsx_node *node)
 
Var operator() (xlogx_node *node)
 
Var operator() (cosh_node *node)
 
Var operator() (sinh_node *node)
 
Var operator() (tanh_node *node)
 
Var operator() (coth_node *node)
 
Var operator() (acosh_node *node)
 
Var operator() (asinh_node *node)
 
Var operator() (atanh_node *node)
 
Var operator() (acoth_node *node)
 
Var operator() (erf_node *node)
 
Var operator() (erfc_node *node)
 
Var operator() (pos_node *node)
 
Var operator() (neg_node *node)
 
Var operator() (rlmtd_node *node)
 
Var operator() (xexpy_node *node)
 
Var operator() (schroeder_ethanol_p_node *node)
 
Var operator() (schroeder_ethanol_rhovap_node *node)
 
Var operator() (schroeder_ethanol_rholiq_node *node)
 
Var operator() (mid_node *node)
 
template<typename TType >
Var operator() (sum_node< TType > *node)
 
ConstraintContainer operator() (negation_node *node)
 
ConstraintContainer operator() (equal_node< real< 0 >> *node)
 
ConstraintContainer operator() (less_node< real< 0 >> *node)
 
ConstraintContainer operator() (less_equal_node< real< 0 >> *node)
 
ConstraintContainer operator() (greater_node< real< 0 >> *node)
 
ConstraintContainer operator() (greater_equal_node< real< 0 >> *node)
 
ConstraintContainer operator() (equal_node< ale::index< 0 >> *node)
 
ConstraintContainer operator() (less_node< ale::index< 0 >> *node)
 
ConstraintContainer operator() (less_equal_node< ale::index< 0 >> *node)
 
ConstraintContainer operator() (greater_node< ale::index< 0 >> *node)
 
ConstraintContainer operator() (greater_equal_node< ale::index< 0 >> *node)
 
ConstraintContainer operator() (disjunction_node *node)
 
ConstraintContainer operator() (conjunction_node *node)
 
ConstraintContainer operator() (element_node *node)
 
template<typename TType >
ConstraintContainer operator() (forall_node< TType > *node)
 

Detailed Description

Evaluates ALE expressions to Var.

Constructor & Destructor Documentation

◆ MaingoEvaluator()

maingo::MaingoEvaluator::MaingoEvaluator ( symbol_table &  symbols,
const std::vector< Var > &  variables,
const std::unordered_map< std::string, int > &  positions 
)
inline

Constructor.

Parameters
[in]symbolsis the symbol_table for symbol lookup
[in]variablesis the vecor of MAiNGO variables
[in]positionsmaps ALE symbol names to positions in the MAiNGO variable vector

Member Function Documentation

◆ dispatch() [1/10]

Var maingo::MaingoEvaluator::dispatch ( expression< real< 0 >> &  expr)
inline

◆ dispatch() [2/10]

ConstraintContainer maingo::MaingoEvaluator::dispatch ( expression< boolean< 0 >> &  expr)
inline

◆ dispatch() [3/10]

template<typename TReturn , typename TType >
TReturn maingo::MaingoEvaluator::dispatch ( value_node< TType > *  node)
inline

◆ dispatch() [4/10]

template<unsigned IDim>
ale::index<IDim>::ref_type maingo::MaingoEvaluator::dispatch ( value_node< ale::index< IDim >> *  node)
inline

◆ dispatch() [5/10]

template<typename TType >
set<TType, 0>::basic_type maingo::MaingoEvaluator::dispatch ( value_node< set< TType, 0 >> *  node)
inline

◆ dispatch() [6/10]

template<unsigned IDim>
tensor<Var, IDim> maingo::MaingoEvaluator::dispatch ( value_node< real< IDim >> *  node)
inline

◆ dispatch() [7/10]

Var maingo::MaingoEvaluator::dispatch ( value_node< real< 0 >> *  node)
inline

◆ dispatch() [8/10]

ConstraintContainer maingo::MaingoEvaluator::dispatch ( value_node< boolean< 0 >> *  node)
inline

◆ dispatch() [9/10]

template<unsigned IDim>
tensor<Var, IDim> maingo::MaingoEvaluator::dispatch ( value_symbol< real< IDim >> *  sym)
inline

◆ dispatch() [10/10]

Var maingo::MaingoEvaluator::dispatch ( value_symbol< real< 0 >> *  sym)
inline

◆ operator()() [1/103]

template<unsigned IDim>
tensor<Var, IDim> maingo::MaingoEvaluator::operator() ( constant_node< real< IDim >> *  node)
inline

◆ operator()() [2/103]

Var maingo::MaingoEvaluator::operator() ( constant_node< real< 0 >> *  node)
inline

◆ operator()() [3/103]

ConstraintContainer maingo::MaingoEvaluator::operator() ( constant_node< boolean< 0 >> *  node)
inline

◆ operator()() [4/103]

template<unsigned IDim>
tensor<Var, IDim> maingo::MaingoEvaluator::operator() ( parameter_node< real< IDim >> *  node)
inline

◆ operator()() [5/103]

Var maingo::MaingoEvaluator::operator() ( parameter_node< real< 0 >> *  node)
inline

◆ operator()() [6/103]

ConstraintContainer maingo::MaingoEvaluator::operator() ( parameter_node< boolean< 0 >> *  node)
inline

◆ operator()() [7/103]

template<unsigned IDim>
tensor<Var, IDim> maingo::MaingoEvaluator::operator() ( parameter_symbol< real< IDim >> *  sym)
inline

◆ operator()() [8/103]

Var maingo::MaingoEvaluator::operator() ( parameter_symbol< real< 0 >> *  sym)
inline

◆ operator()() [9/103]

template<unsigned IDim>
tensor<Var, IDim> maingo::MaingoEvaluator::operator() ( variable_symbol< real< IDim >> *  sym)
inline

◆ operator()() [10/103]

Var maingo::MaingoEvaluator::operator() ( variable_symbol< real< 0 >> *  sym)
inline

◆ operator()() [11/103]

Var maingo::MaingoEvaluator::operator() ( expression_symbol< real< 0 >> *  sym)
inline

◆ operator()() [12/103]

ConstraintContainer maingo::MaingoEvaluator::operator() ( expression_symbol< boolean< 0 >> *  sym)
inline

◆ operator()() [13/103]

template<unsigned IDim>
tensor<Var, IDim> maingo::MaingoEvaluator::operator() ( entry_node< real< IDim >> *  node)
inline

◆ operator()() [14/103]

Var maingo::MaingoEvaluator::operator() ( entry_node< real< 0 >> *  node)
inline

◆ operator()() [15/103]

Var maingo::MaingoEvaluator::operator() ( minus_node *  node)
inline

◆ operator()() [16/103]

Var maingo::MaingoEvaluator::operator() ( inverse_node *  node)
inline

◆ operator()() [17/103]

Var maingo::MaingoEvaluator::operator() ( addition_node *  node)
inline

◆ operator()() [18/103]

Var maingo::MaingoEvaluator::operator() ( sum_div_node *  node)
inline

◆ operator()() [19/103]

Var maingo::MaingoEvaluator::operator() ( xlog_sum_node *  node)
inline

◆ operator()() [20/103]

Var maingo::MaingoEvaluator::operator() ( multiplication_node *  node)
inline

◆ operator()() [21/103]

Var maingo::MaingoEvaluator::operator() ( exponentiation_node *  node)
inline

◆ operator()() [22/103]

Var maingo::MaingoEvaluator::operator() ( min_node *  node)
inline

◆ operator()() [23/103]

Var maingo::MaingoEvaluator::operator() ( max_node *  node)
inline

◆ operator()() [24/103]

template<typename TType >
Var maingo::MaingoEvaluator::operator() ( set_min_node< TType > *  node)
inline

◆ operator()() [25/103]

template<typename TType >
Var maingo::MaingoEvaluator::operator() ( set_max_node< TType > *  node)
inline

◆ operator()() [26/103]

Var maingo::MaingoEvaluator::operator() ( exp_node *  node)
inline

◆ operator()() [27/103]

Var maingo::MaingoEvaluator::operator() ( log_node *  node)
inline

◆ operator()() [28/103]

Var maingo::MaingoEvaluator::operator() ( sqrt_node *  node)
inline

◆ operator()() [29/103]

Var maingo::MaingoEvaluator::operator() ( sin_node *  node)
inline

◆ operator()() [30/103]

Var maingo::MaingoEvaluator::operator() ( asin_node *  node)
inline

◆ operator()() [31/103]

Var maingo::MaingoEvaluator::operator() ( cos_node *  node)
inline

◆ operator()() [32/103]

Var maingo::MaingoEvaluator::operator() ( acos_node *  node)
inline

◆ operator()() [33/103]

Var maingo::MaingoEvaluator::operator() ( tan_node *  node)
inline

◆ operator()() [34/103]

Var maingo::MaingoEvaluator::operator() ( atan_node *  node)
inline

◆ operator()() [35/103]

Var maingo::MaingoEvaluator::operator() ( lmtd_node *  node)
inline

◆ operator()() [36/103]

Var maingo::MaingoEvaluator::operator() ( xexpax_node *  node)
inline

◆ operator()() [37/103]

Var maingo::MaingoEvaluator::operator() ( arh_node *  node)
inline

◆ operator()() [38/103]

Var maingo::MaingoEvaluator::operator() ( lb_func_node *  node)
inline

◆ operator()() [39/103]

Var maingo::MaingoEvaluator::operator() ( ub_func_node *  node)
inline

◆ operator()() [40/103]

Var maingo::MaingoEvaluator::operator() ( bounding_func_node *  node)
inline

◆ operator()() [41/103]

Var maingo::MaingoEvaluator::operator() ( ale::squash_node *  node)
inline

◆ operator()() [42/103]

Var maingo::MaingoEvaluator::operator() ( ale::regnormal_node *  node)
inline

◆ operator()() [43/103]

Var maingo::MaingoEvaluator::operator() ( nrtl_dtau_node *  node)
inline

◆ operator()() [44/103]

Var maingo::MaingoEvaluator::operator() ( ext_antoine_psat_node *  node)
inline

◆ operator()() [45/103]

Var maingo::MaingoEvaluator::operator() ( antoine_psat_node *  node)
inline

◆ operator()() [46/103]

Var maingo::MaingoEvaluator::operator() ( wagner_psat_node *  node)
inline

◆ operator()() [47/103]

Var maingo::MaingoEvaluator::operator() ( ik_cape_psat_node *  node)
inline

◆ operator()() [48/103]

Var maingo::MaingoEvaluator::operator() ( aspen_hig_node *  node)
inline

◆ operator()() [49/103]

Var maingo::MaingoEvaluator::operator() ( nasa9_hig_node *  node)
inline

◆ operator()() [50/103]

Var maingo::MaingoEvaluator::operator() ( dippr107_hig_node *  node)
inline

◆ operator()() [51/103]

Var maingo::MaingoEvaluator::operator() ( dippr127_hig_node *  node)
inline

◆ operator()() [52/103]

Var maingo::MaingoEvaluator::operator() ( antoine_tsat_node *  node)
inline

◆ operator()() [53/103]

Var maingo::MaingoEvaluator::operator() ( watson_dhvap_node *  node)
inline

◆ operator()() [54/103]

Var maingo::MaingoEvaluator::operator() ( dippr106_dhvap_node *  node)
inline

◆ operator()() [55/103]

Var maingo::MaingoEvaluator::operator() ( cost_turton_node *  node)
inline

◆ operator()() [56/103]

Var maingo::MaingoEvaluator::operator() ( covar_matern_1_node *  node)
inline

◆ operator()() [57/103]

Var maingo::MaingoEvaluator::operator() ( covar_matern_3_node *  node)
inline

◆ operator()() [58/103]

Var maingo::MaingoEvaluator::operator() ( covar_matern_5_node *  node)
inline

◆ operator()() [59/103]

Var maingo::MaingoEvaluator::operator() ( covar_sqrexp_node *  node)
inline

◆ operator()() [60/103]

Var maingo::MaingoEvaluator::operator() ( gpdf_node *  node)
inline

◆ operator()() [61/103]

Var maingo::MaingoEvaluator::operator() ( nrtl_tau_node *  node)
inline

◆ operator()() [62/103]

Var maingo::MaingoEvaluator::operator() ( nrtl_g_node *  node)
inline

◆ operator()() [63/103]

Var maingo::MaingoEvaluator::operator() ( nrtl_gtau_node *  node)
inline

◆ operator()() [64/103]

Var maingo::MaingoEvaluator::operator() ( nrtl_gdtau_node *  node)
inline

◆ operator()() [65/103]

Var maingo::MaingoEvaluator::operator() ( nrtl_dgtau_node *  node)
inline

◆ operator()() [66/103]

Var maingo::MaingoEvaluator::operator() ( norm2_node *  node)
inline

◆ operator()() [67/103]

Var maingo::MaingoEvaluator::operator() ( abs_node *  node)
inline

◆ operator()() [68/103]

Var maingo::MaingoEvaluator::operator() ( xabsx_node *  node)
inline

◆ operator()() [69/103]

Var maingo::MaingoEvaluator::operator() ( xlogx_node *  node)
inline

◆ operator()() [70/103]

Var maingo::MaingoEvaluator::operator() ( cosh_node *  node)
inline

◆ operator()() [71/103]

Var maingo::MaingoEvaluator::operator() ( sinh_node *  node)
inline

◆ operator()() [72/103]

Var maingo::MaingoEvaluator::operator() ( tanh_node *  node)
inline

◆ operator()() [73/103]

Var maingo::MaingoEvaluator::operator() ( coth_node *  node)
inline

◆ operator()() [74/103]

Var maingo::MaingoEvaluator::operator() ( acosh_node *  node)
inline

◆ operator()() [75/103]

Var maingo::MaingoEvaluator::operator() ( asinh_node *  node)
inline

◆ operator()() [76/103]

Var maingo::MaingoEvaluator::operator() ( atanh_node *  node)
inline

◆ operator()() [77/103]

Var maingo::MaingoEvaluator::operator() ( acoth_node *  node)
inline

◆ operator()() [78/103]

Var maingo::MaingoEvaluator::operator() ( erf_node *  node)
inline

◆ operator()() [79/103]

Var maingo::MaingoEvaluator::operator() ( erfc_node *  node)
inline

◆ operator()() [80/103]

Var maingo::MaingoEvaluator::operator() ( pos_node *  node)
inline

◆ operator()() [81/103]

Var maingo::MaingoEvaluator::operator() ( neg_node *  node)
inline

◆ operator()() [82/103]

Var maingo::MaingoEvaluator::operator() ( rlmtd_node *  node)
inline

◆ operator()() [83/103]

Var maingo::MaingoEvaluator::operator() ( xexpy_node *  node)
inline

◆ operator()() [84/103]

Var maingo::MaingoEvaluator::operator() ( schroeder_ethanol_p_node *  node)
inline

◆ operator()() [85/103]

Var maingo::MaingoEvaluator::operator() ( schroeder_ethanol_rhovap_node *  node)
inline

◆ operator()() [86/103]

Var maingo::MaingoEvaluator::operator() ( schroeder_ethanol_rholiq_node *  node)
inline

◆ operator()() [87/103]

Var maingo::MaingoEvaluator::operator() ( mid_node *  node)
inline

◆ operator()() [88/103]

template<typename TType >
Var maingo::MaingoEvaluator::operator() ( sum_node< TType > *  node)
inline

◆ operator()() [89/103]

ConstraintContainer maingo::MaingoEvaluator::operator() ( negation_node *  node)
inline

◆ operator()() [90/103]

ConstraintContainer maingo::MaingoEvaluator::operator() ( equal_node< real< 0 >> *  node)
inline

◆ operator()() [91/103]

ConstraintContainer maingo::MaingoEvaluator::operator() ( less_node< real< 0 >> *  node)
inline

◆ operator()() [92/103]

ConstraintContainer maingo::MaingoEvaluator::operator() ( less_equal_node< real< 0 >> *  node)
inline

◆ operator()() [93/103]

ConstraintContainer maingo::MaingoEvaluator::operator() ( greater_node< real< 0 >> *  node)
inline

◆ operator()() [94/103]

ConstraintContainer maingo::MaingoEvaluator::operator() ( greater_equal_node< real< 0 >> *  node)
inline

◆ operator()() [95/103]

ConstraintContainer maingo::MaingoEvaluator::operator() ( equal_node< ale::index< 0 >> *  node)
inline

◆ operator()() [96/103]

ConstraintContainer maingo::MaingoEvaluator::operator() ( less_node< ale::index< 0 >> *  node)
inline

◆ operator()() [97/103]

ConstraintContainer maingo::MaingoEvaluator::operator() ( less_equal_node< ale::index< 0 >> *  node)
inline

◆ operator()() [98/103]

ConstraintContainer maingo::MaingoEvaluator::operator() ( greater_node< ale::index< 0 >> *  node)
inline

◆ operator()() [99/103]

ConstraintContainer maingo::MaingoEvaluator::operator() ( greater_equal_node< ale::index< 0 >> *  node)
inline

◆ operator()() [100/103]

ConstraintContainer maingo::MaingoEvaluator::operator() ( disjunction_node *  node)
inline

◆ operator()() [101/103]

ConstraintContainer maingo::MaingoEvaluator::operator() ( conjunction_node *  node)
inline

◆ operator()() [102/103]

ConstraintContainer maingo::MaingoEvaluator::operator() ( element_node *  node)
inline

◆ operator()() [103/103]

template<typename TType >
ConstraintContainer maingo::MaingoEvaluator::operator() ( forall_node< TType > *  node)
inline

Member Data Documentation

◆ _positions

const std::unordered_map<std::string, int>& maingo::MaingoEvaluator::_positions
private

◆ _symbols

symbol_table& maingo::MaingoEvaluator::_symbols
private

@

◆ _variables

const std::vector<Var>& maingo::MaingoEvaluator::_variables
private

The documentation for this class was generated from the following file: