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; }