bpp-phyl3  3.0.0
bpp::ProcessComputationTree Class Referenceabstract

#include <Bpp/Phyl/Likelihood/ProcessComputationTree.h>

+ Inheritance diagram for bpp::ProcessComputationTree:
+ Collaboration diagram for bpp::ProcessComputationTree:

Public Types

typedef AssociationGraphObserver< N, E >::NodeIndex NodeIndex
 
typedef AssociationGraphObserver< N, E >::EdgeIndex EdgeIndex
 
typedef Graph::NodeId NodeGraphid
 
typedef Graph::EdgeId EdgeGraphid
 
typedef AssociationGraphObserver< N, E >::NodeIterator NodeIterator
 
typedef AssociationGraphObserver< N, E >::EdgeIterator EdgeIterator
 
typedef std::shared_ptr< E > Eref
 
typedef std::shared_ptr< N > Nref
 

Public Member Functions

 ProcessComputationTree (std::shared_ptr< const SubstitutionProcessInterface > process)
 construction of a ProcessComputationTree from a SubstitutionProcess More...
 
AssociationTreeGraphImplObserver< N, E, TreeGraphImpl > * clone () const
 
bool isValid () const
 
std::shared_ptr< E > getEdgeToFather (const std::shared_ptr< N > nodeObject) const
 
std::shared_ptr< E > getEdgeToFather (const NodeIndex index) const
 
void rootAt (const std::shared_ptr< N > root)
 
bool isRooted () const
 
std::shared_ptr< N > getFatherOfNode (const std::shared_ptr< N > nodeObject) const
 
bool hasFather (const std::shared_ptr< N > nodeObject) const
 
bool hasFather (const NodeIndex index) const
 
std::vector< std::shared_ptr< N > > getSons (const std::shared_ptr< N > node) const
 
std::vector< NodeIndexgetSons (const NodeIndex node) const
 
std::vector< std::shared_ptr< E > > getBranches (const std::shared_ptr< N > node) const
 
std::vector< EdgeIndexgetBranches (const NodeIndex node) const
 
std::shared_ptr< N > getSon (const std::shared_ptr< E > edge) const
 
NodeIndex getSon (const EdgeIndex edge) const
 
std::shared_ptr< N > getFatherOfEdge (const std::shared_ptr< E > edge) const
 
NodeIndex getFatherOfEdge (const EdgeIndex edge) const
 
size_t getNumberOfSons (const std::shared_ptr< N > node) const
 
std::vector< std::shared_ptr< N > > getLeavesUnderNode (std::shared_ptr< N > node) const
 
std::vector< NodeIndexgetLeavesUnderNode (NodeIndex node) const
 
std::vector< std::shared_ptr< N > > removeSons (const std::shared_ptr< N > node)
 
void removeSon (const std::shared_ptr< N > node, const std::shared_ptr< N > son)
 
void setFather (const std::shared_ptr< N > nodeObject, const std::shared_ptr< N > fatherNodeObject, const std::shared_ptr< E > edgeObject=0)
 
void addSon (const std::shared_ptr< N > nodeObject, const std::shared_ptr< N > sonNodeObject, const std::shared_ptr< E > edgeObject=0)
 
std::unique_ptr< typename AssociationTreeGraphObserver< N, E >::NodeIteratorsonsIterator (std::shared_ptr< N > node)
 
std::unique_ptr< typename AssociationTreeGraphObserver< N, E >::NodeIteratorsonsIterator (std::shared_ptr< N > node) const
 
std::unique_ptr< typename AssociationTreeGraphObserver< N, E >::EdgeIteratorbranchesIterator (std::shared_ptr< N > node)
 
std::unique_ptr< typename AssociationTreeGraphObserver< N, E >::EdgeIteratorbranchesIterator (std::shared_ptr< N > node) const
 
std::vector< std::shared_ptr< N > > getNodePathBetweenTwoNodes (const std::shared_ptr< N > nodeA, const std::shared_ptr< N > nodeB, bool includeAncestor=true) const
 
std::vector< NodeIndexgetNodePathBetweenTwoNodes (const NodeIndex nodeA, const NodeIndex nodeB, bool includeAncestor=true) const
 
std::vector< std::shared_ptr< E > > getEdgePathBetweenTwoNodes (const std::shared_ptr< N > nodeA, const std::shared_ptr< N > nodeB) const
 
