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 51 entries in the algebraic variable array.
   There are a total of 13 entries in each of the rate and state variable arrays.
   There are a total of 58 entries in the constant variable array.
 */
/*
 * VOI is t in component environment (ms).
 * CONSTANTS[0] is R in component environment (mJ_per_mole_kelvin).
 * CONSTANTS[1] is T in component environment (kelvin).
 * CONSTANTS[2] is F in component environment (coulomb_per_mole).
 * CONSTANTS[48] is V_tau in component environment (mV).
 * CONSTANTS[3] is Ca_o in component environment (mM).
 * CONSTANTS[4] is Na_o in component environment (mM).
 * CONSTANTS[5] is K_o in component environment (mM).
 * CONSTANTS[49] is vol_cyt in component environment (pl).
 * CONSTANTS[6] is vol_pmu in component environment (pl).
 * CONSTANTS[7] is fr_cyt in component environment (dimensionless).
 * STATES[0] is V in component Membrane (mV).
 * ALGEBRAIC[0] is VD in component Membrane (dimensionless).
 * CONSTANTS[8] is C_sp in component Membrane (pF_per_sqcm).
 * STATES[1] is Ca_i in component Cytosol (mM).
 * STATES[2] is Na_i in component Cytosol (mM).
 * STATES[3] is K_i in component Cytosol (mM).
 * ALGEBRAIC[1] is V_Ca in component Membrane (dimensionless).
 * ALGEBRAIC[2] is V_Na in component Membrane (dimensionless).
 * ALGEBRAIC[3] is V_K in component Membrane (dimensionless).
 * CONSTANTS[55] is A_pmu in component Membrane (sqcm).
 * CONSTANTS[9] is SVR_pmu in component Membrane (per_cm).
 * ALGEBRAIC[50] is J_Ca in component calcium_dynamics (mM_per_ms).
 * ALGEBRAIC[45] is J_Na in component sodium_dynamics (mM_per_ms).
 * ALGEBRAIC[47] is J_K in component potassium_dynamics (mM_per_ms).
 * CONSTANTS[10] is atp in component Cytosol (mM).
 * ALGEBRAIC[49] is J_ca in component calcium_dynamics (mM_per_ms).
 * ALGEBRAIC[33] is I_CaL in component L_type_Ca_channel (pA).
 * ALGEBRAIC[48] is I_pmca in component PMCA (pA).
 * ALGEBRAIC[41] is I_xm in component NaCa (pA).
 * ALGEBRAIC[31] is J_calb in component calcium_buffer_dynamics (mM_per_ms).
 * ALGEBRAIC[32] is J_cam in component calcium_buffer_dynamics (mM_per_ms).
 * ALGEBRAIC[12] is I_Na in component transient_Na_channel (pA).
 * ALGEBRAIC[13] is I_Nalk in component Leak_Na_channel (pA).
 * ALGEBRAIC[18] is I_NaHCN in component HCN_channel (pA).
 * ALGEBRAIC[42] is I_nk in component sodium_pump (pA).
 * ALGEBRAIC[46] is I_K in component potassium_dynamics (pA).
 * ALGEBRAIC[20] is I_Ksk in component SK_K_channel (pA).
 * ALGEBRAIC[36] is I_Kdr in component DR_K_channel (pA).
 * ALGEBRAIC[37] is I_Kir in component IR_K_channel (pA).
 * STATES[4] is Calb in component calcium_buffer_dynamics (mM).
 * STATES[5] is Cam in component calcium_buffer_dynamics (mM).
 * CONSTANTS[11] is Calbtot in component calcium_buffer_dynamics (mM).
 * CONSTANTS[12] is Camtot in component calcium_buffer_dynamics (mM).
 * ALGEBRAIC[8] is CaCalb in component calcium_buffer_dynamics (mM).
 * ALGEBRAIC[9] is CaCam in component calcium_buffer_dynamics (mM).
 * CONSTANTS[13] is kcal_1 in component calcium_buffer_dynamics (per_mM_ms).
 * CONSTANTS[14] is kcal_2 in component calcium_buffer_dynamics (per_ms).
 * ALGEBRAIC[4] is kcam_cb in component calcium_buffer_dynamics (per_ms).
 * CONSTANTS[15] is kcam_cd in component calcium_buffer_dynamics (per_ms).
 * ALGEBRAIC[5] is kcam_nb in component calcium_buffer_dynamics (per_ms).
 * CONSTANTS[16] is kcam_nd in component calcium_buffer_dynamics (per_ms).
 * ALGEBRAIC[6] is alpha_cam in component calcium_buffer_dynamics (per_ms).
 * ALGEBRAIC[7] is beta_cam in component calcium_buffer_dynamics (per_ms).
 * STATES[6] is m_cal in component L_type_Ca_channel (dimensionless).
 * ALGEBRAIC[10] is h_cal in component L_type_Ca_channel (dimensionless).
 * CONSTANTS[17] is g_cal in component L_type_Ca_channel (pA_per_mM).
 * CONSTANTS[18] is g_na in component transient_Na_channel (pA_per_mM).
 * ALGEBRAIC[11] is O_na in component transient_Na_channel (dimensionless).
 * STATES[7] is m_na in component transient_Na_channel (dimensionless).
 * STATES[8] is h_na in component transient_Na_channel (dimensionless).
 * CONSTANTS[19] is A_mna in component transient_Na_channel (per_ms).
 * CONSTANTS[20] is B_mna in component transient_Na_channel (per_ms).
 * CONSTANTS[21] is A_hna in component transient_Na_channel (per_ms).
 * CONSTANTS[22] is B_hna in component transient_Na_channel (per_ms).
 * CONSTANTS[23] is za_mna in component transient_Na_channel (dimensionless).
 * CONSTANTS[24] is zb_mna in component transient_Na_channel (dimensionless).
 * CONSTANTS[25] is za_hna in component transient_Na_channel (dimensionless).
 * CONSTANTS[26] is zb_hna in component transient_Na_channel (dimensionless).
 * CONSTANTS[27] is g_nalk in component Leak_Na_channel (pA_per_mM).
 * CONSTANTS[28] is g_nahcn in component HCN_channel (pA_per_mM).
 * STATES[9] is O_hcn in component HCN_channel (dimensionless).
 * ALGEBRAIC[34] is kf_hcn in component HCN_channel (per_ms).
 * ALGEBRAIC[35] is kr_hcn in component HCN_channel (per_ms).
 * ALGEBRAIC[14] is kf_free in component HCN_channel (per_ms).
 * ALGEBRAIC[15] is kr_free in component HCN_channel (per_ms).
 * ALGEBRAIC[16] is kf_bnd in component HCN_channel (per_ms).
 * ALGEBRAIC[17] is kr_bnd in component HCN_channel (per_ms).
 * CONSTANTS[50] is P_c in component HCN_channel (dimensionless).
 * CONSTANTS[51] is P_o in component HCN_channel (dimensionless).
 * CONSTANTS[29] is cAMP in component HCN_channel (mM).
 * ALGEBRAIC[19] is O_sk in component SK_K_channel (dimensionless).
 * CONSTANTS[30] is g_ksk in component SK_K_channel (pA_per_mM).
 * ALGEBRAIC[21] is O_kdr in component DR_K_channel (dimensionless).
 * STATES[10] is m_kdr in component DR_K_channel (dimensionless).
 * CONSTANTS[31] is g_kdr in component DR_K_channel (nS).
 * ALGEBRAIC[22] is O_kir in component IR_K_channel (dimensionless).
 * CONSTANTS[32] is g_kir in component IR_K_channel (nS).
 * STATES[11] is y_pc in component PMCA (dimensionless).
 * ALGEBRAIC[23] is K_pmca in component PMCA (pA).
 * CONSTANTS[52] is k_1pc in component PMCA (per_ms).
 * CONSTANTS[33] is k_2pc in component PMCA (per_ms).
 * CONSTANTS[34] is k_3pc in component PMCA (per_ms).
 * CONSTANTS[35] is k_4pc in component PMCA (per_ms).
 * ALGEBRAIC[38] is P_E1Spc in component PMCA (dimensionless).
 * CONSTANTS[53] is P_E2Spc in component PMCA (dimensionless).
 * ALGEBRAIC[39] is P_E1pc in component PMCA (dimensionless).
 * CONSTANTS[56] is P_E2pc in component PMCA (dimensionless).
 * ALGEBRAIC[40] is alpha_pc in component PMCA (per_ms).
 * CONSTANTS[57] is beta_pc in component PMCA (per_ms).
 * ALGEBRAIC[24] is K_pci in component PMCA (mM).
 * CONSTANTS[36] is K_pco in component PMCA (mM).
 * CONSTANTS[37] is k_pmca in component PMCA (dimensionless).
 * CONSTANTS[38] is del in component NaCa (dimensionless).
 * CONSTANTS[39] is k_xm in component NaCa (pA).
 * ALGEBRAIC[25] is Dr in component NaCa (mM4).
 * ALGEBRAIC[26] is Na_eff in component sodium_pump (mM).
 * STATES[12] is y_nk in component sodium_pump (dimensionless).
 * ALGEBRAIC[44] is alpha_nk in component sodium_pump (per_ms).
 * ALGEBRAIC[43] is beta_nk in component sodium_pump (per_ms).
 * ALGEBRAIC[27] is P_E1Snk in component sodium_pump (dimensionless).
 * ALGEBRAIC[29] is P_E2Snk in component sodium_pump (dimensionless).
 * ALGEBRAIC[28] is P_E1Dnk in component sodium_pump (dimensionless).
 * ALGEBRAIC[30] is P_E2Dnk in component sodium_pump (dimensionless).
 * CONSTANTS[54] is k_1nk in component sodium_pump (per_ms).
 * CONSTANTS[40] is k_2nk in component sodium_pump (per_ms).
 * CONSTANTS[41] is k_3nk in component sodium_pump (per_ms).
 * CONSTANTS[42] is k_4nk in component sodium_pump (per_ms).
 * CONSTANTS[43] is K_nknai in component sodium_pump (mM).
 * CONSTANTS[44] is K_nknao in component sodium_pump (mM).
 * CONSTANTS[45] is K_nkki in component sodium_pump (mM).
 * CONSTANTS[46] is K_nkko in component sodium_pump (mM).
 * CONSTANTS[47] is k_nk in component sodium_pump (pA).
 * RATES[0] is d/dt V in component Membrane (mV).
 * RATES[1] is d/dt Ca_i in component Cytosol (mM).
 * RATES[2] is d/dt Na_i in component Cytosol (mM).
 * RATES[3] is d/dt K_i in component Cytosol (mM).
 * RATES[4] is d/dt Calb in component calcium_buffer_dynamics (mM).
 * RATES[5] is d/dt Cam in component calcium_buffer_dynamics (mM).
 * RATES[6] is d/dt m_cal in component L_type_Ca_channel (dimensionless).
 * RATES[7] is d/dt m_na in component transient_Na_channel (dimensionless).
 * RATES[8] is d/dt h_na in component transient_Na_channel (dimensionless).
 * RATES[9] is d/dt O_hcn in component HCN_channel (dimensionless).
 * RATES[10] is d/dt m_kdr in component DR_K_channel (dimensionless).
 * RATES[11] is d/dt y_pc in component PMCA (dimensionless).
 * RATES[12] is d/dt y_nk in component sodium_pump (dimensionless).
 * There are a total of 0 condition variables.
 */
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
CONSTANTS[0] = 8314.472;
CONSTANTS[1] = 310.15;
CONSTANTS[2] = 96485.30929;
CONSTANTS[3] = 1.8;
CONSTANTS[4] = 137;
CONSTANTS[5] = 5.4;
CONSTANTS[6] = 5;
CONSTANTS[7] = 0.5;
STATES[0] = -49.42;
CONSTANTS[8] = 0.9e6;
STATES[1] = 0.000188;
STATES[2] = 4.6876;
STATES[3] = 126.05893;
CONSTANTS[9] = 1.6667e4;
CONSTANTS[10] = 2;
STATES[4] = 0.0026;
STATES[5] = 0.0222;
CONSTANTS[11] = 0.005;
CONSTANTS[12] = 0.0235;
CONSTANTS[13] = 10;
CONSTANTS[14] = 2e-3;
CONSTANTS[15] = 0.003;
CONSTANTS[16] = 3;
STATES[6] = 0.006271;
CONSTANTS[17] = 2101.2;
CONSTANTS[18] = 907.68;
STATES[7] = 0.0952;
STATES[8] = 0.1848;
CONSTANTS[19] = 1.9651;
CONSTANTS[20] = 0.0424;
CONSTANTS[21] = 9.566e-5;
CONSTANTS[22] = 0.5296;
CONSTANTS[23] = 1.7127;
CONSTANTS[24] = 1.5581;
CONSTANTS[25] = -2.4317;
CONSTANTS[26] = -1.1868;
CONSTANTS[27] = 0.0053;
CONSTANTS[28] = 51.1;
STATES[9] = 0.003;
CONSTANTS[29] = 1e-5;
CONSTANTS[30] = 2.2515;
STATES[10] = 0.0932;
CONSTANTS[31] = 31.237;
CONSTANTS[32] = 13.816;
STATES[11] = 0.483;
CONSTANTS[33] = 0.001;
CONSTANTS[34] = 0.001;
CONSTANTS[35] = 1;
CONSTANTS[36] = 2;
CONSTANTS[37] = 2.233;
CONSTANTS[38] = 0.35;
CONSTANTS[39] = 0.0166;
STATES[12] = 0.6213;
CONSTANTS[40] = 0.04;
CONSTANTS[41] = 0.01;
CONSTANTS[42] = 0.165;
CONSTANTS[43] = 4.05;
CONSTANTS[44] = 69.8;
CONSTANTS[45] = 32.88;
CONSTANTS[46] = 0.258;
CONSTANTS[47] = 1085.7;
CONSTANTS[48] = ( CONSTANTS[0]*CONSTANTS[1])/CONSTANTS[2];
CONSTANTS[49] =  CONSTANTS[7]*CONSTANTS[6];
CONSTANTS[50] = 1.00000/(1.00000+CONSTANTS[29]/0.00116300);
CONSTANTS[51] = 1.00000/(1.00000+CONSTANTS[29]/1.45000e-05);
CONSTANTS[52] = 1.00000/(1.00000+0.100000/CONSTANTS[10]);
CONSTANTS[53] = 1.00000/(1.00000+CONSTANTS[36]/CONSTANTS[3]);
CONSTANTS[54] = 0.370000/(1.00000+0.0940000/CONSTANTS[10]);
CONSTANTS[55] = ( CONSTANTS[9]*CONSTANTS[6]*0.00100000*0.00100000*0.00100000)/1.00000;
CONSTANTS[56] = 1.00000 - CONSTANTS[53];
CONSTANTS[57] =  CONSTANTS[33]*CONSTANTS[53]+ CONSTANTS[35]*CONSTANTS[56];
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;
}
void
computeResiduals(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES,
                 double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS)
{
resid[0] = RATES[0] -  (( CONSTANTS[2]*CONSTANTS[49])/( CONSTANTS[8]*CONSTANTS[55]))*(ALGEBRAIC[45]+ALGEBRAIC[47]+ 2.00000*ALGEBRAIC[50]);
resid[1] = RATES[1] - ALGEBRAIC[50];
resid[2] = RATES[2] - ALGEBRAIC[45];
resid[3] = RATES[3] - ALGEBRAIC[47];
resid[4] = RATES[4] - - ALGEBRAIC[31];
resid[5] = RATES[5] - - ALGEBRAIC[32];
resid[6] = RATES[6] - (1.00000/(1.00000+exp(- (STATES[0]+15.0000)/7.00000)) - STATES[6])/( 7.68000*exp(- pow((STATES[0]+65.0000)/17.3300, 2.00000))+0.723100);
resid[7] = RATES[7] -  CONSTANTS[19]*exp( CONSTANTS[23]*ALGEBRAIC[0])*(1.00000 - STATES[7]) -  CONSTANTS[20]*exp( - CONSTANTS[24]*ALGEBRAIC[0])*STATES[7];
resid[8] = RATES[8] -  CONSTANTS[21]*exp( CONSTANTS[25]*ALGEBRAIC[0])*(1.00000 - STATES[8]) -  CONSTANTS[22]*exp( - CONSTANTS[26]*ALGEBRAIC[0])*STATES[8];
resid[9] = RATES[9] -  ALGEBRAIC[34]*(1.00000 - STATES[9]) -  ALGEBRAIC[35]*STATES[9];
resid[10] = RATES[10] - (1.00000/(1.00000+exp(- (STATES[0]+25.0000)/12.0000)) - STATES[10])/(18.0000/(1.00000+exp((STATES[0]+39.0000)/8.00000))+1.00000);
resid[11] = RATES[11] -  CONSTANTS[57]*(1.00000 - STATES[11]) -  ALGEBRAIC[40]*STATES[11];
resid[12] = RATES[12] -  ALGEBRAIC[43]*(1.00000 - STATES[12]) -  ALGEBRAIC[44]*STATES[12];
}
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] = STATES[0]/CONSTANTS[48];
ALGEBRAIC[8] = CONSTANTS[11] - STATES[4];
ALGEBRAIC[31] =  CONSTANTS[13]*STATES[4]*STATES[1] -  CONSTANTS[14]*ALGEBRAIC[8];
ALGEBRAIC[9] = CONSTANTS[12] - STATES[5];
ALGEBRAIC[4] =  12000.0*pow(STATES[1], 2.00000);
ALGEBRAIC[5] =  3.70000e+06*pow(STATES[1], 2.00000);
ALGEBRAIC[6] =  ALGEBRAIC[4]*ALGEBRAIC[5]*(1.00000/(ALGEBRAIC[4]+CONSTANTS[16])+1.00000/(CONSTANTS[15]+CONSTANTS[16]));
ALGEBRAIC[7] =  CONSTANTS[15]*CONSTANTS[16]*(1.00000/(ALGEBRAIC[4]+CONSTANTS[16])+1.00000/(CONSTANTS[15]+CONSTANTS[16]));
ALGEBRAIC[32] =  ALGEBRAIC[6]*STATES[5] -  ALGEBRAIC[7]*ALGEBRAIC[9];
ALGEBRAIC[14] = 0.00600000/(1.00000+exp((STATES[0]+87.7000)/6.45000));
ALGEBRAIC[16] = 0.0268000/(1.00000+exp((STATES[0]+94.2000)/13.3000));
ALGEBRAIC[34] =  ALGEBRAIC[14]*CONSTANTS[50]+ ALGEBRAIC[16]*(1.00000 - CONSTANTS[50]);
ALGEBRAIC[15] = 0.0800000/(1.00000+exp(- (STATES[0]+51.7000)/7.00000));
ALGEBRAIC[17] = 0.0800000/(1.00000+exp(- (STATES[0]+35.5000)/7.00000));
ALGEBRAIC[35] =  ALGEBRAIC[15]*CONSTANTS[51]+ ALGEBRAIC[17]*(1.00000 - CONSTANTS[51]);
ALGEBRAIC[24] =  (173.600/(1.00000+ALGEBRAIC[9]/5.00000e-05)+6.40000)*1.00000e-05;
ALGEBRAIC[38] = 1.00000/(1.00000+ALGEBRAIC[24]/STATES[1]);
ALGEBRAIC[39] = 1.00000 - ALGEBRAIC[38];
ALGEBRAIC[40] =  CONSTANTS[52]*ALGEBRAIC[38]+ CONSTANTS[34]*ALGEBRAIC[39];
ALGEBRAIC[26] =  CONSTANTS[4]*exp( - 0.820000*ALGEBRAIC[0]);
ALGEBRAIC[29] = 1.00000/(1.00000+ (CONSTANTS[44]/ALGEBRAIC[26])*(1.00000+CONSTANTS[5]/CONSTANTS[46]));
ALGEBRAIC[30] = 1.00000/(1.00000+ (CONSTANTS[46]/CONSTANTS[5])*(1.00000+ALGEBRAIC[26]/CONSTANTS[44]));
ALGEBRAIC[43] =  CONSTANTS[40]*ALGEBRAIC[29]+ CONSTANTS[42]*ALGEBRAIC[30];
ALGEBRAIC[27] = 1.00000/(1.00000+ (CONSTANTS[43]/STATES[2])*(1.00000+STATES[3]/CONSTANTS[45]));
ALGEBRAIC[28] = 1.00000/(1.00000+ (CONSTANTS[45]/STATES[3])*(1.00000+STATES[2]/CONSTANTS[43]));
ALGEBRAIC[44] =  CONSTANTS[54]*ALGEBRAIC[27]+ CONSTANTS[41]*ALGEBRAIC[28];
ALGEBRAIC[25] =  (1.00000+ 0.00100000*( pow(STATES[2], 3.00000)*CONSTANTS[3]+ pow(CONSTANTS[4], 3.00000)*STATES[1]))*(1.00000+STATES[1]/0.00690000);
ALGEBRAIC[41] = ( CONSTANTS[39]*( pow(STATES[2], 3.00000)*CONSTANTS[3]*exp( CONSTANTS[38]*ALGEBRAIC[0]) -  pow(CONSTANTS[4], 3.00000)*STATES[1]*exp( (CONSTANTS[38] - 1.00000)*ALGEBRAIC[0])))/ALGEBRAIC[25];
ALGEBRAIC[2] = log(CONSTANTS[4]/STATES[2]);
ALGEBRAIC[11] =  pow(STATES[7], 3.00000)*STATES[8];
ALGEBRAIC[12] = ( CONSTANTS[18]*ALGEBRAIC[11]* pow(( STATES[2]*CONSTANTS[4]), 1.0 / 2)* sinh( 0.500000*(ALGEBRAIC[0] - ALGEBRAIC[2])))/( sinh( 0.500000*ALGEBRAIC[0])/( 0.500000*ALGEBRAIC[0]));
ALGEBRAIC[13] = ( CONSTANTS[27]* pow(( STATES[2]*CONSTANTS[4]), 1.0 / 2)* sinh( 0.500000*(ALGEBRAIC[0] - ALGEBRAIC[2])))/( sinh( 0.500000*ALGEBRAIC[0])/( 0.500000*ALGEBRAIC[0]));
ALGEBRAIC[18] = ( CONSTANTS[28]*STATES[9]* pow(( STATES[2]*CONSTANTS[4]), 1.0 / 2)* sinh( 0.500000*(ALGEBRAIC[0] - ALGEBRAIC[2])))/( sinh( 0.500000*ALGEBRAIC[0])/( 0.500000*ALGEBRAIC[0]));
ALGEBRAIC[42] =  CONSTANTS[47]*( CONSTANTS[54]*ALGEBRAIC[27]*STATES[12] -  CONSTANTS[40]*ALGEBRAIC[29]*(1.00000 - STATES[12]))*1.00000;
ALGEBRAIC[45] =  (- 1.00000/( CONSTANTS[2]*CONSTANTS[49]))*( 3.00000*ALGEBRAIC[42]+ 3.00000*ALGEBRAIC[41]+ALGEBRAIC[12]+ALGEBRAIC[13]+ALGEBRAIC[18]);
ALGEBRAIC[3] = log(CONSTANTS[5]/STATES[3]);
ALGEBRAIC[19] = pow(STATES[1], 4.20000)/(pow(0.000350000, 4.20000)+pow(STATES[1], 4.20000));
ALGEBRAIC[20] = ( CONSTANTS[30]*ALGEBRAIC[19]* pow(( STATES[3]*CONSTANTS[5]), 1.0 / 2)* sinh( 0.500000*(ALGEBRAIC[0] - ALGEBRAIC[3])))/( sinh( 0.500000*ALGEBRAIC[0])/( 0.500000*ALGEBRAIC[0]));
ALGEBRAIC[21] = pow(STATES[10], 3.00000);
ALGEBRAIC[36] =  CONSTANTS[31]*ALGEBRAIC[21]*(STATES[0] -  ALGEBRAIC[3]*CONSTANTS[48]);
ALGEBRAIC[22] = 1.00000/(1.00000+exp((STATES[0]+85.0000)/12.1000));
ALGEBRAIC[37] =  CONSTANTS[32]*ALGEBRAIC[22]*(STATES[0] -  ALGEBRAIC[3]*CONSTANTS[48]);
ALGEBRAIC[46] = ALGEBRAIC[20]+ALGEBRAIC[36]+ALGEBRAIC[37];
ALGEBRAIC[47] =  (- 1.00000/( CONSTANTS[2]*CONSTANTS[49]))*(ALGEBRAIC[46] -  2.00000*ALGEBRAIC[42]);
ALGEBRAIC[1] =  0.500000*log(CONSTANTS[3]/STATES[1]);
ALGEBRAIC[10] = 0.000450000/(0.000450000+STATES[1]);
ALGEBRAIC[33] = ( CONSTANTS[17]*STATES[6]*ALGEBRAIC[10]* pow(( STATES[1]*CONSTANTS[3]), 1.0 / 2)* sinh(ALGEBRAIC[0] - ALGEBRAIC[1]))/( sinh(ALGEBRAIC[0])/ALGEBRAIC[0]);
ALGEBRAIC[23] =  CONSTANTS[37]*(( 10.5600*ALGEBRAIC[9])/(ALGEBRAIC[9]+5.00000e-05)+1.20000);
ALGEBRAIC[48] =  ALGEBRAIC[23]*( CONSTANTS[52]*ALGEBRAIC[38]*STATES[11] -  CONSTANTS[33]*CONSTANTS[53]*(1.00000 - STATES[11]))*1.00000;
ALGEBRAIC[49] =  (- 1.00000/( 2.00000*CONSTANTS[2]*CONSTANTS[49]))*((ALGEBRAIC[33]+ 2.00000*ALGEBRAIC[48]) -  2.00000*ALGEBRAIC[41]);
ALGEBRAIC[50] = ALGEBRAIC[49] - (ALGEBRAIC[31]+ 4.00000*ALGEBRAIC[32]);
}
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;
}
void
computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES,
             double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS)
{
}