#include <dfunc_evaluator.h>
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_indicator * | v_ind |
dfunc_eval_type< _T, DN > | eval_data |
Definition at line 68 of file dfunc_evaluator.h.
typedef _Base::const_walker coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN > , expression_node , dfunc_eval_rettype< _T, DN > , expression_const_walker >::const_walker [inherited] |
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.
typedef dfunc_eval_type< _T, DN > coco::_evaluator_base< dfunc_eval_type< _T, DN > , expression_node , dfunc_eval_rettype< _T, DN > , expression_const_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.
typedef _Base::return_value coco::cached_forward_evaluator_base< dfunc_eval_type< _T, DN > , expression_node , dfunc_eval_rettype< _T, DN > , expression_const_walker >::return_value [inherited] |
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.
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.
coco::dfunc_eval< _T, DN >::dfunc_eval | ( | const dfunc_eval< _T, DN > & | __v | ) | [inline] |
Definition at line 146 of file dfunc_evaluator.h.
coco::dfunc_eval< _T, DN >::~dfunc_eval | ( | ) | [inline] |
Definition at line 148 of file dfunc_evaluator.h.
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.
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.
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.
<0 | perform a short-cut (the short_cut_to method will be called), |
0 | don't visit the children, proceed with postorder, |
>0 | continue 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.
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.
bool coco::dfunc_eval< _T, DN >::is_cached | ( | const node_data_type & | __data | ) | [inline, protected] |
Definition at line 80 of file dfunc_evaluator.h.
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.
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.
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.
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:
<0 | stop visiting children of this node, |
0 | continue with the graph walk downwards the next child, |
>0 | skip 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.
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:
<0 | stop visiting children of this node, |
0 | continue with the graph walk downwards the next child, |
>0 | skip 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.
dfunc_eval_type< _T, DN > coco::_evaluator_base< dfunc_eval_type< _T, DN > , expression_node , dfunc_eval_rettype< _T, DN > , expression_const_walker >::eval_data [protected, inherited] |
The internal data of the evaluator
Definition at line 316 of file evaluator.h.
const variable_indicator* coco::cached_evaluator_base< dfunc_eval_type< _T, DN > , expression_node , dfunc_eval_rettype< _T, DN > , expression_const_walker >::v_ind [protected, inherited] |
For caching a variable indicator is needed to check which nodes need not be re-evaluated.
Definition at line 427 of file evaluator.h.