EukPhylo/PTL2/Scripts-GRID/guidance.v2.02/libs/phylogeny/distributionPlusCategory.h
Katzlab dd76ab1d12 Added PTL2 Scripts
These are PTL2 files from Auden 2/9
2023-02-14 11:20:52 -05:00

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