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 198 entries in the algebraic variable array.
   There are a total of 41 entries in each of the rate and state variable arrays.
   There are a total of 140 entries in the constant variable array.
 */
/*
 * VOI is time in component environment (millisecond).
 * CONSTANTS[0] is celltype in component environment (dimensionless).
 * CONSTANTS[1] is nao in component extracellular (millimolar).
 * CONSTANTS[2] is cao in component extracellular (millimolar).
 * CONSTANTS[3] is ko in component extracellular (millimolar).
 * CONSTANTS[4] is R in component physical_constants (joule_per_kilomole_kelvin).
 * CONSTANTS[5] is T in component physical_constants (kelvin).
 * CONSTANTS[6] is F in component physical_constants (coulomb_per_mole).
 * CONSTANTS[7] is zna in component physical_constants (dimensionless).
 * CONSTANTS[8] is zca in component physical_constants (dimensionless).
 * CONSTANTS[9] is zk in component physical_constants (dimensionless).
 * CONSTANTS[10] is L in component cell_geometry (centimeter).
 * CONSTANTS[11] is rad in component cell_geometry (centimeter).
 * CONSTANTS[105] is vcell in component cell_geometry (microliter).
 * CONSTANTS[114] is Ageo in component cell_geometry (centimeter_squared).
 * CONSTANTS[118] is Acap in component cell_geometry (centimeter_squared).
 * CONSTANTS[119] is vmyo in component cell_geometry (microliter).
 * CONSTANTS[120] is vnsr in component cell_geometry (microliter).
 * CONSTANTS[121] is vjsr in component cell_geometry (microliter).
 * CONSTANTS[122] is vss in component cell_geometry (microliter).
 * STATES[0] is v in component membrane (millivolt).
 * ALGEBRAIC[1] is vffrt in component membrane (coulomb_per_mole).
 * ALGEBRAIC[2] is vfrt in component membrane (dimensionless).
 * ALGEBRAIC[24] is INa in component INa (microA_per_microF).
 * ALGEBRAIC[30] is INaL in component INaL (microA_per_microF).
 * ALGEBRAIC[49] is Ito in component Ito (microA_per_microF).
 * ALGEBRAIC[72] is ICaL in component ICaL (microA_per_microF).
 * ALGEBRAIC[73] is ICaNa in component ICaL (microA_per_microF).
 * ALGEBRAIC[74] is ICaK in component ICaL (microA_per_microF).
 * ALGEBRAIC[82] is IKr in component IKr (microA_per_microF).
 * ALGEBRAIC[88] is IKs in component IKs (microA_per_microF).
 * ALGEBRAIC[92] is IK1 in component IK1 (microA_per_microF).
 * ALGEBRAIC[124] is INaCa_i in component INaCa_i (microA_per_microF).
 * ALGEBRAIC[154] is INaCa_ss in component INaCa_i (microA_per_microF).
 * ALGEBRAIC[173] is INaK in component INaK (microA_per_microF).
 * ALGEBRAIC[176] is INab in component INab (microA_per_microF).
 * ALGEBRAIC[175] is IKb in component IKb (microA_per_microF).
 * ALGEBRAIC[178] is IpCa in component IpCa (microA_per_microF).
 * ALGEBRAIC[177] is ICab in component ICab (microA_per_microF).
 * ALGEBRAIC[0] is Istim in component membrane (microA_per_microF).
 * CONSTANTS[12] is amp in component membrane (microA_per_microF).
 * CONSTANTS[13] is duration in component membrane (millisecond).
 * CONSTANTS[14] is stimStart in component membrane (millisecond).
 * CONSTANTS[15] is KmCaMK in component CaMK (millimolar).
 * CONSTANTS[16] is aCaMK in component CaMK (per_millimolar_per_millisecond).
 * CONSTANTS[17] is bCaMK in component CaMK (per_millisecond).
 * CONSTANTS[18] is CaMKo in component CaMK (dimensionless).
 * CONSTANTS[19] is KmCaM in component CaMK (millimolar).
 * ALGEBRAIC[3] is CaMKb in component CaMK (millimolar).
 * ALGEBRAIC[4] is CaMKa in component CaMK (millimolar).
 * STATES[1] is CaMKt in component CaMK (millimolar).
 * STATES[2] is cass in component intracellular_ions (millimolar).
 * CONSTANTS[20] is cmdnmax_b in component intracellular_ions (millimolar).
 * CONSTANTS[94] is cmdnmax in component intracellular_ions (millimolar).
 * CONSTANTS[21] is kmcmdn in component intracellular_ions (millimolar).
 * CONSTANTS[22] is trpnmax in component intracellular_ions (millimolar).
 * CONSTANTS[23] is kmtrpn in component intracellular_ions (millimolar).
 * CONSTANTS[24] is BSRmax in component intracellular_ions (millimolar).
 * CONSTANTS[25] is KmBSR in component intracellular_ions (millimolar).
 * CONSTANTS[26] is BSLmax in component intracellular_ions (millimolar).
 * CONSTANTS[27] is KmBSL in component intracellular_ions (millimolar).
 * CONSTANTS[28] is csqnmax in component intracellular_ions (millimolar).
 * CONSTANTS[29] is kmcsqn in component intracellular_ions (millimolar).
 * STATES[3] is nai in component intracellular_ions (millimolar).
 * STATES[4] is nass in component intracellular_ions (millimolar).
 * STATES[5] is ki in component intracellular_ions (millimolar).
 * STATES[6] is kss in component intracellular_ions (millimolar).
 * STATES[7] is cansr in component intracellular_ions (millimolar).
 * STATES[8] is cajsr in component intracellular_ions (millimolar).
 * STATES[9] is cai in component intracellular_ions (millimolar).
 * ALGEBRAIC[179] is JdiffNa in component diff (millimolar_per_millisecond).
 * ALGEBRAIC[181] is Jdiff in component diff (millimolar_per_millisecond).
 * ALGEBRAIC[196] is Jup in component SERCA (millimolar_per_millisecond).
 * ALGEBRAIC[180] is JdiffK in component diff (millimolar_per_millisecond).
 * ALGEBRAIC[191] is Jrel in component ryr (millimolar_per_millisecond).
 * ALGEBRAIC[197] is Jtr in component trans_flux (millimolar_per_millisecond).
 * ALGEBRAIC[5] is Bcai in component intracellular_ions (dimensionless).
 * ALGEBRAIC[7] is Bcajsr in component intracellular_ions (dimensionless).
 * ALGEBRAIC[6] is Bcass in component intracellular_ions (dimensionless).
 * CONSTANTS[30] is cm in component intracellular_ions (microF_per_centimeter_squared).
 * CONSTANTS[31] is PKNa in component reversal_potentials (dimensionless).
 * ALGEBRAIC[8] is ENa in component reversal_potentials (millivolt).
 * ALGEBRAIC[9] is EK in component reversal_potentials (millivolt).
 * ALGEBRAIC[10] is EKs in component reversal_potentials (millivolt).
 * ALGEBRAIC[11] is mss in component INa (dimensionless).
 * ALGEBRAIC[12] is tm in component INa (millisecond).
 * CONSTANTS[32] is mssV1 in component INa (millivolt).
 * CONSTANTS[33] is mssV2 in component INa (millivolt).
 * CONSTANTS[34] is mtV1 in component INa (millivolt).
 * CONSTANTS[35] is mtV2 in component INa (millivolt).
 * CONSTANTS[36] is mtD1 in component INa (dimensionless).
 * CONSTANTS[37] is mtD2 in component INa (dimensionless).
 * CONSTANTS[38] is mtV3 in component INa (millivolt).
 * CONSTANTS[39] is mtV4 in component INa (millivolt).
 * STATES[10] is m in component INa (dimensionless).
 * ALGEBRAIC[13] is hss in component INa (dimensionless).
 * ALGEBRAIC[14] is thf in component INa (millisecond).
 * ALGEBRAIC[15] is ths in component INa (millisecond).
 * CONSTANTS[40] is hssV1 in component INa (millivolt).
 * CONSTANTS[41] is hssV2 in component INa (millivolt).
 * CONSTANTS[95] is Ahs in component INa (dimensionless).
 * CONSTANTS[42] is Ahf in component INa (dimensionless).
 * STATES[11] is hf in component INa (dimensionless).
 * STATES[12] is hs in component INa (dimensionless).
 * ALGEBRAIC[16] is h in component INa (dimensionless).
 * CONSTANTS[43] is GNa in component INa (milliS_per_microF).
 * ALGEBRAIC[17] is jss in component INa (dimensionless).
 * ALGEBRAIC[18] is tj in component INa (millisecond).
 * STATES[13] is j in component INa (dimensionless).
 * ALGEBRAIC[19] is hssp in component INa (dimensionless).
 * ALGEBRAIC[20] is thsp in component INa (millisecond).
 * STATES[14] is hsp in component INa (dimensionless).
 * ALGEBRAIC[21] is hp in component INa (dimensionless).
 * ALGEBRAIC[22] is tjp in component INa (millisecond).
 * STATES[15] is jp in component INa (dimensionless).
 * ALGEBRAIC[23] is fINap in component INa (dimensionless).
 * ALGEBRAIC[25] is mLss in component INaL (dimensionless).
 * ALGEBRAIC[26] is tmL in component INaL (millisecond).
 * STATES[16] is mL in component INaL (dimensionless).
 * CONSTANTS[44] is thL in component INaL (millisecond).
 * ALGEBRAIC[27] is hLss in component INaL (dimensionless).
 * STATES[17] is hL in component INaL (dimensionless).
 * ALGEBRAIC[28] is hLssp in component INaL (dimensionless).
 * CONSTANTS[96] is thLp in component INaL (millisecond).
 * STATES[18] is hLp in component INaL (dimensionless).
 * CONSTANTS[45] is GNaL_b in component INaL (milliS_per_microF).
 * CONSTANTS[97] is GNaL in component INaL (milliS_per_microF).
 * ALGEBRAIC[29] is fINaLp in component INaL (dimensionless).
 * CONSTANTS[46] is Gto_b in component Ito (milliS_per_microF).
 * ALGEBRAIC[31] is ass in component Ito (dimensionless).
 * ALGEBRAIC[32] is ta in component Ito (millisecond).
 * STATES[19] is a in component Ito (dimensionless).
 * ALGEBRAIC[33] is iss in component Ito (dimensionless).
 * ALGEBRAIC[34] is delta_epi in component Ito (dimensionless).
 * ALGEBRAIC[35] is tiF_b in component Ito (millisecond).
 * ALGEBRAIC[36] is tiS_b in component Ito (millisecond).
 * ALGEBRAIC[37] is tiF in component Ito (millisecond).
 * ALGEBRAIC[38] is tiS in component Ito (millisecond).
 * ALGEBRAIC[39] is AiF in component Ito (dimensionless).
 * ALGEBRAIC[40] is AiS in component Ito (dimensionless).
 * STATES[20] is iF in component Ito (dimensionless).
 * STATES[21] is iS in component Ito (dimensionless).
 * ALGEBRAIC[41] is i in component Ito (dimensionless).
 * ALGEBRAIC[42] is assp in component Ito (dimensionless).
 * STATES[22] is ap in component Ito (dimensionless).
 * ALGEBRAIC[43] is dti_develop in component Ito (dimensionless).
 * ALGEBRAIC[44] is dti_recover in component Ito (dimensionless).
 * ALGEBRAIC[45] is tiFp in component Ito (millisecond).
 * ALGEBRAIC[46] is tiSp in component Ito (millisecond).
 * STATES[23] is iFp in component Ito (dimensionless).
 * STATES[24] is iSp in component Ito (dimensionless).
 * ALGEBRAIC[47] is ip in component Ito (dimensionless).
 * CONSTANTS[98] is Gto in component Ito (milliS_per_microF).
 * ALGEBRAIC[48] is fItop in component Ito (dimensionless).
 * CONSTANTS[47] is Kmn in component ICaL (millimolar).
 * CONSTANTS[48] is k2n in component ICaL (per_millisecond).
 * CONSTANTS[49] is PCa_b in component ICaL (dimensionless).
 * ALGEBRAIC[50] is dss in component ICaL (dimensionless).
 * STATES[25] is d in component ICaL (dimensionless).
 * ALGEBRAIC[52] is fss in component ICaL (dimensionless).
 * CONSTANTS[99] is Aff in component ICaL (dimensionless).
 * CONSTANTS[110] is Afs in component ICaL (dimensionless).
 * STATES[26] is ff in component ICaL (dimensionless).
 * STATES[27] is fs in component ICaL (dimensionless).
 * ALGEBRAIC[55] is f in component ICaL (dimensionless).
 * ALGEBRAIC[56] is fcass in component ICaL (dimensionless).
 * ALGEBRAIC[59] is Afcaf in component ICaL (dimensionless).
 * ALGEBRAIC[60] is Afcas in component ICaL (dimensionless).
 * STATES[28] is fcaf in component ICaL (dimensionless).
 * STATES[29] is fcas in component ICaL (dimensionless).
 * ALGEBRAIC[61] is fca in component ICaL (dimensionless).
 * STATES[30] is jca in component ICaL (dimensionless).
 * STATES[31] is ffp in component ICaL (dimensionless).
 * ALGEBRAIC[63] is fp in component ICaL (dimensionless).
 * STATES[32] is fcafp in component ICaL (dimensionless).
 * ALGEBRAIC[65] is fcap in component ICaL (dimensionless).
 * ALGEBRAIC[66] is km2n in component ICaL (per_millisecond).
 * ALGEBRAIC[67] is anca in component ICaL (dimensionless).
 * STATES[33] is nca in component ICaL (dimensionless).
 * ALGEBRAIC[68] is PhiCaL in component ICaL (dimensionless).
 * ALGEBRAIC[69] is PhiCaNa in component ICaL (dimensionless).
 * ALGEBRAIC[70] is PhiCaK in component ICaL (dimensionless).
 * CONSTANTS[100] is PCa in component ICaL (dimensionless).
 * CONSTANTS[111] is PCap in component ICaL (dimensionless).
 * CONSTANTS[112] is PCaNa in component ICaL (dimensionless).
 * CONSTANTS[113] is PCaK in component ICaL (dimensionless).
 * CONSTANTS[116] is PCaNap in component ICaL (dimensionless).
 * CONSTANTS[117] is PCaKp in component ICaL (dimensionless).
 * ALGEBRAIC[71] is fICaLp in component ICaL (dimensionless).
 * ALGEBRAIC[51] is td in component ICaL (millisecond).
 * ALGEBRAIC[53] is tff in component ICaL (millisecond).
 * ALGEBRAIC[54] is tfs in component ICaL (millisecond).
 * ALGEBRAIC[57] is tfcaf in component ICaL (millisecond).
 * ALGEBRAIC[58] is tfcas in component ICaL (millisecond).
 * CONSTANTS[101] is tjca in component ICaL (millisecond).
 * ALGEBRAIC[62] is tffp in component ICaL (millisecond).
 * ALGEBRAIC[64] is tfcafp in component ICaL (millisecond).
 * CONSTANTS[50] is GKr_b in component IKr (milliS_per_microF).
 * CONSTANTS[102] is GKr in component IKr (milliS_per_microF).
 * ALGEBRAIC[75] is xrss in component IKr (dimensionless).
 * ALGEBRAIC[76] is txrf in component IKr (millisecond).
 * ALGEBRAIC[77] is txrs in component IKr (millisecond).
 * ALGEBRAIC[78] is Axrf in component IKr (dimensionless).
 * ALGEBRAIC[79] is Axrs in component IKr (dimensionless).
 * STATES[34] is xrf in component IKr (dimensionless).
 * STATES[35] is xrs in component IKr (dimensionless).
 * ALGEBRAIC[80] is xr in component IKr (dimensionless).
 * ALGEBRAIC[81] is rkr in component IKr (dimensionless).
 * CONSTANTS[51] is GKs_b in component IKs (milliS_per_microF).
 * CONSTANTS[103] is GKs in component IKs (milliS_per_microF).
 * ALGEBRAIC[83] is xs1ss in component IKs (dimensionless).
 * ALGEBRAIC[85] is xs2ss in component IKs (dimensionless).
 * ALGEBRAIC[84] is txs1 in component IKs (millisecond).
 * STATES[36] is xs1 in component IKs (dimensionless).
 * STATES[37] is xs2 in component IKs (dimensionless).
 * ALGEBRAIC[87] is KsCa in component IKs (dimensionless).
 * ALGEBRAIC[86] is txs2 in component IKs (millisecond).
 * CONSTANTS[104] is GK1 in component IK1 (milliS_per_microF).
 * CONSTANTS[52] is GK1_b in component IK1 (milliS_per_microF).
 * ALGEBRAIC[89] is xk1ss in component IK1 (dimensionless).
 * ALGEBRAIC[90] is txk1 in component IK1 (millisecond).
 * STATES[38] is xk1 in component IK1 (dimensionless).
 * ALGEBRAIC[91] is rk1 in component IK1 (millisecond).
 * CONSTANTS[53] is kna1 in component INaCa_i (per_millisecond).
 * CONSTANTS[54] is kna2 in component INaCa_i (per_millisecond).
 * CONSTANTS[55] is kna3 in component INaCa_i (per_millisecond).
 * CONSTANTS[56] is kasymm in component INaCa_i (dimensionless).
 * CONSTANTS[57] is wna in component INaCa_i (dimensionless).
 * CONSTANTS[58] is wca in component INaCa_i (dimensionless).
 * CONSTANTS[59] is wnaca in component INaCa_i (dimensionless).
 * CONSTANTS[60] is kcaon in component INaCa_i (per_millisecond).
 * CONSTANTS[61] is kcaoff in component INaCa_i (per_millisecond).
 * CONSTANTS[62] is qna in component INaCa_i (dimensionless).
 * CONSTANTS[63] is qca in component INaCa_i (dimensionless).
 * ALGEBRAIC[94] is hna in component INaCa_i (dimensionless).
 * ALGEBRAIC[93] is hca in component INaCa_i (dimensionless).
 * CONSTANTS[64] is KmCaAct in component INaCa_i (millimolar).
 * CONSTANTS[65] is Gncx_b in component INaCa_i (milliS_per_microF).
 * CONSTANTS[129] is Gncx in component INaCa_i (milliS_per_microF).
 * ALGEBRAIC[95] is h1_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[96] is h2_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[97] is h3_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[98] is h4_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[99] is h5_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[100] is h6_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[101] is h7_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[102] is h8_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[103] is h9_i in component INaCa_i (dimensionless).
 * CONSTANTS[123] is h10_i in component INaCa_i (dimensionless).
 * CONSTANTS[124] is h11_i in component INaCa_i (dimensionless).
 * CONSTANTS[125] is h12_i in component INaCa_i (dimensionless).
 * CONSTANTS[126] is k1_i in component INaCa_i (dimensionless).
 * CONSTANTS[127] is k2_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[104] is k3p_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[105] is k3pp_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[106] is k3_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[109] is k4_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[107] is k4p_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[108] is k4pp_i in component INaCa_i (dimensionless).
 * CONSTANTS[128] is k5_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[110] is k6_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[111] is k7_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[112] is k8_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[113] is x1_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[114] is x2_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[115] is x3_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[116] is x4_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[117] is E1_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[118] is E2_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[119] is E3_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[120] is E4_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[121] is allo_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[122] is JncxNa_i in component INaCa_i (millimolar_per_millisecond).
 * ALGEBRAIC[123] is JncxCa_i in component INaCa_i (millimolar_per_millisecond).
 * ALGEBRAIC[125] is h1_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[126] is h2_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[127] is h3_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[128] is h4_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[129] is h5_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[130] is h6_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[131] is h7_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[132] is h8_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[133] is h9_ss in component INaCa_i (dimensionless).
 * CONSTANTS[130] is h10_ss in component INaCa_i (dimensionless).
 * CONSTANTS[131] is h11_ss in component INaCa_i (dimensionless).
 * CONSTANTS[132] is h12_ss in component INaCa_i (dimensionless).
 * CONSTANTS[133] is k1_ss in component INaCa_i (dimensionless).
 * CONSTANTS[134] is k2_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[134] is k3p_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[135] is k3pp_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[136] is k3_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[139] is k4_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[137] is k4p_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[138] is k4pp_ss in component INaCa_i (dimensionless).
 * CONSTANTS[135] is k5_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[140] is k6_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[141] is k7_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[142] is k8_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[143] is x1_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[144] is x2_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[145] is x3_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[146] is x4_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[147] is E1_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[148] is E2_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[149] is E3_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[150] is E4_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[151] is allo_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[152] is JncxNa_ss in component INaCa_i (millimolar_per_millisecond).
 * ALGEBRAIC[153] is JncxCa_ss in component INaCa_i (millimolar_per_millisecond).
 * CONSTANTS[66] is k1p in component INaK (per_millisecond).
 * CONSTANTS[67] is k1m in component INaK (per_millisecond).
 * CONSTANTS[68] is k2p in component INaK (per_millisecond).
 * CONSTANTS[69] is k2m in component INaK (per_millisecond).
 * CONSTANTS[70] is k3p in component INaK (per_millisecond).
 * CONSTANTS[71] is k3m in component INaK (per_millisecond).
 * CONSTANTS[72] is k4p in component INaK (per_millisecond).
 * CONSTANTS[73] is k4m in component INaK (per_millisecond).
 * CONSTANTS[74] is Knai0 in component INaK (millimolar).
 * CONSTANTS[75] is Knao0 in component INaK (millimolar).
 * CONSTANTS[76] is delta in component INaK (millivolt).
 * CONSTANTS[77] is Kki in component INaK (per_millisecond).
 * CONSTANTS[78] is Kko in component INaK (per_millisecond).
 * CONSTANTS[79] is MgADP in component INaK (millimolar).
 * CONSTANTS[80] is MgATP in component INaK (millimolar).
 * CONSTANTS[81] is Kmgatp in component INaK (millimolar).
 * CONSTANTS[82] is H in component INaK (millimolar).
 * CONSTANTS[83] is eP in component INaK (dimensionless).
 * CONSTANTS[84] is Khp in component INaK (millimolar).
 * CONSTANTS[85] is Knap in component INaK (millimolar).
 * CONSTANTS[86] is Kxkur in component INaK (millimolar).
 * CONSTANTS[87] is Pnak_b in component INaK (milliS_per_microF).
 * CONSTANTS[139] is Pnak in component INaK (milliS_per_microF).
 * ALGEBRAIC[155] is Knai in component INaK (millimolar).
 * ALGEBRAIC[156] is Knao in component INaK (millimolar).
 * ALGEBRAIC[157] is P in component INaK (dimensionless).
 * ALGEBRAIC[158] is a1 in component INaK (dimensionless).
 * CONSTANTS[136] is b1 in component INaK (dimensionless).
 * CONSTANTS[137] is a2 in component INaK (dimensionless).
 * ALGEBRAIC[159] is b2 in component INaK (dimensionless).
 * ALGEBRAIC[160] is a3 in component INaK (dimensionless).
 * ALGEBRAIC[161] is b3 in component INaK (dimensionless).
 * CONSTANTS[138] is a4 in component INaK (dimensionless).
 * ALGEBRAIC[162] is b4 in component INaK (dimensionless).
 * ALGEBRAIC[163] is x1 in component INaK (dimensionless).
 * ALGEBRAIC[164] is x2 in component INaK (dimensionless).
 * ALGEBRAIC[165] is x3 in component INaK (dimensionless).
 * ALGEBRAIC[166] is x4 in component INaK (dimensionless).
 * ALGEBRAIC[167] is E1 in component INaK (dimensionless).
 * ALGEBRAIC[168] is E2 in component INaK (dimensionless).
 * ALGEBRAIC[169] is E3 in component INaK (dimensionless).
 * ALGEBRAIC[170] is E4 in component INaK (dimensionless).
 * ALGEBRAIC[171] is JnakNa in component INaK (millimolar_per_millisecond).
 * ALGEBRAIC[172] is JnakK in component INaK (millimolar_per_millisecond).
 * ALGEBRAIC[174] is xkb in component IKb (dimensionless).
 * CONSTANTS[88] is GKb_b in component IKb (milliS_per_microF).
 * CONSTANTS[106] is GKb in component IKb (milliS_per_microF).
 * CONSTANTS[89] is PNab in component INab (milliS_per_microF).
 * CONSTANTS[90] is PCab in component ICab (milliS_per_microF).
 * CONSTANTS[91] is GpCa in component IpCa (milliS_per_microF).
 * CONSTANTS[92] is KmCap in component IpCa (millimolar).
 * CONSTANTS[93] is bt in component ryr (millisecond).
 * CONSTANTS[107] is a_rel in component ryr (millisecond).
 * ALGEBRAIC[183] is Jrel_inf in component ryr (dimensionless).
 * ALGEBRAIC[185] is tau_rel in component ryr (millisecond).
 * ALGEBRAIC[187] is Jrel_infp in component ryr (dimensionless).
 * ALGEBRAIC[186] is Jrel_temp in component ryr (dimensionless).
 * ALGEBRAIC[189] is tau_relp in component ryr (millisecond).
 * STATES[39] is Jrelnp in component ryr (dimensionless).
 * STATES[40] is Jrelp in component ryr (dimensionless).
 * CONSTANTS[108] is btp in component ryr (millisecond).
 * CONSTANTS[115] is a_relp in component ryr (millisecond).
 * ALGEBRAIC[182] is Jrel_inf_temp in component ryr (dimensionless).
 * ALGEBRAIC[190] is fJrelp in component ryr (dimensionless).
 * ALGEBRAIC[184] is tau_rel_temp in component ryr (millisecond).
 * ALGEBRAIC[188] is tau_relp_temp in component ryr (millisecond).
 * CONSTANTS[109] is upScale in component SERCA (dimensionless).
 * ALGEBRAIC[192] is Jupnp in component SERCA (millimolar_per_millisecond).
 * ALGEBRAIC[193] is Jupp in component SERCA (millimolar_per_millisecond).
 * ALGEBRAIC[194] is fJupp in component SERCA (dimensionless).
 * ALGEBRAIC[195] is Jleak in component SERCA (millimolar_per_millisecond).
 * RATES[0] is d/dt v in component membrane (millivolt).
 * RATES[1] is d/dt CaMKt in component CaMK (millimolar).
 * RATES[3] is d/dt nai in component intracellular_ions (millimolar).
 * RATES[4] is d/dt nass in component intracellular_ions (millimolar).
 * RATES[5] is d/dt ki in component intracellular_ions (millimolar).
 * RATES[6] is d/dt kss in component intracellular_ions (millimolar).
 * RATES[9] is d/dt cai in component intracellular_ions (millimolar).
 * RATES[2] is d/dt cass in component intracellular_ions (millimolar).
 * RATES[7] is d/dt cansr in component intracellular_ions (millimolar).
 * RATES[8] is d/dt cajsr in component intracellular_ions (millimolar).
 * RATES[10] is d/dt m in component INa (dimensionless).
 * RATES[11] is d/dt hf in component INa (dimensionless).
 * RATES[12] is d/dt hs in component INa (dimensionless).
 * RATES[13] is d/dt j in component INa (dimensionless).
 * RATES[14] is d/dt hsp in component INa (dimensionless).
 * RATES[15] is d/dt jp in component INa (dimensionless).
 * RATES[16] is d/dt mL in component INaL (dimensionless).
 * RATES[17] is d/dt hL in component INaL (dimensionless).
 * RATES[18] is d/dt hLp in component INaL (dimensionless).
 * RATES[19] is d/dt a in component Ito (dimensionless).
 * RATES[20] is d/dt iF in component Ito (dimensionless).
 * RATES[21] is d/dt iS in component Ito (dimensionless).
 * RATES[22] is d/dt ap in component Ito (dimensionless).
 * RATES[23] is d/dt iFp in component Ito (dimensionless).
 * RATES[24] is d/dt iSp in component Ito (dimensionless).
 * RATES[25] is d/dt d in component ICaL (dimensionless).
 * RATES[26] is d/dt ff in component ICaL (dimensionless).
 * RATES[27] is d/dt fs in component ICaL (dimensionless).
 * RATES[28] is d/dt fcaf in component ICaL (dimensionless).
 * RATES[29] is d/dt fcas in component ICaL (dimensionless).
 * RATES[30] is d/dt jca in component ICaL (dimensionless).
 * RATES[31] is d/dt ffp in component ICaL (dimensionless).
 * RATES[32] is d/dt fcafp in component ICaL (dimensionless).
 * RATES[33] is d/dt nca in component ICaL (dimensionless).
 * RATES[34] is d/dt xrf in component IKr (dimensionless).
 * RATES[35] is d/dt xrs in component IKr (dimensionless).
 * RATES[36] is d/dt xs1 in component IKs (dimensionless).
 * RATES[37] is d/dt xs2 in component IKs (dimensionless).
 * RATES[38] is d/dt xk1 in component IK1 (dimensionless).
 * RATES[39] is d/dt Jrelnp in component ryr (dimensionless).
 * RATES[40] is d/dt Jrelp in component ryr (dimensionless).
 * There are a total of 4 condition variables.
 */
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
CONSTANTS[0] = 0;
CONSTANTS[1] = 140;
CONSTANTS[2] = 1.8;
CONSTANTS[3] = 5.4;
CONSTANTS[4] = 8314;
CONSTANTS[5] = 310;
CONSTANTS[6] = 96485;
CONSTANTS[7] = 1;
CONSTANTS[8] = 2;
CONSTANTS[9] = 1;
CONSTANTS[10] = 0.01;
CONSTANTS[11] = 0.0011;
STATES[0] = -87;
CONSTANTS[12] = -80;
CONSTANTS[13] = 0.5;
CONSTANTS[14] = 50.0;
CONSTANTS[15] = 0.15;
CONSTANTS[16] = 0.05;
CONSTANTS[17] = 0.00068;
CONSTANTS[18] = 0.05;
CONSTANTS[19] = 0.0015;
STATES[1] = 0;
STATES[2] = 1e-4;
CONSTANTS[20] = 0.05;
CONSTANTS[21] = 0.00238;
CONSTANTS[22] = 0.07;
CONSTANTS[23] = 0.0005;
CONSTANTS[24] = 0.047;
CONSTANTS[25] = 0.00087;
CONSTANTS[26] = 1.124;
CONSTANTS[27] = 0.0087;
CONSTANTS[28] = 10;
CONSTANTS[29] = 0.8;
STATES[3] = 7;
STATES[4] = 7;
STATES[5] = 145;
STATES[6] = 145;
STATES[7] = 1.2;
STATES[8] = 1.2;
STATES[9] = 1e-4;
CONSTANTS[30] = 1;
CONSTANTS[31] = 0.01833;
CONSTANTS[32] = 39.57;
CONSTANTS[33] = 9.871;
CONSTANTS[34] = 11.64;
CONSTANTS[35] = 34.77;
CONSTANTS[36] = 6.765;
CONSTANTS[37] = 8.552;
CONSTANTS[38] = 77.42;
CONSTANTS[39] = 5.955;
STATES[10] = 0;
CONSTANTS[40] = 82.9;
CONSTANTS[41] = 6.086;
CONSTANTS[42] = 0.99;
STATES[11] = 1;
STATES[12] = 1;
CONSTANTS[43] = 75;
STATES[13] = 1;
STATES[14] = 1;
STATES[15] = 1;
STATES[16] = 0;
CONSTANTS[44] = 200;
STATES[17] = 1;
STATES[18] = 1;
CONSTANTS[45] = 0.0075;
CONSTANTS[46] = 0.02;
STATES[19] = 0;
STATES[20] = 1;
STATES[21] = 1;
STATES[22] = 0;
STATES[23] = 1;
STATES[24] = 1;
CONSTANTS[47] = 0.002;
CONSTANTS[48] = 1000;
CONSTANTS[49] = 0.0001;
STATES[25] = 0;
STATES[26] = 1;
STATES[27] = 1;
STATES[28] = 1;
STATES[29] = 1;
STATES[30] = 1;
STATES[31] = 1;
STATES[32] = 1;
STATES[33] = 0;
CONSTANTS[50] = 0.046;
STATES[34] = 0;
STATES[35] = 0;
CONSTANTS[51] = 0.0034;
STATES[36] = 0;
STATES[37] = 0;
CONSTANTS[52] = 0.1908;
STATES[38] = 1;
CONSTANTS[53] = 15;
CONSTANTS[54] = 5;
CONSTANTS[55] = 88.12;
CONSTANTS[56] = 12.5;
CONSTANTS[57] = 6e4;
CONSTANTS[58] = 6e4;
CONSTANTS[59] = 5e3;
CONSTANTS[60] = 1.5e6;
CONSTANTS[61] = 5e3;
CONSTANTS[62] = 0.5224;
CONSTANTS[63] = 0.167;
CONSTANTS[64] = 150e-6;
CONSTANTS[65] = 0.0008;
CONSTANTS[66] = 949.5;
CONSTANTS[67] = 182.4;
CONSTANTS[68] = 687.2;
CONSTANTS[69] = 39.4;
CONSTANTS[70] = 1899;
CONSTANTS[71] = 79300;
CONSTANTS[72] = 639;
CONSTANTS[73] = 40;
CONSTANTS[74] = 9.073;
CONSTANTS[75] = 27.78;
CONSTANTS[76] = -0.155;
CONSTANTS[77] = 0.5;
CONSTANTS[78] = 0.3582;
CONSTANTS[79] = 0.05;
CONSTANTS[80] = 9.8;
CONSTANTS[81] = 1.698e-7;
CONSTANTS[82] = 1e-7;
CONSTANTS[83] = 4.2;
CONSTANTS[84] = 1.698e-7;
CONSTANTS[85] = 224;
CONSTANTS[86] = 292;
CONSTANTS[87] = 30;
CONSTANTS[88] = 0.003;
CONSTANTS[89] = 3.75e-10;
CONSTANTS[90] = 2.5e-8;
CONSTANTS[91] = 0.0005;
CONSTANTS[92] = 0.0005;
CONSTANTS[93] = 4.75;
STATES[39] = 0;
STATES[40] = 0;
CONSTANTS[94] = (CONSTANTS[0]==1.00000 ?  CONSTANTS[20]*1.30000 : CONSTANTS[20]);
CONSTANTS[95] = 1.00000 - CONSTANTS[42];
CONSTANTS[96] =  3.00000*CONSTANTS[44];
CONSTANTS[97] = (CONSTANTS[0]==1.00000 ?  CONSTANTS[45]*0.600000 : CONSTANTS[45]);
CONSTANTS[98] = (CONSTANTS[0]==1.00000 ?  CONSTANTS[46]*4.00000 : CONSTANTS[0]==2.00000 ?  CONSTANTS[46]*4.00000 : CONSTANTS[46]);
CONSTANTS[99] = 0.600000;
CONSTANTS[100] = (CONSTANTS[0]==1.00000 ?  CONSTANTS[49]*1.20000 : CONSTANTS[0]==2.00000 ?  CONSTANTS[49]*2.50000 : CONSTANTS[49]);
CONSTANTS[101] = 75.0000;
CONSTANTS[102] = (CONSTANTS[0]==1.00000 ?  CONSTANTS[50]*1.30000 : CONSTANTS[0]==2.00000 ?  CONSTANTS[50]*0.800000 : CONSTANTS[50]);
CONSTANTS[103] = (CONSTANTS[0]==1.00000 ?  CONSTANTS[51]*1.40000 : CONSTANTS[51]);
CONSTANTS[104] = (CONSTANTS[0]==1.00000 ?  CONSTANTS[52]*1.20000 : CONSTANTS[0]==2.00000 ?  CONSTANTS[52]*1.30000 : CONSTANTS[52]);
CONSTANTS[105] =  1000.00*3.14000*CONSTANTS[11]*CONSTANTS[11]*CONSTANTS[10];
CONSTANTS[106] = (CONSTANTS[0]==1.00000 ?  CONSTANTS[88]*0.600000 : CONSTANTS[88]);
CONSTANTS[107] =  0.500000*CONSTANTS[93];
CONSTANTS[108] =  1.25000*CONSTANTS[93];
CONSTANTS[109] = (CONSTANTS[0]==1.00000 ? 1.30000 : 1.00000);
CONSTANTS[110] = 1.00000 - CONSTANTS[99];
CONSTANTS[111] =  1.10000*CONSTANTS[100];
CONSTANTS[112] =  0.00125000*CONSTANTS[100];
CONSTANTS[113] =  0.000357400*CONSTANTS[100];
CONSTANTS[114] =  2.00000*3.14000*CONSTANTS[11]*CONSTANTS[11]+ 2.00000*3.14000*CONSTANTS[11]*CONSTANTS[10];
CONSTANTS[115] =  0.500000*CONSTANTS[108];
CONSTANTS[116] =  0.00125000*CONSTANTS[111];
CONSTANTS[117] =  0.000357400*CONSTANTS[111];
CONSTANTS[118] =  2.00000*CONSTANTS[114];
CONSTANTS[119] =  0.680000*CONSTANTS[105];
CONSTANTS[120] =  0.0552000*CONSTANTS[105];
CONSTANTS[121] =  0.00480000*CONSTANTS[105];
CONSTANTS[122] =  0.0200000*CONSTANTS[105];
CONSTANTS[123] = CONSTANTS[56]+1.00000+ (CONSTANTS[1]/CONSTANTS[53])*(1.00000+CONSTANTS[1]/CONSTANTS[54]);
CONSTANTS[124] = ( CONSTANTS[1]*CONSTANTS[1])/( CONSTANTS[123]*CONSTANTS[53]*CONSTANTS[54]);
CONSTANTS[125] = 1.00000/CONSTANTS[123];
CONSTANTS[126] =  CONSTANTS[125]*CONSTANTS[2]*CONSTANTS[60];
CONSTANTS[127] = CONSTANTS[61];
CONSTANTS[128] = CONSTANTS[61];
CONSTANTS[129] = (CONSTANTS[0]==1.00000 ?  CONSTANTS[65]*1.10000 : CONSTANTS[0]==2.00000 ?  CONSTANTS[65]*1.40000 : CONSTANTS[65]);
CONSTANTS[130] = CONSTANTS[56]+1.00000+ (CONSTANTS[1]/CONSTANTS[53])*(1.00000+CONSTANTS[1]/CONSTANTS[54]);
CONSTANTS[131] = ( CONSTANTS[1]*CONSTANTS[1])/( CONSTANTS[130]*CONSTANTS[53]*CONSTANTS[54]);
CONSTANTS[132] = 1.00000/CONSTANTS[130];
CONSTANTS[133] =  CONSTANTS[132]*CONSTANTS[2]*CONSTANTS[60];
CONSTANTS[134] = CONSTANTS[61];
CONSTANTS[135] = CONSTANTS[61];
CONSTANTS[136] =  CONSTANTS[67]*CONSTANTS[79];
CONSTANTS[137] = CONSTANTS[68];
CONSTANTS[138] = (( CONSTANTS[72]*CONSTANTS[80])/CONSTANTS[81])/(1.00000+CONSTANTS[80]/CONSTANTS[81]);
CONSTANTS[139] = (CONSTANTS[0]==1.00000 ?  CONSTANTS[87]*0.900000 : CONSTANTS[0]==2.00000 ?  CONSTANTS[87]*0.700000 : CONSTANTS[87]);
RATES[0] = 0.1001;
RATES[1] = 0.1001;
RATES[3] = 0.1001;
RATES[4] = 0.1001;
RATES[5] = 0.1001;
RATES[6] = 0.1001;
RATES[9] = 0.1001;
RATES[2] = 0.1001;
RATES[7] = 0.1001;
RATES[8] = 0.1001;
RATES[10] = 0.1001;
RATES[11] = 0.1001;
RATES[12] = 0.1001;
RATES[13] = 0.1001;
RATES[14] = 0.1001;
RATES[15] = 0.1001;
RATES[16] = 0.1001;
RATES[17] = 0.1001;
RATES[18] = 0.1001;
RATES[19] = 0.1001;
RATES[20] = 0.1001;
RATES[21] = 0.1001;
RATES[22] = 0.1001;
RATES[23] = 0.1001;
RATES[24] = 0.1001;
RATES[25] = 0.1001;
RATES[26] = 0.1001;
RATES[27] = 0.1001;
RATES[28] = 0.1001;
RATES[29] = 0.1001;
RATES[30] = 0.1001;
RATES[31] = 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;
RATES[39] = 0.1001;
RATES[40] = 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[24]+ALGEBRAIC[30]+ALGEBRAIC[49]+ALGEBRAIC[72]+ALGEBRAIC[73]+ALGEBRAIC[74]+ALGEBRAIC[82]+ALGEBRAIC[88]+ALGEBRAIC[92]+ALGEBRAIC[124]+ALGEBRAIC[154]+ALGEBRAIC[173]+ALGEBRAIC[176]+ALGEBRAIC[175]+ALGEBRAIC[178]+ALGEBRAIC[177]+ALGEBRAIC[0]);
resid[1] = RATES[1] -  CONSTANTS[16]*ALGEBRAIC[3]*(ALGEBRAIC[3]+STATES[1]) -  CONSTANTS[17]*STATES[1];
resid[2] = RATES[3] - ( - (ALGEBRAIC[24]+ALGEBRAIC[30]+ 3.00000*ALGEBRAIC[124]+ 3.00000*ALGEBRAIC[173]+ALGEBRAIC[176])*CONSTANTS[118]*CONSTANTS[30])/( CONSTANTS[6]*CONSTANTS[119])+( ALGEBRAIC[179]*CONSTANTS[122])/CONSTANTS[119];
resid[3] = RATES[4] - ( - (ALGEBRAIC[73]+ 3.00000*ALGEBRAIC[154])*CONSTANTS[30]*CONSTANTS[118])/( CONSTANTS[6]*CONSTANTS[122]) - ALGEBRAIC[179];
resid[4] = RATES[5] - ( - ((ALGEBRAIC[49]+ALGEBRAIC[82]+ALGEBRAIC[88]+ALGEBRAIC[92]+ALGEBRAIC[175]+ALGEBRAIC[0]) -  2.00000*ALGEBRAIC[173])*CONSTANTS[30]*CONSTANTS[118])/( CONSTANTS[6]*CONSTANTS[119])+( ALGEBRAIC[180]*CONSTANTS[122])/CONSTANTS[119];
resid[5] = RATES[6] - ( - ALGEBRAIC[74]*CONSTANTS[30]*CONSTANTS[118])/( CONSTANTS[6]*CONSTANTS[122]) - ALGEBRAIC[180];
resid[6] = RATES[9] -  ALGEBRAIC[5]*((( - ((ALGEBRAIC[178]+ALGEBRAIC[177]) -  2.00000*ALGEBRAIC[124])*CONSTANTS[30]*CONSTANTS[118])/( 2.00000*CONSTANTS[6]*CONSTANTS[119]) - ( ALGEBRAIC[196]*CONSTANTS[120])/CONSTANTS[119])+( ALGEBRAIC[181]*CONSTANTS[122])/CONSTANTS[119]);
resid[7] = RATES[2] -  ALGEBRAIC[6]*((( - (ALGEBRAIC[72] -  2.00000*ALGEBRAIC[154])*CONSTANTS[30]*CONSTANTS[118])/( 2.00000*CONSTANTS[6]*CONSTANTS[122])+( ALGEBRAIC[191]*CONSTANTS[121])/CONSTANTS[122]) - ALGEBRAIC[181]);
resid[8] = RATES[7] - ALGEBRAIC[196] - ( ALGEBRAIC[197]*CONSTANTS[121])/CONSTANTS[120];
resid[9] = RATES[8] -  ALGEBRAIC[7]*(ALGEBRAIC[197] - ALGEBRAIC[191]);
resid[10] = RATES[10] - (ALGEBRAIC[11] - STATES[10])/ALGEBRAIC[12];
resid[11] = RATES[11] - (ALGEBRAIC[13] - STATES[11])/ALGEBRAIC[14];
resid[12] = RATES[12] - (ALGEBRAIC[13] - STATES[12])/ALGEBRAIC[15];
resid[13] = RATES[13] - (ALGEBRAIC[17] - STATES[13])/ALGEBRAIC[18];
resid[14] = RATES[14] - (ALGEBRAIC[19] - STATES[14])/ALGEBRAIC[20];
resid[15] = RATES[15] - (ALGEBRAIC[17] - STATES[15])/ALGEBRAIC[22];
resid[16] = RATES[16] - (ALGEBRAIC[25] - STATES[16])/ALGEBRAIC[26];
resid[17] = RATES[17] - (ALGEBRAIC[27] - STATES[17])/CONSTANTS[44];
resid[18] = RATES[18] - (ALGEBRAIC[28] - STATES[18])/CONSTANTS[96];
resid[19] = RATES[19] - (ALGEBRAIC[31] - STATES[19])/ALGEBRAIC[32];
resid[20] = RATES[20] - (ALGEBRAIC[33] - STATES[20])/ALGEBRAIC[37];
resid[21] = RATES[21] - (ALGEBRAIC[33] - STATES[21])/ALGEBRAIC[38];
resid[22] = RATES[22] - (ALGEBRAIC[42] - STATES[22])/ALGEBRAIC[32];
resid[23] = RATES[23] - (ALGEBRAIC[33] - STATES[23])/ALGEBRAIC[45];
resid[24] = RATES[24] - (ALGEBRAIC[33] - STATES[24])/ALGEBRAIC[46];
resid[25] = RATES[25] - (ALGEBRAIC[50] - STATES[25])/ALGEBRAIC[51];
resid[26] = RATES[26] - (ALGEBRAIC[52] - STATES[26])/ALGEBRAIC[53];
resid[27] = RATES[27] - (ALGEBRAIC[52] - STATES[27])/ALGEBRAIC[54];
resid[28] = RATES[28] - (ALGEBRAIC[56] - STATES[28])/ALGEBRAIC[57];
resid[29] = RATES[29] - (ALGEBRAIC[56] - STATES[29])/ALGEBRAIC[58];
resid[30] = RATES[30] - (ALGEBRAIC[56] - STATES[30])/CONSTANTS[101];
resid[31] = RATES[31] - (ALGEBRAIC[52] - STATES[31])/ALGEBRAIC[62];
resid[32] = RATES[32] - (ALGEBRAIC[56] - STATES[32])/ALGEBRAIC[64];
resid[33] = RATES[33] -  ALGEBRAIC[67]*CONSTANTS[48] -  STATES[33]*ALGEBRAIC[66];
resid[34] = RATES[34] - (ALGEBRAIC[75] - STATES[34])/ALGEBRAIC[76];
resid[35] = RATES[35] - (ALGEBRAIC[75] - STATES[35])/ALGEBRAIC[77];
resid[36] = RATES[36] - (ALGEBRAIC[83] - STATES[36])/ALGEBRAIC[84];
resid[37] = RATES[37] - (ALGEBRAIC[85] - STATES[37])/ALGEBRAIC[86];
resid[38] = RATES[38] - (ALGEBRAIC[89] - STATES[38])/ALGEBRAIC[90];
resid[39] = RATES[39] - (ALGEBRAIC[183] - STATES[39])/ALGEBRAIC[185];
resid[40] = RATES[40] - (ALGEBRAIC[187] - STATES[40])/ALGEBRAIC[189];
}
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[12] : 0.00000);
ALGEBRAIC[3] = ( CONSTANTS[18]*(1.00000 - STATES[1]))/(1.00000+CONSTANTS[19]/STATES[2]);
ALGEBRAIC[5] = 1.00000/(1.00000+( CONSTANTS[94]*CONSTANTS[21])/pow(CONSTANTS[21]+STATES[9], 2.00000)+( CONSTANTS[22]*CONSTANTS[23])/pow(CONSTANTS[23]+STATES[9], 2.00000));
ALGEBRAIC[6] = 1.00000/(1.00000+( CONSTANTS[24]*CONSTANTS[25])/pow(CONSTANTS[25]+STATES[2], 2.00000)+( CONSTANTS[26]*CONSTANTS[27])/pow(CONSTANTS[27]+STATES[2], 2.00000));
ALGEBRAIC[7] = 1.00000/(1.00000+( CONSTANTS[28]*CONSTANTS[29])/pow(CONSTANTS[29]+STATES[8], 2.00000));
ALGEBRAIC[11] = 1.00000/(1.00000+exp(- (STATES[0]+CONSTANTS[32])/CONSTANTS[33]));
ALGEBRAIC[12] = 1.00000/( CONSTANTS[36]*exp((STATES[0]+CONSTANTS[34])/CONSTANTS[35])+ CONSTANTS[37]*exp(- (STATES[0]+CONSTANTS[38])/CONSTANTS[39]));
ALGEBRAIC[13] = 1.00000/(1.00000+exp((STATES[0]+CONSTANTS[40])/CONSTANTS[41]));
ALGEBRAIC[14] = 1.00000/( 1.43200e-05*exp(- (STATES[0]+1.19600)/6.28500)+ 6.14900*exp((STATES[0]+0.509600)/20.2700));
ALGEBRAIC[15] = 1.00000/( 0.00979400*exp(- (STATES[0]+17.9500)/28.0500)+ 0.334300*exp((STATES[0]+5.73000)/56.6600));
ALGEBRAIC[17] = ALGEBRAIC[13];
ALGEBRAIC[18] = 2.03800+1.00000/( 0.0213600*exp(- (STATES[0]+100.600)/8.28100)+ 0.305200*exp((STATES[0]+0.994100)/38.4500));
ALGEBRAIC[19] = 1.00000/(1.00000+exp((STATES[0]+89.1000)/6.08600));
ALGEBRAIC[20] =  3.00000*ALGEBRAIC[15];
ALGEBRAIC[22] =  1.46000*ALGEBRAIC[18];
ALGEBRAIC[8] =  (( CONSTANTS[4]*CONSTANTS[5])/CONSTANTS[6])*log(CONSTANTS[1]/STATES[3]);
ALGEBRAIC[16] =  CONSTANTS[42]*STATES[11]+ CONSTANTS[95]*STATES[12];
ALGEBRAIC[21] =  CONSTANTS[42]*STATES[11]+ CONSTANTS[95]*STATES[14];
ALGEBRAIC[4] = ALGEBRAIC[3]+STATES[1];
ALGEBRAIC[23] = 1.00000/(1.00000+CONSTANTS[15]/ALGEBRAIC[4]);
ALGEBRAIC[24] =  CONSTANTS[43]*(STATES[0] - ALGEBRAIC[8])*pow(STATES[10], 3.00000)*( (1.00000 - ALGEBRAIC[23])*ALGEBRAIC[16]*STATES[13]+ ALGEBRAIC[23]*ALGEBRAIC[21]*STATES[15]);
ALGEBRAIC[25] = 1.00000/(1.00000+exp(- (STATES[0]+42.8500)/5.26400));
ALGEBRAIC[26] = ALGEBRAIC[12];
ALGEBRAIC[27] = 1.00000/(1.00000+exp((STATES[0]+87.6100)/7.48800));
ALGEBRAIC[28] = 1.00000/(1.00000+exp((STATES[0]+93.8100)/7.48800));
ALGEBRAIC[29] = 1.00000/(1.00000+CONSTANTS[15]/ALGEBRAIC[4]);
ALGEBRAIC[30] =  CONSTANTS[97]*(STATES[0] - ALGEBRAIC[8])*STATES[16]*( (1.00000 - ALGEBRAIC[29])*STATES[17]+ ALGEBRAIC[29]*STATES[18]);
ALGEBRAIC[31] = 1.00000/(1.00000+exp(- (STATES[0] - 14.3400)/14.8200));
ALGEBRAIC[32] = 1.05150/(1.00000/( 1.20890*(1.00000+exp(- (STATES[0] - 18.4099)/29.3814)))+3.50000/(1.00000+exp((STATES[0]+100.000)/29.3814)));
ALGEBRAIC[33] = 1.00000/(1.00000+exp((STATES[0]+43.9400)/5.71100));
ALGEBRAIC[34] = (CONSTANTS[0]==1.00000 ? 1.00000 - 0.950000/(1.00000+exp((STATES[0]+70.0000)/5.00000)) : 1.00000);
ALGEBRAIC[35] = 4.56200+1.00000/( 0.393300*exp(- (STATES[0]+100.000)/100.000)+ 0.0800400*exp((STATES[0]+50.0000)/16.5900));
ALGEBRAIC[37] =  ALGEBRAIC[35]*ALGEBRAIC[34];
ALGEBRAIC[36] = 23.6200+1.00000/( 0.00141600*exp(- (STATES[0]+96.5200)/59.0500)+ 1.78000e-08*exp((STATES[0]+114.100)/8.07900));
ALGEBRAIC[38] =  ALGEBRAIC[36]*ALGEBRAIC[34];
ALGEBRAIC[42] = 1.00000/(1.00000+exp(- (STATES[0] - 24.3400)/14.8200));
ALGEBRAIC[43] = 1.35400+0.000100000/(exp((STATES[0] - 167.400)/15.8900)+exp(- (STATES[0] - 12.2300)/0.215400));
ALGEBRAIC[44] = 1.00000 - 0.500000/(1.00000+exp((STATES[0]+70.0000)/20.0000));
ALGEBRAIC[45] =  ALGEBRAIC[43]*ALGEBRAIC[44]*ALGEBRAIC[37];
ALGEBRAIC[46] =  ALGEBRAIC[43]*ALGEBRAIC[44]*ALGEBRAIC[38];
ALGEBRAIC[9] =  (( CONSTANTS[4]*CONSTANTS[5])/CONSTANTS[6])*log(CONSTANTS[3]/STATES[5]);
ALGEBRAIC[39] = 1.00000/(1.00000+exp((STATES[0] - 213.600)/151.200));
ALGEBRAIC[40] = 1.00000 - ALGEBRAIC[39];
ALGEBRAIC[41] =  ALGEBRAIC[39]*STATES[20]+ ALGEBRAIC[40]*STATES[21];
ALGEBRAIC[47] =  ALGEBRAIC[39]*STATES[23]+ ALGEBRAIC[40]*STATES[24];
ALGEBRAIC[48] = 1.00000/(1.00000+CONSTANTS[15]/ALGEBRAIC[4]);
ALGEBRAIC[49] =  CONSTANTS[98]*(STATES[0] - ALGEBRAIC[9])*( (1.00000 - ALGEBRAIC[48])*STATES[19]*ALGEBRAIC[41]+ ALGEBRAIC[48]*STATES[22]*ALGEBRAIC[47]);
ALGEBRAIC[50] = 1.00000/(1.00000+exp(- (STATES[0]+3.94000)/4.23000));
ALGEBRAIC[51] = 0.600000+1.00000/(exp( - 0.0500000*(STATES[0]+6.00000))+exp( 0.0900000*(STATES[0]+14.0000)));
ALGEBRAIC[52] = 1.00000/(1.00000+exp((STATES[0]+19.5800)/3.69600));
ALGEBRAIC[53] = 7.00000+1.00000/( 0.00450000*exp(- (STATES[0]+20.0000)/10.0000)+ 0.00450000*exp((STATES[0]+20.0000)/10.0000));
ALGEBRAIC[54] = 1000.00+1.00000/( 3.50000e-05*exp(- (STATES[0]+5.00000)/4.00000)+ 3.50000e-05*exp((STATES[0]+5.00000)/6.00000));
ALGEBRAIC[56] = ALGEBRAIC[52];
ALGEBRAIC[57] = 7.00000+1.00000/( 0.0400000*exp(- (STATES[0] - 4.00000)/7.00000)+ 0.0400000*exp((STATES[0] - 4.00000)/7.00000));
ALGEBRAIC[58] = 100.000+1.00000/( 0.000120000*exp(- STATES[0]/3.00000)+ 0.000120000*exp(STATES[0]/7.00000));
ALGEBRAIC[62] =  2.50000*ALGEBRAIC[53];
ALGEBRAIC[64] =  2.50000*ALGEBRAIC[57];
ALGEBRAIC[66] =  STATES[30]*1.00000;
ALGEBRAIC[67] = 1.00000/(CONSTANTS[48]/ALGEBRAIC[66]+pow(1.00000+CONSTANTS[47]/STATES[2], 4.00000));
ALGEBRAIC[55] =  CONSTANTS[99]*STATES[26]+ CONSTANTS[110]*STATES[27];
ALGEBRAIC[59] = 0.300000+0.600000/(1.00000+exp((STATES[0] - 10.0000)/10.0000));
ALGEBRAIC[60] = 1.00000 - ALGEBRAIC[59];
ALGEBRAIC[61] =  ALGEBRAIC[59]*STATES[28]+ ALGEBRAIC[60]*STATES[29];
ALGEBRAIC[63] =  CONSTANTS[99]*STATES[31]+ CONSTANTS[110]*STATES[27];
ALGEBRAIC[65] =  ALGEBRAIC[59]*STATES[32]+ ALGEBRAIC[60]*STATES[29];
ALGEBRAIC[1] = ( STATES[0]*CONSTANTS[6]*CONSTANTS[6])/( CONSTANTS[4]*CONSTANTS[5]);
ALGEBRAIC[2] = ( STATES[0]*CONSTANTS[6])/( CONSTANTS[4]*CONSTANTS[5]);
ALGEBRAIC[68] = ( 4.00000*ALGEBRAIC[1]*( STATES[2]*exp( 2.00000*ALGEBRAIC[2]) -  0.341000*CONSTANTS[2]))/(exp( 2.00000*ALGEBRAIC[2]) - 1.00000);
ALGEBRAIC[71] = 1.00000/(1.00000+CONSTANTS[15]/ALGEBRAIC[4]);
ALGEBRAIC[72] =  (1.00000 - ALGEBRAIC[71])*CONSTANTS[100]*ALGEBRAIC[68]*STATES[25]*( ALGEBRAIC[55]*(1.00000 - STATES[33])+ STATES[30]*ALGEBRAIC[61]*STATES[33])+ ALGEBRAIC[71]*CONSTANTS[111]*ALGEBRAIC[68]*STATES[25]*( ALGEBRAIC[63]*(1.00000 - STATES[33])+ STATES[30]*ALGEBRAIC[65]*STATES[33]);
ALGEBRAIC[69] = ( 1.00000*ALGEBRAIC[1]*( 0.750000*STATES[4]*exp( 1.00000*ALGEBRAIC[2]) -  0.750000*CONSTANTS[1]))/(exp( 1.00000*ALGEBRAIC[2]) - 1.00000);
ALGEBRAIC[73] =  (1.00000 - ALGEBRAIC[71])*CONSTANTS[112]*ALGEBRAIC[69]*STATES[25]*( ALGEBRAIC[55]*(1.00000 - STATES[33])+ STATES[30]*ALGEBRAIC[61]*STATES[33])+ ALGEBRAIC[71]*CONSTANTS[116]*ALGEBRAIC[69]*STATES[25]*( ALGEBRAIC[63]*(1.00000 - STATES[33])+ STATES[30]*ALGEBRAIC[65]*STATES[33]);
ALGEBRAIC[70] = ( 1.00000*ALGEBRAIC[1]*( 0.750000*STATES[6]*exp( 1.00000*ALGEBRAIC[2]) -  0.750000*CONSTANTS[3]))/(exp( 1.00000*ALGEBRAIC[2]) - 1.00000);
ALGEBRAIC[74] =  (1.00000 - ALGEBRAIC[71])*CONSTANTS[113]*ALGEBRAIC[70]*STATES[25]*( ALGEBRAIC[55]*(1.00000 - STATES[33])+ STATES[30]*ALGEBRAIC[61]*STATES[33])+ ALGEBRAIC[71]*CONSTANTS[117]*ALGEBRAIC[70]*STATES[25]*( ALGEBRAIC[63]*(1.00000 - STATES[33])+ STATES[30]*ALGEBRAIC[65]*STATES[33]);
ALGEBRAIC[75] = 1.00000/(1.00000+exp(- (STATES[0]+8.33700)/6.78900));
ALGEBRAIC[76] = 12.9800+1.00000/( 0.365200*exp((STATES[0] - 31.6600)/3.86900)+ 4.12300e-05*exp(- (STATES[0] - 47.7800)/20.3800));
ALGEBRAIC[77] = 1.86500+1.00000/( 0.0662900*exp((STATES[0] - 34.7000)/7.35500)+ 1.12800e-05*exp(- (STATES[0] - 29.7400)/25.9400));
ALGEBRAIC[78] = 1.00000/(1.00000+exp((STATES[0]+54.8100)/38.2100));
ALGEBRAIC[79] = 1.00000 - ALGEBRAIC[78];
ALGEBRAIC[80] =  ALGEBRAIC[78]*STATES[34]+ ALGEBRAIC[79]*STATES[35];
ALGEBRAIC[81] = ( (1.00000/(1.00000+exp((STATES[0]+55.0000)/75.0000)))*1.00000)/(1.00000+exp((STATES[0] - 10.0000)/30.0000));
ALGEBRAIC[82] =  CONSTANTS[102]* pow((CONSTANTS[3]/5.40000), 1.0 / 2)*ALGEBRAIC[80]*ALGEBRAIC[81]*(STATES[0] - ALGEBRAIC[9]);
ALGEBRAIC[83] = 1.00000/(1.00000+exp(- (STATES[0]+11.6000)/8.93200));
ALGEBRAIC[84] = 817.300+1.00000/( 0.000232600*exp((STATES[0]+48.2800)/17.8000)+ 0.00129200*exp(- (STATES[0]+210.000)/230.000));
ALGEBRAIC[85] = ALGEBRAIC[83];
ALGEBRAIC[86] = 1.00000/( 0.0100000*exp((STATES[0] - 50.0000)/20.0000)+ 0.0193000*exp(- (STATES[0]+66.5400)/31.0000));
ALGEBRAIC[10] =  (( CONSTANTS[4]*CONSTANTS[5])/CONSTANTS[6])*log((CONSTANTS[3]+ CONSTANTS[31]*CONSTANTS[1])/(STATES[5]+ CONSTANTS[31]*STATES[3]));
ALGEBRAIC[87] = 1.00000+0.600000/(1.00000+pow(3.80000e-05/STATES[9], 1.40000));
ALGEBRAIC[88] =  CONSTANTS[103]*ALGEBRAIC[87]*STATES[36]*STATES[37]*(STATES[0] - ALGEBRAIC[10]);
ALGEBRAIC[89] = 1.00000/(1.00000+exp(- (STATES[0]+ 2.55380*CONSTANTS[3]+144.590)/( 1.56920*CONSTANTS[3]+3.81150)));
ALGEBRAIC[90] = 122.200/(exp(- (STATES[0]+127.200)/20.3600)+exp((STATES[0]+236.800)/69.3300));
ALGEBRAIC[91] = 1.00000/(1.00000+exp(((STATES[0]+105.800) -  2.60000*CONSTANTS[3])/9.49300));
ALGEBRAIC[92] =  CONSTANTS[104]* pow(CONSTANTS[3], 1.0 / 2)*ALGEBRAIC[91]*STATES[38]*(STATES[0] - ALGEBRAIC[9]);
ALGEBRAIC[121] = 1.00000/(1.00000+pow(CONSTANTS[64]/STATES[9], 2.00000));
ALGEBRAIC[94] = exp(( CONSTANTS[62]*STATES[0]*CONSTANTS[6])/( CONSTANTS[4]*CONSTANTS[5]));
ALGEBRAIC[101] = 1.00000+ (CONSTANTS[1]/CONSTANTS[55])*(1.00000+1.00000/ALGEBRAIC[94]);
ALGEBRAIC[102] = CONSTANTS[1]/( CONSTANTS[55]*ALGEBRAIC[94]*ALGEBRAIC[101]);
ALGEBRAIC[105] =  ALGEBRAIC[102]*CONSTANTS[59];
ALGEBRAIC[95] = 1.00000+ (STATES[3]/CONSTANTS[55])*(1.00000+ALGEBRAIC[94]);
ALGEBRAIC[96] = ( STATES[3]*ALGEBRAIC[94])/( CONSTANTS[55]*ALGEBRAIC[95]);
ALGEBRAIC[108] =  ALGEBRAIC[96]*CONSTANTS[59];
ALGEBRAIC[98] = 1.00000+ (STATES[3]/CONSTANTS[53])*(1.00000+STATES[3]/CONSTANTS[54]);
ALGEBRAIC[99] = ( STATES[3]*STATES[3])/( ALGEBRAIC[98]*CONSTANTS[53]*CONSTANTS[54]);
ALGEBRAIC[111] =  ALGEBRAIC[99]*ALGEBRAIC[96]*CONSTANTS[57];
ALGEBRAIC[112] =  ALGEBRAIC[102]*CONSTANTS[124]*CONSTANTS[57];
ALGEBRAIC[103] = 1.00000/ALGEBRAIC[101];
ALGEBRAIC[104] =  ALGEBRAIC[103]*CONSTANTS[58];
ALGEBRAIC[106] = ALGEBRAIC[104]+ALGEBRAIC[105];
ALGEBRAIC[93] = exp(( CONSTANTS[63]*STATES[0]*CONSTANTS[6])/( CONSTANTS[4]*CONSTANTS[5]));
ALGEBRAIC[97] = 1.00000/ALGEBRAIC[95];
ALGEBRAIC[107] = ( ALGEBRAIC[97]*CONSTANTS[58])/ALGEBRAIC[93];
ALGEBRAIC[109] = ALGEBRAIC[107]+ALGEBRAIC[108];
ALGEBRAIC[100] = 1.00000/ALGEBRAIC[98];
ALGEBRAIC[110] =  ALGEBRAIC[100]*STATES[9]*CONSTANTS[60];
ALGEBRAIC[113] =  CONSTANTS[127]*ALGEBRAIC[109]*(ALGEBRAIC[111]+ALGEBRAIC[110])+ CONSTANTS[128]*ALGEBRAIC[111]*(CONSTANTS[127]+ALGEBRAIC[106]);
ALGEBRAIC[114] =  CONSTANTS[126]*ALGEBRAIC[111]*(ALGEBRAIC[109]+CONSTANTS[128])+ ALGEBRAIC[109]*ALGEBRAIC[110]*(CONSTANTS[126]+ALGEBRAIC[112]);
ALGEBRAIC[115] =  CONSTANTS[126]*ALGEBRAIC[106]*(ALGEBRAIC[111]+ALGEBRAIC[110])+ ALGEBRAIC[112]*ALGEBRAIC[110]*(CONSTANTS[127]+ALGEBRAIC[106]);
ALGEBRAIC[116] =  CONSTANTS[127]*ALGEBRAIC[112]*(ALGEBRAIC[109]+CONSTANTS[128])+ ALGEBRAIC[106]*CONSTANTS[128]*(CONSTANTS[126]+ALGEBRAIC[112]);
ALGEBRAIC[117] = ALGEBRAIC[113]/(ALGEBRAIC[113]+ALGEBRAIC[114]+ALGEBRAIC[115]+ALGEBRAIC[116]);
ALGEBRAIC[118] = ALGEBRAIC[114]/(ALGEBRAIC[113]+ALGEBRAIC[114]+ALGEBRAIC[115]+ALGEBRAIC[116]);
ALGEBRAIC[119] = ALGEBRAIC[115]/(ALGEBRAIC[113]+ALGEBRAIC[114]+ALGEBRAIC[115]+ALGEBRAIC[116]);
ALGEBRAIC[120] = ALGEBRAIC[116]/(ALGEBRAIC[113]+ALGEBRAIC[114]+ALGEBRAIC[115]+ALGEBRAIC[116]);
ALGEBRAIC[122] = ( 3.00000*( ALGEBRAIC[120]*ALGEBRAIC[111] -  ALGEBRAIC[117]*ALGEBRAIC[112])+ ALGEBRAIC[119]*ALGEBRAIC[108]) -  ALGEBRAIC[118]*ALGEBRAIC[105];
ALGEBRAIC[123] =  ALGEBRAIC[118]*CONSTANTS[127] -  ALGEBRAIC[117]*CONSTANTS[126];
ALGEBRAIC[124] =  0.800000*CONSTANTS[129]*ALGEBRAIC[121]*( CONSTANTS[7]*ALGEBRAIC[122]+ CONSTANTS[8]*ALGEBRAIC[123]);
ALGEBRAIC[151] = 1.00000/(1.00000+pow(CONSTANTS[64]/STATES[2], 2.00000));
ALGEBRAIC[131] = 1.00000+ (CONSTANTS[1]/CONSTANTS[55])*(1.00000+1.00000/ALGEBRAIC[94]);
ALGEBRAIC[132] = CONSTANTS[1]/( CONSTANTS[55]*ALGEBRAIC[94]*ALGEBRAIC[131]);
ALGEBRAIC[135] =  ALGEBRAIC[132]*CONSTANTS[59];
ALGEBRAIC[125] = 1.00000+ (STATES[4]/CONSTANTS[55])*(1.00000+ALGEBRAIC[94]);
ALGEBRAIC[126] = ( STATES[4]*ALGEBRAIC[94])/( CONSTANTS[55]*ALGEBRAIC[125]);
ALGEBRAIC[138] =  ALGEBRAIC[126]*CONSTANTS[59];
ALGEBRAIC[128] = 1.00000+ (STATES[4]/CONSTANTS[53])*(1.00000+STATES[4]/CONSTANTS[54]);
ALGEBRAIC[129] = ( STATES[4]*STATES[4])/( ALGEBRAIC[128]*CONSTANTS[53]*CONSTANTS[54]);
ALGEBRAIC[141] =  ALGEBRAIC[129]*ALGEBRAIC[126]*CONSTANTS[57];
ALGEBRAIC[142] =  ALGEBRAIC[132]*CONSTANTS[131]*CONSTANTS[57];
ALGEBRAIC[133] = 1.00000/ALGEBRAIC[131];
ALGEBRAIC[134] =  ALGEBRAIC[133]*CONSTANTS[58];
ALGEBRAIC[136] = ALGEBRAIC[134]+ALGEBRAIC[135];
ALGEBRAIC[127] = 1.00000/ALGEBRAIC[125];
ALGEBRAIC[137] = ( ALGEBRAIC[127]*CONSTANTS[58])/ALGEBRAIC[93];
ALGEBRAIC[139] = ALGEBRAIC[137]+ALGEBRAIC[138];
ALGEBRAIC[130] = 1.00000/ALGEBRAIC[128];
ALGEBRAIC[140] =  ALGEBRAIC[130]*STATES[2]*CONSTANTS[60];
ALGEBRAIC[143] =  CONSTANTS[134]*ALGEBRAIC[139]*(ALGEBRAIC[141]+ALGEBRAIC[140])+ CONSTANTS[135]*ALGEBRAIC[141]*(CONSTANTS[134]+ALGEBRAIC[136]);
ALGEBRAIC[144] =  CONSTANTS[133]*ALGEBRAIC[141]*(ALGEBRAIC[139]+CONSTANTS[135])+ ALGEBRAIC[139]*ALGEBRAIC[140]*(CONSTANTS[133]+ALGEBRAIC[142]);
ALGEBRAIC[145] =  CONSTANTS[133]*ALGEBRAIC[136]*(ALGEBRAIC[141]+ALGEBRAIC[140])+ ALGEBRAIC[142]*ALGEBRAIC[140]*(CONSTANTS[134]+ALGEBRAIC[136]);
ALGEBRAIC[146] =  CONSTANTS[134]*ALGEBRAIC[142]*(ALGEBRAIC[139]+CONSTANTS[135])+ ALGEBRAIC[136]*CONSTANTS[135]*(CONSTANTS[133]+ALGEBRAIC[142]);
ALGEBRAIC[147] = ALGEBRAIC[143]/(ALGEBRAIC[143]+ALGEBRAIC[144]+ALGEBRAIC[145]+ALGEBRAIC[146]);
ALGEBRAIC[148] = ALGEBRAIC[144]/(ALGEBRAIC[143]+ALGEBRAIC[144]+ALGEBRAIC[145]+ALGEBRAIC[146]);
ALGEBRAIC[149] = ALGEBRAIC[145]/(ALGEBRAIC[143]+ALGEBRAIC[144]+ALGEBRAIC[145]+ALGEBRAIC[146]);
ALGEBRAIC[150] = ALGEBRAIC[146]/(ALGEBRAIC[143]+ALGEBRAIC[144]+ALGEBRAIC[145]+ALGEBRAIC[146]);
ALGEBRAIC[152] = ( 3.00000*( ALGEBRAIC[150]*ALGEBRAIC[141] -  ALGEBRAIC[147]*ALGEBRAIC[142])+ ALGEBRAIC[149]*ALGEBRAIC[138]) -  ALGEBRAIC[148]*ALGEBRAIC[135];
ALGEBRAIC[153] =  ALGEBRAIC[148]*CONSTANTS[134] -  ALGEBRAIC[147]*CONSTANTS[133];
ALGEBRAIC[154] =  0.200000*CONSTANTS[129]*ALGEBRAIC[151]*( CONSTANTS[7]*ALGEBRAIC[152]+ CONSTANTS[8]*ALGEBRAIC[153]);
ALGEBRAIC[156] =  CONSTANTS[75]*exp(( (1.00000 - CONSTANTS[76])*STATES[0]*CONSTANTS[6])/( 3.00000*CONSTANTS[4]*CONSTANTS[5]));
ALGEBRAIC[160] = ( CONSTANTS[70]*pow(CONSTANTS[3]/CONSTANTS[78], 2.00000))/((pow(1.00000+CONSTANTS[1]/ALGEBRAIC[156], 3.00000)+pow(1.00000+CONSTANTS[3]/CONSTANTS[78], 2.00000)) - 1.00000);
ALGEBRAIC[157] = CONSTANTS[83]/(1.00000+CONSTANTS[82]/CONSTANTS[84]+STATES[3]/CONSTANTS[85]+STATES[5]/CONSTANTS[86]);
ALGEBRAIC[161] = ( CONSTANTS[71]*ALGEBRAIC[157]*CONSTANTS[82])/(1.00000+CONSTANTS[80]/CONSTANTS[81]);
ALGEBRAIC[155] =  CONSTANTS[74]*exp(( CONSTANTS[76]*STATES[0]*CONSTANTS[6])/( 3.00000*CONSTANTS[4]*CONSTANTS[5]));
ALGEBRAIC[158] = ( CONSTANTS[66]*pow(STATES[3]/ALGEBRAIC[155], 3.00000))/((pow(1.00000+STATES[3]/ALGEBRAIC[155], 3.00000)+pow(1.00000+STATES[5]/CONSTANTS[77], 2.00000)) - 1.00000);
ALGEBRAIC[159] = ( CONSTANTS[69]*pow(CONSTANTS[1]/ALGEBRAIC[156], 3.00000))/((pow(1.00000+CONSTANTS[1]/ALGEBRAIC[156], 3.00000)+pow(1.00000+CONSTANTS[3]/CONSTANTS[78], 2.00000)) - 1.00000);
ALGEBRAIC[162] = ( CONSTANTS[73]*pow(STATES[5]/CONSTANTS[77], 2.00000))/((pow(1.00000+STATES[3]/ALGEBRAIC[155], 3.00000)+pow(1.00000+STATES[5]/CONSTANTS[77], 2.00000)) - 1.00000);
ALGEBRAIC[163] =  CONSTANTS[138]*ALGEBRAIC[158]*CONSTANTS[137]+ ALGEBRAIC[159]*ALGEBRAIC[162]*ALGEBRAIC[161]+ CONSTANTS[137]*ALGEBRAIC[162]*ALGEBRAIC[161]+ ALGEBRAIC[161]*ALGEBRAIC[158]*CONSTANTS[137];
ALGEBRAIC[164] =  ALGEBRAIC[159]*CONSTANTS[136]*ALGEBRAIC[162]+ ALGEBRAIC[158]*CONSTANTS[137]*ALGEBRAIC[160]+ ALGEBRAIC[160]*CONSTANTS[136]*ALGEBRAIC[162]+ CONSTANTS[137]*ALGEBRAIC[160]*ALGEBRAIC[162];
ALGEBRAIC[165] =  CONSTANTS[137]*ALGEBRAIC[160]*CONSTANTS[138]+ ALGEBRAIC[161]*ALGEBRAIC[159]*CONSTANTS[136]+ ALGEBRAIC[159]*CONSTANTS[136]*CONSTANTS[138]+ ALGEBRAIC[160]*CONSTANTS[138]*CONSTANTS[136];
ALGEBRAIC[166] =  ALGEBRAIC[162]*ALGEBRAIC[161]*ALGEBRAIC[159]+ ALGEBRAIC[160]*CONSTANTS[138]*ALGEBRAIC[158]+ ALGEBRAIC[159]*CONSTANTS[138]*ALGEBRAIC[158]+ ALGEBRAIC[161]*ALGEBRAIC[159]*ALGEBRAIC[158];
ALGEBRAIC[167] = ALGEBRAIC[163]/(ALGEBRAIC[163]+ALGEBRAIC[164]+ALGEBRAIC[165]+ALGEBRAIC[166]);
ALGEBRAIC[168] = ALGEBRAIC[164]/(ALGEBRAIC[163]+ALGEBRAIC[164]+ALGEBRAIC[165]+ALGEBRAIC[166]);
ALGEBRAIC[171] =  3.00000*( ALGEBRAIC[167]*ALGEBRAIC[160] -  ALGEBRAIC[168]*ALGEBRAIC[161]);
ALGEBRAIC[169] = ALGEBRAIC[165]/(ALGEBRAIC[163]+ALGEBRAIC[164]+ALGEBRAIC[165]+ALGEBRAIC[166]);
ALGEBRAIC[170] = ALGEBRAIC[166]/(ALGEBRAIC[163]+ALGEBRAIC[164]+ALGEBRAIC[165]+ALGEBRAIC[166]);
ALGEBRAIC[172] =  2.00000*( ALGEBRAIC[170]*CONSTANTS[136] -  ALGEBRAIC[169]*ALGEBRAIC[158]);
ALGEBRAIC[173] =  CONSTANTS[139]*( CONSTANTS[7]*ALGEBRAIC[171]+ CONSTANTS[9]*ALGEBRAIC[172]);
ALGEBRAIC[174] = 1.00000/(1.00000+exp(- (STATES[0] - 14.4800)/18.3400));
ALGEBRAIC[175] =  CONSTANTS[106]*ALGEBRAIC[174]*(STATES[0] - ALGEBRAIC[9]);
ALGEBRAIC[176] = ( CONSTANTS[89]*ALGEBRAIC[1]*( STATES[3]*exp(ALGEBRAIC[2]) - CONSTANTS[1]))/(exp(ALGEBRAIC[2]) - 1.00000);
ALGEBRAIC[177] = ( CONSTANTS[90]*4.00000*ALGEBRAIC[1]*( STATES[9]*exp( 2.00000*ALGEBRAIC[2]) -  0.341000*CONSTANTS[2]))/(exp( 2.00000*ALGEBRAIC[2]) - 1.00000);
ALGEBRAIC[178] = ( CONSTANTS[91]*STATES[9])/(CONSTANTS[92]+STATES[9]);
ALGEBRAIC[179] = (STATES[4] - STATES[3])/2.00000;
ALGEBRAIC[180] = (STATES[6] - STATES[5])/2.00000;
ALGEBRAIC[181] = (STATES[2] - STATES[9])/0.200000;
ALGEBRAIC[182] = ( CONSTANTS[107]*- ALGEBRAIC[72])/(1.00000+ 1.00000*pow(1.50000/STATES[8], 8.00000));
ALGEBRAIC[183] = (CONSTANTS[0]==2.00000 ?  ALGEBRAIC[182]*1.70000 : ALGEBRAIC[182]);
ALGEBRAIC[184] = CONSTANTS[93]/(1.00000+0.0123000/STATES[8]);
ALGEBRAIC[185] = (CONDVAR[2]<0.00000 ? 0.00100000 : ALGEBRAIC[184]);
ALGEBRAIC[186] = ( CONSTANTS[115]*- ALGEBRAIC[72])/(1.00000+pow(1.50000/STATES[8], 8.00000));
ALGEBRAIC[187] = (CONSTANTS[0]==2.00000 ?  ALGEBRAIC[186]*1.70000 : ALGEBRAIC[186]);
ALGEBRAIC[188] = CONSTANTS[108]/(1.00000+0.0123000/STATES[8]);
ALGEBRAIC[189] = (CONDVAR[3]<0.00000 ? 0.00100000 : ALGEBRAIC[188]);
ALGEBRAIC[190] = 1.00000/(1.00000+CONSTANTS[15]/ALGEBRAIC[4]);
ALGEBRAIC[191] =  (1.00000 - ALGEBRAIC[190])*STATES[39]+ ALGEBRAIC[190]*STATES[40];
ALGEBRAIC[192] = ( CONSTANTS[109]*0.00437500*STATES[9])/(STATES[9]+0.000920000);
ALGEBRAIC[193] = ( CONSTANTS[109]*2.75000*0.00437500*STATES[9])/((STATES[9]+0.000920000) - 0.000170000);
ALGEBRAIC[194] = 1.00000/(1.00000+CONSTANTS[15]/ALGEBRAIC[4]);
ALGEBRAIC[195] = ( 0.00393750*STATES[7])/15.0000;
ALGEBRAIC[196] = ( (1.00000 - ALGEBRAIC[194])*ALGEBRAIC[192]+ ALGEBRAIC[194]*ALGEBRAIC[193]) - ALGEBRAIC[195];
ALGEBRAIC[197] = (STATES[7] - STATES[8])/100.000;
}
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;
SI[39] = 1.0;
SI[40] = 1.0;
}
void
computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES,
             double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS)
{
CONDVAR[0] = VOI - CONSTANTS[14];
CONDVAR[1] = VOI - (CONSTANTS[14]+CONSTANTS[13]);
CONDVAR[2] = ALGEBRAIC[184] - 0.00100000;
CONDVAR[3] = ALGEBRAIC[188] - 0.00100000;
}