41 #ifndef BPP_NUMERIC_HMM_RESCALEDHMMLIKELIHOOD_H
42 #define BPP_NUMERIC_HMM_RESCALEDHMMLIKELIHOOD_H
45 #include "../AbstractParametrizable.h"
46 #include "../Matrix/Matrix.h"
137 const std::string& prefix);
166 AbstractParametrizable::operator=(lik);
AbstractHmmLikelihood & operator=(const AbstractHmmLikelihood &adhlik)
A partial implementation of the Parametrizable interface.
void setParametersValues(const ParameterList ¶meters)
Update the parameters from parameters.
Interface for computing emission probabilities in a Hidden Markov Model.
Describe the transition probabilities between hidden states of a Hidden Markov Model.
The parameter list object.
A simple implementation of hidden Markov models recursion.
const HmmEmissionProbabilities & getHmmEmissionProbabilities() const
std::vector< double > dScales_
const HmmStateAlphabet & getHmmStateAlphabet() const
std::vector< double > likelihood_
The likelihood arrays.
void setParameters(const ParameterList &pl)
Set the point where the function must be computed.
std::vector< std::vector< double > > d2Likelihood_
std::vector< size_t > breakPoints_
const HmmTransitionMatrix & getHmmTransitionMatrix() const
std::vector< double > d2Scales_
double getDLogLikelihoodForASite(size_t site) const
void setBreakPoints(const std::vector< size_t > &breakPoints)
HmmStateAlphabet & getHmmStateAlphabet()
RescaledHmmLikelihood * clone() const
Create a copy of this object and send a pointer to it.
void computeD2Likelihood_() const
std::vector< std::vector< double > > dLikelihood_
derivatec of forward likelihood
void computeBackward_() const
Vdouble getHiddenStatesPosteriorProbabilitiesForASite(size_t site) const
double getValue() const
Get the value of the function at the current point.
RescaledHmmLikelihood(HmmStateAlphabet *hiddenAlphabet, HmmTransitionMatrix *transitionMatrix, HmmEmissionProbabilities *emissionProbabilities, const std::string &prefix)
Build a new RescaledHmmLikelihood object.
HmmEmissionProbabilities & getHmmEmissionProbabilities()
double getLogLikelihood() const
std::unique_ptr< HmmTransitionMatrix > transitionMatrix_
bool backLikelihoodUpToDate_
void getHiddenStatesPosteriorProbabilities(std::vector< std::vector< double > > &probs, bool append=false) const
std::unique_ptr< HmmEmissionProbabilities > emissionProbabilities_
double getD2LogLikelihoodForASite(size_t site) const
double getLikelihoodForASite(size_t site) const
Get the likelihood for a site, and its derivatives.
virtual ~RescaledHmmLikelihood()
HmmTransitionMatrix & getHmmTransitionMatrix()
void computeDLikelihood_() const
void computeD2Forward_() const
const std::vector< size_t > & getBreakPoints() const
RescaledHmmLikelihood & operator=(const RescaledHmmLikelihood &lik)
void fireParameterChanged(const ParameterList &pl)
Notify the class when one or several parameters have changed.
std::vector< double > scales_
scales for likelihood computing
void setNamespace(const std::string &nameSpace)
Set the namespace for the parameter names.
std::vector< std::vector< double > > backLikelihood_
backward likelihood
Vdouble getLikelihoodForEachSite() const
Get the likelihood for each site.
std::unique_ptr< HmmStateAlphabet > hiddenAlphabet_
The alphabet describing the hidden states.
RescaledHmmLikelihood(const RescaledHmmLikelihood &lik)
void computeDForward_() const
std::vector< double > Vdouble