std::vector< EdgeIndexgetEdgePathBetweenTwoNodes (const NodeIndex nodeA, const NodeIndex nodeB, bool includeAncestor=true) const
 
std::vector< std::shared_ptr< N > > getSubtreeNodes (const std::shared_ptr< N > localRoot) const
 
std::vector< NodeIndexgetSubtreeNodes (const NodeIndex localRoot) const
 
std::vector< std::shared_ptr< E > > getSubtreeEdges (const std::shared_ptr< N > localRoot) const
 
std::vector< EdgeIndexgetSubtreeEdges (const NodeIndex localRoot) const
 
std::shared_ptr< N > MRCA (const std::vector< std::shared_ptr< N >> vNodeObject) const
 
virtual void createNode (std::shared_ptr< N > newNodeObject)=0
 
virtual void createNode (std::shared_ptr< N > objectOriginNode, std::shared_ptr< N > newNodeObject, std::shared_ptr< E > newEdgeObject=00)=0
 
void createNode (Nref nodeObject)
 
void createNode (Nref objectOriginNode, Nref newNodeObject, Eref newEdgeObject=00)
 
virtual void createNode (std::shared_ptr< N > newNodeObject)=0
 
virtual void createNode (std::shared_ptr< N > objectOriginNode, std::shared_ptr< N > newNodeObject, std::shared_ptr< E > newEdgeObject=00)=0
 
void createNode (Nref nodeObject)
 
void createNode (Nref objectOriginNode, Nref newNodeObject, Eref newEdgeObject=00)
 
virtual void link (std::shared_ptr< N > nodeObjectA, std::shared_ptr< N > nodeObjectB, std::shared_ptr< E > edgeObject=00)=0
 
void link (Nref nodeObjectA, Nref nodeObjectB, Eref edgeObject=00)
 
virtual void link (std::shared_ptr< N > nodeObjectA, std::shared_ptr< N > nodeObjectB, std::shared_ptr< E > edgeObject=00)=0
 
void link (Nref nodeObjectA, Nref nodeObjectB, Eref edgeObject=00)
 
virtual void unlink (std::shared_ptr< N > nodeObjectA, std::shared_ptr< N > nodeObjectB)=0
 
void unlink (Nref nodeObjectA, Nref nodeObjectB)
 
virtual void unlink (std::shared_ptr< N > nodeObjectA, std::shared_ptr< N > nodeObjectB)=0
 
void unlink (Nref nodeObjectA, Nref nodeObjectB)
 
virtual void deleteNode (std::shared_ptr< N > nodeObject)=0
 
void deleteNode (Nref nodeObject)
 
virtual void deleteNode (std::shared_ptr< N > nodeObject)=0
 
void deleteNode (Nref nodeObject)
 
virtual void associateNode (std::shared_ptr< N > nodeObject, NodeGraphid node)=0
 
void associateNode (Nref nodeObject, NodeGraphid graphNode)
 
virtual void associateNode (std::shared_ptr< N > nodeObject, NodeGraphid node)=0
 
void associateNode (Nref nodeObject, NodeGraphid graphNode)
 
void associateNode (Nref nodeObject, NodeGraphid graphNode)
 
virtual void associateEdge (std::shared_ptr< E > edgeObject, EdgeGraphid edge)=0
 
void associateEdge (Eref edgeObject, EdgeGraphid graphEdge)
 
virtual void associateEdge (std::shared_ptr< E > edgeObject, EdgeGraphid edge)=0
 
void associateEdge (Eref edgeObject, EdgeGraphid graphEdge)
 
void associateEdge (Eref edgeObject, EdgeGraphid graphEdge)
 
virtual void dissociateNode (std::shared_ptr< N > nodeObject)=0
 
void dissociateNode (Nref nodeObject)
 
virtual void dissociateNode (std::shared_ptr< N > nodeObject)=0
 
void dissociateNode (Nref nodeObject)
 
virtual void dissociateEdge (std::shared_ptr< E > edgeObject)=0
 
void dissociateEdge (Eref edgeObject)
 
virtual void dissociateEdge (std::shared_ptr< E > edgeObject)=0
 
void dissociateEdge (Eref edgeObject)
 
