ARB
Public Member Functions | Static Public Member Functions | List of all members
ARB_edge Class Reference

#include <TreeNode.h>

Public Member Functions

void virtually_distribute_length (GBT_LEN len, TreeNode::LengthCollector &collect) const
 
 ARB_edge (TreeNode *From, TreeNode *To)
 
 ARB_edge (TreeNode *From, TreeNode *To, ARB_edge_type Type)
 
 ARB_edge (const ARB_edge &otherEdge)
 
 DECLARE_ASSIGNMENT_OPERATOR (ARB_edge)
 
ARB_edge_type get_type () const
 
TreeNodesource () const
 
TreeNodedest () const
 
TreeNodeson () const
 
TreeNodeother () const
 
GBT_LEN length () const
 
void set_length (GBT_LEN len)
 
GBT_LEN eliminate ()
 
ARB_edge inverse () const
 
ARB_edge next () const
 
ARB_edge previous () const
 
ARB_edge counter_next () const
 
ARB_edge counter_previous () const
 
bool operator== (const ARB_edge &otherEdge) const
 
bool operator!= (const ARB_edge &otherEdge) const
 
bool is_edge_to_leaf () const
 
bool is_edge_from_leaf () const
 
bool is_inner_edge () const
 
void set_root ()
 
void multifurcate ()
 

Static Public Member Functions

static int iteration_count (int leafs_in_tree)
 

Detailed Description

Definition at line 663 of file TreeNode.h.

Constructor & Destructor Documentation

ARB_edge::ARB_edge ( TreeNode From,
TreeNode To 
)
inline

Definition at line 703 of file TreeNode.h.

Referenced by counter_next(), counter_previous(), inverse(), next(), and previous().

ARB_edge::ARB_edge ( TreeNode From,
TreeNode To,
ARB_edge_type  Type 
)
inline

Definition at line 708 of file TreeNode.h.

References rt_assert.

ARB_edge::ARB_edge ( const ARB_edge otherEdge)
inline

Definition at line 715 of file TreeNode.h.

References rt_assert.

Member Function Documentation

void ARB_edge::virtually_distribute_length ( GBT_LEN  len,
TreeNode::LengthCollector collect 
) const

distribute length to all adjacent edges. Longer edges receive more than shorter ones.

Edges with length zero will not be changed, instead both edges "beyond" the edge will be affected (they will be affected equally to direct edges, because edges at multifurcations are considered to BE direct edges).

Note: length will not be distributed to tree-struction itself (yet), but collected in 'collect'

Definition at line 520 of file TreeNode.cxx.

References inverse(), and is_normal().

Referenced by TreeNode::LengthCollector::independent_distribution().

ARB_edge::DECLARE_ASSIGNMENT_OPERATOR ( ARB_edge  )
ARB_edge_type ARB_edge::get_type ( ) const
inline

Definition at line 725 of file TreeNode.h.

Referenced by GroupSearch::perform_search().

TreeNode* ARB_edge::source ( ) const
inline

Definition at line 726 of file TreeNode.h.

Referenced by eliminate(), is_edge_from_leaf(), and GroupSearch::perform_search().

TreeNode* ARB_edge::dest ( ) const
inline
TreeNode* ARB_edge::son ( ) const
inline

Definition at line 729 of file TreeNode.h.

References EDGE_TO_ROOT.

Referenced by eliminate(), length(), multifurcate(), randomMixTree(), set_length(), and set_root().

TreeNode* ARB_edge::other ( ) const
inline

Definition at line 730 of file TreeNode.h.

References EDGE_TO_ROOT.

GBT_LEN ARB_edge::length ( ) const
inline
void ARB_edge::set_length ( GBT_LEN  len)
inline
GBT_LEN ARB_edge::eliminate ( )
inline

eliminates edge (zeroes length and bootstrap). returns eliminated length.

Definition at line 745 of file TreeNode.h.

References dest(), TreeNode::reset_length_and_bootstrap(), ROOT_EDGE, son(), and source().

Referenced by TreeNode::LengthCollector::eliminate_parent_edge().

ARB_edge ARB_edge::inverse ( ) const
inline
ARB_edge ARB_edge::next ( ) const
inline
ARB_edge ARB_edge::previous ( ) const
inline
ARB_edge ARB_edge::counter_next ( ) const
inline
ARB_edge ARB_edge::counter_previous ( ) const
inline
static int ARB_edge::iteration_count ( int  leafs_in_tree)
inlinestatic

returns number of different edges produced by next() / previous():

  • each edge is visited twice (once in each direction)

Definition at line 809 of file TreeNode.h.

References leafs_2_edges(), and UNROOTED.

Referenced by SearchedTree::get_edge_iteration_count().

bool ARB_edge::operator== ( const ARB_edge otherEdge) const
inline

Definition at line 816 of file TreeNode.h.

Referenced by operator!=().

bool ARB_edge::operator!= ( const ARB_edge otherEdge) const
inline

Definition at line 819 of file TreeNode.h.

References operator==().

bool ARB_edge::is_edge_to_leaf ( ) const
inline

true if edge is leaf edge AND points towards the leaf

Definition at line 823 of file TreeNode.h.

References dest(), and TreeNode::is_leaf().

Referenced by counter_next(), is_inner_edge(), and next().

bool ARB_edge::is_edge_from_leaf ( ) const
inline

true if edge is leaf edge AND points away from the leaf

Definition at line 827 of file TreeNode.h.

References TreeNode::is_leaf(), and source().

Referenced by counter_previous(), is_inner_edge(), and previous().

bool ARB_edge::is_inner_edge ( ) const
inline

true for inner edges

Definition at line 831 of file TreeNode.h.

References is_edge_from_leaf(), and is_edge_to_leaf().

void ARB_edge::set_root ( )
inline

Definition at line 836 of file TreeNode.h.

References TreeNode::set_root(), and son().

Referenced by AWT_graphic_tree::handle_command(), and nt_add().

void ARB_edge::multifurcate ( )

eliminate edge and distribute length to adjacent edges

  • sets its length to zero
  • removes remark (bootstrap)
  • distributes length to neighbour-branches

Definition at line 578 of file TreeNode.cxx.

References TreeNode::LengthCollector::eliminate_parent_edge(), TreeNode::LengthCollector::independent_distribution(), and son().

Referenced by TreeNode::multifurcate().


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