mrgsolve
Loading...
Searching...
No Matches
mrgsolve-evtools-regimen.h
Go to the documentation of this file.
1namespace evt {
2
3class regimen {
4public:
5 // Constructor
6 regimen();
7 // Methods
8 void init(databox& self);
9 void reset();
10 void execute();
11 // Set and get
12 void cmt(int cmt_);
13 int cmt() {return Cmt;}
14 void amt(double amt_);
15 double amt() {return Amt;}
16 void ii(double ii_);
17 double ii() {return Ii;}
18 void rate(double rate_);
19 double rate() {return Rate;}
20 double time_next() {return dose_time;}
21 void time_next(double time_);
22 void until(double until_);
23 double until() {return Until;}
24 void flagnext();
25 // Public members
26 double dose_time;
29
30private:
31 int Cmt;
32 double Ii;
33 double Amt;
34 double Rate;
35 double Until;
37};
38
40 Cmt = 1;
41 Amt = 0.0;
42 Rate = 0.0;
43 Ii = 1.0e9;
44 Until = 1.0e9;
45 dose_time = Self ? Self->time : 0.0;
46 prev_dose_time = -1.0e9;
47 Flagnext = false;
48}
49
50regimen::regimen() : Self(nullptr) {
51 reset();
52}
53
54void regimen::init(databox& self_) {
55 Self = &self_;
56 reset();
57}
58
59void regimen::amt(double amt_) {
60 Amt = amt_;
61 return;
62}
63
64void regimen::rate(double rate_) {
65 Rate = rate_;
66 return;
67}
68
69void regimen::cmt(int cmt_) {
70 Cmt = cmt_;
71 return;
72}
73
74void regimen::ii(double ii_) {
75 Ii = ii_;
76 return;
77}
78
79void regimen::time_next(double time_) {
80 dose_time = time_;
81 return;
82}
83
84void regimen::until(double until_) {
85 Until = until_;
86 return;
87}
88
90 if(!Self) return;
91 if(!evt::near(Self->time, dose_time)) return;
92 if(Self->time >= Until) return;
96 if(Flagnext) {
98 ev.check_unique = false;
99 Self->push(ev);
100 }
101 return;
102}
103
105 Flagnext = true;
106 return;
107}
108
109} // Closes regimen class
member functions mevent and tad come in via housemodel; see inst/base/databox.cpp
Definition mrgsolv.h:96
double Ii
Definition mrgsolve-evtools-regimen.h:32
void execute()
Definition mrgsolve-evtools-regimen.h:89
double Until
Definition mrgsolve-evtools-regimen.h:35
double prev_dose_time
Definition mrgsolve-evtools-regimen.h:27
int cmt()
Definition mrgsolve-evtools-regimen.h:13
double dose_time
Definition mrgsolve-evtools-regimen.h:26
double rate()
Definition mrgsolve-evtools-regimen.h:19
regimen()
Definition mrgsolve-evtools-regimen.h:50
double time_next()
Definition mrgsolve-evtools-regimen.h:20
bool Flagnext
Definition mrgsolve-evtools-regimen.h:28
double Rate
Definition mrgsolve-evtools-regimen.h:34
void flagnext()
Definition mrgsolve-evtools-regimen.h:104
double amt()
Definition mrgsolve-evtools-regimen.h:15
databox * Self
Definition mrgsolve-evtools-regimen.h:36
void init(databox &self)
Definition mrgsolve-evtools-regimen.h:54
int Cmt
Definition mrgsolve-evtools-regimen.h:31
void reset()
Definition mrgsolve-evtools-regimen.h:39
double ii()
Definition mrgsolve-evtools-regimen.h:17
double until()
Definition mrgsolve-evtools-regimen.h:23
double Amt
Definition mrgsolve-evtools-regimen.h:33
Definition mrgsolve-evtools-regimen.h:1
mrgsolve::evdata ev
Definition mrgsolve-evtools.h:4
mrgsolve::evdata infuse(const double amt, const int cmt, const double rate)
Definition mrgsolve-evtools.h:21
bool near(double a, double b, double eps=1e-8)
Definition mrgsolve-evtools.h:145
Definition mrgsolv.h:51