virtual NodeGraphid getNodeGraphid (const std::shared_ptr< N > nodeObject) const=0
 
NodeGraphid getNodeGraphid (const Nref nodeObject) const
 
virtual NodeGraphid getNodeGraphid (const std::shared_ptr< N > nodeObject) const=0
 
NodeGraphid getNodeGraphid (const Nref nodeObject) const
 
virtual EdgeGraphid getEdgeGraphid (const std::shared_ptr< E > edgeObject) const=0
 
EdgeGraphid getEdgeGraphid (const Eref edgeObject) const
 
virtual EdgeGraphid getEdgeGraphid (const std::shared_ptr< E > edgeObject) const=0
 
EdgeGraphid getEdgeGraphid (const Eref edgeObject) const
 
virtual const std::shared_ptr< N > getNodeFromGraphid (NodeGraphid) const=0
 
virtual std::shared_ptr< N > getNodeFromGraphid (NodeGraphid)=0
 
Nref getNodeFromGraphid (NodeGraphid node)
 
const Nref getNodeFromGraphid (NodeGraphid node) const
 
virtual const std::shared_ptr< N > getNodeFromGraphid (NodeGraphid) const=0
 
virtual std::shared_ptr< N > getNodeFromGraphid (NodeGraphid)=0
 
Nref getNodeFromGraphid (NodeGraphid node)
 
const Nref getNodeFromGraphid (NodeGraphid node) const
 
Nref getNodeFromGraphid (NodeGraphid node)
 
const Nref getNodeFromGraphid (NodeGraphid node) const
 
virtual std::vector< std::shared_ptr< N > > getNodesFromGraphid (std::vector< NodeGraphid >) const=0
 
std::vector< NrefgetNodesFromGraphid (std::vector< NodeGraphid > nodes) const
 
virtual std::vector< std::shared_ptr< N > > getNodesFromGraphid (std::vector< NodeGraphid >) const=0
 
std::vector< NrefgetNodesFromGraphid (std::vector< NodeGraphid > nodes) const
 
std::vector< NrefgetNodesFromGraphid (std::vector< NodeGraphid > nodes) const
 
virtual std::shared_ptr< E > getEdgeFromGraphid (EdgeGraphid)=0
 
virtual const std::shared_ptr< E > getEdgeFromGraphid (EdgeGraphid) const=0
 
Eref getEdgeFromGraphid (EdgeGraphid edge)
 
const Eref getEdgeFromGraphid (EdgeGraphid edge) const
 
virtual std::shared_ptr< E > getEdgeFromGraphid (EdgeGraphid)=0
 
virtual const std::shared_ptr< E > getEdgeFromGraphid (EdgeGraphid) const=0
 
Eref getEdgeFromGraphid (EdgeGraphid edge)
 
const Eref getEdgeFromGraphid (EdgeGraphid edge) const
 
Eref getEdgeFromGraphid (EdgeGraphid edge)
 
const Eref getEdgeFromGraphid (EdgeGraphid edge) const
 
virtual std::vector< std::shared_ptr< E > > getEdgesFromGraphid (std::vector< EdgeGraphid >) const=0
 
std::vector< ErefgetEdgesFromGraphid (std::vector< EdgeGraphid > edges) const
 
virtual std::vector< std::shared_ptr< E > > getEdgesFromGraphid (std::vector< EdgeGraphid >) const=0
 
std::vector< ErefgetEdgesFromGraphid (std::vector< EdgeGraphid > edges) const
 
std::vector< ErefgetEdgesFromGraphid (std::vector< EdgeGraphid > edges) const
 
virtual std::shared_ptr< N > getRoot () const=0
 
Nref getRoot () const
 
virtual std::shared_ptr< N > getRoot () const=0
 
Nref getRoot () const
 
virtual NodeIndex getRootIndex () const=0
 
NodeIndex getRootIndex () const
 
virtual NodeIndex getRootIndex () const=0
 
NodeIndex getRootIndex () const
 
virtual bool hasNodeIndex (const std::shared_ptr< N > nodeObject) const=0
 
bool hasNodeIndex (const Nref nodeObject) const
 
virtual bool hasNodeIndex (const std::shared_ptr< N > nodeObject) const=0
 
bool hasNodeIndex (const Nref nodeObject) const
 
