bpp-phyl3  3.0.0
AlignedPhyloLikelihoodProduct.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: The Bio++ Development Group
2 //
3 // SPDX-License-Identifier: CECILL-2.1
4 
5 #ifndef BPP_PHYL_LIKELIHOOD_PHYLOLIKELIHOODS_PRODUCTOFALIGNEDPHYLOLIKELIHOOD_H
6 #define BPP_PHYL_LIKELIHOOD_PHYLOLIKELIHOODS_PRODUCTOFALIGNEDPHYLOLIKELIHOOD_H
7 
8 
9 // From bpp-seq:
12 
14 
15 namespace bpp
16 {
23 {
27  mutable std::shared_ptr<AlignedLikelihoodCalculation> likCal_;
28 
29 public:
32  std::shared_ptr<PhyloLikelihoodContainer> pC,
33  bool inCollection = true);
34 
37  std::shared_ptr<PhyloLikelihoodContainer> pC,
38  const std::vector<size_t>& nPhylo,
39  bool inCollection = true);
40 
42 
43 protected:
50  likCal_(sd.likCal_)
51  {}
52 
54  {
56  likCal_ = sd.likCal_;
57  return *this;
58  }
59 
61  {
62  return new AlignedPhyloLikelihoodProduct(*this);
63  }
64 
65 public:
67  {
68  return *likCal_;
69  }
70 
71  std::shared_ptr<LikelihoodCalculation> getLikelihoodCalculation () const
72  {
73  return likCal_;
74  }
75 
77  {
78  return *likCal_;
79  }
80 
81  std::shared_ptr<AlignedLikelihoodCalculation> getAlignedLikelihoodCalculation () const
82  {
83  return likCal_;
84  }
85 };
86 } // end of namespace bpp.
87 #endif // BPP_PHYL_LIKELIHOOD_PHYLOLIKELIHOODS_PRODUCTOFALIGNEDPHYLOLIKELIHOOD_H
The AlignedPhyloLikelihoodSet abstract class.
AbstractAlignedPhyloLikelihoodSet & operator=(const AbstractAlignedPhyloLikelihoodSet &soap)
The PhyloLikelihoodSet class, to manage a subset of PhyloLikelihoods from a given PhyloLikelihoodCont...
const Context & context() const override
The AlignedPhyloLikelihoodProduct class, for phylogenetic likelihood on several independent data.
AlignedPhyloLikelihoodProduct & operator=(const AlignedPhyloLikelihoodProduct &sd)
AlignedLikelihoodCalculation & alignedLikelihoodCalculation() const
AlignedPhyloLikelihoodProduct(const AlignedPhyloLikelihoodProduct &sd)
LikelihoodCalculation & likelihoodCalculation() const
std::shared_ptr< AlignedLikelihoodCalculation > likCal_
AlignedPhyloLikelihoodProduct(Context &context, std::shared_ptr< PhyloLikelihoodContainer > pC, bool inCollection=true)
AlignedPhyloLikelihoodProduct * clone() const
std::shared_ptr< LikelihoodCalculation > getLikelihoodCalculation() const
std::shared_ptr< AlignedLikelihoodCalculation > getAlignedLikelihoodCalculation() const
Context for dataflow node construction.
Definition: DataFlow.h:527
Defines the basic types of data flow nodes.