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 107 entries in the algebraic variable array.
   There are a total of 43 entries in each of the rate and state variable arrays.
   There are a total of 85 entries in the constant variable array.
 */
/*
 * CONSTANTS[58] is Aj_nj in component cell (um2).
 * CONSTANTS[0] is BCa in component calcium (mM).
 * CONSTANTS[1] is CSQN in component calcium (mM).
 * STATES[0] is CaSR1 in component calcium (mM).
 * STATES[1] is CaSR2 in component calcium (mM).
 * STATES[2] is CaSR3 in component calcium (mM).
 * STATES[3] is CaSR4 in component calcium (mM).
 * STATES[4] is Cai1 in component calcium (mM).
 * STATES[5] is Cai2 in component calcium (mM).
 * STATES[6] is Cai3 in component calcium (mM).
 * STATES[7] is Cai4 in component calcium (mM).
 * STATES[8] is Cass in component calcium (mM).
 * CONSTANTS[2] is DCa in component calcium (m2_per_s_times_1e_minus_12).
 * CONSTANTS[3] is DCaBm in component calcium (m2_per_s_times_1e_minus_12).
 * CONSTANTS[4] is DCaSR in component calcium (m2_per_s_times_1e_minus_12).
 * CONSTANTS[5] is F in component phys (C_per_mol).
 * ALGEBRAIC[14] is ICaL in component ical (pA).
 * ALGEBRAIC[21] is ICaP in component icap (pA).
 * ALGEBRAIC[79] is ICab in component icab (pA).
 * ALGEBRAIC[38] is INaCa in component inaca (pA).
 * ALGEBRAIC[96] is JCa1 in component calcium (kat_times_1e_minus_12).
 * ALGEBRAIC[97] is JCa2 in component calcium (kat_times_1e_minus_12).
 * ALGEBRAIC[98] is JCa3 in component calcium (kat_times_1e_minus_12).
 * ALGEBRAIC[74] is JCa4 in component calcium (kat_times_1e_minus_12).
 * ALGEBRAIC[99] is JCass in component calcium (kat_times_1e_minus_12).
 * ALGEBRAIC[100] is JSRCa1 in component calcium (kat_times_1e_minus_12).
 * ALGEBRAIC[101] is JSRCa2 in component calcium (kat_times_1e_minus_12).
 * ALGEBRAIC[102] is JSRCa3 in component calcium (kat_times_1e_minus_12).
 * ALGEBRAIC[103] is JSRCa4 in component calcium (kat_times_1e_minus_12).
 * ALGEBRAIC[0] is JSRCaleak1 in component calcium (kat_times_1e_minus_12).
 * ALGEBRAIC[1] is JSRCaleak2 in component calcium (kat_times_1e_minus_12).
 * ALGEBRAIC[2] is JSRCaleak3 in component calcium (kat_times_1e_minus_12).
 * ALGEBRAIC[3] is JSRCaleakss in component calcium (kat_times_1e_minus_12).
 * ALGEBRAIC[63] is J_SERCASR1 in component serca (kat_times_1e_minus_12).
 * ALGEBRAIC[64] is J_SERCASR2 in component serca (kat_times_1e_minus_12).
 * ALGEBRAIC[65] is J_SERCASR3 in component serca (kat_times_1e_minus_12).
 * ALGEBRAIC[66] is J_SERCASRss in component serca (kat_times_1e_minus_12).
 * ALGEBRAIC[67] is J_bulkSERCA1 in component serca (kat_times_1e_minus_12).
 * ALGEBRAIC[68] is J_bulkSERCA2 in component serca (kat_times_1e_minus_12).
 * ALGEBRAIC[69] is J_bulkSERCA3 in component serca (kat_times_1e_minus_12).
 * ALGEBRAIC[70] is J_bulkSERCAss in component serca (kat_times_1e_minus_12).
 * ALGEBRAIC[4] is Jj_nj in component calcium (kat_times_1e_minus_12).
 * ALGEBRAIC[91] is Jrel1 in component ryr (kat_times_1e_minus_12).
 * ALGEBRAIC[92] is Jrel2 in component ryr (kat_times_1e_minus_12).
 * ALGEBRAIC[93] is Jrel3 in component ryr (kat_times_1e_minus_12).
 * ALGEBRAIC[94] is Jrelss in component ryr (kat_times_1e_minus_12).
 * CONSTANTS[6] is KdBCa in component calcium (mM).
 * CONSTANTS[7] is KdCSQN in component calcium (mM).
 * CONSTANTS[8] is KdSLhigh in component calcium (mM).
 * CONSTANTS[9] is KdSLlow in component calcium (mM).
 * CONSTANTS[10] is SLhigh in component calcium (mM).
 * CONSTANTS[11] is SLlow in component calcium (mM).
 * CONSTANTS[72] is VSR1 in component cell (nL).
 * CONSTANTS[77] is VSR2 in component cell (nL).
 * CONSTANTS[80] is VSR3 in component cell (nL).
 * CONSTANTS[83] is VSR4 in component cell (nL).
 * CONSTANTS[59] is Vnonjunct1 in component cell (nL).
 * CONSTANTS[71] is Vnonjunct2 in component cell (nL).
 * CONSTANTS[76] is Vnonjunct3 in component cell (nL).
 * CONSTANTS[79] is Vnonjunct4 in component cell (nL).
 * CONSTANTS[12] is Vss in component cell (nL).
 * ALGEBRAIC[5] is calcium_CaSR1_beta in component calcium (dimensionless).
 * ALGEBRAIC[6] is calcium_CaSR2_beta in component calcium (dimensionless).
 * ALGEBRAIC[7] is calcium_CaSR3_beta in component calcium (dimensionless).
 * ALGEBRAIC[8] is calcium_CaSR4_beta in component calcium (dimensionless).
 * ALGEBRAIC[75] is calcium_Cai1_beta in component calcium (dimensionless).
 * ALGEBRAIC[9] is calcium_Cai1_gamma in component calcium (dimensionless).
 * ALGEBRAIC[76] is calcium_Cai2_beta in component calcium (dimensionless).
 * ALGEBRAIC[10] is calcium_Cai2_gamma in component calcium (dimensionless).
 * ALGEBRAIC[77] is calcium_Cai3_beta in component calcium (dimensionless).
 * ALGEBRAIC[11] is calcium_Cai3_gamma in component calcium (dimensionless).
 * ALGEBRAIC[78] is calcium_Cai4_beta in component calcium (dimensionless).
 * ALGEBRAIC[12] is calcium_Cai4_gamma in component calcium (dimensionless).
 * ALGEBRAIC[13] is calcium_Cass_beta in component calcium (dimensionless).
 * ALGEBRAIC[104] is calcium_Cass_i_tot in component calcium (pA).
 * CONSTANTS[13] is dx in component cell (um).
 * CONSTANTS[14] is kSRleak in component calcium (hertz).
 * VOI is time in component engine (second).
 * CONSTANTS[60] is xj_nj in component cell (um).
 * CONSTANTS[15] is Cm in component cell (nF).
 * CONSTANTS[84] is Vcytosol in component cell (nL).
 * CONSTANTS[82] is Vnonjunct_Nai in component cell (nL).
 * CONSTANTS[16] is lcell in component cell (um).
 * CONSTANTS[17] is pi in component cell (dimensionless).
 * CONSTANTS[18] is rjunct in component cell (um).
 * CONSTANTS[61] is xj_nj_Nai in component cell (um).
 * CONSTANTS[19] is Cao in component extra (mM).
 * CONSTANTS[20] is Ko in component extra (mM).
 * CONSTANTS[21] is Nao in component extra (mM).
 * ALGEBRAIC[44] is ECa in component nernst (mV).
 * STATES[9] is V in component membrane (mV).
 * CONSTANTS[22] is gCab in component icab (nS).
 * CONSTANTS[23] is ECa_app in component ical (mV).
 * STATES[10] is d in component ical (hertz).
 * STATES[11] is f1 in component ical (hertz).
 * STATES[12] is f2 in component ical (hertz).
 * ALGEBRAIC[15] is f_inf in component ical (dimensionless).
 * STATES[13] is fca in component ical (hertz).
 * CONSTANTS[24] is gCaL in component ical (nS).
 * ALGEBRAIC[16] is ical_d_inf in component ical (dimensionless).
 * ALGEBRAIC[17] is ical_d_tau in component ical (second).
 * ALGEBRAIC[18] is ical_f1_tau in component ical (second).
 * ALGEBRAIC[19] is ical_f2_tau in component ical (second).
 * ALGEBRAIC[20] is ical_fca_inf in component ical (dimensionless).
 * CONSTANTS[25] is ical_fca_tau in component ical (second).
 * CONSTANTS[26] is kCa in component ical (mM).
 * CONSTANTS[27] is kCan in component ical (dimensionless).
 * CONSTANTS[28] is ICaPmax in component icap (pA).
 * CONSTANTS[29] is kCaP in component icap (mM).
 * ALGEBRAIC[45] is EK in component nernst (mV).
 * ALGEBRAIC[46] is ENa in component nernst (mV).
 * ALGEBRAIC[105] is If in component if (pA).
 * ALGEBRAIC[80] is IfK in component if (pA).
 * ALGEBRAIC[81] is IfNa in component if (pA).
 * CONSTANTS[30] is gIf in component if (nS).
 * ALGEBRAIC[22] is if_y_inf in component if (dimensionless).
 * ALGEBRAIC[23] is if_y_tau in component if (second).
 * STATES[14] is y in component if (hertz).
 * CONSTANTS[73] is FRT in component phys (per_mV).
 * ALGEBRAIC[82] is IK1 in component ik1 (pA).
 * CONSTANTS[62] is gK1 in component ik1 (nS).
 * ALGEBRAIC[83] is IKr in component ikr (pA).
 * CONSTANTS[31] is gKr in component ikr (nS).
 * ALGEBRAIC[24] is ikr_pa_inf in component ikr (dimensionless).
 * ALGEBRAIC[25] is ikr_pa_tau in component ikr (second).
 * STATES[15] is pa in component ikr (hertz).
 * ALGEBRAIC[26] is pi in component ikr (dimensionless).
 * ALGEBRAIC[84] is IKs in component iks (pA).
 * CONSTANTS[32] is gKs in component iks (nS).
 * ALGEBRAIC[27] is iks_n_inf in component iks (dimensionless).
 * ALGEBRAIC[28] is iks_n_tau in component iks (second).
 * STATES[16] is n in component iks (hertz).
 * ALGEBRAIC[85] is IKur in component ikur (pA).
 * CONSTANTS[63] is gKur in component ikur (nS).
 * ALGEBRAIC[29] is ikur_r_inf in component ikur (dimensionless).
 * ALGEBRAIC[30] is ikur_r_tau in component ikur (second).
 * ALGEBRAIC[31] is ikur_s_inf in component ikur (dimensionless).
 * ALGEBRAIC[32] is ikur_s_tau in component ikur (second).
 * STATES[17] is r in component ikur (hertz).
 * STATES[18] is s in component ikur (hertz).
 * ALGEBRAIC[86] is INa in component ina (pA).
 * CONSTANTS[33] is PNa in component ina (m3_per_s_times_1e_minus_12).
 * STATES[19] is h1 in component ina (hertz).
 * STATES[20] is h2 in component ina (hertz).
 * ALGEBRAIC[33] is h_inf in component ina (dimensionless).
 * ALGEBRAIC[34] is ina_h1_tau in component ina (second).
 * ALGEBRAIC[35] is ina_h2_tau in component ina (second).
 * ALGEBRAIC[36] is ina_m_inf in component ina (dimensionless).
 * ALGEBRAIC[37] is ina_m_tau in component ina (second).
 * STATES[21] is m in component ina (hertz).
 * ALGEBRAIC[87] is INab in component inab (pA).
 * CONSTANTS[34] is gNab in component inab (nS).
 * STATES[22] is Nass in component sodium (mM).
 * CONSTANTS[35] is dNaCa in component inaca (m12_per_mol4).
 * CONSTANTS[36] is fCaNCX in component inaca (dimensionless).
 * CONSTANTS[37] is gam in component inaca (dimensionless).
 * CONSTANTS[38] is kNaCa in component inaca (m12_A_per_mol4_times_1e_minus_12).
 * ALGEBRAIC[88] is INaK in component inak (pA).
 * CONSTANTS[39] is INaKmax in component inak (pA).
 * ALGEBRAIC[39] is Nass15 in component inak (dimensionless).
 * CONSTANTS[40] is kNaKK in component inak (mM).
 * CONSTANTS[41] is kNaKNa in component inak (dimensionless).
 * ALGEBRAIC[89] is It in component it (pA).
 * CONSTANTS[64] is gt in component it (nS).
 * ALGEBRAIC[40] is it_r_inf in component it (dimensionless).
 * ALGEBRAIC[41] is it_r_tau in component it (second).
 * ALGEBRAIC[42] is it_s_inf in component it (dimensionless).
 * ALGEBRAIC[43] is it_s_tau in component it (second).
 * STATES[23] is r in component it (hertz).
 * STATES[24] is s in component it (hertz).
 * ALGEBRAIC[106] is i_ion in component membrane (pA).
 * ALGEBRAIC[73] is i_stim in component stimulus (pA).
 * STATES[25] is Ki in component potassium (mM).
 * CONSTANTS[65] is RTF in component phys (mV).
 * CONSTANTS[42] is R in component phys (mJ_per_mol_per_K).
 * CONSTANTS[43] is T in component phys (kelvin).
 * ALGEBRAIC[90] is i_tot in component potassium (pA).
 * ALGEBRAIC[47] is SRCa1 in component ryr (dimensionless).
 * ALGEBRAIC[48] is SRCa2 in component ryr (dimensionless).
 * ALGEBRAIC[49] is SRCa3 in component ryr (dimensionless).
 * ALGEBRAIC[50] is SRCass in component ryr (dimensionless).
 * STATES[26] is a1 in component ryr (hertz).
 * STATES[27] is a2 in component ryr (hertz).
 * STATES[28] is a3 in component ryr (hertz).
 * ALGEBRAIC[51] is ainf1 in component ryr (dimensionless).
 * ALGEBRAIC[52] is ainf2 in component ryr (dimensionless).
 * ALGEBRAIC[53] is ainf3 in component ryr (dimensionless).
 * ALGEBRAIC[54] is ainfss in component ryr (dimensionless).
 * STATES[29] is ass in component ryr (hertz).
 * STATES[30] is c1 in component ryr (hertz).
 * STATES[31] is c2 in component ryr (hertz).
 * STATES[32] is c3 in component ryr (hertz).
 * ALGEBRAIC[55] is cinf1 in component ryr (dimensionless).
 * ALGEBRAIC[56] is cinf2 in component ryr (dimensionless).
 * ALGEBRAIC[57] is cinf3 in component ryr (dimensionless).
 * ALGEBRAIC[58] is cinfss in component ryr (dimensionless).
 * STATES[33] is css in component ryr (hertz).
 * CONSTANTS[74] is nu1 in component ryr (m3_per_s_times_1e_minus_12).
 * CONSTANTS[78] is nu2 in component ryr (m3_per_s_times_1e_minus_12).
 * CONSTANTS[81] is nu3 in component ryr (m3_per_s_times_1e_minus_12).
 * CONSTANTS[66] is nuss in component ryr (m3_per_s_times_1e_minus_12).
 * STATES[34] is o1 in component ryr (hertz).
 * STATES[35] is o2 in component ryr (hertz).
 * STATES[36] is o3 in component ryr (hertz).
 * ALGEBRAIC[59] is oinf1 in component ryr (dimensionless).
 * ALGEBRAIC[60] is oinf2 in component ryr (dimensionless).
 * ALGEBRAIC[61] is oinf3 in component ryr (dimensionless).
 * ALGEBRAIC[62] is oinfss in component ryr (dimensionless).
 * STATES[37] is oss in component ryr (hertz).
 * CONSTANTS[44] is tau_act in component ryr (second).
 * CONSTANTS[45] is tau_actss in component ryr (second).
 * CONSTANTS[46] is tau_adapt in component ryr (second).
 * CONSTANTS[47] is tau_inact in component ryr (second).
 * CONSTANTS[48] is tau_inactss in component ryr (second).
 * CONSTANTS[49] is SERCAKmf in component serca (mM).
 * CONSTANTS[50] is SERCAKmr in component serca (mM).
 * STATES[38] is a1 in component serca (mM).
 * STATES[39] is a2 in component serca (mM).
 * STATES[40] is a3 in component serca (mM).
 * STATES[41] is ass in component serca (mM).
 * CONSTANTS[51] is cpumps in component serca (mM).
 * CONSTANTS[67] is k1 in component serca (m6_per_s_per_mol2).
 * CONSTANTS[75] is k2 in component serca (hertz).
 * CONSTANTS[68] is k3 in component serca (m6_per_s_per_mol2).
 * CONSTANTS[52] is k4 in component serca (hertz).
 * CONSTANTS[69] is BNa in component sodium (mM).
 * CONSTANTS[53] is DNa in component sodium (m2_per_s_times_1e_minus_12).
 * ALGEBRAIC[71] is JNa in component sodium (kat_times_1e_minus_12).
 * CONSTANTS[54] is KdBNa in component sodium (mM).
 * STATES[42] is Nai in component sodium (mM).
 * ALGEBRAIC[72] is betaNass in component sodium (dimensionless).
 * ALGEBRAIC[95] is i_ss in component sodium (pA).
 * CONSTANTS[70] is amplitude in component stimulus (pA).
 * CONSTANTS[55] is duration in component stimulus (second).
 * CONSTANTS[56] is offset in component stimulus (second).
 * CONSTANTS[57] is period in component stimulus (second).
 * RATES[0] is d/dt CaSR1 in component calcium (mM).
 * RATES[1] is d/dt CaSR2 in component calcium (mM).
 * RATES[2] is d/dt CaSR3 in component calcium (mM).
 * RATES[3] is d/dt CaSR4 in component calcium (mM).
 * RATES[4] is d/dt Cai1 in component calcium (mM).
 * RATES[5] is d/dt Cai2 in component calcium (mM).
 * RATES[6] is d/dt Cai3 in component calcium (mM).
 * RATES[7] is d/dt Cai4 in component calcium (mM).
 * RATES[8] is d/dt Cass in component calcium (mM).
 * RATES[10] is d/dt d in component ical (hertz).
 * RATES[11] is d/dt f1 in component ical (hertz).
 * RATES[12] is d/dt f2 in component ical (hertz).
 * RATES[13] is d/dt fca in component ical (hertz).
 * RATES[14] is d/dt y in component if (hertz).
 * RATES[15] is d/dt pa in component ikr (hertz).
 * RATES[16] is d/dt n in component iks (hertz).
 * RATES[17] is d/dt r in component ikur (hertz).
 * RATES[18] is d/dt s in component ikur (hertz).
 * RATES[19] is d/dt h1 in component ina (hertz).
 * RATES[20] is d/dt h2 in component ina (hertz).
 * RATES[21] is d/dt m in component ina (hertz).
 * RATES[23] is d/dt r in component it (hertz).
 * RATES[24] is d/dt s in component it (hertz).
 * RATES[9] is d/dt V in component membrane (mV).
 * RATES[25] is d/dt Ki in component potassium (mM).
 * RATES[26] is d/dt a1 in component ryr (hertz).
 * RATES[27] is d/dt a2 in component ryr (hertz).
 * RATES[28] is d/dt a3 in component ryr (hertz).
 * RATES[29] is d/dt ass in component ryr (hertz).
 * RATES[30] is d/dt c1 in component ryr (hertz).
 * RATES[31] is d/dt c2 in component ryr (hertz).
 * RATES[32] is d/dt c3 in component ryr (hertz).
 * RATES[33] is d/dt css in component ryr (hertz).
 * RATES[34] is d/dt o1 in component ryr (hertz).
 * RATES[35] is d/dt o2 in component ryr (hertz).
 * RATES[36] is d/dt o3 in component ryr (hertz).
 * RATES[37] is d/dt oss in component ryr (hertz).
 * RATES[38] is d/dt a1 in component serca (mM).
 * RATES[39] is d/dt a2 in component serca (mM).
 * RATES[40] is d/dt a3 in component serca (mM).
 * RATES[41] is d/dt ass in component serca (mM).
 * RATES[42] is d/dt Nai in component sodium (mM).
 * RATES[22] is d/dt Nass in component sodium (mM).
 * There are a total of 1 condition variables.
 */
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
CONSTANTS[0] = 0.024;
CONSTANTS[1] = 6.7;
STATES[0] = 0.6189225;
STATES[1] = 0.6076289;
STATES[2] = 0.5905266;
STATES[3] = 0.5738108;
STATES[4] = 1.35496500000000013e-04;
STATES[5] = 1.38142100000000014e-04;
STATES[6] = 1.44208699999999994e-04;
STATES[7] = 1.56184399999999995e-04;
STATES[8] = 1.61937700000000013e-04;
CONSTANTS[2] = 780.0;
CONSTANTS[3] = 25.0;
CONSTANTS[4] = 44.0;
CONSTANTS[5] = 96487.0;
CONSTANTS[6] = 0.00238;
CONSTANTS[7] = 0.8;
CONSTANTS[8] = 0.013;
CONSTANTS[9] = 1.1;
CONSTANTS[10] = 13.0;
CONSTANTS[11] = 165.0;
CONSTANTS[12] = 4.99231999999999966e-05;
CONSTANTS[13] = 1.625;
CONSTANTS[14] = 0.006;
CONSTANTS[15] = 0.05;
CONSTANTS[16] = 122.051;
CONSTANTS[17] = 3.14159265358979312e+00;
CONSTANTS[18] = 6.5;
CONSTANTS[19] = 1.8;
CONSTANTS[20] = 5.4;
CONSTANTS[21] = 130.0;
STATES[9] = -75.42786;
CONSTANTS[22] = 0.0952;
CONSTANTS[23] = 60.0;
STATES[10] = 1.06091699999999996e-05;
STATES[11] = 0.9988566;
STATES[12] = 0.9988624;
STATES[13] = 0.9744374;
CONSTANTS[24] = 25.3125;
CONSTANTS[25] = 0.002;
CONSTANTS[26] = 0.001;
CONSTANTS[27] = 2.0;
CONSTANTS[28] = 2.0;
CONSTANTS[29] = 0.0005;
CONSTANTS[30] = 1.0;
STATES[14] = 5.62066499999999969e-02;
CONSTANTS[31] = 0.5;
STATES[15] = 4.18941700000000008e-05;
CONSTANTS[32] = 1.0;
STATES[16] = 4.10975100000000003e-03;
STATES[17] = 3.11170299999999984e-04;
STATES[18] = 0.9751094;
CONSTANTS[33] = 0.0018;
STATES[19] = 0.90391;
STATES[20] = 0.9039673;
STATES[21] = 2.77581199999999990e-03;
CONSTANTS[34] = 0.060599;
STATES[22] = 8.691504;
CONSTANTS[35] = 0.0003;
CONSTANTS[36] = 1.0;
CONSTANTS[37] = 0.45;
CONSTANTS[38] = 0.0084;
CONSTANTS[39] = 70.8253;
CONSTANTS[40] = 1.0;
CONSTANTS[41] = 11.0;
STATES[23] = 9.59425800000000026e-04;
STATES[24] = 0.954338;
STATES[25] = 134.6313;
CONSTANTS[42] = 8314.0;
CONSTANTS[43] = 306.15;
STATES[26] = 0.1925362;
STATES[27] = 0.2010345;
STATES[28] = 0.2163122;
STATES[29] = 0.2455297;
STATES[30] = 0.9993722;
STATES[31] = 0.9995086;
STATES[32] = 0.9995604;
STATES[33] = 0.9999717;
STATES[34] = 9.47851400000000044e-05;
STATES[35] = 7.76550300000000031e-05;
STATES[36] = 5.67494700000000006e-05;
STATES[37] = 3.97509699999999973e-05;
CONSTANTS[44] = 0.01875;
CONSTANTS[45] = 0.005;
CONSTANTS[46] = 1.0;
CONSTANTS[47] = 0.0875;
CONSTANTS[48] = 0.015;
CONSTANTS[49] = 0.00025;
CONSTANTS[50] = 1.8;
STATES[38] = 4.63856499999999988e-03;
STATES[39] = 4.51207800000000010e-03;
STATES[40] = 4.32640899999999981e-03;
STATES[41] = 4.25044500000000026e-03;
CONSTANTS[51] = 0.04;
CONSTANTS[52] = 7.5;
CONSTANTS[53] = 0.12;
CONSTANTS[54] = 10.0;
STATES[42] = 9.28686;
CONSTANTS[55] = 0.001;
CONSTANTS[56] = 0.01;
CONSTANTS[57] = 1.0;
CONSTANTS[58] =  ( ( ( CONSTANTS[17]*CONSTANTS[18])*2.00000)*CONSTANTS[16])*0.500000;
CONSTANTS[59] =  ( ( ( (pow( 1.00000*CONSTANTS[13], 2.00000) - pow( 0.00000*CONSTANTS[13], 2.00000))*CONSTANTS[17])*CONSTANTS[16])*0.500000)*1.00000e-06;
CONSTANTS[60] = 0.0200000/2.00000+CONSTANTS[13]/2.00000;
CONSTANTS[61] = 0.0200000/2.00000+ 2.00000*CONSTANTS[13];
CONSTANTS[62] =  3.82500*0.900000;
CONSTANTS[63] =  0.890000*2.75000;
CONSTANTS[64] =  1.09000*7.50000;
CONSTANTS[65] = ( CONSTANTS[42]*CONSTANTS[43])/CONSTANTS[5];
CONSTANTS[66] =  625.000*CONSTANTS[12];
CONSTANTS[67] =  pow(1000.00, 2.00000)*CONSTANTS[52];
CONSTANTS[68] = CONSTANTS[52]/pow(CONSTANTS[50], 2.00000);
CONSTANTS[69] =  0.490000*2.31000;
CONSTANTS[70] = - 2500.00;
CONSTANTS[71] =  ( ( ( (pow( 2.00000*CONSTANTS[13], 2.00000) - pow( 1.00000*CONSTANTS[13], 2.00000))*CONSTANTS[17])*CONSTANTS[16])*0.500000)*1.00000e-06;
CONSTANTS[72] =  (( 0.0500000*CONSTANTS[59])/2.00000)*0.900000;
CONSTANTS[73] = 1.00000/CONSTANTS[65];
CONSTANTS[74] =  1.00000*CONSTANTS[59];
CONSTANTS[75] =  CONSTANTS[67]*pow(CONSTANTS[49], 2.00000);
CONSTANTS[76] =  ( ( ( (pow( 3.00000*CONSTANTS[13], 2.00000) - pow( 2.00000*CONSTANTS[13], 2.00000))*CONSTANTS[17])*CONSTANTS[16])*0.500000)*1.00000e-06;
CONSTANTS[77] =  (( 0.0500000*CONSTANTS[71])/2.00000)*0.900000;
CONSTANTS[78] =  1.00000*CONSTANTS[71];
CONSTANTS[79] =  ( ( ( (pow( 4.00000*CONSTANTS[13], 2.00000) - pow( 3.00000*CONSTANTS[13], 2.00000))*CONSTANTS[17])*CONSTANTS[16])*0.500000)*1.00000e-06;
CONSTANTS[80] =  (( 0.0500000*CONSTANTS[76])/2.00000)*0.900000;
CONSTANTS[81] =  1.00000*CONSTANTS[76];
CONSTANTS[82] = ((CONSTANTS[59]+CONSTANTS[71])+CONSTANTS[76])+CONSTANTS[79];
CONSTANTS[83] =  (( 0.0500000*CONSTANTS[79])/2.00000)*0.900000;
CONSTANTS[84] = CONSTANTS[82]+CONSTANTS[12];
RATES[0] = 0.1001;
RATES[1] = 0.1001;
RATES[2] = 0.1001;
RATES[3] = 0.1001;
RATES[4] = 0.1001;
RATES[5] = 0.1001;
RATES[6] = 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[23] = 0.1001;
RATES[24] = 0.1001;
RATES[9] = 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[22] = 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[5]*CONSTANTS[4])*(((STATES[1] -  2.00000*STATES[0])+STATES[0])/pow(CONSTANTS[13], 2.00000)+(STATES[1] - STATES[0])/( ( 2.00000*1.00000)*pow(CONSTANTS[13], 2.00000)))+ (ALGEBRAIC[100]/CONSTANTS[72])*ALGEBRAIC[5];
resid[1] = RATES[1] -  ( ALGEBRAIC[6]*CONSTANTS[4])*(((STATES[2] -  2.00000*STATES[1])+STATES[0])/pow(CONSTANTS[13], 2.00000)+(STATES[2] - STATES[0])/( ( 2.00000*2.00000)*pow(CONSTANTS[13], 2.00000)))+ (ALGEBRAIC[101]/CONSTANTS[77])*ALGEBRAIC[6];
resid[2] = RATES[2] -  ( ALGEBRAIC[7]*CONSTANTS[4])*(((STATES[3] -  2.00000*STATES[2])+STATES[1])/pow(CONSTANTS[13], 2.00000)+(STATES[3] - STATES[1])/( ( 2.00000*3.00000)*pow(CONSTANTS[13], 2.00000)))+ (ALGEBRAIC[102]/CONSTANTS[80])*ALGEBRAIC[7];
resid[3] = RATES[3] -  ( ALGEBRAIC[8]*CONSTANTS[4])*(((STATES[3] -  2.00000*STATES[3])+STATES[2])/pow(CONSTANTS[13], 2.00000)+(STATES[3] - STATES[2])/( ( 2.00000*4.00000)*pow(CONSTANTS[13], 2.00000)))+ (ALGEBRAIC[103]/CONSTANTS[83])*ALGEBRAIC[8];
resid[4] = RATES[4] - ( ( ALGEBRAIC[75]*(CONSTANTS[2]+ ALGEBRAIC[9]*CONSTANTS[3]))*(((STATES[5] -  2.00000*STATES[4])+STATES[4])/pow(CONSTANTS[13], 2.00000)+(STATES[5] - STATES[4])/( ( 2.00000*1.00000)*pow(CONSTANTS[13], 2.00000))) -  (( ( ( 2.00000*ALGEBRAIC[75])*ALGEBRAIC[9])*CONSTANTS[3])/(CONSTANTS[6]+STATES[4]))*pow((STATES[5] - STATES[4])/( 2.00000*CONSTANTS[13]), 2.00000))+ (ALGEBRAIC[96]/CONSTANTS[59])*ALGEBRAIC[75];
resid[5] = RATES[5] - ( ( ALGEBRAIC[76]*(CONSTANTS[2]+ ALGEBRAIC[10]*CONSTANTS[3]))*(((STATES[6] -  2.00000*STATES[5])+STATES[4])/pow(CONSTANTS[13], 2.00000)+(STATES[6] - STATES[4])/( ( 2.00000*2.00000)*pow(CONSTANTS[13], 2.00000))) -  (( ( ( 2.00000*ALGEBRAIC[76])*ALGEBRAIC[10])*CONSTANTS[3])/(CONSTANTS[6]+STATES[5]))*pow((STATES[6] - STATES[4])/( 2.00000*CONSTANTS[13]), 2.00000))+ (ALGEBRAIC[97]/CONSTANTS[71])*ALGEBRAIC[76];
resid[6] = RATES[6] - ( ( ALGEBRAIC[77]*(CONSTANTS[2]+ ALGEBRAIC[11]*CONSTANTS[3]))*(((STATES[7] -  2.00000*STATES[6])+STATES[5])/pow(CONSTANTS[13], 2.00000)+(STATES[7] - STATES[5])/( ( 2.00000*3.00000)*pow(CONSTANTS[13], 2.00000))) -  (( ( ( 2.00000*ALGEBRAIC[77])*ALGEBRAIC[11])*CONSTANTS[3])/(CONSTANTS[6]+STATES[6]))*pow((STATES[7] - STATES[5])/( 2.00000*CONSTANTS[13]), 2.00000))+ (ALGEBRAIC[98]/CONSTANTS[76])*ALGEBRAIC[77];
resid[7] = RATES[7] - ( ( ALGEBRAIC[78]*(CONSTANTS[2]+ ALGEBRAIC[12]*CONSTANTS[3]))*(((STATES[7] -  2.00000*STATES[7])+STATES[6])/pow(CONSTANTS[13], 2.00000)+(STATES[7] - STATES[6])/( ( 2.00000*4.00000)*pow(CONSTANTS[13], 2.00000))) -  (( ( ( 2.00000*ALGEBRAIC[78])*ALGEBRAIC[12])*CONSTANTS[3])/(CONSTANTS[6]+STATES[7]))*pow((STATES[7] - STATES[6])/( 2.00000*CONSTANTS[13]), 2.00000))+ (ALGEBRAIC[74]/CONSTANTS[79])*ALGEBRAIC[78];
resid[8] = RATES[8] -  ALGEBRAIC[13]*(ALGEBRAIC[99]/CONSTANTS[12]+ALGEBRAIC[104]/( ( 2.00000*CONSTANTS[12])*CONSTANTS[5]));
resid[9] = RATES[10] - (ALGEBRAIC[16] - STATES[10])/ALGEBRAIC[17];
resid[10] = RATES[11] - (ALGEBRAIC[15] - STATES[11])/ALGEBRAIC[18];
resid[11] = RATES[12] - (ALGEBRAIC[15] - STATES[12])/ALGEBRAIC[19];
resid[12] = RATES[13] - (ALGEBRAIC[20] - STATES[13])/CONSTANTS[25];
resid[13] = RATES[14] - (ALGEBRAIC[22] - STATES[14])/ALGEBRAIC[23];
resid[14] = RATES[15] - (ALGEBRAIC[24] - STATES[15])/ALGEBRAIC[25];
resid[15] = RATES[16] - (ALGEBRAIC[27] - STATES[16])/ALGEBRAIC[28];
resid[16] = RATES[17] - (ALGEBRAIC[29] - STATES[17])/ALGEBRAIC[30];
resid[17] = RATES[18] - (ALGEBRAIC[31] - STATES[18])/ALGEBRAIC[32];
resid[18] = RATES[19] - (ALGEBRAIC[33] - STATES[19])/ALGEBRAIC[34];
resid[19] = RATES[20] - (ALGEBRAIC[33] - STATES[20])/ALGEBRAIC[35];
resid[20] = RATES[21] - (ALGEBRAIC[36] - STATES[21])/ALGEBRAIC[37];
resid[21] = RATES[23] - (ALGEBRAIC[40] - STATES[23])/ALGEBRAIC[41];
resid[22] = RATES[24] - (ALGEBRAIC[42] - STATES[24])/ALGEBRAIC[43];
resid[23] = RATES[9] - - (ALGEBRAIC[106]+ALGEBRAIC[73])/CONSTANTS[15];
resid[24] = RATES[25] - - ALGEBRAIC[90]/( CONSTANTS[84]*CONSTANTS[5]);
resid[25] = RATES[26] - (ALGEBRAIC[51] - STATES[26])/CONSTANTS[46];
resid[26] = RATES[27] - (ALGEBRAIC[52] - STATES[27])/CONSTANTS[46];
resid[27] = RATES[28] - (ALGEBRAIC[53] - STATES[28])/CONSTANTS[46];
resid[28] = RATES[29] - (ALGEBRAIC[54] - STATES[29])/CONSTANTS[46];
resid[29] = RATES[30] - (ALGEBRAIC[55] - STATES[30])/CONSTANTS[47];
resid[30] = RATES[31] - (ALGEBRAIC[56] - STATES[31])/CONSTANTS[47];
resid[31] = RATES[32] - (ALGEBRAIC[57] - STATES[32])/CONSTANTS[47];
resid[32] = RATES[33] - (ALGEBRAIC[58] - STATES[33])/CONSTANTS[48];
resid[33] = RATES[34] - (ALGEBRAIC[59] - STATES[34])/CONSTANTS[44];
resid[34] = RATES[35] - (ALGEBRAIC[60] - STATES[35])/CONSTANTS[44];
resid[35] = RATES[36] - (ALGEBRAIC[61] - STATES[36])/CONSTANTS[44];
resid[36] = RATES[37] - (ALGEBRAIC[62] - STATES[37])/CONSTANTS[45];
resid[37] = RATES[38] - ( 0.500000*(- ALGEBRAIC[63]+ALGEBRAIC[67]))/CONSTANTS[59];
resid[38] = RATES[39] - ( 0.500000*(- ALGEBRAIC[64]+ALGEBRAIC[68]))/CONSTANTS[71];
resid[39] = RATES[40] - ( 0.500000*(- ALGEBRAIC[65]+ALGEBRAIC[69]))/CONSTANTS[76];
resid[40] = RATES[41] - ( 0.500000*(- ALGEBRAIC[66]+ALGEBRAIC[70]))/CONSTANTS[12];
resid[41] = RATES[42] - ALGEBRAIC[71]/CONSTANTS[82];
resid[42] = RATES[22] -  ALGEBRAIC[72]*(- ALGEBRAIC[71]/CONSTANTS[12] - ALGEBRAIC[95]/( CONSTANTS[12]*CONSTANTS[5]));
}
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[5] = 1.00000/(1.00000+( CONSTANTS[1]*CONSTANTS[7])/pow(STATES[0]+CONSTANTS[7], 2.00000));
ALGEBRAIC[6] = 1.00000/(1.00000+( CONSTANTS[1]*CONSTANTS[7])/pow(STATES[1]+CONSTANTS[7], 2.00000));
ALGEBRAIC[7] = 1.00000/(1.00000+( CONSTANTS[1]*CONSTANTS[7])/pow(STATES[2]+CONSTANTS[7], 2.00000));
ALGEBRAIC[8] = 1.00000/(1.00000+( CONSTANTS[1]*CONSTANTS[7])/pow(STATES[3]+CONSTANTS[7], 2.00000));
ALGEBRAIC[9] = ( CONSTANTS[0]*CONSTANTS[6])/pow(STATES[4]+CONSTANTS[6], 2.00000);
ALGEBRAIC[10] = ( CONSTANTS[0]*CONSTANTS[6])/pow(STATES[5]+CONSTANTS[6], 2.00000);
ALGEBRAIC[11] = ( CONSTANTS[0]*CONSTANTS[6])/pow(STATES[6]+CONSTANTS[6], 2.00000);
ALGEBRAIC[12] = ( CONSTANTS[0]*CONSTANTS[6])/pow(STATES[7]+CONSTANTS[6], 2.00000);
ALGEBRAIC[13] = 1.00000/(((1.00000+( CONSTANTS[11]*CONSTANTS[9])/pow(STATES[8]+CONSTANTS[9], 2.00000))+( CONSTANTS[10]*CONSTANTS[8])/pow(STATES[8]+CONSTANTS[8], 2.00000))+( CONSTANTS[0]*CONSTANTS[6])/pow(STATES[8]+CONSTANTS[6], 2.00000));
ALGEBRAIC[15] = 1.00000/(1.00000+exp((STATES[9]+27.4000)/7.10000));
ALGEBRAIC[16] = 1.00000/(1.00000+exp((STATES[9]+9.00000)/- 5.80000));
ALGEBRAIC[17] =  0.00270000*exp(- pow((STATES[9]+35.0000)/30.0000, 2.00000))+0.00200000;
ALGEBRAIC[18] = (( 0.986980*exp(- pow((STATES[9]+30.1605)/7.09396, 2.00000))+0.0427500/(1.00000+exp((STATES[9] - 51.6155)/- 80.6133)))+0.0357600/(1.00000+exp((STATES[9]+29.5727)/13.2176))) - 0.00821000;
ALGEBRAIC[19] =  1.33230*exp(- pow((STATES[9]+40.0000)/14.2000, 2.00000))+0.0626000;
ALGEBRAIC[20] = 1.00000 - 1.00000/(1.00000+pow(CONSTANTS[26]/STATES[8], CONSTANTS[27]));
ALGEBRAIC[22] = 1.00000/(1.00000+exp((STATES[9]+97.8287)/12.4802));
ALGEBRAIC[23] = 1.00000/( 0.00332000*exp(- STATES[9]/16.5410)+ 23.7184*exp(STATES[9]/16.5410));
ALGEBRAIC[24] = 1.00000/(1.00000+exp((STATES[9]+15.0000)/- 6.00000));
ALGEBRAIC[25] =  0.217180*exp(- pow((STATES[9]+20.1376)/22.1996, 2.00000))+0.0311800;
ALGEBRAIC[27] = 1.00000/(1.00000+exp((STATES[9] - 19.9000)/- 12.7000));
ALGEBRAIC[28] =  0.400000*exp(- pow((STATES[9] - 20.0000)/20.0000, 2.00000))+0.700000;
ALGEBRAIC[29] = 1.00000/(1.00000+exp((STATES[9]+6.00000)/- 8.60000));
ALGEBRAIC[30] = 0.00900000/(1.00000+exp((STATES[9]+5.00000)/12.0000))+0.000500000;
ALGEBRAIC[31] = 1.00000/(1.00000+exp((STATES[9]+7.50000)/10.0000));
ALGEBRAIC[32] = 0.590000/(1.00000+exp((STATES[9]+60.0000)/10.0000))+3.05000;
ALGEBRAIC[33] = 1.00000/(1.00000+exp((STATES[9]+63.6000)/5.30000));
ALGEBRAIC[34] = 0.0300000/(1.00000+exp((STATES[9]+35.1000)/3.20000))+0.000300000;
ALGEBRAIC[35] = 0.120000/(1.00000+exp((STATES[9]+35.1000)/3.20000))+0.00300000;
ALGEBRAIC[36] = 1.00000/(1.00000+exp((STATES[9]+27.1200)/- 8.21000));
ALGEBRAIC[37] =  4.20000e-05*exp(- pow((STATES[9]+25.5700)/28.8000, 2.00000))+2.40000e-05;
ALGEBRAIC[40] = 1.00000/(1.00000+exp((STATES[9] - 1.00000)/- 11.0000));
ALGEBRAIC[41] =  0.00350000*exp(- pow((STATES[9]+0.00000)/30.0000, 2.00000))+0.00150000;
ALGEBRAIC[42] = 1.00000/(1.00000+exp((STATES[9]+40.5000)/11.5000));
ALGEBRAIC[43] =  0.0256350*exp(- pow((STATES[9]+52.4500)/15.8827, 2.00000))+0.0141400;
ALGEBRAIC[51] = 0.505000 - 0.427000/(1.00000+exp(( STATES[4]*1000.00 - 0.290000)/0.0820000));
ALGEBRAIC[52] = 0.505000 - 0.427000/(1.00000+exp(( STATES[5]*1000.00 - 0.290000)/0.0820000));
ALGEBRAIC[53] = 0.505000 - 0.427000/(1.00000+exp(( STATES[6]*1000.00 - 0.290000)/0.0820000));
ALGEBRAIC[54] = 0.505000 - 0.427000/(1.00000+exp(( STATES[8]*1000.00 - 0.290000)/0.0820000));
ALGEBRAIC[55] = 1.00000/(1.00000+exp(( STATES[4]*1000.00 - (STATES[26]+0.0200000))/0.0100000));
ALGEBRAIC[56] = 1.00000/(1.00000+exp(( STATES[5]*1000.00 - (STATES[27]+0.0200000))/0.0100000));
ALGEBRAIC[57] = 1.00000/(1.00000+exp(( STATES[6]*1000.00 - (STATES[28]+0.0200000))/0.0100000));
ALGEBRAIC[58] = 1.00000/(1.00000+exp(( STATES[8]*1000.00 - (STATES[29]+0.0200000))/0.0100000));
ALGEBRAIC[59] = 1.00000 - 1.00000/(1.00000+exp(( STATES[4]*1000.00 - (STATES[26]+0.220000))/0.0300000));
ALGEBRAIC[60] = 1.00000 - 1.00000/(1.00000+exp(( STATES[5]*1000.00 - (STATES[27]+0.220000))/0.0300000));
ALGEBRAIC[61] = 1.00000 - 1.00000/(1.00000+exp(( STATES[6]*1000.00 - (STATES[28]+0.220000))/0.0300000));
ALGEBRAIC[62] = 1.00000 - 1.00000/(1.00000+exp(( STATES[8]*1000.00 - (STATES[29]+0.220000))/0.0300000));
ALGEBRAIC[63] =  ( ( ( - CONSTANTS[68]*pow(STATES[0], 2.00000))*(CONSTANTS[51] - STATES[38])+ CONSTANTS[52]*STATES[38])*CONSTANTS[59])*2.00000;
ALGEBRAIC[64] =  ( ( ( - CONSTANTS[68]*pow(STATES[1], 2.00000))*(CONSTANTS[51] - STATES[39])+ CONSTANTS[52]*STATES[39])*CONSTANTS[71])*2.00000;
ALGEBRAIC[65] =  ( ( ( - CONSTANTS[68]*pow(STATES[2], 2.00000))*(CONSTANTS[51] - STATES[40])+ CONSTANTS[52]*STATES[40])*CONSTANTS[76])*2.00000;
ALGEBRAIC[66] =  ( ( ( - CONSTANTS[68]*pow(STATES[3], 2.00000))*(CONSTANTS[51] - STATES[41])+ CONSTANTS[52]*STATES[41])*CONSTANTS[12])*2.00000;
ALGEBRAIC[67] =  ( ( ( CONSTANTS[67]*pow(STATES[4], 2.00000))*(CONSTANTS[51] - STATES[38]) -  CONSTANTS[75]*STATES[38])*CONSTANTS[59])*2.00000;
ALGEBRAIC[68] =  ( ( ( CONSTANTS[67]*pow(STATES[5], 2.00000))*(CONSTANTS[51] - STATES[39]) -  CONSTANTS[75]*STATES[39])*CONSTANTS[71])*2.00000;
ALGEBRAIC[69] =  ( ( ( CONSTANTS[67]*pow(STATES[6], 2.00000))*(CONSTANTS[51] - STATES[40]) -  CONSTANTS[75]*STATES[40])*CONSTANTS[76])*2.00000;
ALGEBRAIC[70] =  ( ( ( CONSTANTS[67]*pow(STATES[8], 2.00000))*(CONSTANTS[51] - STATES[41]) -  CONSTANTS[75]*STATES[41])*CONSTANTS[12])*2.00000;
ALGEBRAIC[71] =  ( (( CONSTANTS[53]*CONSTANTS[58])/CONSTANTS[61])*(STATES[22] - STATES[42]))*1.00000e-06;
ALGEBRAIC[72] = 1.00000/(1.00000+( CONSTANTS[69]*CONSTANTS[54])/pow(STATES[22]+CONSTANTS[54], 2.00000));
ALGEBRAIC[73] =  (CONDVAR[0]<0.00000 ? 1.00000 : 0.00000)*CONSTANTS[70];
ALGEBRAIC[4] =  ( (( CONSTANTS[2]*CONSTANTS[58])/CONSTANTS[60])*(STATES[8] - STATES[7]))*1.00000e-06;
ALGEBRAIC[74] = ALGEBRAIC[4];
ALGEBRAIC[75] = 1.00000/(1.00000+ALGEBRAIC[9]);
ALGEBRAIC[76] = 1.00000/(1.00000+ALGEBRAIC[10]);
ALGEBRAIC[77] = 1.00000/(1.00000+ALGEBRAIC[11]);
ALGEBRAIC[78] = 1.00000/(1.00000+ALGEBRAIC[12]);
ALGEBRAIC[45] =  CONSTANTS[65]*log(CONSTANTS[20]/STATES[25]);
ALGEBRAIC[80] =  ( CONSTANTS[30]*STATES[14])*( (1.00000 - 0.267700)*(STATES[9] - ALGEBRAIC[45]));
ALGEBRAIC[82] = ( ( CONSTANTS[62]*pow( CONSTANTS[20]*1.00000, 0.445700))*(STATES[9] - ALGEBRAIC[45]))/(1.00000+exp( ( 1.50000*((STATES[9] - ALGEBRAIC[45])+3.60000))*CONSTANTS[73]));
ALGEBRAIC[26] = 1.00000/(1.00000+exp((STATES[9]+55.0000)/24.0000));
ALGEBRAIC[83] =  ( ( CONSTANTS[31]*STATES[15])*ALGEBRAIC[26])*(STATES[9] - ALGEBRAIC[45]);
ALGEBRAIC[84] =  ( CONSTANTS[32]*STATES[16])*(STATES[9] - ALGEBRAIC[45]);
ALGEBRAIC[85] =  ( ( CONSTANTS[63]*STATES[17])*STATES[18])*(STATES[9] - ALGEBRAIC[45]);
ALGEBRAIC[39] = pow( STATES[22]*1.00000, 1.50000);
ALGEBRAIC[88] = ( (( (( CONSTANTS[39]*CONSTANTS[20])/(CONSTANTS[20]+CONSTANTS[40]))*ALGEBRAIC[39])/(ALGEBRAIC[39]+pow(CONSTANTS[41], 1.50000)))*(STATES[9]+150.000))/(STATES[9]+200.000);
ALGEBRAIC[89] =  ( ( CONSTANTS[64]*STATES[23])*STATES[24])*(STATES[9] - ALGEBRAIC[45]);
ALGEBRAIC[90] = (((((((ALGEBRAIC[89])+ALGEBRAIC[85])+ALGEBRAIC[82])+ALGEBRAIC[83])+ALGEBRAIC[84]) -  2.00000*ALGEBRAIC[88])+ALGEBRAIC[80])+ALGEBRAIC[73];
ALGEBRAIC[38] = ( CONSTANTS[38]*( ( exp( ( CONSTANTS[37]*STATES[9])*CONSTANTS[73])*pow(STATES[22], 3.00000))*CONSTANTS[19] -  ( ( exp( ( (CONSTANTS[37] - 1.00000)*STATES[9])*CONSTANTS[73])*pow(CONSTANTS[21], 3.00000))*STATES[8])*CONSTANTS[36]))/(1.00000+ CONSTANTS[35]*( ( pow(CONSTANTS[21], 3.00000)*STATES[8])*CONSTANTS[36]+ pow(STATES[22], 3.00000)*CONSTANTS[19]));
ALGEBRAIC[46] =  CONSTANTS[65]*log(CONSTANTS[21]/STATES[22]);
ALGEBRAIC[81] =  ( CONSTANTS[30]*STATES[14])*( 0.267700*(STATES[9] - ALGEBRAIC[46]));
ALGEBRAIC[86] = ( ( ( ( ( ( ( CONSTANTS[33]*pow(STATES[21], 3.00000))*( 0.900000*STATES[19]+ 0.100000*STATES[20]))*CONSTANTS[21])*STATES[9])*CONSTANTS[5])*CONSTANTS[73])*(exp( (STATES[9] - ALGEBRAIC[46])*CONSTANTS[73]) - 1.00000))/(exp( STATES[9]*CONSTANTS[73]) - 1.00000);
ALGEBRAIC[87] =  CONSTANTS[34]*(STATES[9] - ALGEBRAIC[46]);
ALGEBRAIC[95] = ((((ALGEBRAIC[86])+ALGEBRAIC[87])+ 3.00000*ALGEBRAIC[88])+ 3.00000*ALGEBRAIC[38])+ALGEBRAIC[81];
ALGEBRAIC[0] =  ( CONSTANTS[14]*(STATES[0] - STATES[4]))*CONSTANTS[59];
ALGEBRAIC[47] = 1.00000 - 1.00000/(1.00000+exp((STATES[0] - 0.300000)/0.100000));
ALGEBRAIC[91] =  ( ( ( CONSTANTS[74]*STATES[34])*STATES[30])*ALGEBRAIC[47])*(STATES[0] - STATES[4]);
ALGEBRAIC[96] = (- ALGEBRAIC[67]+ALGEBRAIC[0])+ALGEBRAIC[91];
ALGEBRAIC[1] =  ( CONSTANTS[14]*(STATES[1] - STATES[5]))*CONSTANTS[71];
ALGEBRAIC[48] = 1.00000 - 1.00000/(1.00000+exp((STATES[1] - 0.300000)/0.100000));
ALGEBRAIC[92] =  ( ( ( CONSTANTS[78]*STATES[35])*STATES[31])*ALGEBRAIC[48])*(STATES[1] - STATES[5]);
ALGEBRAIC[97] = (- ALGEBRAIC[68]+ALGEBRAIC[1])+ALGEBRAIC[92];
ALGEBRAIC[2] =  ( CONSTANTS[14]*(STATES[2] - STATES[6]))*CONSTANTS[76];
ALGEBRAIC[49] = 1.00000 - 1.00000/(1.00000+exp((STATES[2] - 0.300000)/0.100000));
ALGEBRAIC[93] =  ( ( ( CONSTANTS[81]*STATES[36])*STATES[32])*ALGEBRAIC[49])*(STATES[2] - STATES[6]);
ALGEBRAIC[98] = (- ALGEBRAIC[69]+ALGEBRAIC[2])+ALGEBRAIC[93];
ALGEBRAIC[3] =  ( CONSTANTS[14]*(STATES[3] - STATES[8]))*CONSTANTS[12];
ALGEBRAIC[50] = 1.00000 - 1.00000/(1.00000+exp((STATES[3] - 0.300000)/0.100000));
ALGEBRAIC[94] =  ( ( ( CONSTANTS[66]*STATES[37])*STATES[33])*ALGEBRAIC[50])*(STATES[3] - STATES[8]);
ALGEBRAIC[99] = ((- ALGEBRAIC[4]+ALGEBRAIC[3]) - ALGEBRAIC[70])+ALGEBRAIC[94];
ALGEBRAIC[100] = (ALGEBRAIC[63] - ALGEBRAIC[0]) - ALGEBRAIC[91];
ALGEBRAIC[101] = (ALGEBRAIC[64] - ALGEBRAIC[1]) - ALGEBRAIC[92];
ALGEBRAIC[102] = (ALGEBRAIC[65] - ALGEBRAIC[2]) - ALGEBRAIC[93];
ALGEBRAIC[103] = (ALGEBRAIC[66] - ALGEBRAIC[3]) - ALGEBRAIC[94];
ALGEBRAIC[14] =  ( ( ( ( CONSTANTS[24]*STATES[10])*STATES[13])*STATES[11])*STATES[12])*(STATES[9] - CONSTANTS[23]);
ALGEBRAIC[21] = ( CONSTANTS[28]*STATES[8])/(CONSTANTS[29]+STATES[8]);
ALGEBRAIC[44] = ( CONSTANTS[65]*log(CONSTANTS[19]/STATES[8]))/2.00000;
ALGEBRAIC[79] =  CONSTANTS[22]*(STATES[9] - ALGEBRAIC[44]);
ALGEBRAIC[104] = ((- ALGEBRAIC[14] - ALGEBRAIC[79]) - ALGEBRAIC[21])+ 2.00000*ALGEBRAIC[38];
ALGEBRAIC[105] = ALGEBRAIC[80]+ALGEBRAIC[81];
ALGEBRAIC[106] = ((((((((((((ALGEBRAIC[86])+ALGEBRAIC[14])+ALGEBRAIC[89])+ALGEBRAIC[85])+ALGEBRAIC[82])+ALGEBRAIC[83])+ALGEBRAIC[84])+ALGEBRAIC[87])+ALGEBRAIC[79])+ALGEBRAIC[88])+ALGEBRAIC[21])+ALGEBRAIC[38])+ALGEBRAIC[105];
}
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;
}
void
computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES,
             double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS)
{
CONDVAR[0] = ((VOI - CONSTANTS[56]) -  CONSTANTS[57]*floor((VOI - CONSTANTS[56])/CONSTANTS[57])) - CONSTANTS[55];
}