virtual bool hasEdgeIndex (const std::shared_ptr< E > edgeObject) const=0
 
bool hasEdgeIndex (const Eref edgeObject) const
 
virtual bool hasEdgeIndex (const std::shared_ptr< E > edgeObject) const=0
 
bool hasEdgeIndex (const Eref edgeObject) const
 
virtual NodeIndex getNodeIndex (const std::shared_ptr< N > nodeObject) const=0
 
NodeIndex getNodeIndex (const Nref nodeObject) const
 
virtual NodeIndex getNodeIndex (const std::shared_ptr< N > nodeObject) const=0
 
NodeIndex getNodeIndex (const Nref nodeObject) const
 
virtual std::vector< NodeIndexgetNodeIndexes (std::vector< std::shared_ptr< N >> nodeObjects) const=0
 
std::vector< NodeIndexgetNodeIndexes (std::vector< Nref > nodes) const
 
virtual std::vector< NodeIndexgetNodeIndexes (std::vector< std::shared_ptr< N >> nodeObjects) const=0
 
std::vector< NodeIndexgetNodeIndexes (std::vector< Nref > nodes) const
 
virtual EdgeIndex getEdgeIndex (const std::shared_ptr< E > edgeObject) const=0
 
EdgeIndex getEdgeIndex (const Eref edgeObject) const
 
virtual EdgeIndex getEdgeIndex (const std::shared_ptr< E > edgeObject) const=0
 
EdgeIndex getEdgeIndex (const Eref edgeObject) const
 
virtual std::vector< EdgeIndexgetEdgeIndexes (std::vector< std::shared_ptr< E >> edgeObjects) const=0
 
std::vector< EdgeIndexgetEdgeIndexes (std::vector< Eref > edges) const
 
virtual std::vector< EdgeIndexgetEdgeIndexes (std::vector< std::shared_ptr< E >> edgeObjects) const=0
 
std::vector< EdgeIndexgetEdgeIndexes (std::vector< Eref > edges) const
 
virtual NodeIndex setNodeIndex (const std::shared_ptr< N > nodeObject, NodeIndex index)=0
 
NodeIndex setNodeIndex (const Nref nodeObject, NodeIndex index)
 
virtual NodeIndex setNodeIndex (const std::shared_ptr< N > nodeObject, NodeIndex index)=0
 
NodeIndex setNodeIndex (const Nref nodeObject, NodeIndex index)
 
NodeIndex setNodeIndex (const Nref nodeObject, NodeIndex index)
 
virtual EdgeIndex setEdgeIndex (const std::shared_ptr< E > edgeObject, EdgeIndex index)=0
 
EdgeIndex setEdgeIndex (const Eref edgeObject, EdgeIndex index)
 
virtual EdgeIndex setEdgeIndex (const std::shared_ptr< E > edgeObject, EdgeIndex index)=0
 
EdgeIndex setEdgeIndex (const Eref edgeObject, EdgeIndex index)
 
EdgeIndex setEdgeIndex (const Eref edgeObject, EdgeIndex index)
 
virtual bool hasNode (NodeIndex nodeIndex) const=0
 
bool hasNode (NodeIndex node) const
 
virtual bool hasNode (NodeIndex nodeIndex) const=0
 
bool hasNode (Nref nodeObject) const
 
bool hasNode (NodeIndex node) const
 
bool hasNode (NodeIndex node) const
 
virtual bool hasEdge (EdgeIndex edgeIndex) const=0
 
bool hasEdge (EdgeIndex edge) const
 
virtual bool hasEdge (EdgeIndex edgeIndex) const=0
 
bool hasEdge (Eref edgeObject) const
 
bool hasEdge (EdgeIndex edge) const
 
bool hasEdge (EdgeIndex edge) const
 
virtual std::shared_ptr< N > getNode (NodeIndex nodeIndex) const=0
 
Nref getNode (NodeIndex node) const
 
virtual std::shared_ptr< N > getNode (NodeIndex nodeIndex) const=0
 
Nref getNode (NodeIndex node) const
 
Nref getNode (NodeIndex node) const
 
virtual std::shared_ptr< E > getEdge (EdgeIndex edgeIndex) const=0
 
Eref getEdge (EdgeIndex edge) const
 
