bpp-phyl3  3.0.0
bpp::ForwardLikelihoodTree Class Referenceabstract

#include <Bpp/Phyl/Likelihood/DataFlow/ForwardLikelihoodTree.h>

+ Inheritance diagram for bpp::ForwardLikelihoodTree:
+ Collaboration diagram for bpp::ForwardLikelihoodTree:

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

 ForwardLikelihoodTree (Context &c, std::shared_ptr< ProcessTree > tree, const StateMapInterface &statemap)
 
void initialize (const AlignmentDataInterface &sites)
 
std::shared_ptr< const ProcessTreegetProcessTree () const
 
const DAGindexesgetDAGNodesIndexes (const Speciesindex speciesIndex) const
 
const DAGindexesgetDAGEdgesIndexes (const Speciesindex speciesIndex) const
 
const ValueRef< MatrixLikgetForwardLikelihoodArray (uint nodeId) const
 
const ValueRef< MatrixLikgetForwardLikelihoodArrayAtRoot () const
 
AssociationDAGraphImplObserver< N, E, DAGraphImpl > * clone () const
 
bool isValid () const
 
bool isRooted () const
 
std::vector< std::shared_ptr< N > > getFathers (const std::shared_ptr< N > node) const
 
std::vector< NodeIndexgetFathers (const NodeIndex node) const
 
virtual std::vector< NodeIndexgetFathers (const NodeIndex node) const=0
 
virtual std::vector< NodeIndexgetFathers (const NodeIndex node) const=0
 
void rootAt (const std::shared_ptr< N > root)
 
bool hasFather (const std::shared_ptr< N > nodeObject) const
 
bool hasFather (const NodeIndex node) const
 
virtual bool hasFather (const NodeIndex node) const=0
 
virtual bool hasFather (const NodeIndex node) const=0
 
std::vector< std::shared_ptr< N > > getSons (const std::shared_ptr< N > node) const
 
std::vector< NodeIndexgetSons (const NodeIndex node) const
 
virtual std::vector< NodeIndexgetSons (const NodeIndex node) const=0
 
virtual std::vector< NodeIndexgetSons (const NodeIndex node) const=0
 
std::shared_ptr< N > getSon (const std::shared_ptr< E > edge) const
 
NodeIndex getSon (const EdgeIndex edgeId) const
 
virtual NodeIndex getSon (const EdgeIndex edge) const=0
 
virtual NodeIndex getSon (const EdgeIndex edge) const=0
 
std::shared_ptr< N > getFatherOfEdge (const std::shared_ptr< E > edge) const
 
NodeIndex getFatherOfEdge (const EdgeIndex edge) const
 
virtual NodeIndex getFatherOfEdge (const EdgeIndex edge) const=0
 
virtual NodeIndex getFatherOfEdge (const EdgeIndex edge) const=0
 
size_t getNumberOfFathers (const std::shared_ptr< N > node) 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< std::shared_ptr< N > > removeFathers (const std::shared_ptr< N > node)
 
void removeFather (const std::shared_ptr< N > node, const std::shared_ptr< N > father)
 
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 addFather (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 AssociationDAGraphObserver< N, E >::NodeIteratorfathersIterator (std::shared_ptr< N > node)
 
std::unique_ptr< typename AssociationDAGraphObserver< N, E >::NodeIteratorfathersIterator (std::shared_ptr< N > node) const
 
std::unique_ptr< typename AssociationDAGraphObserver< N, E >::NodeIteratorsonsIterator (std::shared_ptr< N > node)
 
std::unique_ptr< typename AssociationDAGraphObserver< N, E >::NodeIteratorsonsIterator (std::shared_ptr< N > node) const
 
std::vector< std::shared_ptr< N > > getBelowNodes (const std::shared_ptr< N > localRoot)
 
std::vector< std::shared_ptr< E > > getBelowEdges (const std::shared_ptr< N > localRoot)
 
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)
 
virtual NodeIndex setNodeIndex (const std::shared_ptr< N > nodeObject, NodeIndex index)=0
 
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)
 
virtual EdgeIndex setEdgeIndex (const std::shared_ptr< E > edgeObject, EdgeIndex index)=0
 
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
 
