#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.
1.5.8