ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc > Class Template Reference
[Classes and types for external use]

labeled directed acyclic graph (LDAG) More...

#include <vgtl_ldag.h>

Inheritance diagram for ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >:

Inheritance graph
[legend]
Collaboration diagram for ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >:

Collaboration graph
[legend]

List of all members.

Public Types

typedef _Base::walker walker
typedef _Base::const_walker const_walker
typedef _Base::children_iterator children_iterator
typedef _Base::parents_iterator parents_iterator
typedef
_Base::children_const_iterator 
children_const_iterator
typedef
_Base::parents_const_iterator 
parents_const_iterator
typedef _Base::erased_part erased_part
typedef _SequenceCtr< void
*, _PtrAlloc >::iterator 
container_type
typedef _SequenceCtr< void
*, _PtrAlloc >::const_iterator 
out_iterator
typedef _SequenceCtr< void
*, _PtrAlloc >::const_iterator 
in_iterator
typedef _SequenceCtr< void
*, _PtrAlloc >::iterator 
out_const_iterator
typedef _SequenceCtr< void
*, _PtrAlloc >::iterator 
in_const_iterator
typedef _Base::node_allocator_type node_allocator_type
typedef _Base::edge_allocator_type edge_allocator_type
typedef _LDG_iterator< _Tp,
_Tp &, _Tp *, container_type,
children_iterator,
children_const_iterator,
_SequenceCtr< void
*, _PtrAlloc > > 
iterator
typedef _LDG_iterator< _Tp,
const _Tp &, const _Tp
*, container_type,
children_iterator,
children_const_iterator,
_SequenceCtr< void
*, _PtrAlloc > > 
const_iterator
typedef std::reverse_iterator
< const_iterator
const_reverse_iterator
typedef std::reverse_iterator
< iterator
reverse_iterator
typedef _Tp value_type
typedef _Node node_type
typedef _Edge edge_type
typedef value_typepointer
typedef const value_typeconst_pointer
typedef value_typereference
typedef const value_typeconst_reference
typedef size_t size_type
typedef ptrdiff_t difference_type

Public Member Functions

 ldag (const allocator_type &__a=allocator_type())
 ldag (const _Self &__ldag)
 ldag (const _Base &__ldag)
 ldag (const erased_part &__ep)
