Generated on Tue Feb 11 2025 17:33:26 for Gecode by doxygen 1.12.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: