Generated Code
The following is c_ida code generated by the CellML API from this CellML file. (Back to language selection)
The raw code is available.
/* There are a total of 88 entries in the algebraic variable array. There are a total of 14 entries in each of the rate and state variable arrays. There are a total of 51 entries in the constant variable array. */ /* * VOI is time in component environment (millisecond). * STATES[0] is Vm in component membrane (millivolt). * ALGEBRAIC[86] is I_tot in component membrane (picoampere). * CONSTANTS[0] is I_ext in component membrane (picoampere). * CONSTANTS[1] is Cm in component membrane (picofarad). * ALGEBRAIC[83] is I_Ki in component I_Ki (picoampere). * ALGEBRAIC[56] is I_CaL in component I_CaL (picoampere). * ALGEBRAIC[76] is I_VDDR in component I_VDDR (picoampere). * ALGEBRAIC[77] is I_AI in component I_AI (picoampere). * ALGEBRAIC[64] is I_NaCa in component I_NaCa (picoampere). * ALGEBRAIC[28] is I_NaK in component I_NaK (picoampere). * ALGEBRAIC[29] is I_PMCA in component I_PMCA (picoampere). * STATES[1] is Na_i in component internal_ion_concentrations (millimolar). * STATES[2] is K_i in component internal_ion_concentrations (millimolar). * ALGEBRAIC[0] is Ca_i in component internal_ion_concentrations (millimolar). * ALGEBRAIC[1] is Na_CF in component internal_ion_concentrations (millimolar). * ALGEBRAIC[2] is K_CF in component internal_ion_concentrations (millimolar). * ALGEBRAIC[3] is Ca_CF in component internal_ion_concentrations (millimolar). * ALGEBRAIC[72] is Inet_Na in component internal_ion_concentrations (picoampere). * ALGEBRAIC[87] is Inet_K in component internal_ion_concentrations (picoampere). * ALGEBRAIC[82] is Inet_Ca in component internal_ion_concentrations (picoampere). * STATES[3] is Cai_A in component internal_ion_concentrations (millimolar). * ALGEBRAIC[12] is I_CaL_Na in component I_CaL (picoampere). * ALGEBRAIC[11] is I_CaL_K in component I_CaL (picoampere). * ALGEBRAIC[10] is I_CaL_Ca in component I_CaL (picoampere). * ALGEBRAIC[63] is I_AI_Na in component I_AI (picoampere). * ALGEBRAIC[62] is I_AI_K in component I_AI (picoampere). * ALGEBRAIC[61] is I_AI_Ca in component I_AI (picoampere). * ALGEBRAIC[38] is I_IP3R in component I_IP3R (picoampere). * ALGEBRAIC[67] is I_up in component I_up (picoampere). * ALGEBRAIC[37] is I_leak in component I_leak (picoampere). * CONSTANTS[2] is Vi in component model_parameters (micrometre3). * CONSTANTS[3] is T in component model_parameters (kelvin). * CONSTANTS[4] is R in component model_parameters (coulomb_millivolt_kelvin_millimole). * CONSTANTS[5] is F in component model_parameters (coulomb_millimole). * CONSTANTS[6] is Na_o in component model_parameters (millimolar). * CONSTANTS[7] is K_o in component model_parameters (millimolar). * CONSTANTS[8] is Ca_o in component model_parameters (millimolar). * CONSTANTS[9] is ZNa in component model_parameters (dimensionless). * CONSTANTS[10] is ZK in component model_parameters (dimensionless). * CONSTANTS[11] is ZCa in component model_parameters (dimensionless). * ALGEBRAIC[54] is fU in component I_Ki (dimensionless). * ALGEBRAIC[4] is E_K in component I_Ki (millivolt). * CONSTANTS[12] is g_Ki in component I_Ki (picoampere_per_millivolt). * ALGEBRAIC[5] is mu in component I_Ki (dimensionless). * ALGEBRAIC[6] is lambda in component I_Ki (dimensionless). * ALGEBRAIC[75] is n in component I_Ki_n_gate (dimensionless). * ALGEBRAIC[7] is n_1 in component I_Ki_n_gate (dimensionless). * ALGEBRAIC[73] is n_2 in component I_Ki_n_gate (dimensionless). * ALGEBRAIC[74] is n_3 in component I_Ki_n_gate (dimensionless). * ALGEBRAIC[8] is a in component I_Ki_n_gate (dimensionless). * ALGEBRAIC[9] is b in component I_Ki_n_gate (dimensionless). * ALGEBRAIC[55] is AB in component I_Ki_n_gate (dimensionless). * CONSTANTS[13] is PCaL in component I_CaL (picoampere_per_millimolar). * STATES[4] is m in component I_CaL_m_gate (dimensionless). * STATES[5] is h in component I_CaL_h_gate (dimensionless). * ALGEBRAIC[13] is alpha_m in component I_CaL_m_gate (first_order_rate_constant). * ALGEBRAIC[14] is beta_m in component I_CaL_m_gate (first_order_rate_constant). * ALGEBRAIC[15] is alpha_h in component I_CaL_h_gate (first_order_rate_constant). * ALGEBRAIC[16] is beta_h in component I_CaL_h_gate (first_order_rate_constant). * CONSTANTS[14] is PVDDR in component I_VDDR (picoampere_per_millimolar). * ALGEBRAIC[58] is m in component I_VDDR_m_gate (dimensionless). * ALGEBRAIC[60] is h in component I_VDDR_h_gate (dimensionless). * ALGEBRAIC[57] is alpha_m in component I_VDDR_m_gate (first_order_rate_constant). * ALGEBRAIC[19] is beta_m in component I_VDDR_m_gate (first_order_rate_constant). * ALGEBRAIC[17] is m2 in component I_VDDR_m_gate (first_order_rate_constant). * ALGEBRAIC[18] is m3 in component I_VDDR_m_gate (dimensionless). * ALGEBRAIC[59] is alpha_h in component I_VDDR_h_gate (first_order_rate_constant). * ALGEBRAIC[22] is beta_h in component I_VDDR_h_gate (first_order_rate_constant). * ALGEBRAIC[20] is h2 in component I_VDDR_h_gate (first_order_rate_constant). * ALGEBRAIC[21] is h3 in component I_VDDR_h_gate (dimensionless). * ALGEBRAIC[23] is po in component I_AI (dimensionless). * CONSTANTS[15] is PAI in component I_AI (picoampere_per_millimolar). * CONSTANTS[16] is Km_Ca_i in component I_AI (millimolar). * CONSTANTS[17] is PNaCa in component I_NaCa (picoampere). * CONSTANTS[18] is Km_Na_i in component I_NaCa (millimolar3). * CONSTANTS[19] is Km_Na_o in component I_NaCa (millimolar3). * CONSTANTS[20] is Km_Ca_i in component I_NaCa (millimolar). * CONSTANTS[21] is Km_Ca_o in component I_NaCa (millimolar). * CONSTANTS[42] is p_E2Na in component I_NaCa (dimensionless). * ALGEBRAIC[24] is p_E1Na in component I_NaCa (dimensionless). * ALGEBRAIC[25] is p_E1Ca in component I_NaCa (dimensionless). * CONSTANTS[43] is p_E2Ca in component I_NaCa (dimensionless). * STATES[6] is y in component I_NaCa_y_gate (dimensionless). * ALGEBRAIC[26] is m in component I_NaCa_y_gate (dimensionless). * ALGEBRAIC[27] is h in component I_NaCa_y_gate (dimensionless). * ALGEBRAIC[65] is alpha_y in component I_NaCa_y_gate (first_order_rate_constant). * ALGEBRAIC[66] is beta_y in component I_NaCa_y_gate (first_order_rate_constant). * CONSTANTS[22] is pNaK in component I_NaK (picoampere). * CONSTANTS[23] is Km_Na_i in component I_NaK (millimolar). * CONSTANTS[24] is Km_K_o in component I_NaK (millimolar). * CONSTANTS[25] is pPMCA in component I_PMCA (picoampere). * CONSTANTS[26] is Km_Ca_i in component I_PMCA (millimolar). * CONSTANTS[27] is Pup in component I_up (picoampere_millisecond). * CONSTANTS[28] is Km_Ca_i in component I_up (millimolar). * CONSTANTS[29] is Km_Ca_o in component I_up (millimolar). * ALGEBRAIC[33] is p_E2 in component I_up (first_order_rate_constant). * ALGEBRAIC[32] is p_E1 in component I_up (first_order_rate_constant). * ALGEBRAIC[30] is p_E1Ca in component I_up (first_order_rate_constant). * ALGEBRAIC[31] is p_E2Ca in component I_up (first_order_rate_constant). * STATES[7] is Ca_up in component calcium_concentrations_in_the_SR (millimolar). * STATES[8] is y in component I_up_y_gate (dimensionless). * ALGEBRAIC[34] is alpha_y in component I_up_y_gate (first_order_rate_constant). * ALGEBRAIC[35] is beta_y in component I_up_y_gate (first_order_rate_constant). * ALGEBRAIC[36] is I_tr in component I_tr (picoampere). * CONSTANTS[30] is ptr in component I_tr (picoampere_per_millimolar). * STATES[9] is Ca_rel in component calcium_concentrations_in_the_SR (millimolar). * CONSTANTS[31] is pleak in component I_leak (picoampere_per_millimolar). * CONSTANTS[32] is PIP3R in component I_IP3R (picoampere_per_millimolar). * ALGEBRAIC[39] is kco in component I_IP3R (first_order_rate_constant). * CONSTANTS[33] is koi in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[40] is kic in component I_IP3R (first_order_rate_constant). * CONSTANTS[34] is kci in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[68] is SC_0 in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[71] is SC_3 in component I_IP3R (dimensionless). * ALGEBRAIC[70] is SC_2 in component I_IP3R (dimensionless). * ALGEBRAIC[69] is SC_1 in component I_IP3R (first_order_rate_constant). * STATES[10] is m in component I_IP3R (dimensionless). * STATES[11] is h in component I_IP3R (dimensionless). * ALGEBRAIC[84] is m_original in component I_IP3R (dimensionless). * ALGEBRAIC[85] is h_original in component I_IP3R (dimensionless). * ALGEBRAIC[78] is stO in component I_IP3R (dimensionless). * ALGEBRAIC[80] is stA in component I_IP3R (dimensionless). * ALGEBRAIC[79] is ndO in component I_IP3R (dimensionless). * ALGEBRAIC[81] is ndA in component I_IP3R (dimensionless). * ALGEBRAIC[43] is OrgO_N4 in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[44] is OrgA_N4 in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[47] is state_c1 in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[48] is state_c2 in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[49] is state_c3 in component I_IP3R (first_order_rate_constant). * CONSTANTS[47] is state_d1 in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[50] is state_d2 in component I_IP3R (first_order_rate_constant). * CONSTANTS[48] is state_d3 in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[45] is state_bf in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[46] is state_sbf in component I_IP3R (per_millisecond2). * CONSTANTS[41] is kab in component I_IP3R (first_order_rate_constant). * CONSTANTS[44] is kba in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[41] is kbc in component I_IP3R (first_order_rate_constant). * CONSTANTS[45] is kcb in component I_IP3R (first_order_rate_constant). * CONSTANTS[46] is kac in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[42] is kca in component I_IP3R (first_order_rate_constant). * CONSTANTS[35] is dt in component I_IP3R (millisecond). * CONSTANTS[36] is dt_CellML in component I_IP3R (millisecond). * STATES[12] is IP3 in component IP3_metabolism (millimolar). * CONSTANTS[49] is Vup in component model_parameters (micrometre3). * CONSTANTS[50] is Vrel in component model_parameters (micrometre3). * STATES[13] is PIP2 in component IP3_metabolism (millimolar). * ALGEBRAIC[51] is PIP2_IP3 in component IP3_metabolism (first_order_rate_constant). * ALGEBRAIC[52] is IP3_PIP2 in component IP3_metabolism (first_order_rate_constant). * CONSTANTS[37] is IP3_IP4 in component IP3_metabolism (first_order_rate_constant). * CONSTANTS[38] is PIP2_IP4 in component IP3_metabolism (first_order_rate_constant). * ALGEBRAIC[53] is IP4_PIP2 in component IP3_metabolism (first_order_rate_constant). * CONSTANTS[39] is IP3total in component IP3_metabolism (millimolar). * CONSTANTS[40] is Km_Ca_i in component IP3_metabolism (millimolar). * RATES[0] is d/dt Vm in component membrane (millivolt). * RATES[1] is d/dt Na_i in component internal_ion_concentrations (millimolar). * RATES[2] is d/dt K_i in component internal_ion_concentrations (millimolar). * RATES[3] is d/dt Cai_A in component internal_ion_concentrations (millimolar). * RATES[4] is d/dt m in component I_CaL_m_gate (dimensionless). * RATES[5] is d/dt h in component I_CaL_h_gate (dimensionless). * RATES[6] is d/dt y in component I_NaCa_y_gate (dimensionless). * RATES[8] is d/dt y in component I_up_y_gate (dimensionless). * RATES[10] is d/dt m in component I_IP3R (dimensionless). * RATES[11] is d/dt h in component I_IP3R (dimensionless). * RATES[7] is d/dt Ca_up in component calcium_concentrations_in_the_SR (millimolar). * RATES[9] is d/dt Ca_rel in component calcium_concentrations_in_the_SR (millimolar). * RATES[12] is d/dt IP3 in component IP3_metabolism (millimolar). * RATES[13] is d/dt PIP2 in component IP3_metabolism (millimolar). * There are a total of 1 condition variables. */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { STATES[0] = -68.0; CONSTANTS[0] = 0.0; CONSTANTS[1] = 25.0; STATES[1] = 5.4; STATES[2] = 140.0; STATES[3] = 0.0035; CONSTANTS[2] = 715.5; CONSTANTS[3] = 309.15; CONSTANTS[4] = 8.314; CONSTANTS[5] = 96.485; CONSTANTS[6] = 140.0; CONSTANTS[7] = 5.4; CONSTANTS[8] = 1.8; CONSTANTS[9] = 1.0; CONSTANTS[10] = 1.0; CONSTANTS[11] = 2.0; CONSTANTS[12] = 4.32; CONSTANTS[13] = 5.76; STATES[4] = 0.0; STATES[5] = 0.0; CONSTANTS[14] = 7.92; CONSTANTS[15] = 15.61; CONSTANTS[16] = 0.003; CONSTANTS[17] = 8.458; CONSTANTS[18] = 670.0; CONSTANTS[19] = 670000.0; CONSTANTS[20] = 0.00138; CONSTANTS[21] = 1.38; STATES[6] = 0.9459136; CONSTANTS[22] = 79.0; CONSTANTS[23] = 11.0; CONSTANTS[24] = 0.27; CONSTANTS[25] = 927.4; CONSTANTS[26] = 0.008; CONSTANTS[27] = 7728.0; CONSTANTS[28] = 0.08; CONSTANTS[29] = 0.002; STATES[7] = 4.6; STATES[8] = 0.1; CONSTANTS[30] = 20.5; STATES[9] = 13.1; CONSTANTS[31] = 0.45; CONSTANTS[32] = 217.2; CONSTANTS[33] = 0.02; CONSTANTS[34] = 0.000849; STATES[10] = 0.0; STATES[11] = 1.0; CONSTANTS[35] = 0.2; CONSTANTS[36] = 0.01; STATES[12] = 0.0002682; STATES[13] = 0.002664; CONSTANTS[37] = 0.004; CONSTANTS[38] = 0.00; CONSTANTS[39] = 0.0033; CONSTANTS[40] = 0.00001; CONSTANTS[41] = CONSTANTS[33]; CONSTANTS[42] = 1.00000/(1.00000+(1.00000+CONSTANTS[8]/CONSTANTS[21])/(pow(CONSTANTS[6], 3.00000)/CONSTANTS[19])); CONSTANTS[43] = 1.00000/(1.00000+(1.00000+pow(CONSTANTS[6], 3.00000)/CONSTANTS[19])/(CONSTANTS[8]/CONSTANTS[21])); CONSTANTS[44] = 0.00000; CONSTANTS[45] = CONSTANTS[34]; CONSTANTS[46] = 0.00000; CONSTANTS[47] = - (CONSTANTS[44]+CONSTANTS[41]+CONSTANTS[46]); CONSTANTS[48] = CONSTANTS[44]; CONSTANTS[49] = 0.100000*CONSTANTS[2]; CONSTANTS[50] = 0.0100000*CONSTANTS[2]; RATES[0] = 0.1001; RATES[1] = 0.1001; RATES[2] = 0.1001; RATES[3] = 0.1001; RATES[4] = 0.1001; RATES[5] = 0.1001; RATES[6] = 0.1001; RATES[8] = 0.1001; RATES[10] = 0.1001; RATES[11] = 0.1001; RATES[7] = 0.1001; RATES[9] = 0.1001; RATES[12] = 0.1001; RATES[13] = 0.1001; } void computeResiduals(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES, double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS) { resid[0] = RATES[0] - - (ALGEBRAIC[86]+CONSTANTS[0])/CONSTANTS[1]; resid[1] = RATES[1] - - ALGEBRAIC[72]/( CONSTANTS[9]*CONSTANTS[5]*CONSTANTS[2]); resid[2] = RATES[2] - - ALGEBRAIC[87]/( CONSTANTS[10]*CONSTANTS[5]*CONSTANTS[2]); resid[3] = RATES[3] - - ((ALGEBRAIC[82]+ALGEBRAIC[67]) - (ALGEBRAIC[38]+ALGEBRAIC[37]))/( CONSTANTS[11]*CONSTANTS[5]*CONSTANTS[2]); resid[4] = RATES[4] - ALGEBRAIC[13]*(1.00000 - STATES[4]) - ALGEBRAIC[14]*STATES[4]; resid[5] = RATES[5] - ALGEBRAIC[15]*(1.00000 - STATES[5]) - ALGEBRAIC[16]*STATES[5]; resid[6] = RATES[6] - ALGEBRAIC[65]*(1.00000 - STATES[6]) - ALGEBRAIC[66]*STATES[6]; resid[7] = RATES[8] - ALGEBRAIC[34]*(1.00000 - STATES[8]) - ALGEBRAIC[35]*STATES[8]; resid[8] = RATES[10] - (ALGEBRAIC[84] - STATES[10])/CONSTANTS[36]; resid[9] = RATES[11] - (ALGEBRAIC[85] - STATES[11])/CONSTANTS[36]; resid[10] = RATES[7] - (ALGEBRAIC[67] - (ALGEBRAIC[36]+ALGEBRAIC[37]))/( CONSTANTS[11]*CONSTANTS[49]*CONSTANTS[5]); resid[11] = RATES[9] - (ALGEBRAIC[36] - ALGEBRAIC[38])/( CONSTANTS[11]*CONSTANTS[50]*CONSTANTS[5]); resid[12] = RATES[12] - ALGEBRAIC[51]*STATES[13] - (ALGEBRAIC[52]+CONSTANTS[37])*STATES[12]; resid[13] = RATES[13] - ( ALGEBRAIC[52]*STATES[12]+ ALGEBRAIC[53]*(CONSTANTS[39] - (STATES[12]+STATES[13]))) - (CONSTANTS[38]+ALGEBRAIC[51])*STATES[13]; } 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[13] = (STATES[0]==-30.0000 ? 0.00217500*((STATES[0]+30.0000)/(1.00000 - exp((STATES[0]+30.0000)/- 2.50000))) : 0.00418927); ALGEBRAIC[14] = (STATES[0]==0.00000 ? 0.00157896 : 0.000631500*(STATES[0]/(exp(STATES[0]/2.50000) - 1.00000))); ALGEBRAIC[15] = (STATES[0]==-34.0000 ? 1.00010e-05 : 1.77500e-06*((STATES[0]+34.0000)/(exp((STATES[0]+34.0000)/5.63300) - 1.00000))); ALGEBRAIC[0] = (CONDVAR[0]<=0.00000 ? 1.00000e-12 : STATES[3]); ALGEBRAIC[16] = 0.427000*ALGEBRAIC[0]*((STATES[0]+64.0000)/(exp((STATES[0]+44.0000)/- 4.16000)+1.00000)); ALGEBRAIC[33] = 0.0100000/(1.00000+ALGEBRAIC[0]/CONSTANTS[29]); ALGEBRAIC[31] = 1.00000/(1.00000+CONSTANTS[29]/ALGEBRAIC[0]); ALGEBRAIC[34] = ALGEBRAIC[31]+ALGEBRAIC[33]; ALGEBRAIC[32] = 1.00000/(1.00000+STATES[7]/CONSTANTS[28]); ALGEBRAIC[30] = 0.0100000/(1.00000+CONSTANTS[28]/STATES[7]); ALGEBRAIC[35] = ALGEBRAIC[30]+ALGEBRAIC[32]; ALGEBRAIC[36] = 2.80000*CONSTANTS[30]*(STATES[7] - STATES[9]); ALGEBRAIC[37] = CONSTANTS[31]*(STATES[7] - ALGEBRAIC[0]); ALGEBRAIC[38] = CONSTANTS[32]*(STATES[9] - ALGEBRAIC[0])*STATES[10]; ALGEBRAIC[51] = 0.200000*exp((STATES[0]+48.5000)/18.1000)*(ALGEBRAIC[0]/(ALGEBRAIC[0]+CONSTANTS[40])); ALGEBRAIC[52] = 0.500000*exp((STATES[0]+100.000)/-28.5000); ALGEBRAIC[53] = 0.00350000*exp((STATES[0]+100.000)/-25.5000); ALGEBRAIC[27] = CONSTANTS[42]*exp( (0.320000 - 1.00000)*(STATES[0]/(( CONSTANTS[4]*CONSTANTS[3])/CONSTANTS[5]))); ALGEBRAIC[65] = 1.00000*(ALGEBRAIC[27]+CONSTANTS[43]); ALGEBRAIC[25] = 1.00000/(1.00000+(1.00000+pow(STATES[1], 3.00000)/CONSTANTS[18])/(ALGEBRAIC[0]/CONSTANTS[20])); ALGEBRAIC[24] = 1.00000/(1.00000+(1.00000+ALGEBRAIC[0]/CONSTANTS[20])/(pow(STATES[1], 3.00000)/CONSTANTS[18])); ALGEBRAIC[26] = ALGEBRAIC[24]*exp( 0.320000*(STATES[0]/(( CONSTANTS[4]*CONSTANTS[3])/CONSTANTS[5]))); ALGEBRAIC[66] = 1.00000*(ALGEBRAIC[26]+ALGEBRAIC[25]); ALGEBRAIC[67] = 1.50000*CONSTANTS[27]*( ALGEBRAIC[31]*(1.00000 - STATES[8]) - ALGEBRAIC[30]*STATES[8]); ALGEBRAIC[64] = CONSTANTS[17]*( ALGEBRAIC[26]*STATES[6] - ALGEBRAIC[27]*(1.00000 - STATES[6])); ALGEBRAIC[28] = (CONSTANTS[22]/(1.00000+pow(CONSTANTS[23]/STATES[1], 1.36000)))*((1.00000 - pow((STATES[0]+50.0000)/250.000, 2.00000))/(1.00000+CONSTANTS[24]/CONSTANTS[7])); ALGEBRAIC[1] = (( CONSTANTS[9]*CONSTANTS[5]*STATES[0])/( CONSTANTS[4]*CONSTANTS[3]))*((STATES[1] - CONSTANTS[6]*exp(( - CONSTANTS[9]*CONSTANTS[5]*STATES[0])/( CONSTANTS[4]*CONSTANTS[3])))/(1.00000 - exp(( - CONSTANTS[9]*CONSTANTS[5]*STATES[0])/( CONSTANTS[4]*CONSTANTS[3])))); ALGEBRAIC[12] = 5.00000e-05*CONSTANTS[13]*ALGEBRAIC[1]*STATES[4]*STATES[5]; ALGEBRAIC[23] = 0.00170000+(1.00000 - 0.00170000)/(1.00000+CONSTANTS[16]/ALGEBRAIC[0]); ALGEBRAIC[63] = 0.400000*CONSTANTS[15]*ALGEBRAIC[1]*ALGEBRAIC[23]; ALGEBRAIC[72] = ALGEBRAIC[12]+ALGEBRAIC[63]+ 3.00000*ALGEBRAIC[28]+ 3.00000*ALGEBRAIC[64]; ALGEBRAIC[3] = (( CONSTANTS[11]*CONSTANTS[5]*STATES[0])/( CONSTANTS[4]*CONSTANTS[3]))*((ALGEBRAIC[0] - CONSTANTS[8]*exp(( - CONSTANTS[11]*CONSTANTS[5]*STATES[0])/( CONSTANTS[4]*CONSTANTS[3])))/(1.00000 - exp(( - CONSTANTS[11]*CONSTANTS[5]*STATES[0])/( CONSTANTS[4]*CONSTANTS[3])))); ALGEBRAIC[17] = 1.00000/(1.00000+exp(- (STATES[0]+23.0000)/6.10000)); ALGEBRAIC[18] = (4.43000 - 0.660000)*exp(- pow(STATES[0]+150.000, 2.00000)/7118.00)+0.660000; ALGEBRAIC[57] = ALGEBRAIC[17]/(ALGEBRAIC[18]+pow(10.0000, -20.0000)); ALGEBRAIC[19] = (1.00000 - ALGEBRAIC[17])/(ALGEBRAIC[18]+pow(10.0000, -20.0000)); ALGEBRAIC[58] = ALGEBRAIC[57]/(ALGEBRAIC[57]+ALGEBRAIC[19]); ALGEBRAIC[20] = 1.00000/(1.00000+exp(- (STATES[0]+75.0000)/- 6.60000)); ALGEBRAIC[21] = (40.8000 - 0.840000)*exp(- pow(STATES[0]+106.000, 2.00000)/2292.00)+0.840000; ALGEBRAIC[59] = ALGEBRAIC[20]/(ALGEBRAIC[21]+pow(10.0000, -20.0000)); ALGEBRAIC[22] = (1.00000 - ALGEBRAIC[20])/(ALGEBRAIC[21]+pow(10.0000, -20.0000)); ALGEBRAIC[60] = ALGEBRAIC[59]/(ALGEBRAIC[59]+ALGEBRAIC[22]); ALGEBRAIC[76] = CONSTANTS[14]*ALGEBRAIC[3]*ALGEBRAIC[58]*ALGEBRAIC[60]; ALGEBRAIC[29] = CONSTANTS[25]/(1.00000+pow(CONSTANTS[26]/ALGEBRAIC[0], 2.00000)); ALGEBRAIC[10] = CONSTANTS[13]*ALGEBRAIC[3]*STATES[4]*STATES[5]; ALGEBRAIC[61] = CONSTANTS[15]*ALGEBRAIC[3]*ALGEBRAIC[23]; ALGEBRAIC[82] = (ALGEBRAIC[10]+ALGEBRAIC[76]+ALGEBRAIC[61]+ALGEBRAIC[29]) - 2.00000*ALGEBRAIC[64]; ALGEBRAIC[40] = 0.0250000*pow(STATES[12]/0.00100000, 3.00000)*(STATES[9]/1.00000); ALGEBRAIC[41] = ALGEBRAIC[40]; ALGEBRAIC[39] = 0.147000*pow(ALGEBRAIC[0]/5.70000e-05, 3.00000); ALGEBRAIC[42] = ALGEBRAIC[39]; ALGEBRAIC[45] = CONSTANTS[41]+CONSTANTS[44]+CONSTANTS[46]+ALGEBRAIC[42]+ALGEBRAIC[41]+CONSTANTS[45]; ALGEBRAIC[46] = pow(ALGEBRAIC[45], 2.00000) - 4.00000*( (ALGEBRAIC[41]+CONSTANTS[45]+ALGEBRAIC[42])*(CONSTANTS[44]+CONSTANTS[41]+CONSTANTS[46]) - (CONSTANTS[46] - ALGEBRAIC[41])*(ALGEBRAIC[42]+CONSTANTS[44])); ALGEBRAIC[68] = (ALGEBRAIC[45]+pow(fabs(ALGEBRAIC[46]), 0.500000))/2.00000; ALGEBRAIC[47] = CONSTANTS[46] - ALGEBRAIC[41]; ALGEBRAIC[48] = - (ALGEBRAIC[41]+CONSTANTS[45]+ALGEBRAIC[42]); ALGEBRAIC[49] = ALGEBRAIC[41]; ALGEBRAIC[50] = ALGEBRAIC[42] - CONSTANTS[44]; ALGEBRAIC[70] = ( ALGEBRAIC[48]*CONSTANTS[48] - ALGEBRAIC[49]*ALGEBRAIC[50])/( ALGEBRAIC[47]*ALGEBRAIC[50] - ALGEBRAIC[48]*CONSTANTS[47]); ALGEBRAIC[69] = (ALGEBRAIC[45] - pow(fabs(ALGEBRAIC[46]), 0.500000))/2.00000; ALGEBRAIC[43] = ALGEBRAIC[39]*STATES[11] - CONSTANTS[33]*STATES[10]; ALGEBRAIC[78] = ((ALGEBRAIC[43]+ ALGEBRAIC[69]*STATES[10]) - ALGEBRAIC[70]*ALGEBRAIC[69])/(ALGEBRAIC[69] - ALGEBRAIC[68]); ALGEBRAIC[79] = ((ALGEBRAIC[43]+ ALGEBRAIC[68]*STATES[10]) - ALGEBRAIC[70]*ALGEBRAIC[68])/(ALGEBRAIC[68] - ALGEBRAIC[69]); ALGEBRAIC[84] = ALGEBRAIC[78]*exp( - ALGEBRAIC[68]*CONSTANTS[35])+ ALGEBRAIC[79]*exp( - ALGEBRAIC[69]*CONSTANTS[35])+ALGEBRAIC[70]; ALGEBRAIC[71] = ( ALGEBRAIC[47]*CONSTANTS[48] - ALGEBRAIC[49]*CONSTANTS[47])/( ALGEBRAIC[48]*CONSTANTS[47] - ALGEBRAIC[47]*ALGEBRAIC[50]); ALGEBRAIC[44] = ALGEBRAIC[40]*(1.00000 - (STATES[11]+STATES[10])) - (CONSTANTS[34]+ALGEBRAIC[39])*STATES[11]; ALGEBRAIC[80] = ((ALGEBRAIC[44]+ ALGEBRAIC[69]*STATES[11]) - ALGEBRAIC[71]*ALGEBRAIC[69])/(ALGEBRAIC[69] - ALGEBRAIC[68]); ALGEBRAIC[81] = ((ALGEBRAIC[44]+ ALGEBRAIC[68]*STATES[11]) - ALGEBRAIC[71]*ALGEBRAIC[68])/(ALGEBRAIC[68] - ALGEBRAIC[69]); ALGEBRAIC[85] = ALGEBRAIC[80]*exp( - ALGEBRAIC[68]*CONSTANTS[35])+ ALGEBRAIC[81]*exp( - ALGEBRAIC[69]*CONSTANTS[35])+ALGEBRAIC[71]; ALGEBRAIC[4] = (( CONSTANTS[4]*CONSTANTS[3])/( 1.00000*CONSTANTS[5]))*log(CONSTANTS[7]/STATES[2]); ALGEBRAIC[5] = 3.30000*exp((STATES[0] - (ALGEBRAIC[4]+6.00000))/15.0000); ALGEBRAIC[6] = 26.0000*exp((STATES[0] - (ALGEBRAIC[4]+6.00000))/52.0000); ALGEBRAIC[54] = ALGEBRAIC[5]/(ALGEBRAIC[5]+ALGEBRAIC[6]); ALGEBRAIC[7] = 1.00000/(1.00000+ 0.100000*exp((STATES[0] - ALGEBRAIC[4])/15.0000)+ 0.0480000*exp((STATES[0] - ALGEBRAIC[4])/7.00000)); ALGEBRAIC[8] = 2.50000/( 4.70000*exp((STATES[0] - ALGEBRAIC[4])/28.7000)); ALGEBRAIC[9] = 2.50000/( 6.00000*exp((ALGEBRAIC[4] - STATES[0])/25.8000)); ALGEBRAIC[55] = ALGEBRAIC[8]+ALGEBRAIC[9]; ALGEBRAIC[73] = ALGEBRAIC[7]*ALGEBRAIC[55]; ALGEBRAIC[74] = ALGEBRAIC[55] - ALGEBRAIC[73]; ALGEBRAIC[75] = ALGEBRAIC[73]/( (ALGEBRAIC[73]+ALGEBRAIC[74])*pow(1.00000 - ALGEBRAIC[54], 3.00000)); ALGEBRAIC[83] = CONSTANTS[12]*pow(CONSTANTS[7]/5.40000, 0.620000)*(STATES[0] - ALGEBRAIC[4])*ALGEBRAIC[75]*ALGEBRAIC[54]; ALGEBRAIC[2] = (( CONSTANTS[10]*CONSTANTS[5]*STATES[0])/( CONSTANTS[4]*CONSTANTS[3]))*((STATES[2] - CONSTANTS[7]*exp(( - CONSTANTS[10]*CONSTANTS[5]*STATES[0])/( CONSTANTS[4]*CONSTANTS[3])))/(1.00000 - exp(( - CONSTANTS[10]*CONSTANTS[5]*STATES[0])/( CONSTANTS[4]*CONSTANTS[3])))); ALGEBRAIC[11] = 0.00100000*CONSTANTS[13]*ALGEBRAIC[2]*STATES[4]*STATES[5]; ALGEBRAIC[56] = ALGEBRAIC[10]+ALGEBRAIC[11]+ALGEBRAIC[12]; ALGEBRAIC[62] = 0.360000*CONSTANTS[15]*ALGEBRAIC[2]*ALGEBRAIC[23]; ALGEBRAIC[77] = ALGEBRAIC[61]+ALGEBRAIC[62]+ALGEBRAIC[63]; ALGEBRAIC[86] = ALGEBRAIC[64]+ALGEBRAIC[28]+ALGEBRAIC[29]+ALGEBRAIC[76]+ALGEBRAIC[77]+ALGEBRAIC[83]+ALGEBRAIC[56]; ALGEBRAIC[87] = (ALGEBRAIC[83]+ALGEBRAIC[11]+ALGEBRAIC[62]) - 2.00000*ALGEBRAIC[28]; } 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; SI[13] = 1.0; } void computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES, double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS) { CONDVAR[0] = STATES[3] - 0.00000; }