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 49 entries in the algebraic variable array.
   There are a total of 18 entries in each of the rate and state variable arrays.
   There are a total of 46 entries in the constant variable array.
 */
/*
 * VOI is time in component environment (second).
 * CONSTANTS[0] is R in component constants (joule_per_kilomole_kelvin).
 * CONSTANTS[1] is T in component constants (kelvin).
 * CONSTANTS[2] is F in component constants (coulomb_per_mole).
 * STATES[0] is E in component membrane (millivolt).
 * CONSTANTS[3] is C in component membrane (nanoF).
 * ALGEBRAIC[48] is i_tot in component membrane (picoA).
 * ALGEBRAIC[3] is i_CaL in component L_type_calcium_current (picoA).
 * ALGEBRAIC[7] is i_CaT in component T_type_calcium_current (picoA).
 * ALGEBRAIC[12] is i_Na in component fast_sodium_current (picoA).
 * ALGEBRAIC[19] is i_K in component delayed_rectifying_potassium_current (picoA).
 * ALGEBRAIC[24] is i_f in component hyperpolarising_activated_current (picoA).
 * ALGEBRAIC[27] is i_p in component sodium_potassium_pump (picoA).
 * ALGEBRAIC[42] is i_NaCa in component sodium_calcium_exchange_current (picoA).
 * ALGEBRAIC[43] is i_bNa in component background_sodium_current (picoA).
 * ALGEBRAIC[44] is i_bK in component background_potassium_current (picoA).
 * ALGEBRAIC[0] is E_Ca in component reversal_potentials (millivolt).
 * ALGEBRAIC[1] is E_Na in component reversal_potentials (millivolt).
 * ALGEBRAIC[2] is E_K in component reversal_potentials (millivolt).
 * STATES[1] is Cai in component ion_concentrations (millimolar).
 * STATES[2] is Cao in component ion_concentrations (millimolar).
 * STATES[3] is Nai in component ion_concentrations (millimolar).
 * STATES[4] is Nao in component ion_concentrations (millimolar).
 * STATES[5] is Ki in component ion_concentrations (millimolar).
 * STATES[6] is Ko in component ion_concentrations (millimolar).
 * CONSTANTS[4] is g_CaL in component L_type_calcium_current (nanoS).
 * STATES[7] is dL in component L_type_calcium_current_d_gate (dimensionless).
 * STATES[8] is fL in component L_type_calcium_current_f_gate (dimensionless).
 * STATES[9] is fL2 in component L_type_calcium_current_f2_gate (dimensionless).
 * ALGEBRAIC[4] is dL_infinity in component L_type_calcium_current_d_gate (dimensionless).
 * CONSTANTS[5] is tau_dL in component L_type_calcium_current_d_gate (second).
 * ALGEBRAIC[5] is fL_infinity in component L_type_calcium_current_f_gate (dimensionless).
 * ALGEBRAIC[6] is tau_fL in component L_type_calcium_current_f_gate (second).
 * CONSTANTS[6] is alpha_fL2 in component L_type_calcium_current_f2_gate (per_second).
 * CONSTANTS[7] is beta_fL2 in component L_type_calcium_current_f2_gate (per_millimolar_second).
 * CONSTANTS[8] is g_CaT in component T_type_calcium_current (nanoS).
 * STATES[10] is dT in component T_type_calcium_current_d_gate (dimensionless).
 * STATES[11] is fT in component T_type_calcium_current_f_gate (dimensionless).
 * ALGEBRAIC[8] is dT_infinity in component T_type_calcium_current_d_gate (dimensionless).
 * ALGEBRAIC[9] is tau_dT in component T_type_calcium_current_d_gate (second).
 * ALGEBRAIC[10] is fT_infinity in component T_type_calcium_current_f_gate (dimensionless).
 * ALGEBRAIC[11] is tau_fT in component T_type_calcium_current_f_gate (second).
 * CONSTANTS[9] is g_Na in component fast_sodium_current (nanoS).
 * STATES[12] is m in component fast_sodium_current_m_gate (dimensionless).
 * STATES[13] is h in component fast_sodium_current_h_gate (dimensionless).
 * ALGEBRAIC[13] is alpha_m in component fast_sodium_current_m_gate (per_second).
 * ALGEBRAIC[14] is beta_m in component fast_sodium_current_m_gate (per_second).
 * ALGEBRAIC[15] is alpha_h in component fast_sodium_current_h_gate (per_second).
 * ALGEBRAIC[16] is beta_h in component fast_sodium_current_h_gate (per_second).
 * ALGEBRAIC[17] is i_KK in component delayed_rectifying_potassium_current (picoA).
 * ALGEBRAIC[18] is i_KNa in component delayed_rectifying_potassium_current (picoA).
 * CONSTANTS[10] is Kk in component delayed_rectifying_potassium_current (picoA_per_millimolar).
 * CONSTANTS[11] is P_KNa in component delayed_rectifying_potassium_current (dimensionless).
 * STATES[14] is x in component delayed_rectifying_potassium_current_x_gate (dimensionless).
 * ALGEBRAIC[20] is x_infinity in component delayed_rectifying_potassium_current_x_gate (dimensionless).
 * ALGEBRAIC[21] is tau_x in component delayed_rectifying_potassium_current_x_gate (second).
 * ALGEBRAIC[22] is i_fNa in component hyperpolarising_activated_current (picoA).
 * ALGEBRAIC[23] is i_fK in component hyperpolarising_activated_current (picoA).
 * CONSTANTS[12] is Kmf in component hyperpolarising_activated_current (millimolar).
 * CONSTANTS[13] is g_fNa in component hyperpolarising_activated_current (nanoS).
 * CONSTANTS[14] is g_fK in component hyperpolarising_activated_current (nanoS).
 * STATES[15] is y in component hyperpolarising_activated_current_y_gate (dimensionless).
 * ALGEBRAIC[25] is alpha_y in component hyperpolarising_activated_current_y_gate (per_second).
 * ALGEBRAIC[26] is beta_y in component hyperpolarising_activated_current_y_gate (per_second).
 * CONSTANTS[15] is KmNa in component sodium_potassium_pump (millimolar).
 * CONSTANTS[16] is KmK in component sodium_potassium_pump (millimolar).
 * CONSTANTS[17] is i_pmax in component sodium_potassium_pump (picoA).
 * CONSTANTS[18] is kNaCa in component sodium_calcium_exchange_current (picoA).
 * ALGEBRAIC[38] is x1 in component sodium_calcium_exchange_current (dimensionless).
 * ALGEBRAIC[39] is x2 in component sodium_calcium_exchange_current (dimensionless).
 * ALGEBRAIC[40] is x3 in component sodium_calcium_exchange_current (dimensionless).
 * ALGEBRAIC[41] is x4 in component sodium_calcium_exchange_current (dimensionless).
 * ALGEBRAIC[34] is k41 in component sodium_calcium_exchange_current (dimensionless).
 * ALGEBRAIC[32] is k34 in component sodium_calcium_exchange_current (dimensionless).
 * ALGEBRAIC[30] is k23 in component sodium_calcium_exchange_current (dimensionless).
 * ALGEBRAIC[31] is k21 in component sodium_calcium_exchange_current (dimensionless).
 * ALGEBRAIC[29] is k32 in component sodium_calcium_exchange_current (dimensionless).
 * ALGEBRAIC[37] is k43 in component sodium_calcium_exchange_current (dimensionless).
 * ALGEBRAIC[36] is k12 in component sodium_calcium_exchange_current (dimensionless).
 * ALGEBRAIC[35] is k14 in component sodium_calcium_exchange_current (dimensionless).
 * CONSTANTS[19] is Qci in component sodium_calcium_exchange_current (dimensionless).
 * CONSTANTS[20] is Qn in component sodium_calcium_exchange_current (dimensionless).
 * CONSTANTS[21] is Qco in component sodium_calcium_exchange_current (dimensionless).
 * CONSTANTS[22] is K3ni in component sodium_calcium_exchange_current (millimolar).
 * CONSTANTS[23] is Kci in component sodium_calcium_exchange_current (millimolar).
 * CONSTANTS[24] is K1ni in component sodium_calcium_exchange_current (millimolar).
 * CONSTANTS[25] is K2ni in component sodium_calcium_exchange_current (millimolar).
 * CONSTANTS[26] is Kcni in component sodium_calcium_exchange_current (millimolar).
 * CONSTANTS[27] is K3no in component sodium_calcium_exchange_current (millimolar).
 * CONSTANTS[28] is K1no in component sodium_calcium_exchange_current (millimolar).
 * CONSTANTS[29] is K2no in component sodium_calcium_exchange_current (millimolar).
 * CONSTANTS[30] is Kco in component sodium_calcium_exchange_current (millimolar).
 * ALGEBRAIC[28] is do in component sodium_calcium_exchange_current (dimensionless).
 * ALGEBRAIC[33] is di in component sodium_calcium_exchange_current (dimensionless).
 * CONSTANTS[31] is g_Nab in component background_sodium_current (nanoS).
 * CONSTANTS[32] is KbK in component background_potassium_current (picoA_per_millimolar).
 * ALGEBRAIC[45] is i_up in component sarcoplasmic_reticulum_kinetics (picoA).
 * ALGEBRAIC[46] is i_tr in component sarcoplasmic_reticulum_kinetics (picoA).
 * ALGEBRAIC[47] is i_rel in component sarcoplasmic_reticulum_kinetics (picoA).
 * CONSTANTS[33] is V_i in component ion_concentrations (microlitre).
 * CONSTANTS[43] is V_rel in component sarcoplasmic_reticulum_kinetics (microlitre).
 * CONSTANTS[45] is V_up in component sarcoplasmic_reticulum_kinetics (microlitre).
 * CONSTANTS[34] is i_up_max in component sarcoplasmic_reticulum_kinetics (picoA).
 * CONSTANTS[35] is KmCaup in component sarcoplasmic_reticulum_kinetics (millimolar).
 * CONSTANTS[36] is KmCarel in component sarcoplasmic_reticulum_kinetics (millimolar).
 * CONSTANTS[37] is tau_rel in component sarcoplasmic_reticulum_kinetics (second).
 * CONSTANTS[38] is tau_tr in component sarcoplasmic_reticulum_kinetics (second).
 * STATES[16] is Caup in component ion_concentrations (millimolar).
 * STATES[17] is Carel in component ion_concentrations (millimolar).
 * CONSTANTS[44] is V_e in component ion_concentrations (microlitre).
 * CONSTANTS[39] is tau_b in component ion_concentrations (second).
 * CONSTANTS[40] is Nab in component ion_concentrations (millimolar).
 * CONSTANTS[41] is Cab in component ion_concentrations (millimolar).
 * CONSTANTS[42] is Kb in component ion_concentrations (millimolar).
 * RATES[0] is d/dt E in component membrane (millivolt).
 * RATES[7] is d/dt dL in component L_type_calcium_current_d_gate (dimensionless).
 * RATES[8] is d/dt fL in component L_type_calcium_current_f_gate (dimensionless).
 * RATES[9] is d/dt fL2 in component L_type_calcium_current_f2_gate (dimensionless).
 * RATES[10] is d/dt dT in component T_type_calcium_current_d_gate (dimensionless).
 * RATES[11] is d/dt fT in component T_type_calcium_current_f_gate (dimensionless).
 * RATES[12] is d/dt m in component fast_sodium_current_m_gate (dimensionless).
 * RATES[13] is d/dt h in component fast_sodium_current_h_gate (dimensionless).
 * RATES[14] is d/dt x in component delayed_rectifying_potassium_current_x_gate (dimensionless).
 * RATES[15] is d/dt y in component hyperpolarising_activated_current_y_gate (dimensionless).
 * RATES[3] is d/dt Nai in component ion_concentrations (millimolar).
 * RATES[4] is d/dt Nao in component ion_concentrations (millimolar).
 * RATES[5] is d/dt Ki in component ion_concentrations (millimolar).
 * RATES[6] is d/dt Ko in component ion_concentrations (millimolar).
 * RATES[1] is d/dt Cai in component ion_concentrations (millimolar).
 * RATES[2] is d/dt Cao in component ion_concentrations (millimolar).
 * RATES[16] is d/dt Caup in component ion_concentrations (millimolar).
 * RATES[17] is d/dt Carel in component ion_concentrations (millimolar).
 * There are a total of 0 condition variables.
 */
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
CONSTANTS[0] = 8314.472;
CONSTANTS[1] = 310;
CONSTANTS[2] = 96485.3415;
STATES[0] = -64.9;
CONSTANTS[3] = 3.2e-5;
STATES[1] = 0.000034;
STATES[2] = 2.0004;
STATES[3] = 7.4994;
STATES[4] = 139.9929;
STATES[5] = 140.0073;
STATES[6] = 5.4243;
CONSTANTS[4] = 0.4;
STATES[7] = 0.0001;
STATES[8] = 0.1505;
STATES[9] = 0.219;
CONSTANTS[5] = 0.002;
CONSTANTS[6] = 3;
CONSTANTS[7] = 40000;
CONSTANTS[8] = 0.085;
STATES[10] = 0.001;
STATES[11] = 0.1328;
CONSTANTS[9] = 0.25;
STATES[12] = 0.0139;
STATES[13] = 0.0087;
CONSTANTS[10] = 0.00026;
CONSTANTS[11] = 0.035;
STATES[14] = 0.5682;
CONSTANTS[12] = 10.3;
CONSTANTS[13] = 0.0081;
CONSTANTS[14] = 0.0135;
STATES[15] = 0.0287;
CONSTANTS[15] = 40;
CONSTANTS[16] = 1;
CONSTANTS[17] = 0.226;
CONSTANTS[18] = 4;
CONSTANTS[19] = 0.1369;
CONSTANTS[20] = 0.4315;
CONSTANTS[21] = 0;
CONSTANTS[22] = 26.44;
CONSTANTS[23] = 0.0207;
CONSTANTS[24] = 395.3;
CONSTANTS[25] = 2.289;
CONSTANTS[26] = 26.44;
CONSTANTS[27] = 4.663;
CONSTANTS[28] = 1628;
CONSTANTS[29] = 561.4;
CONSTANTS[30] = 3.663;
CONSTANTS[31] = 0.00024;
CONSTANTS[32] = 0.00007;
CONSTANTS[33] = 2.5e-6;
CONSTANTS[34] = 0.0212;
CONSTANTS[35] = 0.0005;
CONSTANTS[36] = 0.001;
CONSTANTS[37] = 0.005;
CONSTANTS[38] = 0.4;
STATES[16] = 0.5832;
STATES[17] = 0.1101;
CONSTANTS[39] = 0.1;
CONSTANTS[40] = 140;
CONSTANTS[41] = 2;
CONSTANTS[42] = 5.4;
CONSTANTS[43] =  0.00600000*CONSTANTS[33];
CONSTANTS[44] =  0.200000*CONSTANTS[33];
CONSTANTS[45] =  0.0140000*CONSTANTS[33];
RATES[0] = 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[13] = 0.1001;
RATES[14] = 0.1001;
RATES[15] = 0.1001;
RATES[3] = 0.1001;
RATES[4] = 0.1001;
RATES[5] = 0.1001;
RATES[6] = 0.1001;
RATES[1] = 0.1001;
RATES[2] = 0.1001;
RATES[16] = 0.1001;
RATES[17] = 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[48]/CONSTANTS[3];
resid[1] = RATES[7] - (ALGEBRAIC[4] - STATES[7])/CONSTANTS[5];
resid[2] = RATES[8] - (ALGEBRAIC[5] - STATES[8])/ALGEBRAIC[6];
resid[3] = RATES[9] -  CONSTANTS[6]*(1.00000 - STATES[9]) -  CONSTANTS[7]*STATES[1]*STATES[9];
resid[4] = RATES[10] - (ALGEBRAIC[8] - STATES[10])/ALGEBRAIC[9];
resid[5] = RATES[11] - (ALGEBRAIC[10] - STATES[11])/ALGEBRAIC[11];
resid[6] = RATES[12] -  ALGEBRAIC[13]*(1.00000 - STATES[12]) -  ALGEBRAIC[14]*STATES[12];
resid[7] = RATES[13] -  ALGEBRAIC[15]*(1.00000 - STATES[13]) -  ALGEBRAIC[16]*STATES[13];
resid[8] = RATES[14] - (ALGEBRAIC[20] - STATES[14])/ALGEBRAIC[21];
resid[9] = RATES[15] -  ALGEBRAIC[25]*(1.00000 - STATES[15]) -  ALGEBRAIC[26]*STATES[15];
resid[10] = RATES[3] - ( - 1.00000*(ALGEBRAIC[43]+ALGEBRAIC[22]+ALGEBRAIC[12]+ 3.00000*ALGEBRAIC[27]+ 3.00000*ALGEBRAIC[42]+ALGEBRAIC[18]))/( CONSTANTS[2]*1.00000*CONSTANTS[33]);
resid[11] = RATES[4] - ( 1.00000*(ALGEBRAIC[43]+ALGEBRAIC[22]+ALGEBRAIC[12]+ 3.00000*ALGEBRAIC[27]+ 3.00000*ALGEBRAIC[42]+ALGEBRAIC[18]))/( CONSTANTS[2]*1.00000*CONSTANTS[44])+(CONSTANTS[40] - STATES[4])/CONSTANTS[39];
resid[12] = RATES[5] - ( - 1.00000*(((ALGEBRAIC[17]+ALGEBRAIC[23]) -  2.00000*ALGEBRAIC[27])+ALGEBRAIC[44]))/( CONSTANTS[2]*1.00000*CONSTANTS[33]);
resid[13] = RATES[6] - ( 1.00000*(((ALGEBRAIC[17]+ALGEBRAIC[23]) -  2.00000*ALGEBRAIC[27])+ALGEBRAIC[44]))/( CONSTANTS[2]*1.00000*CONSTANTS[44])+(CONSTANTS[42] - STATES[6])/CONSTANTS[39];
resid[14] = RATES[1] - ( - 1.00000*(((ALGEBRAIC[3]+ALGEBRAIC[7]) -  2.00000*ALGEBRAIC[42])+ALGEBRAIC[45]+- ALGEBRAIC[47]))/( 2.00000*CONSTANTS[2]*1.00000*CONSTANTS[33]);
resid[15] = RATES[2] - ( 1.00000*((ALGEBRAIC[3]+ALGEBRAIC[7]) -  2.00000*ALGEBRAIC[42]))/( 2.00000*CONSTANTS[2]*1.00000*CONSTANTS[44])+(CONSTANTS[41] - STATES[2])/CONSTANTS[39];
resid[16] = RATES[16] - ( 1.00000*(ALGEBRAIC[45] - ALGEBRAIC[46]))/( 2.00000*1.00000*CONSTANTS[45]*CONSTANTS[2]);
resid[17] = RATES[17] - ( 1.00000*(ALGEBRAIC[46] - ALGEBRAIC[47]))/( 2.00000*1.00000*CONSTANTS[43]*CONSTANTS[2]);
}
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] =  (( CONSTANTS[0]*CONSTANTS[1])/( 2.00000*CONSTANTS[2]))*log(STATES[2]/STATES[1]);
ALGEBRAIC[3] =  CONSTANTS[4]*STATES[7]*STATES[8]*STATES[9]*((STATES[0] - ALGEBRAIC[0])+75.0000);
ALGEBRAIC[4] = 1.00000/(1.00000+exp((STATES[0]+6.60000)/- 6.60000));
ALGEBRAIC[5] = 1.00000/(1.00000+exp((STATES[0]+25.0000)/6.00000));
ALGEBRAIC[6] = 0.0310000+1.00000/(1.00000+exp((STATES[0]+37.6000)/8.10000));
ALGEBRAIC[7] =  CONSTANTS[8]*STATES[10]*STATES[11]*((STATES[0] - ALGEBRAIC[0])+75.0000);
ALGEBRAIC[8] = 1.00000/(1.00000+exp((STATES[0]+23.0000)/- 6.10000));
ALGEBRAIC[9] = 0.000600000+0.00540000/(1.00000+exp( 0.0300000*(STATES[0]+100.000)));
ALGEBRAIC[10] = 1.00000/(1.00000+exp((STATES[0]+75.0000)/6.60000));
ALGEBRAIC[11] = 0.00100000+0.0400000/(1.00000+exp( 0.0800000*(STATES[0]+65.0000)));
ALGEBRAIC[1] =  (( CONSTANTS[0]*CONSTANTS[1])/CONSTANTS[2])*log(STATES[4]/STATES[3]);
ALGEBRAIC[12] =  CONSTANTS[9]*pow(STATES[12], 3.00000)*STATES[13]*(STATES[0] - ALGEBRAIC[1]);
ALGEBRAIC[13] = ( 200.000*(STATES[0]+34.3000))/(1.00000 - exp( - 0.0900000*(STATES[0]+34.3000)));
ALGEBRAIC[14] =  8000.00*exp( - 0.150000*(STATES[0]+56.2000));
ALGEBRAIC[15] =  32.4000*exp( - 0.140000*(STATES[0]+93.4000));
ALGEBRAIC[16] = 709.000/(1.00000+ 4.20000*exp( - 0.0600000*(STATES[0]+45.4000)));
ALGEBRAIC[17] =  STATES[14]*CONSTANTS[10]*pow(STATES[6]/1.00000, 0.590000)*(STATES[5] -  STATES[6]*exp(( - STATES[0]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1])));
ALGEBRAIC[18] =  STATES[14]*CONSTANTS[10]*CONSTANTS[11]*pow(STATES[6]/1.00000, 0.590000)*(STATES[3] -  STATES[4]*exp(( - STATES[0]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1])));
ALGEBRAIC[20] = 1.00000/(1.00000+exp((STATES[0]+25.1000)/- 7.40000));
ALGEBRAIC[21] = 1.00000/( 17.0000*exp( 0.0398000*STATES[0])+ 0.211000*exp( - 0.0510000*STATES[0]));
ALGEBRAIC[22] =  (( STATES[15]*pow(STATES[6], 1.83000))/(pow(STATES[6], 1.83000)+pow(CONSTANTS[12], 1.83000)))*CONSTANTS[13]*(STATES[0] - ALGEBRAIC[1]);
ALGEBRAIC[2] =  (( CONSTANTS[0]*CONSTANTS[1])/CONSTANTS[2])*log(STATES[6]/STATES[5]);
ALGEBRAIC[23] =  (( STATES[15]*pow(STATES[6], 1.83000))/(pow(STATES[6], 1.83000)+pow(CONSTANTS[12], 1.83000)))*CONSTANTS[14]*(STATES[0] - ALGEBRAIC[2]);
ALGEBRAIC[25] = ( 0.360000*(STATES[0]+137.800))/(exp( 0.0660000*(STATES[0]+137.800)) - 1.00000);
ALGEBRAIC[26] = ( 0.100000*(STATES[0]+76.3000))/(1.00000 - exp( - 0.210000*(STATES[0]+76.3000)));
ALGEBRAIC[27] =  (( (( CONSTANTS[17]*STATES[3])/(STATES[3]+CONSTANTS[15]))*STATES[6])/(STATES[6]+CONSTANTS[16]))*(1.00000 - pow((STATES[0] - 40.0000)/211.000, 2.00000));
ALGEBRAIC[34] = exp(( - CONSTANTS[20]*STATES[0]*CONSTANTS[2])/( 2.00000*CONSTANTS[0]*CONSTANTS[1]));
ALGEBRAIC[32] = STATES[4]/(CONSTANTS[27]+STATES[4]);
ALGEBRAIC[28] = 1.00000+STATES[2]/CONSTANTS[30]+ (STATES[2]/CONSTANTS[30])*exp(( CONSTANTS[21]*STATES[0]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1]))+STATES[4]/CONSTANTS[28]+pow(STATES[4], 2.00000)/( CONSTANTS[28]*CONSTANTS[29])+pow(STATES[4], 3.00000)/( CONSTANTS[28]*CONSTANTS[29]*CONSTANTS[27]);
ALGEBRAIC[30] = ( (pow(STATES[4], 2.00000)/( CONSTANTS[28]*CONSTANTS[29])+pow(STATES[4], 3.00000)/( CONSTANTS[28]*CONSTANTS[29]*CONSTANTS[27]))*exp(( - CONSTANTS[20]*STATES[0]*CONSTANTS[2])/( 2.00000*CONSTANTS[0]*CONSTANTS[1])))/ALGEBRAIC[28];
ALGEBRAIC[31] = ( (STATES[2]/CONSTANTS[30])*exp(( - CONSTANTS[21]*STATES[0]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1])))/ALGEBRAIC[28];
ALGEBRAIC[29] = exp(( CONSTANTS[20]*STATES[0]*CONSTANTS[2])/( 2.00000*CONSTANTS[0]*CONSTANTS[1]));
ALGEBRAIC[37] = STATES[3]/(CONSTANTS[22]+STATES[3]);
ALGEBRAIC[38] =  ALGEBRAIC[34]*ALGEBRAIC[32]*(ALGEBRAIC[30]+ALGEBRAIC[31])+ ALGEBRAIC[31]*ALGEBRAIC[29]*(ALGEBRAIC[37]+ALGEBRAIC[34]);
ALGEBRAIC[33] = 1.00000+STATES[1]/CONSTANTS[23]+ (STATES[1]/CONSTANTS[23])*exp(( - CONSTANTS[19]*STATES[0]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1]))+( STATES[1]*STATES[3])/( CONSTANTS[23]*CONSTANTS[26])+STATES[3]/CONSTANTS[24]+pow(STATES[3], 2.00000)/( CONSTANTS[24]*CONSTANTS[25])+pow(STATES[3], 3.00000)/( CONSTANTS[24]*CONSTANTS[25]*CONSTANTS[22]);
ALGEBRAIC[36] = ( (STATES[1]/CONSTANTS[23])*exp(( - CONSTANTS[19]*STATES[0]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1])))/ALGEBRAIC[33];
ALGEBRAIC[35] = ( (pow(STATES[3], 2.00000)/( CONSTANTS[24]*CONSTANTS[25])+pow(STATES[3], 3.00000)/( CONSTANTS[24]*CONSTANTS[25]*CONSTANTS[22]))*exp(( CONSTANTS[20]*STATES[0]*CONSTANTS[2])/( 2.00000*CONSTANTS[0]*CONSTANTS[1])))/ALGEBRAIC[33];
ALGEBRAIC[39] =  ALGEBRAIC[29]*ALGEBRAIC[37]*(ALGEBRAIC[35]+ALGEBRAIC[36])+ ALGEBRAIC[34]*ALGEBRAIC[36]*(ALGEBRAIC[32]+ALGEBRAIC[29]);
ALGEBRAIC[40] =  ALGEBRAIC[35]*ALGEBRAIC[37]*(ALGEBRAIC[30]+ALGEBRAIC[31])+ ALGEBRAIC[36]*ALGEBRAIC[30]*(ALGEBRAIC[37]+ALGEBRAIC[34]);
ALGEBRAIC[41] =  ALGEBRAIC[30]*ALGEBRAIC[32]*(ALGEBRAIC[35]+ALGEBRAIC[36])+ ALGEBRAIC[35]*ALGEBRAIC[31]*(ALGEBRAIC[32]+ALGEBRAIC[29]);
ALGEBRAIC[42] = ( CONSTANTS[18]*( ALGEBRAIC[39]*ALGEBRAIC[31] -  ALGEBRAIC[38]*ALGEBRAIC[36]))/(ALGEBRAIC[38]+ALGEBRAIC[39]+ALGEBRAIC[40]+ALGEBRAIC[41]);
ALGEBRAIC[43] =  CONSTANTS[31]*(STATES[0] - ALGEBRAIC[1]);
ALGEBRAIC[44] =  CONSTANTS[32]*pow(STATES[6]/1.00000, 0.410000)*(STATES[5] -  STATES[6]*exp(( - STATES[0]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1])));
ALGEBRAIC[45] = ( CONSTANTS[34]*pow(STATES[1], 2.00000))/(pow(STATES[1], 2.00000)+pow(CONSTANTS[35], 2.00000));
ALGEBRAIC[46] =  (( 2.00000*1.00000*CONSTANTS[43]*CONSTANTS[2])/( 1.00000*CONSTANTS[38]))*STATES[16];
ALGEBRAIC[47] = ( (( 2.00000*1.00000*CONSTANTS[43]*CONSTANTS[2])/( 1.00000*CONSTANTS[37]))*STATES[17]*pow(STATES[1], 2.00000))/(pow(STATES[1], 2.00000)+pow(CONSTANTS[36], 2.00000));
ALGEBRAIC[19] = ALGEBRAIC[17]+ALGEBRAIC[18];
ALGEBRAIC[24] = ALGEBRAIC[23]+ALGEBRAIC[22];
ALGEBRAIC[48] = ALGEBRAIC[3]+ALGEBRAIC[7]+ALGEBRAIC[12]+ALGEBRAIC[19]+ALGEBRAIC[24]+ALGEBRAIC[27]+ALGEBRAIC[42]+ALGEBRAIC[43]+ALGEBRAIC[44];
}
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;
}
void
computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES,
             double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS)
{
}