/* There are a total of 64 entries in the algebraic variable array. There are a total of 19 entries in each of the rate and state variable arrays. There are a total of 73 entries in the constant variable array. */ /* * VOI is t in component environment (ms). * CONSTANTS[0] is R in component environment (mJ_per_mole_kelvin). * CONSTANTS[1] is T in component environment (kelvin). * CONSTANTS[2] is F in component environment (coulomb_per_mole). * CONSTANTS[64] is V_tau in component environment (mV). * CONSTANTS[3] is Ca_o in component environment (mM). * CONSTANTS[4] is Na_o in component environment (mM). * CONSTANTS[5] is K_o in component environment (mM). * CONSTANTS[6] is dia in component environment (cm). * CONSTANTS[61] is vol_cyt in component environment (pl). * CONSTANTS[57] is vol_pmu in component environment (pl). * CONSTANTS[7] is fr_cyt in component environment (dimensionless). * ALGEBRAIC[0] is V in component Membrane (mV). * ALGEBRAIC[1] is VD in component Membrane (dimensionless). * CONSTANTS[8] is C_sp in component Membrane (pF_per_sqcm). * STATES[0] is Ca_i in component Cytosol (mM). * STATES[1] is Na_i in component Cytosol (mM). * STATES[2] is K_i in component Cytosol (mM). * CONSTANTS[68] is anoff in component Membrane (mM). * ALGEBRAIC[3] is V_Ca in component Membrane (dimensionless). * ALGEBRAIC[5] is V_Na in component Membrane (dimensionless). * ALGEBRAIC[7] is V_K in component Membrane (dimensionless). * CONSTANTS[66] is A_pmu in component Membrane (sqcm). * CONSTANTS[63] is SVR_pmu in component Membrane (per_cm). * CONSTANTS[9] is svr in component Membrane (dimensionless). * CONSTANTS[69] is C_m in component Membrane (pF). * CONSTANTS[10] is atp in component Cytosol (mM). * ALGEBRAIC[63] is J_Ca in component calcium_dynamics (mM_per_ms). * ALGEBRAIC[62] is J_Na in component sodium_dynamics (mM_per_ms). * ALGEBRAIC[45] is J_K in component potassium_dynamics (mM_per_ms). * ALGEBRAIC[61] is J_ca in component calcium_dynamics (mM_per_ms). * ALGEBRAIC[20] is I_CaL in component L_type_Ca_channel (pA). * ALGEBRAIC[21] is I_CaT in component T_type_Ca_channel (pA). * ALGEBRAIC[22] is I_CaHVA in component HVA_Ca_channel (pA). * ALGEBRAIC[49] is I_pmca in component PMCA (pA). * ALGEBRAIC[59] is I_xm in component Membrane_NaCa (pA). * ALGEBRAIC[16] is J_calb in component calcium_buffer_dynamics (mM_per_ms). * ALGEBRAIC[18] is J_cam in component calcium_buffer_dynamics (mM_per_ms). * ALGEBRAIC[24] is I_Na in component transient_Na_channel (pA). * ALGEBRAIC[25] is I_Nalk in component Leak_Na_channel (pA). * ALGEBRAIC[26] is I_NaHCN in component HCN_channel (pA). * ALGEBRAIC[42] is I_nk in component sodium_pump (pA). * ALGEBRAIC[36] is I_K in component potassium_dynamics (pA). * ALGEBRAIC[29] is I_Ksk in component SK_K_channel (pA). * ALGEBRAIC[31] is I_Kdr in component DR_K_channel (pA). * ALGEBRAIC[33] is I_Ka in component Atype_K_channel (pA). * ALGEBRAIC[35] is I_Kir in component IR_K_channel (pA). * ALGEBRAIC[27] is I_KHCN in component HCN_channel (pA). * STATES[3] is Calb in component calcium_buffer_dynamics (mM). * STATES[4] is Cam in component calcium_buffer_dynamics (mM). * CONSTANTS[11] is Calbtot in component calcium_buffer_dynamics (mM). * CONSTANTS[12] is Camtot in component calcium_buffer_dynamics (mM). * ALGEBRAIC[15] is CaCalb in component calcium_buffer_dynamics (mM). * ALGEBRAIC[17] is CaCam in component calcium_buffer_dynamics (mM). * CONSTANTS[13] is kcal_1 in component calcium_buffer_dynamics (per_mM_ms). * CONSTANTS[14] is kcal_2 in component calcium_buffer_dynamics (per_ms). * ALGEBRAIC[9] is kcam_cb in component calcium_buffer_dynamics (per_ms). * CONSTANTS[15] is kcam_cd in component calcium_buffer_dynamics (per_ms). * ALGEBRAIC[11] is kcam_nb in component calcium_buffer_dynamics (per_ms). * CONSTANTS[16] is kcam_nd in component calcium_buffer_dynamics (per_ms). * ALGEBRAIC[13] is alpha_cam in component calcium_buffer_dynamics (per_ms). * ALGEBRAIC[14] is beta_cam in component calcium_buffer_dynamics (per_ms). * STATES[5] is m_cal in component L_type_Ca_channel (dimensionless). * ALGEBRAIC[19] is h_cal in component L_type_Ca_channel (dimensionless). * CONSTANTS[17] is g_cal in component L_type_Ca_channel (pA_per_mM). * STATES[6] is m_cat in component T_type_Ca_channel (dimensionless). * STATES[7] is h_cat in component T_type_Ca_channel (dimensionless). * CONSTANTS[18] is g_cat in component T_type_Ca_channel (pA_per_mM). * STATES[8] is m_cah in component HVA_Ca_channel (dimensionless). * STATES[9] is h_cah in component HVA_Ca_channel (dimensionless). * CONSTANTS[19] is g_cah in component HVA_Ca_channel (pA_per_mM). * CONSTANTS[20] is g_na in component transient_Na_channel (pA_per_mM). * ALGEBRAIC[23] is O_na in component transient_Na_channel (dimensionless). * STATES[10] is m_na in component transient_Na_channel (dimensionless). * STATES[11] is h_na in component transient_Na_channel (dimensionless). * CONSTANTS[21] is A_mna in component transient_Na_channel (per_ms). * CONSTANTS[22] is B_mna in component transient_Na_channel (per_ms). * CONSTANTS[23] is A_hna in component transient_Na_channel (per_ms). * CONSTANTS[24] is B_hna in component transient_Na_channel (per_ms). * CONSTANTS[25] is za_mna in component transient_Na_channel (dimensionless). * CONSTANTS[26] is zb_mna in component transient_Na_channel (dimensionless). * CONSTANTS[27] is za_hna in component transient_Na_channel (dimensionless). * CONSTANTS[28] is zb_hna in component transient_Na_channel (dimensionless). * CONSTANTS[29] is g_nalk in component Leak_Na_channel (pA_per_mM). * CONSTANTS[30] is g_nahcn in component HCN_channel (pA_per_mM). * STATES[12] is O_hcn in component HCN_channel (dimensionless). * CONSTANTS[31] is g_khcn in component HCN_channel (pA_per_mM). * ALGEBRAIC[8] is kf_hcn in component HCN_channel (per_ms). * ALGEBRAIC[12] is kr_hcn in component HCN_channel (per_ms). * ALGEBRAIC[2] is kf_free in component HCN_channel (per_ms). * ALGEBRAIC[4] is kr_free in component HCN_channel (per_ms). * ALGEBRAIC[6] is kf_bnd in component HCN_channel (per_ms). * ALGEBRAIC[10] is kr_bnd in component HCN_channel (per_ms). * CONSTANTS[67] is P_c in component HCN_channel (dimensionless). * CONSTANTS[70] is P_o in component HCN_channel (dimensionless). * CONSTANTS[32] is cAMP in component HCN_channel (mM). * ALGEBRAIC[28] is O_sk in component SK_K_channel (dimensionless). * CONSTANTS[33] is g_ksk in component SK_K_channel (pA_per_mM). * ALGEBRAIC[30] is O_kdr in component DR_K_channel (dimensionless). * STATES[13] is m_kdr in component DR_K_channel (dimensionless). * CONSTANTS[34] is g_kdr in component DR_K_channel (pA_per_mV). * ALGEBRAIC[32] is O_ka in component Atype_K_channel (dimensionless). * STATES[14] is p_ka in component Atype_K_channel (dimensionless). * STATES[15] is q_ka in component Atype_K_channel (dimensionless). * CONSTANTS[35] is g_ka in component Atype_K_channel (pA_per_mV). * ALGEBRAIC[34] is O_kir in component IR_K_channel (dimensionless). * CONSTANTS[36] is g_kir in component IR_K_channel (pA_per_mV). * ALGEBRAIC[37] is Na_eff in component sodium_pump (mM). * STATES[16] is y_nk in component sodium_pump (dimensionless). * ALGEBRAIC[40] is alpha_nk in component sodium_pump (per_ms). * ALGEBRAIC[46] is beta_nk in component sodium_pump (per_ms). * ALGEBRAIC[38] is P_E1Snk in component sodium_pump (dimensionless). * ALGEBRAIC[41] is P_E2Snk in component sodium_pump (dimensionless). * ALGEBRAIC[39] is P_E1Dnk in component sodium_pump (dimensionless). * ALGEBRAIC[43] is P_E2Dnk in component sodium_pump (dimensionless). * CONSTANTS[58] is k_1nk in component sodium_pump (per_ms). * CONSTANTS[37] is k_2nk in component sodium_pump (per_ms). * CONSTANTS[38] is k_3nk in component sodium_pump (per_ms). * CONSTANTS[39] is k_4nk in component sodium_pump (per_ms). * CONSTANTS[40] is K_nknai in component sodium_pump (mM). * CONSTANTS[41] is K_nknao in component sodium_pump (mM). * CONSTANTS[42] is K_nkki in component sodium_pump (mM). * CONSTANTS[43] is K_nkko in component sodium_pump (mM). * CONSTANTS[44] is k_nk in component sodium_pump (pA). * STATES[17] is y_pc in component PMCA (dimensionless). * ALGEBRAIC[44] is K_pmca in component PMCA (pA). * CONSTANTS[59] is k_1pc in component PMCA (per_ms). * CONSTANTS[45] is k_2pc in component PMCA (per_ms). * CONSTANTS[46] is k_3pc in component PMCA (per_ms). * CONSTANTS[47] is k_4pc in component PMCA (per_ms). * ALGEBRAIC[48] is P_E1Spc in component PMCA (dimensionless). * CONSTANTS[60] is P_E2Spc in component PMCA (dimensionless). * ALGEBRAIC[50] is P_E1pc in component PMCA (dimensionless). * CONSTANTS[62] is P_E2pc in component PMCA (dimensionless). * ALGEBRAIC[52] is alpha_pc in component PMCA (per_ms). * CONSTANTS[65] is beta_pc in component PMCA (per_ms). * ALGEBRAIC[47] is K_pci in component PMCA (mM). * CONSTANTS[48] is K_pco in component PMCA (mM). * CONSTANTS[49] is k_pmca in component PMCA (dimensionless). * CONSTANTS[72] is P_E2Dxm in component Membrane_NaCa (dimensionless). * ALGEBRAIC[53] is P_E1Dxm in component Membrane_NaCa (dimensionless). * ALGEBRAIC[51] is P_E1Sxm in component Membrane_NaCa (dimensionless). * CONSTANTS[71] is P_E2Sxm in component Membrane_NaCa (dimensionless). * ALGEBRAIC[54] is k_1xm in component Membrane_NaCa (per_ms). * ALGEBRAIC[55] is k_2xm in component Membrane_NaCa (per_ms). * ALGEBRAIC[56] is k_3xm in component Membrane_NaCa (per_ms). * ALGEBRAIC[58] is k_4xm in component Membrane_NaCa (per_ms). * ALGEBRAIC[60] is beta_xm in component Membrane_NaCa (per_ms). * ALGEBRAIC[57] is alpha_xm in component Membrane_NaCa (per_ms). * CONSTANTS[50] is K_xmnai in component Membrane_NaCa (mM). * CONSTANTS[51] is K_xmnao in component Membrane_NaCa (mM). * CONSTANTS[52] is K_xmcai in component Membrane_NaCa (mM). * CONSTANTS[53] is K_xmcao in component Membrane_NaCa (mM). * CONSTANTS[54] is delta_xmca in component Membrane_NaCa (dimensionless). * CONSTANTS[55] is delta_xmna in component Membrane_NaCa (dimensionless). * STATES[18] is y_xm in component Membrane_NaCa (dimensionless). * CONSTANTS[56] is k_xm in component Membrane_NaCa (pA_ms). * RATES[0] is d/dt Ca_i in component Cytosol (mM). * RATES[1] is d/dt Na_i in component Cytosol (mM). * RATES[2] is d/dt K_i in component Cytosol (mM). * RATES[3] is d/dt Calb in component calcium_buffer_dynamics (mM). * RATES[4] is d/dt Cam in component calcium_buffer_dynamics (mM). * RATES[5] is d/dt m_cal in component L_type_Ca_channel (dimensionless). * RATES[6] is d/dt m_cat in component T_type_Ca_channel (dimensionless). * RATES[7] is d/dt h_cat in component T_type_Ca_channel (dimensionless). * RATES[8] is d/dt m_cah in component HVA_Ca_channel (dimensionless). * RATES[9] is d/dt h_cah in component HVA_Ca_channel (dimensionless). * RATES[10] is d/dt m_na in component transient_Na_channel (dimensionless). * RATES[11] is d/dt h_na in component transient_Na_channel (dimensionless). * RATES[12] is d/dt O_hcn in component HCN_channel (dimensionless). * RATES[13] is d/dt m_kdr in component DR_K_channel (dimensionless). * RATES[14] is d/dt p_ka in component Atype_K_channel (dimensionless). * RATES[15] is d/dt q_ka in component Atype_K_channel (dimensionless). * RATES[16] is d/dt y_nk in component sodium_pump (dimensionless). * RATES[17] is d/dt y_pc in component PMCA (dimensionless). * RATES[18] is d/dt y_xm in component Membrane_NaCa (dimensionless). */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { CONSTANTS[0] = 8314.472; CONSTANTS[1] = 310.15; CONSTANTS[2] = 96485.30929; CONSTANTS[3] = 1.8; CONSTANTS[4] = 137; CONSTANTS[5] = 5.4; CONSTANTS[6] = 30e-4; CONSTANTS[7] = 1; CONSTANTS[8] = 0.9e6; STATES[0] = 0.00015; STATES[1] = 6; STATES[2] = 140; CONSTANTS[9] = 6; CONSTANTS[10] = 2; STATES[3] = 0.0011; STATES[4] = 0.0487; CONSTANTS[11] = 0.002; CONSTANTS[12] = 0.0489; CONSTANTS[13] = 10; CONSTANTS[14] = 2e-3; CONSTANTS[15] = 0.003; CONSTANTS[16] = 3; STATES[5] = 0.0004; CONSTANTS[17] = 1158.2; STATES[6] = 0.1099; STATES[7] = 0.5716; CONSTANTS[18] = 10; STATES[8] = 0.3021; STATES[9] = 0.454; CONSTANTS[19] = 78.5; CONSTANTS[20] = 395.14; STATES[10] = 0.0758; STATES[11] = 0.2272; CONSTANTS[21] = 1.9651; CONSTANTS[22] = 0.0424; CONSTANTS[23] = 9.566e-5; CONSTANTS[24] = 0.5296; CONSTANTS[25] = 1.7127; CONSTANTS[26] = 1.5581; CONSTANTS[27] = -2.4317; CONSTANTS[28] = -1.1868; CONSTANTS[29] = 0.0039; CONSTANTS[30] = 3; STATES[12] = 0; CONSTANTS[31] = 10; CONSTANTS[32] = 1e-5; CONSTANTS[33] = 15; STATES[13] = 0.0043; CONSTANTS[34] = 10; STATES[14] = 0.2577; STATES[15] = 0.827; CONSTANTS[35] = 0.2234; CONSTANTS[36] = 5; STATES[16] = 0.555; CONSTANTS[37] = 0.04; CONSTANTS[38] = 0.01; CONSTANTS[39] = 0.165; CONSTANTS[40] = 4.05; CONSTANTS[41] = 69.8; CONSTANTS[42] = 32.88; CONSTANTS[43] = 0.258; CONSTANTS[44] = 200; STATES[17] = 0.001; CONSTANTS[45] = 0.001; CONSTANTS[46] = 0.001; CONSTANTS[47] = 1; CONSTANTS[48] = 2; CONSTANTS[49] = 10; CONSTANTS[50] = 8.75; CONSTANTS[51] = 87.5; CONSTANTS[52] = 0.00138; CONSTANTS[53] = 1.38; CONSTANTS[54] = 0.68; CONSTANTS[55] = 0.32; STATES[18] = 0.343; CONSTANTS[56] = 25; CONSTANTS[57] = ( (( 3.14159265358979*pow(CONSTANTS[6], 3.00000))/6.00000)*1.00000e+09)/( 1.00000*1.00000*1.00000); CONSTANTS[58] = 0.370000/(1.00000+0.0940000/CONSTANTS[10]); CONSTANTS[59] = 1.00000/(1.00000+0.100000/CONSTANTS[10]); CONSTANTS[60] = 1.00000/(1.00000+CONSTANTS[48]/CONSTANTS[3]); CONSTANTS[61] = CONSTANTS[7]*CONSTANTS[57]; CONSTANTS[62] = 1.00000 - CONSTANTS[60]; CONSTANTS[63] = CONSTANTS[9]/CONSTANTS[6]; CONSTANTS[64] = ( CONSTANTS[0]*CONSTANTS[1])/CONSTANTS[2]; CONSTANTS[65] = CONSTANTS[45]*CONSTANTS[60]+ CONSTANTS[47]*CONSTANTS[62]; CONSTANTS[66] = ( CONSTANTS[63]*CONSTANTS[57]*0.00100000*0.00100000*0.00100000)/1.00000; CONSTANTS[67] = 1.00000/(1.00000+CONSTANTS[32]/0.00116300); CONSTANTS[68] = ((( - 52.3100*CONSTANTS[8]*CONSTANTS[66])/( CONSTANTS[2]*CONSTANTS[61]) - 2.00000*(0.000150000 - CONSTANTS[3])) - (6.00000 - CONSTANTS[4])) - (140.000 - CONSTANTS[5]); CONSTANTS[69] = CONSTANTS[8]*CONSTANTS[66]; CONSTANTS[70] = 1.00000/(1.00000+CONSTANTS[32]/1.45000e-05); CONSTANTS[71] = 1.00000/(1.00000+ (CONSTANTS[53]/CONSTANTS[3])*(1.00000+pow(CONSTANTS[4]/CONSTANTS[51], 3.00000))); CONSTANTS[72] = 1.00000/(1.00000+ pow(CONSTANTS[51]/CONSTANTS[4], 3.00000)*(1.00000+CONSTANTS[3]/CONSTANTS[53])); } void computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[0] = (( CONSTANTS[2]*CONSTANTS[61])/( CONSTANTS[8]*CONSTANTS[66]))*((((STATES[2] - CONSTANTS[5])+ 2.00000*(STATES[0] - CONSTANTS[3])+STATES[1]) - CONSTANTS[4])+CONSTANTS[68]); RATES[5] = (1.00000/(1.00000+exp(- (ALGEBRAIC[0]+15.0000)/7.00000)) - STATES[5])/( 10.0000*exp(- pow((ALGEBRAIC[0]+86.4000)/23.2000, 2.00000))+0.943000); RATES[6] = (1.00000/(1.00000+exp(- (ALGEBRAIC[0]+63.0000)/1.50000)) - STATES[6])/( 65.0000*exp(- pow((ALGEBRAIC[0]+68.0000)/6.00000, 2.00000))+12.0000); RATES[7] = (1.00000/(1.00000+exp((ALGEBRAIC[0]+76.2000)/3.00000)) - STATES[7])/( 50.0000*exp(- pow((ALGEBRAIC[0]+72.0000)/10.0000, 2.00000))+10.0000); RATES[8] = (1.00000/(1.00000+exp(- (ALGEBRAIC[0]+10.0000)/10.0000)) - STATES[8])/( 0.100000*exp(- pow((ALGEBRAIC[0]+62.0000)/13.0000, 2.00000))+0.0500000); RATES[9] = (1.00000/(1.00000+exp((ALGEBRAIC[0]+48.0000)/5.00000)) - STATES[9])/( 0.500000*exp(- pow((ALGEBRAIC[0]+55.6000)/18.0000, 2.00000))+0.500000); RATES[13] = (1.00000/(1.00000+exp(- (ALGEBRAIC[0]+25.0000)/12.0000)) - STATES[13])/(18.0000/(1.00000+exp((ALGEBRAIC[0]+39.0000)/8.00000))+1.00000); RATES[14] = (1.00000/(1.00000+exp(- (ALGEBRAIC[0]+43.0000)/24.0000)) - STATES[14])/( 2.00000*exp(- pow((ALGEBRAIC[0]+50.0000)/23.4500, 2.00000))+1.10000); RATES[15] = (1.00000/(1.00000+exp((ALGEBRAIC[0]+56.0000)/8.00000)) - STATES[15])/20.0000; ALGEBRAIC[1] = ALGEBRAIC[0]/CONSTANTS[64]; RATES[10] = CONSTANTS[21]*exp( CONSTANTS[25]*ALGEBRAIC[1])*(1.00000 - STATES[10]) - CONSTANTS[22]*exp( - CONSTANTS[26]*ALGEBRAIC[1])*STATES[10]; RATES[11] = CONSTANTS[23]*exp( CONSTANTS[27]*ALGEBRAIC[1])*(1.00000 - STATES[11]) - CONSTANTS[24]*exp( - CONSTANTS[28]*ALGEBRAIC[1])*STATES[11]; ALGEBRAIC[2] = 0.00600000/(1.00000+exp((ALGEBRAIC[0]+87.7000)/6.45000)); ALGEBRAIC[6] = 0.0268000/(1.00000+exp((ALGEBRAIC[0]+94.2000)/13.3000)); ALGEBRAIC[8] = ALGEBRAIC[2]*CONSTANTS[67]+ ALGEBRAIC[6]*(1.00000 - CONSTANTS[67]); ALGEBRAIC[4] = 0.0800000/(1.00000+exp(- (ALGEBRAIC[0]+51.7000)/7.00000)); ALGEBRAIC[10] = 0.0800000/(1.00000+exp(- (ALGEBRAIC[0]+35.5000)/7.00000)); ALGEBRAIC[12] = ALGEBRAIC[4]*CONSTANTS[70]+ ALGEBRAIC[10]*(1.00000 - CONSTANTS[70]); RATES[12] = ALGEBRAIC[8]*(1.00000 - STATES[12]) - ALGEBRAIC[12]*STATES[12]; ALGEBRAIC[15] = CONSTANTS[11] - STATES[3]; ALGEBRAIC[16] = CONSTANTS[13]*STATES[3]*STATES[0] - CONSTANTS[14]*ALGEBRAIC[15]; RATES[3] = - ALGEBRAIC[16]; ALGEBRAIC[17] = CONSTANTS[12] - STATES[4]; ALGEBRAIC[9] = 12000.0*pow(STATES[0], 2.00000); ALGEBRAIC[11] = 3.70000e+06*pow(STATES[0], 2.00000); ALGEBRAIC[13] = ALGEBRAIC[9]*ALGEBRAIC[11]*(1.00000/(ALGEBRAIC[9]+CONSTANTS[16])+1.00000/(CONSTANTS[15]+CONSTANTS[16])); ALGEBRAIC[14] = CONSTANTS[15]*CONSTANTS[16]*(1.00000/(ALGEBRAIC[9]+CONSTANTS[16])+1.00000/(CONSTANTS[15]+CONSTANTS[16])); ALGEBRAIC[18] = ALGEBRAIC[13]*STATES[4] - ALGEBRAIC[14]*ALGEBRAIC[17]; RATES[4] = - ALGEBRAIC[18]; ALGEBRAIC[38] = 1.00000/(1.00000+ (CONSTANTS[40]/STATES[1])*(1.00000+STATES[2]/CONSTANTS[42])); ALGEBRAIC[37] = CONSTANTS[4]*exp( - 0.820000*ALGEBRAIC[1]); ALGEBRAIC[41] = 1.00000/(1.00000+ (CONSTANTS[41]/ALGEBRAIC[37])*(1.00000+CONSTANTS[5]/CONSTANTS[43])); ALGEBRAIC[42] = CONSTANTS[44]*( CONSTANTS[58]*ALGEBRAIC[38]*STATES[16] - CONSTANTS[37]*ALGEBRAIC[41]*(1.00000 - STATES[16]))*1.00000; ALGEBRAIC[7] = log(CONSTANTS[5]/STATES[2]); ALGEBRAIC[28] = pow(STATES[0], 4.20000)/(pow(0.000350000, 4.20000)+pow(STATES[0], 4.20000)); ALGEBRAIC[29] = ( CONSTANTS[33]*ALGEBRAIC[28]* pow(( STATES[2]*CONSTANTS[5]), 1.0 / 2)* sinh( 0.500000*(ALGEBRAIC[1] - ALGEBRAIC[7])))/( sinh( 0.500000*ALGEBRAIC[1])/( 0.500000*ALGEBRAIC[1])); ALGEBRAIC[30] = pow(STATES[13], 3.00000); ALGEBRAIC[31] = CONSTANTS[34]*ALGEBRAIC[30]*(ALGEBRAIC[0] - ALGEBRAIC[7]*CONSTANTS[64]); ALGEBRAIC[32] = pow(STATES[14], 3.00000)*STATES[15]; ALGEBRAIC[33] = CONSTANTS[35]*ALGEBRAIC[32]*(ALGEBRAIC[0] - ALGEBRAIC[7]*CONSTANTS[64]); ALGEBRAIC[34] = 1.00000/(1.00000+exp((ALGEBRAIC[0]+90.0000)/12.1000)); ALGEBRAIC[35] = CONSTANTS[36]*ALGEBRAIC[34]*(ALGEBRAIC[0] - ALGEBRAIC[7]*CONSTANTS[64]); ALGEBRAIC[27] = ( CONSTANTS[31]*STATES[12]* pow(( STATES[2]*CONSTANTS[5]), 1.0 / 2)* sinh( 0.500000*(ALGEBRAIC[1] - ALGEBRAIC[7])))/( sinh( 0.500000*ALGEBRAIC[1])/( 0.500000*ALGEBRAIC[1])); ALGEBRAIC[36] = ALGEBRAIC[29]+ALGEBRAIC[27]+ALGEBRAIC[33]+ALGEBRAIC[31]+ALGEBRAIC[35]; ALGEBRAIC[45] = (- 1.00000/( CONSTANTS[2]*CONSTANTS[61]))*(ALGEBRAIC[36] - 2.00000*ALGEBRAIC[42]); RATES[2] = ALGEBRAIC[45]; ALGEBRAIC[39] = 1.00000/(1.00000+ (CONSTANTS[42]/STATES[2])*(1.00000+STATES[1]/CONSTANTS[40])); ALGEBRAIC[40] = CONSTANTS[58]*ALGEBRAIC[38]+ CONSTANTS[38]*ALGEBRAIC[39]; ALGEBRAIC[43] = 1.00000/(1.00000+ (CONSTANTS[43]/CONSTANTS[5])*(1.00000+ALGEBRAIC[37]/CONSTANTS[41])); ALGEBRAIC[46] = CONSTANTS[37]*ALGEBRAIC[41]+ CONSTANTS[39]*ALGEBRAIC[43]; RATES[16] = ALGEBRAIC[46]*(1.00000 - STATES[16]) - ALGEBRAIC[40]*STATES[16]; ALGEBRAIC[47] = (173.600/(1.00000+ALGEBRAIC[17]/5.00000e-05)+6.40000)*1.00000e-05; ALGEBRAIC[48] = 1.00000/(1.00000+ALGEBRAIC[47]/STATES[0]); ALGEBRAIC[50] = 1.00000 - ALGEBRAIC[48]; ALGEBRAIC[52] = CONSTANTS[59]*ALGEBRAIC[48]+ CONSTANTS[46]*ALGEBRAIC[50]; RATES[17] = CONSTANTS[65]*(1.00000 - STATES[17]) - ALGEBRAIC[52]*STATES[17]; ALGEBRAIC[55] = 1.00000*exp( (1.00000 - CONSTANTS[54])*ALGEBRAIC[1]); ALGEBRAIC[58] = 1.00000*exp( - CONSTANTS[55]*ALGEBRAIC[1]); ALGEBRAIC[60] = ALGEBRAIC[55]*CONSTANTS[71]+ ALGEBRAIC[58]*CONSTANTS[72]; ALGEBRAIC[53] = 1.00000/(1.00000+ pow(CONSTANTS[50]/STATES[1], 3.00000)*(1.00000+STATES[0]/CONSTANTS[52])); ALGEBRAIC[51] = 1.00000/(1.00000+ (CONSTANTS[52]/STATES[0])*(1.00000+pow(STATES[1]/CONSTANTS[50], 3.00000))); ALGEBRAIC[54] = 1.00000*exp( - CONSTANTS[54]*ALGEBRAIC[1]); ALGEBRAIC[56] = 1.00000*exp( (1.00000 - CONSTANTS[55])*ALGEBRAIC[1]); ALGEBRAIC[57] = ALGEBRAIC[54]*ALGEBRAIC[51]+ ALGEBRAIC[56]*ALGEBRAIC[53]; RATES[18] = ALGEBRAIC[60]*(1.00000 - STATES[18]) - ALGEBRAIC[57]*STATES[18]; ALGEBRAIC[59] = CONSTANTS[56]*( ALGEBRAIC[56]*ALGEBRAIC[53]*STATES[18] - ALGEBRAIC[58]*CONSTANTS[72]*(1.00000 - STATES[18])); ALGEBRAIC[5] = log(CONSTANTS[4]/STATES[1]); ALGEBRAIC[23] = pow(STATES[10], 3.00000)*STATES[11]; ALGEBRAIC[24] = ( CONSTANTS[20]*ALGEBRAIC[23]* pow(( STATES[1]*CONSTANTS[4]), 1.0 / 2)* sinh( 0.500000*(ALGEBRAIC[1] - ALGEBRAIC[5])))/( sinh( 0.500000*ALGEBRAIC[1])/( 0.500000*ALGEBRAIC[1])); ALGEBRAIC[25] = ( CONSTANTS[29]* pow(( STATES[1]*CONSTANTS[4]), 1.0 / 2)* sinh( 0.500000*(ALGEBRAIC[1] - ALGEBRAIC[5])))/( sinh( 0.500000*ALGEBRAIC[1])/( 0.500000*ALGEBRAIC[1])); ALGEBRAIC[26] = ( CONSTANTS[30]*STATES[12]* pow(( STATES[1]*CONSTANTS[4]), 1.0 / 2)* sinh( 0.500000*(ALGEBRAIC[1] - ALGEBRAIC[5])))/( sinh( 0.500000*ALGEBRAIC[1])/( 0.500000*ALGEBRAIC[1])); ALGEBRAIC[62] = (- 1.00000/( CONSTANTS[2]*CONSTANTS[61]))*( 3.00000*ALGEBRAIC[42]+ 3.00000*ALGEBRAIC[59]+ALGEBRAIC[24]+ALGEBRAIC[25]+ALGEBRAIC[26]); RATES[1] = ALGEBRAIC[62]; ALGEBRAIC[3] = 0.500000*log(CONSTANTS[3]/STATES[0]); ALGEBRAIC[19] = 0.000450000/(0.000450000+STATES[0]); ALGEBRAIC[20] = ( CONSTANTS[17]*STATES[5]*ALGEBRAIC[19]* pow(( STATES[0]*CONSTANTS[3]), 1.0 / 2)* sinh(ALGEBRAIC[1] - ALGEBRAIC[3]))/( sinh(ALGEBRAIC[1])/ALGEBRAIC[1]); ALGEBRAIC[21] = ( CONSTANTS[18]*STATES[6]*STATES[7]* pow(( STATES[0]*CONSTANTS[3]), 1.0 / 2)* sinh(ALGEBRAIC[1] - ALGEBRAIC[3]))/( sinh(ALGEBRAIC[1])/ALGEBRAIC[1]); ALGEBRAIC[22] = ( CONSTANTS[19]*STATES[8]*STATES[9]* pow(( STATES[0]*CONSTANTS[3]), 1.0 / 2)* sinh(ALGEBRAIC[1] - ALGEBRAIC[3]))/( sinh(ALGEBRAIC[1])/ALGEBRAIC[1]); ALGEBRAIC[44] = CONSTANTS[49]*(( 10.5600*ALGEBRAIC[17])/(ALGEBRAIC[17]+5.00000e-05)+1.20000); ALGEBRAIC[49] = ALGEBRAIC[44]*( CONSTANTS[59]*ALGEBRAIC[48]*STATES[17] - CONSTANTS[45]*CONSTANTS[60]*(1.00000 - STATES[17]))*1.00000; ALGEBRAIC[61] = (- 1.00000/( 2.00000*CONSTANTS[2]*CONSTANTS[61]))*((ALGEBRAIC[20]+ALGEBRAIC[21]+ALGEBRAIC[22]+ 2.00000*ALGEBRAIC[49]) - 2.00000*ALGEBRAIC[59]); ALGEBRAIC[63] = ALGEBRAIC[61] - (ALGEBRAIC[16]+ 4.00000*ALGEBRAIC[18]); RATES[0] = ALGEBRAIC[63]; } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[0] = (( CONSTANTS[2]*CONSTANTS[61])/( CONSTANTS[8]*CONSTANTS[66]))*((((STATES[2] - CONSTANTS[5])+ 2.00000*(STATES[0] - CONSTANTS[3])+STATES[1]) - CONSTANTS[4])+CONSTANTS[68]); ALGEBRAIC[1] = ALGEBRAIC[0]/CONSTANTS[64]; ALGEBRAIC[2] = 0.00600000/(1.00000+exp((ALGEBRAIC[0]+87.7000)/6.45000)); ALGEBRAIC[6] = 0.0268000/(1.00000+exp((ALGEBRAIC[0]+94.2000)/13.3000)); ALGEBRAIC[8] = ALGEBRAIC[2]*CONSTANTS[67]+ ALGEBRAIC[6]*(1.00000 - CONSTANTS[67]); ALGEBRAIC[4] = 0.0800000/(1.00000+exp(- (ALGEBRAIC[0]+51.7000)/7.00000)); ALGEBRAIC[10] = 0.0800000/(1.00000+exp(- (ALGEBRAIC[0]+35.5000)/7.00000)); ALGEBRAIC[12] = ALGEBRAIC[4]*CONSTANTS[70]+ ALGEBRAIC[10]*(1.00000 - CONSTANTS[70]); ALGEBRAIC[15] = CONSTANTS[11] - STATES[3]; ALGEBRAIC[16] = CONSTANTS[13]*STATES[3]*STATES[0] - CONSTANTS[14]*ALGEBRAIC[15]; ALGEBRAIC[17] = CONSTANTS[12] - STATES[4]; ALGEBRAIC[9] = 12000.0*pow(STATES[0], 2.00000); ALGEBRAIC[11] = 3.70000e+06*pow(STATES[0], 2.00000); ALGEBRAIC[13] = ALGEBRAIC[9]*ALGEBRAIC[11]*(1.00000/(ALGEBRAIC[9]+CONSTANTS[16])+1.00000/(CONSTANTS[15]+CONSTANTS[16])); ALGEBRAIC[14] = CONSTANTS[15]*CONSTANTS[16]*(1.00000/(ALGEBRAIC[9]+CONSTANTS[16])+1.00000/(CONSTANTS[15]+CONSTANTS[16])); ALGEBRAIC[18] = ALGEBRAIC[13]*STATES[4] - ALGEBRAIC[14]*ALGEBRAIC[17]; ALGEBRAIC[38] = 1.00000/(1.00000+ (CONSTANTS[40]/STATES[1])*(1.00000+STATES[2]/CONSTANTS[42])); ALGEBRAIC[37] = CONSTANTS[4]*exp( - 0.820000*ALGEBRAIC[1]); ALGEBRAIC[41] = 1.00000/(1.00000+ (CONSTANTS[41]/ALGEBRAIC[37])*(1.00000+CONSTANTS[5]/CONSTANTS[43])); ALGEBRAIC[42] = CONSTANTS[44]*( CONSTANTS[58]*ALGEBRAIC[38]*STATES[16] - CONSTANTS[37]*ALGEBRAIC[41]*(1.00000 - STATES[16]))*1.00000; ALGEBRAIC[7] = log(CONSTANTS[5]/STATES[2]); ALGEBRAIC[28] = pow(STATES[0], 4.20000)/(pow(0.000350000, 4.20000)+pow(STATES[0], 4.20000)); ALGEBRAIC[29] = ( CONSTANTS[33]*ALGEBRAIC[28]* pow(( STATES[2]*CONSTANTS[5]), 1.0 / 2)* sinh( 0.500000*(ALGEBRAIC[1] - ALGEBRAIC[7])))/( sinh( 0.500000*ALGEBRAIC[1])/( 0.500000*ALGEBRAIC[1])); ALGEBRAIC[30] = pow(STATES[13], 3.00000); ALGEBRAIC[31] = CONSTANTS[34]*ALGEBRAIC[30]*(ALGEBRAIC[0] - ALGEBRAIC[7]*CONSTANTS[64]); ALGEBRAIC[32] = pow(STATES[14], 3.00000)*STATES[15]; ALGEBRAIC[33] = CONSTANTS[35]*ALGEBRAIC[32]*(ALGEBRAIC[0] - ALGEBRAIC[7]*CONSTANTS[64]); ALGEBRAIC[34] = 1.00000/(1.00000+exp((ALGEBRAIC[0]+90.0000)/12.1000)); ALGEBRAIC[35] = CONSTANTS[36]*ALGEBRAIC[34]*(ALGEBRAIC[0] - ALGEBRAIC[7]*CONSTANTS[64]); ALGEBRAIC[27] = ( CONSTANTS[31]*STATES[12]* pow(( STATES[2]*CONSTANTS[5]), 1.0 / 2)* sinh( 0.500000*(ALGEBRAIC[1] - ALGEBRAIC[7])))/( sinh( 0.500000*ALGEBRAIC[1])/( 0.500000*ALGEBRAIC[1])); ALGEBRAIC[36] = ALGEBRAIC[29]+ALGEBRAIC[27]+ALGEBRAIC[33]+ALGEBRAIC[31]+ALGEBRAIC[35]; ALGEBRAIC[45] = (- 1.00000/( CONSTANTS[2]*CONSTANTS[61]))*(ALGEBRAIC[36] - 2.00000*ALGEBRAIC[42]); ALGEBRAIC[39] = 1.00000/(1.00000+ (CONSTANTS[42]/STATES[2])*(1.00000+STATES[1]/CONSTANTS[40])); ALGEBRAIC[40] = CONSTANTS[58]*ALGEBRAIC[38]+ CONSTANTS[38]*ALGEBRAIC[39]; ALGEBRAIC[43] = 1.00000/(1.00000+ (CONSTANTS[43]/CONSTANTS[5])*(1.00000+ALGEBRAIC[37]/CONSTANTS[41])); ALGEBRAIC[46] = CONSTANTS[37]*ALGEBRAIC[41]+ CONSTANTS[39]*ALGEBRAIC[43]; ALGEBRAIC[47] = (173.600/(1.00000+ALGEBRAIC[17]/5.00000e-05)+6.40000)*1.00000e-05; ALGEBRAIC[48] = 1.00000/(1.00000+ALGEBRAIC[47]/STATES[0]); ALGEBRAIC[50] = 1.00000 - ALGEBRAIC[48]; ALGEBRAIC[52] = CONSTANTS[59]*ALGEBRAIC[48]+ CONSTANTS[46]*ALGEBRAIC[50]; ALGEBRAIC[55] = 1.00000*exp( (1.00000 - CONSTANTS[54])*ALGEBRAIC[1]); ALGEBRAIC[58] = 1.00000*exp( - CONSTANTS[55]*ALGEBRAIC[1]); ALGEBRAIC[60] = ALGEBRAIC[55]*CONSTANTS[71]+ ALGEBRAIC[58]*CONSTANTS[72]; ALGEBRAIC[53] = 1.00000/(1.00000+ pow(CONSTANTS[50]/STATES[1], 3.00000)*(1.00000+STATES[0]/CONSTANTS[52])); ALGEBRAIC[51] = 1.00000/(1.00000+ (CONSTANTS[52]/STATES[0])*(1.00000+pow(STATES[1]/CONSTANTS[50], 3.00000))); ALGEBRAIC[54] = 1.00000*exp( - CONSTANTS[54]*ALGEBRAIC[1]); ALGEBRAIC[56] = 1.00000*exp( (1.00000 - CONSTANTS[55])*ALGEBRAIC[1]); ALGEBRAIC[57] = ALGEBRAIC[54]*ALGEBRAIC[51]+ ALGEBRAIC[56]*ALGEBRAIC[53]; ALGEBRAIC[59] = CONSTANTS[56]*( ALGEBRAIC[56]*ALGEBRAIC[53]*STATES[18] - ALGEBRAIC[58]*CONSTANTS[72]*(1.00000 - STATES[18])); ALGEBRAIC[5] = log(CONSTANTS[4]/STATES[1]); ALGEBRAIC[23] = pow(STATES[10], 3.00000)*STATES[11]; ALGEBRAIC[24] = ( CONSTANTS[20]*ALGEBRAIC[23]* pow(( STATES[1]*CONSTANTS[4]), 1.0 / 2)* sinh( 0.500000*(ALGEBRAIC[1] - ALGEBRAIC[5])))/( sinh( 0.500000*ALGEBRAIC[1])/( 0.500000*ALGEBRAIC[1])); ALGEBRAIC[25] = ( CONSTANTS[29]* pow(( STATES[1]*CONSTANTS[4]), 1.0 / 2)* sinh( 0.500000*(ALGEBRAIC[1] - ALGEBRAIC[5])))/( sinh( 0.500000*ALGEBRAIC[1])/( 0.500000*ALGEBRAIC[1])); ALGEBRAIC[26] = ( CONSTANTS[30]*STATES[12]* pow(( STATES[1]*CONSTANTS[4]), 1.0 / 2)* sinh( 0.500000*(ALGEBRAIC[1] - ALGEBRAIC[5])))/( sinh( 0.500000*ALGEBRAIC[1])/( 0.500000*ALGEBRAIC[1])); ALGEBRAIC[62] = (- 1.00000/( CONSTANTS[2]*CONSTANTS[61]))*( 3.00000*ALGEBRAIC[42]+ 3.00000*ALGEBRAIC[59]+ALGEBRAIC[24]+ALGEBRAIC[25]+ALGEBRAIC[26]); ALGEBRAIC[3] = 0.500000*log(CONSTANTS[3]/STATES[0]); ALGEBRAIC[19] = 0.000450000/(0.000450000+STATES[0]); ALGEBRAIC[20] = ( CONSTANTS[17]*STATES[5]*ALGEBRAIC[19]* pow(( STATES[0]*CONSTANTS[3]), 1.0 / 2)* sinh(ALGEBRAIC[1] - ALGEBRAIC[3]))/( sinh(ALGEBRAIC[1])/ALGEBRAIC[1]); ALGEBRAIC[21] = ( CONSTANTS[18]*STATES[6]*STATES[7]* pow(( STATES[0]*CONSTANTS[3]), 1.0 / 2)* sinh(ALGEBRAIC[1] - ALGEBRAIC[3]))/( sinh(ALGEBRAIC[1])/ALGEBRAIC[1]); ALGEBRAIC[22] = ( CONSTANTS[19]*STATES[8]*STATES[9]* pow(( STATES[0]*CONSTANTS[3]), 1.0 / 2)* sinh(ALGEBRAIC[1] - ALGEBRAIC[3]))/( sinh(ALGEBRAIC[1])/ALGEBRAIC[1]); ALGEBRAIC[44] = CONSTANTS[49]*(( 10.5600*ALGEBRAIC[17])/(ALGEBRAIC[17]+5.00000e-05)+1.20000); ALGEBRAIC[49] = ALGEBRAIC[44]*( CONSTANTS[59]*ALGEBRAIC[48]*STATES[17] - CONSTANTS[45]*CONSTANTS[60]*(1.00000 - STATES[17]))*1.00000; ALGEBRAIC[61] = (- 1.00000/( 2.00000*CONSTANTS[2]*CONSTANTS[61]))*((ALGEBRAIC[20]+ALGEBRAIC[21]+ALGEBRAIC[22]+ 2.00000*ALGEBRAIC[49]) - 2.00000*ALGEBRAIC[59]); ALGEBRAIC[63] = ALGEBRAIC[61] - (ALGEBRAIC[16]+ 4.00000*ALGEBRAIC[18]); }