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 199 entries in the algebraic variable array.
   There are a total of 46 entries in each of the rate and state variable arrays.
   There are a total of 146 entries in the constant variable array.
 */
/*
 * VOI is time in component environment (millisecond).
 * CONSTANTS[0] is nao in component extracellular (millimolar).
 * CONSTANTS[1] is cao in component extracellular (millimolar).
 * CONSTANTS[2] is ko in component extracellular (millimolar).
 * CONSTANTS[3] is R in component physical_constants (joule_per_kilomole_kelvin).
 * CONSTANTS[4] is T in component physical_constants (kelvin).
 * CONSTANTS[5] is F in component physical_constants (coulomb_per_mole).
 * CONSTANTS[6] is zna in component physical_constants (dimensionless).
 * CONSTANTS[7] is zca in component physical_constants (dimensionless).
 * CONSTANTS[8] is zk in component physical_constants (dimensionless).
 * CONSTANTS[9] is L in component cell_geometry (centimeter).
 * CONSTANTS[10] is rad in component cell_geometry (centimeter).
 * CONSTANTS[11] is greekpi in component cell_geometry (dimensionless).
 * CONSTANTS[119] is vcell in component cell_geometry (microliter).
 * CONSTANTS[123] is Ageo in component cell_geometry (centimeter_squared).
 * CONSTANTS[124] is Acap in component cell_geometry (centimeter_squared).
 * CONSTANTS[125] is vmyo in component cell_geometry (microliter).
 * CONSTANTS[126] is vnsr in component cell_geometry (microliter).
 * CONSTANTS[127] is vjsr in component cell_geometry (microliter).
 * CONSTANTS[128] is vcsr in component cell_geometry (microliter).
 * CONSTANTS[130] is vsl in component cell_geometry (microliter).
 * CONSTANTS[129] 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[27] is INa in component INa (microA_per_microF).
 * ALGEBRAIC[33] is INaL in component INaL (microA_per_microF).
 * ALGEBRAIC[39] is Ito in component Ito (microA_per_microF).
 * ALGEBRAIC[41] is Isus in component Isus (microA_per_microF).
 * ALGEBRAIC[64] is ICaL in component ICaL (microA_per_microF).
 * ALGEBRAIC[71] is ICaT in component ICaT (microA_per_microF).
 * ALGEBRAIC[65] is ICaNa in component ICaL (microA_per_microF).
 * ALGEBRAIC[66] is ICaK in component ICaL (microA_per_microF).
 * ALGEBRAIC[79] is IKr in component IKr (microA_per_microF).
 * ALGEBRAIC[85] is IKs in component IKs (microA_per_microF).
 * ALGEBRAIC[90] is If in component If (microA_per_microF).
 * ALGEBRAIC[94] is IK1 in component IK1 (microA_per_microF).
 * ALGEBRAIC[126] is INaCa_i in component INaCa_i (microA_per_microF).
 * ALGEBRAIC[156] is INaCa_ss in component INaCa_i (microA_per_microF).
 * ALGEBRAIC[175] is INaK in component INaK (microA_per_microF).
 * ALGEBRAIC[176] is INab in component INab (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 KmCaMK in component CaMK (millimolar).
 * CONSTANTS[15] is aCaMK in component CaMK (per_millimolar_per_millisecond).
 * CONSTANTS[16] is bCaMK in component CaMK (per_millisecond).
 * CONSTANTS[17] is CaMKo in component CaMK (dimensionless).
 * CONSTANTS[18] 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[19] is BSRmax in component intracellular_ions (millimolar).
 * CONSTANTS[20] is KmBSR in component intracellular_ions (millimolar).
 * CONSTANTS[21] is BSLmax in component intracellular_ions (millimolar).
 * CONSTANTS[22] is KmBSL in component intracellular_ions (millimolar).
 * CONSTANTS[23] is csqnmax in component intracellular_ions (millimolar).
 * CONSTANTS[24] is kmcsqn in component intracellular_ions (millimolar).
 * CONSTANTS[25] is csqnmaxsl in component intracellular_ions (millimolar).
 * CONSTANTS[26] is cmdnmax in component intracellular_ions (millimolar).
 * CONSTANTS[27] is kmcmdn in component intracellular_ions (millimolar).
 * CONSTANTS[28] is cmdnmaxsl in component intracellular_ions (millimolar).
 * CONSTANTS[29] is trpnmax in component intracellular_ions (millimolar).
 * CONSTANTS[30] is kmtrpn in component intracellular_ions (millimolar).
 * CONSTANTS[31] is trpnmaxsl in component intracellular_ions (millimolar).
 * STATES[3] is nai in component intracellular_ions (millimolar).
 * STATES[4] is nasl in component intracellular_ions (millimolar).
 * STATES[5] is nass in component intracellular_ions (millimolar).
 * STATES[6] is ki in component intracellular_ions (millimolar).
 * STATES[7] is kss in component intracellular_ions (millimolar).
 * STATES[8] is ksl in component intracellular_ions (millimolar).
 * STATES[9] is cai in component intracellular_ions (millimolar).
 * STATES[10] is casl in component intracellular_ions (millimolar).
 * STATES[11] is cansr in component intracellular_ions (millimolar).
 * STATES[12] is cajsr in component intracellular_ions (millimolar).
 * STATES[13] is cacsr in component intracellular_ions (millimolar).
 * ALGEBRAIC[88] is IfNa in component If (microA_per_microF).
 * ALGEBRAIC[89] is IfK in component If (microA_per_microF).
 * ALGEBRAIC[179] is JdiffNa in component diff (millimolar_per_millisecond).
 * ALGEBRAIC[180] is JgapNa in component diff (millimolar_per_millisecond).
 * ALGEBRAIC[183] is Jdiff in component diff (millimolar_per_millisecond).
 * ALGEBRAIC[184] is Jgap in component diff (millimolar_per_millisecond).
 * ALGEBRAIC[181] is JdiffK in component diff (millimolar_per_millisecond).
 * ALGEBRAIC[182] is JgapK in component diff (millimolar_per_millisecond).
 * ALGEBRAIC[189] is Jup1 in component SERCA (millimolar_per_millisecond).
 * ALGEBRAIC[190] is Jup2 in component SERCA (millimolar_per_millisecond).
 * STATES[14] is Jrel1 in component ryr (millimolar_per_millisecond).
 * STATES[15] is Jrel2 in component ryr (millimolar_per_millisecond).
 * ALGEBRAIC[192] is Jip3 in component IP3 (millimolar_per_millisecond).
 * ALGEBRAIC[193] is Jtr1 in component trans_flux (millimolar_per_millisecond).
 * ALGEBRAIC[194] is Jtr2 in component trans_flux (millimolar_per_millisecond).
 * ALGEBRAIC[5] is Bcai in component intracellular_ions (dimensionless).
 * ALGEBRAIC[8] is Bcajsr in component intracellular_ions (dimensionless).
 * ALGEBRAIC[9] is Bcacsr in component intracellular_ions (dimensionless).
 * ALGEBRAIC[6] is Bcass in component intracellular_ions (dimensionless).
 * ALGEBRAIC[7] is Bcasl in component intracellular_ions (dimensionless).
 * CONSTANTS[32] is cm in component intracellular_ions (microF_per_centimeter_squared).
 * CONSTANTS[33] is PKNa in component reversal_potentials (dimensionless).
 * ALGEBRAIC[10] is ENa in component reversal_potentials (millivolt).
 * ALGEBRAIC[11] is EK in component reversal_potentials (millivolt).
 * ALGEBRAIC[12] is ECa in component reversal_potentials (millivolt).
 * ALGEBRAIC[13] is EKs in component reversal_potentials (millivolt).
 * ALGEBRAIC[14] is mss in component INa (dimensionless).
 * ALGEBRAIC[15] is tm in component INa (millisecond).
 * CONSTANTS[34] is mssV1 in component INa (millivolt).
 * CONSTANTS[35] is mssV2 in component INa (millivolt).
 * CONSTANTS[36] is mtV1 in component INa (millivolt).
 * CONSTANTS[37] is mtV2 in component INa (millivolt).
 * CONSTANTS[38] is mtD1 in component INa (dimensionless).
 * CONSTANTS[39] is mtD2 in component INa (dimensionless).
 * CONSTANTS[40] is mtV3 in component INa (millivolt).
 * CONSTANTS[41] is mtV4 in component INa (millivolt).
 * STATES[16] is m in component INa (dimensionless).
 * ALGEBRAIC[16] is hss in component INa (dimensionless).
 * ALGEBRAIC[17] is thf in component INa (millisecond).
 * ALGEBRAIC[18] is ths in component INa (millisecond).
 * CONSTANTS[42] is hssV1 in component INa (millivolt).
 * CONSTANTS[43] is hssV2 in component INa (millivolt).
 * CONSTANTS[112] is Ahs in component INa (dimensionless).
 * CONSTANTS[44] is Ahf in component INa (dimensionless).
 * STATES[17] is hf in component INa (dimensionless).
 * STATES[18] is hs in component INa (dimensionless).
 * ALGEBRAIC[19] is h in component INa (dimensionless).
 * CONSTANTS[45] is GNa in component INa (milliS_per_microF).
 * ALGEBRAIC[20] is jss in component INa (dimensionless).
 * ALGEBRAIC[21] is tj in component INa (millisecond).
 * STATES[19] is j in component INa (dimensionless).
 * ALGEBRAIC[22] is hssp in component INa (dimensionless).
 * ALGEBRAIC[23] is thsp in component INa (millisecond).
 * STATES[20] is hsp in component INa (dimensionless).
 * ALGEBRAIC[24] is hp in component INa (dimensionless).
 * ALGEBRAIC[25] is tjp in component INa (millisecond).
 * STATES[21] is jp in component INa (dimensionless).
 * ALGEBRAIC[26] is fINap in component INa (dimensionless).
 * ALGEBRAIC[28] is mLss in component INaL (dimensionless).
 * ALGEBRAIC[29] is tmL in component INaL (millisecond).
 * STATES[22] is mL in component INaL (dimensionless).
 * CONSTANTS[46] is thL in component INaL (millisecond).
 * ALGEBRAIC[30] is hLss in component INaL (dimensionless).
 * STATES[23] is hL in component INaL (dimensionless).
 * ALGEBRAIC[31] is hLssp in component INaL (dimensionless).
 * CONSTANTS[113] is thLp in component INaL (millisecond).
 * STATES[24] is hLp in component INaL (dimensionless).
 * CONSTANTS[47] is GNaL in component INaL (milliS_per_microF).
 * ALGEBRAIC[32] is fINaLp in component INaL (dimensionless).
 * ALGEBRAIC[34] is ass in component Ito (dimensionless).
 * ALGEBRAIC[36] is taua in component Ito (millisecond).
 * ALGEBRAIC[35] is iss in component Ito (dimensionless).
 * ALGEBRAIC[37] is tauis in component Ito (millisecond).
 * ALGEBRAIC[38] is tauif in component Ito (millisecond).
 * STATES[25] is a in component Ito (dimensionless).
 * STATES[26] is i1 in component Ito (dimensionless).
 * STATES[27] is i2 in component Ito (dimensionless).
 * CONSTANTS[48] is Gto in component Ito (milliS_per_microF).
 * CONSTANTS[49] is Gsus in component Isus (milliS_per_microF).
 * ALGEBRAIC[40] is asus in component Isus (dimensionless).
 * CONSTANTS[50] is Kmn in component ICaL (millimolar).
 * CONSTANTS[51] is k2n in component ICaL (per_millisecond).
 * ALGEBRAIC[42] is dss in component ICaL (dimensionless).
 * STATES[28] is d in component ICaL (dimensionless).
 * ALGEBRAIC[44] is fss in component ICaL (dimensionless).
 * CONSTANTS[114] is Aff in component ICaL (dimensionless).
 * CONSTANTS[120] is Afs in component ICaL (dimensionless).
 * STATES[29] is ff in component ICaL (dimensionless).
 * STATES[30] is fs in component ICaL (dimensionless).
 * ALGEBRAIC[47] is f in component ICaL (dimensionless).
 * ALGEBRAIC[48] is fcass in component ICaL (dimensionless).
 * ALGEBRAIC[51] is Afcaf in component ICaL (dimensionless).
 * ALGEBRAIC[52] is Afcas in component ICaL (dimensionless).
 * STATES[31] is fcaf in component ICaL (dimensionless).
 * STATES[32] is fcas in component ICaL (dimensionless).
 * ALGEBRAIC[53] is fca in component ICaL (dimensionless).
 * STATES[33] is jca in component ICaL (dimensionless).
 * STATES[34] is ffp in component ICaL (dimensionless).
 * ALGEBRAIC[55] is fp in component ICaL (dimensionless).
 * STATES[35] is fcafp in component ICaL (dimensionless).
 * ALGEBRAIC[57] is fcap in component ICaL (dimensionless).
 * ALGEBRAIC[58] is km2n in component ICaL (per_millisecond).
 * ALGEBRAIC[59] is anca in component ICaL (dimensionless).
 * STATES[36] is nca in component ICaL (dimensionless).
 * ALGEBRAIC[60] is PhiCaL in component ICaL (dimensionless).
 * ALGEBRAIC[61] is PhiCaNa in component ICaL (dimensionless).
 * ALGEBRAIC[62] is PhiCaK in component ICaL (dimensionless).
 * CONSTANTS[52] is PCa in component ICaL (dimensionless).
 * CONSTANTS[115] is PCap in component ICaL (dimensionless).
 * CONSTANTS[116] is PCaNa in component ICaL (dimensionless).
 * CONSTANTS[117] is PCaK in component ICaL (dimensionless).
 * CONSTANTS[121] is PCaNap in component ICaL (dimensionless).
 * CONSTANTS[122] is PCaKp in component ICaL (dimensionless).
 * ALGEBRAIC[63] is fICaLp in component ICaL (dimensionless).
 * ALGEBRAIC[43] is td in component ICaL (millisecond).
 * ALGEBRAIC[45] is tff in component ICaL (millisecond).
 * ALGEBRAIC[46] is tfs in component ICaL (millisecond).
 * ALGEBRAIC[49] is tfcaf in component ICaL (millisecond).
 * ALGEBRAIC[50] is tfcas in component ICaL (millisecond).
 * CONSTANTS[118] is tjca in component ICaL (millisecond).
 * ALGEBRAIC[54] is tffp in component ICaL (millisecond).
 * ALGEBRAIC[56] is tfcafp in component ICaL (millisecond).
 * CONSTANTS[53] is GCaT in component ICaT (milliS_per_microF).
 * ALGEBRAIC[67] is bss in component ICaT (dimensionless).
 * ALGEBRAIC[68] is gss in component ICaT (dimensionless).
 * ALGEBRAIC[69] is taub in component ICaT (millisecond).
 * ALGEBRAIC[70] is taug in component ICaT (millisecond).
 * STATES[37] is b in component ICaT (dimensionless).
 * STATES[38] is g in component ICaT (dimensionless).
 * CONSTANTS[54] is GKr in component IKr (milliS_per_microF).
 * ALGEBRAIC[72] is xrss in component IKr (dimensionless).
 * ALGEBRAIC[73] is txrf in component IKr (millisecond).
 * ALGEBRAIC[74] is txrs in component IKr (millisecond).
 * ALGEBRAIC[75] is Axrf in component IKr (dimensionless).
 * ALGEBRAIC[76] is Axrs in component IKr (dimensionless).
 * STATES[39] is xrf in component IKr (dimensionless).
 * STATES[40] is xrs in component IKr (dimensionless).
 * ALGEBRAIC[77] is xr in component IKr (dimensionless).
 * ALGEBRAIC[78] is rkr in component IKr (dimensionless).
 * CONSTANTS[55] is GKs in component IKs (milliS_per_microF).
 * ALGEBRAIC[80] is xs1ss in component IKs (dimensionless).
 * ALGEBRAIC[82] is xs2ss in component IKs (dimensionless).
 * ALGEBRAIC[81] is txs1 in component IKs (millisecond).
 * STATES[41] is xs1 in component IKs (dimensionless).
 * STATES[42] is xs2 in component IKs (dimensionless).
 * ALGEBRAIC[84] is KsCa in component IKs (dimensionless).
 * ALGEBRAIC[83] is txs2 in component IKs (millisecond).
 * CONSTANTS[56] is GfNa in component If (milliS_per_microF).
 * CONSTANTS[57] is GfK in component If (milliS_per_microF).
 * ALGEBRAIC[86] is yss in component If (dimensionless).
 * ALGEBRAIC[87] is tauy in component If (millisecond).
 * STATES[43] is y in component If (dimensionless).
 * CONSTANTS[58] is GK1 in component IK1 (milliS_per_microF).
 * ALGEBRAIC[91] is xk1ss in component IK1 (dimensionless).
 * ALGEBRAIC[92] is txk1 in component IK1 (millisecond).
 * STATES[44] is xk1 in component IK1 (dimensionless).
 * ALGEBRAIC[93] is rk1 in component IK1 (millisecond).
 * CONSTANTS[59] is kna1 in component INaCa_i (per_millisecond).
 * CONSTANTS[60] is kna2 in component INaCa_i (per_millisecond).
 * CONSTANTS[61] is kna3 in component INaCa_i (per_millisecond).
 * CONSTANTS[62] is kasymm in component INaCa_i (dimensionless).
 * CONSTANTS[63] is wna in component INaCa_i (dimensionless).
 * CONSTANTS[64] is wca in component INaCa_i (dimensionless).
 * CONSTANTS[65] is wnaca in component INaCa_i (dimensionless).
 * CONSTANTS[66] is kcaon in component INaCa_i (per_millisecond).
 * CONSTANTS[67] is kcaoff in component INaCa_i (per_millisecond).
 * CONSTANTS[68] is qna in component INaCa_i (dimensionless).
 * CONSTANTS[69] is qca in component INaCa_i (dimensionless).
 * ALGEBRAIC[96] is hna in component INaCa_i (dimensionless).
 * ALGEBRAIC[95] is hca in component INaCa_i (dimensionless).
 * CONSTANTS[70] is KmCaAct in component INaCa_i (millimolar).
 * CONSTANTS[71] is Gncx in component INaCa_i (milliS_per_microF).
 * ALGEBRAIC[97] is h1_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[98] is h2_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[99] is h3_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[100] is h4_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[101] is h5_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[102] is h6_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[103] is h7_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[104] is h8_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[105] is h9_i in component INaCa_i (dimensionless).
 * CONSTANTS[131] is h10_i in component INaCa_i (dimensionless).
 * CONSTANTS[132] is h11_i in component INaCa_i (dimensionless).
 * CONSTANTS[133] is h12_i in component INaCa_i (dimensionless).
 * CONSTANTS[134] is k1_i in component INaCa_i (dimensionless).
 * CONSTANTS[135] is k2_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[106] is k3p_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[107] is k3pp_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[108] is k3_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[111] is k4_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[109] is k4p_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[110] is k4pp_i in component INaCa_i (dimensionless).
 * CONSTANTS[136] is k5_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[112] is k6_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[113] is k7_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[114] is k8_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[115] is x1_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[116] is x2_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[117] is x3_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[118] is x4_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[119] is E1_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[120] is E2_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[121] is E3_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[122] is E4_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[123] is allo_i in component INaCa_i (dimensionless).
 * ALGEBRAIC[124] is JncxNa_i in component INaCa_i (millimolar_per_millisecond).
 * ALGEBRAIC[125] is JncxCa_i in component INaCa_i (millimolar_per_millisecond).
 * ALGEBRAIC[127] is h1_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[128] is h2_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[129] is h3_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[130] is h4_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[131] is h5_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[132] is h6_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[133] is h7_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[134] is h8_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[135] is h9_ss in component INaCa_i (dimensionless).
 * CONSTANTS[137] is h10_ss in component INaCa_i (dimensionless).
 * CONSTANTS[138] is h11_ss in component INaCa_i (dimensionless).
 * CONSTANTS[139] is h12_ss in component INaCa_i (dimensionless).
 * CONSTANTS[140] is k1_ss in component INaCa_i (dimensionless).
 * CONSTANTS[141] is k2_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[136] is k3p_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[137] is k3pp_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[138] is k3_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[141] is k4_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[139] is k4p_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[140] is k4pp_ss in component INaCa_i (dimensionless).
 * CONSTANTS[142] is k5_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[142] is k6_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[143] is k7_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[144] is k8_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[145] is x1_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[146] is x2_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[147] is x3_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[148] is x4_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[149] is E1_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[150] is E2_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[151] is E3_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[152] is E4_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[153] is allo_ss in component INaCa_i (dimensionless).
 * ALGEBRAIC[154] is JncxNa_ss in component INaCa_i (millimolar_per_millisecond).
 * ALGEBRAIC[155] is JncxCa_ss in component INaCa_i (millimolar_per_millisecond).
 * CONSTANTS[72] is k1p in component INaK (per_millisecond).
 * CONSTANTS[73] is k1m in component INaK (per_millisecond).
 * CONSTANTS[74] is k2p in component INaK (per_millisecond).
 * CONSTANTS[75] is k2m in component INaK (per_millisecond).
 * CONSTANTS[76] is k3p in component INaK (per_millisecond).
 * CONSTANTS[77] is k3m in component INaK (per_millisecond).
 * CONSTANTS[78] is k4p in component INaK (per_millisecond).
 * CONSTANTS[79] is k4m in component INaK (per_millisecond).
 * CONSTANTS[80] is Knai0 in component INaK (millimolar).
 * CONSTANTS[81] is Knao0 in component INaK (millimolar).
 * CONSTANTS[82] is delta in component INaK (millivolt).
 * CONSTANTS[83] is Kki in component INaK (per_millisecond).
 * CONSTANTS[84] is Kko in component INaK (per_millisecond).
 * CONSTANTS[85] is MgADP in component INaK (millimolar).
 * CONSTANTS[86] is MgATP in component INaK (millimolar).
 * CONSTANTS[87] is Kmgatp in component INaK (millimolar).
 * CONSTANTS[88] is H in component INaK (millimolar).
 * CONSTANTS[89] is eP in component INaK (dimensionless).
 * CONSTANTS[90] is Khp in component INaK (millimolar).
 * CONSTANTS[91] is Knap in component INaK (millimolar).
 * CONSTANTS[92] is Kxkur in component INaK (millimolar).
 * CONSTANTS[93] is Pnak in component INaK (milliS_per_microF).
 * ALGEBRAIC[157] is Knai in component INaK (millimolar).
 * ALGEBRAIC[158] is Knao in component INaK (millimolar).
 * ALGEBRAIC[159] is P in component INaK (dimensionless).
 * ALGEBRAIC[160] is a1 in component INaK (dimensionless).
 * CONSTANTS[143] is b1 in component INaK (dimensionless).
 * CONSTANTS[144] is a2 in component INaK (dimensionless).
 * ALGEBRAIC[161] is b2 in component INaK (dimensionless).
 * ALGEBRAIC[162] is a3 in component INaK (dimensionless).
 * ALGEBRAIC[163] is b3 in component INaK (dimensionless).
 * CONSTANTS[145] is a4 in component INaK (dimensionless).
 * ALGEBRAIC[164] is b4 in component INaK (dimensionless).
 * ALGEBRAIC[165] is x1 in component INaK (dimensionless).
 * ALGEBRAIC[166] is x2 in component INaK (dimensionless).
 * ALGEBRAIC[167] is x3 in component INaK (dimensionless).
 * ALGEBRAIC[168] is x4 in component INaK (dimensionless).
 * ALGEBRAIC[169] is E1 in component INaK (dimensionless).
 * ALGEBRAIC[170] is E2 in component INaK (dimensionless).
 * ALGEBRAIC[171] is E3 in component INaK (dimensionless).
 * ALGEBRAIC[172] is E4 in component INaK (dimensionless).
 * ALGEBRAIC[173] is JnakNa in component INaK (millimolar_per_millisecond).
 * ALGEBRAIC[174] is JnakK in component INaK (millimolar_per_millisecond).
 * CONSTANTS[94] is PNab in component INab (milliS_per_microF).
 * CONSTANTS[95] is PCab in component ICab (milliS_per_microF).
 * CONSTANTS[96] is GpCa in component IpCa (milliS_per_microF).
 * CONSTANTS[97] is KmCap in component IpCa (millimolar).
 * CONSTANTS[98] is sstau in component diff (millisecond).
 * CONSTANTS[99] is gaptau in component diff (millisecond).
 * ALGEBRAIC[195] is REL in component ryr (millimolar_per_millisecond).
 * ALGEBRAIC[196] is irelss in component ryr (millimolar_per_millisecond).
 * ALGEBRAIC[185] is ireltau in component ryr (dimensionless).
 * ALGEBRAIC[197] is REL2 in component ryr (millimolar_per_millisecond).
 * ALGEBRAIC[198] is irelss2 in component ryr (millimolar_per_millisecond).
 * ALGEBRAIC[186] is ireltau2 in component ryr (dimensionless).
 * CONSTANTS[100] is dqupcamkbar in component SERCA (dimensionless).
 * CONSTANTS[101] is dkmplbbar in component SERCA (dimensionless).
 * CONSTANTS[102] is kmup in component SERCA (dimensionless).
 * CONSTANTS[103] is nsrbar in component SERCA (dimensionless).
 * ALGEBRAIC[187] is dkmplb in component SERCA (dimensionless).
 * ALGEBRAIC[188] is dqupcamk in component SERCA (dimensionless).
 * CONSTANTS[104] is IP3 in component IP3 (dimensionless).
 * CONSTANTS[105] is k1 in component IP3 (dimensionless).
 * CONSTANTS[106] is k1a in component IP3 (dimensionless).
 * CONSTANTS[107] is k0 in component IP3 (dimensionless).
 * CONSTANTS[108] is k0a in component IP3 (dimensionless).
 * CONSTANTS[109] is k2 in component IP3 (dimensionless).
 * CONSTANTS[110] is k2a in component IP3 (dimensionless).
 * CONSTANTS[111] is tauip3 in component IP3 (millisecond).
 * ALGEBRAIC[191] is POip3 in component IP3 (dimensionless).
 * STATES[45] is u in component IP3 (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 nasl in component intracellular_ions (millimolar).
 * RATES[5] is d/dt nass in component intracellular_ions (millimolar).
 * RATES[6] is d/dt ki in component intracellular_ions (millimolar).
 * RATES[8] is d/dt ksl in component intracellular_ions (millimolar).
 * RATES[7] 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[10] is d/dt casl in component intracellular_ions (millimolar).
 * RATES[11] is d/dt cansr in component intracellular_ions (millimolar).
 * RATES[12] is d/dt cajsr in component intracellular_ions (millimolar).
 * RATES[13] is d/dt cacsr in component intracellular_ions (millimolar).
 * RATES[16] is d/dt m in component INa (dimensionless).
 * RATES[17] is d/dt hf in component INa (dimensionless).
 * RATES[18] is d/dt hs in component INa (dimensionless).
 * RATES[19] is d/dt j in component INa (dimensionless).
 * RATES[20] is d/dt hsp in component INa (dimensionless).
 * RATES[21] is d/dt jp in component INa (dimensionless).
 * RATES[22] is d/dt mL in component INaL (dimensionless).
 * RATES[23] is d/dt hL in component INaL (dimensionless).
 * RATES[24] is d/dt hLp in component INaL (dimensionless).
 * RATES[25] is d/dt a in component Ito (dimensionless).
 * RATES[26] is d/dt i1 in component Ito (dimensionless).
 * RATES[27] is d/dt i2 in component Ito (dimensionless).
 * RATES[28] is d/dt d in component ICaL (dimensionless).
 * RATES[29] is d/dt ff in component ICaL (dimensionless).
 * RATES[30] is d/dt fs in component ICaL (dimensionless).
 * RATES[31] is d/dt fcaf in component ICaL (dimensionless).
 * RATES[32] is d/dt fcas in component ICaL (dimensionless).
 * RATES[33] is d/dt jca in component ICaL (dimensionless).
 * RATES[34] is d/dt ffp in component ICaL (dimensionless).
 * RATES[35] is d/dt fcafp in component ICaL (dimensionless).
 * RATES[36] is d/dt nca in component ICaL (dimensionless).
 * RATES[37] is d/dt b in component ICaT (dimensionless).
 * RATES[38] is d/dt g in component ICaT (dimensionless).
 * RATES[39] is d/dt xrf in component IKr (dimensionless).
 * RATES[40] is d/dt xrs in component IKr (dimensionless).
 * RATES[41] is d/dt xs1 in component IKs (dimensionless).
 * RATES[42] is d/dt xs2 in component IKs (dimensionless).
 * RATES[43] is d/dt y in component If (dimensionless).
 * RATES[44] is d/dt xk1 in component IK1 (dimensionless).
 * RATES[14] is d/dt Jrel1 in component ryr (millimolar_per_millisecond).
 * RATES[15] is d/dt Jrel2 in component ryr (millimolar_per_millisecond).
 * RATES[45] is d/dt u in component IP3 (millimolar_per_millisecond).
 * There are a total of 3 condition variables.
 */
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
CONSTANTS[0] = 140;
CONSTANTS[1] = 1.8;
CONSTANTS[2] = 5.4;
CONSTANTS[3] = 8314;
CONSTANTS[4] = 310;
CONSTANTS[5] = 96485;
CONSTANTS[6] = 1;
CONSTANTS[7] = 2;
CONSTANTS[8] = 1;
CONSTANTS[9] = 0.0164;
CONSTANTS[10] = 0.00175;
CONSTANTS[11] = 3.14159265;
STATES[0] = -86.6814002878592;
CONSTANTS[12] = -40;
CONSTANTS[13] = 1;
CONSTANTS[14] = 0.15;
CONSTANTS[15] = 0.05;
CONSTANTS[16] = 0.00068;
CONSTANTS[17] = 0.05;
CONSTANTS[18] = 0.0015;
STATES[1] = 0.00505983330678751;
STATES[2] = 0.000101777993438818;
CONSTANTS[19] = 0.019975;
CONSTANTS[20] = 0.00087;
CONSTANTS[21] = 0.4777;
CONSTANTS[22] = 0.0087;
CONSTANTS[23] = 2.88;
CONSTANTS[24] = 0.8;
CONSTANTS[25] = 1.2;
CONSTANTS[26] = 0.1125;
CONSTANTS[27] = 0.00238;
CONSTANTS[28] = 0.0125;
CONSTANTS[29] = 0.0315;
CONSTANTS[30] = 0.0005;
CONSTANTS[31] = 0.0035;
STATES[3] = 8.23183964616932;
STATES[4] = 8.23153516580562;
STATES[5] = 8.23154325237268;
STATES[6] = 143.767359809132;
STATES[7] = 143.767768218104;
STATES[8] = 143.767769906216;
STATES[9] = 4.36004404734282e-5;
STATES[10] = 0.000102004317781147;
STATES[11] = 1.26350902016858;
STATES[12] = 1.24811940209535;
STATES[13] = 1.26516959198518;
STATES[14] = 0.000108240945806962;
STATES[15] = 1.25045800437317e-69;
CONSTANTS[32] = 1;
CONSTANTS[33] = 0.01833;
CONSTANTS[34] = 48.4264;
CONSTANTS[35] = 7.5653;
CONSTANTS[36] = 11.64;
CONSTANTS[37] = 34.77;
CONSTANTS[38] = 6.765;
CONSTANTS[39] = 8.552;
CONSTANTS[40] = 77.42;
CONSTANTS[41] = 5.955;
STATES[16] = 0.00632661703915808;
CONSTANTS[42] = 78.5;
CONSTANTS[43] = 6.22;
CONSTANTS[44] = 0.99;
STATES[17] = 0.788611739889677;
STATES[18] = 0.788545979951331;
CONSTANTS[45] = 39.4572;
STATES[19] = 0.790474358603666;
STATES[20] = 0.579693514309867;
STATES[21] = 0.790947058236417;
STATES[22] = 0.000241925773627233;
CONSTANTS[46] = 200;
STATES[23] = 0.463574582508218;
STATES[24] = 0.240216198686475;
CONSTANTS[47] = 0.0189;
STATES[25] = 0.000272851144435704;
STATES[26] = 0.649604795721571;
STATES[27] = 0.989965695822495;
CONSTANTS[48] = 0.192;
CONSTANTS[49] = 0.0301;
CONSTANTS[50] = 0.002;
CONSTANTS[51] = 1000;
STATES[28] = 6.97735089296892e-9;
STATES[29] = 0.999999968230738;
STATES[30] = 0.926692153319136;
STATES[31] = 0.99999996819573;
STATES[32] = 0.999999905741936;
STATES[33] = 0.999978907334662;
STATES[34] = 0.999999968365903;
STATES[35] = 0.999999968278239;
STATES[36] = 0.00547252500964926;
CONSTANTS[52] = 7.7677e-5;
CONSTANTS[53] = 0.0754;
STATES[37] = 0.000304250912559619;
STATES[38] = 0.994214357917907;
CONSTANTS[54] = 0.0342;
STATES[39] = 0.000331691184084272;
STATES[40] = 0.568716473334161;
CONSTANTS[55] = 0.0029;
STATES[41] = 0.191165248085394;
STATES[42] = 0.000222677365291219;
CONSTANTS[56] = 0.0116;
CONSTANTS[57] = 0.0232;
STATES[43] = 0.233119011214908;
CONSTANTS[58] = 0.0455;
STATES[44] = 0.997084813729909;
CONSTANTS[59] = 15;
CONSTANTS[60] = 5;
CONSTANTS[61] = 88.12;
CONSTANTS[62] = 12.5;
CONSTANTS[63] = 60000;
CONSTANTS[64] = 60000;
CONSTANTS[65] = 5000;
CONSTANTS[66] = 1500000;
CONSTANTS[67] = 5000;
CONSTANTS[68] = 0.5224;
CONSTANTS[69] = 0.167;
CONSTANTS[70] = 0.00015;
CONSTANTS[71] = 0.00095709;
CONSTANTS[72] = 949.5;
CONSTANTS[73] = 182.4;
CONSTANTS[74] = 687.2;
CONSTANTS[75] = 39.4;
CONSTANTS[76] = 1899;
CONSTANTS[77] = 79300;
CONSTANTS[78] = 639;
CONSTANTS[79] = 40;
CONSTANTS[80] = 9.073;
CONSTANTS[81] = 27.78;
CONSTANTS[82] = -0.155;
CONSTANTS[83] = 0.5;
CONSTANTS[84] = 0.3582;
CONSTANTS[85] = 0.05;
CONSTANTS[86] = 9.8;
CONSTANTS[87] = 1.698e-7;
CONSTANTS[88] = 1e-7;
CONSTANTS[89] = 4.2;
CONSTANTS[90] = 1.698e-7;
CONSTANTS[91] = 224;
CONSTANTS[92] = 292;
CONSTANTS[93] = 32.4872;
CONSTANTS[94] = 9.375e-10;
CONSTANTS[95] = 2.5e-8;
CONSTANTS[96] = 0.0005;
CONSTANTS[97] = 0.0005;
CONSTANTS[98] = 0.2;
CONSTANTS[99] = 12;
CONSTANTS[100] = 0.75;
CONSTANTS[101] = 0.00017;
CONSTANTS[102] = 0.00028;
CONSTANTS[103] = 15;
CONSTANTS[104] = 0.0001;
CONSTANTS[105] = 150000;
CONSTANTS[106] = 16.5;
CONSTANTS[107] = 96000;
CONSTANTS[108] = 9.6;
CONSTANTS[109] = 1800;
CONSTANTS[110] = 0.21;
CONSTANTS[111] = 3.7;
STATES[45] = 0.466236137183558;
CONSTANTS[112] = 1.00000 - CONSTANTS[44];
CONSTANTS[113] =  3.00000*CONSTANTS[46];
CONSTANTS[114] = 0.600000;
CONSTANTS[115] =  1.10000*CONSTANTS[52];
CONSTANTS[116] =  0.00125000*CONSTANTS[52];
CONSTANTS[117] =  0.000357400*CONSTANTS[52];
CONSTANTS[118] = 75.0000;
CONSTANTS[119] =  1000.00*3.14159*CONSTANTS[10]*CONSTANTS[10]*CONSTANTS[9];
CONSTANTS[120] = 1.00000 - CONSTANTS[114];
CONSTANTS[121] =  0.00125000*CONSTANTS[115];
CONSTANTS[122] =  0.000357400*CONSTANTS[115];
CONSTANTS[123] =  2.00000*CONSTANTS[11]*CONSTANTS[10]*CONSTANTS[10]+ 2.00000*CONSTANTS[11]*CONSTANTS[10]*CONSTANTS[9];
CONSTANTS[124] =  2.00000*CONSTANTS[123];
CONSTANTS[125] =  0.600000*CONSTANTS[119];
CONSTANTS[126] =  0.0400000*CONSTANTS[119];
CONSTANTS[127] =  0.00200000*CONSTANTS[119];
CONSTANTS[128] =  0.00800000*CONSTANTS[119];
CONSTANTS[129] =  0.0200000*CONSTANTS[119];
CONSTANTS[130] =  0.150000*CONSTANTS[119];
CONSTANTS[131] = CONSTANTS[62]+1.00000+ (CONSTANTS[0]/CONSTANTS[59])*(1.00000+CONSTANTS[0]/CONSTANTS[60]);
CONSTANTS[132] = ( CONSTANTS[0]*CONSTANTS[0])/( CONSTANTS[131]*CONSTANTS[59]*CONSTANTS[60]);
CONSTANTS[133] = 1.00000/CONSTANTS[131];
CONSTANTS[134] =  CONSTANTS[133]*CONSTANTS[1]*CONSTANTS[66];
CONSTANTS[135] = CONSTANTS[67];
CONSTANTS[136] = CONSTANTS[67];
CONSTANTS[137] = CONSTANTS[62]+1.00000+ (CONSTANTS[0]/CONSTANTS[59])*(1.00000+CONSTANTS[0]/CONSTANTS[60]);
CONSTANTS[138] = ( CONSTANTS[0]*CONSTANTS[0])/( CONSTANTS[137]*CONSTANTS[59]*CONSTANTS[60]);
CONSTANTS[139] = 1.00000/CONSTANTS[137];
CONSTANTS[140] =  CONSTANTS[139]*CONSTANTS[1]*CONSTANTS[66];
CONSTANTS[141] = CONSTANTS[67];
CONSTANTS[142] = CONSTANTS[67];
CONSTANTS[143] =  CONSTANTS[73]*CONSTANTS[85];
CONSTANTS[144] = CONSTANTS[74];
CONSTANTS[145] = (( CONSTANTS[78]*CONSTANTS[86])/CONSTANTS[87])/(1.00000+CONSTANTS[86]/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[8] = 0.1001;
RATES[7] = 0.1001;
RATES[9] = 0.1001;
RATES[2] = 0.1001;
RATES[10] = 0.1001;
RATES[11] = 0.1001;
RATES[12] = 0.1001;
RATES[13] = 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;
RATES[41] = 0.1001;
RATES[42] = 0.1001;
RATES[43] = 0.1001;
RATES[44] = 0.1001;
RATES[14] = 0.1001;
RATES[15] = 0.1001;
RATES[45] = 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[27]+ALGEBRAIC[33]+ALGEBRAIC[39]+ALGEBRAIC[41]+ALGEBRAIC[64]+ALGEBRAIC[71]+ALGEBRAIC[65]+ALGEBRAIC[66]+ALGEBRAIC[79]+ALGEBRAIC[85]+ALGEBRAIC[90]+ALGEBRAIC[94]+ALGEBRAIC[126]+ALGEBRAIC[156]+ALGEBRAIC[175]+ALGEBRAIC[176]+ALGEBRAIC[178]+ALGEBRAIC[177]+ALGEBRAIC[0]);
resid[1] = RATES[1] -  CONSTANTS[15]*ALGEBRAIC[3]*(ALGEBRAIC[3]+STATES[1]) -  CONSTANTS[16]*STATES[1];
resid[2] = RATES[3] - ( ALGEBRAIC[180]*CONSTANTS[130])/CONSTANTS[125];
resid[3] = RATES[4] - ( - (ALGEBRAIC[27]+ALGEBRAIC[33]+ 3.00000*ALGEBRAIC[126]+ 3.00000*ALGEBRAIC[175]+ALGEBRAIC[88]+ALGEBRAIC[176])*CONSTANTS[124]*CONSTANTS[32])/( CONSTANTS[5]*CONSTANTS[130])+( ALGEBRAIC[179]*CONSTANTS[129])/CONSTANTS[130]+- ALGEBRAIC[180];
resid[4] = RATES[5] - ( - (ALGEBRAIC[65]+ 3.00000*ALGEBRAIC[156])*CONSTANTS[32]*CONSTANTS[124])/( CONSTANTS[5]*CONSTANTS[129]) - ALGEBRAIC[179];
resid[5] = RATES[6] - ( ALGEBRAIC[182]*CONSTANTS[130])/CONSTANTS[125];
resid[6] = RATES[8] - ( - ((ALGEBRAIC[39]+ALGEBRAIC[41]+ALGEBRAIC[79]+ALGEBRAIC[85]+ALGEBRAIC[89]+ALGEBRAIC[94]+ALGEBRAIC[0]) -  2.00000*ALGEBRAIC[175])*CONSTANTS[32]*CONSTANTS[124])/( CONSTANTS[5]*CONSTANTS[130])+( ALGEBRAIC[181]*CONSTANTS[129])/CONSTANTS[130]+- ALGEBRAIC[182];
resid[7] = RATES[7] - ( - ALGEBRAIC[66]*CONSTANTS[32]*CONSTANTS[124])/( CONSTANTS[5]*CONSTANTS[129]) - ALGEBRAIC[181];
resid[8] = RATES[9] -  ALGEBRAIC[5]*((( ALGEBRAIC[184]*CONSTANTS[130])/CONSTANTS[125]+( STATES[15]*CONSTANTS[128])/CONSTANTS[125]) - ( ALGEBRAIC[190]*CONSTANTS[126])/CONSTANTS[125]);
resid[9] = RATES[2] -  ALGEBRAIC[6]*((( - (ALGEBRAIC[64] -  2.00000*ALGEBRAIC[156])*CONSTANTS[32]*CONSTANTS[124])/( 2.00000*CONSTANTS[5]*CONSTANTS[129])+( (STATES[14]+ALGEBRAIC[192])*CONSTANTS[127])/CONSTANTS[129]) - ALGEBRAIC[183]);
resid[10] = RATES[10] -  ALGEBRAIC[7]*((( - ((ALGEBRAIC[178]+ALGEBRAIC[177]+ALGEBRAIC[71]) -  2.00000*ALGEBRAIC[126])*CONSTANTS[32]*CONSTANTS[124])/( 2.00000*CONSTANTS[5]*CONSTANTS[130]) - ( ALGEBRAIC[189]*CONSTANTS[126])/CONSTANTS[130])+- ALGEBRAIC[184]+( ALGEBRAIC[183]*CONSTANTS[129])/CONSTANTS[130]);
resid[11] = RATES[11] - (ALGEBRAIC[189]+ALGEBRAIC[190]) - (( ALGEBRAIC[193]*CONSTANTS[127])/CONSTANTS[126]+( ALGEBRAIC[194]*CONSTANTS[128])/CONSTANTS[126]);
resid[12] = RATES[12] -  ALGEBRAIC[8]*(ALGEBRAIC[193] - (STATES[14]+ALGEBRAIC[192]));
resid[13] = RATES[13] -  ALGEBRAIC[9]*(ALGEBRAIC[194] - STATES[15]);
resid[14] = RATES[16] - (ALGEBRAIC[14] - STATES[16])/ALGEBRAIC[15];
resid[15] = RATES[17] - (ALGEBRAIC[16] - STATES[17])/ALGEBRAIC[17];
resid[16] = RATES[18] - (ALGEBRAIC[16] - STATES[18])/ALGEBRAIC[18];
resid[17] = RATES[19] - (ALGEBRAIC[20] - STATES[19])/ALGEBRAIC[21];
resid[18] = RATES[20] - (ALGEBRAIC[22] - STATES[20])/ALGEBRAIC[23];
resid[19] = RATES[21] - (ALGEBRAIC[20] - STATES[21])/ALGEBRAIC[25];
resid[20] = RATES[22] - (ALGEBRAIC[28] - STATES[22])/ALGEBRAIC[29];
resid[21] = RATES[23] - (ALGEBRAIC[30] - STATES[23])/CONSTANTS[46];
resid[22] = RATES[24] - (ALGEBRAIC[31] - STATES[24])/CONSTANTS[113];
resid[23] = RATES[25] - (ALGEBRAIC[34] - STATES[25])/ALGEBRAIC[36];
resid[24] = RATES[26] - (ALGEBRAIC[35] - STATES[26])/ALGEBRAIC[37];
resid[25] = RATES[27] - (ALGEBRAIC[35] - STATES[27])/ALGEBRAIC[38];
resid[26] = RATES[28] - (ALGEBRAIC[42] - STATES[28])/ALGEBRAIC[43];
resid[27] = RATES[29] - (ALGEBRAIC[44] - STATES[29])/ALGEBRAIC[45];
resid[28] = RATES[30] - (ALGEBRAIC[44] - STATES[30])/ALGEBRAIC[46];
resid[29] = RATES[31] - (ALGEBRAIC[48] - STATES[31])/ALGEBRAIC[49];
resid[30] = RATES[32] - (ALGEBRAIC[48] - STATES[32])/ALGEBRAIC[50];
resid[31] = RATES[33] - (ALGEBRAIC[48] - STATES[33])/CONSTANTS[118];
resid[32] = RATES[34] - (ALGEBRAIC[44] - STATES[34])/ALGEBRAIC[54];
resid[33] = RATES[35] - (ALGEBRAIC[48] - STATES[35])/ALGEBRAIC[56];
resid[34] = RATES[36] -  ALGEBRAIC[59]*CONSTANTS[51] -  STATES[36]*ALGEBRAIC[58];
resid[35] = RATES[37] - (ALGEBRAIC[67] - STATES[37])/ALGEBRAIC[69];
resid[36] = RATES[38] - (ALGEBRAIC[68] - STATES[38])/ALGEBRAIC[70];
resid[37] = RATES[39] - (ALGEBRAIC[72] - STATES[39])/ALGEBRAIC[73];
resid[38] = RATES[40] - (ALGEBRAIC[72] - STATES[40])/ALGEBRAIC[74];
resid[39] = RATES[41] - (ALGEBRAIC[80] - STATES[41])/ALGEBRAIC[81];
resid[40] = RATES[42] - (ALGEBRAIC[82] - STATES[42])/ALGEBRAIC[83];
resid[41] = RATES[43] - (ALGEBRAIC[86] - STATES[43])/ALGEBRAIC[87];
resid[42] = RATES[44] - (ALGEBRAIC[91] - STATES[44])/ALGEBRAIC[92];
resid[43] = RATES[14] - (ALGEBRAIC[196] - STATES[14])/ALGEBRAIC[185];
resid[44] = RATES[15] - (ALGEBRAIC[198] - STATES[15])/ALGEBRAIC[186];
resid[45] = RATES[45] -  STATES[2]*CONSTANTS[109]*(1.00000 - STATES[45]) -  CONSTANTS[110]*STATES[45];
}
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 ? CONSTANTS[12] : 0.00000);
ALGEBRAIC[3] = ( CONSTANTS[17]*(1.00000 - STATES[1]))/(1.00000+CONSTANTS[18]/STATES[2]);
ALGEBRAIC[5] = 1.00000/(1.00000+( CONSTANTS[26]*CONSTANTS[27])/pow(CONSTANTS[27]+STATES[9], 2.00000)+( CONSTANTS[29]*CONSTANTS[30])/pow(CONSTANTS[30]+STATES[9], 2.00000));
ALGEBRAIC[6] = 1.00000/(1.00000+( CONSTANTS[19]*CONSTANTS[20])/pow(CONSTANTS[20]+STATES[2], 2.00000)+( CONSTANTS[21]*CONSTANTS[22])/pow(CONSTANTS[22]+STATES[2], 2.00000));
ALGEBRAIC[7] = 1.00000/(1.00000+( CONSTANTS[28]*CONSTANTS[27])/pow(CONSTANTS[27]+STATES[10], 2.00000)+( CONSTANTS[31]*CONSTANTS[30])/pow(CONSTANTS[30]+STATES[10], 2.00000));
ALGEBRAIC[8] = 1.00000/(1.00000+( CONSTANTS[25]*CONSTANTS[24])/pow(CONSTANTS[24]+STATES[12], 2.00000));
ALGEBRAIC[9] = 1.00000/(1.00000+( CONSTANTS[23]*CONSTANTS[24])/pow(CONSTANTS[24]+STATES[13], 2.00000));
ALGEBRAIC[14] = 1.00000/(1.00000+exp(- (STATES[0]+CONSTANTS[34])/CONSTANTS[35]));
ALGEBRAIC[15] = 1.00000/( CONSTANTS[38]*exp((STATES[0]+CONSTANTS[36])/CONSTANTS[37])+ CONSTANTS[39]*exp(- (STATES[0]+CONSTANTS[40])/CONSTANTS[41]));
ALGEBRAIC[16] = 1.00000/(1.00000+exp((STATES[0]+CONSTANTS[42])/CONSTANTS[43]));
ALGEBRAIC[17] = 1.00000/( 3.68600e-06*exp(- (STATES[0]+3.88750)/7.85790)+ 16.0000*exp((STATES[0] - 0.496300)/9.18430));
ALGEBRAIC[18] = 1.00000/( 0.00979400*exp(- (STATES[0]+17.9500)/28.0500)+ 0.334300*exp((STATES[0]+5.73000)/56.6600));
ALGEBRAIC[20] = ALGEBRAIC[16];
ALGEBRAIC[21] = 4.85900+1.00000/( 0.862800*exp(- (STATES[0]+116.726)/7.60050)+ 1.10960*exp((STATES[0]+6.27190)/9.03580));
ALGEBRAIC[22] = 1.00000/(1.00000+exp((STATES[0]+84.7000)/6.22000));
ALGEBRAIC[23] =  3.00000*ALGEBRAIC[18];
ALGEBRAIC[25] =  1.46000*ALGEBRAIC[21];
ALGEBRAIC[10] =  (( CONSTANTS[3]*CONSTANTS[4])/CONSTANTS[5])*log(CONSTANTS[0]/STATES[4]);
ALGEBRAIC[19] =  CONSTANTS[44]*STATES[17]+ CONSTANTS[112]*STATES[18];
ALGEBRAIC[24] =  CONSTANTS[44]*STATES[17]+ CONSTANTS[112]*STATES[20];
ALGEBRAIC[4] = ALGEBRAIC[3]+STATES[1];
ALGEBRAIC[26] = 1.00000/(1.00000+CONSTANTS[14]/ALGEBRAIC[4]);
ALGEBRAIC[27] =  CONSTANTS[45]*(STATES[0] - ALGEBRAIC[10])*pow(STATES[16], 3.00000)*( (1.00000 - ALGEBRAIC[26])*ALGEBRAIC[19]*STATES[19]+ ALGEBRAIC[26]*ALGEBRAIC[24]*STATES[21]);
ALGEBRAIC[28] = 1.00000/(1.00000+exp(- (STATES[0]+42.8500)/5.26400));
ALGEBRAIC[29] = ALGEBRAIC[15];
ALGEBRAIC[30] = 1.00000/(1.00000+exp((STATES[0]+87.6100)/7.48800));
ALGEBRAIC[31] = 1.00000/(1.00000+exp((STATES[0]+93.8100)/7.48800));
ALGEBRAIC[32] = 1.00000/(1.00000+CONSTANTS[14]/ALGEBRAIC[4]);
ALGEBRAIC[33] =  CONSTANTS[47]*(STATES[0] - ALGEBRAIC[10])*STATES[22]*( (1.00000 - ALGEBRAIC[32])*STATES[23]+ ALGEBRAIC[32]*STATES[24]);
ALGEBRAIC[34] = 1.00000/(1.00000+exp((20.0000 - STATES[0])/13.0000));
ALGEBRAIC[35] = 1.00000/(1.00000+exp((27.0000+STATES[0])/13.0000));
ALGEBRAIC[36] = 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[37] = 43.0000+1.00000/( 0.00141600*exp(- (STATES[0]+96.5200)/59.0500)+ 1.78000e-08*exp((STATES[0]+114.100)/8.07900));
ALGEBRAIC[38] = 6.16200+1.00000/( 0.393300*exp(- (STATES[0]+100.000)/100.000)+ 0.0800400*exp((STATES[0] - 8.00000)/8.59000));
ALGEBRAIC[11] =  (( CONSTANTS[3]*CONSTANTS[4])/CONSTANTS[5])*log(CONSTANTS[2]/STATES[8]);
ALGEBRAIC[39] =  CONSTANTS[48]*STATES[25]*STATES[26]*STATES[27]*(STATES[0] - ALGEBRAIC[11]);
ALGEBRAIC[40] = 1.00000/(1.00000+exp(- (STATES[0] - 12.0000)/16.0000));
ALGEBRAIC[41] =  CONSTANTS[49]*ALGEBRAIC[40]*(STATES[0] - ALGEBRAIC[11]);
ALGEBRAIC[42] = 1.00000/(1.00000+exp(- (STATES[0]+3.94000+3.30000)/4.23000));
ALGEBRAIC[43] = 0.600000+1.00000/(exp( - 0.0500000*(STATES[0]+6.00000))+exp( 0.0900000*(STATES[0]+14.0000)));
ALGEBRAIC[44] = 1.00000/(1.00000+exp((STATES[0]+19.5800+3.30000)/3.69600));
ALGEBRAIC[45] = 7.00000+1.00000/( 0.00450000*exp(- (STATES[0]+20.0000+15.1900)/10.0000)+ 0.00450000*exp((STATES[0]+20.0000+15.1900)/10.0000));
ALGEBRAIC[46] = 1000.00+1.00000/( 3.50000e-05*exp(- (STATES[0]+5.00000+15.1900)/4.00000)+ 3.50000e-05*exp((STATES[0]+5.00000+15.1900)/6.00000));
ALGEBRAIC[48] = ALGEBRAIC[44];
ALGEBRAIC[49] =  0.720000*(7.00000+1.00000/( 0.0400000*exp(- ((STATES[0]+15.1900) - 4.00000)/7.00000)+ 0.0400000*exp(((STATES[0]+15.1900) - 4.00000)/7.00000)));
ALGEBRAIC[50] =  0.490000*(100.000+1.00000/( 0.000120000*exp(- (STATES[0]+15.1900)/3.00000)+ 0.000120000*exp((STATES[0]+15.1900)/7.00000)));
ALGEBRAIC[54] =  2.50000*ALGEBRAIC[45];
ALGEBRAIC[56] =  2.50000*ALGEBRAIC[49];
ALGEBRAIC[58] =  STATES[33]*1.00000;
ALGEBRAIC[59] = 1.00000/(CONSTANTS[51]/ALGEBRAIC[58]+pow(1.00000+CONSTANTS[50]/STATES[2], 4.00000));
ALGEBRAIC[47] =  CONSTANTS[114]*STATES[29]+ CONSTANTS[120]*STATES[30];
ALGEBRAIC[51] = 0.300000+0.600000/(1.00000+exp((STATES[0] - 10.0000)/10.0000));
ALGEBRAIC[52] = 1.00000 - ALGEBRAIC[51];
ALGEBRAIC[53] =  ALGEBRAIC[51]*STATES[31]+ ALGEBRAIC[52]*STATES[32];
ALGEBRAIC[55] =  CONSTANTS[114]*STATES[34]+ CONSTANTS[120]*STATES[30];
ALGEBRAIC[57] =  ALGEBRAIC[51]*STATES[35]+ ALGEBRAIC[52]*STATES[32];
ALGEBRAIC[1] = ( STATES[0]*CONSTANTS[5]*CONSTANTS[5])/( CONSTANTS[3]*CONSTANTS[4]);
ALGEBRAIC[2] = ( STATES[0]*CONSTANTS[5])/( CONSTANTS[3]*CONSTANTS[4]);
ALGEBRAIC[60] = ( 4.00000*ALGEBRAIC[1]*( STATES[2]*exp( 2.00000*ALGEBRAIC[2]) -  0.341000*CONSTANTS[1]))/(exp( 2.00000*ALGEBRAIC[2]) - 1.00000);
ALGEBRAIC[63] = 1.00000/(1.00000+CONSTANTS[14]/ALGEBRAIC[4]);
ALGEBRAIC[64] =  (1.00000 - ALGEBRAIC[63])*CONSTANTS[52]*ALGEBRAIC[60]*STATES[28]*( ALGEBRAIC[47]*(1.00000 - STATES[36])+ STATES[33]*ALGEBRAIC[53]*STATES[36])+ ALGEBRAIC[63]*CONSTANTS[115]*ALGEBRAIC[60]*STATES[28]*( ALGEBRAIC[55]*(1.00000 - STATES[36])+ STATES[33]*ALGEBRAIC[57]*STATES[36]);
ALGEBRAIC[61] = ( 1.00000*ALGEBRAIC[1]*( 0.750000*STATES[5]*exp( 1.00000*ALGEBRAIC[2]) -  0.750000*CONSTANTS[0]))/(exp( 1.00000*ALGEBRAIC[2]) - 1.00000);
ALGEBRAIC[65] =  (1.00000 - ALGEBRAIC[63])*CONSTANTS[116]*ALGEBRAIC[61]*STATES[28]*( ALGEBRAIC[47]*(1.00000 - STATES[36])+ STATES[33]*ALGEBRAIC[53]*STATES[36])+ ALGEBRAIC[63]*CONSTANTS[121]*ALGEBRAIC[61]*STATES[28]*( ALGEBRAIC[55]*(1.00000 - STATES[36])+ STATES[33]*ALGEBRAIC[57]*STATES[36]);
ALGEBRAIC[62] = ( 1.00000*ALGEBRAIC[1]*( 0.750000*STATES[7]*exp( 1.00000*ALGEBRAIC[2]) -  0.750000*CONSTANTS[2]))/(exp( 1.00000*ALGEBRAIC[2]) - 1.00000);
ALGEBRAIC[66] =  (1.00000 - ALGEBRAIC[63])*CONSTANTS[117]*ALGEBRAIC[62]*STATES[28]*( ALGEBRAIC[47]*(1.00000 - STATES[36])+ STATES[33]*ALGEBRAIC[53]*STATES[36])+ ALGEBRAIC[63]*CONSTANTS[122]*ALGEBRAIC[62]*STATES[28]*( ALGEBRAIC[55]*(1.00000 - STATES[36])+ STATES[33]*ALGEBRAIC[57]*STATES[36]);
ALGEBRAIC[67] = 1.00000/(1.00000+exp(- (STATES[0]+30.0000)/7.00000));
ALGEBRAIC[68] = 1.00000/(1.00000+exp((STATES[0]+61.0000)/5.00000));
ALGEBRAIC[69] = 1.00000/( 1.06800*exp((STATES[0]+16.3000)/30.0000)+ 1.06800*exp(- (STATES[0]+16.3000)/30.0000));
ALGEBRAIC[70] = 1.00000/( 0.0150000*exp((STATES[0]+71.7000)/15.4000)+ 0.0150000*exp(- (STATES[0]+71.7000)/83.3000));
ALGEBRAIC[12] =  (( CONSTANTS[3]*CONSTANTS[4])/( 2.00000*CONSTANTS[5]))*log(CONSTANTS[1]/STATES[10]);
ALGEBRAIC[71] =  CONSTANTS[53]*STATES[37]*STATES[38]*(STATES[0] - ALGEBRAIC[12]);
ALGEBRAIC[72] = 1.00000/(1.00000+exp(- (STATES[0]+8.33700)/6.78900));
ALGEBRAIC[73] = 12.9800+1.00000/( 0.365200*exp(((STATES[0]+17.6000) - 31.6600)/3.86900)+ 4.12300e-05*exp(- ((STATES[0]+17.6000) - 47.7800)/20.3800));
ALGEBRAIC[74] = 1.86500+1.00000/( 0.0662900*exp(((STATES[0]+17.2000) - 34.7000)/7.35500)+ 1.12800e-05*exp(- ((STATES[0]+17.2000) - 29.7400)/25.9400));
ALGEBRAIC[75] = 1.00000/(1.00000+exp((STATES[0]+54.8100)/38.2100));
ALGEBRAIC[76] = 1.00000 - ALGEBRAIC[75];
ALGEBRAIC[77] =  ALGEBRAIC[75]*STATES[39]+ ALGEBRAIC[76]*STATES[40];
ALGEBRAIC[78] = ( (1.00000/(1.00000+exp((STATES[0]+55.0000)/( 0.320000*75.0000))))*1.00000)/(1.00000+exp((STATES[0] - 10.0000)/( 0.320000*30.0000)));
ALGEBRAIC[79] =  CONSTANTS[54]* pow((CONSTANTS[2]/5.40000), 1.0 / 2)*ALGEBRAIC[77]*ALGEBRAIC[78]*(STATES[0] - ALGEBRAIC[11]);
ALGEBRAIC[80] = 1.00000/(1.00000+exp(- (STATES[0]+11.6000)/8.93200));
ALGEBRAIC[81] = 817.300+1.00000/( 0.000232600*exp((STATES[0]+48.2800)/17.8000)+ 0.00129200*exp(- (STATES[0]+210.000)/230.000));
ALGEBRAIC[82] = ALGEBRAIC[80];
ALGEBRAIC[83] = 1.00000/( 0.0100000*exp((STATES[0] - 50.0000)/20.0000)+ 0.0193000*exp(- (STATES[0]+66.5400)/31.0000));
ALGEBRAIC[13] =  (( CONSTANTS[3]*CONSTANTS[4])/CONSTANTS[5])*log((CONSTANTS[2]+ CONSTANTS[33]*CONSTANTS[0])/(STATES[8]+ CONSTANTS[33]*STATES[4]));
ALGEBRAIC[84] = 1.00000+0.600000/(1.00000+pow(3.80000e-05/STATES[10], 1.40000));
ALGEBRAIC[85] =  CONSTANTS[55]*ALGEBRAIC[84]*STATES[41]*STATES[42]*(STATES[0] - ALGEBRAIC[13]);
ALGEBRAIC[86] = 1.00000/(1.00000+exp((STATES[0]+87.0000)/9.50000));
ALGEBRAIC[87] = 2000.00/(exp((STATES[0]+57.0000)/60.0000)+exp(- (STATES[0]+132.000)/10.0000));
ALGEBRAIC[88] =  CONSTANTS[56]*STATES[43]*STATES[43]*(STATES[0] - ALGEBRAIC[10]);
ALGEBRAIC[89] =  CONSTANTS[57]*STATES[43]*STATES[43]*(STATES[0] - ALGEBRAIC[11]);
ALGEBRAIC[90] = ALGEBRAIC[88]+ALGEBRAIC[89];
ALGEBRAIC[91] = 1.00000/(1.00000+exp(- (STATES[0]+ 2.55380*CONSTANTS[2]+144.590)/( 1.56920*CONSTANTS[2]+3.81150)));
ALGEBRAIC[92] = 122.200/(exp(- (STATES[0]+127.200)/20.3600)+exp((STATES[0]+236.800)/69.3300));
ALGEBRAIC[93] = 1.00000/(1.00000+exp(((STATES[0]+116.000) -  5.50000*CONSTANTS[2])/11.0000));
ALGEBRAIC[94] =  CONSTANTS[58]*2.32380* pow((CONSTANTS[2]/5.40000), 1.0 / 2)*ALGEBRAIC[93]*STATES[44]*(STATES[0] - ALGEBRAIC[11]);
ALGEBRAIC[123] = 1.00000/(1.00000+pow(CONSTANTS[70]/STATES[10], 2.00000));
ALGEBRAIC[96] = exp(( CONSTANTS[68]*STATES[0]*CONSTANTS[5])/( CONSTANTS[3]*CONSTANTS[4]));
ALGEBRAIC[103] = 1.00000+ (CONSTANTS[0]/CONSTANTS[61])*(1.00000+1.00000/ALGEBRAIC[96]);
ALGEBRAIC[104] = CONSTANTS[0]/( CONSTANTS[61]*ALGEBRAIC[96]*ALGEBRAIC[103]);
ALGEBRAIC[107] =  ALGEBRAIC[104]*CONSTANTS[65];
ALGEBRAIC[97] = 1.00000+ (STATES[4]/CONSTANTS[61])*(1.00000+ALGEBRAIC[96]);
ALGEBRAIC[98] = ( STATES[4]*ALGEBRAIC[96])/( CONSTANTS[61]*ALGEBRAIC[97]);
ALGEBRAIC[110] =  ALGEBRAIC[98]*CONSTANTS[65];
ALGEBRAIC[100] = 1.00000+ (STATES[4]/CONSTANTS[59])*(1.00000+STATES[4]/CONSTANTS[60]);
ALGEBRAIC[101] = ( STATES[4]*STATES[4])/( ALGEBRAIC[100]*CONSTANTS[59]*CONSTANTS[60]);
ALGEBRAIC[113] =  ALGEBRAIC[101]*ALGEBRAIC[98]*CONSTANTS[63];
ALGEBRAIC[114] =  ALGEBRAIC[104]*CONSTANTS[132]*CONSTANTS[63];
ALGEBRAIC[105] = 1.00000/ALGEBRAIC[103];
ALGEBRAIC[106] =  ALGEBRAIC[105]*CONSTANTS[64];
ALGEBRAIC[108] = ALGEBRAIC[106]+ALGEBRAIC[107];
ALGEBRAIC[95] = exp(( CONSTANTS[69]*STATES[0]*CONSTANTS[5])/( CONSTANTS[3]*CONSTANTS[4]));
ALGEBRAIC[99] = 1.00000/ALGEBRAIC[97];
ALGEBRAIC[109] = ( ALGEBRAIC[99]*CONSTANTS[64])/ALGEBRAIC[95];
ALGEBRAIC[111] = ALGEBRAIC[109]+ALGEBRAIC[110];
ALGEBRAIC[102] = 1.00000/ALGEBRAIC[100];
ALGEBRAIC[112] =  ALGEBRAIC[102]*STATES[10]*CONSTANTS[66];
ALGEBRAIC[115] =  CONSTANTS[135]*ALGEBRAIC[111]*(ALGEBRAIC[113]+ALGEBRAIC[112])+ CONSTANTS[136]*ALGEBRAIC[113]*(CONSTANTS[135]+ALGEBRAIC[108]);
ALGEBRAIC[116] =  CONSTANTS[134]*ALGEBRAIC[113]*(ALGEBRAIC[111]+CONSTANTS[136])+ ALGEBRAIC[111]*ALGEBRAIC[112]*(CONSTANTS[134]+ALGEBRAIC[114]);
ALGEBRAIC[117] =  CONSTANTS[134]*ALGEBRAIC[108]*(ALGEBRAIC[113]+ALGEBRAIC[112])+ ALGEBRAIC[114]*ALGEBRAIC[112]*(CONSTANTS[135]+ALGEBRAIC[108]);
ALGEBRAIC[118] =  CONSTANTS[135]*ALGEBRAIC[114]*(ALGEBRAIC[111]+CONSTANTS[136])+ ALGEBRAIC[108]*CONSTANTS[136]*(CONSTANTS[134]+ALGEBRAIC[114]);
ALGEBRAIC[119] = ALGEBRAIC[115]/(ALGEBRAIC[115]+ALGEBRAIC[116]+ALGEBRAIC[117]+ALGEBRAIC[118]);
ALGEBRAIC[120] = ALGEBRAIC[116]/(ALGEBRAIC[115]+ALGEBRAIC[116]+ALGEBRAIC[117]+ALGEBRAIC[118]);
ALGEBRAIC[121] = ALGEBRAIC[117]/(ALGEBRAIC[115]+ALGEBRAIC[116]+ALGEBRAIC[117]+ALGEBRAIC[118]);
ALGEBRAIC[122] = ALGEBRAIC[118]/(ALGEBRAIC[115]+ALGEBRAIC[116]+ALGEBRAIC[117]+ALGEBRAIC[118]);
ALGEBRAIC[124] = ( 3.00000*( ALGEBRAIC[122]*ALGEBRAIC[113] -  ALGEBRAIC[119]*ALGEBRAIC[114])+ ALGEBRAIC[121]*ALGEBRAIC[110]) -  ALGEBRAIC[120]*ALGEBRAIC[107];
ALGEBRAIC[125] =  ALGEBRAIC[120]*CONSTANTS[135] -  ALGEBRAIC[119]*CONSTANTS[134];
ALGEBRAIC[126] =  0.800000*CONSTANTS[71]*ALGEBRAIC[123]*( CONSTANTS[6]*ALGEBRAIC[124]+ CONSTANTS[7]*ALGEBRAIC[125]);
ALGEBRAIC[153] = 1.00000/(1.00000+pow(CONSTANTS[70]/STATES[2], 2.00000));
ALGEBRAIC[133] = 1.00000+ (CONSTANTS[0]/CONSTANTS[61])*(1.00000+1.00000/ALGEBRAIC[96]);
ALGEBRAIC[134] = CONSTANTS[0]/( CONSTANTS[61]*ALGEBRAIC[96]*ALGEBRAIC[133]);
ALGEBRAIC[137] =  ALGEBRAIC[134]*CONSTANTS[65];
ALGEBRAIC[127] = 1.00000+ (STATES[5]/CONSTANTS[61])*(1.00000+ALGEBRAIC[96]);
ALGEBRAIC[128] = ( STATES[5]*ALGEBRAIC[96])/( CONSTANTS[61]*ALGEBRAIC[127]);
ALGEBRAIC[140] =  ALGEBRAIC[128]*CONSTANTS[65];
ALGEBRAIC[130] = 1.00000+ (STATES[5]/CONSTANTS[59])*(1.00000+STATES[5]/CONSTANTS[60]);
ALGEBRAIC[131] = ( STATES[5]*STATES[5])/( ALGEBRAIC[130]*CONSTANTS[59]*CONSTANTS[60]);
ALGEBRAIC[143] =  ALGEBRAIC[131]*ALGEBRAIC[128]*CONSTANTS[63];
ALGEBRAIC[144] =  ALGEBRAIC[134]*CONSTANTS[138]*CONSTANTS[63];
ALGEBRAIC[135] = 1.00000/ALGEBRAIC[133];
ALGEBRAIC[136] =  ALGEBRAIC[135]*CONSTANTS[64];
ALGEBRAIC[138] = ALGEBRAIC[136]+ALGEBRAIC[137];
ALGEBRAIC[129] = 1.00000/ALGEBRAIC[127];
ALGEBRAIC[139] = ( ALGEBRAIC[129]*CONSTANTS[64])/ALGEBRAIC[95];
ALGEBRAIC[141] = ALGEBRAIC[139]+ALGEBRAIC[140];
ALGEBRAIC[132] = 1.00000/ALGEBRAIC[130];
ALGEBRAIC[142] =  ALGEBRAIC[132]*STATES[2]*CONSTANTS[66];
ALGEBRAIC[145] =  CONSTANTS[141]*ALGEBRAIC[141]*(ALGEBRAIC[143]+ALGEBRAIC[142])+ CONSTANTS[142]*ALGEBRAIC[143]*(CONSTANTS[141]+ALGEBRAIC[138]);
ALGEBRAIC[146] =  CONSTANTS[140]*ALGEBRAIC[143]*(ALGEBRAIC[141]+CONSTANTS[142])+ ALGEBRAIC[141]*ALGEBRAIC[142]*(CONSTANTS[140]+ALGEBRAIC[144]);
ALGEBRAIC[147] =  CONSTANTS[140]*ALGEBRAIC[138]*(ALGEBRAIC[143]+ALGEBRAIC[142])+ ALGEBRAIC[144]*ALGEBRAIC[142]*(CONSTANTS[141]+ALGEBRAIC[138]);
ALGEBRAIC[148] =  CONSTANTS[141]*ALGEBRAIC[144]*(ALGEBRAIC[141]+CONSTANTS[142])+ ALGEBRAIC[138]*CONSTANTS[142]*(CONSTANTS[140]+ALGEBRAIC[144]);
ALGEBRAIC[149] = ALGEBRAIC[145]/(ALGEBRAIC[145]+ALGEBRAIC[146]+ALGEBRAIC[147]+ALGEBRAIC[148]);
ALGEBRAIC[150] = ALGEBRAIC[146]/(ALGEBRAIC[145]+ALGEBRAIC[146]+ALGEBRAIC[147]+ALGEBRAIC[148]);
ALGEBRAIC[151] = ALGEBRAIC[147]/(ALGEBRAIC[145]+ALGEBRAIC[146]+ALGEBRAIC[147]+ALGEBRAIC[148]);
ALGEBRAIC[152] = ALGEBRAIC[148]/(ALGEBRAIC[145]+ALGEBRAIC[146]+ALGEBRAIC[147]+ALGEBRAIC[148]);
ALGEBRAIC[154] = ( 3.00000*( ALGEBRAIC[152]*ALGEBRAIC[143] -  ALGEBRAIC[149]*ALGEBRAIC[144])+ ALGEBRAIC[151]*ALGEBRAIC[140]) -  ALGEBRAIC[150]*ALGEBRAIC[137];
ALGEBRAIC[155] =  ALGEBRAIC[150]*CONSTANTS[141] -  ALGEBRAIC[149]*CONSTANTS[140];
ALGEBRAIC[156] =  0.200000*CONSTANTS[71]*ALGEBRAIC[153]*( CONSTANTS[6]*ALGEBRAIC[154]+ CONSTANTS[7]*ALGEBRAIC[155]);
ALGEBRAIC[158] =  CONSTANTS[81]*exp(( (1.00000 - CONSTANTS[82])*STATES[0]*CONSTANTS[5])/( 3.00000*CONSTANTS[3]*CONSTANTS[4]));
ALGEBRAIC[162] = ( CONSTANTS[76]*pow(CONSTANTS[2]/CONSTANTS[84], 2.00000))/((pow(1.00000+CONSTANTS[0]/ALGEBRAIC[158], 3.00000)+pow(1.00000+CONSTANTS[2]/CONSTANTS[84], 2.00000)) - 1.00000);
ALGEBRAIC[159] = CONSTANTS[89]/(1.00000+CONSTANTS[88]/CONSTANTS[90]+STATES[4]/CONSTANTS[91]+STATES[8]/CONSTANTS[92]);
ALGEBRAIC[163] = ( CONSTANTS[77]*ALGEBRAIC[159]*CONSTANTS[88])/(1.00000+CONSTANTS[86]/CONSTANTS[87]);
ALGEBRAIC[157] =  CONSTANTS[80]*exp(( CONSTANTS[82]*STATES[0]*CONSTANTS[5])/( 3.00000*CONSTANTS[3]*CONSTANTS[4]));
ALGEBRAIC[160] = ( CONSTANTS[72]*pow(STATES[4]/ALGEBRAIC[157], 3.00000))/((pow(1.00000+STATES[4]/ALGEBRAIC[157], 3.00000)+pow(1.00000+STATES[8]/CONSTANTS[83], 2.00000)) - 1.00000);
ALGEBRAIC[161] = ( CONSTANTS[75]*pow(CONSTANTS[0]/ALGEBRAIC[158], 3.00000))/((pow(1.00000+CONSTANTS[0]/ALGEBRAIC[158], 3.00000)+pow(1.00000+CONSTANTS[2]/CONSTANTS[84], 2.00000)) - 1.00000);
ALGEBRAIC[164] = ( CONSTANTS[79]*pow(STATES[8]/CONSTANTS[83], 2.00000))/((pow(1.00000+STATES[4]/ALGEBRAIC[157], 3.00000)+pow(1.00000+STATES[8]/CONSTANTS[83], 2.00000)) - 1.00000);
ALGEBRAIC[165] =  CONSTANTS[145]*ALGEBRAIC[160]*CONSTANTS[144]+ ALGEBRAIC[161]*ALGEBRAIC[164]*ALGEBRAIC[163]+ CONSTANTS[144]*ALGEBRAIC[164]*ALGEBRAIC[163]+ ALGEBRAIC[163]*ALGEBRAIC[160]*CONSTANTS[144];
ALGEBRAIC[166] =  ALGEBRAIC[161]*CONSTANTS[143]*ALGEBRAIC[164]+ ALGEBRAIC[160]*CONSTANTS[144]*ALGEBRAIC[162]+ ALGEBRAIC[162]*CONSTANTS[143]*ALGEBRAIC[164]+ CONSTANTS[144]*ALGEBRAIC[162]*ALGEBRAIC[164];
ALGEBRAIC[167] =  CONSTANTS[144]*ALGEBRAIC[162]*CONSTANTS[145]+ ALGEBRAIC[163]*ALGEBRAIC[161]*CONSTANTS[143]+ ALGEBRAIC[161]*CONSTANTS[143]*CONSTANTS[145]+ ALGEBRAIC[162]*CONSTANTS[145]*CONSTANTS[143];
ALGEBRAIC[168] =  ALGEBRAIC[164]*ALGEBRAIC[163]*ALGEBRAIC[161]+ ALGEBRAIC[162]*CONSTANTS[145]*ALGEBRAIC[160]+ ALGEBRAIC[161]*CONSTANTS[145]*ALGEBRAIC[160]+ ALGEBRAIC[163]*ALGEBRAIC[161]*ALGEBRAIC[160];
ALGEBRAIC[169] = ALGEBRAIC[165]/(ALGEBRAIC[165]+ALGEBRAIC[166]+ALGEBRAIC[167]+ALGEBRAIC[168]);
ALGEBRAIC[170] = ALGEBRAIC[166]/(ALGEBRAIC[165]+ALGEBRAIC[166]+ALGEBRAIC[167]+ALGEBRAIC[168]);
ALGEBRAIC[173] =  3.00000*( ALGEBRAIC[169]*ALGEBRAIC[162] -  ALGEBRAIC[170]*ALGEBRAIC[163]);
ALGEBRAIC[171] = ALGEBRAIC[167]/(ALGEBRAIC[165]+ALGEBRAIC[166]+ALGEBRAIC[167]+ALGEBRAIC[168]);
ALGEBRAIC[172] = ALGEBRAIC[168]/(ALGEBRAIC[165]+ALGEBRAIC[166]+ALGEBRAIC[167]+ALGEBRAIC[168]);
ALGEBRAIC[174] =  2.00000*( ALGEBRAIC[172]*CONSTANTS[143] -  ALGEBRAIC[171]*ALGEBRAIC[160]);
ALGEBRAIC[175] =  CONSTANTS[93]*( CONSTANTS[6]*ALGEBRAIC[173]+ CONSTANTS[8]*ALGEBRAIC[174]);
ALGEBRAIC[176] = ( CONSTANTS[94]*ALGEBRAIC[1]*( STATES[4]*exp(ALGEBRAIC[2]) - CONSTANTS[0]))/(exp(ALGEBRAIC[2]) - 1.00000);
ALGEBRAIC[177] = ( CONSTANTS[95]*4.00000*ALGEBRAIC[1]*( STATES[10]*exp( 2.00000*ALGEBRAIC[2]) -  0.341000*CONSTANTS[1]))/(exp( 2.00000*ALGEBRAIC[2]) - 1.00000);
ALGEBRAIC[178] = ( CONSTANTS[96]*STATES[10])/(CONSTANTS[97]+STATES[10]);
ALGEBRAIC[179] = (STATES[5] - STATES[4])/CONSTANTS[98];
ALGEBRAIC[180] = (STATES[4] - STATES[3])/CONSTANTS[99];
ALGEBRAIC[181] = (STATES[7] - STATES[8])/CONSTANTS[98];
ALGEBRAIC[182] = (STATES[8] - STATES[6])/CONSTANTS[99];
ALGEBRAIC[183] = (STATES[2] - STATES[10])/CONSTANTS[98];
ALGEBRAIC[184] = (STATES[10] - STATES[9])/CONSTANTS[99];
ALGEBRAIC[185] = ( 2.00000*(1.00000+( 1.00000*1.00000)/(1.00000+pow(0.280000/ALGEBRAIC[4], 8.00000))))/(1.00000+0.0123000/STATES[12]);
ALGEBRAIC[186] = ( 6.00000*(1.00000+( 1.00000*1.00000)/(1.00000+pow(0.280000/ALGEBRAIC[4], 8.00000))))/(1.00000+0.0123000/STATES[13]);
ALGEBRAIC[187] = ( CONSTANTS[101]*ALGEBRAIC[4])/(ALGEBRAIC[4]+CONSTANTS[14]);
ALGEBRAIC[188] = ( CONSTANTS[100]*ALGEBRAIC[4])/(ALGEBRAIC[4]+CONSTANTS[14]);
ALGEBRAIC[189] = ( 0.000200000*(ALGEBRAIC[188]+1.00000))/(1.00000+(CONSTANTS[102] - ALGEBRAIC[187])/STATES[10]) - ( 0.00105000*STATES[11])/CONSTANTS[103];
ALGEBRAIC[190] = ( 0.00260000*(ALGEBRAIC[188]+1.00000))/(1.00000+(CONSTANTS[102] - ALGEBRAIC[187])/STATES[9]) - ( 0.00420000*STATES[11])/CONSTANTS[103];
ALGEBRAIC[191] = ( CONSTANTS[111]*CONSTANTS[104]*STATES[2]*(1.00000 - STATES[45]))/( (1.00000+( CONSTANTS[104]*CONSTANTS[107])/CONSTANTS[108])*(1.00000+( STATES[2]*CONSTANTS[105])/CONSTANTS[106]));
ALGEBRAIC[192] =  10.9200*ALGEBRAIC[191]*(STATES[12] - STATES[2]);
ALGEBRAIC[193] = (STATES[11] - STATES[12])/120.000;
ALGEBRAIC[194] = (STATES[11] - STATES[13])/120.000;
ALGEBRAIC[195] = - (( ALGEBRAIC[64]*CONSTANTS[124])/( CONSTANTS[129]*CONSTANTS[5]*2.00000)+( - (STATES[14]+ALGEBRAIC[192])*CONSTANTS[127])/CONSTANTS[129]+ALGEBRAIC[183]);
ALGEBRAIC[196] = (CONDVAR[1]>0.00000 ? ( 15.0000*(1.00000+( 1.00000*1.00000)/(1.00000+pow(0.280000/ALGEBRAIC[4], 8.00000)))*ALGEBRAIC[195])/(1.00000+pow(1.00000/STATES[12], 8.00000)) : 0.00000);
ALGEBRAIC[197] = ( ALGEBRAIC[184]*CONSTANTS[130])/CONSTANTS[125]+( - ALGEBRAIC[190]*CONSTANTS[126])/CONSTANTS[125]+( STATES[15]*CONSTANTS[128])/CONSTANTS[125];
ALGEBRAIC[198] = (CONDVAR[2]>0.00000 ? ( 91.0000*(1.00000+( 1.00000*1.00000)/(1.00000+pow(0.280000/ALGEBRAIC[4], 8.00000)))*ALGEBRAIC[197])/(1.00000+pow(1.00000/STATES[13], 8.00000)) : 0.00000);
}
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;
SI[41] = 1.0;
SI[42] = 1.0;
SI[43] = 1.0;
SI[44] = 1.0;
SI[45] = 1.0;
}
void
computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES,
             double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS)
{
CONDVAR[0] = VOI - CONSTANTS[13];
CONDVAR[1] = ALGEBRAIC[195] - 0.00000;
CONDVAR[2] = ALGEBRAIC[197] - 0.00000;
}