virtual std::shared_ptr< E > getEdge (EdgeIndex edgeIndex) const=0
 
Eref getEdge (EdgeIndex edge) const
 
Eref getEdge (EdgeIndex edge) const
 
virtual std::unique_ptr< NodeIteratorallNodesIterator ()=0
 
virtual std::unique_ptr< NodeIteratorallNodesIterator () const=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratorallNodesIterator ()
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratorallNodesIterator () const
 
virtual std::unique_ptr< NodeIteratorallNodesIterator ()=0
 
virtual std::unique_ptr< NodeIteratorallNodesIterator () const=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratorallNodesIterator ()
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratorallNodesIterator () const
 
virtual std::unique_ptr< NodeIteratoroutgoingNeighborNodesIterator (std::shared_ptr< N > node)=0
 
virtual std::unique_ptr< NodeIteratoroutgoingNeighborNodesIterator (std::shared_ptr< N > node) const=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratoroutgoingNeighborNodesIterator (Nref node)
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratoroutgoingNeighborNodesIterator (Nref node) const
 
virtual std::unique_ptr< NodeIteratoroutgoingNeighborNodesIterator (std::shared_ptr< N > node)=0
 
virtual std::unique_ptr< NodeIteratoroutgoingNeighborNodesIterator (std::shared_ptr< N > node) const=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratoroutgoingNeighborNodesIterator (Nref node)
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratoroutgoingNeighborNodesIterator (Nref node) const
 
virtual std::unique_ptr< NodeIteratorincomingNeighborNodesIterator (std::shared_ptr< N > node)=0
 
virtual std::unique_ptr< NodeIteratorincomingNeighborNodesIterator (std::shared_ptr< N > node) const=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratorincomingNeighborNodesIterator (Nref node)
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratorincomingNeighborNodesIterator (Nref node) const
 
virtual std::unique_ptr< NodeIteratorincomingNeighborNodesIterator (std::shared_ptr< N > node)=0
 
virtual std::unique_ptr< NodeIteratorincomingNeighborNodesIterator (std::shared_ptr< N > node) const=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratorincomingNeighborNodesIterator (Nref node)
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::NodeIteratorincomingNeighborNodesIterator (Nref node) const
 
virtual std::vector< std::shared_ptr< N > > getNeighbors (const std::shared_ptr< N > node) const=0
 
virtual std::vector< NodeIndexgetNeighbors (NodeIndex node) const=0
 
std::vector< NrefgetNeighbors (const Nref node) const
 
