/* There are a total of 15 entries in the algebraic variable array. There are a total of 13 entries in each of the rate and state variable arrays. There are a total of 71 entries in the constant variable array. */ /* * VOI is time in component environment (minute). * STATES[0] is Cln2 in component Cln2 (dimensionless). * CONSTANTS[0] is ks_n2 in component Cln2 (first_order_rate_constant). * CONSTANTS[1] is ks_n2_ in component Cln2 (first_order_rate_constant). * CONSTANTS[2] is kd_n2 in component Cln2 (first_order_rate_constant). * STATES[1] is mass in component mass (dimensionless). * ALGEBRAIC[13] is SBF in component SBF (dimensionless). * STATES[2] is Clb2_T in component Clb2_T (dimensionless). * CONSTANTS[3] is Hct1_T in component Clb2_T (dimensionless). * CONSTANTS[4] is ks_b2 in component Clb2_T (first_order_rate_constant). * CONSTANTS[5] is ks_b2_ in component Clb2_T (first_order_rate_constant). * CONSTANTS[6] is kd_b2 in component Clb2_T (first_order_rate_constant). * CONSTANTS[7] is kd_b2_ in component Clb2_T (first_order_rate_constant). * CONSTANTS[8] is kd_b2__ in component Clb2_T (first_order_rate_constant). * ALGEBRAIC[0] is Vd_b2 in component Clb2_T (first_order_rate_constant). * ALGEBRAIC[11] is Mcm1 in component Mcm1 (dimensionless). * STATES[3] is Hct1 in component Hct1 (dimensionless). * STATES[4] is Cdc20 in component Cdc20 (dimensionless). * ALGEBRAIC[1] is Clb2 in component Clb2 (dimensionless). * STATES[5] is Clb2_Sic1 in component Clb2_Sic1 (dimensionless). * ALGEBRAIC[2] is Clb5 in component Clb5 (dimensionless). * STATES[6] is Clb5_Sic1 in component Clb5_Sic1 (dimensionless). * STATES[7] is Clb5_T in component Clb5_T (dimensionless). * ALGEBRAIC[3] is Sic1 in component Sic1 (dimensionless). * STATES[8] is Sic1_T in component Sic1_T (dimensionless). * CONSTANTS[9] is ks_b5 in component Clb5_T (first_order_rate_constant). * CONSTANTS[10] is ks_b5_ in component Clb5_T (first_order_rate_constant). * CONSTANTS[11] is kd_b5 in component Clb5_T (first_order_rate_constant). * CONSTANTS[12] is kd_b5_ in component Clb5_T (first_order_rate_constant). * ALGEBRAIC[4] is Vd_b5 in component Clb5_T (first_order_rate_constant). * ALGEBRAIC[14] is MBF in component MBF (dimensionless). * ALGEBRAIC[5] is Bck2 in component Bck2 (dimensionless). * CONSTANTS[13] is Bck2_0 in component Bck2 (dimensionless). * ALGEBRAIC[6] is Cln3 in component Cln3 (dimensionless). * CONSTANTS[14] is Jn3 in component Cln3 (dimensionless). * CONSTANTS[15] is Dn3 in component Cln3 (dimensionless). * CONSTANTS[16] is Cln3_max in component Cln3 (dimensionless). * CONSTANTS[17] is ks_c1 in component Sic1_T (first_order_rate_constant). * CONSTANTS[18] is ks_c1_ in component Sic1_T (first_order_rate_constant). * CONSTANTS[19] is kd1_c1 in component parameters (first_order_rate_constant). * CONSTANTS[20] is Jd2_c1 in component parameters (dimensionless). * ALGEBRAIC[7] is Vd2_c1 in component Vd2_c1 (first_order_rate_constant). * ALGEBRAIC[12] is Swi5 in component Swi5 (dimensionless). * CONSTANTS[21] is kas_b2 in component Clb2_Sic1 (first_order_rate_constant). * CONSTANTS[22] is kdi_b2 in component Clb2_Sic1 (first_order_rate_constant). * CONSTANTS[23] is kas_b5 in component Clb5_Sic1 (first_order_rate_constant). * CONSTANTS[24] is kdi_b5 in component Clb5_Sic1 (first_order_rate_constant). * CONSTANTS[25] is kd2_c1 in component Vd2_c1 (first_order_rate_constant). * CONSTANTS[26] is epsilonc1_n3 in component Vd2_c1 (dimensionless). * CONSTANTS[27] is epsilonc1_k2 in component Vd2_c1 (dimensionless). * CONSTANTS[28] is epsilonc1_b5 in component Vd2_c1 (dimensionless). * CONSTANTS[29] is epsilonc1_b2 in component Vd2_c1 (dimensionless). * STATES[9] is Cdc20_T in component Cdc20_T (dimensionless). * CONSTANTS[30] is ks_20 in component Cdc20_T (first_order_rate_constant). * CONSTANTS[31] is ks_20_ in component Cdc20_T (first_order_rate_constant). * CONSTANTS[32] is kd_20 in component parameters (first_order_rate_constant). * CONSTANTS[33] is ka_20 in component Cdc20 (first_order_rate_constant). * CONSTANTS[34] is ki_20 in component Cdc20 (first_order_rate_constant). * CONSTANTS[35] is ki_20_ in component Cdc20 (first_order_rate_constant). * ALGEBRAIC[8] is Vi_20 in component Cdc20 (first_order_rate_constant). * STATES[10] is ORI in component ORI (dimensionless). * STATES[11] is SPN in component SPN (dimensionless). * CONSTANTS[36] is ka_t1 in component Hct1 (first_order_rate_constant). * CONSTANTS[37] is ka_t1_ in component Hct1 (first_order_rate_constant). * CONSTANTS[38] is ki_t1 in component Hct1 (first_order_rate_constant). * CONSTANTS[39] is ki_t1_ in component Hct1 (first_order_rate_constant). * ALGEBRAIC[9] is Vi_t1 in component Hct1 (first_order_rate_constant). * CONSTANTS[40] is Ji_t1 in component Hct1 (dimensionless). * CONSTANTS[41] is Ja_t1 in component Hct1 (dimensionless). * CONSTANTS[42] is epsiloni_t1_n2 in component Hct1 (dimensionless). * CONSTANTS[43] is epsiloni_t1_b5 in component Hct1 (dimensionless). * CONSTANTS[44] is epsiloni_t1_b2 in component Hct1 (dimensionless). * CONSTANTS[45] is mu in component mass (first_order_rate_constant). * CONSTANTS[46] is ks_ori in component ORI (first_order_rate_constant). * CONSTANTS[47] is kd_ori in component ORI (first_order_rate_constant). * CONSTANTS[48] is epsilonori_b2 in component ORI (dimensionless). * STATES[12] is BUD in component BUD (dimensionless). * CONSTANTS[49] is ks_bud in component BUD (first_order_rate_constant). * CONSTANTS[50] is kd_bud in component BUD (first_order_rate_constant). * CONSTANTS[51] is epsilonbud_b5 in component BUD (dimensionless). * CONSTANTS[52] is ks_spn in component SPN (first_order_rate_constant). * CONSTANTS[53] is kd_spn in component SPN (first_order_rate_constant). * CONSTANTS[54] is J_spn in component SPN (dimensionless). * CONSTANTS[55] is ka_sbf in component SBF (first_order_rate_constant). * CONSTANTS[56] is ki_sbf in component SBF (first_order_rate_constant). * CONSTANTS[57] is ki_sbf_ in component SBF (first_order_rate_constant). * ALGEBRAIC[10] is Va_sbf in component SBF (first_order_rate_constant). * CONSTANTS[58] is Ji_sbf in component SBF (dimensionless). * CONSTANTS[59] is Ja_sbf in component SBF (dimensionless). * CONSTANTS[60] is epsilonsbf_n3 in component SBF (dimensionless). * CONSTANTS[61] is epsilonsbf_b5 in component SBF (dimensionless). * CONSTANTS[62] is ka_mcm in component Mcm1 (first_order_rate_constant). * CONSTANTS[63] is ki_mcm in component Mcm1 (first_order_rate_constant). * CONSTANTS[64] is Ji_mcm in component Mcm1 (dimensionless). * CONSTANTS[65] is Ja_mcm in component Mcm1 (dimensionless). * CONSTANTS[66] is ka_swi in component Swi5 (first_order_rate_constant). * CONSTANTS[67] is ki_swi in component Swi5 (first_order_rate_constant). * CONSTANTS[68] is ki_swi_ in component Swi5 (first_order_rate_constant). * CONSTANTS[69] is Ji_swi in component Swi5 (dimensionless). * CONSTANTS[70] is Ja_swi in component Swi5 (dimensionless). * RATES[0] is d/dt Cln2 in component Cln2 (dimensionless). * RATES[2] is d/dt Clb2_T in component Clb2_T (dimensionless). * RATES[7] is d/dt Clb5_T in component Clb5_T (dimensionless). * RATES[8] is d/dt Sic1_T in component Sic1_T (dimensionless). * RATES[5] is d/dt Clb2_Sic1 in component Clb2_Sic1 (dimensionless). * RATES[6] is d/dt Clb5_Sic1 in component Clb5_Sic1 (dimensionless). * RATES[9] is d/dt Cdc20_T in component Cdc20_T (dimensionless). * RATES[4] is d/dt Cdc20 in component Cdc20 (dimensionless). * RATES[3] is d/dt Hct1 in component Hct1 (dimensionless). * RATES[1] is d/dt mass in component mass (dimensionless). * RATES[10] is d/dt ORI in component ORI (dimensionless). * RATES[12] is d/dt BUD in component BUD (dimensionless). * RATES[11] is d/dt SPN in component SPN (dimensionless). * There are a total of 2 condition variables. */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { STATES[0] = 0.0078; CONSTANTS[0] = 0; CONSTANTS[1] = 0.05; CONSTANTS[2] = 0.1; STATES[1] = 0.6608; STATES[2] = 0.2342; CONSTANTS[3] = 1; CONSTANTS[4] = 0.002; CONSTANTS[5] = 0.05; CONSTANTS[6] = 0.01; CONSTANTS[7] = 2; CONSTANTS[8] = 0.05; STATES[3] = 0.9946; STATES[4] = 0.6848; STATES[5] = 0.079; STATES[6] = 0.0207; STATES[7] = 0.0614; STATES[8] = 0.1231; CONSTANTS[9] = 0.006; CONSTANTS[10] = 0.02; CONSTANTS[11] = 0.1; CONSTANTS[12] = 0.25; CONSTANTS[13] = 0.0027; CONSTANTS[14] = 6; CONSTANTS[15] = 1; CONSTANTS[16] = 0.02; CONSTANTS[17] = 0.02; CONSTANTS[18] = 0.1; CONSTANTS[19] = 0.01; CONSTANTS[20] = 0.05; CONSTANTS[21] = 50; CONSTANTS[22] = 0.05; CONSTANTS[23] = 50; CONSTANTS[24] = 0.05; CONSTANTS[25] = 0.3; CONSTANTS[26] = 20; CONSTANTS[27] = 2; CONSTANTS[28] = 1; CONSTANTS[29] = 0.067; STATES[9] = 0.8332; CONSTANTS[30] = 0.005; CONSTANTS[31] = 0.06; CONSTANTS[32] = 0.08; CONSTANTS[33] = 1; CONSTANTS[34] = 0.1; CONSTANTS[35] = 10; STATES[10] = 0; STATES[11] = 0; CONSTANTS[36] = 0.04; CONSTANTS[37] = 2; CONSTANTS[38] = 0; CONSTANTS[39] = 0.64; CONSTANTS[40] = 0.05; CONSTANTS[41] = 0.05; CONSTANTS[42] = 1; CONSTANTS[43] = 0.5; CONSTANTS[44] = 1; CONSTANTS[45] = 0.005776; CONSTANTS[46] = 2; CONSTANTS[47] = 0.06; CONSTANTS[48] = 0.4; STATES[12] = 0; CONSTANTS[49] = 0.3; CONSTANTS[50] = 0.06; CONSTANTS[51] = 1; CONSTANTS[52] = 0.08; CONSTANTS[53] = 0.06; CONSTANTS[54] = 0.2; CONSTANTS[55] = 1; CONSTANTS[56] = 0.5; CONSTANTS[57] = 6; CONSTANTS[58] = 0.01; CONSTANTS[59] = 0.01; CONSTANTS[60] = 75; CONSTANTS[61] = 0.5; CONSTANTS[62] = 1; CONSTANTS[63] = 0.15; CONSTANTS[64] = 1; CONSTANTS[65] = 1; CONSTANTS[66] = 1; CONSTANTS[67] = 0.3; CONSTANTS[68] = 0.2; CONSTANTS[69] = 0.1; CONSTANTS[70] = 0.1; RATES[0] = 0.1001; RATES[2] = 0.1001; RATES[7] = 0.1001; RATES[8] = 0.1001; RATES[5] = 0.1001; RATES[6] = 0.1001; RATES[9] = 0.1001; RATES[4] = 0.1001; RATES[3] = 0.1001; RATES[1] = 0.1001; RATES[10] = 0.1001; RATES[12] = 0.1001; RATES[11] = 0.1001; } void computeResiduals(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES, double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS) { resid[0] = RATES[0] - STATES[1]*(CONSTANTS[0]+ CONSTANTS[1]*ALGEBRAIC[13]) - CONSTANTS[2]*STATES[0]; resid[1] = RATES[2] - STATES[1]*(CONSTANTS[4]+ CONSTANTS[5]*ALGEBRAIC[11]) - ALGEBRAIC[0]*STATES[2]; resid[2] = RATES[7] - STATES[1]*(CONSTANTS[9]+ CONSTANTS[10]*ALGEBRAIC[14]) - ALGEBRAIC[4]*STATES[7]; resid[3] = RATES[8] - (CONSTANTS[17]+ CONSTANTS[18]*ALGEBRAIC[12]) - STATES[8]*(CONSTANTS[19]+ALGEBRAIC[7]/(CONSTANTS[20]+STATES[8])); resid[4] = RATES[5] - CONSTANTS[21]*ALGEBRAIC[1]*ALGEBRAIC[3] - STATES[5]*(CONSTANTS[22]+ALGEBRAIC[0]+CONSTANTS[19]+ALGEBRAIC[7]/(CONSTANTS[20]+STATES[8])); resid[5] = RATES[6] - CONSTANTS[23]*ALGEBRAIC[2]*ALGEBRAIC[3] - STATES[6]*(CONSTANTS[24]+ALGEBRAIC[4]+CONSTANTS[19]+ALGEBRAIC[7]/(CONSTANTS[20]+STATES[8])); resid[6] = RATES[9] - (CONSTANTS[30]+ CONSTANTS[31]*ALGEBRAIC[1]) - CONSTANTS[32]*STATES[9]; resid[7] = RATES[4] - CONSTANTS[33]*(STATES[9] - STATES[4]) - STATES[4]*(ALGEBRAIC[8]+CONSTANTS[32]); resid[8] = RATES[3] - ( (CONSTANTS[36]+ CONSTANTS[37]*STATES[4])*(CONSTANTS[3] - STATES[3]))/((CONSTANTS[41]+CONSTANTS[3]) - STATES[3]) - ( ALGEBRAIC[9]*STATES[3])/(CONSTANTS[40]+STATES[3]); resid[9] = RATES[1] - CONSTANTS[45]*STATES[1]; resid[10] = RATES[10] - CONSTANTS[46]*(ALGEBRAIC[2]+ CONSTANTS[48]*ALGEBRAIC[1]) - CONSTANTS[47]*STATES[10]; resid[11] = RATES[12] - CONSTANTS[49]*(STATES[0]+ALGEBRAIC[6]+ CONSTANTS[51]*ALGEBRAIC[2]) - CONSTANTS[50]*STATES[12]; resid[12] = RATES[11] - ( CONSTANTS[52]*ALGEBRAIC[1])/(CONSTANTS[54]+ALGEBRAIC[1]) - CONSTANTS[53]*STATES[11]; } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { } void computeEssentialVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[0] = CONSTANTS[6]*(CONSTANTS[3] - STATES[3])+ CONSTANTS[7]*STATES[3]+ CONSTANTS[8]*STATES[4]; ALGEBRAIC[1] = STATES[2] - STATES[5]; ALGEBRAIC[2] = STATES[7] - STATES[6]; ALGEBRAIC[3] = STATES[8] - (STATES[5]+STATES[6]); ALGEBRAIC[4] = CONSTANTS[11]+ CONSTANTS[12]*STATES[4]; ALGEBRAIC[6] = ( CONSTANTS[16]*CONSTANTS[15]*STATES[1])/(CONSTANTS[14]+ CONSTANTS[15]*STATES[1]); ALGEBRAIC[5] = CONSTANTS[13]*STATES[1]; ALGEBRAIC[7] = CONSTANTS[25]*( CONSTANTS[26]*ALGEBRAIC[6]+ CONSTANTS[27]*ALGEBRAIC[5]+STATES[0]+ CONSTANTS[28]*ALGEBRAIC[2]+ CONSTANTS[29]*ALGEBRAIC[1]); ALGEBRAIC[8] = (CONDVAR[0]>=0.00000 ? CONSTANTS[35] : CONDVAR[1]>=0.00000 ? CONSTANTS[34] : 0.100000); ALGEBRAIC[9] = CONSTANTS[38]+ CONSTANTS[39]*(ALGEBRAIC[6]+ CONSTANTS[42]*STATES[0]+ CONSTANTS[43]*ALGEBRAIC[2]+ CONSTANTS[44]*ALGEBRAIC[1]); ALGEBRAIC[11] = ( 2.00000*CONSTANTS[62]*ALGEBRAIC[1]*CONSTANTS[64])/(((CONSTANTS[63]+ CONSTANTS[62]*ALGEBRAIC[1]*CONSTANTS[64]+ CONSTANTS[63]*CONSTANTS[65]) - CONSTANTS[62]*ALGEBRAIC[1])+ pow((pow((CONSTANTS[63]+ CONSTANTS[62]*ALGEBRAIC[1]*CONSTANTS[64]+ CONSTANTS[63]*CONSTANTS[65]) - CONSTANTS[62]*ALGEBRAIC[1], 2.00000) - 4.00000*(CONSTANTS[63] - CONSTANTS[62]*ALGEBRAIC[1])*CONSTANTS[62]*ALGEBRAIC[1]*CONSTANTS[64]), 1.0 / 2)); ALGEBRAIC[12] = ( 2.00000*CONSTANTS[66]*STATES[4]*CONSTANTS[69])/(((CONSTANTS[67]+ CONSTANTS[68]*ALGEBRAIC[1]+ CONSTANTS[66]*STATES[4]*CONSTANTS[69]+ (CONSTANTS[67]+ CONSTANTS[68]*ALGEBRAIC[1])*CONSTANTS[70]) - CONSTANTS[66]*STATES[4])+ pow((pow((CONSTANTS[67]+ CONSTANTS[68]*ALGEBRAIC[1]+ CONSTANTS[66]*STATES[4]*CONSTANTS[69]+ (CONSTANTS[67]+ CONSTANTS[68]*ALGEBRAIC[1])*CONSTANTS[70]) - CONSTANTS[66]*STATES[4], 2.00000) - 4.00000*((CONSTANTS[67]+ CONSTANTS[68]*ALGEBRAIC[1]) - CONSTANTS[66]*STATES[4])*CONSTANTS[66]*STATES[4]*CONSTANTS[69]), 1.0 / 2)); ALGEBRAIC[10] = CONSTANTS[55]*(STATES[0]+ CONSTANTS[60]*(ALGEBRAIC[6]+ALGEBRAIC[5])+ CONSTANTS[61]*ALGEBRAIC[2]); ALGEBRAIC[13] = ( 2.00000*ALGEBRAIC[10]*CONSTANTS[58])/(((CONSTANTS[56]+ CONSTANTS[57]*ALGEBRAIC[1]+ ALGEBRAIC[10]*CONSTANTS[58]+ (CONSTANTS[56]+ CONSTANTS[57]*ALGEBRAIC[1])*CONSTANTS[59]) - ALGEBRAIC[10])+ pow((pow((CONSTANTS[56]+ CONSTANTS[57]*ALGEBRAIC[1]+ ALGEBRAIC[10]*CONSTANTS[58]+ (CONSTANTS[56]+ CONSTANTS[57]*ALGEBRAIC[1])*CONSTANTS[59]) - ALGEBRAIC[10], 2.00000) - 4.00000*ALGEBRAIC[10]*CONSTANTS[58]*((CONSTANTS[56]+ CONSTANTS[57]*ALGEBRAIC[1]) - ALGEBRAIC[10])), 1.0 / 2)); ALGEBRAIC[14] = ALGEBRAIC[13]; } void getStateInformation(double* SI) { SI[0] = 1.0; SI[1] = 1.0; SI[2] = 1.0; SI[3] = 1.0; SI[4] = 1.0; SI[5] = 1.0; SI[6] = 1.0; SI[7] = 1.0; SI[8] = 1.0; SI[9] = 1.0; SI[10] = 1.0; SI[11] = 1.0; SI[12] = 1.0; } void computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES, double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS) { CONDVAR[0] = STATES[10] - 1.00000; CONDVAR[1] = STATES[11] - 1.00000; }