virtual bool hasNode (NodeIndex nodeIndex) const=0
 
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
 
virtual bool hasEdge (EdgeIndex edgeIndex) const=0
 
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
 
virtual std::shared_ptr< N > getNode (NodeIndex nodeIndex) const=0
 
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
 
virtual std::shared_ptr< E > getEdge (EdgeIndex edgeIndex) const=0
 
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
 
virtual std::vector< NodeIndexgetNeighbors (NodeIndex node) const=0
 
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
 
virtual std::vector< EdgeIndexgetEdges (NodeIndex node) const=0
 
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
 
virtual std::vector< NodeIndexgetOutgoingNeighbors (NodeIndex node) const=0
 
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
 
virtual std::vector< EdgeIndexgetOutgoingEdges (NodeIndex node) const=0
 
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
 
virtual std::vector< NodeIndexgetIncomingNeighbors (NodeIndex node) const=0
 
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
 
virtual std::vector< EdgeIndexgetIncomingEdges (NodeIndex node) const=0
 
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< DAGraphImplgetGraph () const
 
std::shared_ptr< DAGraphImplgetGraph ()
 
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 Member Functions

ContextgetContext ()
 

Protected Attributes

std::shared_ptr< DAGraphImplsubjectGraph_
 

Private Types

using DAClass = AssociationDAGlobalGraphObserver< ConditionalLikelihoodForward, ForwardLikelihoodBelow >
 
enum  neighborType
 

Private Member Functions

ForwardLikelihoodBelowRef makeForwardLikelihoodAtEdge (std::shared_ptr< ProcessEdge > edge, const AlignmentDataInterface &sites)
 Compute ConditionalLikelihood after reading edge on the forward process (ie at top of the edge). More...
 
ConditionalLikelihoodForwardRef makeForwardLikelihoodAtNode (std::shared_ptr< ProcessNode > node, const AlignmentDataInterface &sites)
 
ConditionalLikelihoodForwardRef makeInitialConditionalLikelihood (const std::string &sequenceName, const AlignmentDataInterface &sites)
 Compute ConditionalLikelihood for leaf. More...
 
void setSpeciesMapIndexes_ ()
 Map the species indexes and the likelihood DAG indexes. More...
 
std::vector< NrefgetNeighbors_ (const Nref nodeObject, neighborType type) const
 
std::vector< ErefgetEdges_ (const Nref nodeObject, neighborType type) const
 

Private Attributes

Contextcontext_
 
std::shared_ptr< ProcessTreeprocessTree_
 
MatrixDimension likelihoodMatrixDim_
 
const StateMapInterfacestatemap_
 
Eigen::Index nbState_
 
Eigen::Index nbSites_
 
std::map< Speciesindex, DAGindexesmapNodesIndexes_
 
std::map< Speciesindex, DAGindexesmapEdgesIndexes_
 
 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_
 

Friends

class LikelihoodCalculationSingleProcess
 
class ProbabilityDAG
 

Detailed Description

Definition at line 100 of file ForwardLikelihoodTree.h.

Member Typedef Documentation

◆ DAClass

Constructor & Destructor Documentation

◆ ForwardLikelihoodTree()

bpp::ForwardLikelihoodTree::ForwardLikelihoodTree ( Context c,
std::shared_ptr< ProcessTree tree,
const StateMapInterface statemap 
)
inline

Definition at line 122 of file ForwardLikelihoodTree.h.

Member Function Documentation

◆ getContext()

Context& bpp::ForwardLikelihoodTree::getContext ( )
inlineprotected

Definition at line 177 of file ForwardLikelihoodTree.h.

References context_.

◆ getDAGEdgesIndexes()

const DAGindexes& bpp::ForwardLikelihoodTree::getDAGEdgesIndexes ( const Speciesindex  speciesIndex) const
inline

Definition at line 205 of file ForwardLikelihoodTree.h.

References mapEdgesIndexes_.

◆ getDAGNodesIndexes()

const DAGindexes& bpp::ForwardLikelihoodTree::getDAGNodesIndexes ( const Speciesindex  speciesIndex) const
inline

Definition at line 196 of file ForwardLikelihoodTree.h.

References mapNodesIndexes_.

◆ getForwardLikelihoodArray()

