mrgsolve
Loading...
Searching...
No Matches
mrgsolve-tad.h
Go to the documentation of this file.
1
2
3namespace mrgsolve {
49class tadose {
50public:
51 int cmt = -1e9;
52 double told = -1e9;
53 bool had_dose = false;
54 tadose(int cmt_);
55 tadose(){};
56 double tad(databox& self);
57 void reset();
58};
59
66tadose::tadose(int cmt_) {
67 cmt = cmt_;
68}
69
80double tadose::tad(databox& self) {
81 if(self.newind <= 1) this->reset();
82 if(self.evid==0) {
83 return had_dose ? self.time - told : -1.0;
84 }
85 if((self.cmt == cmt) && (self.evid == 1 || self.evid == 4)) {
86 told = self.time;
87 had_dose = true;
88 return 0.0;
89 }
90 return had_dose ? self.time - told : -1.0;
91}
92
99 had_dose = false;
100 told = -1e9;
101}
102}
member functions mevent and tad come in via housemodel; see inst/base/databox.cpp
Definition mrgsolv.h:96
double time
current simulation time
Definition mrgsolv.h:102
int evid
event ID flag
Definition mrgsolv.h:103
unsigned int newind
new individual flag
Definition mrgsolv.h:101
short int cmt
current compartment value
Definition mrgsolv.h:107
int cmt
dosing compartment number to follow
Definition mrgsolve-tad.h:51
double told
time of last dose
Definition mrgsolve-tad.h:52
bool had_dose
has the current individual received a dose yet?
Definition mrgsolve-tad.h:53
double tad(databox &self)
Definition mrgsolve-tad.h:80
tadose(int cmt_)
Definition mrgsolve-tad.h:66
tadose()
Definition mrgsolve-tad.h:55
void reset()
Definition mrgsolve-tad.h:98
Definition mrgsolv.h:30