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 111 entries in the algebraic variable array.
   There are a total of 39 entries in each of the rate and state variable arrays.
   There are a total of 137 entries in the constant variable array.
 */
/*
 * VOI is time in component environment (millisecond).
 * STATES[0] is V in component cell (millivolt).
 * ALGEBRAIC[8] is i_Na in component INa (microA_per_microF).
 * ALGEBRAIC[17] is i_Nab in component INab (microA_per_microF).
 * ALGEBRAIC[21] is i_NaK in component INaK (microA_per_microF).
 * ALGEBRAIC[100] is i_Kr in component IKr (microA_per_microF).
 * ALGEBRAIC[32] is i_Ks in component IKs (microA_per_microF).
 * ALGEBRAIC[35] is i_Kp in component IKp (microA_per_microF).
 * ALGEBRAIC[36] is i_tos in component Itos (microA_per_microF).
 * ALGEBRAIC[43] is i_tof in component Itof (microA_per_microF).
 * ALGEBRAIC[110] is i_K1 in component IK1 (microA_per_microF).
 * ALGEBRAIC[65] is i_NaCa in component INaCa (microA_per_microF).
 * ALGEBRAIC[50] is i_Cl_Ca in component ICl_Ca (microA_per_microF).
 * ALGEBRAIC[51] is i_Clb in component IClb (microA_per_microF).
 * ALGEBRAIC[107] is i_CaL in component ICaL (microA_per_microF).
 * ALGEBRAIC[71] is i_Cab in component ICab (microA_per_microF).
 * ALGEBRAIC[68] is i_Cap in component ICap (microA_per_microF).
 * ALGEBRAIC[0] is i_Stim in component cell (microA_per_microF).
 * CONSTANTS[0] is stim_start in component cell (millisecond).
 * CONSTANTS[1] is stim_period in component cell (millisecond).
 * CONSTANTS[2] is stim_duration in component cell (millisecond).
 * CONSTANTS[3] is stim_amplitude in component cell (microA_per_microF).
 * CONSTANTS[4] is Ko in component model_parameters (millimolar).
 * CONSTANTS[5] is Nao in component model_parameters (millimolar).
 * CONSTANTS[6] is Cao in component model_parameters (millimolar).
 * CONSTANTS[7] is Clo in component model_parameters (millimolar).
 * CONSTANTS[8] is Ki in component model_parameters (millimolar).
 * CONSTANTS[9] is Mgi in component model_parameters (millimolar).
 * CONSTANTS[10] is Cli in component model_parameters (millimolar).
 * CONSTANTS[11] is R in component model_parameters (joule_per_kilomole_kelvin).
 * CONSTANTS[12] is T in component model_parameters (kelvin).
 * CONSTANTS[13] is F in component model_parameters (coulomb_per_mole).
 * CONSTANTS[14] is Cm in component model_parameters (farad).
 * CONSTANTS[15] is cell_length in component model_parameters (micrometre).
 * CONSTANTS[16] is cell_radius in component model_parameters (micrometre).
 * CONSTANTS[132] is Vol_Cell in component model_parameters (litre).
 * CONSTANTS[133] is Vol_SR in component model_parameters (litre).
 * CONSTANTS[134] is Vol_SL in component model_parameters (litre).
 * CONSTANTS[135] is Vol_jct in component model_parameters (litre).
 * CONSTANTS[136] is Vol_myo in component model_parameters (litre).
 * ALGEBRAIC[1] is E_Na_jct in component reversal_potentials (millivolt).
 * ALGEBRAIC[2] is E_Na_SL in component reversal_potentials (millivolt).
 * ALGEBRAIC[3] is E_Ca_jct in component reversal_potentials (millivolt).
 * ALGEBRAIC[4] is E_Ca_SL in component reversal_potentials (millivolt).
 * CONSTANTS[123] is E_K in component reversal_potentials (millivolt).
 * CONSTANTS[124] is E_Cl in component reversal_potentials (millivolt).
 * STATES[1] is Nai in component Na_buffer (millimolar).
 * STATES[2] is Na_jct in component Na_buffer (millimolar).
 * STATES[3] is Na_SL in component Na_buffer (millimolar).
 * STATES[4] is Cai in component Ca_buffer (millimolar).
 * STATES[5] is Ca_jct in component Ca_buffer (millimolar).
 * STATES[6] is Ca_SL in component Ca_buffer (millimolar).
 * ALGEBRAIC[6] is i_Na_jct in component INa (microA_per_microF).
 * ALGEBRAIC[7] is i_Na_SL in component INa (microA_per_microF).
 * CONSTANTS[17] is G_INa in component INa (milliS_per_microF).
 * CONSTANTS[18] is Fx_Na_jct in component INa (dimensionless).
 * CONSTANTS[19] is Fx_Na_SL in component INa (dimensionless).
 * STATES[7] is m in component INa_m_gate (dimensionless).
 * STATES[8] is h in component INa_h_gate (dimensionless).
 * STATES[9] is j in component INa_j_gate (dimensionless).
 * ALGEBRAIC[5] is openProb in component INa (dimensionless).
 * ALGEBRAIC[9] is alpha_h in component INa_h_gate (per_millisecond).
 * ALGEBRAIC[10] is beta_h in component INa_h_gate (per_millisecond).
 * ALGEBRAIC[11] is alpha_j in component INa_j_gate (per_millisecond).
 * ALGEBRAIC[12] is beta_j in component INa_j_gate (per_millisecond).
 * ALGEBRAIC[13] is alpha_m in component INa_m_gate (per_millisecond).
 * ALGEBRAIC[14] is beta_m in component INa_m_gate (per_millisecond).
 * ALGEBRAIC[15] is i_Nab_jct in component INab (microA_per_microF).
 * ALGEBRAIC[16] is i_Nab_SL in component INab (microA_per_microF).
 * CONSTANTS[20] is G_NaBk in component INab (milliS_per_microF).
 * CONSTANTS[21] is Fx_NaBk_jct in component INab (dimensionless).
 * CONSTANTS[22] is Fx_NaBk_SL in component INab (dimensionless).
 * ALGEBRAIC[19] is i_NaK_jct in component INaK (microA_per_microF).
 * ALGEBRAIC[20] is i_NaK_SL in component INaK (microA_per_microF).
 * ALGEBRAIC[18] is f_NaK in component INaK (dimensionless).
 * CONSTANTS[23] is H_NaK in component INaK (dimensionless).
 * CONSTANTS[24] is Km_Nai in component INaK (millimolar).
 * CONSTANTS[25] is Km_Ko in component INaK (millimolar).
 * CONSTANTS[26] is I_NaK_max in component INaK (microA_per_microF).
 * CONSTANTS[125] is sigma in component INaK (dimensionless).
 * CONSTANTS[27] is Fx_NaK_jct in component INaK (dimensionless).
 * CONSTANTS[28] is Fx_NaK_SL in component INaK (dimensionless).
 * CONSTANTS[126] is G_IKr in component IKr (milliS_per_microF).
 * STATES[10] is Xr in component IKr_Xr_gate (dimensionless).
 * ALGEBRAIC[24] is Rr in component IKr_Rr_gate (dimensionless).
 * ALGEBRAIC[22] is Xr_infinity in component IKr_Xr_gate (dimensionless).
 * ALGEBRAIC[23] is tau_Xr in component IKr_Xr_gate (millisecond).
 * ALGEBRAIC[30] is i_Ks_jct in component IKs (microA_per_microF).
 * ALGEBRAIC[31] is i_Ks_SL in component IKs (microA_per_microF).
 * ALGEBRAIC[28] is G_Ks_SL in component IKs (milliS_per_microF).
 * ALGEBRAIC[27] is G_Ks_jct in component IKs (milliS_per_microF).
 * CONSTANTS[29] is Fx_Ks_jct in component IKs (dimensionless).
 * CONSTANTS[30] is Fx_Ks_SL in component IKs (dimensionless).
 * ALGEBRAIC[29] is E_Ks in component IKs (millivolt).
 * CONSTANTS[31] is pKNa in component IKs (dimensionless).
 * ALGEBRAIC[25] is pCa_jct in component IKs (dimensionless).
 * ALGEBRAIC[26] is pCa_SL in component IKs (dimensionless).
 * STATES[11] is Xs in component IKs_Xs_gate (dimensionless).
 * ALGEBRAIC[33] is Xs_infinity in component IKs_Xs_gate (dimensionless).
 * ALGEBRAIC[34] is tau_Xs in component IKs_Xs_gate (millisecond).
 * CONSTANTS[32] is g_Kp in component IKp (milliS_per_microF).
 * CONSTANTS[33] is G_tos in component Itos (milliS_per_microF).
 * STATES[12] is Y_tos in component Itos_Y_gate (dimensionless).
 * STATES[13] is X_tos in component Itos_X_gate (dimensionless).
 * STATES[14] is R_tos in component Itos_R_gate (dimensionless).
 * ALGEBRAIC[37] is X_tos_infinity in component Itos_X_gate (dimensionless).
 * ALGEBRAIC[38] is tau_X_tos in component Itos_X_gate (millisecond).
 * ALGEBRAIC[39] is Y_tos_infinity in component Itos_Y_gate (dimensionless).
 * ALGEBRAIC[40] is tau_Y_tos in component Itos_Y_gate (millisecond).
 * ALGEBRAIC[41] is R_tos_infinity in component Itos_R_gate (dimensionless).
 * ALGEBRAIC[42] is tau_R_tos in component Itos_R_gate (millisecond).
 * CONSTANTS[34] is G_tof in component Itof (milliS_per_microF).
 * STATES[15] is Y_tof in component Itof_Y_gate (dimensionless).
 * STATES[16] is X_tof in component Itof_X_gate (dimensionless).
 * ALGEBRAIC[44] is X_tof_infinity in component Itof_X_gate (dimensionless).
 * ALGEBRAIC[45] is tau_X_tof in component Itof_X_gate (millisecond).
 * ALGEBRAIC[46] is Y_tof_infinity in component Itof_Y_gate (dimensionless).
 * ALGEBRAIC[47] is tau_Y_tof in component Itof_Y_gate (millisecond).
 * CONSTANTS[127] is G_K1 in component IK1 (milliS_per_microF).
 * ALGEBRAIC[101] is K1_infinity in component IK1_K1_gate (dimensionless).
 * ALGEBRAIC[48] is alpha_K1 in component IK1_K1_gate (per_millisecond).
 * ALGEBRAIC[49] is beta_K1 in component IK1_K1_gate (per_millisecond).
 * CONSTANTS[35] is G_Cl in component ICl_Ca (milliS_per_microF).
 * CONSTANTS[36] is Kd_ClCa in component ICl_Ca (millimolar).
 * CONSTANTS[37] is Fx_Cl_jct in component ICl_Ca (dimensionless).
 * CONSTANTS[38] is Fx_Cl_SL in component ICl_Ca (dimensionless).
 * CONSTANTS[39] is G_ClBk in component IClb (milliS_per_microF).
 * ALGEBRAIC[104] is i_CaL_Ca_SL in component ICaL (microA_per_microF).
 * ALGEBRAIC[102] is i_CaL_Ca_jct in component ICaL (microA_per_microF).
 * ALGEBRAIC[105] is i_CaL_Na_SL in component ICaL (microA_per_microF).
 * ALGEBRAIC[103] is i_CaL_Na_jct in component ICaL (microA_per_microF).
 * ALGEBRAIC[106] is i_CaL_K in component ICaL (microA_per_microF).
 * CONSTANTS[40] is PCa in component ICaL (litre_per_farad_millisecond).
 * CONSTANTS[41] is PNa in component ICaL (litre_per_farad_millisecond).
 * CONSTANTS[42] is PK in component ICaL (litre_per_farad_millisecond).
 * CONSTANTS[43] is Fx_ICaL_jct in component ICaL (dimensionless).
 * CONSTANTS[44] is Fx_ICaL_SL in component ICaL (dimensionless).
 * CONSTANTS[45] is gamma_Cai in component ICaL (dimensionless).
 * CONSTANTS[46] is gamma_Cao in component ICaL (dimensionless).
 * CONSTANTS[47] is gamma_Nai in component ICaL (dimensionless).
 * CONSTANTS[48] is gamma_Nao in component ICaL (dimensionless).
 * CONSTANTS[49] is gamma_Ki in component ICaL (dimensionless).
 * CONSTANTS[50] is gamma_Ko in component ICaL (dimensionless).
 * CONSTANTS[51] is Q10_CaL in component ICaL (dimensionless).
 * CONSTANTS[128] is Q_CaL in component ICaL (dimensionless).
 * STATES[17] is d in component ICaL_d_gate (dimensionless).
 * STATES[18] is f in component ICaL_f_gate (dimensionless).
 * ALGEBRAIC[57] is fCa_SL in component ICaL_fCa_gate (dimensionless).
 * ALGEBRAIC[58] is fCa_jct in component ICaL_fCa_gate (dimensionless).
 * ALGEBRAIC[52] is temp in component ICaL (coulomb_per_mole).
 * ALGEBRAIC[53] is d_infinity in component ICaL_d_gate (dimensionless).
 * ALGEBRAIC[54] is tau_d in component ICaL_d_gate (millisecond).
 * ALGEBRAIC[55] is f_infinity in component ICaL_f_gate (dimensionless).
 * ALGEBRAIC[56] is tau_f in component ICaL_f_gate (millisecond).
 * STATES[19] is fCaB_SL in component ICaL_fCa_gate (dimensionless).
 * STATES[20] is fCaB_jct in component ICaL_fCa_gate (dimensionless).
 * ALGEBRAIC[64] is i_NaCa_SL in component INaCa (microA_per_microF).
 * ALGEBRAIC[63] is i_NaCa_jct in component INaCa (microA_per_microF).
 * CONSTANTS[52] is V_max in component INaCa (microA_per_microF).
 * CONSTANTS[53] is Fx_NCX_jct in component INaCa (dimensionless).
 * CONSTANTS[54] is Fx_NCX_SL in component INaCa (dimensionless).
 * CONSTANTS[55] is Q10_NCX in component INaCa (dimensionless).
 * CONSTANTS[129] is Q_NCX in component INaCa (dimensionless).
 * CONSTANTS[56] is K_mNai in component INaCa (millimolar).
 * CONSTANTS[57] is K_mCao in component INaCa (millimolar).
 * CONSTANTS[58] is K_mNao in component INaCa (millimolar).
 * CONSTANTS[59] is K_mCai in component INaCa (millimolar).
 * ALGEBRAIC[61] is Ka_SL in component INaCa (dimensionless).
 * ALGEBRAIC[62] is Ka_jct in component INaCa (dimensionless).
 * CONSTANTS[60] is Kd_act in component INaCa (millimolar).
 * CONSTANTS[61] is ksat in component INaCa (dimensionless).
 * CONSTANTS[62] is eta in component INaCa (dimensionless).
 * CONSTANTS[63] is HNa in component INaCa (dimensionless).
 * ALGEBRAIC[59] is temp_jct in component INaCa (millimolar4).
 * ALGEBRAIC[60] is temp_SL in component INaCa (millimolar4).
 * ALGEBRAIC[67] is i_Cap_SL in component ICap (microA_per_microF).
 * ALGEBRAIC[66] is i_Cap_jct in component ICap (microA_per_microF).
 * CONSTANTS[64] is Fx_SLCaP_jct in component ICap (dimensionless).
 * CONSTANTS[65] is Fx_SLCaP_SL in component ICap (dimensionless).
 * CONSTANTS[66] is Q10_SLCaP in component ICap (dimensionless).
 * CONSTANTS[130] is Q_SLCaP in component ICap (dimensionless).
 * CONSTANTS[67] is Km in component ICap (millimolar).
 * CONSTANTS[68] is H in component ICap (dimensionless).
 * CONSTANTS[69] is V_maxAF in component ICap (microA_per_microF).
 * ALGEBRAIC[69] is i_Cab_jct in component ICab (microA_per_microF).
 * ALGEBRAIC[70] is i_Cab_SL in component ICab (microA_per_microF).
 * CONSTANTS[70] is G_CaBk in component ICab (milliS_per_microF).
 * CONSTANTS[71] is Fx_CaBk_jct in component ICab (dimensionless).
 * CONSTANTS[72] is Fx_CaBk_SL in component ICab (dimensionless).
 * ALGEBRAIC[76] is j_rel_SR in component Jrel_SR (millimolar_per_millisecond).
 * CONSTANTS[73] is Max_SR in component Jrel_SR (dimensionless).
 * CONSTANTS[74] is Min_SR in component Jrel_SR (dimensionless).
 * CONSTANTS[75] is EC50_SR in component Jrel_SR (millimolar).
 * STATES[21] is R in component Jrel_SR (dimensionless).
 * STATES[22] is I in component Jrel_SR (dimensionless).
 * ALGEBRAIC[75] is RI in component Jrel_SR (dimensionless).
 * STATES[23] is O in component Jrel_SR (dimensionless).
 * CONSTANTS[76] is ks in component Jrel_SR (per_millisecond).
 * CONSTANTS[77] is koCa in component Jrel_SR (per_millimolar2_per_millisecond).
 * CONSTANTS[78] is kom in component Jrel_SR (per_millisecond).
 * CONSTANTS[79] is kiCa in component Jrel_SR (per_millimolar_per_millisecond).
 * CONSTANTS[80] is kim in component Jrel_SR (per_millisecond).
 * CONSTANTS[81] is HSR in component Jrel_SR (dimensionless).
 * STATES[24] is Ca_SR in component Ca_buffer (millimolar).
 * ALGEBRAIC[72] is kCaSR in component Jrel_SR (dimensionless).
 * ALGEBRAIC[73] is koSRCa in component Jrel_SR (per_millimolar2_per_millisecond).
 * ALGEBRAIC[74] is kiSRCa in component Jrel_SR (per_millimolar_per_millisecond).
 * ALGEBRAIC[77] is j_leak_SR in component Jleak_SR (millimolar_per_millisecond).
 * CONSTANTS[82] is KSRleak in component Jleak_SR (per_millisecond).
 * ALGEBRAIC[78] is j_pump_SR in component Jpump_SR (millimolar_per_millisecond).
 * CONSTANTS[83] is V_max in component Jpump_SR (millimolar_per_millisecond).
 * CONSTANTS[84] is Q10_SRCaP in component Jpump_SR (dimensionless).
 * CONSTANTS[131] is Q_SRCaP in component Jpump_SR (dimensionless).
 * CONSTANTS[85] is Kmf in component Jpump_SR (millimolar).
 * CONSTANTS[86] is Kmr in component Jpump_SR (millimolar).
 * CONSTANTS[87] is H in component Jpump_SR (dimensionless).
 * ALGEBRAIC[79] is J_Na_jct_SL in component ion_diffusion (millimole_per_millisecond).
 * ALGEBRAIC[80] is J_Na_SL_myo in component ion_diffusion (millimole_per_millisecond).
 * ALGEBRAIC[81] is J_Ca_jct_SL in component ion_diffusion (millimole_per_millisecond).
 * ALGEBRAIC[82] is J_Ca_SL_myo in component ion_diffusion (millimole_per_millisecond).
 * STATES[25] is Na_SL_buf in component Na_buffer (millimolar).
 * STATES[26] is Na_jct_buf in component Na_buffer (millimolar).
 * CONSTANTS[88] is Bmax_SL in component Na_buffer (millimolar).
 * CONSTANTS[89] is Bmax_jct in component Na_buffer (millimolar).
 * CONSTANTS[90] is kon in component Na_buffer (per_millimolar_per_millisecond).
 * CONSTANTS[91] is koff in component Na_buffer (per_millisecond).
 * ALGEBRAIC[83] is dNa_jct_buf in component Na_buffer (millimolar_per_millisecond).
 * ALGEBRAIC[84] is dNa_SL_buf in component Na_buffer (millimolar_per_millisecond).
 * STATES[27] is Ca_SLB_SL in component Ca_buffer (millimolar).
 * STATES[28] is Ca_SLB_jct in component Ca_buffer (millimolar).
 * STATES[29] is Ca_SLHigh_SL in component Ca_buffer (millimolar).
 * STATES[30] is Ca_SLHigh_jct in component Ca_buffer (millimolar).
 * STATES[31] is Ca_Calsequestrin in component Ca_buffer (millimolar).
 * CONSTANTS[92] is Bmax_SLB_SL in component Ca_buffer (millimolar).
 * CONSTANTS[93] is Bmax_SLB_jct in component Ca_buffer (millimolar).
 * CONSTANTS[94] is Bmax_SLHigh_SL in component Ca_buffer (millimolar).
 * CONSTANTS[95] is Bmax_SLHigh_jct in component Ca_buffer (millimolar).
 * CONSTANTS[96] is Bmax_Calsequestrin in component Ca_buffer (millimolar).
 * CONSTANTS[97] is kon_SL in component Ca_buffer (per_millimolar_per_millisecond).
 * CONSTANTS[98] is kon_Calsequestrin in component Ca_buffer (per_millimolar_per_millisecond).
 * CONSTANTS[99] is koff_SLB in component Ca_buffer (per_millisecond).
 * CONSTANTS[100] is koff_SLHigh in component Ca_buffer (per_millisecond).
 * CONSTANTS[101] is koff_Calsequestrin in component Ca_buffer (per_millisecond).
 * ALGEBRAIC[85] is dCalsequestrin in component Ca_buffer (millimolar_per_millisecond).
 * ALGEBRAIC[99] is dCa_cytosol_tot_bound in component cytosolic_Ca_buffer (millimolar_per_millisecond).
 * ALGEBRAIC[86] is dCa_SLB_SL in component Ca_buffer (millimolar_per_millisecond).
 * ALGEBRAIC[87] is dCa_SLB_jct in component Ca_buffer (millimolar_per_millisecond).
 * ALGEBRAIC[88] is dCa_SLHigh_SL in component Ca_buffer (millimolar_per_millisecond).
 * ALGEBRAIC[89] is dCa_SLHigh_jct in component Ca_buffer (millimolar_per_millisecond).
 * ALGEBRAIC[90] is dCa_jct_tot_bound in component Ca_buffer (millimolar_per_millisecond).
 * ALGEBRAIC[91] is dCa_SL_tot_bound in component Ca_buffer (millimolar_per_millisecond).
 * ALGEBRAIC[108] is i_Ca_jct_tot in component Ca_buffer (microA_per_microF).
 * ALGEBRAIC[109] is i_Ca_SL_tot in component Ca_buffer (microA_per_microF).
 * STATES[32] is Ca_TroponinC in component cytosolic_Ca_buffer (millimolar).
 * STATES[33] is Ca_TroponinC_Ca_Mg in component cytosolic_Ca_buffer (millimolar).
 * STATES[34] is Mg_TroponinC_Ca_Mg in component cytosolic_Ca_buffer (millimolar).
 * STATES[35] is Ca_Calmodulin in component cytosolic_Ca_buffer (millimolar).
 * STATES[36] is Ca_Myosin in component cytosolic_Ca_buffer (millimolar).
 * STATES[37] is Mg_Myosin in component cytosolic_Ca_buffer (millimolar).
 * STATES[38] is Ca_SRB in component cytosolic_Ca_buffer (millimolar).
 * CONSTANTS[102] is Bmax_TroponinC in component cytosolic_Ca_buffer (millimolar).
 * CONSTANTS[103] is Bmax_TroponinC_Ca_Mg_Ca in component cytosolic_Ca_buffer (millimolar).
 * CONSTANTS[104] is Bmax_TroponinC_Ca_Mg_Mg in component cytosolic_Ca_buffer (millimolar).
 * CONSTANTS[105] is Bmax_Calmodulin in component cytosolic_Ca_buffer (millimolar).
 * CONSTANTS[106] is Bmax_Myosin_Ca in component cytosolic_Ca_buffer (millimolar).
 * CONSTANTS[107] is Bmax_Myosin_Mg in component cytosolic_Ca_buffer (millimolar).
 * CONSTANTS[108] is Bmax_SRB in component cytosolic_Ca_buffer (millimolar).
 * CONSTANTS[109] is kon_TroponinC in component cytosolic_Ca_buffer (per_millimolar_per_millisecond).
 * CONSTANTS[110] is kon_TroponinC_Ca_Mg_Ca in component cytosolic_Ca_buffer (per_millimolar_per_millisecond).
 * CONSTANTS[111] is kon_TroponinC_Ca_Mg_Mg in component cytosolic_Ca_buffer (per_millimolar_per_millisecond).
 * CONSTANTS[112] is kon_Calmodulin in component cytosolic_Ca_buffer (per_millimolar_per_millisecond).
 * CONSTANTS[113] is kon_Myosin_Ca in component cytosolic_Ca_buffer (per_millimolar_per_millisecond).
 * CONSTANTS[114] is kon_Myosin_Mg in component cytosolic_Ca_buffer (per_millimolar_per_millisecond).
 * CONSTANTS[115] is kon_SRB in component cytosolic_Ca_buffer (per_millimolar_per_millisecond).
 * CONSTANTS[116] is koff_TroponinC in component cytosolic_Ca_buffer (per_millisecond).
 * CONSTANTS[117] is koff_TroponinC_Ca_Mg_Ca in component cytosolic_Ca_buffer (per_millisecond).
 * CONSTANTS[118] is koff_TroponinC_Ca_Mg_Mg in component cytosolic_Ca_buffer (per_millisecond).
 * CONSTANTS[119] is koff_Calmodulin in component cytosolic_Ca_buffer (per_millisecond).
 * CONSTANTS[120] is koff_Myosin_Ca in component cytosolic_Ca_buffer (per_millisecond).
 * CONSTANTS[121] is koff_Myosin_Mg in component cytosolic_Ca_buffer (per_millisecond).
 * CONSTANTS[122] is koff_SRB in component cytosolic_Ca_buffer (per_millisecond).
 * ALGEBRAIC[92] is dCa_TroponinC in component cytosolic_Ca_buffer (millimolar_per_millisecond).
 * ALGEBRAIC[93] is dCa_TroponinC_Ca_Mg in component cytosolic_Ca_buffer (millimolar_per_millisecond).
 * ALGEBRAIC[94] is dMg_TroponinC_Ca_Mg in component cytosolic_Ca_buffer (millimolar_per_millisecond).
 * ALGEBRAIC[95] is dCa_Calmodulin in component cytosolic_Ca_buffer (millimolar_per_millisecond).
 * ALGEBRAIC[96] is dCa_Myosin in component cytosolic_Ca_buffer (millimolar_per_millisecond).
 * ALGEBRAIC[97] is dMg_Myosin in component cytosolic_Ca_buffer (millimolar_per_millisecond).
 * ALGEBRAIC[98] is dCa_SRB in component cytosolic_Ca_buffer (millimolar_per_millisecond).
 * RATES[0] is d/dt V in component cell (millivolt).
 * RATES[8] is d/dt h in component INa_h_gate (dimensionless).
 * RATES[9] is d/dt j in component INa_j_gate (dimensionless).
 * RATES[7] is d/dt m in component INa_m_gate (dimensionless).
 * RATES[10] is d/dt Xr in component IKr_Xr_gate (dimensionless).
 * RATES[11] is d/dt Xs in component IKs_Xs_gate (dimensionless).
 * RATES[13] is d/dt X_tos in component Itos_X_gate (dimensionless).
 * RATES[12] is d/dt Y_tos in component Itos_Y_gate (dimensionless).
 * RATES[14] is d/dt R_tos in component Itos_R_gate (dimensionless).
 * RATES[16] is d/dt X_tof in component Itof_X_gate (dimensionless).
 * RATES[15] is d/dt Y_tof in component Itof_Y_gate (dimensionless).
 * RATES[17] is d/dt d in component ICaL_d_gate (dimensionless).
 * RATES[18] is d/dt f in component ICaL_f_gate (dimensionless).
 * RATES[19] is d/dt fCaB_SL in component ICaL_fCa_gate (dimensionless).
 * RATES[20] is d/dt fCaB_jct in component ICaL_fCa_gate (dimensionless).
 * RATES[21] is d/dt R in component Jrel_SR (dimensionless).
 * RATES[23] is d/dt O in component Jrel_SR (dimensionless).
 * RATES[22] is d/dt I in component Jrel_SR (dimensionless).
 * RATES[26] is d/dt Na_jct_buf in component Na_buffer (millimolar).
 * RATES[25] is d/dt Na_SL_buf in component Na_buffer (millimolar).
 * RATES[2] is d/dt Na_jct in component Na_buffer (millimolar).
 * RATES[3] is d/dt Na_SL in component Na_buffer (millimolar).
 * RATES[1] is d/dt Nai in component Na_buffer (millimolar).
 * RATES[31] is d/dt Ca_Calsequestrin in component Ca_buffer (millimolar).
 * RATES[27] is d/dt Ca_SLB_SL in component Ca_buffer (millimolar).
 * RATES[28] is d/dt Ca_SLB_jct in component Ca_buffer (millimolar).
 * RATES[29] is d/dt Ca_SLHigh_SL in component Ca_buffer (millimolar).
 * RATES[30] is d/dt Ca_SLHigh_jct in component Ca_buffer (millimolar).
 * RATES[24] is d/dt Ca_SR in component Ca_buffer (millimolar).
 * RATES[5] is d/dt Ca_jct in component Ca_buffer (millimolar).
 * RATES[6] is d/dt Ca_SL in component Ca_buffer (millimolar).
 * RATES[4] is d/dt Cai in component Ca_buffer (millimolar).
 * RATES[32] is d/dt Ca_TroponinC in component cytosolic_Ca_buffer (millimolar).
 * RATES[33] is d/dt Ca_TroponinC_Ca_Mg in component cytosolic_Ca_buffer (millimolar).
 * RATES[34] is d/dt Mg_TroponinC_Ca_Mg in component cytosolic_Ca_buffer (millimolar).
 * RATES[35] is d/dt Ca_Calmodulin in component cytosolic_Ca_buffer (millimolar).
 * RATES[36] is d/dt Ca_Myosin in component cytosolic_Ca_buffer (millimolar).
 * RATES[37] is d/dt Mg_Myosin in component cytosolic_Ca_buffer (millimolar).
 * RATES[38] is d/dt Ca_SRB in component cytosolic_Ca_buffer (millimolar).
 * There are a total of 6 condition variables.
 */
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
STATES[0] = -8.556885e1;
CONSTANTS[0] = 100;
CONSTANTS[1] = 1000;
CONSTANTS[2] = 5;
CONSTANTS[3] = 9.5;
CONSTANTS[4] = 5.4;
CONSTANTS[5] = 140;
CONSTANTS[6] = 1.8;
CONSTANTS[7] = 150;
CONSTANTS[8] = 135;
CONSTANTS[9] = 1;
CONSTANTS[10] = 15;
CONSTANTS[11] = 8314.3;
CONSTANTS[12] = 310;
CONSTANTS[13] = 96485;
CONSTANTS[14] = 1.381e-10;
CONSTANTS[15] = 100;
CONSTANTS[16] = 10.25;
STATES[1] = 8.80853;
STATES[2] = 8.80329;
STATES[3] = 8.80733;
STATES[4] = 8.597401e-5;
STATES[5] = 1.737475e-4;
STATES[6] = 1.031812e-4;
CONSTANTS[17] = 16;
CONSTANTS[18] = 0.11;
CONSTANTS[19] = 0.89;
STATES[7] = 1.405627e-3;
STATES[8] = 9.867005e-1;
STATES[9] = 9.91562e-1;
CONSTANTS[20] = 0.297e-3;
CONSTANTS[21] = 0.11;
CONSTANTS[22] = 0.89;
CONSTANTS[23] = 4;
CONSTANTS[24] = 11;
CONSTANTS[25] = 1.5;
CONSTANTS[26] = 1.90719;
CONSTANTS[27] = 0.11;
CONSTANTS[28] = 0.89;
STATES[10] = 8.641386e-3;
CONSTANTS[29] = 0.11;
CONSTANTS[30] = 0.89;
CONSTANTS[31] = 0.01833;
STATES[11] = 5.412034e-3;
CONSTANTS[32] = 0.001;
CONSTANTS[33] = 0.06;
STATES[12] = 9.945511e-1;
STATES[13] = 4.051574e-3;
STATES[14] = 0.9946;
CONSTANTS[34] = 0.02;
STATES[15] = 9.945511e-1;
STATES[16] = 4.051574e-3;
CONSTANTS[35] = 0.109625;
CONSTANTS[36] = 0.1;
CONSTANTS[37] = 0.11;
CONSTANTS[38] = 0.89;
CONSTANTS[39] = 0.009;
CONSTANTS[40] = 5.4e-4;
CONSTANTS[41] = 1.5e-8;
CONSTANTS[42] = 2.7e-7;
CONSTANTS[43] = 0.9;
CONSTANTS[44] = 0.1;
CONSTANTS[45] = 0.341;
CONSTANTS[46] = 0.341;
CONSTANTS[47] = 0.75;
CONSTANTS[48] = 0.75;
CONSTANTS[49] = 0.75;
CONSTANTS[50] = 0.75;
CONSTANTS[51] = 1.8;
STATES[17] = 7.175662e-6;
STATES[18] = 1.000681;
STATES[19] = 1.452605e-2;
STATES[20] = 2.421991e-2;
CONSTANTS[52] = 9;
CONSTANTS[53] = 0.11;
CONSTANTS[54] = 0.89;
CONSTANTS[55] = 1.57;
CONSTANTS[56] = 12.29;
CONSTANTS[57] = 1.3;
CONSTANTS[58] = 87.5;
CONSTANTS[59] = 0.00359;
CONSTANTS[60] = 0.000256;
CONSTANTS[61] = 0.27;
CONSTANTS[62] = 0.35;
CONSTANTS[63] = 3;
CONSTANTS[64] = 0.11;
CONSTANTS[65] = 0.89;
CONSTANTS[66] = 2.35;
CONSTANTS[67] = 0.0005;
CONSTANTS[68] = 1.6;
CONSTANTS[69] = 0.0673;
CONSTANTS[70] = 0.0002513;
CONSTANTS[71] = 0.11;
CONSTANTS[72] = 0.89;
CONSTANTS[73] = 15;
CONSTANTS[74] = 1;
CONSTANTS[75] = 0.45;
STATES[21] = 8.884332e-1;
STATES[22] = 1.024274e-7;
STATES[23] = 8.156628e-7;
CONSTANTS[76] = 25;
CONSTANTS[77] = 10;
CONSTANTS[78] = 0.06;
CONSTANTS[79] = 0.5;
CONSTANTS[80] = 0.005;
CONSTANTS[81] = 2.5;
STATES[24] = 5.545201e-1;
CONSTANTS[82] = 5.348e-6;
CONSTANTS[83] = 5.3114e-3;
CONSTANTS[84] = 2.6;
CONSTANTS[85] = 0.000246;
CONSTANTS[86] = 1.7;
CONSTANTS[87] = 1.787;
STATES[25] = 7.720854e-1;
STATES[26] = 3.539892;
CONSTANTS[88] = 1.65;
CONSTANTS[89] = 7.561;
CONSTANTS[90] = 0.0001;
CONSTANTS[91] = 1e-3;
STATES[27] = 1.110363e-1;
STATES[28] = 9.566355e-3;
STATES[29] = 7.297378e-2;
STATES[30] = 7.347888e-3;
STATES[31] = 1.242988;
CONSTANTS[92] = 0.0374;
CONSTANTS[93] = 0.0046;
CONSTANTS[94] = 0.0134;
CONSTANTS[95] = 0.00165;
CONSTANTS[96] = 0.14;
CONSTANTS[97] = 100;
CONSTANTS[98] = 100;
CONSTANTS[99] = 1.3;
CONSTANTS[100] = 30e-3;
CONSTANTS[101] = 65;
STATES[32] = 8.773191e-3;
STATES[33] = 1.078283e-1;
STATES[34] = 1.524002e-2;
STATES[35] = 2.911916e-4;
STATES[36] = 1.298754e-3;
STATES[37] = 1.381982e-1;
STATES[38] = 2.143165e-3;
CONSTANTS[102] = 0.07;
CONSTANTS[103] = 0.14;
CONSTANTS[104] = 0.14;
CONSTANTS[105] = 0.024;
CONSTANTS[106] = 0.14;
CONSTANTS[107] = 0.14;
CONSTANTS[108] = 0.0171;
CONSTANTS[109] = 32.7;
CONSTANTS[110] = 2.37;
CONSTANTS[111] = 3e-3;
CONSTANTS[112] = 34;
CONSTANTS[113] = 13.8;
CONSTANTS[114] = 15.7e-3;
CONSTANTS[115] = 100;
CONSTANTS[116] = 19.6e-3;
CONSTANTS[117] = 0.032e-3;
CONSTANTS[118] = 3.33e-3;
CONSTANTS[119] = 238e-3;
CONSTANTS[120] = 0.46e-3;
CONSTANTS[121] = 0.057e-3;
CONSTANTS[122] = 60e-3;
CONSTANTS[123] =  (( CONSTANTS[11]*CONSTANTS[12])/CONSTANTS[13])*log(CONSTANTS[4]/CONSTANTS[8]);
CONSTANTS[124] =  (( CONSTANTS[11]*CONSTANTS[12])/CONSTANTS[13])*log(CONSTANTS[10]/CONSTANTS[7]);
CONSTANTS[125] = (exp(CONSTANTS[5]/67.3000) - 1.00000)/7.00000;
CONSTANTS[126] =  0.0300000* pow((CONSTANTS[4]/5.40000), 1.0 / 2);
CONSTANTS[127] =  0.900000* pow((CONSTANTS[4]/5.40000), 1.0 / 2);
CONSTANTS[128] = pow(CONSTANTS[51], (CONSTANTS[12] - 310.000)/10.0000);
CONSTANTS[129] = pow(CONSTANTS[55], (CONSTANTS[12] - 310.000)/10.0000);
CONSTANTS[130] = pow(CONSTANTS[66], (CONSTANTS[12] - 310.000)/10.0000);
CONSTANTS[131] = pow(CONSTANTS[84], (CONSTANTS[12] - 310.000)/10.0000);
CONSTANTS[132] = ( 3.14159*pow(CONSTANTS[16]/1000.00, 2.00000)*CONSTANTS[15])/pow(1000.00, 3.00000);
CONSTANTS[133] =  0.0350000*CONSTANTS[132];
CONSTANTS[134] =  0.0200000*CONSTANTS[132];
CONSTANTS[135] =  0.0539000*0.0100000*CONSTANTS[132];
CONSTANTS[136] =  0.650000*CONSTANTS[132];
RATES[0] = 0.1001;
RATES[8] = 0.1001;
RATES[9] = 0.1001;
RATES[7] = 0.1001;
RATES[10] = 0.1001;
RATES[11] = 0.1001;
RATES[13] = 0.1001;
RATES[12] = 0.1001;
RATES[14] = 0.1001;
RATES[16] = 0.1001;
RATES[15] = 0.1001;
RATES[17] = 0.1001;
RATES[18] = 0.1001;
RATES[19] = 0.1001;
RATES[20] = 0.1001;
RATES[21] = 0.1001;
RATES[23] = 0.1001;
RATES[22] = 0.1001;
RATES[26] = 0.1001;
RATES[25] = 0.1001;
RATES[2] = 0.1001;
RATES[3] = 0.1001;
RATES[1] = 0.1001;
RATES[31] = 0.1001;
RATES[27] = 0.1001;
RATES[28] = 0.1001;
RATES[29] = 0.1001;
RATES[30] = 0.1001;
RATES[24] = 0.1001;
RATES[5] = 0.1001;
RATES[6] = 0.1001;
RATES[4] = 0.1001;
RATES[32] = 0.1001;
RATES[33] = 0.1001;
RATES[34] = 0.1001;
RATES[35] = 0.1001;
RATES[36] = 0.1001;
RATES[37] = 0.1001;
RATES[38] = 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[8]+ALGEBRAIC[17]+ALGEBRAIC[21]+ALGEBRAIC[100]+ALGEBRAIC[32]+ALGEBRAIC[36]+ALGEBRAIC[43]+ALGEBRAIC[110]+ALGEBRAIC[65]+ALGEBRAIC[50]+ALGEBRAIC[51]+ALGEBRAIC[107]+ALGEBRAIC[71]+ALGEBRAIC[68]+ALGEBRAIC[35]+ALGEBRAIC[0]);
resid[1] = RATES[8] -  ALGEBRAIC[9]*(1.00000 - STATES[8]) -  ALGEBRAIC[10]*STATES[8];
resid[2] = RATES[9] -  ALGEBRAIC[11]*(1.00000 - STATES[9]) -  ALGEBRAIC[12]*STATES[9];
resid[3] = RATES[7] -  ALGEBRAIC[13]*(1.00000 - STATES[7]) -  ALGEBRAIC[14]*STATES[7];
resid[4] = RATES[10] - (ALGEBRAIC[22] - STATES[10])/ALGEBRAIC[23];
resid[5] = RATES[11] - (ALGEBRAIC[33] - STATES[11])/ALGEBRAIC[34];
resid[6] = RATES[13] - (ALGEBRAIC[37] - STATES[13])/ALGEBRAIC[38];
resid[7] = RATES[12] - (ALGEBRAIC[39] - STATES[12])/ALGEBRAIC[40];
resid[8] = RATES[14] - (ALGEBRAIC[41] - STATES[14])/ALGEBRAIC[42];
resid[9] = RATES[16] - (ALGEBRAIC[44] - STATES[16])/ALGEBRAIC[45];
resid[10] = RATES[15] - (ALGEBRAIC[46] - STATES[15])/ALGEBRAIC[47];
resid[11] = RATES[17] - (ALGEBRAIC[53] - STATES[17])/ALGEBRAIC[54];
resid[12] = RATES[18] - (ALGEBRAIC[55] - STATES[18])/ALGEBRAIC[56];
resid[13] = RATES[19] -  1.70000*STATES[6]*(1.00000 - STATES[19]) -  0.0119000*STATES[19];
resid[14] = RATES[20] -  1.70000*STATES[5]*(1.00000 - STATES[20]) -  0.0119000*STATES[20];
resid[15] = RATES[21] - ( CONSTANTS[80]*ALGEBRAIC[75] -  ALGEBRAIC[74]*STATES[5]*STATES[21]) - ( ALGEBRAIC[73]*pow(STATES[5], 2.00000)*STATES[21] -  CONSTANTS[78]*STATES[23]);
resid[16] = RATES[23] - ( ALGEBRAIC[73]*pow(STATES[5], 2.00000)*STATES[21] -  CONSTANTS[78]*STATES[23]) - ( ALGEBRAIC[74]*STATES[5]*STATES[23] -  CONSTANTS[80]*STATES[22]);
resid[17] = RATES[22] - ( ALGEBRAIC[74]*STATES[5]*STATES[23] -  CONSTANTS[80]*STATES[22]) - ( CONSTANTS[78]*STATES[22] -  ALGEBRAIC[73]*pow(STATES[5], 2.00000)*ALGEBRAIC[75]);
resid[18] = RATES[26] - ALGEBRAIC[83];
resid[19] = RATES[25] - ALGEBRAIC[84];
resid[20] = RATES[2] - (( - CONSTANTS[14]*(ALGEBRAIC[6]+ 3.00000*ALGEBRAIC[63]+ALGEBRAIC[15]+ 3.00000*ALGEBRAIC[19]+ALGEBRAIC[103]))/( CONSTANTS[135]*CONSTANTS[13]) - ALGEBRAIC[79]/CONSTANTS[135]) - ALGEBRAIC[83];
resid[21] = RATES[3] - (( - CONSTANTS[14]*(ALGEBRAIC[7]+ 3.00000*ALGEBRAIC[64]+ALGEBRAIC[16]+ 3.00000*ALGEBRAIC[20]+ALGEBRAIC[105]))/( CONSTANTS[134]*CONSTANTS[13])+(ALGEBRAIC[79] - ALGEBRAIC[80])/CONSTANTS[134]) - ALGEBRAIC[84];
resid[22] = RATES[1] - ALGEBRAIC[80]/CONSTANTS[136];
resid[23] = RATES[31] - ALGEBRAIC[85];
resid[24] = RATES[27] - ALGEBRAIC[86];
resid[25] = RATES[28] - ALGEBRAIC[87];
resid[26] = RATES[29] - ALGEBRAIC[88];
resid[27] = RATES[30] - ALGEBRAIC[89];
resid[28] = RATES[24] - (ALGEBRAIC[78] - (( ALGEBRAIC[77]*CONSTANTS[136])/CONSTANTS[133]+ALGEBRAIC[76])) - ALGEBRAIC[85];
resid[29] = RATES[5] - ((( - ALGEBRAIC[108]*CONSTANTS[14])/( CONSTANTS[135]*2.00000*CONSTANTS[13]) - ALGEBRAIC[81]/CONSTANTS[135])+( ALGEBRAIC[76]*CONSTANTS[133])/CONSTANTS[135]+( ALGEBRAIC[77]*CONSTANTS[136])/CONSTANTS[135]) -  1.00000*ALGEBRAIC[90];
resid[30] = RATES[6] - (( - ALGEBRAIC[109]*CONSTANTS[14])/( CONSTANTS[134]*2.00000*CONSTANTS[13])+(ALGEBRAIC[81] - ALGEBRAIC[82])/CONSTANTS[134]) -  1.00000*ALGEBRAIC[91];
resid[31] = RATES[4] - (( - ALGEBRAIC[78]*CONSTANTS[133])/CONSTANTS[136]+ALGEBRAIC[82]/CONSTANTS[136]) -  1.00000*ALGEBRAIC[99];
resid[32] = RATES[32] - ALGEBRAIC[92];
resid[33] = RATES[33] - ALGEBRAIC[93];
resid[34] = RATES[34] - ALGEBRAIC[94];
resid[35] = RATES[35] - ALGEBRAIC[95];
resid[36] = RATES[36] - ALGEBRAIC[96];
resid[37] = RATES[37] - ALGEBRAIC[97];
resid[38] = RATES[38] - ALGEBRAIC[98];
}
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] = (CONDVAR[0]>=0.00000&&CONDVAR[1]<=0.00000 ? - CONSTANTS[3] : 0.00000);
ALGEBRAIC[1] =  (( CONSTANTS[11]*CONSTANTS[12])/CONSTANTS[13])*log(CONSTANTS[5]/STATES[2]);
ALGEBRAIC[5] =  pow(STATES[7], 3.00000)*STATES[8]*STATES[9];
ALGEBRAIC[6] =  CONSTANTS[18]*CONSTANTS[17]*ALGEBRAIC[5]*(STATES[0] - ALGEBRAIC[1]);
ALGEBRAIC[2] =  (( CONSTANTS[11]*CONSTANTS[12])/CONSTANTS[13])*log(CONSTANTS[5]/STATES[3]);
ALGEBRAIC[7] =  CONSTANTS[19]*CONSTANTS[17]*ALGEBRAIC[5]*(STATES[0] - ALGEBRAIC[2]);
ALGEBRAIC[8] = ALGEBRAIC[6]+ALGEBRAIC[7];
ALGEBRAIC[9] = (CONDVAR[2]<0.00000 ?  0.135000*exp((80.0000+STATES[0])/- 6.80000) : 0.00000);
ALGEBRAIC[10] = (CONDVAR[3]<0.00000 ?  3.56000*exp( 0.0790000*STATES[0])+ 310000.*exp( 0.350000*STATES[0]) : 1.00000/( 0.130000*(1.00000+exp((STATES[0]+10.6600)/- 11.1000))));
ALGEBRAIC[11] = (CONDVAR[4]<0.00000 ? (( ( - 127140.*exp( 0.244400*STATES[0]) -  3.47400e-05*exp( - 0.0439100*STATES[0]))*(STATES[0]+37.7800))/1.00000)/(1.00000+exp( 0.311000*(STATES[0]+79.2300))) : 0.00000);
ALGEBRAIC[12] = (CONDVAR[5]<0.00000 ? ( 0.121200*exp( - 0.0105200*STATES[0]))/(1.00000+exp( - 0.137800*(STATES[0]+40.1400))) : ( 0.300000*exp( - 2.53500e-07*STATES[0]))/(1.00000+exp( - 0.100000*(STATES[0]+32.0000))));
ALGEBRAIC[13] = (( 0.320000*(STATES[0]+47.1300))/1.00000)/(1.00000 - exp( - 0.100000*(STATES[0]+47.1300)));
ALGEBRAIC[14] =  0.0800000*exp(- STATES[0]/11.0000);
ALGEBRAIC[15] =  CONSTANTS[21]*CONSTANTS[20]*(STATES[0] - ALGEBRAIC[1]);
ALGEBRAIC[16] =  CONSTANTS[22]*CONSTANTS[20]*(STATES[0] - ALGEBRAIC[2]);
ALGEBRAIC[17] = ALGEBRAIC[15]+ALGEBRAIC[16];
ALGEBRAIC[18] = 1.00000/(1.00000+ 0.124500*exp(( - 0.100000*STATES[0]*CONSTANTS[13])/( CONSTANTS[11]*CONSTANTS[12]))+ 0.0365000*CONSTANTS[125]*exp(( - STATES[0]*CONSTANTS[13])/( CONSTANTS[11]*CONSTANTS[12])));
ALGEBRAIC[19] = ( (( CONSTANTS[27]*CONSTANTS[26]*ALGEBRAIC[18])/(1.00000+pow(CONSTANTS[24]/STATES[2], CONSTANTS[23])))*CONSTANTS[4])/(CONSTANTS[4]+CONSTANTS[25]);
ALGEBRAIC[20] = ( (( CONSTANTS[28]*CONSTANTS[26]*ALGEBRAIC[18])/(1.00000+pow(CONSTANTS[24]/STATES[3], CONSTANTS[23])))*CONSTANTS[4])/(CONSTANTS[4]+CONSTANTS[25]);
ALGEBRAIC[21] = ALGEBRAIC[19]+ALGEBRAIC[20];
ALGEBRAIC[22] = 1.00000/(1.00000+exp(- (50.0000+STATES[0])/7.50000));
ALGEBRAIC[23] = 1.00000/(( 0.00138000*(STATES[0]+7.00000))/(1.00000 - exp( - 0.123000*(STATES[0]+7.00000)))+( 0.000610000*(STATES[0]+10.0000))/(exp( 0.145000*(STATES[0]+10.0000)) - 1.00000));
ALGEBRAIC[25] = - arbitrary_log(STATES[5]/1.00000, 10)+3.00000;
ALGEBRAIC[27] =  0.0700000*(0.0570000+0.190000/(1.00000+exp((- 7.20000+ALGEBRAIC[25])/0.600000)));
ALGEBRAIC[29] =  (( CONSTANTS[11]*CONSTANTS[12])/CONSTANTS[13])*log((CONSTANTS[4]+ CONSTANTS[31]*CONSTANTS[5])/(CONSTANTS[8]+ CONSTANTS[31]*STATES[1]));
ALGEBRAIC[30] =  CONSTANTS[29]*ALGEBRAIC[27]*pow(STATES[11], 2.00000)*(STATES[0] - ALGEBRAIC[29]);
ALGEBRAIC[26] = - arbitrary_log(STATES[6]/1.00000, 10)+3.00000;
ALGEBRAIC[28] =  0.0700000*(0.0570000+0.190000/(1.00000+exp((- 7.20000+ALGEBRAIC[26])/0.600000)));
ALGEBRAIC[31] =  CONSTANTS[30]*ALGEBRAIC[28]*pow(STATES[11], 2.00000)*(STATES[0] - ALGEBRAIC[29]);
ALGEBRAIC[32] = ALGEBRAIC[30]+ALGEBRAIC[31];
ALGEBRAIC[33] = 1.00000/(1.00000+exp(- (STATES[0] - 1.50000)/16.7000));
ALGEBRAIC[34] = 1.00000/(( 7.19000e-05*(STATES[0]+30.0000))/(1.00000 - exp( - 0.148000*(STATES[0]+30.0000)))+( 0.000131000*(STATES[0]+30.0000))/(- 1.00000+exp( 0.0687000*(STATES[0]+30.0000))));
ALGEBRAIC[35] = ( CONSTANTS[32]*(STATES[0] - CONSTANTS[123]))/(1.00000+exp(7.48800 - STATES[0]/5.98000));
ALGEBRAIC[36] =  CONSTANTS[33]*STATES[13]*(STATES[12]+ 0.500000*STATES[14])*(STATES[0] - CONSTANTS[123]);
ALGEBRAIC[37] = 1.00000/(1.00000+exp(- (STATES[0]+3.00000)/15.0000));
ALGEBRAIC[38] = 9.00000/(1.00000+exp((STATES[0]+3.00000)/15.0000))+0.500000;
ALGEBRAIC[39] = 1.00000/(1.00000+exp((STATES[0]+33.5000)/10.0000));
ALGEBRAIC[40] = 3000.00/(1.00000+exp((STATES[0]+60.0000)/10.0000))+30.0000;
ALGEBRAIC[41] = 1.00000/(1.00000+exp((STATES[0]+33.5000)/10.0000));
ALGEBRAIC[42] = 2800.00/(1.00000+exp((STATES[0]+60.0000)/10.0000))+220.000;
ALGEBRAIC[43] =  CONSTANTS[34]*STATES[16]*STATES[15]*(STATES[0] - CONSTANTS[123]);
ALGEBRAIC[44] = 1.00000/(1.00000+exp(- (STATES[0]+3.00000)/15.0000));
ALGEBRAIC[45] =  3.50000*exp(- pow(STATES[0]/30.0000, 2.00000))+1.50000;
ALGEBRAIC[46] = 1.00000/(1.00000+exp((STATES[0]+33.5000)/10.0000));
ALGEBRAIC[47] = 20.0000/(1.00000+exp((STATES[0]+33.5000)/10.0000))+20.0000;
ALGEBRAIC[50] =  CONSTANTS[35]*(STATES[0] - CONSTANTS[124])*(CONSTANTS[37]/(1.00000+CONSTANTS[36]/STATES[5])+CONSTANTS[38]/(1.00000+CONSTANTS[36]/STATES[6]));
ALGEBRAIC[51] =  CONSTANTS[39]*(STATES[0] - CONSTANTS[124]);
ALGEBRAIC[53] = 1.00000/(1.00000+exp(- (STATES[0]+14.5000)/6.00000));
ALGEBRAIC[54] = ( 1.00000*ALGEBRAIC[53]*(1.00000 - exp(- (STATES[0]+14.5000)/6.00000)))/( 0.0350000*(STATES[0]+14.5000));
ALGEBRAIC[55] = 1.00000/(1.00000+exp((STATES[0]+35.0600)/3.60000))+0.600000/(1.00000+exp((50.0000 - STATES[0])/20.0000));
ALGEBRAIC[56] = 1.00000/( 0.0197000*exp(- pow( 0.0337000*(STATES[0]+14.5000), 2.00000))+0.0200000);
ALGEBRAIC[62] = 1.00000/(1.00000+pow(CONSTANTS[60]/STATES[5], 3.00000));
ALGEBRAIC[59] = ( exp(( CONSTANTS[62]*STATES[0]*CONSTANTS[13])/( CONSTANTS[11]*CONSTANTS[12]))*pow(STATES[2], CONSTANTS[63])*CONSTANTS[6] -  exp(( (CONSTANTS[62] - 1.00000)*STATES[0]*CONSTANTS[13])/( CONSTANTS[11]*CONSTANTS[12]))*pow(CONSTANTS[5], CONSTANTS[63])*STATES[5])/(1.00000+ CONSTANTS[61]*exp(( (CONSTANTS[62] - 1.00000)*STATES[0]*CONSTANTS[13])/( CONSTANTS[11]*CONSTANTS[12])));
ALGEBRAIC[63] = ( CONSTANTS[53]*CONSTANTS[52]*ALGEBRAIC[62]*CONSTANTS[129]*ALGEBRAIC[59])/( CONSTANTS[59]*pow(CONSTANTS[5], CONSTANTS[63])*(1.00000+pow(STATES[2]/CONSTANTS[56], CONSTANTS[63]))+ pow(CONSTANTS[58], CONSTANTS[63])*STATES[5]*(1.00000+STATES[5]/CONSTANTS[59])+ CONSTANTS[57]*pow(STATES[2], CONSTANTS[63])+ pow(STATES[2], CONSTANTS[63])*CONSTANTS[6]+ pow(CONSTANTS[5], CONSTANTS[63])*STATES[5]);
ALGEBRAIC[61] = 1.00000/(1.00000+pow(CONSTANTS[60]/STATES[6], 3.00000));
ALGEBRAIC[60] = ( exp(( CONSTANTS[62]*STATES[0]*CONSTANTS[13])/( CONSTANTS[11]*CONSTANTS[12]))*pow(STATES[3], CONSTANTS[63])*CONSTANTS[6] -  exp(( (CONSTANTS[62] - 1.00000)*STATES[0]*CONSTANTS[13])/( CONSTANTS[11]*CONSTANTS[12]))*pow(CONSTANTS[5], CONSTANTS[63])*STATES[6])/(1.00000+ CONSTANTS[61]*exp(( (CONSTANTS[62] - 1.00000)*STATES[0]*CONSTANTS[13])/( CONSTANTS[11]*CONSTANTS[12])));
ALGEBRAIC[64] = ( CONSTANTS[54]*CONSTANTS[52]*ALGEBRAIC[61]*CONSTANTS[129]*ALGEBRAIC[60])/( CONSTANTS[59]*pow(CONSTANTS[5], CONSTANTS[63])*(1.00000+pow(STATES[3]/CONSTANTS[56], CONSTANTS[63]))+ pow(CONSTANTS[58], CONSTANTS[63])*STATES[6]*(1.00000+STATES[6]/CONSTANTS[59])+ CONSTANTS[57]*pow(STATES[3], CONSTANTS[63])+ pow(STATES[3], CONSTANTS[63])*CONSTANTS[6]+ pow(CONSTANTS[5], CONSTANTS[63])*STATES[6]);
ALGEBRAIC[65] = ALGEBRAIC[63]+ALGEBRAIC[64];
ALGEBRAIC[67] = ( CONSTANTS[130]*CONSTANTS[69]*CONSTANTS[65])/(1.00000+pow(CONSTANTS[67]/STATES[6], CONSTANTS[68]));
ALGEBRAIC[66] = ( CONSTANTS[130]*CONSTANTS[69]*CONSTANTS[64])/(1.00000+pow(CONSTANTS[67]/STATES[5], CONSTANTS[68]));
ALGEBRAIC[68] = ALGEBRAIC[66]+ALGEBRAIC[67];
ALGEBRAIC[3] =  (( CONSTANTS[11]*CONSTANTS[12])/( 2.00000*CONSTANTS[13]))*log(CONSTANTS[6]/STATES[5]);
ALGEBRAIC[69] =  CONSTANTS[70]*CONSTANTS[71]*(STATES[0] - ALGEBRAIC[3]);
ALGEBRAIC[4] =  (( CONSTANTS[11]*CONSTANTS[12])/( 2.00000*CONSTANTS[13]))*log(CONSTANTS[6]/STATES[6]);
ALGEBRAIC[70] =  CONSTANTS[70]*CONSTANTS[72]*(STATES[0] - ALGEBRAIC[4]);
ALGEBRAIC[71] = ALGEBRAIC[70]+ALGEBRAIC[69];
ALGEBRAIC[72] = CONSTANTS[73] - (CONSTANTS[73] - CONSTANTS[74])/(1.00000+pow(CONSTANTS[75]/STATES[24], CONSTANTS[81]));
ALGEBRAIC[73] = CONSTANTS[77]/ALGEBRAIC[72];
ALGEBRAIC[74] =  CONSTANTS[79]*ALGEBRAIC[72];
ALGEBRAIC[75] = ((1.00000 - STATES[21]) - STATES[23]) - STATES[22];
ALGEBRAIC[76] =  CONSTANTS[76]*STATES[23]*(STATES[24] - STATES[5]);
ALGEBRAIC[77] =  CONSTANTS[82]*(STATES[24] - STATES[5]);
ALGEBRAIC[78] = ( CONSTANTS[131]*CONSTANTS[83]*(pow(STATES[4]/CONSTANTS[85], CONSTANTS[87]) - pow(STATES[24]/CONSTANTS[86], CONSTANTS[87])))/(1.00000+pow(STATES[4]/CONSTANTS[85], CONSTANTS[87])+pow(STATES[24]/CONSTANTS[86], CONSTANTS[87]));
ALGEBRAIC[79] =  (STATES[2] - STATES[3])*1.83130e-14;
ALGEBRAIC[80] =  (STATES[3] - STATES[1])*1.63860e-12;
ALGEBRAIC[81] =  (STATES[5] - STATES[6])*8.24130e-13;
ALGEBRAIC[82] =  (STATES[6] - STATES[4])*3.72430e-12;
ALGEBRAIC[83] =  CONSTANTS[90]*STATES[2]*(CONSTANTS[89] - STATES[26]) -  CONSTANTS[91]*STATES[26];
ALGEBRAIC[84] =  CONSTANTS[90]*STATES[3]*(CONSTANTS[88] - STATES[25]) -  CONSTANTS[91]*STATES[25];
ALGEBRAIC[85] =  CONSTANTS[98]*STATES[24]*(( CONSTANTS[96]*CONSTANTS[136])/CONSTANTS[133] - STATES[31]) -  CONSTANTS[101]*STATES[31];
ALGEBRAIC[86] =  CONSTANTS[97]*STATES[6]*(( CONSTANTS[92]*CONSTANTS[136])/CONSTANTS[134] - STATES[27]) -  CONSTANTS[99]*STATES[27];
ALGEBRAIC[87] =  CONSTANTS[97]*STATES[5]*(( CONSTANTS[93]*0.100000*CONSTANTS[136])/CONSTANTS[135] - STATES[28]) -  CONSTANTS[99]*STATES[28];
ALGEBRAIC[88] =  CONSTANTS[97]*STATES[6]*(( CONSTANTS[94]*CONSTANTS[136])/CONSTANTS[134] - STATES[29]) -  CONSTANTS[100]*STATES[29];
ALGEBRAIC[89] =  CONSTANTS[97]*STATES[5]*(( CONSTANTS[95]*0.100000*CONSTANTS[136])/CONSTANTS[135] - STATES[30]) -  CONSTANTS[100]*STATES[30];
ALGEBRAIC[90] = ALGEBRAIC[87]+ALGEBRAIC[89];
ALGEBRAIC[91] = ALGEBRAIC[86]+ALGEBRAIC[88];
ALGEBRAIC[92] =  CONSTANTS[109]*STATES[4]*(CONSTANTS[102] - STATES[32]) -  CONSTANTS[116]*STATES[32];
ALGEBRAIC[93] =  CONSTANTS[110]*STATES[4]*(CONSTANTS[103] - (STATES[33]+STATES[34])) -  CONSTANTS[117]*STATES[33];
ALGEBRAIC[94] =  CONSTANTS[111]*CONSTANTS[9]*(CONSTANTS[104] - (STATES[33]+STATES[34])) -  CONSTANTS[118]*STATES[34];
ALGEBRAIC[95] =  CONSTANTS[112]*STATES[4]*(CONSTANTS[105] - STATES[35]) -  CONSTANTS[119]*STATES[35];
ALGEBRAIC[96] =  CONSTANTS[113]*STATES[4]*(CONSTANTS[106] - (STATES[36]+STATES[37])) -  CONSTANTS[120]*STATES[36];
ALGEBRAIC[97] =  CONSTANTS[114]*CONSTANTS[9]*(CONSTANTS[107] - (STATES[36]+STATES[37])) -  CONSTANTS[121]*STATES[37];
ALGEBRAIC[98] =  CONSTANTS[115]*STATES[4]*(CONSTANTS[108] - STATES[38]) -  CONSTANTS[122]*STATES[38];
ALGEBRAIC[99] = ALGEBRAIC[92]+ALGEBRAIC[93]+ALGEBRAIC[94]+ALGEBRAIC[95]+ALGEBRAIC[96]+ALGEBRAIC[97]+ALGEBRAIC[98];
ALGEBRAIC[24] = 1.00000/(1.00000+exp((33.0000+STATES[0])/22.4000));
ALGEBRAIC[100] =  CONSTANTS[126]*STATES[10]*ALGEBRAIC[24]*(STATES[0] - CONSTANTS[123]);
ALGEBRAIC[58] = 1.00000 - STATES[20];
ALGEBRAIC[52] = ( 0.450000*STATES[17]*STATES[18]*CONSTANTS[128]*STATES[0]*pow(CONSTANTS[13], 2.00000))/( CONSTANTS[11]*CONSTANTS[12]);
ALGEBRAIC[103] = ( ALGEBRAIC[52]*ALGEBRAIC[58]*CONSTANTS[43]*CONSTANTS[41]*( CONSTANTS[47]*STATES[2]*exp(( STATES[0]*CONSTANTS[13])/( CONSTANTS[11]*CONSTANTS[12])) -  CONSTANTS[48]*CONSTANTS[5]))/(exp(( STATES[0]*CONSTANTS[13])/( CONSTANTS[11]*CONSTANTS[12])) - 1.00000);
ALGEBRAIC[57] = 1.00000 - STATES[19];
ALGEBRAIC[105] = ( ALGEBRAIC[52]*ALGEBRAIC[57]*CONSTANTS[44]*CONSTANTS[41]*( CONSTANTS[47]*STATES[3]*exp(( STATES[0]*CONSTANTS[13])/( CONSTANTS[11]*CONSTANTS[12])) -  CONSTANTS[48]*CONSTANTS[5]))/(exp(( STATES[0]*CONSTANTS[13])/( CONSTANTS[11]*CONSTANTS[12])) - 1.00000);
ALGEBRAIC[104] = ( ALGEBRAIC[52]*ALGEBRAIC[57]*CONSTANTS[44]*CONSTANTS[40]*4.00000*( CONSTANTS[45]*STATES[6]*exp(( 2.00000*STATES[0]*CONSTANTS[13])/( CONSTANTS[11]*CONSTANTS[12])) -  CONSTANTS[46]*CONSTANTS[6]))/(exp(( 2.00000*STATES[0]*CONSTANTS[13])/( CONSTANTS[11]*CONSTANTS[12])) - 1.00000);
ALGEBRAIC[102] = ( ALGEBRAIC[52]*ALGEBRAIC[58]*CONSTANTS[43]*CONSTANTS[40]*4.00000*( CONSTANTS[45]*STATES[5]*exp(( 2.00000*STATES[0]*CONSTANTS[13])/( CONSTANTS[11]*CONSTANTS[12])) -  CONSTANTS[46]*CONSTANTS[6]))/(exp(( 2.00000*STATES[0]*CONSTANTS[13])/( CONSTANTS[11]*CONSTANTS[12])) - 1.00000);
ALGEBRAIC[106] = ( ALGEBRAIC[52]*( ALGEBRAIC[57]*CONSTANTS[44]+ ALGEBRAIC[58]*CONSTANTS[43])*CONSTANTS[42]*( CONSTANTS[49]*CONSTANTS[8]*exp(( STATES[0]*CONSTANTS[13])/( CONSTANTS[11]*CONSTANTS[12])) -  CONSTANTS[50]*CONSTANTS[4]))/(exp(( STATES[0]*CONSTANTS[13])/( CONSTANTS[11]*CONSTANTS[12])) - 1.00000);
ALGEBRAIC[107] = ALGEBRAIC[104]+ALGEBRAIC[102]+ALGEBRAIC[105]+ALGEBRAIC[103]+ALGEBRAIC[106];
ALGEBRAIC[108] = (ALGEBRAIC[102] -  2.00000*ALGEBRAIC[63])+ALGEBRAIC[69]+ALGEBRAIC[66];
ALGEBRAIC[109] = (ALGEBRAIC[104] -  2.00000*ALGEBRAIC[64])+ALGEBRAIC[70]+ALGEBRAIC[67];
ALGEBRAIC[48] = 1.02000/(1.00000+exp( 0.238500*(STATES[0] - (CONSTANTS[123]+59.2150))));
ALGEBRAIC[49] = ( 0.491240*exp( 0.0803200*((STATES[0] - CONSTANTS[123])+5.47600))+ 1.00000*exp( 0.0617500*(STATES[0] - (CONSTANTS[123]+594.310))))/(1.00000+exp( - 0.514300*((STATES[0] - CONSTANTS[123])+4.75300)));
ALGEBRAIC[101] = ALGEBRAIC[48]/(ALGEBRAIC[48]+ALGEBRAIC[49]);
ALGEBRAIC[110] =  CONSTANTS[127]*ALGEBRAIC[101]*(STATES[0] - CONSTANTS[123]);
}
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;
SI[14] = 1.0;
SI[15] = 1.0;
SI[16] = 1.0;
SI[17] = 1.0;
SI[18] = 1.0;
SI[19] = 1.0;
SI[20] = 1.0;
SI[21] = 1.0;
SI[22] = 1.0;
SI[23] = 1.0;
SI[24] = 1.0;
SI[25] = 1.0;
SI[26] = 1.0;
SI[27] = 1.0;
SI[28] = 1.0;
SI[29] = 1.0;
SI[30] = 1.0;
SI[31] = 1.0;
SI[32] = 1.0;
SI[33] = 1.0;
SI[34] = 1.0;
SI[35] = 1.0;
SI[36] = 1.0;
SI[37] = 1.0;
SI[38] = 1.0;
}
void
computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES,
             double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS)
{
CONDVAR[0] = (VOI -  floor(VOI/CONSTANTS[1])*CONSTANTS[1]) - CONSTANTS[0];
CONDVAR[1] = (VOI -  floor(VOI/CONSTANTS[1])*CONSTANTS[1]) - (CONSTANTS[0]+CONSTANTS[2]);
CONDVAR[2] = STATES[0] - - 40.0000;
CONDVAR[3] = STATES[0] - - 40.0000;
CONDVAR[4] = STATES[0] - - 40.0000;
CONDVAR[5] = STATES[0] - - 40.0000;
}