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 56 entries in the algebraic variable array.
   There are a total of 22 entries in each of the rate and state variable arrays.
   There are a total of 132 entries in the constant variable array.
 */
/*
 * VOI is time in component Time (time_units).
 * CONSTANTS[0] is T in component Environment (Temperature_units).
 * CONSTANTS[1] is T_exp in component Environment (Temperature_units).
 * CONSTANTS[2] is F in component Environment (F_units).
 * CONSTANTS[3] is R in component Environment (R_units).
 * CONSTANTS[4] is Q10Ca in component Environment (dimensionless).
 * CONSTANTS[5] is Q10K in component Environment (dimensionless).
 * CONSTANTS[6] is Q10Na in component Environment (dimensionless).
 * CONSTANTS[7] is Ca_o in component Environment (millimolar).
 * CONSTANTS[8] is Na_o in component Environment (millimolar).
 * CONSTANTS[9] is K_o in component Environment (millimolar).
 * CONSTANTS[10] is Cl_o in component Environment (millimolar).
 * CONSTANTS[104] is T_correction_Na in component Environment (dimensionless).
 * CONSTANTS[105] is T_correction_K in component Environment (dimensionless).
 * CONSTANTS[106] is T_correction_Ca in component Environment (dimensionless).
 * CONSTANTS[107] is T_correction_BK in component Environment (conductance_units).
 * CONSTANTS[108] is FoRT in component Environment (Inverse_Voltage_units).
 * CONSTANTS[109] is RToF in component Environment (voltage_units).
 * CONSTANTS[11] is Cm in component ICC_Membrane (capacitance_units).
 * CONSTANTS[12] is Vol in component ICC_Membrane (volume_units).
 * CONSTANTS[13] is P_cyto in component ICC_Membrane (dimensionless).
 * CONSTANTS[110] is V_cyto in component ICC_Membrane (volume_units).
 * CONSTANTS[14] is fc in component ICC_Membrane (dimensionless).
 * STATES[0] is Vm in component ICC_Membrane (voltage_units).
 * STATES[1] is Ca_i in component ICC_Membrane (millimolar).
 * CONSTANTS[15] is Na_i in component ICC_Membrane (millimolar).
 * CONSTANTS[16] is K_i in component ICC_Membrane (millimolar).
 * CONSTANTS[17] is Cl_i in component ICC_Membrane (millimolar).
 * ALGEBRAIC[30] is J_leak in component PU_unit (millimolar_per_second).
 * ALGEBRAIC[22] is I_Na in component I_Na (current_units).
 * ALGEBRAIC[4] is I_Ltype in component I_Ltype (current_units).
 * ALGEBRAIC[9] is I_VDDR in component I_VDDR (current_units).
 * ALGEBRAIC[19] is I_kv11 in component I_kv11 (current_units).
 * ALGEBRAIC[13] is I_BK in component I_BK (current_units).
 * ALGEBRAIC[16] is I_ERG in component I_ERG (current_units).
 * ALGEBRAIC[11] is I_CaCl in component I_CaCl (current_units).
 * ALGEBRAIC[24] is I_NSCC in component I_NSCC (current_units).
 * ALGEBRAIC[14] is I_bk in component I_bk (current_units).
 * ALGEBRAIC[5] is J_PMCA in component J_PMCA (millimolar_per_second).
 * ALGEBRAIC[0] is d_inf_Ltype in component d_Ltype (dimensionless).
 * CONSTANTS[111] is tau_d_Ltype in component d_Ltype (time_units).
 * STATES[2] is d_Ltype in component d_Ltype (dimensionless).
 * ALGEBRAIC[1] is f_inf_Ltype in component f_Ltype (dimensionless).
 * CONSTANTS[112] is tau_f_Ltype in component f_Ltype (time_units).
 * STATES[3] is f_Ltype in component f_Ltype (dimensionless).
 * ALGEBRAIC[2] is f_ca_inf_Ltype in component f_ca_Ltype (dimensionless).
 * CONSTANTS[113] is tau_f_ca_Ltype in component f_ca_Ltype (time_units).
 * STATES[4] is f_ca_Ltype in component f_ca_Ltype (dimensionless).
 * ALGEBRAIC[3] is E_Ca in component I_Ltype (voltage_units).
 * CONSTANTS[18] is G_max_Ltype in component I_Ltype (conductance_units).
 * CONSTANTS[19] is J_max_PMCA in component J_PMCA (millimolar_per_second).
 * ALGEBRAIC[6] is d_inf_VDDR in component d_VDDR (dimensionless).
 * CONSTANTS[114] is tau_d_VDDR in component d_VDDR (time_units).
 * STATES[5] is d_VDDR in component d_VDDR (dimensionless).
 * ALGEBRAIC[7] is f_inf_VDDR in component f_VDDR (dimensionless).
 * CONSTANTS[115] is tau_f_VDDR in component f_VDDR (time_units).
 * STATES[6] is f_VDDR in component f_VDDR (dimensionless).
 * ALGEBRAIC[8] is E_Ca in component I_VDDR (voltage_units).
 * CONSTANTS[20] is G_max_VDDR in component I_VDDR (conductance_units).
 * ALGEBRAIC[10] is d_inf_CaCl in component d_CaCl (dimensionless).
 * CONSTANTS[21] is tau_d_CaCl in component d_CaCl (time_units).
 * STATES[7] is d_CaCl in component d_CaCl (dimensionless).
 * CONSTANTS[116] is E_Cl in component I_CaCl (voltage_units).
 * CONSTANTS[22] is G_max_CaCl in component I_CaCl (conductance_units).
 * ALGEBRAIC[12] is d_BK in component d_BK (dimensionless).
 * CONSTANTS[117] is E_K in component I_BK (voltage_units).
 * CONSTANTS[23] is G_max_BK in component I_BK (conductance_units).
 * CONSTANTS[118] is E_K in component I_bk (voltage_units).
 * CONSTANTS[24] is G_max_bk in component I_bk (conductance_units).
 * ALGEBRAIC[15] is d_inf_ERG in component d_ERG (dimensionless).
 * CONSTANTS[119] is tau_d_ERG in component d_ERG (time_units).
 * STATES[8] is d_ERG in component d_ERG (dimensionless).
 * CONSTANTS[120] is E_K in component I_ERG (voltage_units).
 * CONSTANTS[25] is G_max_ERG in component I_ERG (conductance_units).
 * ALGEBRAIC[17] is d_inf_kv11 in component d_kv11 (dimensionless).
 * CONSTANTS[121] is tau_d_kv11 in component d_kv11 (time_units).
 * STATES[9] is d_kv11 in component d_kv11 (dimensionless).
 * ALGEBRAIC[18] is f_inf_kv11 in component f_kv11 (dimensionless).
 * CONSTANTS[122] is tau_f_kv11 in component f_kv11 (time_units).
 * STATES[10] is f_kv11 in component f_kv11 (dimensionless).
 * CONSTANTS[123] is E_K in component I_kv11 (voltage_units).
 * CONSTANTS[26] is G_max_kv11 in component I_kv11 (conductance_units).
 * ALGEBRAIC[20] is d_inf_Na in component d_Na (dimensionless).
 * CONSTANTS[124] is tau_d_Na in component d_Na (time_units).
 * STATES[11] is d_Na in component d_Na (dimensionless).
 * ALGEBRAIC[21] is f_inf_Na in component f_Na (dimensionless).
 * CONSTANTS[125] is tau_f_Na in component f_Na (time_units).
 * STATES[12] is f_Na in component f_Na (dimensionless).
 * CONSTANTS[126] is E_Na in component I_Na (voltage_units).
 * CONSTANTS[27] is G_max_Na in component I_Na (conductance_units).
 * STATES[13] is Ca_PU in component PU_unit (millimolar).
 * ALGEBRAIC[23] is d_inf_NSCC in component d_NSCC (dimensionless).
 * CONSTANTS[28] is tau_d_NSCC in component d_NSCC (time_units).
 * STATES[14] is d_NSCC in component d_NSCC (dimensionless).
 * CONSTANTS[127] is E_NSCC in component I_NSCC (voltage_units).
 * CONSTANTS[29] is G_max_NSCC in component I_NSCC (conductance_units).
 * CONSTANTS[30] is NaPerm_o_Kperm in component I_NSCC (dimensionless).
 * CONSTANTS[31] is P_PU in component PU_unit (dimensionless).
 * CONSTANTS[32] is P_mito in component PU_unit (dimensionless).
 * CONSTANTS[33] is P_ER in component PU_unit (dimensionless).
 * CONSTANTS[128] is V_MITO in component PU_unit (volume_units).
 * CONSTANTS[130] is V_ER in component PU_unit (volume_units).
 * CONSTANTS[129] is V_PU in component PU_unit (volume_units).
 * CONSTANTS[34] is fe in component PU_unit (dimensionless).
 * CONSTANTS[35] is fm in component PU_unit (dimensionless).
 * STATES[15] is Ca_m in component PU_unit (millimolar).
 * STATES[16] is Ca_ER in component PU_unit (millimolar).
 * STATES[17] is ADP_m in component PU_unit (millimolar).
 * STATES[18] is ADP_i in component PU_unit (millimolar).
 * STATES[19] is NADH_m in component PU_unit (millimolar).
 * STATES[20] is h in component PU_unit (dimensionless).
 * CONSTANTS[36] is IP3 in component PU_unit (millimolar).
 * STATES[21] is deltaPsi in component PU_unit (voltage_units).
 * CONSTANTS[37] is deltapH in component PU_unit (dimensionless).
 * CONSTANTS[38] is Cmito in component PU_unit (millifarads).
 * CONSTANTS[39] is K_res in component PU_unit (dimensionless).
 * CONSTANTS[40] is r1 in component PU_unit (dimensionless).
 * CONSTANTS[41] is r2 in component PU_unit (dimensionless).
 * CONSTANTS[42] is r3 in component PU_unit (dimensionless).
 * CONSTANTS[43] is ra in component PU_unit (rate_constants_units).
 * CONSTANTS[44] is rb in component PU_unit (rate_constants_units).
 * CONSTANTS[45] is rc1 in component PU_unit (rate_constants_units).
 * CONSTANTS[46] is rc2 in component PU_unit (rate_constants_units).
 * CONSTANTS[47] is deltaPsi_B in component PU_unit (voltage_units).
 * CONSTANTS[48] is g in component PU_unit (dimensionless).
 * CONSTANTS[49] is K_F1 in component PU_unit (millimolar).
 * CONSTANTS[50] is Pi_m in component PU_unit (millimolar).
 * CONSTANTS[51] is p1 in component PU_unit (dimensionless).
 * CONSTANTS[52] is p2 in component PU_unit (dimensionless).
 * CONSTANTS[53] is p3 in component PU_unit (dimensionless).
 * CONSTANTS[54] is pa in component PU_unit (rate_constants_units).
 * CONSTANTS[55] is pb in component PU_unit (rate_constants_units).
 * CONSTANTS[56] is pc1 in component PU_unit (rate_constants_units).
 * CONSTANTS[57] is pc2 in component PU_unit (rate_constants_units).
 * CONSTANTS[58] is frac in component PU_unit (dimensionless).
 * CONSTANTS[59] is K_act in component PU_unit (millimolar).
 * CONSTANTS[60] is na in component PU_unit (dimensionless).
 * CONSTANTS[61] is deltaPsi_star in component PU_unit (voltage_units).
 * CONSTANTS[62] is K_Na in component PU_unit (millimolar).
 * CONSTANTS[63] is K_Ca in component PU_unit (millimolar).
 * CONSTANTS[64] is K_trans in component PU_unit (millimolar).
 * CONSTANTS[65] is L in component PU_unit (dimensionless).
 * CONSTANTS[66] is b in component PU_unit (dimensionless).
 * CONSTANTS[67] is beta_max in component PU_unit (rate_constants_units).
 * CONSTANTS[68] is beta1 in component PU_unit (per_millimolar).
 * CONSTANTS[69] is beta2 in component PU_unit (per_millimolar).
 * CONSTANTS[70] is beta3 in component PU_unit (per_millimolar).
 * CONSTANTS[71] is beta4 in component PU_unit (per_millimolar).
 * CONSTANTS[72] is beta5 in component PU_unit (per_millimolar).
 * CONSTANTS[73] is beta6 in component PU_unit (per_millimolar).
 * CONSTANTS[74] is beta7 in component PU_unit (per_millimolar).
 * CONSTANTS[75] is KCa_PDH in component PU_unit (millimolar).
 * CONSTANTS[76] is u1 in component PU_unit (dimensionless).
 * CONSTANTS[77] is u2 in component PU_unit (dimensionless).
 * CONSTANTS[78] is n in component PU_unit (dimensionless).
 * CONSTANTS[79] is K_Glc in component PU_unit (millimolar).
 * CONSTANTS[80] is nhyd in component PU_unit (dimensionless).
 * CONSTANTS[81] is K_hyd in component PU_unit (rate_constants_units).
 * CONSTANTS[82] is J_ERleak in component PU_unit (rate_constants_units).
 * CONSTANTS[83] is Jmax_IP3 in component PU_unit (rate_constants_units).
 * CONSTANTS[84] is d_IP3 in component PU_unit (millimolar).
 * CONSTANTS[85] is d_ACT in component PU_unit (millimolar).
 * CONSTANTS[86] is d_INH in component PU_unit (millimolar).
 * CONSTANTS[87] is tauh in component PU_unit (time_units).
 * CONSTANTS[88] is Jmax_serca in component PU_unit (millimolar_per_second).
 * CONSTANTS[89] is k_serca in component PU_unit (millimolar).
 * CONSTANTS[90] is conc in component PU_unit (millimolar).
 * CONSTANTS[91] is Jmax_uni in component PU_unit (rate_constants_units).
 * CONSTANTS[92] is Jmax_NaCa in component PU_unit (millimolar_per_second).
 * CONSTANTS[93] is J_max_leak in component PU_unit (rate_constants_units).
 * CONSTANTS[94] is rho_res in component PU_unit (millimolar).
 * CONSTANTS[95] is rho_F1 in component PU_unit (millimolar).
 * CONSTANTS[96] is g_H in component PU_unit (millimolar_per_second_per_millivolt).
 * CONSTANTS[97] is J_red_basal in component PU_unit (millimolar_per_second).
 * CONSTANTS[98] is Jmax_ANT in component PU_unit (millimolar_per_second).
 * CONSTANTS[99] is J_hyd_max in component PU_unit (millimolar_per_second).
 * CONSTANTS[100] is Glc in component PU_unit (millimolar).
 * CONSTANTS[101] is total_NAD_m in component PU_unit (millimolar).
 * CONSTANTS[102] is total_ANP_m in component PU_unit (millimolar).
 * CONSTANTS[103] is total_ANP_i in component PU_unit (millimolar).
 * ALGEBRAIC[34] is NAD_m in component PU_unit (millimolar).
 * ALGEBRAIC[35] is ATP_m in component PU_unit (millimolar).
 * ALGEBRAIC[36] is ADP_mfree in component PU_unit (millimolar).
 * ALGEBRAIC[37] is ADP3_m in component PU_unit (millimolar).
 * ALGEBRAIC[38] is ATP4_m in component PU_unit (millimolar).
 * ALGEBRAIC[39] is ATP_i in component PU_unit (millimolar).
 * ALGEBRAIC[40] is ADP_ifree in component PU_unit (millimolar).
 * ALGEBRAIC[41] is ADP3_i in component PU_unit (millimolar).
 * ALGEBRAIC[42] is MgADP_i in component PU_unit (millimolar).
 * ALGEBRAIC[43] is ATP4_i in component PU_unit (millimolar).
 * ALGEBRAIC[25] is J_ERout in component PU_unit (millimolar_per_second).
 * ALGEBRAIC[26] is J_SERCA in component PU_unit (millimolar_per_second).
 * ALGEBRAIC[27] is MWC in component PU_unit (millimolar).
 * ALGEBRAIC[28] is J_uni in component PU_unit (millimolar_per_second).
 * ALGEBRAIC[29] is J_NaCa in component PU_unit (millimolar_per_second).
 * ALGEBRAIC[48] is J_red in component PU_unit (millimolar_per_second).
 * ALGEBRAIC[49] is J_pTCA in component PU_unit (millimolar_per_second).
 * ALGEBRAIC[50] is A_F1 in component PU_unit (voltage_units).
 * ALGEBRAIC[51] is J_pF1 in component PU_unit (millimolar_per_second).
 * ALGEBRAIC[52] is J_HF1 in component PU_unit (millimolar_per_second).
 * ALGEBRAIC[44] is A_res in component PU_unit (voltage_units).
 * ALGEBRAIC[45] is J_o in component PU_unit (millimolar_per_second).
 * ALGEBRAIC[47] is J_glyTotal in component PU_unit (millimolar_per_second).
 * ALGEBRAIC[31] is f_PDHa in component PU_unit (dimensionless).
 * ALGEBRAIC[46] is J_Hres in component PU_unit (millimolar_per_second).
 * ALGEBRAIC[53] is J_ANT in component PU_unit (millimolar_per_second).
 * ALGEBRAIC[32] is PMF in component PU_unit (voltage_units).
 * ALGEBRAIC[33] is J_Hleak in component PU_unit (millimolar_per_second).
 * ALGEBRAIC[54] is J_pGly in component PU_unit (millimolar_per_second).
 * CONSTANTS[131] is J_hydSS in component PU_unit (millimolar_per_second).
 * ALGEBRAIC[55] is J_hyd in component PU_unit (millimolar_per_second).
 * RATES[0] is d/dt Vm in component ICC_Membrane (voltage_units).
 * RATES[1] is d/dt Ca_i in component ICC_Membrane (millimolar).
 * RATES[2] is d/dt d_Ltype in component d_Ltype (dimensionless).
 * RATES[3] is d/dt f_Ltype in component f_Ltype (dimensionless).
 * RATES[4] is d/dt f_ca_Ltype in component f_ca_Ltype (dimensionless).
 * RATES[5] is d/dt d_VDDR in component d_VDDR (dimensionless).
 * RATES[6] is d/dt f_VDDR in component f_VDDR (dimensionless).
 * RATES[7] is d/dt d_CaCl in component d_CaCl (dimensionless).
 * RATES[8] is d/dt d_ERG in component d_ERG (dimensionless).
 * RATES[9] is d/dt d_kv11 in component d_kv11 (dimensionless).
 * RATES[10] is d/dt f_kv11 in component f_kv11 (dimensionless).
 * RATES[11] is d/dt d_Na in component d_Na (dimensionless).
 * RATES[12] is d/dt f_Na in component f_Na (dimensionless).
 * RATES[14] is d/dt d_NSCC in component d_NSCC (dimensionless).
 * RATES[19] is d/dt NADH_m in component PU_unit (millimolar).
 * RATES[17] is d/dt ADP_m in component PU_unit (millimolar).
 * RATES[18] is d/dt ADP_i in component PU_unit (millimolar).
 * RATES[13] is d/dt Ca_PU in component PU_unit (millimolar).
 * RATES[15] is d/dt Ca_m in component PU_unit (millimolar).
 * RATES[16] is d/dt Ca_ER in component PU_unit (millimolar).
 * RATES[21] is d/dt deltaPsi in component PU_unit (voltage_units).
 * RATES[20] is d/dt h in component PU_unit (dimensionless).
 * There are a total of 0 condition variables.
 */
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
CONSTANTS[0] = 310;
CONSTANTS[1] = 297;
CONSTANTS[2] = 96.4846;
CONSTANTS[3] = 8.3144;
CONSTANTS[4] = 2.1;
CONSTANTS[5] = 1.5;
CONSTANTS[6] = 2.45;
CONSTANTS[7] = 2.5;
CONSTANTS[8] = 137;
CONSTANTS[9] = 7;
CONSTANTS[10] = 134;
CONSTANTS[11] = 0.025;
CONSTANTS[12] = 1e-12;
CONSTANTS[13] = 0.7;
CONSTANTS[14] = 0.01;
STATES[0] = -67;
STATES[1] = 0.00000993087;
CONSTANTS[15] = 30;
CONSTANTS[16] = 120;
CONSTANTS[17] = 88;
STATES[2] = 0;
STATES[3] = 1;
STATES[4] = 1;
CONSTANTS[18] = 2;
CONSTANTS[19] = 0.088464;
STATES[5] = 0;
STATES[6] = 1;
CONSTANTS[20] = 3;
CONSTANTS[21] = 0.03;
STATES[7] = 0;
CONSTANTS[22] = 10.1;
CONSTANTS[23] = 23;
CONSTANTS[24] = 0.15;
STATES[8] = 0;
CONSTANTS[25] = 2.5;
STATES[9] = 0;
STATES[10] = 1;
CONSTANTS[26] = 6.3;
STATES[11] = 0;
STATES[12] = 1;
CONSTANTS[27] = 20;
STATES[13] = 0.0000902;
CONSTANTS[28] = 0.35;
STATES[14] = 0;
CONSTANTS[29] = 12.15;
CONSTANTS[30] = 1.056075;
CONSTANTS[31] = 0.001;
CONSTANTS[32] = 0.12871;
CONSTANTS[33] = 0.1;
CONSTANTS[34] = 0.01;
CONSTANTS[35] = 0.0003;
STATES[15] = 0.000136;
STATES[16] = 0.007299;
STATES[17] = 2.60093454;
STATES[18] = 0.0077282;
STATES[19] = 0.101476;
STATES[20] = 0.9397;
CONSTANTS[36] = 0.0006;
STATES[21] = 164.000044;
CONSTANTS[37] = -0.4;
CONSTANTS[38] = 0.006995;
CONSTANTS[39] = 1.35e18;
CONSTANTS[40] = 2.077e-18;
CONSTANTS[41] = 1.728e-9;
CONSTANTS[42] = 1.059e-26;
CONSTANTS[43] = 6.394e-10;
CONSTANTS[44] = 1.762e-13;
CONSTANTS[45] = 2.656e-19;
CONSTANTS[46] = 8.632e-27;
CONSTANTS[47] = 50;
CONSTANTS[48] = 0.85;
CONSTANTS[49] = 1.71e9;
CONSTANTS[50] = 20;
CONSTANTS[51] = 1.346e-8;
CONSTANTS[52] = 7.739e-7;
CONSTANTS[53] = 6.65e-15;
CONSTANTS[54] = 1.656e-5;
CONSTANTS[55] = 3.373e-7;
CONSTANTS[56] = 9.651e-14;
CONSTANTS[57] = 4.845e-19;
CONSTANTS[58] = 0.5;
CONSTANTS[59] = 0.00038;
CONSTANTS[60] = 2.8;
CONSTANTS[61] = 91;
CONSTANTS[62] = 9.4;
CONSTANTS[63] = 0.003;
CONSTANTS[64] = 0.006;
CONSTANTS[65] = 50;
CONSTANTS[66] = 0.5;
CONSTANTS[67] = 2.055;
CONSTANTS[68] = 1.66;
CONSTANTS[69] = 0.0249;
CONSTANTS[70] = 4;
CONSTANTS[71] = 2.83;
CONSTANTS[72] = 1.3;
CONSTANTS[73] = 2.66;
CONSTANTS[74] = 0.16;
CONSTANTS[75] = 0.00005;
CONSTANTS[76] = 15;
CONSTANTS[77] = 1.1;
CONSTANTS[78] = 2;
CONSTANTS[79] = 8.7;
CONSTANTS[80] = 2.7;
CONSTANTS[81] = 0.05125;
CONSTANTS[82] = 1.666667;
CONSTANTS[83] = 50000;
CONSTANTS[84] = 0.00025;
CONSTANTS[85] = 0.001;
CONSTANTS[86] = 0.0014;
CONSTANTS[87] = 4;
CONSTANTS[88] = 1.8333;
CONSTANTS[89] = 0.00042;
CONSTANTS[90] = 0.001;
CONSTANTS[91] = 5000;
CONSTANTS[92] = 0.05;
CONSTANTS[93] = 0.01;
CONSTANTS[94] = 0.4;
CONSTANTS[95] = 0.7;
CONSTANTS[96] = 0.0033333;
CONSTANTS[97] = 0.3333;
CONSTANTS[98] = 15;
CONSTANTS[99] = 0.037625;
CONSTANTS[100] = 1;
CONSTANTS[101] = 8;
CONSTANTS[102] = 12;
CONSTANTS[103] = 2;
CONSTANTS[104] = pow(CONSTANTS[6], (CONSTANTS[0] - CONSTANTS[1])/10.0000);
CONSTANTS[105] = pow(CONSTANTS[5], (CONSTANTS[0] - CONSTANTS[1])/10.0000);
CONSTANTS[106] = pow(CONSTANTS[4], (CONSTANTS[0] - CONSTANTS[1])/10.0000);
CONSTANTS[107] =  1.10000*(CONSTANTS[0] - CONSTANTS[1]);
CONSTANTS[108] = CONSTANTS[2]/( CONSTANTS[3]*CONSTANTS[0]);
CONSTANTS[109] = ( CONSTANTS[3]*CONSTANTS[0])/CONSTANTS[2];
CONSTANTS[110] =  CONSTANTS[12]*CONSTANTS[13];
CONSTANTS[111] =  CONSTANTS[106]*0.00100000;
CONSTANTS[112] =  CONSTANTS[106]*0.0860000;
CONSTANTS[113] =  CONSTANTS[106]*0.00200000;
CONSTANTS[114] =  CONSTANTS[106]*0.00600000;
CONSTANTS[115] =  CONSTANTS[106]*0.0400000;
CONSTANTS[116] =  CONSTANTS[109]*log(CONSTANTS[17]/CONSTANTS[10]);
CONSTANTS[117] =  CONSTANTS[109]*log(CONSTANTS[9]/CONSTANTS[16]);
CONSTANTS[118] =  CONSTANTS[109]*log(CONSTANTS[9]/CONSTANTS[16]);
CONSTANTS[119] =  CONSTANTS[105]*0.00300000;
CONSTANTS[120] =  CONSTANTS[109]*log(CONSTANTS[9]/CONSTANTS[16]);
CONSTANTS[121] =  CONSTANTS[105]*0.00500000;
CONSTANTS[122] =  CONSTANTS[105]*0.00500000;
CONSTANTS[123] =  CONSTANTS[109]*log(CONSTANTS[9]/CONSTANTS[16]);
CONSTANTS[124] =  CONSTANTS[104]*0.00300000;
CONSTANTS[125] =  CONSTANTS[104]*0.00160000;
CONSTANTS[126] =  CONSTANTS[109]*log(CONSTANTS[8]/CONSTANTS[15]);
CONSTANTS[127] =  CONSTANTS[109]*log((CONSTANTS[9]+ CONSTANTS[8]*CONSTANTS[30])/(CONSTANTS[16]+ CONSTANTS[15]*CONSTANTS[30]));
CONSTANTS[128] =  CONSTANTS[12]*CONSTANTS[32];
CONSTANTS[129] =  CONSTANTS[12]*CONSTANTS[31];
CONSTANTS[130] =  CONSTANTS[12]*CONSTANTS[33];
CONSTANTS[131] = CONSTANTS[99]/(1.00000+pow(CONSTANTS[79]/CONSTANTS[100], CONSTANTS[80]));
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[9] = 0.1001;
RATES[10] = 0.1001;
RATES[11] = 0.1001;
RATES[12] = 0.1001;
RATES[14] = 0.1001;
RATES[19] = 0.1001;
RATES[17] = 0.1001;
RATES[18] = 0.1001;
RATES[13] = 0.1001;
RATES[15] = 0.1001;
RATES[16] = 0.1001;
RATES[21] = 0.1001;
RATES[20] = 0.1001;
}
void
computeResiduals(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES,
                 double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS)
{
resid[0] = RATES[0] -  (( - 1.00000*1.00000)/CONSTANTS[11])*(ALGEBRAIC[22]+ALGEBRAIC[4]+ALGEBRAIC[9]+ALGEBRAIC[19]+ALGEBRAIC[16]+ALGEBRAIC[13]+ALGEBRAIC[11]+ALGEBRAIC[24]+ALGEBRAIC[14]+ ALGEBRAIC[5]*2.00000*1.00000e+06*1.00000e+06*CONSTANTS[2]*CONSTANTS[110]);
resid[1] = RATES[1] -  CONSTANTS[14]*(( - 1.00000*ALGEBRAIC[4]+ - 1.00000*ALGEBRAIC[9])/( 2.00000*1.00000e+06*1.00000e+06*CONSTANTS[2]*CONSTANTS[110])+ALGEBRAIC[30]+ - 1.00000*ALGEBRAIC[5]);
resid[2] = RATES[2] - (ALGEBRAIC[0] - STATES[2])/CONSTANTS[111];
resid[3] = RATES[3] - (ALGEBRAIC[1] - STATES[3])/CONSTANTS[112];
resid[4] = RATES[4] - (ALGEBRAIC[2] - STATES[4])/CONSTANTS[113];
resid[5] = RATES[5] - (ALGEBRAIC[6] - STATES[5])/CONSTANTS[114];
resid[6] = RATES[6] - (ALGEBRAIC[7] - STATES[6])/CONSTANTS[115];
resid[7] = RATES[7] - (ALGEBRAIC[10] - STATES[7])/CONSTANTS[21];
resid[8] = RATES[8] - (ALGEBRAIC[15] - STATES[8])/CONSTANTS[119];
resid[9] = RATES[9] - (ALGEBRAIC[17] - STATES[9])/CONSTANTS[121];
resid[10] = RATES[10] - (ALGEBRAIC[18] - STATES[10])/CONSTANTS[122];
resid[11] = RATES[11] - (ALGEBRAIC[20] - STATES[11])/CONSTANTS[124];
resid[12] = RATES[12] - (ALGEBRAIC[21] - STATES[12])/CONSTANTS[125];
resid[13] = RATES[14] - (ALGEBRAIC[23] - STATES[14])/CONSTANTS[28];
resid[14] = RATES[19] - ALGEBRAIC[48] - ALGEBRAIC[45];
resid[15] = RATES[17] - ALGEBRAIC[53]+ - 1.00000*ALGEBRAIC[49]+ - 1.00000*ALGEBRAIC[51];
resid[16] = RATES[18] - ( - 1.00000*ALGEBRAIC[53]*CONSTANTS[128])/CONSTANTS[110]+ALGEBRAIC[55]+ - 1.00000*ALGEBRAIC[54];
resid[17] = RATES[13] -  CONSTANTS[14]*(( (ALGEBRAIC[29] - ALGEBRAIC[28])*CONSTANTS[128])/CONSTANTS[129]+( (ALGEBRAIC[25] - ALGEBRAIC[26])*CONSTANTS[130])/CONSTANTS[129]+( - 1.00000*ALGEBRAIC[30]*CONSTANTS[110])/CONSTANTS[129]);
resid[18] = RATES[15] -  CONSTANTS[35]*(ALGEBRAIC[28] - ALGEBRAIC[29]);
resid[19] = RATES[16] -  CONSTANTS[34]*(ALGEBRAIC[26] - ALGEBRAIC[25]);
resid[20] = RATES[21] -  (( - 1.00000*CONSTANTS[2]*CONSTANTS[128]*1.00000e+06*1.00000)/CONSTANTS[38])*(ALGEBRAIC[33]+ - 1.00000*ALGEBRAIC[46]+ALGEBRAIC[53]+ALGEBRAIC[52]+ 2.00000*ALGEBRAIC[28]);
resid[21] = RATES[20] - ( 1.00000*(CONSTANTS[86] -  STATES[20]*(STATES[13]+CONSTANTS[86])))/CONSTANTS[87];
}
void
computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[42] =  0.550000*ALGEBRAIC[40];
}
void
computeEssentialVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[0] = 1.00000/(1.00000+exp((STATES[0]+17.0000)/- 4.30000));
ALGEBRAIC[1] = 1.00000/(1.00000+exp((STATES[0]+43.0000)/8.90000));
ALGEBRAIC[2] = 1.00000 - 1.00000/(1.00000+exp(((STATES[1] - 0.000100000) - 0.000214000)/- 1.31000e-05));
ALGEBRAIC[3] =  0.500000*CONSTANTS[109]*log(CONSTANTS[7]/STATES[1]);
ALGEBRAIC[4] =  CONSTANTS[18]*STATES[3]*STATES[2]*STATES[4]*(STATES[0] - ALGEBRAIC[3]);
ALGEBRAIC[5] = ( CONSTANTS[19]*1.00000)/(1.00000+0.000298000/STATES[1]);
ALGEBRAIC[6] = 1.00000/(1.00000+exp((STATES[0]+26.0000)/- 6.00000));
ALGEBRAIC[7] = 1.00000/(1.00000+exp((STATES[0]+66.0000)/6.00000));
ALGEBRAIC[8] =  0.500000*CONSTANTS[109]*log(CONSTANTS[7]/STATES[1]);
ALGEBRAIC[9] =  CONSTANTS[20]*STATES[6]*STATES[5]*(STATES[0] - ALGEBRAIC[8]);
ALGEBRAIC[10] = 1.00000/(1.00000+pow(0.000140000/STATES[1], 3.00000));
ALGEBRAIC[11] =  CONSTANTS[22]*STATES[7]*(STATES[0] - CONSTANTS[116]);
ALGEBRAIC[12] = 1.00000/(1.00000+exp(STATES[0]/- 17.0000 -  2.00000*log(STATES[1]/0.00100000)));
ALGEBRAIC[13] =  (CONSTANTS[23]+CONSTANTS[107])*ALGEBRAIC[12]*(STATES[0] - CONSTANTS[117]);
ALGEBRAIC[14] =  CONSTANTS[24]*(STATES[0] - CONSTANTS[118]);
ALGEBRAIC[15] = 0.200000+0.800000/(1.00000+exp((STATES[0]+20.0000)/- 1.80000));
ALGEBRAIC[16] =  CONSTANTS[25]*STATES[8]*(STATES[0] - CONSTANTS[120]);
ALGEBRAIC[17] = 1.00000/(1.00000+exp((STATES[0]+25.0000)/- 7.70000));
ALGEBRAIC[18] = 0.500000+0.500000/(1.00000+exp((STATES[0]+44.8000)/4.40000));
ALGEBRAIC[19] =  CONSTANTS[26]*STATES[10]*STATES[9]*(STATES[0] - CONSTANTS[123]);
ALGEBRAIC[20] = 1.00000/(1.00000+exp((STATES[0]+47.0000)/- 4.80000));
ALGEBRAIC[21] = 1.00000/(1.00000+exp((STATES[0]+78.0000)/7.00000));
ALGEBRAIC[22] =  CONSTANTS[27]*STATES[12]*STATES[11]*(STATES[0] - CONSTANTS[126]);
ALGEBRAIC[23] = 1.00000/(1.00000+pow(7.45000e-05/STATES[13], - 85.0000));
ALGEBRAIC[24] =  CONSTANTS[29]*STATES[14]*(STATES[0] - CONSTANTS[127]);
ALGEBRAIC[25] =  ( CONSTANTS[83]*pow(CONSTANTS[36]/(CONSTANTS[36]+CONSTANTS[84]), 3.00000)*pow(STATES[13]/(STATES[13]+CONSTANTS[85]), 3.00000)*pow(STATES[20], 3.00000)+CONSTANTS[82])*(STATES[16] - STATES[13]);
ALGEBRAIC[26] = ( CONSTANTS[88]*pow(STATES[13], 2.00000))/(pow(CONSTANTS[89], 2.00000)+pow(STATES[13], 2.00000));
ALGEBRAIC[27] = ( (( CONSTANTS[90]*STATES[13])/CONSTANTS[64])*pow(1.00000+STATES[13]/CONSTANTS[64], 3.00000))/(pow(1.00000+STATES[13]/CONSTANTS[64], 4.00000)+CONSTANTS[65]/pow(1.00000+STATES[13]/CONSTANTS[59], CONSTANTS[60]));
ALGEBRAIC[28] = ( CONSTANTS[91]*(ALGEBRAIC[27] -  STATES[15]*exp( - 2.00000*CONSTANTS[108]*(STATES[21] - CONSTANTS[61])))*2.00000*CONSTANTS[108]*(STATES[21] - CONSTANTS[61]))/(1.00000 - exp( - 2.00000*CONSTANTS[108]*(STATES[21] - CONSTANTS[61])));
ALGEBRAIC[29] = ( CONSTANTS[92]*exp( CONSTANTS[66]*CONSTANTS[108]*(STATES[21] - CONSTANTS[61])))/( (1.00000+pow(CONSTANTS[62]/CONSTANTS[15], CONSTANTS[78]))*(1.00000+CONSTANTS[63]/STATES[15]));
ALGEBRAIC[30] =  CONSTANTS[93]*(STATES[13] - STATES[1]);
ALGEBRAIC[32] = STATES[21] -  2.30300*CONSTANTS[109]*CONSTANTS[37];
ALGEBRAIC[33] =  CONSTANTS[96]*ALGEBRAIC[32];
ALGEBRAIC[34] = CONSTANTS[101] - STATES[19];
ALGEBRAIC[44] =  CONSTANTS[109]*log(( CONSTANTS[39]* pow(STATES[19], 1.0 / 2))/ pow(ALGEBRAIC[34], 1.0 / 2));
ALGEBRAIC[45] = ( CONSTANTS[94]*0.500000*( ( CONSTANTS[43]*pow(10.0000,  6.00000*CONSTANTS[37])+ CONSTANTS[45]*exp( 6.00000*CONSTANTS[47]*CONSTANTS[108]))*exp( ALGEBRAIC[44]*CONSTANTS[108])+ - 1.00000*CONSTANTS[43]*exp( CONSTANTS[48]*6.00000*CONSTANTS[108]*STATES[21])+ CONSTANTS[46]*exp( CONSTANTS[108]*ALGEBRAIC[44])*exp( CONSTANTS[108]*STATES[21]*6.00000*CONSTANTS[48])))/( (1.00000+ CONSTANTS[40]*exp( CONSTANTS[108]*ALGEBRAIC[44]))*exp( CONSTANTS[108]*CONSTANTS[47]*6.00000)+ (CONSTANTS[41]+ CONSTANTS[42]*exp( CONSTANTS[108]*ALGEBRAIC[44]))*exp( CONSTANTS[108]*STATES[21]*CONSTANTS[48]*6.00000));
ALGEBRAIC[46] = ( CONSTANTS[94]*3.96600*( CONSTANTS[43]*pow(10.0000,  6.00000*CONSTANTS[37])*exp( CONSTANTS[108]*ALGEBRAIC[44])+ CONSTANTS[44]*pow(10.0000,  6.00000*CONSTANTS[37])+ - 1.00000*(CONSTANTS[43]+CONSTANTS[44])*exp( CONSTANTS[48]*CONSTANTS[108]*STATES[21]*6.00000)))/( (1.00000+ CONSTANTS[40]*exp( CONSTANTS[108]*ALGEBRAIC[44]))*exp( 6.00000*CONSTANTS[108]*CONSTANTS[47])+ (CONSTANTS[41]+ CONSTANTS[42]*exp( CONSTANTS[108]*ALGEBRAIC[44]))*exp( CONSTANTS[48]*6.00000*CONSTANTS[108]*STATES[21]));
ALGEBRAIC[39] = CONSTANTS[103] - STATES[18];
ALGEBRAIC[47] = ( CONSTANTS[67]*(1.00000+ CONSTANTS[68]*CONSTANTS[100])*CONSTANTS[69]*CONSTANTS[100]*ALGEBRAIC[39])/(1.00000+ CONSTANTS[70]*ALGEBRAIC[39]+ (1.00000+ CONSTANTS[71]*ALGEBRAIC[39])*CONSTANTS[72]*CONSTANTS[100]+ (1.00000+ CONSTANTS[73]*ALGEBRAIC[39])*CONSTANTS[74]*CONSTANTS[100]);
ALGEBRAIC[31] = 1.00000/(1.00000+ CONSTANTS[77]*(1.00000+CONSTANTS[76]/pow(1.00000+STATES[15]/CONSTANTS[75], 2.00000)));
ALGEBRAIC[48] = CONSTANTS[97]+ 6.39440*ALGEBRAIC[31]*ALGEBRAIC[47];
ALGEBRAIC[49] = CONSTANTS[97]/3.00000+ 0.840000*ALGEBRAIC[31]*ALGEBRAIC[47];
ALGEBRAIC[35] = CONSTANTS[102] - STATES[17];
ALGEBRAIC[36] =  0.800000*STATES[17];
ALGEBRAIC[50] =  CONSTANTS[109]*log(( CONSTANTS[49]*ALGEBRAIC[35])/( ALGEBRAIC[36]*CONSTANTS[50]));
ALGEBRAIC[51] = ( CONSTANTS[95]*- 1.00000*( ( CONSTANTS[54]*pow(10.0000,  3.00000*CONSTANTS[37])+ CONSTANTS[56]*exp( 3.00000*CONSTANTS[108]*CONSTANTS[47]))*exp( CONSTANTS[108]*ALGEBRAIC[50])+ - 1.00000*CONSTANTS[54]*exp( 3.00000*CONSTANTS[108]*STATES[21])+ CONSTANTS[57]*exp( CONSTANTS[108]*ALGEBRAIC[50])*exp( 3.00000*CONSTANTS[108]*STATES[21])))/( (1.00000+ CONSTANTS[51]*exp( CONSTANTS[108]*ALGEBRAIC[50]))*exp( 3.00000*CONSTANTS[108]*CONSTANTS[47])+ (CONSTANTS[52]+ CONSTANTS[53]*exp( CONSTANTS[108]*ALGEBRAIC[50]))*exp( 3.00000*CONSTANTS[108]*STATES[21]));
ALGEBRAIC[52] = ( - 1.00000*CONSTANTS[95]*3.00000*( CONSTANTS[54]*pow(10.0000,  3.00000*CONSTANTS[37])*exp( CONSTANTS[108]*ALGEBRAIC[50])+ CONSTANTS[55]*pow(10.0000,  3.00000*CONSTANTS[37])+ - 1.00000*(CONSTANTS[54]+CONSTANTS[55])*exp( 3.00000*CONSTANTS[108]*STATES[21])))/( (1.00000+ CONSTANTS[51]*exp( CONSTANTS[108]*ALGEBRAIC[50]))*exp( 3.00000*CONSTANTS[108]*CONSTANTS[47])+ (CONSTANTS[52]+ CONSTANTS[53]*exp( CONSTANTS[108]*ALGEBRAIC[50]))*exp( 3.00000*CONSTANTS[108]*STATES[21]));
ALGEBRAIC[37] =  0.450000*ALGEBRAIC[36];
ALGEBRAIC[38] =  0.0500000*ALGEBRAIC[35];
ALGEBRAIC[40] =  0.300000*STATES[18];
ALGEBRAIC[41] =  0.450000*ALGEBRAIC[40];
ALGEBRAIC[43] =  0.0500000*ALGEBRAIC[39];
ALGEBRAIC[53] = ( CONSTANTS[98]*(1.00000 -  (( ALGEBRAIC[43]*ALGEBRAIC[37])/( ALGEBRAIC[41]*ALGEBRAIC[38]))*exp( - 1.00000*CONSTANTS[108]*STATES[21])))/( (1.00000+ (ALGEBRAIC[43]/ALGEBRAIC[41])*exp( - 1.00000*CONSTANTS[58]*CONSTANTS[108]*STATES[21]))*(1.00000+ALGEBRAIC[37]/ALGEBRAIC[38]));
ALGEBRAIC[54] =  0.150000*ALGEBRAIC[47];
ALGEBRAIC[55] =  CONSTANTS[81]*ALGEBRAIC[39]+CONSTANTS[131];
}
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;
}
void
computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES,
             double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS)
{
}