-
Notifications
You must be signed in to change notification settings - Fork 0
/
ratecontinuousgamma.h
75 lines (58 loc) · 1.4 KB
/
ratecontinuousgamma.h
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//
// ratecontinuousgamma.h
// iqtree
//
// Created by Nhan Ly-Trong on 22/03/2021.
//
#ifndef ratecontinuousgamma_h
#define ratecontinuousgamma_h
#include "rateheterogeneity.h"
#include <random>
class RateContinuousGamma: virtual public RateHeterogeneity
{
friend class RateContinuousGammaInvar;
public:
/**
constructor
*/
RateContinuousGamma();
/**
constructor
@param shape Gamma shape parameter
*/
RateContinuousGamma(double shape);
/**
start structure for checkpointing
*/
virtual void startCheckpoint();
/**
save object into the checkpoint
*/
virtual void saveCheckpoint();
/**
restore object from the checkpoint
*/
virtual void restoreCheckpoint();
virtual double getGammaShape() { return gamma_shape; }
virtual void setGammaShape(double gs);
/**
@return site-specific rates
*/
virtual void getSiteSpecificRates(vector<double> &site_specific_rates, int sequence_length);
/**
write information
@param out output stream
*/
virtual void writeInfo(ostream &out);
/**
write parameters, used with modeltest
@param out output stream
*/
virtual void writeParameters(ostream &out);
protected:
/**
the gamma shape parameter 'alpha'
*/
double gamma_shape;
};
#endif /* ratecontinuousgamma_h */