coco::cached_evaluator_base< _Tp, _NData, _Result, _Walker > Class Template Reference
[Evaluators]

Base class of all caching evaluators. More...

#include <evaluator.h>

Inheritance diagram for coco::cached_evaluator_base< _Tp, _NData, _Result, _Walker >:

Inheritance graph
[legend]
Collaboration diagram for coco::cached_evaluator_base< _Tp, _NData, _Result, _Walker >:

Collaboration graph
[legend]

List of all members.

Public Types

typedef _Base::node_data_type node_data_type
typedef _Base::return_value return_value
typedef _Base::const_walker const_walker
typedef _Tp data_type

Public Member Functions

virtual int preorder (const node_data_type &__data)
virtual const_walker short_cut_to (const node_data_type &__data)
 cached_evaluator_base ()
 cached_evaluator_base (const _Tp &__x, const variable_indicator &__v)
 cached_evaluator_base (const _Self &__x)
virtual ~cached_evaluator_base ()
virtual return_value vvalue ()
virtual return_value value ()
virtual int vcollect (const return_value &__cresult)
virtual int collect (const node_data_type &__data, const return_value &__cresult)
virtual void postorder (const node_data_type &__data)

Protected Attributes

const variable_indicatorv_ind
_Tp eval_data


Detailed Description

template<class _Tp, class _NData, class _Result, class _Walker>
class coco::cached_evaluator_base< _Tp, _NData, _Result, _Walker >

This class is the base class of all caching evaluators. Basically, it is a visitor to expression_node nodes in a DAG, based on _evaluator_base.

Definition at line 417 of file evaluator.h.


Member Typedef Documentation

template<class _Tp, class _NData, class _Result, class _Walker>
typedef _Base::const_walker coco::cached_evaluator_base< _Tp, _NData, _Result, _Walker >::const_walker

This is the type of the walker, which is used for the short-cuts.

Reimplemented from coco::_evaluator_base< _Tp, _NData, _Result, _Walker >.

Reimplemented in coco::cached_forward_evaluator_base< _Tp, _NData, _Result, _Walker >, coco::cached_backward_evaluator_base< _Tp, _NData, _Result, _Walker >, coco::cached_forward_evaluator_base< func_islp_eval_type, expression_node, func_islp_return_type, expression_const_walker >, coco::cached_forward_evaluator_base< hessPreparationEvaluatorType, expression_node, bool, expression_const_walker >, coco::cached_forward_evaluator_base< ihessPreparationEvaluatorType, expression_node, bool, expression_const_walker >, coco::cached_forward_evaluator_base< std::vector< std::vector< double > > *, expression_node, bool, expression_const_walker >, coco::cached_forward_evaluator_base< b_interval_eval_type, expression_node, b_interval, expression_const_walker >, coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >, expression_const_walker >, coco::cached_forward_evaluator_base< hessForwardEvaluatorType, expression_node, hessForwardEvaluatorReturnValue, expression_const_walker >, coco::cached_forward_evaluator_base< diffI_eval_type, expression_node, diffI, expression_const_walker >, coco::cached_forward_evaluator_base< func_id_eval_type, expression_node, interval, expression_const_walker >, coco::cached_forward_evaluator_base< func_d_eval_type, expression_node, double, expression_const_walker >, coco::cached_forward_evaluator_base< model::detect_0chain_visitor_st, expression_node, std::pair< unsigned int, unsigned int >, model::const_walker >, coco::cached_forward_evaluator_base< ihessForwardEvaluatorType, expression_node, ihessForwardEvaluatorReturnValue, expression_const_walker >, coco::cached_forward_evaluator_base< interval_eval_type, expression_node, interval, expression_const_walker >, coco::cached_forward_evaluator_base< func_eval_type, expression_node, double, expression_const_walker >, coco::cached_forward_evaluator_base< iderf_eval_type, expression_node, iderf_ret_type, expression_const_walker >, coco::cached_forward_evaluator_base< std::vector< std::vector< interval > > *, expression_node, bool, expression_const_walker >, coco::cached_forward_evaluator_base< Islope_eval_type, expression_node, Islope, expression_const_walker >, coco::cached_forward_evaluator_base< infbound_eval_type, expression_node, infbound, expression_const_walker >, coco::cached_forward_evaluator_base< diffNumber_eval_type, expression_node, diffNumber, expression_const_walker >, coco::cached_forward_evaluator_base< cinterval_eval_type, expression_node, cinterval, expression_const_walker >, coco::cached_forward_evaluator_base< analyticd_eval_type, expression_node, analyticd, expression_const_walker >, coco::cached_backward_evaluator_base< islp_eval_type, expression_node, bool, expression_const_walker >, coco::cached_backward_evaluator_base< ihessBackwardEvaluatorType, expression_node, bool, expression_const_walker >, coco::cached_backward_evaluator_base< hessBackwardEvaluatorType, expression_node, bool, expression_const_walker >, coco::cached_backward_evaluator_base< ider_eval_type, expression_node, bool, expression_const_walker >, coco::cached_backward_evaluator_base< der_eval_type, expression_node, bool, expression_const_walker >, and coco::cached_backward_evaluator_base< lincoeff_visitor_st, expression_node, lincoeff_visitor_ret, model::const_walker >.

Definition at line 435 of file evaluator.h.

typedef _Tp coco::_evaluator_base< _Tp , _NData , _Result , _Walker >::data_type [inherited]

The data_type specifies the type of the internal data of the evaluator.

Definition at line 305 of file evaluator.h.

template<class _Tp, class _NData, class _Result, class _Walker>
typedef _Base::node_data_type coco::cached_evaluator_base< _Tp, _NData, _Result, _Walker >::node_data_type

The node_data_type is the datatype of the nodes of the graph.

Reimplemented from coco::_evaluator_base< _Tp, _NData, _Result, _Walker >.

Reimplemented in coco::cached_forward_evaluator_base< _Tp, _NData, _Result, _Walker >, coco::cached_backward_evaluator_base< _Tp, _NData, _Result, _Walker >, coco::cached_forward_evaluator_base< func_islp_eval_type, expression_node, func_islp_return_type, expression_const_walker >, coco::cached_forward_evaluator_base< hessPreparationEvaluatorType, expression_node, bool, expression_const_walker >, coco::cached_forward_evaluator_base< ihessPreparationEvaluatorType, expression_node, bool, expression_const_walker >, coco::cached_forward_evaluator_base< std::vector< std::vector< double > > *, expression_node, bool, expression_const_walker >, coco::cached_forward_evaluator_base< b_interval_eval_type, expression_node, b_interval, expression_const_walker >, coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >, expression_const_walker >, coco::cached_forward_evaluator_base< hessForwardEvaluatorType, expression_node, hessForwardEvaluatorReturnValue, expression_const_walker >, coco::cached_forward_evaluator_base< diffI_eval_type, expression_node, diffI, expression_const_walker >, coco::cached_forward_evaluator_base< func_id_eval_type, expression_node, interval, expression_const_walker >, coco::cached_forward_evaluator_base< func_d_eval_type, expression_node, double, expression_const_walker >, coco::cached_forward_evaluator_base< model::detect_0chain_visitor_st, expression_node, std::pair< unsigned int, unsigned int >, model::const_walker >, coco::cached_forward_evaluator_base< ihessForwardEvaluatorType, expression_node, ihessForwardEvaluatorReturnValue, expression_const_walker >, coco::cached_forward_evaluator_base< interval_eval_type, expression_node, interval, expression_const_walker >, coco::cached_forward_evaluator_base< func_eval_type, expression_node, double, expression_const_walker >, coco::cached_forward_evaluator_base< iderf_eval_type, expression_node, iderf_ret_type, expression_const_walker >, coco::cached_forward_evaluator_base< std::vector< std::vector< interval > > *, expression_node, bool, expression_const_walker >, coco::cached_forward_evaluator_base< Islope_eval_type, expression_node, Islope, expression_const_walker >, coco::cached_forward_evaluator_base< infbound_eval_type, expression_node, infbound, expression_const_walker >, coco::cached_forward_evaluator_base< diffNumber_eval_type, expression_node, diffNumber, expression_const_walker >, coco::cached_forward_evaluator_base< cinterval_eval_type, expression_node, cinterval, expression_const_walker >, coco::cached_forward_evaluator_base< analyticd_eval_type, expression_node, analyticd, expression_const_walker >, coco::cached_backward_evaluator_base< islp_eval_type, expression_node, bool, expression_const_walker >, coco::cached_backward_evaluator_base< ihessBackwardEvaluatorType, expression_node, bool, expression_const_walker >, coco::cached_backward_evaluator_base< hessBackwardEvaluatorType, expression_node, bool, expression_const_walker >, coco::cached_backward_evaluator_base< ider_eval_type, expression_node, bool, expression_const_walker >, coco::cached_backward_evaluator_base< der_eval_type, expression_node, bool, expression_const_walker >, and coco::cached_backward_evaluator_base< lincoeff_visitor_st, expression_node, lincoeff_visitor_ret, model::const_walker >.

