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 58 entries in the algebraic variable array.
There are a total of 12 entries in each of the rate and state variable arrays.
There are a total of 60 entries in the constant variable array.
*/
/*
* VOI is time in component environment (ms).
* STATES[0] is V in component membrane (mV).
* CONSTANTS[0] is R in component membrane (gas_constant_units).
* CONSTANTS[1] is T in component membrane (kelvin).
* CONSTANTS[2] is F in component membrane (faradays_constant_units).
* ALGEBRAIC[57] is dV_dt in component membrane (mV_per_ms).
* CONSTANTS[3] is Cm in component membrane (uF_per_mm2).
* ALGEBRAIC[0] is I_st in component membrane (uA_per_mm2).
* ALGEBRAIC[45] is i_Na in component fast_sodium_current (uA_per_mm2).
* ALGEBRAIC[49] is i_Ca_L in component L_type_Ca_channel (uA_per_mm2).
* ALGEBRAIC[52] is i_K in component time_dependent_potassium_current (uA_per_mm2).
* ALGEBRAIC[40] is i_NaCa in component Na_Ca_exchanger (uA_per_mm2).
* ALGEBRAIC[53] is i_K1 in component time_independent_potassium_current (uA_per_mm2).
* ALGEBRAIC[28] is i_Kp in component plateau_potassium_current (uA_per_mm2).
* ALGEBRAIC[29] is i_p_Ca in component sarcolemmal_calcium_pump (uA_per_mm2).
* ALGEBRAIC[31] is i_Na_b in component sodium_background_current (uA_per_mm2).
* ALGEBRAIC[33] is i_Ca_b in component calcium_background_current (uA_per_mm2).
* ALGEBRAIC[35] is i_NaK in component sodium_potassium_pump (uA_per_mm2).
* ALGEBRAIC[56] is i_ns_Ca in component non_specific_calcium_activated_current (uA_per_mm2).
* CONSTANTS[4] is stimPeriod in component membrane (dimensionless).
* CONSTANTS[5] is stimDuration in component membrane (dimensionless).
* CONSTANTS[6] is stimCurrent in component membrane (dimensionless).
* ALGEBRAIC[1] is E_Na in component fast_sodium_current (mV).
* CONSTANTS[7] is g_Na in component fast_sodium_current (mS_per_mm2).
* STATES[1] is Nai in component ionic_concentrations (mM).
* CONSTANTS[8] is Nao in component ionic_concentrations (mM).
* STATES[2] is m in component fast_sodium_current_m_gate (dimensionless).
* STATES[3] is h in component fast_sodium_current_h_gate (dimensionless).
* STATES[4] is j in component fast_sodium_current_j_gate (dimensionless).
* ALGEBRAIC[2] is alpha_m in component fast_sodium_current_m_gate (per_ms).
* ALGEBRAIC[3] is beta_m in component fast_sodium_current_m_gate (per_ms).
* ALGEBRAIC[4] is alpha_h in component fast_sodium_current_h_gate (per_ms).
* ALGEBRAIC[5] is beta_h in component fast_sodium_current_h_gate (per_ms).
* ALGEBRAIC[6] is alpha_j in component fast_sodium_current_j_gate (per_ms).
* ALGEBRAIC[7] is beta_j in component fast_sodium_current_j_gate (per_ms).
* ALGEBRAIC[46] is i_CaCa in component L_type_Ca_channel (uA_per_mm2).
* ALGEBRAIC[48] is i_CaK in component L_type_Ca_channel (uA_per_mm2).
* ALGEBRAIC[47] is i_CaNa in component L_type_Ca_channel (uA_per_mm2).
* CONSTANTS[9] is gamma_Nai in component L_type_Ca_channel (dimensionless).
* CONSTANTS[10] is gamma_Nao in component L_type_Ca_channel (dimensionless).
* CONSTANTS[11] is gamma_Ki in component L_type_Ca_channel (dimensionless).
* CONSTANTS[12] is gamma_Ko in component L_type_Ca_channel (dimensionless).
* ALGEBRAIC[8] is I_CaCa in component L_type_Ca_channel (uA_per_mm2).
* ALGEBRAIC[10] is I_CaK in component L_type_Ca_channel (uA_per_mm2).
* ALGEBRAIC[9] is I_CaNa in component L_type_Ca_channel (uA_per_mm2).
* CONSTANTS[13] is P_Ca in component L_type_Ca_channel (mm_per_ms).
* CONSTANTS[14] is P_Na in component L_type_Ca_channel (mm_per_ms).
* CONSTANTS[15] is P_K in component L_type_Ca_channel (mm_per_ms).
* CONSTANTS[16] is gamma_Cai in component L_type_Ca_channel (dimensionless).
* CONSTANTS[17] is gamma_Cao in component L_type_Ca_channel (dimensionless).
* STATES[5] is Cai in component ionic_concentrations (mM).
* CONSTANTS[18] is Cao in component ionic_concentrations (mM).
* CONSTANTS[19] is Ko in component ionic_concentrations (mM).
* STATES[6] is Ki in component ionic_concentrations (mM).
* STATES[7] is d in component L_type_Ca_channel_d_gate (dimensionless).
* STATES[8] is f in component L_type_Ca_channel_f_gate (dimensionless).
* ALGEBRAIC[17] is f_Ca in component L_type_Ca_channel_f_Ca_gate (dimensionless).
* ALGEBRAIC[50] is alpha_d in component L_type_Ca_channel_d_gate (per_ms).
* ALGEBRAIC[13] is beta_d in component L_type_Ca_channel_d_gate (per_ms).
* ALGEBRAIC[11] is d_infinity in component L_type_Ca_channel_d_gate (dimensionless).
* ALGEBRAIC[12] is tau_d in component L_type_Ca_channel_d_gate (ms).
* ALGEBRAIC[51] is alpha_f in component L_type_Ca_channel_f_gate (per_ms).
* ALGEBRAIC[16] is beta_f in component L_type_Ca_channel_f_gate (per_ms).
* ALGEBRAIC[14] is f_infinity in component L_type_Ca_channel_f_gate (dimensionless).
* ALGEBRAIC[15] is tau_f in component L_type_Ca_channel_f_gate (ms).
* CONSTANTS[20] is Km_Ca in component L_type_Ca_channel_f_Ca_gate (mM).
* CONSTANTS[21] is g_K_max in component time_dependent_potassium_current (mS_per_mm2).
* CONSTANTS[54] is g_K in component time_dependent_potassium_current (mS_per_mm2).
* ALGEBRAIC[18] is E_K in component time_dependent_potassium_current (mV).
* CONSTANTS[22] is PR_NaK in component time_dependent_potassium_current (dimensionless).
* STATES[9] is X in component time_dependent_potassium_current_X_gate (dimensionless).
* ALGEBRAIC[21] is Xi in component time_dependent_potassium_current_Xi_gate (dimensionless).
* ALGEBRAIC[19] is alpha_X in component time_dependent_potassium_current_X_gate (per_ms).
* ALGEBRAIC[20] is beta_X in component time_dependent_potassium_current_X_gate (per_ms).
* ALGEBRAIC[22] is E_K1 in component time_independent_potassium_current (mV).
* CONSTANTS[23] is g_K1_max in component time_independent_potassium_current (mS_per_mm2).
* CONSTANTS[55] is g_K1 in component time_independent_potassium_current (mS_per_mm2).
* ALGEBRAIC[25] is K1_infinity in component time_independent_potassium_current_K1_gate (dimensionless).
* ALGEBRAIC[23] is alpha_K1 in component time_independent_potassium_current_K1_gate (per_ms).
* ALGEBRAIC[24] is beta_K1 in component time_independent_potassium_current_K1_gate (per_ms).
* ALGEBRAIC[26] is E_Kp in component plateau_potassium_current (mV).
* CONSTANTS[24] is g_Kp in component plateau_potassium_current (mS_per_mm2).
* ALGEBRAIC[27] is Kp in component plateau_potassium_current (dimensionless).
* CONSTANTS[25] is K_mpCa in component sarcolemmal_calcium_pump (mM).
* CONSTANTS[26] is I_pCa in component sarcolemmal_calcium_pump (uA_per_mm2).
* CONSTANTS[27] is g_Nab in component sodium_background_current (mS_per_mm2).
* ALGEBRAIC[30] is E_NaN in component sodium_background_current (mV).
* CONSTANTS[28] is g_Cab in component calcium_background_current (mS_per_mm2).
* ALGEBRAIC[32] is E_CaN in component calcium_background_current (mV).
* CONSTANTS[29] is I_NaK in component sodium_potassium_pump (uA_per_mm2).
* ALGEBRAIC[34] is f_NaK in component sodium_potassium_pump (dimensionless).
* CONSTANTS[30] is K_mNai in component sodium_potassium_pump (mM).
* CONSTANTS[31] is K_mKo in component sodium_potassium_pump (mM).
* CONSTANTS[56] is sigma in component sodium_potassium_pump (dimensionless).
* ALGEBRAIC[54] is i_ns_Na in component non_specific_calcium_activated_current (uA_per_mm2).
* ALGEBRAIC[55] is i_ns_K in component non_specific_calcium_activated_current (uA_per_mm2).
* CONSTANTS[32] is P_ns_Ca in component non_specific_calcium_activated_current (mm_per_ms).
* ALGEBRAIC[38] is I_ns_Na in component non_specific_calcium_activated_current (uA_per_mm2).
* ALGEBRAIC[39] is I_ns_K in component non_specific_calcium_activated_current (uA_per_mm2).
* CONSTANTS[33] is K_m_ns_Ca in component non_specific_calcium_activated_current (mM).
* ALGEBRAIC[37] is Vns in component non_specific_calcium_activated_current (mV).
* ALGEBRAIC[36] is EnsCa in component non_specific_calcium_activated_current (mV).
* CONSTANTS[34] is K_NaCa in component Na_Ca_exchanger (uA_per_mm2).
* CONSTANTS[35] is K_mNa in component Na_Ca_exchanger (mM).
* CONSTANTS[36] is K_mCa in component Na_Ca_exchanger (mM).
* CONSTANTS[37] is K_sat in component Na_Ca_exchanger (dimensionless).
* CONSTANTS[38] is eta in component Na_Ca_exchanger (dimensionless).
* ALGEBRAIC[41] is i_rel in component calcium_fluxes_in_the_SR (mM_per_ms).
* ALGEBRAIC[42] is i_up in component calcium_fluxes_in_the_SR (mM_per_ms).
* ALGEBRAIC[43] is i_leak in component calcium_fluxes_in_the_SR (mM_per_ms).
* ALGEBRAIC[44] is i_tr in component calcium_fluxes_in_the_SR (mM_per_ms).
* CONSTANTS[59] is G_rel in component calcium_fluxes_in_the_SR (per_ms).
* CONSTANTS[57] is G_rel_peak in component calcium_fluxes_in_the_SR (per_ms).
* CONSTANTS[39] is G_rel_max in component calcium_fluxes_in_the_SR (per_ms).
* CONSTANTS[40] is tau_on in component calcium_fluxes_in_the_SR (ms).
* CONSTANTS[41] is tau_off in component calcium_fluxes_in_the_SR (ms).
* CONSTANTS[42] is t_CICR in component calcium_fluxes_in_the_SR (ms).
* CONSTANTS[43] is tau_tr in component calcium_fluxes_in_the_SR (ms).
* CONSTANTS[44] is K_mrel in component calcium_fluxes_in_the_SR (mM).
* CONSTANTS[45] is K_mup in component calcium_fluxes_in_the_SR (mM).
* CONSTANTS[58] is K_leak in component calcium_fluxes_in_the_SR (per_ms).
* CONSTANTS[46] is I_up in component calcium_fluxes_in_the_SR (mM_per_ms).
* CONSTANTS[47] is Ca_NSR_max in component calcium_fluxes_in_the_SR (mM).
* CONSTANTS[48] is delta_Ca_i2 in component calcium_fluxes_in_the_SR (mM).
* CONSTANTS[49] is delta_Ca_ith in component calcium_fluxes_in_the_SR (mM).
* STATES[10] is Ca_JSR in component ionic_concentrations (mM).
* STATES[11] is Ca_NSR in component ionic_concentrations (mM).
* CONSTANTS[50] is Am in component ionic_concentrations (per_mm).
* CONSTANTS[51] is V_myo in component ionic_concentrations (dimensionless).
* CONSTANTS[52] is V_JSR in component ionic_concentrations (dimensionless).
* CONSTANTS[53] is V_NSR in component ionic_concentrations (dimensionless).
* RATES[0] is d/dt V in component membrane (mV).
* RATES[2] is d/dt m in component fast_sodium_current_m_gate (dimensionless).
* RATES[3] is d/dt h in component fast_sodium_current_h_gate (dimensionless).
* RATES[4] is d/dt j in component fast_sodium_current_j_gate (dimensionless).
* RATES[7] is d/dt d in component L_type_Ca_channel_d_gate (dimensionless).
* RATES[8] is d/dt f in component L_type_Ca_channel_f_gate (dimensionless).
* RATES[9] is d/dt X in component time_dependent_potassium_current_X_gate (dimensionless).
* RATES[1] is d/dt Nai in component ionic_concentrations (mM).
* RATES[5] is d/dt Cai in component ionic_concentrations (mM).
* RATES[6] is d/dt Ki in component ionic_concentrations (mM).
* RATES[10] is d/dt Ca_JSR in component ionic_concentrations (mM).
* RATES[11] is d/dt Ca_NSR in component ionic_concentrations (mM).
* There are a total of 5 condition variables.
*/
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
STATES[0] = -84.624;
CONSTANTS[0] = 8.3145e3;
CONSTANTS[1] = 310.0;
CONSTANTS[2] = 96845.0;
CONSTANTS[3] = 0.01;
CONSTANTS[4] = 1e3;
CONSTANTS[5] = 0.5;
CONSTANTS[6] = 0.5;
CONSTANTS[7] = 0.16;
STATES[1] = 10.0;
CONSTANTS[8] = 140.0;
STATES[2] = 0.0;
STATES[3] = 1.0;
STATES[4] = 1.0;
CONSTANTS[9] = 0.75;
CONSTANTS[10] = 0.75;
CONSTANTS[11] = 0.75;
CONSTANTS[12] = 0.75;
CONSTANTS[13] = 5.4e-6;
CONSTANTS[14] = 6.75e-9;
CONSTANTS[15] = 1.93e-9;
CONSTANTS[16] = 1.0;
CONSTANTS[17] = 0.34;
STATES[5] = 0.12e-3;
CONSTANTS[18] = 1.8;
CONSTANTS[19] = 5.4;
STATES[6] = 145.0;
STATES[7] = 0.0;
STATES[8] = 1.0;
CONSTANTS[20] = 0.6e-3;
CONSTANTS[21] = 2.82e-3;
CONSTANTS[22] = 0.01833;
STATES[9] = 0.0;
CONSTANTS[23] = 7.5e-3;
CONSTANTS[24] = 1.83e-4;
CONSTANTS[25] = 0.5e-3;
CONSTANTS[26] = 1.15e-2;
CONSTANTS[27] = 1.41e-5;
CONSTANTS[28] = 3.016e-5;
CONSTANTS[29] = 1.5e-2;
CONSTANTS[30] = 10.0;
CONSTANTS[31] = 1.5;
CONSTANTS[32] = 1.75e-9;
CONSTANTS[33] = 1.2e-3;
CONSTANTS[34] = 20.0;
CONSTANTS[35] = 87.5;
CONSTANTS[36] = 1.38;
CONSTANTS[37] = 0.1;
CONSTANTS[38] = 0.35;
CONSTANTS[39] = 60.0;
CONSTANTS[40] = 2.0;
CONSTANTS[41] = 2.0;
CONSTANTS[42] = 0.0;
CONSTANTS[43] = 180.0;
CONSTANTS[44] = 0.8e-3;
CONSTANTS[45] = 0.92e-3;
CONSTANTS[46] = 0.005;
CONSTANTS[47] = 15.0;
CONSTANTS[48] = 0.0;
CONSTANTS[49] = 0.18e-3;
STATES[10] = 1.8;
STATES[11] = 1.8;
CONSTANTS[50] = 200;
CONSTANTS[51] = 0.68;
CONSTANTS[52] = 0.0048;
CONSTANTS[53] = 0.0552;
CONSTANTS[54] = CONSTANTS[21]* pow((CONSTANTS[19]/5.40000), 1.0 / 2);
CONSTANTS[55] = CONSTANTS[23]* pow((CONSTANTS[19]/5.40000), 1.0 / 2);
CONSTANTS[56] = (1.00000/7.00000)*(exp(CONSTANTS[8]/67.3000) - 1.00000);
CONSTANTS[57] = (CONSTANTS[48]<CONSTANTS[49] ? 0.00000 : CONSTANTS[39]);
CONSTANTS[58] = CONSTANTS[46]/CONSTANTS[47];
CONSTANTS[59] = CONSTANTS[57]*((CONSTANTS[48] - CONSTANTS[49])/((CONSTANTS[44]+CONSTANTS[48]) - CONSTANTS[49]))*(1.00000 - exp(- (CONSTANTS[42]/CONSTANTS[40])))*exp(- (CONSTANTS[42]/CONSTANTS[41]));
RATES[0] = 0.1001;
RATES[2] = 0.1001;
RATES[3] = 0.1001;
RATES[4] = 0.1001;
RATES[7] = 0.1001;
RATES[8] = 0.1001;
RATES[9] = 0.1001;
RATES[1] = 0.1001;
RATES[5] = 0.1001;
RATES[6] = 0.1001;
RATES[10] = 0.1001;
RATES[11] = 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[57];
resid[1] = RATES[2] - ALGEBRAIC[2]*(1.00000 - STATES[2]) - ALGEBRAIC[3]*STATES[2];
resid[2] = RATES[3] - ALGEBRAIC[4]*(1.00000 - STATES[3]) - ALGEBRAIC[5]*STATES[3];
resid[3] = RATES[4] - ALGEBRAIC[6]*(1.00000 - STATES[4]) - ALGEBRAIC[7]*STATES[4];
resid[4] = RATES[7] - ALGEBRAIC[50]*(1.00000 - STATES[7]) - ALGEBRAIC[13]*STATES[7];
resid[5] = RATES[8] - ALGEBRAIC[51]*(1.00000 - STATES[8]) - ALGEBRAIC[16]*STATES[8];
resid[6] = RATES[9] - ALGEBRAIC[19]*(1.00000 - STATES[9]) - ALGEBRAIC[20]*STATES[9];
resid[7] = RATES[1] - - (ALGEBRAIC[45]+ALGEBRAIC[47]+ALGEBRAIC[31]+ALGEBRAIC[54]+ ALGEBRAIC[40]*3.00000+ ALGEBRAIC[35]*3.00000)*(CONSTANTS[50]/( CONSTANTS[51]*CONSTANTS[2]));
resid[8] = RATES[5] - - ((ALGEBRAIC[46]+ALGEBRAIC[29]+ALGEBRAIC[33]) - ALGEBRAIC[40])*(CONSTANTS[50]/( 2.00000*CONSTANTS[51]*CONSTANTS[2]))+ ALGEBRAIC[41]*(CONSTANTS[52]/CONSTANTS[51])+ (ALGEBRAIC[43] - ALGEBRAIC[42])*(CONSTANTS[53]/CONSTANTS[51]);
resid[9] = RATES[6] - - (ALGEBRAIC[48]+ALGEBRAIC[52]+ALGEBRAIC[53]+ALGEBRAIC[28]+ALGEBRAIC[55]+- ( ALGEBRAIC[35]*2.00000))*(CONSTANTS[50]/( CONSTANTS[51]*CONSTANTS[2]));
resid[10] = RATES[10] - - (ALGEBRAIC[41] - ALGEBRAIC[44]*(CONSTANTS[53]/CONSTANTS[52]));
resid[11] = RATES[11] - - ((ALGEBRAIC[43]+ALGEBRAIC[44]) - ALGEBRAIC[42]);
}
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[2] = ( 0.320000*(STATES[0]+47.1300))/(1.00000 - exp( -0.100000*(STATES[0]+47.1300)));
ALGEBRAIC[3] = 0.0800000*exp(- STATES[0]/11.0000);
ALGEBRAIC[4] = (CONDVAR[1]<0.00000 ? 0.135000*exp((80.0000+STATES[0])/-6.80000) : 0.00000);
ALGEBRAIC[5] = (CONDVAR[2]<0.00000 ? 3.56000*exp( 0.0790000*STATES[0])+ 310000.*exp( 0.350000*STATES[0]) : 1.00000/( 0.130000*(1.00000+exp((STATES[0]+10.6600)/-11.1000))));
ALGEBRAIC[6] = (CONDVAR[3]<0.00000 ? ( -127140.*exp( 0.244400*STATES[0]) - 3.47400e-05*exp( -0.0439100*STATES[0]))*((STATES[0]+37.7800)/(1.00000+exp( 0.311000*(STATES[0]+79.2300)))) : 0.00000);
ALGEBRAIC[7] = (CONDVAR[4]<0.00000 ? ( 0.121200*exp( -0.0105200*STATES[0]))/(1.00000+exp( -0.137800*(STATES[0]+40.1400))) : ( 0.300000*exp( -2.53500e-07*STATES[0]))/(1.00000+exp( -0.100000*(STATES[0]+32.0000))));
ALGEBRAIC[11] = 1.00000/(1.00000+exp(- ((STATES[0]+10.0000)/6.24000)));
ALGEBRAIC[12] = ALGEBRAIC[11]*((1.00000 - exp(- ((STATES[0]+10.0000)/6.24000)))/( 0.0350000*(STATES[0]+10.0000)));
ALGEBRAIC[13] = (1.00000 - ALGEBRAIC[11])/ALGEBRAIC[12];
ALGEBRAIC[14] = 1.00000/(1.00000+exp((STATES[0]+35.0600)/8.60000))+0.600000/(1.00000+exp((50.0000 - STATES[0])/20.0000));
ALGEBRAIC[15] = 1.00000/( 0.0197000*exp(- pow( 0.0337000*(STATES[0]+10.0000), 2.00000))+0.0200000);
ALGEBRAIC[16] = (1.00000 - ALGEBRAIC[14])/ALGEBRAIC[15];
ALGEBRAIC[19] = ( 7.19000e-05*(STATES[0]+30.0000))/(1.00000 - exp( -0.148000*(STATES[0]+30.0000)));
ALGEBRAIC[20] = ( 0.000131000*(STATES[0]+30.0000))/(-1.00000+exp( 0.0687000*(STATES[0]+30.0000)));
ALGEBRAIC[22] = (( CONSTANTS[0]*CONSTANTS[1])/CONSTANTS[2])*log(CONSTANTS[19]/STATES[6]);
ALGEBRAIC[26] = ALGEBRAIC[22];
ALGEBRAIC[27] = 1.00000/(1.00000+exp((7.48800 - STATES[0])/5.98000));
ALGEBRAIC[28] = CONSTANTS[24]*ALGEBRAIC[27]*(STATES[0] - ALGEBRAIC[26]);
ALGEBRAIC[29] = CONSTANTS[26]*(STATES[5]/(CONSTANTS[25]+STATES[5]));
ALGEBRAIC[1] = (( CONSTANTS[0]*CONSTANTS[1])/CONSTANTS[2])*log(CONSTANTS[8]/STATES[1]);
ALGEBRAIC[30] = ALGEBRAIC[1];
ALGEBRAIC[31] = CONSTANTS[27]*(STATES[0] - ALGEBRAIC[30]);
ALGEBRAIC[32] = (( CONSTANTS[0]*CONSTANTS[1])/( 2.00000*CONSTANTS[2]))*log(CONSTANTS[18]/STATES[5]);
ALGEBRAIC[33] = CONSTANTS[28]*(STATES[0] - ALGEBRAIC[32]);
ALGEBRAIC[34] = 1.00000/((1.00000+ 0.124500*exp( -0.100000*(( STATES[0]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1]))))+ 0.0365000*CONSTANTS[56]*exp(- (( STATES[0]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1]))));
ALGEBRAIC[35] = CONSTANTS[29]*ALGEBRAIC[34]*(1.00000/(1.00000+pow(CONSTANTS[30]/STATES[1], 1.50000)))*(CONSTANTS[19]/(CONSTANTS[19]+CONSTANTS[31]));
ALGEBRAIC[40] = CONSTANTS[34]*(1.00000/(pow(CONSTANTS[35], 3.00000)+pow(CONSTANTS[8], 3.00000)))*(1.00000/(CONSTANTS[36]+CONSTANTS[18]))*(1.00000/(1.00000+ CONSTANTS[37]*exp( (CONSTANTS[38] - 1.00000)*STATES[0]*(CONSTANTS[2]/( CONSTANTS[0]*CONSTANTS[1])))))*( exp( CONSTANTS[38]*STATES[0]*(CONSTANTS[2]/( CONSTANTS[0]*CONSTANTS[1])))*pow(STATES[1], 3.00000)*CONSTANTS[18] - exp( (CONSTANTS[38] - 1.00000)*STATES[0]*(CONSTANTS[2]/( CONSTANTS[0]*CONSTANTS[1])))*pow(CONSTANTS[8], 3.00000)*STATES[5]);
ALGEBRAIC[41] = CONSTANTS[59]*(STATES[10] - STATES[5]);
ALGEBRAIC[42] = CONSTANTS[46]*(STATES[5]/(STATES[5]+CONSTANTS[45]));
ALGEBRAIC[43] = CONSTANTS[58]*STATES[11];
ALGEBRAIC[44] = (STATES[11] - STATES[10])/CONSTANTS[43];
ALGEBRAIC[45] = CONSTANTS[7]*pow(STATES[2], 3.00000)*STATES[3]*STATES[4]*(STATES[0] - ALGEBRAIC[1]);
ALGEBRAIC[8] = CONSTANTS[13]*pow(2.00000, 2.00000)*(( STATES[0]*pow(CONSTANTS[2], 2.00000))/( CONSTANTS[0]*CONSTANTS[1]))*(( CONSTANTS[16]*STATES[5]*exp(( 2.00000*STATES[0]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1])) - CONSTANTS[17]*CONSTANTS[18])/(exp(( 2.00000*STATES[0]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1])) - 1.00000));
ALGEBRAIC[17] = 1.00000/(1.00000+pow(STATES[5]/CONSTANTS[20], 2.00000));
ALGEBRAIC[46] = STATES[7]*STATES[8]*ALGEBRAIC[17]*ALGEBRAIC[8];
ALGEBRAIC[9] = CONSTANTS[14]*pow(1.00000, 2.00000)*(( STATES[0]*pow(CONSTANTS[2], 2.00000))/( CONSTANTS[0]*CONSTANTS[1]))*(( CONSTANTS[9]*STATES[1]*exp(( 1.00000*STATES[0]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1])) - CONSTANTS[10]*CONSTANTS[8])/(exp(( 1.00000*STATES[0]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1])) - 1.00000));
ALGEBRAIC[47] = STATES[7]*STATES[8]*ALGEBRAIC[17]*ALGEBRAIC[9];
ALGEBRAIC[10] = CONSTANTS[15]*pow(1.00000, 2.00000)*(( STATES[0]*pow(CONSTANTS[2], 2.00000))/( CONSTANTS[0]*CONSTANTS[1]))*(( CONSTANTS[11]*STATES[6]*exp(( 1.00000*STATES[0]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1])) - CONSTANTS[12]*CONSTANTS[19])/(exp(( 1.00000*STATES[0]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1])) - 1.00000));
ALGEBRAIC[48] = STATES[7]*STATES[8]*ALGEBRAIC[17]*ALGEBRAIC[10];
ALGEBRAIC[50] = ALGEBRAIC[11]/ALGEBRAIC[12];
ALGEBRAIC[51] = ALGEBRAIC[14]/ALGEBRAIC[15];
ALGEBRAIC[18] = (( CONSTANTS[0]*CONSTANTS[1])/CONSTANTS[2])*log((CONSTANTS[19]+ CONSTANTS[22]*CONSTANTS[8])/(STATES[6]+ CONSTANTS[22]*STATES[1]));
ALGEBRAIC[21] = 1.00000/(1.00000+exp((STATES[0] - 56.2600)/32.1000));
ALGEBRAIC[52] = CONSTANTS[54]*pow(STATES[9], 2.00000)*ALGEBRAIC[21]*(STATES[0] - ALGEBRAIC[18]);
ALGEBRAIC[23] = 1.02000/(1.00000+exp( 0.238500*((STATES[0] - ALGEBRAIC[22]) - 59.2150)));
ALGEBRAIC[24] = ( 0.491240*exp( 0.0803200*((STATES[0]+5.47600) - ALGEBRAIC[22]))+exp( 0.0617500*(STATES[0] - (ALGEBRAIC[22]+594.310))))/(1.00000+exp( -0.514300*((STATES[0] - ALGEBRAIC[22])+4.75300)));
ALGEBRAIC[25] = ALGEBRAIC[23]/(ALGEBRAIC[23]+ALGEBRAIC[24]);
ALGEBRAIC[53] = CONSTANTS[55]*ALGEBRAIC[25]*(STATES[0] - ALGEBRAIC[22]);
ALGEBRAIC[36] = (( CONSTANTS[0]*CONSTANTS[1])/CONSTANTS[2])*log((CONSTANTS[19]+CONSTANTS[8])/(STATES[6]+STATES[1]));
ALGEBRAIC[37] = STATES[0] - ALGEBRAIC[36];
ALGEBRAIC[38] = CONSTANTS[32]*pow(1.00000, 2.00000)*(( ALGEBRAIC[37]*pow(CONSTANTS[2], 2.00000))/( CONSTANTS[0]*CONSTANTS[1]))*(( CONSTANTS[9]*STATES[1]*exp(( 1.00000*ALGEBRAIC[37]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1])) - CONSTANTS[10]*CONSTANTS[8])/(exp(( 1.00000*ALGEBRAIC[37]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1])) - 1.00000));
ALGEBRAIC[54] = ALGEBRAIC[38]*(1.00000/(1.00000+pow(CONSTANTS[33]/STATES[5], 3.00000)));
ALGEBRAIC[39] = CONSTANTS[32]*pow(1.00000, 2.00000)*(( ALGEBRAIC[37]*pow(CONSTANTS[2], 2.00000))/( CONSTANTS[0]*CONSTANTS[1]))*(( CONSTANTS[11]*STATES[6]*exp(( 1.00000*ALGEBRAIC[37]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1])) - CONSTANTS[12]*CONSTANTS[19])/(exp(( 1.00000*ALGEBRAIC[37]*CONSTANTS[2])/( CONSTANTS[0]*CONSTANTS[1])) - 1.00000));
ALGEBRAIC[55] = ALGEBRAIC[39]*(1.00000/(1.00000+pow(CONSTANTS[33]/STATES[5], 3.00000)));
ALGEBRAIC[0] = (CONDVAR[0]<0.00000 ? CONSTANTS[6] : 0.00000);
ALGEBRAIC[49] = ALGEBRAIC[46]+ALGEBRAIC[48]+ALGEBRAIC[47];
ALGEBRAIC[56] = ALGEBRAIC[54]+ALGEBRAIC[55];
ALGEBRAIC[57] = (ALGEBRAIC[0] - (ALGEBRAIC[45]+ALGEBRAIC[49]+ALGEBRAIC[52]+ALGEBRAIC[53]+ALGEBRAIC[28]+ALGEBRAIC[40]+ALGEBRAIC[29]+ALGEBRAIC[31]+ALGEBRAIC[33]+ALGEBRAIC[35]+ALGEBRAIC[56]))/CONSTANTS[3];
}
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;
}
void
computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES,
double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS)
{
CONDVAR[0] = (int)(VOI) % (int)(CONSTANTS[4]) - CONSTANTS[5];
CONDVAR[1] = STATES[0] - -40.0000;
CONDVAR[2] = STATES[0] - -40.0000;
CONDVAR[3] = STATES[0] - -40.0000;
CONDVAR[4] = STATES[0] - -40.0000;
}