const ValueRef<MatrixLik> bpp::ForwardLikelihoodTree::getForwardLikelihoodArray ( uint  nodeId) const
inline

◆ getForwardLikelihoodArrayAtRoot()

const ValueRef<MatrixLik> bpp::ForwardLikelihoodTree::getForwardLikelihoodArrayAtRoot ( ) const
inline

◆ getProcessTree()

std::shared_ptr<const ProcessTree> bpp::ForwardLikelihoodTree::getProcessTree ( ) const
inline

Definition at line 187 of file ForwardLikelihoodTree.h.

References processTree_.

◆ initialize()

◆ makeForwardLikelihoodAtEdge()

ForwardLikelihoodBelowRef ForwardLikelihoodTree::makeForwardLikelihoodAtEdge ( std::shared_ptr< ProcessEdge edge,
const AlignmentDataInterface sites 
)
private

Compute ConditionalLikelihood after reading edge on the forward process (ie at top of the edge).

Definition at line 37 of file ForwardLikelihoodTree.cpp.

References bpp::CWiseApply< R, T, F >::create(), bpp::MatrixProduct< R, T0, T1 >::create(), bpp::TransitionFunctionFromModel::create(), bpp::transitionFunctionDimension(), bpp::transitionMatrixDimension(), and bpp::numeric::zero().

◆ makeForwardLikelihoodAtNode()

ConditionalLikelihoodForwardRef ForwardLikelihoodTree::makeForwardLikelihoodAtNode ( std::shared_ptr< ProcessNode node,
const AlignmentDataInterface sites 
)
private

Definition at line 107 of file ForwardLikelihoodTree.cpp.

References bpp::CWiseAdd< R, T >::create(), and bpp::TextTools::toString().

Referenced by initialize().

◆ makeInitialConditionalLikelihood()

ConditionalLikelihoodForwardRef ForwardLikelihoodTree::makeInitialConditionalLikelihood ( const std::string &  sequenceName,
const AlignmentDataInterface sites 
)
private

◆ setSpeciesMapIndexes_()

void bpp::ForwardLikelihoodTree::setSpeciesMapIndexes_ ( )
private

Map the species indexes and the likelihood DAG indexes.

Friends And Related Function Documentation

◆ LikelihoodCalculationSingleProcess

Definition at line 226 of file ForwardLikelihoodTree.h.

◆ ProbabilityDAG

friend class ProbabilityDAG
friend

Definition at line 227 of file ForwardLikelihoodTree.h.

Member Data Documentation

◆ context_

Context& bpp::ForwardLikelihoodTree::context_
private

Definition at line 105 of file ForwardLikelihoodTree.h.

Referenced by getContext(), and initialize().

◆ likelihoodMatrixDim_

MatrixDimension bpp::ForwardLikelihoodTree::likelihoodMatrixDim_
private

Definition at line 107 of file ForwardLikelihoodTree.h.

Referenced by initialize().

◆ mapEdgesIndexes_

std::map<Speciesindex, DAGindexes> bpp::ForwardLikelihoodTree::mapEdgesIndexes_
private

Definition at line 118 of file ForwardLikelihoodTree.h.

Referenced by getDAGEdgesIndexes().

◆ mapNodesIndexes_

std::map<Speciesindex, DAGindexes> bpp::ForwardLikelihoodTree::mapNodesIndexes_
private

Definition at line 115 of file ForwardLikelihoodTree.h.

Referenced by getDAGNodesIndexes().

◆ nbSites_

Eigen::Index bpp::ForwardLikelihoodTree::nbSites_
private

Definition at line 110 of file ForwardLikelihoodTree.h.

Referenced by initialize().

◆ nbState_

Eigen::Index bpp::ForwardLikelihoodTree::nbState_
private

Definition at line 109 of file ForwardLikelihoodTree.h.

Referenced by initialize().

◆ processTree_

std::shared_ptr<ProcessTree> bpp::ForwardLikelihoodTree::processTree_
private

Definition at line 106 of file ForwardLikelihoodTree.h.

Referenced by getProcessTree(), and initialize().

◆ statemap_

const StateMapInterface& bpp::ForwardLikelihoodTree::statemap_
private

Definition at line 108 of file ForwardLikelihoodTree.h.


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