bool check_acyclicity (const walker &__parent, const walker &__child)
_Selfoperator= (const _RV_LDG &__rl)
_Selfoperator= (const erased_part &__ep)
void clear ()
walker between (const walker &__parent, const children_iterator &__cit, const walker &__child, const parents_iterator &__pit, const _Tp &__x)
walker between (const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children, const _Tp &__x)
walker between (const walker &__parent, const children_iterator &__cit, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker between (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const parents_iterator &__pit, const _Tp &__x)
walker split (const walker &__parent, const children_iterator &__ch_it, const walker &__child, const parents_iterator &__pa_it, const _Tp &__x)
void split (const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children, const _Tp &__x)
walker split (const walker &__parent, const children_iterator &__ch_it, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker split (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const parents_iterator &__pr_it, const _Tp &__x)
walker between_back (const walker &__parent, const walker &__child, const _Tp &__x)
walker between_back (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker between_back (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const _Tp &__x)
walker split_back (const walker &__parent, const walker &__child, const _Tp &__x)
walker split_back (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker split_back (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const _Tp &__x)
walker between_front (const walker &__parent, const walker &__child, const _Tp &__x)
walker between_front (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker between_front (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const _Tp &__x)
walker split_front (const walker &__parent, const walker &__child, const _Tp &__x)
walker split_front (const walker &__parent, const __SequenceCtr< walker, _Allocator > &__children, const _Tp &__x)
walker split_front (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const _Tp &__x)
void insert_subgraph (_Self &__subgraph, const walker &__parent, const children_iterator &__ch_it, const walker &__child, const parents_iterator &__pa_it)
void insert_subgraph (_Self &__subgraph, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
void insert_subgraph (_Self &__subgraph, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
void insert_back_subgraph (_Self &__subgraph, const walker &__parent, const walker &__child)
void insert_front_subgraph (_Self &__subgraph, const walker &__parent, const walker &__child)
void add_edge (const walker &__parent, const children_iterator &__ch_it, const walker &__child, const parents_iterator &__pa_it)
void add_edge (const edge &__edge, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
void add_edge (const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
void add_edge_back (const walker &__parent, const walker &__child)
void add_edge_front (const walker &__parent, const walker &__child)
node_allocator_type get_node_allocator () const
edge_allocator_type get_edge_allocator () const
walker ground ()
const_walker ground () const
walker sky ()
const_walker sky () const
bool empty () const
size_type size () const
size_type max_size () const
void swap (_Self &__x)
walker insert_node_in_graph (_Node *__n, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
walker insert_node_in_graph (_Node *__node, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
walker insert_node_in_graph (_Node *__node, const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
walker insert_node_in_graph (_Node *__node, const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
walker insert_in_graph (const _Tp &__x, const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
walker insert_in_graph (const walker &__parent, const walker &__child, const container_insert_arg &__Itc, const container_insert_arg &__Itp)
walker insert_in_graph (const _Tp &__x, const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
walker insert_in_graph (const __SequenceCtr1< walker, _Allocator1 > &__parents, const __SequenceCtr2< walker, _Allocator2 > &__children)
walker insert_in_graph (const _Tp &__x, const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
walker insert_in_graph (const walker &__parent, const container_insert_arg &__pref, const __SequenceCtr< walker, _Allocator > &__children)
walker insert_in_graph (const _Tp &__x, const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
walker insert_in_graph (const __SequenceCtr< walker, _Allocator > &__parents, const walker &__child, const container_insert_arg &__cref)
void replace_edge_to_child (const walker &__parent, const walker &__child_old, const walker &__child_new)
void replace_edge_to_parent (const walker &__parent_old, const walker &__parent_new, const walker &__child)
void remove_edge (const edge &__edge)
void remove_edge (const walker &__parent, const walker &__child)
void remove_edge_and_deattach (const walker &__parent, const walker &__child)
void sort_child_edges (walker __position, children_iterator first, children_iterator last, Compare comp)
void sort_child_edges (walker __position, Compare comp)
void sort_parent_edges (walker __position, parents_iterator first, parents_iterator last, Compare comp)
void sort_parent_edges (walker __position, Compare comp)
walker insert_node (_Node *_node, const walker &__position, const container_insert_arg &__It)
walker insert_node (const _Tp &__x, const walker &__position, const container_insert_arg &__It)
walker insert_node (const walker &__position, const container_insert_arg &__It)
walker insert_node_before (_Node *_node, const walker &__position, const container_insert_arg &__It)
void insert_node_before (const _Tp &__x, const walker &__position, const container_insert_arg &__It)
void insert_node_before (const walker &__position, const container_insert_arg &__It)
void merge (const walker &__position, const walker &__second, bool merge_parent_edges=true, bool merge_child_edges=true)
void erase (const walker &__position)
void partial_erase_to_parent (const walker &__position, const walker &__parent, unsigned int idx)
void clear_erased_part (erased_part &_ep)
erased_part erase_maximal_subgraph (const walker &__position)
erased_part erase_maximal_subgraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_minimal_subgraph (const walker &__position)
erased_part erase_minimal_subgraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_maximal_pregraph (const walker &__position)
erased_part erase_maximal_pregraph (const __SequenceCtr< walker, _Allocator > &__positions)
erased_part erase_minimal_pregraph (const walker &__position)
erased_part erase_minimal_pregraph (const __SequenceCtr< walker, _Allocator > &__positions)
bool erase_child (const walker &__position, const children_iterator &__It)
bool erase_parent (const walker &__position, const parents_iterator &__It)
out_iterator source_begin ()
out_iterator root_begin ()
out_const_iterator source_begin () const
out_iterator root_begin ()
out_iterator source_end ()
out_iterator root_end ()
out_const_iterator source_end () const
out_iterator root_end ()
in_iterator sink_begin ()
in_iterator leaf_begin ()
in_const_iterator sink_begin () const
in_iterator leaf_begin ()
in_iterator sink_end ()
in_iterator leaf_end ()
in_const_iterator sink_end () const
in_iterator leaf_end ()

Protected Member Functions

_Node_C_create_node (const _Tp &__x)
_Node_C_create_node ()
_Edge_C_create_edge (const _SequenceCtr< void *, _PtrAlloc > &__x)
_Edge_C_create_edge ()
_Edge_C_create_edge (const _SequenceCtr< void *, _PtrAlloc > &__x, _Node *__s, _Node *__t)
_Edge_C_create_edge (_Node *__s, _Node *__t)
void clear_graph (_LDG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >::iterator, _SequenceCtr< void *, _PtrAlloc >::const_iterator > *_node)
_LDG_node< _Tp, _SequenceCtr
< void *, _PtrAlloc >
::iterator, _SequenceCtr< void
*, _PtrAlloc >::const_iterator > * 
_C_get_node ()
void _C_put_node (_LDG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >::iterator, _SequenceCtr< void *, _PtrAlloc >::const_iterator > *__p)
_LDG_edge< _SequenceCtr< void
*, _PtrAlloc >, _Node > * 
_C_get_edge ()
void _C_put_edge (_LDG_edge< _SequenceCtr< void *, _PtrAlloc >, _Node > *__p)
void clear_out_edges ()
void clear_in_edges ()
void add_all_out_edges (_Output_Iterator fi, _LDG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >::iterator, _SequenceCtr< void *, _PtrAlloc >::const_iterator > *_parent)
void add_all_in_edges (_Output_Iterator fi, _LDG_node< _Tp, _SequenceCtr< void *, _PtrAlloc >::iterator, _SequenceCtr< void *, _PtrAlloc >::const_iterator > *_child)

Protected Attributes

_LDG_node< _Tp, _SequenceCtr
< void *, _PtrAlloc >
::iterator, _SequenceCtr< void
*, _PtrAlloc >::const_iterator > * 
_C_ground
_LDG_node< _Tp, _SequenceCtr
< void *, _PtrAlloc >
::iterator, _SequenceCtr< void
*, _PtrAlloc >::const_iterator > * 
_C_sky
int _C_mark


Detailed Description

template<class _Tp, template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
class ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >

This class constructs a labeled directed acyclic graph (LDAG). By default, the children and the parents are collected in an STL vector, but the container can be replaced by any other sequential container.

Definition at line 2750 of file vgtl_ldag.h.


Member Typedef Documentation

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
typedef _Base::children_const_iterator ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::children_const_iterator

the children const iterator

Reimplemented from ldgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 2772 of file vgtl_ldag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
typedef _Base::children_iterator ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::children_iterator

the children iterator

Reimplemented from ldgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 2768 of file vgtl_ldag.h.

typedef _LDG_iterator<_Tp ,const _Tp &,const _Tp *,container_type, children_iterator,children_const_iterator,_SequenceCtr< void *, _PtrAlloc > > __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::const_iterator [inherited]

the const iterator

Definition at line 651 of file vgtl_ldag.h.

typedef const value_type* __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::const_pointer [inherited]

standard typedef

Definition at line 630 of file vgtl_ldag.h.

typedef const value_type& __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::const_reference [inherited]

standard typedef

Definition at line 632 of file vgtl_ldag.h.

typedef std::reverse_iterator<const_iterator> __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::const_reverse_iterator [inherited]

the const reverse iterator

Definition at line 655 of file vgtl_ldag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
typedef _Base::const_walker ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::const_walker

the const walker

Reimplemented from ldgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 2766 of file vgtl_ldag.h.

typedef _SequenceCtr< void *, _PtrAlloc >::iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::container_type [inherited]

typedef ptrdiff_t __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::difference_type [inherited]

standard typedef

Definition at line 634 of file vgtl_ldag.h.

typedef _Base::edge_allocator_type __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::edge_allocator_type [inherited]

typedef _Edge __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::edge_type [inherited]

standard typedef

Definition at line 628 of file vgtl_ldag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
typedef _Base::erased_part ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::erased_part

the erased part constructed in erasing subgraphs

Reimplemented from ldgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 2777 of file vgtl_ldag.h.

typedef _SequenceCtr< void *, _PtrAlloc >::iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::in_const_iterator [inherited]

typedef _SequenceCtr< void *, _PtrAlloc >::const_iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::in_iterator [inherited]

typedef _LDG_iterator<_Tp ,_Tp &,_Tp *,container_type,children_iterator, children_const_iterator,_SequenceCtr< void *, _PtrAlloc > > __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::iterator [inherited]

the iterator

Definition at line 648 of file vgtl_ldag.h.

typedef _Base::node_allocator_type __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::node_allocator_type [inherited]

typedef _Node __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::node_type [inherited]

standard typedef

Definition at line 627 of file vgtl_ldag.h.

typedef _SequenceCtr< void *, _PtrAlloc >::iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::out_const_iterator [inherited]

typedef _SequenceCtr< void *, _PtrAlloc >::const_iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::out_iterator [inherited]

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
typedef _Base::parents_const_iterator ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::parents_const_iterator

the parents const iterator

Reimplemented from ldgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 2774 of file vgtl_ldag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
typedef _Base::parents_iterator ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::parents_iterator

the parents iterator

Reimplemented from ldgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 2770 of file vgtl_ldag.h.

typedef value_type* __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::pointer [inherited]

standard typedef

Definition at line 629 of file vgtl_ldag.h.

typedef value_type& __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::reference [inherited]

standard typedef

Definition at line 631 of file vgtl_ldag.h.

typedef std::reverse_iterator<iterator> __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::reverse_iterator [inherited]

the reverse iterator

Definition at line 657 of file vgtl_ldag.h.

typedef size_t __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::size_type [inherited]

standard typedef

Definition at line 633 of file vgtl_ldag.h.

typedef _Tp __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::value_type [inherited]

standard typedef

Definition at line 626 of file vgtl_ldag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
typedef _Base::walker ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::walker

the walker

Reimplemented from ldgraph< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >.

Definition at line 2764 of file vgtl_ldag.h.


Constructor & Destructor Documentation

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::ldag ( const allocator_type &  __a = allocator_type()  )  [inline, explicit]

standard constructor

Definition at line 2781 of file vgtl_ldag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::ldag ( const _Self __ldag  )  [inline]

copy constructor

Definition at line 2784 of file vgtl_ldag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::ldag ( const _Base __ldag  )  [inline]

construct ldag from directed graph

Definition at line 2790 of file vgtl_ldag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::ldag ( const erased_part __ep  )  [inline]

construct ldag from erased part

Definition at line 2798 of file vgtl_ldag.h.


Member Function Documentation

_Edge* __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::_C_create_edge ( _Node __s,
_Node __t 
) [inline, protected, inherited]

construct a new graph edge containing default data with source __s and target __t.

Definition at line 766 of file vgtl_ldag.h.

_Edge* __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::_C_create_edge ( const _SequenceCtr< void *, _PtrAlloc > &  __x,
_Node __s,
_Node __t 
) [inline, protected, inherited]

construct a new graph edge containing data __x with source __s and target __t.

Definition at line 751 of file vgtl_ldag.h.

_Edge* __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::_C_create_edge (  )  [inline, protected, inherited]

construct a new graph edge containing default data

Definition at line 738 of file vgtl_ldag.h.

_Edge* __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::_C_create_edge ( const _SequenceCtr< void *, _PtrAlloc > &  __x  )  [inline, protected, inherited]

construct a new graph edge containing data __x

Definition at line 726 of file vgtl_ldag.h.

_Node* __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::_C_create_node (  )  [inline, protected, inherited]

construct a new graph node containing default data

Definition at line 712 of file vgtl_ldag.h.

_Node* __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::_C_create_node ( const _Tp &  __x  )  [inline, protected, inherited]

construct a new graph node containing data __x

Definition at line 698 of file vgtl_ldag.h.

_LDG_edge<_SequenceCtr< void *, _PtrAlloc > ,_Node>* _LDG_base< _Tp , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc > , _NAlloc , _EAlloc >::_C_get_edge (  )  [inline, protected, inherited]

allocate a new edge

Definition at line 533 of file vgtl_ldagbase.h.

_LDG_node<_Tp ,_SequenceCtr< void *, _PtrAlloc >::iterator ,_SequenceCtr< void *, _PtrAlloc >::const_iterator >* _LDG_base< _Tp , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc > , _NAlloc , _EAlloc >::_C_get_node (  )  [inline, protected, inherited]

allocate a new node

Definition at line 526 of file vgtl_ldagbase.h.

void _LDG_base< _Tp , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc > , _NAlloc , _EAlloc >::_C_put_edge ( _LDG_edge< _SequenceCtr< void *, _PtrAlloc > , _Node > *  __p  )  [inline, protected, inherited]

deallocate a edge

Definition at line 536 of file vgtl_ldagbase.h.

void _LDG_base< _Tp , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc > , _NAlloc , _EAlloc >::_C_put_node ( _LDG_node< _Tp , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator > *  __p  )  [inline, protected, inherited]

deallocate a node

Definition at line 529 of file vgtl_ldagbase.h.

void _LDG_base< _Tp , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc > , _NAlloc , _EAlloc >::add_all_in_edges ( _Output_Iterator  fi,
_LDG_node< _Tp , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator > *  _child 
) [inline, protected, inherited]

add all in edges to the child _child. fi is a iterator to the in edges container of the child

void _LDG_base< _Tp , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc > , _NAlloc , _EAlloc >::add_all_out_edges ( _Output_Iterator  fi,
_LDG_node< _Tp , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator > *  _parent 
) [inline, protected, inherited]

add all out edges to the parent _parent. fi is a iterator to the out edges container of the parent

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::add_edge ( const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inline, inherited]

add an edge between __parent and __child at positions __Itc and __Itp, respectively

Definition at line 1200 of file vgtl_ldag.h.

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::add_edge ( const edge &  __edge,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inline, inherited]

add one edge between two nodes at the positions described by __Itc and __Itp.

Definition at line 1191 of file vgtl_ldag.h.

void ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::add_edge ( const walker __parent,
const children_iterator __ch_it,
const walker __child,
const parents_iterator __pa_it 
) [inline, inherited]

add an edge between __parent and __child at specific positions __ch_it and __pa_it.

Definition at line 2488 of file vgtl_ldag.h.

void ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::add_edge_back ( const walker __parent,
const walker __child 
) [inline, inherited]

add an edge between __parent and __child at the end of the children and parents containers.

Definition at line 2498 of file vgtl_ldag.h.

void ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::add_edge_front ( const walker __parent,
const walker __child 
) [inline, inherited]

add an edge between __parent and __child at the beginning of the children and parents containers.

Definition at line 2508 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const parents_iterator __pit,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between many parents and one child but the previous bonds are not broken, the node is always new

Definition at line 2624 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between ( const walker __parent,
const children_iterator __cit,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between one parent and many children but the previous bonds are not broken, the node is always new

Definition at line 2524 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between ( const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between many parents and many children but the previous bonds are not broken, the node is always new

Definition at line 2378 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between ( const walker __parent,
const children_iterator __cit,
const walker __child,
const parents_iterator __pit,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between a parent node and a child node but the previous bonds between the two are not broken, the node is always new with data __x.

Definition at line 2276 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between_back ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between many parents and one child but the previous bonds are not broken, the node is always new. At the child the new parent is put last.

Definition at line 2678 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between_back ( const walker __parent,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between one parent and many children but the previous bonds are not broken, the node is always new. At the parent the new child is put last.

Definition at line 2579 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between_back ( const walker __parent,
const walker __child,
const _Tp &  __x 
) [inline, inherited]

insert the node as the last child between parent and child, without breaking old bonds.

Definition at line 2311 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between_front ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between many parents and one child but the previous bonds are not broken, the node is always new. At the child the new parent is put first.

Definition at line 2706 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between_front ( const walker __parent,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between one parent and many children but the previous bonds are not broken, the node is always new. At the parent the new child is put first.

Definition at line 2609 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::between_front ( const walker __parent,
const walker __child,
const _Tp &  __x 
) [inline, inherited]

Here the inserted node is the first child of its parent and first parent of its child. Insert the node without breaking old bonds.

Definition at line 2342 of file vgtl_ldag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
bool ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::check_acyclicity ( const walker __parent,
const walker __child 
) [inline]

This method checks, whether the ldag is indeed acyclic. This is NYI!

Definition at line 2822 of file vgtl_ldag.h.

void ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::clear (  )  [inline, inherited]

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::clear_erased_part ( erased_part _ep  )  [inline, inherited]

clear all nodes in an erased part

Definition at line 1868 of file vgtl_ldag.h.

void _LDG_base< _Tp , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc > , _NAlloc , _EAlloc >::clear_graph ( _LDG_node< _Tp , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator > *  _node  )  [protected, inherited]

removes recursively all nodes and edges downward starting from _node.

void _LDG_base< _Tp , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc > , _NAlloc , _EAlloc >::clear_in_edges (  )  [inline, protected, inherited]

clear all in edges of the sky node

Definition at line 551 of file vgtl_ldagbase.h.

void _LDG_base< _Tp , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc > , _NAlloc , _EAlloc >::clear_out_edges (  )  [inline, protected, inherited]

clear all out edges of the ground node

Definition at line 548 of file vgtl_ldagbase.h.

bool __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::empty (  )  const [inline, inherited]

returns true if the DG is empty

Definition at line 888 of file vgtl_ldag.h.

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::erase ( const walker __position  )  [inline, inherited]

erase a node from the DG except the sky and ground

Definition at line 1518 of file vgtl_ldag.h.

bool __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::erase_child ( const walker __position,
const children_iterator &  __It 
) [inline, inherited]

Erase a child of __position. This works if and only if the child has only one child and no other parents.

Definition at line 2020 of file vgtl_ldag.h.

erased_part __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::erase_maximal_pregraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inline, inherited]

here every child is removed till the sky included all nodes from __positions. The removed subgraph is returned. The subgraph is maximal, i.e. all nodes are removed, which are reachable from any node from __positions by walking up.

Definition at line 1984 of file vgtl_ldag.h.

erased_part __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::erase_maximal_pregraph ( const walker __position  )  [inline, inherited]

here every child is removed till the sky node. included the node at __position. The removed subgraph is returned. The subgraph is maximal, i.e. all nodes are removed, which are reachable from __position by walking upwards.

Definition at line 1950 of file vgtl_ldag.h.

erased_part __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::erase_maximal_subgraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inline, inherited]

here every child is removed till the last base node, included all nodes from __positions. The removed subgraph is returned. The subgraph is maximal, i.e. all nodes are removed, which are reachable from any node from __positions by walking down.

Definition at line 1913 of file vgtl_ldag.h.

erased_part __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::erase_maximal_subgraph ( const walker __position  )  [inline, inherited]

here every child is removed till the last base node, included the node at __position. The removed subgraph is returned. The subgraph is maximal, i.e. all nodes are removed, which are reachable from __position by walking down.

Definition at line 1879 of file vgtl_ldag.h.

erased_part __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::erase_minimal_pregraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inline, inherited]

here every child is removed till the sky. included all nodes from __positions. The removed subgraph is returned. The subgraph is minimal, i.e. only nodes are removed, which have no other ancestor than any node in __positions. I.e., when walking towards the ground, there is no way which bypasses all nodes in __positions.

Definition at line 2004 of file vgtl_ldag.h.

erased_part __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::erase_minimal_pregraph ( const walker __position  )  [inline, inherited]

here every child is removed till the sky. included the node at __position. The removed subgraph is returned. The subgraph is minimal, i.e. only nodes are removed, which have no other descendant than __position. I.e., when walking towards the sky, there is no way which bypasses __position.

Definition at line 1966 of file vgtl_ldag.h.

erased_part __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::erase_minimal_subgraph ( const __SequenceCtr< walker, _Allocator > &  __positions  )  [inline, inherited]

here every child is removed till the last base node, included all nodes from __positions. The removed subgraph is returned. The subgraph is minimal, i.e. only nodes are removed, which have no other ancestor than any node in __positions. I.e., when walking towards the ground, there is no way which bypasses all nodes in __positions.

Definition at line 1933 of file vgtl_ldag.h.

erased_part __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::erase_minimal_subgraph ( const walker __position  )  [inline, inherited]

here every child is removed till the last base node, included the node at __position. The removed subgraph is returned. The subgraph is minimal, i.e. only nodes are removed, which have no other ancestor than __position. I.e., when walking towards the ground, there is no way which bypasses __position.

Definition at line 1895 of file vgtl_ldag.h.

bool __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::erase_parent ( const walker __position,
const parents_iterator &  __It 
) [inline, inherited]

Erase a parent of __position. This works if and only if the parent has only one parent and no other children.

Definition at line 2046 of file vgtl_ldag.h.

edge_allocator_type __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::get_edge_allocator (  )  const [inline, inherited]

node_allocator_type __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::get_node_allocator (  )  const [inline, inherited]

const_walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::ground (  )  const [inline, inherited]

return a const walker to the virtual ground node.

Definition at line 794 of file vgtl_ldag.h.

walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::ground (  )  [inline, inherited]

return a walker to the virtual ground node.

Definition at line 784 of file vgtl_ldag.h.

void ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::insert_back_subgraph ( _Self __subgraph,
const walker __parent,
const walker __child 
) [inline, inherited]

here a subgraph is inserted between a parent and a child, at the end of the children resp. parents lists.

Definition at line 2447 of file vgtl_ldag.h.

void ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::insert_front_subgraph ( _Self __subgraph,
const walker __parent,
const walker __child 
) [inline, inherited]

here a subgraph is inserted between a parent and a child, at the front of the children resp. parents lists.

Definition at line 2460 of file vgtl_ldag.h.

walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_in_graph ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inline, inherited]

insert a node with default data into the graph between all parents from __parents and the child __child.

Definition at line 1127 of file vgtl_ldag.h.

walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_in_graph ( const _Tp &  __x,
const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inline, inherited]

insert a node with data __x into the graph between all parents from __parents and the child __child.

Definition at line 1112 of file vgtl_ldag.h.

walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_in_graph ( const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inline, inherited]

insert a node with data __x into the graph between the parent __parent and all children from __children.

Definition at line 1073 of file vgtl_ldag.h.

walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_in_graph ( const _Tp &  __x,
const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inline, inherited]

insert a node with data __x into the graph between the parent __parent and all children from __children.

Definition at line 1059 of file vgtl_ldag.h.

walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_in_graph ( const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inline, inherited]

insert a node with default data into the graph between all parents from __parents and all children from __children.

Definition at line 1021 of file vgtl_ldag.h.

walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_in_graph ( const _Tp &  __x,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inline, inherited]

insert a node with data __x into the graph between all parents from __parents and all children from __children.

Definition at line 1006 of file vgtl_ldag.h.

walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_in_graph ( const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inline, inherited]

insert node with default data into the graph between __parent and __child, the edge at the specific positions described by __Itc and __Itp.

Definition at line 942 of file vgtl_ldag.h.

walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_in_graph ( const _Tp &  __x,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inline, inherited]

insert node with data __n into the graph between __parent and __child, the edge at the specific positions described by __Itc and __Itp.

Definition at line 928 of file vgtl_ldag.h.

walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_node ( const walker __position,
const container_insert_arg &  __It 
) [inline, inherited]

insert a new node with default data as child of __position

Definition at line 1399 of file vgtl_ldag.h.

walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_node ( const _Tp &  __x,
const walker __position,
const container_insert_arg &  __It 
) [inline, inherited]

insert a new node with data __x as child of __position

Definition at line 1393 of file vgtl_ldag.h.

walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_node ( _Node _node,
const walker __position,
const container_insert_arg &  __It 
) [inline, inherited]

insert one node as child of __position

Definition at line 1379 of file vgtl_ldag.h.

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_node_before ( const walker __position,
const container_insert_arg &  __It 
) [inline, inherited]

insert a new node with default data as parent of __position

Definition at line 1423 of file vgtl_ldag.h.

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_node_before ( const _Tp &  __x,
const walker __position,
const container_insert_arg &  __It 
) [inline, inherited]

insert a new node with data __x as parent of __position

Definition at line 1418 of file vgtl_ldag.h.

walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_node_before ( _Node _node,
const walker __position,
const container_insert_arg &  __It 
) [inline, inherited]

insert a node as parent of __position

Definition at line 1404 of file vgtl_ldag.h.

walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_node_in_graph ( _Node __node,
const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const container_insert_arg &  __cref 
) [inline, inherited]

insert node __n into the graph between all parents from __parents and the child __child.

Definition at line 1087 of file vgtl_ldag.h.

walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_node_in_graph ( _Node __node,
const walker __parent,
const container_insert_arg &  __pref,
const __SequenceCtr< walker, _Allocator > &  __children 
) [inline, inherited]

insert node __n into the graph between the parent __parent and all children from __children.

Definition at line 1034 of file vgtl_ldag.h.

walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_node_in_graph ( _Node __node,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inline, inherited]

insert node __n into the graph between all parents from __parents and all children from __children.

Definition at line 975 of file vgtl_ldag.h.

walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_node_in_graph ( _Node __n,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inline, inherited]

insert node __n into the graph between __parent and __child, the edge at the specific positions described by __Itc and __Itp.

Definition at line 912 of file vgtl_ldag.h.

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_subgraph ( _Self __subgraph,
const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children 
) [inline, inherited]

in this method one DG is inserted into another DG between the parents __parents and the children __children.

Definition at line 1141 of file vgtl_ldag.h.

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::insert_subgraph ( _Self __subgraph,
const walker __parent,
const walker __child,
const container_insert_arg &  __Itc,
const container_insert_arg &  __Itp 
) [inline, inherited]

insert a subgraph into the graph between __parent and __child, the edge at the specific positions described by __Itc and __Itp.

Definition at line 953 of file vgtl_ldag.h.

void ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::insert_subgraph ( _Self __subgraph,
const walker __parent,
const children_iterator __ch_it,
const walker __child,
const parents_iterator __pa_it 
) [inline, inherited]

here a subgraph is inserted between a parent and a child, at specific positions __ch_it and __pa_it.

Definition at line 2436 of file vgtl_ldag.h.

in_iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::leaf_begin (  )  [inline, inherited]

return the first local sink of the directed graph

Definition at line 846 of file vgtl_ldag.h.

in_iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::leaf_begin (  )  [inline, inherited]

return the first local sink of the directed graph

Definition at line 833 of file vgtl_ldag.h.

in_iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::leaf_end (  )  [inline, inherited]

return beyond the last local sink of the directed graph

Definition at line 852 of file vgtl_ldag.h.

in_iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::leaf_end (  )  [inline, inherited]

return beyond the last local sink of the directed graph

Definition at line 839 of file vgtl_ldag.h.

size_type __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::max_size (  )  const [inline, inherited]

the maximum size of a DG is virtually unlimited

Definition at line 899 of file vgtl_ldag.h.

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::merge ( const walker __position,
const walker __second,
bool  merge_parent_edges = true,
bool  merge_child_edges = true 
) [inline, inherited]

merge two nodes, call also the merge method for the node data

Definition at line 1429 of file vgtl_ldag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
_Self& ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::operator= ( const erased_part __ep  )  [inline]

assignment from erased part

Definition at line 2846 of file vgtl_ldag.h.

template<class _Tp , template< class __Ty, class __AllocT > class _SequenceCtr = std::vector, class _PtrAlloc = __VGTL_DEFAULT_ALLOCATOR(void *), class _Alloc = __VGTL_DEFAULT_ALLOCATOR(_Tp)>
_Self& ldag< _Tp, _SequenceCtr, _PtrAlloc, _Alloc >::operator= ( const _RV_LDG &  __rl  )  [inline]

assignment from part of an erased part

Definition at line 2838 of file vgtl_ldag.h.

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::partial_erase_to_parent ( const walker __position,
const walker __parent,
unsigned int  idx 
) [inline, inherited]

split a node in two, the first connected to the __parent, the second connected to all other parents. Then erase the first node.

Definition at line 1578 of file vgtl_ldag.h.

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::remove_edge ( const walker __parent,
const walker __child 
) [inline, inherited]

just remove one edge between __parent and __child

Definition at line 1332 of file vgtl_ldag.h.

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::remove_edge ( const edge &  __edge  )  [inline, inherited]

remove an edge with a particular parent and child

Definition at line 1315 of file vgtl_ldag.h.

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::remove_edge_and_deattach ( const walker __parent,
const walker __child 
) [inline, inherited]

remove one egde and don't reconnect the node to sky/ground

Definition at line 1319 of file vgtl_ldag.h.

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::replace_edge_to_child ( const walker __parent,
const walker __child_old,
const walker __child_new 
) [inline, inherited]

change the edge from __parent to __child_old to an edge from __parent to __child_new.

Definition at line 1243 of file vgtl_ldag.h.

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::replace_edge_to_parent ( const walker __parent_old,
const walker __parent_new,
const walker __child 
) [inline, inherited]

change the edge from __parent_old to __child to an edge from __parent_new to __child.

Definition at line 1281 of file vgtl_ldag.h.

out_iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::root_begin (  )  [inline, inherited]

return the first local source of the directed graph

Definition at line 820 of file vgtl_ldag.h.

out_iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::root_begin (  )  [inline, inherited]

return the first local source of the directed graph

Definition at line 807 of file vgtl_ldag.h.

out_iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::root_end (  )  [inline, inherited]

return beyond the last local source of the directed graph

Definition at line 826 of file vgtl_ldag.h.

out_iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::root_end (  )  [inline, inherited]

return beyond the last local source of the directed graph

Definition at line 813 of file vgtl_ldag.h.

in_const_iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::sink_begin (  )  const [inline, inherited]

return the first local sink of the directed graph

Definition at line 844 of file vgtl_ldag.h.

in_iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::sink_begin (  )  [inline, inherited]

return the first local sink of the directed graph

Definition at line 831 of file vgtl_ldag.h.

in_const_iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::sink_end (  )  const [inline, inherited]

return beyond the last local sink of the directed graph

Definition at line 850 of file vgtl_ldag.h.

in_iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::sink_end (  )  [inline, inherited]

return beyond the last local sink of the directed graph

Definition at line 837 of file vgtl_ldag.h.

size_type __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::size (  )  const [inline, inherited]

returns the size of the DG (number of nodes)

Definition at line 892 of file vgtl_ldag.h.

const_walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::sky (  )  const [inline, inherited]

return a const walker to the virtual sky node.

Definition at line 799 of file vgtl_ldag.h.

walker __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::sky (  )  [inline, inherited]

return a walker to the virtual sky node.

Definition at line 789 of file vgtl_ldag.h.

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::sort_child_edges ( walker  __position,
Compare  comp 
) [inline, inherited]

sort all child edges according to comp

Definition at line 1368 of file vgtl_ldag.h.

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::sort_child_edges ( walker  __position,
children_iterator  first,
children_iterator  last,
Compare  comp 
) [inline, inherited]

sort the child edges in the range [first,last) according to comp

Definition at line 1356 of file vgtl_ldag.h.

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::sort_parent_edges ( walker  __position,
Compare  comp 
) [inline, inherited]

sort all parent edges according to comp

Definition at line 1374 of file vgtl_ldag.h.

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::sort_parent_edges ( walker  __position,
parents_iterator  first,
parents_iterator  last,
Compare  comp 
) [inline, inherited]

sort the parent edges in the range [first,last) according to comp

Definition at line 1362 of file vgtl_ldag.h.

out_const_iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::source_begin (  )  const [inline, inherited]

return the first local source of the directed graph

Definition at line 818 of file vgtl_ldag.h.

out_iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::source_begin (  )  [inline, inherited]

return the first local source of the directed graph

Definition at line 805 of file vgtl_ldag.h.

out_const_iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::source_end (  )  const [inline, inherited]

return beyond the last local source of the directed graph

Definition at line 824 of file vgtl_ldag.h.

out_iterator __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::source_end (  )  [inline, inherited]

return beyond the last local source of the directed graph

Definition at line 811 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const parents_iterator __pr_it,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between many parents and one child, and the previous bonds are broken, the node is always new.

Definition at line 2637 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split ( const walker __parent,
const children_iterator __ch_it,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between one parent and many children, and the previous bonds are broken, the node is always new.

Definition at line 2537 of file vgtl_ldag.h.

void ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split ( const __SequenceCtr1< walker, _Allocator1 > &  __parents,
const __SequenceCtr2< walker, _Allocator2 > &  __children,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between many parents and many children, and the previous bonds are broken, the node is always new.

Definition at line 2410 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split ( const walker __parent,
const children_iterator __ch_it,
const walker __child,
const parents_iterator __pa_it,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between a parent node and a child node and the previous bonds between them are broken, the node is always new with data __x.

Definition at line 2289 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split_back ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between many parents and one child, and the previous bonds are broken, the node is always new. At the child the new parent is put last.

Definition at line 2664 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split_back ( const walker __parent,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between one parent and many children, and the previous bonds are broken, the node is always new. At the parent the new child is put last.

Definition at line 2564 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split_back ( const walker __parent,
const walker __child,
const _Tp &  __x 
) [inline, inherited]

insert the node as the last child between parent and child, with breaking old bonds.

Definition at line 2324 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split_front ( const __SequenceCtr< walker, _Allocator > &  __parents,
const walker __child,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between many parents and one child, and the previous bonds are broken, the node is always new. At the child the new parent is put first.

Definition at line 2692 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split_front ( const walker __parent,
const __SequenceCtr< walker, _Allocator > &  __children,
const _Tp &  __x 
) [inline, inherited]

here a new node is inserted between one parent and many children, and the previous bonds are broken, the node is always new. At the parent the new child is put first.

Definition at line 2594 of file vgtl_ldag.h.

walker ldgraph< _Tp , _SequenceCtr , _PtrAlloc , _Alloc >::split_front ( const walker __parent,
const walker __child,
const _Tp &  __x 
) [inline, inherited]

Here the inserted node is the first child of its parent and first parent of its child. Insert the node and break old bonds.

Definition at line 2355 of file vgtl_ldag.h.

void __LDG< _Tp , _SequenceCtr< void *, _PtrAlloc > , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _Alloc , _NAlloc, _EAlloc >::swap ( _Self __x  )  [inline, inherited]

swap two DGs

Definition at line 902 of file vgtl_ldag.h.


Member Data Documentation

_LDG_node<_Tp ,_SequenceCtr< void *, _PtrAlloc >::iterator ,_SequenceCtr< void *, _PtrAlloc >::const_iterator >* _LDG_base< _Tp , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc > , _NAlloc , _EAlloc >::_C_ground [protected, inherited]

the virtual ground node (below all roots)

Definition at line 541 of file vgtl_ldagbase.h.

int _LDG_base< _Tp , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc > , _NAlloc , _EAlloc >::_C_mark [protected, inherited]

an internal counter for setting marks during certain algorithms

Definition at line 545 of file vgtl_ldagbase.h.

_LDG_node<_Tp ,_SequenceCtr< void *, _PtrAlloc >::iterator ,_SequenceCtr< void *, _PtrAlloc >::const_iterator >* _LDG_base< _Tp , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc >::const_iterator , _SequenceCtr< void *, _PtrAlloc >::iterator , _SequenceCtr< void *, _PtrAlloc > , _NAlloc , _EAlloc >::_C_sky [protected, inherited]

the virtual sky node (above all leafs)

Definition at line 543 of file vgtl_ldagbase.h.


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

Generated on Tue Feb 9 14:42:46 2010 for Vienna Graph Template Library by  doxygen 1.5.8