Definition at line 431 of file evaluator.h.

template<class _Tp, class _NData, class _Result, class _Walker>
typedef _Base::return_value coco::cached_evaluator_base< _Tp, _NData, _Result, _Walker >::return_value

This type is the result type of the evaluator.

Reimplemented from coco::_evaluator_base< _Tp, _NData, _Result, _Walker >.

Reimplemented in coco::cached_forward_evaluator_base< _Tp, _NData, _Result, _Walker >, coco::cached_backward_evaluator_base< _Tp, _NData, _Result, _Walker >, coco::cached_forward_evaluator_base< func_islp_eval_type, expression_node, func_islp_return_type, expression_const_walker >, coco::cached_forward_evaluator_base< hessPreparationEvaluatorType, expression_node, bool, expression_const_walker >, coco::cached_forward_evaluator_base< ihessPreparationEvaluatorType, expression_node, bool, expression_const_walker >, coco::cached_forward_evaluator_base< std::vector< std::vector< double > > *, expression_node, bool, expression_const_walker >, coco::cached_forward_evaluator_base< b_interval_eval_type, expression_node, b_interval, expression_const_walker >, coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >, expression_const_walker >, coco::cached_forward_evaluator_base< hessForwardEvaluatorType, expression_node, hessForwardEvaluatorReturnValue, expression_const_walker >, coco::cached_forward_evaluator_base< diffI_eval_type, expression_node, diffI, expression_const_walker >, coco::cached_forward_evaluator_base< func_id_eval_type, expression_node, interval, expression_const_walker >, coco::cached_forward_evaluator_base< func_d_eval_type, expression_node, double, expression_const_walker >, coco::cached_forward_evaluator_base< model::detect_0chain_visitor_st, expression_node, std::pair< unsigned int, unsigned int >, model::const_walker >, coco::cached_forward_evaluator_base< ihessForwardEvaluatorType, expression_node, ihessForwardEvaluatorReturnValue, expression_const_walker >, coco::cached_forward_evaluator_base< interval_eval_type, expression_node, interval, expression_const_walker >, coco::cached_forward_evaluator_base< func_eval_type, expression_node, double, expression_const_walker >, coco::cached_forward_evaluator_base< iderf_eval_type, expression_node, iderf_ret_type, expression_const_walker >, coco::cached_forward_evaluator_base< std::vector< std::vector< interval > > *, expression_node, bool, expression_const_walker >, coco::cached_forward_evaluator_base< Islope_eval_type, expression_node, Islope, expression_const_walker >, coco::cached_forward_evaluator_base< infbound_eval_type, expression_node, infbound, expression_const_walker >, coco::cached_forward_evaluator_base< diffNumber_eval_type, expression_node, diffNumber, expression_const_walker >, coco::cached_forward_evaluator_base< cinterval_eval_type, expression_node, cinterval, expression_const_walker >, coco::cached_forward_evaluator_base< analyticd_eval_type, expression_node, analyticd, expression_const_walker >, coco::cached_backward_evaluator_base< islp_eval_type, expression_node, bool, expression_const_walker >, coco::cached_backward_evaluator_base< ihessBackwardEvaluatorType, expression_node, bool, expression_const_walker >, coco::cached_backward_evaluator_base< hessBackwardEvaluatorType, expression_node, bool, expression_const_walker >, coco::cached_backward_evaluator_base< ider_eval_type, expression_node, bool, expression_const_walker >, coco::cached_backward_evaluator_base< der_eval_type, expression_node, bool, expression_const_walker >, and coco::cached_backward_evaluator_base< lincoeff_visitor_st, expression_node, lincoeff_visitor_ret, model::const_walker >.

