/* There are a total of 15 entries in the algebraic variable array. There are a total of 5 entries in each of the rate and state variable arrays. There are a total of 24 entries in the constant variable array. */ /* * VOI is time in component environment (minute). * STATES[0] is y0 in component y0 (dimensionless). * ALGEBRAIC[10] is g0 in component y0 (dimensionless). * ALGEBRAIC[5] is r0 in component y0 (dimensionless). * ALGEBRAIC[0] is h0 in component y0 (dimensionless). * CONSTANTS[0] is S0 in component y0 (dimensionless). * STATES[1] is y2 in component y2 (dimensionless). * CONSTANTS[1] is a00 in component model_parameters (dimensionless). * CONSTANTS[2] is a02 in component model_parameters (dimensionless). * CONSTANTS[3] is c0 in component model_parameters (first_order_rate_constant). * CONSTANTS[4] is e0 in component model_parameters (first_order_rate_constant). * CONSTANTS[5] is epsilon in component model_parameters (dimensionless). * STATES[2] is y1 in component y1 (dimensionless). * ALGEBRAIC[11] is g1 in component y1 (dimensionless). * ALGEBRAIC[6] is r1 in component y1 (dimensionless). * ALGEBRAIC[1] is h1 in component y1 (dimensionless). * CONSTANTS[6] is S1 in component y1 (dimensionless). * CONSTANTS[7] is a10 in component model_parameters (dimensionless). * CONSTANTS[8] is a12 in component model_parameters (dimensionless). * CONSTANTS[9] is a11 in component model_parameters (dimensionless). * CONSTANTS[10] is e1 in component model_parameters (first_order_rate_constant). * ALGEBRAIC[12] is g2 in component y2 (dimensionless). * ALGEBRAIC[7] is r2 in component y2 (dimensionless). * ALGEBRAIC[2] is h2 in component y2 (dimensionless). * CONSTANTS[11] is S2 in component y2 (dimensionless). * STATES[3] is y3 in component y3 (dimensionless). * STATES[4] is y4 in component y4 (dimensionless). * CONSTANTS[12] is a23 in component model_parameters (dimensionless). * CONSTANTS[13] is a24 in component model_parameters (dimensionless). * CONSTANTS[14] is a20 in component model_parameters (dimensionless). * CONSTANTS[15] is a21 in component model_parameters (dimensionless). * CONSTANTS[16] is a22 in component model_parameters (dimensionless). * CONSTANTS[17] is e2 in component model_parameters (first_order_rate_constant). * ALGEBRAIC[13] is g3 in component y3 (dimensionless). * ALGEBRAIC[8] is r3 in component y3 (dimensionless). * ALGEBRAIC[3] is h3 in component y3 (dimensionless). * CONSTANTS[18] is S3 in component y3 (dimensionless). * CONSTANTS[19] is a32 in component model_parameters (dimensionless). * CONSTANTS[20] is a33 in component model_parameters (dimensionless). * ALGEBRAIC[14] is g4 in component y4 (dimensionless). * ALGEBRAIC[9] is r4 in component y4 (dimensionless). * ALGEBRAIC[4] is h4 in component y4 (dimensionless). * CONSTANTS[21] is S4 in component y4 (dimensionless). * CONSTANTS[22] is a42 in component model_parameters (dimensionless). * CONSTANTS[23] is a44 in component model_parameters (dimensionless). * RATES[0] is d/dt y0 in component y0 (dimensionless). * RATES[2] is d/dt y1 in component y1 (dimensionless). * RATES[1] is d/dt y2 in component y2 (dimensionless). * RATES[3] is d/dt y3 in component y3 (dimensionless). * RATES[4] is d/dt y4 in component y4 (dimensionless). */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { STATES[0] = 0.4; CONSTANTS[0] = 0.010; STATES[1] = 1.17; CONSTANTS[1] = -0.00843; CONSTANTS[2] = -0.440; CONSTANTS[3] = 0.443; CONSTANTS[4] = 0.0; CONSTANTS[5] = 0.50; STATES[2] = 1.4; CONSTANTS[6] = 0.010; CONSTANTS[7] = 0.082; CONSTANTS[8] = -0.0668; CONSTANTS[9] = -0.0040; CONSTANTS[10] = 0.0; CONSTANTS[11] = 0.010; STATES[3] = 0.95; STATES[4] = 0.65; CONSTANTS[12] = 0.0576; CONSTANTS[13] = 3.25E-4; CONSTANTS[14] = 0.0; CONSTANTS[15] = 0.0310; CONSTANTS[16] = -0.0957; CONSTANTS[17] = 0.0; CONSTANTS[18] = 0.010; CONSTANTS[19] = 0.00869; CONSTANTS[20] = -0.00857; CONSTANTS[21] = 0.010; CONSTANTS[22] = 1.39E-4; CONSTANTS[23] = -1.43E-4; } void computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[5] = (STATES[0]0.00000 ? ( CONSTANTS[1]*STATES[0]+ CONSTANTS[2]*STATES[1])/(1.00000+ (( CONSTANTS[1]*STATES[0]+ CONSTANTS[2]*STATES[1])/CONSTANTS[0])*(1.00000 - exp(- (( CONSTANTS[1]*STATES[0]+ CONSTANTS[2]*STATES[1])/CONSTANTS[0])))) : CONSTANTS[1]*STATES[0]+ CONSTANTS[2]*STATES[1]<=0.00000 ? CONSTANTS[1]*STATES[0]+ CONSTANTS[2]*STATES[1] : 0.0/0.0); ALGEBRAIC[10] = ALGEBRAIC[0]*ALGEBRAIC[5]; RATES[0] = 1.00000*ALGEBRAIC[10]+CONSTANTS[3]+CONSTANTS[4]; ALGEBRAIC[6] = (STATES[2]0.00000 ? ( CONSTANTS[7]*STATES[0]+ CONSTANTS[9]*STATES[2]+ CONSTANTS[8]*STATES[1])/(1.00000+ (( CONSTANTS[7]*STATES[0]+ CONSTANTS[9]*STATES[2]+ CONSTANTS[8]*STATES[1])/CONSTANTS[6])*(1.00000 - exp(- (( CONSTANTS[7]*STATES[0]+ CONSTANTS[9]*STATES[2]+ CONSTANTS[8]*STATES[1])/CONSTANTS[6])))) : CONSTANTS[7]*STATES[0]+ CONSTANTS[9]*STATES[2]+ CONSTANTS[8]*STATES[1]<=0.00000 ? CONSTANTS[7]*STATES[0]+ CONSTANTS[9]*STATES[2]+ CONSTANTS[8]*STATES[1] : 0.0/0.0); ALGEBRAIC[11] = ALGEBRAIC[1]*ALGEBRAIC[6]; RATES[2] = 1.00000*ALGEBRAIC[11]+CONSTANTS[10]; ALGEBRAIC[7] = (STATES[1]0.00000 ? ( CONSTANTS[14]*STATES[0]+ CONSTANTS[15]*STATES[2]+ CONSTANTS[16]*STATES[1]+ CONSTANTS[12]*STATES[3]+ CONSTANTS[13]*STATES[4])/(1.00000+ (( CONSTANTS[14]*STATES[0]+ CONSTANTS[15]*STATES[2]+ CONSTANTS[16]*STATES[1]+ CONSTANTS[12]*STATES[3]+ CONSTANTS[13]*STATES[4])/CONSTANTS[11])*(1.00000 - exp(- (( CONSTANTS[14]*STATES[0]+ CONSTANTS[15]*STATES[2]+ CONSTANTS[16]*STATES[1]+ CONSTANTS[12]*STATES[3]+ CONSTANTS[13]*STATES[4])/CONSTANTS[11])))) : CONSTANTS[14]*STATES[0]+ CONSTANTS[15]*STATES[2]+ CONSTANTS[16]*STATES[1]+ CONSTANTS[12]*STATES[3]+ CONSTANTS[13]*STATES[4]<=0.00000 ? CONSTANTS[14]*STATES[0]+ CONSTANTS[15]*STATES[2]+ CONSTANTS[16]*STATES[1]+ CONSTANTS[12]*STATES[3]+ CONSTANTS[13]*STATES[4] : 0.0/0.0); ALGEBRAIC[12] = ALGEBRAIC[2]*ALGEBRAIC[7]; RATES[1] = 1.00000*ALGEBRAIC[12]+CONSTANTS[17]; ALGEBRAIC[8] = (STATES[3]0.00000 ? ( CONSTANTS[19]*STATES[1]+ CONSTANTS[20]*STATES[3])/(1.00000+ (( CONSTANTS[19]*STATES[1]+ CONSTANTS[20]*STATES[3])/CONSTANTS[18])*(1.00000 - exp(- (( CONSTANTS[19]*STATES[1]+ CONSTANTS[20]*STATES[3])/CONSTANTS[18])))) : CONSTANTS[19]*STATES[1]+ CONSTANTS[20]*STATES[3]<=0.00000 ? CONSTANTS[19]*STATES[1]+ CONSTANTS[20]*STATES[3] : 0.0/0.0); ALGEBRAIC[13] = ALGEBRAIC[3]*ALGEBRAIC[8]; RATES[3] = 1.00000*ALGEBRAIC[13]; ALGEBRAIC[9] = (STATES[4]0.00000 ? ( CONSTANTS[22]*STATES[1]+ CONSTANTS[23]*STATES[4])/(1.00000+ (( CONSTANTS[22]*STATES[1]+ CONSTANTS[23]*STATES[4])/CONSTANTS[21])*(1.00000 - exp(- (( CONSTANTS[22]*STATES[1]+ CONSTANTS[23]*STATES[4])/CONSTANTS[21])))) : CONSTANTS[22]*STATES[1]+ CONSTANTS[23]*STATES[4]<=0.00000 ? CONSTANTS[22]*STATES[1]+ CONSTANTS[23]*STATES[4] : 0.0/0.0); ALGEBRAIC[14] = ALGEBRAIC[4]*ALGEBRAIC[9]; RATES[4] = 1.00000*ALGEBRAIC[14]; } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[5] = (STATES[0]0.00000 ? ( CONSTANTS[1]*STATES[0]+ CONSTANTS[2]*STATES[1])/(1.00000+ (( CONSTANTS[1]*STATES[0]+ CONSTANTS[2]*STATES[1])/CONSTANTS[0])*(1.00000 - exp(- (( CONSTANTS[1]*STATES[0]+ CONSTANTS[2]*STATES[1])/CONSTANTS[0])))) : CONSTANTS[1]*STATES[0]+ CONSTANTS[2]*STATES[1]<=0.00000 ? CONSTANTS[1]*STATES[0]+ CONSTANTS[2]*STATES[1] : 0.0/0.0); ALGEBRAIC[10] = ALGEBRAIC[0]*ALGEBRAIC[5]; ALGEBRAIC[6] = (STATES[2]0.00000 ? ( CONSTANTS[7]*STATES[0]+ CONSTANTS[9]*STATES[2]+ CONSTANTS[8]*STATES[1])/(1.00000+ (( CONSTANTS[7]*STATES[0]+ CONSTANTS[9]*STATES[2]+ CONSTANTS[8]*STATES[1])/CONSTANTS[6])*(1.00000 - exp(- (( CONSTANTS[7]*STATES[0]+ CONSTANTS[9]*STATES[2]+ CONSTANTS[8]*STATES[1])/CONSTANTS[6])))) : CONSTANTS[7]*STATES[0]+ CONSTANTS[9]*STATES[2]+ CONSTANTS[8]*STATES[1]<=0.00000 ? CONSTANTS[7]*STATES[0]+ CONSTANTS[9]*STATES[2]+ CONSTANTS[8]*STATES[1] : 0.0/0.0); ALGEBRAIC[11] = ALGEBRAIC[1]*ALGEBRAIC[6]; ALGEBRAIC[7] = (STATES[1]0.00000 ? ( CONSTANTS[14]*STATES[0]+ CONSTANTS[15]*STATES[2]+ CONSTANTS[16]*STATES[1]+ CONSTANTS[12]*STATES[3]+ CONSTANTS[13]*STATES[4])/(1.00000+ (( CONSTANTS[14]*STATES[0]+ CONSTANTS[15]*STATES[2]+ CONSTANTS[16]*STATES[1]+ CONSTANTS[12]*STATES[3]+ CONSTANTS[13]*STATES[4])/CONSTANTS[11])*(1.00000 - exp(- (( CONSTANTS[14]*STATES[0]+ CONSTANTS[15]*STATES[2]+ CONSTANTS[16]*STATES[1]+ CONSTANTS[12]*STATES[3]+ CONSTANTS[13]*STATES[4])/CONSTANTS[11])))) : CONSTANTS[14]*STATES[0]+ CONSTANTS[15]*STATES[2]+ CONSTANTS[16]*STATES[1]+ CONSTANTS[12]*STATES[3]+ CONSTANTS[13]*STATES[4]<=0.00000 ? CONSTANTS[14]*STATES[0]+ CONSTANTS[15]*STATES[2]+ CONSTANTS[16]*STATES[1]+ CONSTANTS[12]*STATES[3]+ CONSTANTS[13]*STATES[4] : 0.0/0.0); ALGEBRAIC[12] = ALGEBRAIC[2]*ALGEBRAIC[7]; ALGEBRAIC[8] = (STATES[3]0.00000 ? ( CONSTANTS[19]*STATES[1]+ CONSTANTS[20]*STATES[3])/(1.00000+ (( CONSTANTS[19]*STATES[1]+ CONSTANTS[20]*STATES[3])/CONSTANTS[18])*(1.00000 - exp(- (( CONSTANTS[19]*STATES[1]+ CONSTANTS[20]*STATES[3])/CONSTANTS[18])))) : CONSTANTS[19]*STATES[1]+ CONSTANTS[20]*STATES[3]<=0.00000 ? CONSTANTS[19]*STATES[1]+ CONSTANTS[20]*STATES[3] : 0.0/0.0); ALGEBRAIC[13] = ALGEBRAIC[3]*ALGEBRAIC[8]; ALGEBRAIC[9] = (STATES[4]0.00000 ? ( CONSTANTS[22]*STATES[1]+ CONSTANTS[23]*STATES[4])/(1.00000+ (( CONSTANTS[22]*STATES[1]+ CONSTANTS[23]*STATES[4])/CONSTANTS[21])*(1.00000 - exp(- (( CONSTANTS[22]*STATES[1]+ CONSTANTS[23]*STATES[4])/CONSTANTS[21])))) : CONSTANTS[22]*STATES[1]+ CONSTANTS[23]*STATES[4]<=0.00000 ? CONSTANTS[22]*STATES[1]+ CONSTANTS[23]*STATES[4] : 0.0/0.0); ALGEBRAIC[14] = ALGEBRAIC[4]*ALGEBRAIC[9]; }