Generated Code
The following is c 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[76] 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[36] is I_Ki in component I_Ki (picoampere). * ALGEBRAIC[48] is I_CaL in component I_CaL (picoampere). * ALGEBRAIC[59] is I_VDDR in component I_VDDR (picoampere). * ALGEBRAIC[64] is I_AI in component I_AI (picoampere). * ALGEBRAIC[70] is I_NaCa in component I_NaCa (picoampere). * ALGEBRAIC[72] is I_NaK in component I_NaK (picoampere). * ALGEBRAIC[73] 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[2] is Na_CF in component internal_ion_concentrations (millimolar). * ALGEBRAIC[7] is K_CF in component internal_ion_concentrations (millimolar). * ALGEBRAIC[11] is Ca_CF in component internal_ion_concentrations (millimolar). * ALGEBRAIC[74] is Inet_Na in component internal_ion_concentrations (picoampere). * ALGEBRAIC[75] is Inet_K in component internal_ion_concentrations (picoampere). * ALGEBRAIC[77] is Inet_Ca in component internal_ion_concentrations (picoampere). * STATES[3] is Cai_A in component internal_ion_concentrations (millimolar). * ALGEBRAIC[45] is I_CaL_Na in component I_CaL (picoampere). * ALGEBRAIC[42] is I_CaL_K in component I_CaL (picoampere). * ALGEBRAIC[39] 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[86] is I_IP3R in component I_IP3R (picoampere). * ALGEBRAIC[80] is I_up in component I_up (picoampere). * ALGEBRAIC[84] 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[20] is fU in component I_Ki (dimensionless). * ALGEBRAIC[14] is E_K in component I_Ki (millivolt). * CONSTANTS[12] is g_Ki in component I_Ki (picoampere_per_millivolt). * ALGEBRAIC[16] is mu in component I_Ki (dimensionless). * ALGEBRAIC[18] is lambda in component I_Ki (dimensionless). * ALGEBRAIC[34] is n in component I_Ki_n_gate (dimensionless). * ALGEBRAIC[22] is n_1 in component I_Ki_n_gate (dimensionless). * ALGEBRAIC[30] is n_2 in component I_Ki_n_gate (dimensionless). * ALGEBRAIC[32] is n_3 in component I_Ki_n_gate (dimensionless). * ALGEBRAIC[24] is a in component I_Ki_n_gate (dimensionless). * ALGEBRAIC[26] is b in component I_Ki_n_gate (dimensionless). * ALGEBRAIC[28] 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[1] is alpha_m in component I_CaL_m_gate (first_order_rate_constant). * ALGEBRAIC[3] is beta_m in component I_CaL_m_gate (first_order_rate_constant). * ALGEBRAIC[4] is alpha_h in component I_CaL_h_gate (first_order_rate_constant). * ALGEBRAIC[8] 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[53] is m in component I_VDDR_m_gate (dimensionless). * ALGEBRAIC[58] is h in component I_VDDR_h_gate (dimensionless). * ALGEBRAIC[51] is alpha_m in component I_VDDR_m_gate (first_order_rate_constant). * ALGEBRAIC[52] is beta_m in component I_VDDR_m_gate (first_order_rate_constant). * ALGEBRAIC[49] is m2 in component I_VDDR_m_gate (first_order_rate_constant). * ALGEBRAIC[50] is m3 in component I_VDDR_m_gate (dimensionless). * ALGEBRAIC[56] is alpha_h in component I_VDDR_h_gate (first_order_rate_constant). * ALGEBRAIC[57] is beta_h in component I_VDDR_h_gate (first_order_rate_constant). * ALGEBRAIC[54] is h2 in component I_VDDR_h_gate (first_order_rate_constant). * ALGEBRAIC[55] is h3 in component I_VDDR_h_gate (dimensionless). * ALGEBRAIC[60] 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[65] is p_E1Na in component I_NaCa (dimensionless). * ALGEBRAIC[66] 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[67] is m in component I_NaCa_y_gate (dimensionless). * ALGEBRAIC[69] is h in component I_NaCa_y_gate (dimensionless). * ALGEBRAIC[71] is alpha_y in component I_NaCa_y_gate (first_order_rate_constant). * ALGEBRAIC[68] 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[83] is p_E2 in component I_up (first_order_rate_constant). * ALGEBRAIC[81] is p_E1 in component I_up (first_order_rate_constant). * ALGEBRAIC[78] is p_E1Ca in component I_up (first_order_rate_constant). * ALGEBRAIC[79] 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[85] is alpha_y in component I_up_y_gate (first_order_rate_constant). * ALGEBRAIC[87] is beta_y in component I_up_y_gate (first_order_rate_constant). * ALGEBRAIC[82] 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[5] is kco in component I_IP3R (first_order_rate_constant). * CONSTANTS[33] is koi in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[9] is kic in component I_IP3R (first_order_rate_constant). * CONSTANTS[34] is kci in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[25] is SC_0 in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[38] is SC_3 in component I_IP3R (dimensionless). * ALGEBRAIC[37] is SC_2 in component I_IP3R (dimensionless). * ALGEBRAIC[27] 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[46] is m_original in component I_IP3R (dimensionless). * ALGEBRAIC[47] is h_original in component I_IP3R (dimensionless). * ALGEBRAIC[40] is stO in component I_IP3R (dimensionless). * ALGEBRAIC[41] is stA in component I_IP3R (dimensionless). * ALGEBRAIC[43] is ndO in component I_IP3R (dimensionless). * ALGEBRAIC[44] is ndA in component I_IP3R (dimensionless). * ALGEBRAIC[17] is OrgO_N4 in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[19] is OrgA_N4 in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[29] is state_c1 in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[31] is state_c2 in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[33] 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[35] 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[21] is state_bf in component I_IP3R (first_order_rate_constant). * ALGEBRAIC[23] 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[12] 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[15] 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[6] is PIP2_IP3 in component IP3_metabolism (first_order_rate_constant). * ALGEBRAIC[10] 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[13] 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). */ 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]; } void computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[1] = (STATES[0]==-30.0000 ? 0.00217500*((STATES[0]+30.0000)/(1.00000 - exp((STATES[0]+30.0000)/- 2.50000))) : 0.00418927); ALGEBRAIC[3] = (STATES[0]==0.00000 ? 0.00157896 : 0.000631500*(STATES[0]/(exp(STATES[0]/2.50000) - 1.00000))); RATES[4] = ALGEBRAIC[1]*(1.00000 - STATES[4]) - ALGEBRAIC[3]*STATES[4]; ALGEBRAIC[4] = (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] = (STATES[3]<=0.00000 ? 1.00000e-12 : STATES[3]); ALGEBRAIC[8] = 0.427000*ALGEBRAIC[0]*((STATES[0]+64.0000)/(exp((STATES[0]+44.0000)/- 4.16000)+1.00000)); RATES[5] = ALGEBRAIC[4]*(1.00000 - STATES[5]) - ALGEBRAIC[8]*STATES[5]; ALGEBRAIC[6] = 0.200000*exp((STATES[0]+48.5000)/18.1000)*(ALGEBRAIC[0]/(ALGEBRAIC[0]+CONSTANTS[40])); ALGEBRAIC[10] = 0.500000*exp((STATES[0]+100.000)/-28.5000); RATES[12] = ALGEBRAIC[6]*STATES[13] - (ALGEBRAIC[10]+CONSTANTS[37])*STATES[12]; ALGEBRAIC[13] = 0.00350000*exp((STATES[0]+100.000)/-25.5000); RATES[13] = ( ALGEBRAIC[10]*STATES[12]+ ALGEBRAIC[13]*(CONSTANTS[39] - (STATES[12]+STATES[13]))) - (CONSTANTS[38]+ALGEBRAIC[6])*STATES[13]; ALGEBRAIC[9] = 0.0250000*pow(STATES[12]/0.00100000, 3.00000)*(STATES[9]/1.00000); ALGEBRAIC[12] = ALGEBRAIC[9]; ALGEBRAIC[5] = 0.147000*pow(ALGEBRAIC[0]/5.70000e-05, 3.00000); ALGEBRAIC[15] = ALGEBRAIC[5]; ALGEBRAIC[21] = CONSTANTS[41]+CONSTANTS[44]+CONSTANTS[46]+ALGEBRAIC[15]+ALGEBRAIC[12]+CONSTANTS[45]; ALGEBRAIC[23] = pow(ALGEBRAIC[21], 2.00000) - 4.00000*( (ALGEBRAIC[12]+CONSTANTS[45]+ALGEBRAIC[15])*(CONSTANTS[44]+CONSTANTS[41]+CONSTANTS[46]) - (CONSTANTS[46] - ALGEBRAIC[12])*(ALGEBRAIC[15]+CONSTANTS[44])); ALGEBRAIC[25] = (ALGEBRAIC[21]+pow(fabs(ALGEBRAIC[23]), 0.500000))/2.00000; ALGEBRAIC[29] = CONSTANTS[46] - ALGEBRAIC[12]; ALGEBRAIC[31] = - (ALGEBRAIC[12]+CONSTANTS[45]+ALGEBRAIC[15]); ALGEBRAIC[33] = ALGEBRAIC[12]; ALGEBRAIC[35] = ALGEBRAIC[15] - CONSTANTS[44]; ALGEBRAIC[37] = ( ALGEBRAIC[31]*CONSTANTS[48] - ALGEBRAIC[33]*ALGEBRAIC[35])/( ALGEBRAIC[29]*ALGEBRAIC[35] - ALGEBRAIC[31]*CONSTANTS[47]); ALGEBRAIC[27] = (ALGEBRAIC[21] - pow(fabs(ALGEBRAIC[23]), 0.500000))/2.00000; ALGEBRAIC[17] = ALGEBRAIC[5]*STATES[11] - CONSTANTS[33]*STATES[10]; ALGEBRAIC[40] = ((ALGEBRAIC[17]+ ALGEBRAIC[27]*STATES[10]) - ALGEBRAIC[37]*ALGEBRAIC[27])/(ALGEBRAIC[27] - ALGEBRAIC[25]); ALGEBRAIC[43] = ((ALGEBRAIC[17]+ ALGEBRAIC[25]*STATES[10]) - ALGEBRAIC[37]*ALGEBRAIC[25])/(ALGEBRAIC[25] - ALGEBRAIC[27]); ALGEBRAIC[46] = ALGEBRAIC[40]*exp( - ALGEBRAIC[25]*CONSTANTS[35])+ ALGEBRAIC[43]*exp( - ALGEBRAIC[27]*CONSTANTS[35])+ALGEBRAIC[37]; RATES[10] = (ALGEBRAIC[46] - STATES[10])/CONSTANTS[36]; ALGEBRAIC[38] = ( ALGEBRAIC[29]*CONSTANTS[48] - ALGEBRAIC[33]*CONSTANTS[47])/( ALGEBRAIC[31]*CONSTANTS[47] - ALGEBRAIC[29]*ALGEBRAIC[35]); ALGEBRAIC[19] = ALGEBRAIC[9]*(1.00000 - (STATES[11]+STATES[10])) - (CONSTANTS[34]+ALGEBRAIC[5])*STATES[11]; ALGEBRAIC[41] = ((ALGEBRAIC[19]+ ALGEBRAIC[27]*STATES[11]) - ALGEBRAIC[38]*ALGEBRAIC[27])/(ALGEBRAIC[27] - ALGEBRAIC[25]); ALGEBRAIC[44] = ((ALGEBRAIC[19]+ ALGEBRAIC[25]*STATES[11]) - ALGEBRAIC[38]*ALGEBRAIC[25])/(ALGEBRAIC[25] - ALGEBRAIC[27]); ALGEBRAIC[47] = ALGEBRAIC[41]*exp( - ALGEBRAIC[25]*CONSTANTS[35])+ ALGEBRAIC[44]*exp( - ALGEBRAIC[27]*CONSTANTS[35])+ALGEBRAIC[38]; RATES[11] = (ALGEBRAIC[47] - STATES[11])/CONSTANTS[36]; ALGEBRAIC[69] = CONSTANTS[42]*exp( (0.320000 - 1.00000)*(STATES[0]/(( CONSTANTS[4]*CONSTANTS[3])/CONSTANTS[5]))); ALGEBRAIC[71] = 1.00000*(ALGEBRAIC[69]+CONSTANTS[43]); ALGEBRAIC[66] = 1.00000/(1.00000+(1.00000+pow(STATES[1], 3.00000)/CONSTANTS[18])/(ALGEBRAIC[0]/CONSTANTS[20])); ALGEBRAIC[65] = 1.00000/(1.00000+(1.00000+ALGEBRAIC[0]/CONSTANTS[20])/(pow(STATES[1], 3.00000)/CONSTANTS[18])); ALGEBRAIC[67] = ALGEBRAIC[65]*exp( 0.320000*(STATES[0]/(( CONSTANTS[4]*CONSTANTS[3])/CONSTANTS[5]))); ALGEBRAIC[68] = 1.00000*(ALGEBRAIC[67]+ALGEBRAIC[66]); RATES[6] = ALGEBRAIC[71]*(1.00000 - STATES[6]) - ALGEBRAIC[68]*STATES[6]; ALGEBRAIC[70] = CONSTANTS[17]*( ALGEBRAIC[67]*STATES[6] - ALGEBRAIC[69]*(1.00000 - STATES[6])); ALGEBRAIC[72] = (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[2] = (( 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[45] = 5.00000e-05*CONSTANTS[13]*ALGEBRAIC[2]*STATES[4]*STATES[5]; ALGEBRAIC[60] = 0.00170000+(1.00000 - 0.00170000)/(1.00000+CONSTANTS[16]/ALGEBRAIC[0]); ALGEBRAIC[63] = 0.400000*CONSTANTS[15]*ALGEBRAIC[2]*ALGEBRAIC[60]; ALGEBRAIC[74] = ALGEBRAIC[45]+ALGEBRAIC[63]+ 3.00000*ALGEBRAIC[72]+ 3.00000*ALGEBRAIC[70]; RATES[1] = - ALGEBRAIC[74]/( CONSTANTS[9]*CONSTANTS[5]*CONSTANTS[2]); ALGEBRAIC[14] = (( CONSTANTS[4]*CONSTANTS[3])/( 1.00000*CONSTANTS[5]))*log(CONSTANTS[7]/STATES[2]); ALGEBRAIC[16] = 3.30000*exp((STATES[0] - (ALGEBRAIC[14]+6.00000))/15.0000); ALGEBRAIC[18] = 26.0000*exp((STATES[0] - (ALGEBRAIC[14]+6.00000))/52.0000); ALGEBRAIC[20] = ALGEBRAIC[16]/(ALGEBRAIC[16]+ALGEBRAIC[18]); ALGEBRAIC[22] = 1.00000/(1.00000+ 0.100000*exp((STATES[0] - ALGEBRAIC[14])/15.0000)+ 0.0480000*exp((STATES[0] - ALGEBRAIC[14])/7.00000)); ALGEBRAIC[24] = 2.50000/( 4.70000*exp((STATES[0] - ALGEBRAIC[14])/28.7000)); ALGEBRAIC[26] = 2.50000/( 6.00000*exp((ALGEBRAIC[14] - STATES[0])/25.8000)); ALGEBRAIC[28] = ALGEBRAIC[24]+ALGEBRAIC[26]; ALGEBRAIC[30] = ALGEBRAIC[22]*ALGEBRAIC[28]; ALGEBRAIC[32] = ALGEBRAIC[28] - ALGEBRAIC[30]; ALGEBRAIC[34] = ALGEBRAIC[30]/( (ALGEBRAIC[30]+ALGEBRAIC[32])*pow(1.00000 - ALGEBRAIC[20], 3.00000)); ALGEBRAIC[36] = CONSTANTS[12]*pow(CONSTANTS[7]/5.40000, 0.620000)*(STATES[0] - ALGEBRAIC[14])*ALGEBRAIC[34]*ALGEBRAIC[20]; ALGEBRAIC[7] = (( 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[42] = 0.00100000*CONSTANTS[13]*ALGEBRAIC[7]*STATES[4]*STATES[5]; ALGEBRAIC[62] = 0.360000*CONSTANTS[15]*ALGEBRAIC[7]*ALGEBRAIC[60]; ALGEBRAIC[75] = (ALGEBRAIC[36]+ALGEBRAIC[42]+ALGEBRAIC[62]) - 2.00000*ALGEBRAIC[72]; RATES[2] = - ALGEBRAIC[75]/( CONSTANTS[10]*CONSTANTS[5]*CONSTANTS[2]); ALGEBRAIC[11] = (( 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[39] = CONSTANTS[13]*ALGEBRAIC[11]*STATES[4]*STATES[5]; ALGEBRAIC[48] = ALGEBRAIC[39]+ALGEBRAIC[42]+ALGEBRAIC[45]; ALGEBRAIC[49] = 1.00000/(1.00000+exp(- (STATES[0]+23.0000)/6.10000)); ALGEBRAIC[50] = (4.43000 - 0.660000)*exp(- pow(STATES[0]+150.000, 2.00000)/7118.00)+0.660000; ALGEBRAIC[51] = ALGEBRAIC[49]/(ALGEBRAIC[50]+pow(10.0000, -20.0000)); ALGEBRAIC[52] = (1.00000 - ALGEBRAIC[49])/(ALGEBRAIC[50]+pow(10.0000, -20.0000)); ALGEBRAIC[53] = ALGEBRAIC[51]/(ALGEBRAIC[51]+ALGEBRAIC[52]); ALGEBRAIC[54] = 1.00000/(1.00000+exp(- (STATES[0]+75.0000)/- 6.60000)); ALGEBRAIC[55] = (40.8000 - 0.840000)*exp(- pow(STATES[0]+106.000, 2.00000)/2292.00)+0.840000; ALGEBRAIC[56] = ALGEBRAIC[54]/(ALGEBRAIC[55]+pow(10.0000, -20.0000)); ALGEBRAIC[57] = (1.00000 - ALGEBRAIC[54])/(ALGEBRAIC[55]+pow(10.0000, -20.0000)); ALGEBRAIC[58] = ALGEBRAIC[56]/(ALGEBRAIC[56]+ALGEBRAIC[57]); ALGEBRAIC[59] = CONSTANTS[14]*ALGEBRAIC[11]*ALGEBRAIC[53]*ALGEBRAIC[58]; ALGEBRAIC[61] = CONSTANTS[15]*ALGEBRAIC[11]*ALGEBRAIC[60]; ALGEBRAIC[64] = ALGEBRAIC[61]+ALGEBRAIC[62]+ALGEBRAIC[63]; ALGEBRAIC[73] = CONSTANTS[25]/(1.00000+pow(CONSTANTS[26]/ALGEBRAIC[0], 2.00000)); ALGEBRAIC[76] = ALGEBRAIC[70]+ALGEBRAIC[72]+ALGEBRAIC[73]+ALGEBRAIC[59]+ALGEBRAIC[64]+ALGEBRAIC[36]+ALGEBRAIC[48]; RATES[0] = - (ALGEBRAIC[76]+CONSTANTS[0])/CONSTANTS[1]; ALGEBRAIC[78] = 0.0100000/(1.00000+CONSTANTS[28]/STATES[7]); ALGEBRAIC[79] = 1.00000/(1.00000+CONSTANTS[29]/ALGEBRAIC[0]); ALGEBRAIC[80] = 1.50000*CONSTANTS[27]*( ALGEBRAIC[79]*(1.00000 - STATES[8]) - ALGEBRAIC[78]*STATES[8]); ALGEBRAIC[84] = CONSTANTS[31]*(STATES[7] - ALGEBRAIC[0]); ALGEBRAIC[82] = 2.80000*CONSTANTS[30]*(STATES[7] - STATES[9]); RATES[7] = (ALGEBRAIC[80] - (ALGEBRAIC[82]+ALGEBRAIC[84]))/( CONSTANTS[11]*CONSTANTS[49]*CONSTANTS[5]); ALGEBRAIC[77] = (ALGEBRAIC[39]+ALGEBRAIC[59]+ALGEBRAIC[61]+ALGEBRAIC[73]) - 2.00000*ALGEBRAIC[70]; ALGEBRAIC[86] = CONSTANTS[32]*(STATES[9] - ALGEBRAIC[0])*STATES[10]; RATES[3] = - ((ALGEBRAIC[77]+ALGEBRAIC[80]) - (ALGEBRAIC[86]+ALGEBRAIC[84]))/( CONSTANTS[11]*CONSTANTS[5]*CONSTANTS[2]); ALGEBRAIC[83] = 0.0100000/(1.00000+ALGEBRAIC[0]/CONSTANTS[29]); ALGEBRAIC[85] = ALGEBRAIC[79]+ALGEBRAIC[83]; ALGEBRAIC[81] = 1.00000/(1.00000+STATES[7]/CONSTANTS[28]); ALGEBRAIC[87] = ALGEBRAIC[78]+ALGEBRAIC[81]; RATES[8] = ALGEBRAIC[85]*(1.00000 - STATES[8]) - ALGEBRAIC[87]*STATES[8]; RATES[9] = (ALGEBRAIC[82] - ALGEBRAIC[86])/( CONSTANTS[11]*CONSTANTS[50]*CONSTANTS[5]); } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[1] = (STATES[0]==-30.0000 ? 0.00217500*((STATES[0]+30.0000)/(1.00000 - exp((STATES[0]+30.0000)/- 2.50000))) : 0.00418927); ALGEBRAIC[3] = (STATES[0]==0.00000 ? 0.00157896 : 0.000631500*(STATES[0]/(exp(STATES[0]/2.50000) - 1.00000))); ALGEBRAIC[4] = (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] = (STATES[3]<=0.00000 ? 1.00000e-12 : STATES[3]); ALGEBRAIC[8] = 0.427000*ALGEBRAIC[0]*((STATES[0]+64.0000)/(exp((STATES[0]+44.0000)/- 4.16000)+1.00000)); ALGEBRAIC[6] = 0.200000*exp((STATES[0]+48.5000)/18.1000)*(ALGEBRAIC[0]/(ALGEBRAIC[0]+CONSTANTS[40])); ALGEBRAIC[10] = 0.500000*exp((STATES[0]+100.000)/-28.5000); ALGEBRAIC[13] = 0.00350000*exp((STATES[0]+100.000)/-25.5000); ALGEBRAIC[9] = 0.0250000*pow(STATES[12]/0.00100000, 3.00000)*(STATES[9]/1.00000); ALGEBRAIC[12] = ALGEBRAIC[9]; ALGEBRAIC[5] = 0.147000*pow(ALGEBRAIC[0]/5.70000e-05, 3.00000); ALGEBRAIC[15] = ALGEBRAIC[5]; ALGEBRAIC[21] = CONSTANTS[41]+CONSTANTS[44]+CONSTANTS[46]+ALGEBRAIC[15]+ALGEBRAIC[12]+CONSTANTS[45]; ALGEBRAIC[23] = pow(ALGEBRAIC[21], 2.00000) - 4.00000*( (ALGEBRAIC[12]+CONSTANTS[45]+ALGEBRAIC[15])*(CONSTANTS[44]+CONSTANTS[41]+CONSTANTS[46]) - (CONSTANTS[46] - ALGEBRAIC[12])*(ALGEBRAIC[15]+CONSTANTS[44])); ALGEBRAIC[25] = (ALGEBRAIC[21]+pow(fabs(ALGEBRAIC[23]), 0.500000))/2.00000; ALGEBRAIC[29] = CONSTANTS[46] - ALGEBRAIC[12]; ALGEBRAIC[31] = - (ALGEBRAIC[12]+CONSTANTS[45]+ALGEBRAIC[15]); ALGEBRAIC[33] = ALGEBRAIC[12]; ALGEBRAIC[35] = ALGEBRAIC[15] - CONSTANTS[44]; ALGEBRAIC[37] = ( ALGEBRAIC[31]*CONSTANTS[48] - ALGEBRAIC[33]*ALGEBRAIC[35])/( ALGEBRAIC[29]*ALGEBRAIC[35] - ALGEBRAIC[31]*CONSTANTS[47]); ALGEBRAIC[27] = (ALGEBRAIC[21] - pow(fabs(ALGEBRAIC[23]), 0.500000))/2.00000; ALGEBRAIC[17] = ALGEBRAIC[5]*STATES[11] - CONSTANTS[33]*STATES[10]; ALGEBRAIC[40] = ((ALGEBRAIC[17]+ ALGEBRAIC[27]*STATES[10]) - ALGEBRAIC[37]*ALGEBRAIC[27])/(ALGEBRAIC[27] - ALGEBRAIC[25]); ALGEBRAIC[43] = ((ALGEBRAIC[17]+ ALGEBRAIC[25]*STATES[10]) - ALGEBRAIC[37]*ALGEBRAIC[25])/(ALGEBRAIC[25] - ALGEBRAIC[27]); ALGEBRAIC[46] = ALGEBRAIC[40]*exp( - ALGEBRAIC[25]*CONSTANTS[35])+ ALGEBRAIC[43]*exp( - ALGEBRAIC[27]*CONSTANTS[35])+ALGEBRAIC[37]; ALGEBRAIC[38] = ( ALGEBRAIC[29]*CONSTANTS[48] - ALGEBRAIC[33]*CONSTANTS[47])/( ALGEBRAIC[31]*CONSTANTS[47] - ALGEBRAIC[29]*ALGEBRAIC[35]); ALGEBRAIC[19] = ALGEBRAIC[9]*(1.00000 - (STATES[11]+STATES[10])) - (CONSTANTS[34]+ALGEBRAIC[5])*STATES[11]; ALGEBRAIC[41] = ((ALGEBRAIC[19]+ ALGEBRAIC[27]*STATES[11]) - ALGEBRAIC[38]*ALGEBRAIC[27])/(ALGEBRAIC[27] - ALGEBRAIC[25]); ALGEBRAIC[44] = ((ALGEBRAIC[19]+ ALGEBRAIC[25]*STATES[11]) - ALGEBRAIC[38]*ALGEBRAIC[25])/(ALGEBRAIC[25] - ALGEBRAIC[27]); ALGEBRAIC[47] = ALGEBRAIC[41]*exp( - ALGEBRAIC[25]*CONSTANTS[35])+ ALGEBRAIC[44]*exp( - ALGEBRAIC[27]*CONSTANTS[35])+ALGEBRAIC[38]; ALGEBRAIC[69] = CONSTANTS[42]*exp( (0.320000 - 1.00000)*(STATES[0]/(( CONSTANTS[4]*CONSTANTS[3])/CONSTANTS[5]))); ALGEBRAIC[71] = 1.00000*(ALGEBRAIC[69]+CONSTANTS[43]); ALGEBRAIC[66] = 1.00000/(1.00000+(1.00000+pow(STATES[1], 3.00000)/CONSTANTS[18])/(ALGEBRAIC[0]/CONSTANTS[20])); ALGEBRAIC[65] = 1.00000/(1.00000+(1.00000+ALGEBRAIC[0]/CONSTANTS[20])/(pow(STATES[1], 3.00000)/CONSTANTS[18])); ALGEBRAIC[67] = ALGEBRAIC[65]*exp( 0.320000*(STATES[0]/(( CONSTANTS[4]*CONSTANTS[3])/CONSTANTS[5]))); ALGEBRAIC[68] = 1.00000*(ALGEBRAIC[67]+ALGEBRAIC[66]); ALGEBRAIC[70] = CONSTANTS[17]*( ALGEBRAIC[67]*STATES[6] - ALGEBRAIC[69]*(1.00000 - STATES[6])); ALGEBRAIC[72] = (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[2] = (( 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[45] = 5.00000e-05*CONSTANTS[13]*ALGEBRAIC[2]*STATES[4]*STATES[5]; ALGEBRAIC[60] = 0.00170000+(1.00000 - 0.00170000)/(1.00000+CONSTANTS[16]/ALGEBRAIC[0]); ALGEBRAIC[63] = 0.400000*CONSTANTS[15]*ALGEBRAIC[2]*ALGEBRAIC[60]; ALGEBRAIC[74] = ALGEBRAIC[45]+ALGEBRAIC[63]+ 3.00000*ALGEBRAIC[72]+ 3.00000*ALGEBRAIC[70]; ALGEBRAIC[14] = (( CONSTANTS[4]*CONSTANTS[3])/( 1.00000*CONSTANTS[5]))*log(CONSTANTS[7]/STATES[2]); ALGEBRAIC[16] = 3.30000*exp((STATES[0] - (ALGEBRAIC[14]+6.00000))/15.0000); ALGEBRAIC[18] = 26.0000*exp((STATES[0] - (ALGEBRAIC[14]+6.00000))/52.0000); ALGEBRAIC[20] = ALGEBRAIC[16]/(ALGEBRAIC[16]+ALGEBRAIC[18]); ALGEBRAIC[22] = 1.00000/(1.00000+ 0.100000*exp((STATES[0] - ALGEBRAIC[14])/15.0000)+ 0.0480000*exp((STATES[0] - ALGEBRAIC[14])/7.00000)); ALGEBRAIC[24] = 2.50000/( 4.70000*exp((STATES[0] - ALGEBRAIC[14])/28.7000)); ALGEBRAIC[26] = 2.50000/( 6.00000*exp((ALGEBRAIC[14] - STATES[0])/25.8000)); ALGEBRAIC[28] = ALGEBRAIC[24]+ALGEBRAIC[26]; ALGEBRAIC[30] = ALGEBRAIC[22]*ALGEBRAIC[28]; ALGEBRAIC[32] = ALGEBRAIC[28] - ALGEBRAIC[30]; ALGEBRAIC[34] = ALGEBRAIC[30]/( (ALGEBRAIC[30]+ALGEBRAIC[32])*pow(1.00000 - ALGEBRAIC[20], 3.00000)); ALGEBRAIC[36] = CONSTANTS[12]*pow(CONSTANTS[7]/5.40000, 0.620000)*(STATES[0] - ALGEBRAIC[14])*ALGEBRAIC[34]*ALGEBRAIC[20]; ALGEBRAIC[7] = (( 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[42] = 0.00100000*CONSTANTS[13]*ALGEBRAIC[7]*STATES[4]*STATES[5]; ALGEBRAIC[62] = 0.360000*CONSTANTS[15]*ALGEBRAIC[7]*ALGEBRAIC[60]; ALGEBRAIC[75] = (ALGEBRAIC[36]+ALGEBRAIC[42]+ALGEBRAIC[62]) - 2.00000*ALGEBRAIC[72]; ALGEBRAIC[11] = (( 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[39] = CONSTANTS[13]*ALGEBRAIC[11]*STATES[4]*STATES[5]; ALGEBRAIC[48] = ALGEBRAIC[39]+ALGEBRAIC[42]+ALGEBRAIC[45]; ALGEBRAIC[49] = 1.00000/(1.00000+exp(- (STATES[0]+23.0000)/6.10000)); ALGEBRAIC[50] = (4.43000 - 0.660000)*exp(- pow(STATES[0]+150.000, 2.00000)/7118.00)+0.660000; ALGEBRAIC[51] = ALGEBRAIC[49]/(ALGEBRAIC[50]+pow(10.0000, -20.0000)); ALGEBRAIC[52] = (1.00000 - ALGEBRAIC[49])/(ALGEBRAIC[50]+pow(10.0000, -20.0000)); ALGEBRAIC[53] = ALGEBRAIC[51]/(ALGEBRAIC[51]+ALGEBRAIC[52]); ALGEBRAIC[54] = 1.00000/(1.00000+exp(- (STATES[0]+75.0000)/- 6.60000)); ALGEBRAIC[55] = (40.8000 - 0.840000)*exp(- pow(STATES[0]+106.000, 2.00000)/2292.00)+0.840000; ALGEBRAIC[56] = ALGEBRAIC[54]/(ALGEBRAIC[55]+pow(10.0000, -20.0000)); ALGEBRAIC[57] = (1.00000 - ALGEBRAIC[54])/(ALGEBRAIC[55]+pow(10.0000, -20.0000)); ALGEBRAIC[58] = ALGEBRAIC[56]/(ALGEBRAIC[56]+ALGEBRAIC[57]); ALGEBRAIC[59] = CONSTANTS[14]*ALGEBRAIC[11]*ALGEBRAIC[53]*ALGEBRAIC[58]; ALGEBRAIC[61] = CONSTANTS[15]*ALGEBRAIC[11]*ALGEBRAIC[60]; ALGEBRAIC[64] = ALGEBRAIC[61]+ALGEBRAIC[62]+ALGEBRAIC[63]; ALGEBRAIC[73] = CONSTANTS[25]/(1.00000+pow(CONSTANTS[26]/ALGEBRAIC[0], 2.00000)); ALGEBRAIC[76] = ALGEBRAIC[70]+ALGEBRAIC[72]+ALGEBRAIC[73]+ALGEBRAIC[59]+ALGEBRAIC[64]+ALGEBRAIC[36]+ALGEBRAIC[48]; ALGEBRAIC[78] = 0.0100000/(1.00000+CONSTANTS[28]/STATES[7]); ALGEBRAIC[79] = 1.00000/(1.00000+CONSTANTS[29]/ALGEBRAIC[0]); ALGEBRAIC[80] = 1.50000*CONSTANTS[27]*( ALGEBRAIC[79]*(1.00000 - STATES[8]) - ALGEBRAIC[78]*STATES[8]); ALGEBRAIC[84] = CONSTANTS[31]*(STATES[7] - ALGEBRAIC[0]); ALGEBRAIC[82] = 2.80000*CONSTANTS[30]*(STATES[7] - STATES[9]); ALGEBRAIC[77] = (ALGEBRAIC[39]+ALGEBRAIC[59]+ALGEBRAIC[61]+ALGEBRAIC[73]) - 2.00000*ALGEBRAIC[70]; ALGEBRAIC[86] = CONSTANTS[32]*(STATES[9] - ALGEBRAIC[0])*STATES[10]; ALGEBRAIC[83] = 0.0100000/(1.00000+ALGEBRAIC[0]/CONSTANTS[29]); ALGEBRAIC[85] = ALGEBRAIC[79]+ALGEBRAIC[83]; ALGEBRAIC[81] = 1.00000/(1.00000+STATES[7]/CONSTANTS[28]); ALGEBRAIC[87] = ALGEBRAIC[78]+ALGEBRAIC[81]; }