Definition at line 433 of file evaluator.h.


Constructor & Destructor Documentation

template<class _Tp, class _NData, class _Result, class _Walker>
coco::cached_evaluator_base< _Tp, _NData, _Result, _Walker >::cached_evaluator_base (  )  [inline]

Standard Constructor

Definition at line 455 of file evaluator.h.

template<class _Tp, class _NData, class _Result, class _Walker>
coco::cached_evaluator_base< _Tp, _NData, _Result, _Walker >::cached_evaluator_base ( const _Tp &  __x,
const variable_indicator __v 
) [inline]

Constructor, which initializes the internal data and the variable indicator

Definition at line 458 of file evaluator.h.

template<class _Tp, class _NData, class _Result, class _Walker>
coco::cached_evaluator_base< _Tp, _NData, _Result, _Walker >::cached_evaluator_base ( const _Self __x  )  [inline]

Standard Copy Constructor

Definition at line 461 of file evaluator.h.

template<class _Tp, class _NData, class _Result, class _Walker>
virtual coco::cached_evaluator_base< _Tp, _NData, _Result, _Walker >::~cached_evaluator_base (  )  [inline, virtual]

Standard Destructor

Definition at line 464 of file evaluator.h.


Member Function Documentation

virtual int coco::_evaluator_base< _Tp , _NData , _Result , _Walker >::collect ( const node_data_type &  __data,
const return_value &  __cresult 
) [inline, virtual, inherited]

This method is needed by a visitor (see VGTL documentation) and is called for each normal node everytime a child node has been visited passing the return value of the child. The return value has the following effect:
<0stop visiting children of this node,
0continue with the graph walk downwards the next child,
>0skip as many children.

Definition at line 359 of file evaluator.h.

virtual void coco::_evaluator_base< _Tp , _NData , _Result , _Walker >::postorder ( const node_data_type &  __data  )  [inline, virtual, inherited]

This method is needed by a visitor (see VGTL documentation) and is called right after all children of a node have been visited.

Definition at line 364 of file evaluator.h.

template<class _Tp, class _NData, class _Result, class _Walker>
virtual int coco::cached_evaluator_base< _Tp, _NData, _Result, _Walker >::preorder ( const node_data_type __data  )  [inline, virtual]

This method is needed by a visitor (see VGTL documentation) and is called right before any children of a node are visited. The return value of the method influences the further graph walk:
<0perform a short-cut (the short_cut_to method will be called),
0don't visit the children, proceed with postorder,
>0continue with the walk by visiting the children.

