coco::dfunc_eval< _T, DN > Class Template Reference

#include <dfunc_evaluator.h>

Inheritance diagram for coco::dfunc_eval< _T, DN >:

Inheritance graph
[legend]
Collaboration diagram for coco::dfunc_eval< _T, DN >:

Collaboration graph
[legend]

List of all members.

Public Types

typedef _Base::return_value return_value
typedef _Base::const_walker const_walker
typedef dfunc_eval_type< _T, DN > data_type

Public Member Functions

 dfunc_eval (const _T &__x, const variable_indicator &__v, const model &__m, std::vector< retval > *__c)
 dfunc_eval (const dfunc_eval &__v)
 ~dfunc_eval ()
expression_const_walker short_cut_to (const expression_node &__data)
void new_point (const _T &__x, const variable_indicator &__v)
void initialize ()
int initialize (const expression_node &__data)
void calculate (const expression_node &__data)
void retrieve_from_cache (const expression_node &__data)
int update (const retval &__rval)
int update (const expression_node &__data, const retval &__rval)
retval calculate_value (bool eval_all)
int preorder (const node_data_type &__data)
void postorder (const node_data_type &__data)
int collect (const node_data_type &__data, const return_value &__rval)
int vcollect (const return_value &__rval)
return_value value ()
return_value vvalue ()
void vinit ()
virtual bool is_cached (const node_data_type &__data)
virtual void cleanup (const node_data_type &__data)

Protected Member Functions

bool is_cached (const node_data_type &__data)

Protected Attributes

const variable_indicatorv_ind
dfunc_eval_type< _T, DN > eval_data


Detailed Description

template<typename _T, int DN>
class coco::dfunc_eval< _T, DN >

Definition at line 68 of file dfunc_evaluator.h.


Member Typedef Documentation

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

Reimplemented from coco::cached_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >,expression_const_walker >.

Definition at line 723 of file evaluator.h.

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

Definition at line 305 of file evaluator.h.

This type is the result type of the evaluator.

Reimplemented from coco::cached_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >,expression_const_walker >.

Definition at line 721 of file evaluator.h.


Constructor & Destructor Documentation

template<typename _T , int DN>
coco::dfunc_eval< _T, DN >::dfunc_eval ( const _T &  __x,
const variable_indicator __v,
const model __m,
std::vector< retval > *  __c 
) [inline]

Definition at line 135 of file dfunc_evaluator.h.

template<typename _T , int DN>
coco::dfunc_eval< _T, DN >::dfunc_eval ( const dfunc_eval< _T, DN > &  __v  )  [inline]

Definition at line 146 of file dfunc_evaluator.h.

template<typename _T , int DN>
coco::dfunc_eval< _T, DN >::~dfunc_eval (  )  [inline]

Definition at line 148 of file dfunc_evaluator.h.


Member Function Documentation

template<typename _T , int DN>
void coco::dfunc_eval< _T, DN >::calculate ( const expression_node __data  )  [inline, virtual]

This method is called right after all children of a node have been visited. The __data parameter contains the node data of the graph node being visited.

Reimplemented from coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >, expression_const_walker >.

Definition at line 238 of file dfunc_evaluator.h.

template<typename _T , int DN>
retval coco::dfunc_eval< _T, DN >::calculate_value ( bool  eval_all  )  [inline, virtual]

This method is called last for every graph node, and it produces the return value of the visitor. The parameter eval_all is true whether the node is a virtual node.

Reimplemented from coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >, expression_const_walker >.

Definition at line 649 of file dfunc_evaluator.h.

virtual void coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN > , expression_node , dfunc_eval_rettype< _T, DN > , expression_const_walker >::cleanup ( const node_data_type __data  )  [inline, virtual, inherited]

The cleanup method is called just before calculate_value and should be used to clean up dynamically allocated data. The __data parameter contains the node data of the graph node being visited.

Definition at line 804 of file evaluator.h.

int coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN > , expression_node , dfunc_eval_rettype< _T, DN > , expression_const_walker >::collect ( const node_data_type __data,
const return_value __rval 
) [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. It is translated to a call to update.

Reimplemented from coco::_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >,expression_const_walker >.

Definition at line 750 of file evaluator.h.

template<typename _T , int DN>
int coco::dfunc_eval< _T, DN >::initialize ( const expression_node __data  )  [inline, virtual]

This method is called at a normal node before any children are visited. The __data parameter contains the node data of the graph node being visited. The return value determines how the graph walk proceeds.
<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 from coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >, expression_const_walker >.

Definition at line 162 of file dfunc_evaluator.h.

template<typename _T , int DN>
void coco::dfunc_eval< _T, DN >::initialize (  )  [inline, virtual]

This method is called at a virtual node before any children are visited.

Reimplemented from coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >, expression_const_walker >.

Definition at line 160 of file dfunc_evaluator.h.

virtual bool coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN > , expression_node , dfunc_eval_rettype< _T, DN > , expression_const_walker >::is_cached ( const node_data_type __data  )  [inline, virtual, inherited]

This method checks whether the return value for this method is in the cache or can be calculated without visiting the children.

Definition at line 776 of file evaluator.h.

template<typename _T , int DN>
bool coco::dfunc_eval< _T, DN >::is_cached ( const node_data_type &  __data  )  [inline, protected]

Definition at line 80 of file dfunc_evaluator.h.

template<typename _T , int DN>
void coco::dfunc_eval< _T, DN >::new_point ( const _T &  __x,
const variable_indicator __v 
) [inline]

Definition at line 154 of file dfunc_evaluator.h.

void coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN > , expression_node , dfunc_eval_rettype< _T, DN > , expression_const_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. It is translated into calls to calculate and cleanup.

Reimplemented from coco::_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >,expression_const_walker >.

Definition at line 744 of file evaluator.h.

int coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN > , expression_node , dfunc_eval_rettype< _T, DN > , expression_const_walker >::preorder ( const node_data_type __data  )  [inline, virtual, inherited]

This method is needed by a visitor (see VGTL documentation) and is called right before any children of a node are visited. It checks whether the result of this node is cached and calls either retrieve_from_cache and stops the downwards walk or calls initialize.

Reimplemented from coco::cached_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >,expression_const_walker >.

Definition at line 732 of file evaluator.h.

template<typename _T , int DN>
void coco::dfunc_eval< _T, DN >::retrieve_from_cache ( const expression_node __data  )  [inline, virtual]

The retrieve_from_cache method is called for retrieving the result for this node from the cache or calculate it without visiting the node's children.

Reimplemented from coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >, expression_const_walker >.

Definition at line 249 of file dfunc_evaluator.h.

template<typename _T , int DN>
expression_const_walker coco::dfunc_eval< _T, DN >::short_cut_to ( const expression_node __data  )  [inline, virtual]

The short_cut_to method is called whenever a short-cut is signalled during the graph walk, and the const_walker returned is the target of the short-cut.

Reimplemented from coco::cached_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >,expression_const_walker >.

Definition at line 150 of file dfunc_evaluator.h.

template<typename _T , int DN>
int coco::dfunc_eval< _T, DN >::update ( const expression_node __data,
const retval __rval 
) [inline, virtual]

The update method 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.

Reimplemented from coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >, expression_const_walker >.

Definition at line 260 of file dfunc_evaluator.h.

template<typename _T , int DN>
int coco::dfunc_eval< _T, DN >::update ( const retval __rval  )  [inline, virtual]

The update method is called for each virtual node everytime a child node has been visited passing the return value of the child. The __data parameter contains the node data of the graph node being visited. 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.

Reimplemented from coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >, expression_const_walker >.

Definition at line 254 of file dfunc_evaluator.h.

return_value coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN > , expression_node , dfunc_eval_rettype< _T, DN > , expression_const_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. It is translated to a call to calculate_value with parameter false.

Reimplemented from coco::_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >,expression_const_walker >.

Definition at line 762 of file evaluator.h.

int coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN > , expression_node , dfunc_eval_rettype< _T, DN > , expression_const_walker >::vcollect ( const return_value __rval  )  [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. It is translated to a call to update.

Reimplemented from coco::_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >,expression_const_walker >.

Definition at line 756 of file evaluator.h.

void coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN > , expression_node , dfunc_eval_rettype< _T, DN > , expression_const_walker >::vinit (  )  [inline, inherited]

This method is needed by a visitor using recursive_short_cut_walk for traversing the graph. It is called before performing any graph walk when at a virtual node. It is translated to initialize.

Definition at line 771 of file evaluator.h.

return_value coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN > , expression_node , dfunc_eval_rettype< _T, DN > , expression_const_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. It is translated to a call to calculate_value with parameter true.

Reimplemented from coco::_evaluator_base< dfunc_eval_type< _T, DN >, expression_node, dfunc_eval_rettype< _T, DN >,expression_const_walker >.

Definition at line 767 of file evaluator.h.


Member Data Documentation

The internal data of the evaluator

Definition at line 316 of file evaluator.h.

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:14 2010 for COCONUT API by  doxygen 1.5.8