std::vector< NodeIndexgetNeighbors (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< N > > getNeighbors (const std::shared_ptr< N > node) const=0
 
virtual std::vector< NodeIndexgetNeighbors (NodeIndex node) const=0
 
std::vector< NrefgetNeighbors (const Nref node) const
 
std::vector< NodeIndexgetNeighbors (NodeIndex node) const
 
std::vector< NodeIndexgetNeighbors (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< E > > getEdges (const std::shared_ptr< N > node) const=0
 
virtual std::vector< EdgeIndexgetEdges (NodeIndex node) const=0
 
std::vector< ErefgetEdges (const Nref node) const
 
std::vector< EdgeIndexgetEdges (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< E > > getEdges (const std::shared_ptr< N > node) const=0
 
virtual std::vector< EdgeIndexgetEdges (NodeIndex node) const=0
 
std::vector< ErefgetEdges (const Nref node) const
 
std::vector< EdgeIndexgetEdges (NodeIndex node) const
 
std::vector< EdgeIndexgetEdges (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< N > > getOutgoingNeighbors (const std::shared_ptr< N > node) const=0
 
virtual std::vector< NodeIndexgetOutgoingNeighbors (NodeIndex node) const=0
 
std::vector< NrefgetOutgoingNeighbors (const Nref node) const
 
std::vector< NodeIndexgetOutgoingNeighbors (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< N > > getOutgoingNeighbors (const std::shared_ptr< N > node) const=0
 
virtual std::vector< NodeIndexgetOutgoingNeighbors (NodeIndex node) const=0
 
std::vector< NrefgetOutgoingNeighbors (const Nref node) const
 
std::vector< NodeIndexgetOutgoingNeighbors (NodeIndex node) const
 
std::vector< NodeIndexgetOutgoingNeighbors (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< E > > getOutgoingEdges (const std::shared_ptr< N > node) const=0
 
virtual std::vector< EdgeIndexgetOutgoingEdges (NodeIndex node) const=0
 
std::vector< ErefgetOutgoingEdges (const Nref node) const
 
std::vector< EdgeIndexgetOutgoingEdges (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< E > > getOutgoingEdges (const std::shared_ptr< N > node) const=0
 
virtual std::vector< EdgeIndexgetOutgoingEdges (NodeIndex node) const=0
 
std::vector< ErefgetOutgoingEdges (const Nref node) const
 
std::vector< EdgeIndexgetOutgoingEdges (NodeIndex node) const
 
std::vector< EdgeIndexgetOutgoingEdges (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< N > > getIncomingNeighbors (const std::shared_ptr< N > node) const=0
 
virtual std::vector< NodeIndexgetIncomingNeighbors (NodeIndex node) const=0
 
std::vector< NrefgetIncomingNeighbors (const Nref node) const
 
std::vector< NodeIndexgetIncomingNeighbors (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< N > > getIncomingNeighbors (const std::shared_ptr< N > node) const=0
 
virtual std::vector< NodeIndexgetIncomingNeighbors (NodeIndex node) const=0
 
std::vector< NrefgetIncomingNeighbors (const Nref node) const
 
std::vector< NodeIndexgetIncomingNeighbors (NodeIndex node) const
 
std::vector< NodeIndexgetIncomingNeighbors (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< E > > getIncomingEdges (const std::shared_ptr< N > node) const=0
 
virtual std::vector< EdgeIndexgetIncomingEdges (NodeIndex node) const=0
 
std::vector< ErefgetIncomingEdges (const Nref node) const
 
std::vector< EdgeIndexgetIncomingEdges (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< E > > getIncomingEdges (const std::shared_ptr< N > node) const=0
 
virtual std::vector< EdgeIndexgetIncomingEdges (NodeIndex node) const=0
 
std::vector< ErefgetIncomingEdges (const Nref node) const
 
std::vector< EdgeIndexgetIncomingEdges (NodeIndex node) const
 
std::vector< EdgeIndexgetIncomingEdges (NodeIndex node) const
 
virtual std::vector< std::shared_ptr< N > > getLeavesFromNode (std::shared_ptr< N > node, unsigned int maxDepth) const=0
 
std::vector< NrefgetLeavesFromNode (Nref node, unsigned int maxDepth) const
 
virtual std::vector< std::shared_ptr< N > > getLeavesFromNode (std::shared_ptr< N > node, unsigned int maxDepth) const=0
 
std::vector< NrefgetLeavesFromNode (Nref node, unsigned int maxDepth) const
 
virtual std::vector< std::shared_ptr< N > > getAllLeaves () const=0
 
std::vector< NrefgetAllLeaves () const
 
virtual std::vector< std::shared_ptr< N > > getAllLeaves () const=0
 
std::vector< NrefgetAllLeaves () const
 
virtual std::vector< NodeIndexgetAllLeavesIndexes () const=0
 
std::vector< NodeIndexgetAllLeavesIndexes () const
 
virtual std::vector< NodeIndexgetAllLeavesIndexes () const=0
 
std::vector< NodeIndexgetAllLeavesIndexes () const
 
virtual std::vector< std::shared_ptr< N > > getAllInnerNodes () const=0
 
std::vector< NrefgetAllInnerNodes () const
 
virtual std::vector< std::shared_ptr< N > > getAllInnerNodes () const=0
 
std::vector< NrefgetAllInnerNodes () const
 
virtual std::vector< NodeIndexgetAllInnerNodesIndexes () const=0
 
std::vector< NodeIndexgetAllInnerNodesIndexes () const
 
virtual std::vector< NodeIndexgetAllInnerNodesIndexes () const=0
 
std::vector< NodeIndexgetAllInnerNodesIndexes () const
 
virtual std::vector< std::shared_ptr< N > > getAllNodes () const=0
 
std::vector< NrefgetAllNodes () const
 
virtual std::vector< std::shared_ptr< N > > getAllNodes () const=0
 
std::vector< NrefgetAllNodes () const
 
virtual std::vector< NodeIndexgetAllNodesIndexes () const=0
 
std::vector< NodeIndexgetAllNodesIndexes () const
 
virtual std::vector< NodeIndexgetAllNodesIndexes () const=0
 
std::vector< NodeIndexgetAllNodesIndexes () const
 
virtual std::unique_ptr< EdgeIteratorallEdgesIterator ()=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratorallEdgesIterator ()
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratorallEdgesIterator () const
 
virtual std::unique_ptr< EdgeIteratorallEdgesIterator ()=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratorallEdgesIterator ()
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratorallEdgesIterator () const
 
virtual std::unique_ptr< EdgeIteratoroutgoingEdgesIterator (std::shared_ptr< N > node)=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratoroutgoingEdgesIterator (Nref node)
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratoroutgoingEdgesIterator (Nref node) const
 
virtual std::unique_ptr< EdgeIteratoroutgoingEdgesIterator (std::shared_ptr< N > node)=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratoroutgoingEdgesIterator (Nref node)
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratoroutgoingEdgesIterator (Nref node) const
 
virtual std::unique_ptr< EdgeIteratorincomingEdgesIterator (std::shared_ptr< N > node)=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratorincomingEdgesIterator (Nref node)
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratorincomingEdgesIterator (Nref node) const
 
virtual std::unique_ptr< EdgeIteratorincomingEdgesIterator (std::shared_ptr< N > node)=0
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratorincomingEdgesIterator (Nref node)
 
std::unique_ptr< typename AssociationGraphObserver< N, E >::EdgeIteratorincomingEdgesIterator (Nref node) const
 
virtual std::vector< std::shared_ptr< E > > getAllEdges () const=0
 
std::vector< ErefgetAllEdges () const
 
virtual std::vector< std::shared_ptr< E > > getAllEdges () const=0
 
std::vector< ErefgetAllEdges () const
 
virtual std::vector< EdgeIndexgetAllEdgesIndexes () const=0
 
std::vector< EdgeIndexgetAllEdgesIndexes () const
 
virtual std::vector< EdgeIndexgetAllEdgesIndexes () const=0
 
std::vector< EdgeIndexgetAllEdgesIndexes () const
 
virtual std::shared_ptr< E > getEdgeLinking (std::shared_ptr< N > nodeA, std::shared_ptr< N > nodeB) const=0
 
Eref getEdgeLinking (Nref nodeA, Nref nodeB) const
 
virtual std::shared_ptr< E > getEdgeLinking (std::shared_ptr< N > nodeA, std::shared_ptr< N > nodeB) const=0
 
Eref getEdgeLinking (Nref nodeA, Nref nodeB) const
 
virtual void setEdgeLinking (std::shared_ptr< N > nodeA, std::shared_ptr< N > nodeB, std::shared_ptr< E > edge)=0
 
void setEdgeLinking (Nref nodeA, Nref nodeB, Eref edge)
 
virtual void setEdgeLinking (std::shared_ptr< N > nodeA, std::shared_ptr< N > nodeB, std::shared_ptr< E > edge)=0
 
void setEdgeLinking (Nref nodeA, Nref nodeB, Eref edge)
 
virtual void deletedEdgesUpdate (const std::vector< unsigned int > &edgesToDelete)=0
 
void deletedEdgesUpdate (const std::vector< unsigned int > &edgesToDelete)
 
virtual void deletedEdgesUpdate (const std::vector< unsigned int > &edgesToDelete)=0
 
void deletedEdgesUpdate (const std::vector< unsigned int > &edgesToDelete)
 
virtual void deletedNodesUpdate (const std::vector< unsigned int > &nodesToDelete)=0
 
void deletedNodesUpdate (const std::vector< unsigned int > &nodesToDelete)
 
virtual void deletedNodesUpdate (const std::vector< unsigned int > &nodesToDelete)=0
 
void deletedNodesUpdate (const std::vector< unsigned int > &nodesToDelete)
 
NodeIndex addNodeIndex (const Nref nodeObject)
 
NodeIndex addNodeIndex (const Nref nodeObject)
 
EdgeIndex addEdgeIndex (const Eref edgeObject)
 
EdgeIndex addEdgeIndex (const Eref edgeObject)
 
void setRoot (const Nref newRoot)
 
void setRoot (const Nref newRoot)
 
void outputToDot (const std::string &fname, const std::string &name) const
 
void outputToDot (std::ostream &out, const std::string &name) const
 
void outputToDot (const std::string &fname, const std::string &name) const
 
void outputToDot (std::ostream &out, const std::string &name) const
 
bool isLeaf (const Nref node) const
 
bool isLeaf (const NodeIndex nodeid) const
 
bool isLeaf (const Nref node) const
 
bool isLeaf (const NodeIndex nodeid) const
 
bool isLeaf (const NodeIndex nodeid) const
 
std::pair< Nref, NrefgetNodes (Eref edge) const
 
std::pair< Nref, NrefgetNodes (Eref edge) const
 
size_t getNumberOfNodes () const
 
size_t getNumberOfNodes () const
 
size_t getNumberOfEdges () const
 
size_t getNumberOfEdges () const
 
size_t getNumberOfLeaves () const
 
size_t getNumberOfLeaves () const
 
size_t getDegree (const Nref node) const
 
size_t getDegree (const Nref node) const
 
const std::shared_ptr< TreeGraphImplgetGraph () const
 
std::shared_ptr< TreeGraphImplgetGraph ()
 
std::string nodeToString (const Nref nodeObject) const
 
std::string edgeToString (const Eref edgeObject) const
 

Static Public Member Functions

static B * copy (const A &a, typename std::enable_if< !std::is_base_of< B, A >::value &&!std::is_abstract< B >::value, B * >::type *=0)
 
static B * copy (const A &a, typename std::enable_if< !std::is_base_of< B, A >::value &&std::is_abstract< B >::value, B * >::type *=0)
 
static B * copy (const A &a, typename std::enable_if< std::is_base_of< B, A >::value &&!std::is_abstract< A >::value, B * >::type *=0)
 
static B * copy (const A &a, typename std::enable_if< std::is_base_of< B, A >::value &&std::is_abstract< A >::value &&std::is_base_of< Clonable, A >::value, B * >::type *=0)
 
static B * copy (const A &a, typename std::enable_if< std::is_base_of< B, A >::value &&std::is_abstract< A >::value &&!std::is_base_of< Clonable, A >::value, B * >::type *=0)
 
static B * copy (const A &a, typename std::enable_if< std::is_base_of< B, A >::value &&std::is_abstract< A >::value &&std::is_base_of< Clonable, A >::value, B * >::type *=0)
 
static B * copy (const A &a, typename std::enable_if< std::is_base_of< B, A >::value &&std::is_abstract< A >::value &&!std::is_base_of< Clonable, A >::value, B * >::type *=0)
 

Protected Attributes

std::shared_ptr< TreeGraphImplsubjectGraph_
 

Private Types

enum  neighborType
 

Private Member Functions

void buildFollowingPath_ (std::shared_ptr< ProcessComputationNode > father, const ModelPath &path)
 Build rest of the tree under given father (event on father will be set in this method) More...
 
void buildFollowingScenario_ (std::shared_ptr< ProcessComputationNode > father, const ModelScenario &scenario, std::map< std::shared_ptr< MixedTransitionModelInterface >, uint > &mMrca)
 
std::vector< NrefgetNeighbors_ (const Nref nodeObject, neighborType type) const
 
std::vector< ErefgetEdges_ (const Nref nodeObject, neighborType type) const
 

Private Attributes

std::shared_ptr< const SubstitutionProcessInterfaceprocess_
 
 INCOMING
 
 OUTGOING
 
 BOTH
 
std::vector< NrefgraphidToN_
 
std::vector< ErefgraphidToE_
 
std::map< Nref, NodeGraphidNToGraphid_
 
std::map< Eref, EdgeGraphidEToGraphid_
 
std::vector< NrefindexToN_
 
std::vector< ErefindexToE_
 
std::map< Nref, NodeIndexNToIndex_
 
std::map< Eref, EdgeIndexEToIndex_
 

Detailed Description

Definition at line 158 of file ProcessComputationTree.h.

Constructor & Destructor Documentation

◆ ProcessComputationTree()

Member Function Documentation

◆ buildFollowingPath_()

◆ buildFollowingScenario_()

Member Data Documentation

◆ process_

std::shared_ptr<const SubstitutionProcessInterface> bpp::ProcessComputationTree::process_
private

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