Generated on Thu Jan 16 2025 00:00:00 for Gecode by doxygen 1.14.0
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 )
inlineprotected

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 )
inlineprotected

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
inlineprotected

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
inlineprotected

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)
inlinestaticprotected

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
inlineprotected

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)
inlinestaticprotected

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)
inlinestaticprotected

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)
inlinestaticprotected

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)
inlinestaticprotected

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)
inlinestaticprotected

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)
inlineprotected

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
inlineprotected

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 )
inlineprotected

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 )
inlineprotected

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 )
inlineprotected

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: