5#include "tpcclibConfig.h"
46 double cii, ci_last, t_last;
47 double ct_last, cti, cti_last;
52 if(t==NULL || ci==NULL || ct==NULL)
return(2);
55 t_last=0.0; cii=ci_last=0.0;
56 cti=ct_last=cti_last=0.0;
59 dt2=0.5*(t[i]-t_last);
65 cii+=(ci[i]+ci_last)*dt2;
67 ct[i] = (Vfit*ci[i] + k1*cii - k2*(cti_last+dt2*ct_last)) / (1.0 + dt2*k2);
68 cti = cti_last + dt2*(ct_last+ct[i]);
73 t_last=t[i]; ci_last=ci[i];
74 ct_last=ct[i]; cti_last=cti;
109 double cai, ca_last, t_last;
110 double ct1, ct1_last;
111 double ct1i, ct1i_last;
116 if(t==NULL || ca==NULL || ct==NULL)
return 2;
119 if(!(k1>=0.0))
return 3;
122 t_last=0.0;
if(t[0]<t_last) t_last=t[0];
124 ct1_last=ct1i_last=0.0;
126 for(i=0; i<nr; i++) {
128 dt2=0.5*(t[i]-t_last);
134 cai+=(ca[i]+ca_last)*dt2;
136 ct1 = (k1*cai - k2*(ct1i_last+dt2*ct1_last)) / (1.0 + dt2*k2);
137 ct1i = ct1i_last + dt2*(ct1_last+ct1);
142 t_last=t[i]; ca_last=ca[i];
143 ct1_last=ct1; ct1i_last=ct1i;
181 double ct1, ct1_last;
182 double ct1i, ct1i_last;
187 if(t==NULL || cai==NULL || ct==NULL)
return 2;
190 if(!(k1>=0.0))
return 3;
193 t_last=0.0;
if(t[0]<t_last) t_last=t[0];
194 ct1_last=ct1i_last=0.0;
196 for(i=0; i<nr; i++) {
198 dt2=0.5*(t[i]-t_last);
204 ct1 = (k1*cai[i] - k2*(ct1i_last+dt2*ct1_last)) / (1.0 + dt2*k2);
205 ct1i = ct1i_last + dt2*(ct1_last+ct1);
210 t_last=t[i]; ct1_last=ct1; ct1i_last=ct1i;
250 if(t==NULL || ca==NULL || ct==NULL)
return 2;
253 if(!(k1>=0.0))
return 3;
256 tp=0.0;
if(t[0]<tp) tp=t[0];
259 for(i=0; i<nr; i++) {
265 }
else if(dt2>=0.0) {
266 ct[i]=(k1*dt2*(cap+ca[i]) + (1.0 - k2*dt2)*ctp) / (1.0 + k2*dt2);
int simMBF(double *t, double *ci, const int nr, const double k1, const double k2, const double Vfit, double *ct)
int simC1(double *t, double *ca, const int nr, const double k1, const double k2, double *ct)
int simC1_d(double *t, double *ca, const int nr, const double k1, const double k2, double *ct)
int simC1_i(double *t, double *cai, const int nr, const double k1, const double k2, double *ct)
Header file for libtpccm.