Gecode::Int::TaskTree< TaskView, Node > Class Template Reference

Task trees for task views with node type Node. More...

`#include <task.hh>`

## Protected Member Functions

int | n_inner (void) const
| Return number of inner nodes.
int | n_nodes (void) const
| Return number of nodes for balanced binary tree.
bool | n_leaf (int i) const
| Whether node i is leaf.
Node & | leaf (int i)
| Return leaf for task i.
const Node & | root (void) const
| Return root node.
void | update (int i, bool l=true)
| Update tree after leaf for task i has changed (l whether i refers to a leaf).
void | init (void)
| Initialize tree after leaves have been initialized.
void | update (void)
| Update all inner nodes of tree after leaves have been initialized.
| TaskTree (Region &r, const TaskViewArray< TaskView > &t)
| Initialize tree for tasks t.
template<class Node2>
| TaskTree (Region &r, const TaskTree< TaskView, Node2 > &t)
| Initialize tree using tree t.

## Static Protected Member Functions

static bool | n_root (int i)
| Whether node i is index of root.
static int | n_left (int i)
| Return index of left child of node i.
static bool | left (int i)
| Test whether node i is a left child.
static int | n_right (int i)
| Return index of right child of node i.
static bool | right (int i)
| Test whether node i is a right child.
static int | n_parent (int i)
| Return index of parent of node i.

## Protected Attributes

const TaskViewArray< TaskView > & | tasks
| The tasks from which the tree is computed.
Node * | node
| Task nodes.
int * | _leaf
| Map task number to leaf node number in right order.

## Detailed Description

template<class TaskView, class Node>
class Gecode::Int::TaskTree< TaskView, Node >

Task trees for task views with node type Node.

Definition at line 365 of file task.hh.

## Constructor & Destructor Documentation

## TaskTree() [1/2]

template<class TaskView, class Node>

Gecode::Int::TaskTree< TaskView, Node >::TaskTree | ( | Region & | r,
|  | const TaskViewArray< TaskView > & | t )

inline protected

Initialize tree for tasks t.

Definition at line 141 of file tree.hpp.

## TaskTree() [2/2]

template<class TaskView, class Node>
template<class Node2>

Gecode::Int::TaskTree< TaskView, Node >::TaskTree | ( | Region & | r,
|  | const TaskTree< TaskView, Node2 > & | t )

inline protected

Initialize tree using tree t.

Definition at line 168 of file tree.hpp.

## Member Function Documentation

## n_inner()

template<class TaskView, class Node>

int Gecode::Int::TaskTree< TaskView, Node >::n_inner | ( | void |  | ) | const

inline protected

Return number of inner nodes.

Definition at line 52 of file tree.hpp.

## n_nodes()

template<class TaskView, class Node>

int Gecode::Int::TaskTree< TaskView, Node >::n_nodes | ( | void |  | ) | const

inline protected

Return number of nodes for balanced binary tree.

Definition at line 57 of file tree.hpp.

## n_root()

template<class TaskView, class Node>

bool Gecode::Int::TaskTree< TaskView, Node >::n_root | ( | int | i | ) |

inline static protected

Whether node i is index of root.

Definition at line 63 of file tree.hpp.

## n_leaf()

template<class TaskView, class Node>

bool Gecode::Int::TaskTree< TaskView, Node >::n_leaf | ( | int | i | ) | const

inline protected

Whether node i is leaf.

Definition at line 68 of file tree.hpp.

## n_left()

template<class TaskView, class Node>

int Gecode::Int::TaskTree< TaskView, Node >::n_left | ( | int | i | ) |

inline static protected

Return index of left child of node i.

Definition at line 73 of file tree.hpp.

## left()

template<class TaskView, class Node>

bool Gecode::Int::TaskTree< TaskView, Node >::left | ( | int | i | ) |

inline static protected

Test whether node i is a left child.

Definition at line 78 of file tree.hpp.

## n_right()

template<class TaskView, class Node>

int Gecode::Int::TaskTree< TaskView, Node >::n_right | ( | int | i | ) |

inline static protected

Return index of right child of node i.

Definition at line 85 of file tree.hpp.

## right()

template<class TaskView, class Node>

bool Gecode::Int::TaskTree< TaskView, Node >::right | ( | int | i | ) |

inline static protected

Test whether node i is a right child.

Definition at line 90 of file tree.hpp.

## n_parent()

template<class TaskView, class Node>

int Gecode::Int::TaskTree< TaskView, Node >::n_parent | ( | int | i | ) |

inline static protected

Return index of parent of node i.

Definition at line 97 of file tree.hpp.

## leaf()

template<class TaskView, class Node>

Node & Gecode::Int::TaskTree< TaskView, Node >::leaf | ( | int | i | ) |

inline protected

Return leaf for task i.

Definition at line 103 of file tree.hpp.

## root()

template<class TaskView, class Node>

const Node & Gecode::Int::TaskTree< TaskView, Node >::root | ( | void |  | ) | const

inline protected

Return root node.

Definition at line 109 of file tree.hpp.

## update() [1/2]

template<class TaskView, class Node>

void Gecode::Int::TaskTree< TaskView, Node >::update | ( | int | i,
|  | bool | l = true )

inline protected

Update tree after leaf for task i has changed (l whether i refers to a leaf).

Definition at line 129 of file tree.hpp.

## init()

template<class TaskView, class Node>

void Gecode::Int::TaskTree< TaskView, Node >::init | ( | void |  | ) |

inline protected

Initialize tree after leaves have been initialized.

Definition at line 115 of file tree.hpp.

## update() [2/2]

template<class TaskView, class Node>

void Gecode::Int::TaskTree< TaskView, Node >::update | ( | void |  | ) |

inline protected

Update all inner nodes of tree after leaves have been initialized.

Definition at line 122 of file tree.hpp.

## Member Data Documentation

## tasks

template<class TaskView, class Node>

const TaskViewArray<TaskView>& Gecode::Int::TaskTree< TaskView, Node >::tasks

protected

The tasks from which the tree is computed.

Definition at line 369 of file task.hh.

## node

template<class TaskView, class Node>

Node* Gecode::Int::TaskTree< TaskView, Node >::node

protected

Task nodes.

Definition at line 371 of file task.hh.

## _leaf

template<class TaskView, class Node>

int* Gecode::Int::TaskTree< TaskView, Node >::_leaf

protected

Map task number to leaf node number in right order.

Definition at line 373 of file task.hh.

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

- gecode/int/task.hh
- gecode/int/task/tree.hpp