-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cell.h
141 lines (109 loc) · 2.5 KB
/
Cell.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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#ifndef CELL_H
#define CELL_H
//==============================
// INCLUDES
//==============================
/**
* @class CELL
* @brief A CELL
*/
enum Genotype{GenA, GenB};
class Cell
{
public:
//==============================
// CONSTRUCTORS
//==============================
Cell();
Cell(float cAi, float cBi, float cCi);
//==============================
// DESTRUCTOR
//==============================
virtual ~Cell();
//==============================
// GETTERS
//==============================
inline float cA() const;
inline float cB() const;
inline float cC() const;
inline float fit() const;
inline float rAA() const;
inline float rAB() const;
inline float rBB() const;
inline float rBC() const;
//==============================
// SETTERS
//==============================
//==============================
// OPERATORS
//==============================
//==============================
// PUBLIC METHODS
//==============================
virtual void compute_fitness() = 0;
virtual float* metabolism(float s_cA, float s_cB, float s_cC) = 0;
virtual void set_c(float cAi, float cBi, float cCi);
virtual char whatAmI();
static void set_rates(float rAA, float rAB, float rBB, float rBC);
static void set_min_fit(float mf);
protected:
//==============================
// PROTECTED METHODS
//==============================
//==============================
// DECLARATION STATIC ATTRIBUTES
//==============================
//==============================
// ATTRIBUTES
//==============================
float cA_, cB_, cC_; //Concentration of metabolites
float fit_; //Fitness
Genotype geno_; //Genotype
static float rAA_, rAB_, rBB_, rBC_; //Metabolism rates
static float min_fit_; //Minimum fitness
};
//==============================
// GETTER DEFINITION
//==============================
/*
Getters for concentrations
*/
inline float Cell::cA() const
{
return cA_;
}
inline float Cell::cB() const
{
return cB_;
}
inline float Cell::cC() const
{
return cC_;
}
inline float Cell::fit() const
{
return fit_;
}
inline float Cell::rAA() const
{
return rAA_;
}
inline float Cell::rAB() const
{
return rAB_;
}
inline float Cell::rBB() const
{
return rBB_;
}
inline float Cell::rBC() const
{
return rBC_;
}
//==============================
// SETTER DEFINITION
//==============================
//==============================
// OPERATOR DEFINITION
//==============================
#endif // CELL_H