mirror of
http://43.156.76.180:8026/YuuMJ/EukPhylo.git
synced 2025-12-28 03:20:25 +08:00
44 lines
1.6 KiB
C++
44 lines
1.6 KiB
C++
|
|
#ifndef ___DIST_PLUS_CATEGORY
|
|
#define ___DIST_PLUS_CATEGORY
|
|
|
|
#include "definitions.h"
|
|
#include "distribution.h"
|
|
#include "logFile.h"
|
|
#include "errorMsg.h"
|
|
|
|
class distributionPlusCategory : public distribution {
|
|
|
|
public:
|
|
explicit distributionPlusCategory(const distribution* pBaseDist, MDOUBLE baseDistProb,MDOUBLE categoryVal,MDOUBLE globalRate=1);
|
|
explicit distributionPlusCategory();
|
|
explicit distributionPlusCategory(const distributionPlusCategory& other);
|
|
virtual ~distributionPlusCategory();
|
|
virtual distributionPlusCategory& operator=(const distributionPlusCategory &other);
|
|
virtual distribution* clone() const { return new distributionPlusCategory(*this); }
|
|
|
|
distribution* getBaseDistribution() {return _pBaseDist;}
|
|
virtual const int categories() const;
|
|
virtual const MDOUBLE rates(const int category) const;
|
|
virtual const MDOUBLE ratesProb(const int category) const;
|
|
|
|
virtual void setGlobalRate(const MDOUBLE x) {_globalRate=x;}
|
|
virtual MDOUBLE getGlobalRate()const {return _globalRate;}
|
|
virtual const MDOUBLE getCumulativeProb(const MDOUBLE x) const;
|
|
virtual void change_number_of_categories(int in_number_of_categories);
|
|
|
|
virtual MDOUBLE getCategoryVal() const {return _categoryVal;}
|
|
virtual MDOUBLE getBaseDistProb() const {return _baseDistProb;}
|
|
virtual void setCategoryVal(MDOUBLE categoryVal) { _categoryVal = categoryVal;}
|
|
virtual void setBaseDistProb(MDOUBLE baseDistProb);
|
|
|
|
protected:
|
|
MDOUBLE _globalRate;
|
|
distribution* _pBaseDist;
|
|
MDOUBLE _categoryVal;
|
|
MDOUBLE _baseDistProb;
|
|
|
|
};
|
|
|
|
#endif // ___DIST_PLUS_CATEGORY
|