File: gammaDistributionPlusInvariant.h

package info (click to toggle)
fastml 3.11-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 5,772 kB
  • sloc: cpp: 48,522; perl: 3,588; ansic: 819; makefile: 386; python: 83; sh: 55
file content (35 lines) | stat: -rw-r--r-- 1,573 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#ifndef ___GAMMA_DIST_PLUSINV
#define ___GAMMA_DIST_PLUSINV
/************************************************************
This class describes a combination of a predefined dsitrubtion ,
with an additional invariant category of probability _Pinv
This category is always the last rate category (i.e., rate(categories()) == 0)
************************************************************/
#include "definitions.h"
#include "distributionPlusInvariant.h"
#include "distribution.h"
#include "gammaDistribution.h"
#include "errorMsg.h"
#include "gammaUtilities.h"
#include "logFile.h"
#include <cmath>



class gammaDistributionPlusInvariant : public distributionPlusInvariant {
public:
	explicit gammaDistributionPlusInvariant(distribution* pDist, const MDOUBLE pInv, const MDOUBLE globalRate=1, MDOUBLE rateInvariantVal=1e-10): distributionPlusInvariant(pDist,pInv,globalRate,rateInvariantVal){}
	explicit gammaDistributionPlusInvariant();
	gammaDistributionPlusInvariant(const gammaDistributionPlusInvariant& other) {(*this) = other;}	
	//virtual gammaDistributionPlusInvariant& operator=(const gammaDistributionPlusInvariant& other);
	gammaDistributionPlusInvariant* clone() const {return new gammaDistributionPlusInvariant(*this);}
	virtual ~gammaDistributionPlusInvariant(){}



// get GammaDistribution params
	virtual void setAlpha(MDOUBLE newAlpha) {return static_cast<gammaDistribution*>(_pBaseDist)->setAlpha(newAlpha);};
	virtual MDOUBLE getAlpha() const {return static_cast<gammaDistribution*>(_pBaseDist)->getAlpha();}

};
#endif