41 #ifndef BPP_NUMERIC_HMM_HMMLIKELIHOOD_H
42 #define BPP_NUMERIC_HMM_HMMLIKELIHOOD_H
47 #include "../Function/Functions.h"
48 #include "../VectorTools.h"
194 throw (
NotImplementedException(
"AbstractHmmLikelihood::getSecondOrderDerivative is not defined for 2 variables."));
double getSecondOrderDerivative(const std::string &variable) const
Get the second order derivative of the function at the current point.
double getD2LogLikelihood() const
AbstractHmmLikelihood & operator=(const AbstractHmmLikelihood &adhlik)
bool enableSecondOrderDerivatives() const
Tell if derivatives must be computed.
void enableSecondOrderDerivatives(bool yn)
Tell if derivatives must be computed.
void enableFirstOrderDerivatives(bool yn)
Tell if derivatives must be computed.
double getDLogLikelihood() const
bool enableFirstOrderDerivatives() const
Tell if derivatives must be computed.
double getFirstOrderDerivative(const std::string &variable) const
Get the derivative of the function at the current point.
double getSecondOrderDerivative(const std::string &variable1, const std::string &variable2) const
Get the value of the cross derivative of the function according to a given set of parameters.
This is the abstract class for second order derivable functions.
Interface for computing emission probabilities in a Hidden Markov Model.
Basal interface for Hidden Markov Models likelihood computation.
virtual void computeD2Likelihood_() const =0
virtual const std::vector< size_t > & getBreakPoints() const =0
virtual double getLikelihoodForASite(size_t site) const =0
Get the likelihood for a site, and its derivatives.
virtual double getD2LogLikelihoodForASite(size_t site) const =0
virtual void computeDLikelihood_() const =0
virtual double getDLogLikelihoodForASite(size_t site) const =0
virtual double getLogLikelihood() const =0
virtual HmmEmissionProbabilities & getHmmEmissionProbabilities()=0
virtual double getD2LogLikelihood() const =0
virtual double getDLogLikelihood() const =0
virtual Vdouble getHiddenStatesPosteriorProbabilitiesForASite(size_t site) const =0
virtual HmmStateAlphabet & getHmmStateAlphabet()=0
virtual const HmmStateAlphabet & getHmmStateAlphabet() const =0
virtual const HmmEmissionProbabilities & getHmmEmissionProbabilities() const =0
virtual void getHiddenStatesPosteriorProbabilities(std::vector< std::vector< double > > &probs, bool append) const =0
virtual Vdouble getLikelihoodForEachSite() const =0
Get the likelihood for each site.
virtual HmmTransitionMatrix & getHmmTransitionMatrix()=0
virtual const HmmTransitionMatrix & getHmmTransitionMatrix() const =0
virtual void setBreakPoints(const std::vector< size_t > &breakPoints)=0
virtual HmmLikelihood * clone() const =0
Create a copy of this object and send a pointer to it.
Describe the transition probabilities between hidden states of a Hidden Markov Model.
This exception is sent when a given method is not implemented.
std::vector< double > Vdouble