Reimplemented in coco::cached_forward_evaluator_base< func_islp_eval_type, expression_node, func_islp_return_type, expression_const_walker >, coco::cached_forward_evaluator_base< hessPreparationEvaluatorType, expression_node, bool, expression_const_walker >, coco::cached_forward_evaluator_base< ihessPreparationEvaluatorType, expression_node, bool, expression_const_walker >, coco::cached_forward_evaluator_base< std::vector< std::vector< double > > *, expression_node, bool, expression_const_walker >, coco::cached_forward_evaluator_base< b_interval_eval_type, expression_node, b_interval, expression_const_walker >, coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >, expression_const_walker >, coco::cached_forward_evaluator_base< hessForwardEvaluatorType, expression_node, hessForwardEvaluatorReturnValue, expression_const_walker >, coco::cached_forward_evaluator_base< diffI_eval_type, expression_node, diffI, expression_const_walker >, coco::cached_forward_evaluator_base< func_id_eval_type, expression_node, interval, expression_const_walker >, coco::cached_forward_evaluator_base< func_d_eval_type, expression_node, double, expression_const_walker >, coco::cached_forward_evaluator_base< model::detect_0chain_visitor_st, expression_node, std::pair< unsigned int, unsigned int >, model::const_walker >, coco::cached_forward_evaluator_base< ihessForwardEvaluatorType, expression_node, ihessForwardEvaluatorReturnValue, expression_const_walker >, coco::cached_forward_evaluator_base< interval_eval_type, expression_node, interval, expression_const_walker >, coco::cached_forward_evaluator_base< func_eval_type, expression_node, double, expression_const_walker >, coco::cached_forward_evaluator_base< iderf_eval_type, expression_node, iderf_ret_type, expression_const_walker >, coco::cached_forward_evaluator_base< std::vector< std::vector< interval > > *, expression_node, bool, expression_const_walker >, coco::cached_forward_evaluator_base< Islope_eval_type, expression_node, Islope, expression_const_walker >, coco::cached_forward_evaluator_base< infbound_eval_type, expression_node, infbound, expression_const_walker >, coco::cached_forward_evaluator_base< diffNumber_eval_type, expression_node, diffNumber, expression_const_walker >, coco::cached_forward_evaluator_base< cinterval_eval_type, expression_node, cinterval, expression_const_walker >, coco::cached_forward_evaluator_base< analyticd_eval_type, expression_node, analyticd, expression_const_walker >, coco::cached_backward_evaluator_base< islp_eval_type, expression_node, bool, expression_const_walker >, coco::cached_backward_evaluator_base< ihessBackwardEvaluatorType, expression_node, bool, expression_const_walker >, coco::cached_backward_evaluator_base< hessBackwardEvaluatorType, expression_node, bool, expression_const_walker >, coco::cached_backward_evaluator_base< ider_eval_type, expression_node, bool, expression_const_walker >, coco::cached_backward_evaluator_base< der_eval_type, expression_node, bool, expression_const_walker >, and coco::cached_backward_evaluator_base< lincoeff_visitor_st, expression_node, lincoeff_visitor_ret, model::const_walker >.

Definition at line 446 of file evaluator.h.

template<class _Tp, class _NData, class _Result, class _Walker>
virtual const_walker coco::cached_evaluator_base< _Tp, _NData, _Result, _Walker >::short_cut_to ( const node_data_type __data  )  [inline, virtual]

virtual return_value coco::_evaluator_base< _Tp , _NData , _Result , _Walker >::value (  )  [inline, virtual, inherited]

This method is needed by a visitor (see VGTL documentation) and is called right before the end of the visit of a normal node to retrieve the return value.

Definition at line 336 of file evaluator.h.

virtual int coco::_evaluator_base< _Tp , _NData , _Result , _Walker >::vcollect ( const return_value &  __cresult  )  [inline, virtual, inherited]

This method is needed by a visitor (see VGTL documentation) and is called for each virtual node everytime a child node has been visited passing the return value of the child. The return value has the following effect:
<0stop visiting children of this node,
0continue with the graph walk downwards the next child,
>0skip as many children.

Definition at line 348 of file evaluator.h.

virtual return_value coco::_evaluator_base< _Tp , _NData , _Result , _Walker >::vvalue (  )  [inline, virtual, inherited]

This method is needed by a visitor (see VGTL documentation) and is called right before the end of the visit of a virtual node to retrieve the return value.

Definition at line 332 of file evaluator.h.


Member Data Documentation

_Tp coco::_evaluator_base< _Tp , _NData , _Result , _Walker >::eval_data [protected, inherited]

The internal data of the evaluator

Definition at line 316 of file evaluator.h.

template<class _Tp, class _NData, class _Result, class _Walker>
const variable_indicator* coco::cached_evaluator_base< _Tp, _NData, _Result, _Walker >::v_ind [protected]

For caching a variable indicator is needed to check which nodes need not be re-evaluated.

Definition at line 427 of file evaluator.h.


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

Generated on Tue Feb 9 14:48:26 2010 for COCONUT API by  doxygen 1.5.8