/* There are a total of 67 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 68 entries in the constant variable array. */ /* * VOI is time in component Environment (ms). * CONSTANTS[0] is F in component Environment (C_per_mole). * CONSTANTS[1] is R in component Environment (mJ_per_mole_K). * CONSTANTS[2] is Temp in component Environment (kelvin). * CONSTANTS[53] is FonRT in component Environment (per_mV). * CONSTANTS[3] is K_o in component Environment (mM). * CONSTANTS[4] is Na_o in component Environment (mM). * CONSTANTS[5] is Ca_o in component Environment (mM). * STATES[0] is V in component cell (mV). * ALGEBRAIC[52] is ilca in component ICaL (uA_per_uF). * ALGEBRAIC[62] is icab in component ICab (uA_per_uF). * ALGEBRAIC[61] is ipca in component IpCa (uA_per_uF). * ALGEBRAIC[59] is inaca in component INaCa (uA_per_uF). * ALGEBRAIC[64] is icat in component ICaT (uA_per_uF). * ALGEBRAIC[30] is ina in component INa (uA_per_uF). * ALGEBRAIC[31] is inab in component INab (uA_per_uF). * ALGEBRAIC[53] is ilcana in component ICaL (uA_per_uF). * ALGEBRAIC[28] is inak in component INaK (uA_per_uF). * ALGEBRAIC[37] is ikr in component IKr (uA_per_uF). * ALGEBRAIC[57] is iks in component IKs (uA_per_uF). * ALGEBRAIC[36] is IK1 in component IK1 (uA_per_uF). * ALGEBRAIC[38] is ikp in component IKp (uA_per_uF). * ALGEBRAIC[55] is ilcak in component ICaL (uA_per_uF). * ALGEBRAIC[65] is caiont in component cell (uA_per_uF). * ALGEBRAIC[60] is naiont in component cell (uA_per_uF). * ALGEBRAIC[58] is kiont in component cell (uA_per_uF). * CONSTANTS[6] is l in component cell (cm). * CONSTANTS[7] is ra in component cell (cm). * CONSTANTS[56] is vcell in component cell (uL). * CONSTANTS[57] is ageo in component cell (cm2). * CONSTANTS[61] is Acap in component cell (uF). * CONSTANTS[65] is AF in component cell (uF_mole_per_C). * CONSTANTS[62] is vmyo in component cell (uL). * CONSTANTS[58] is vmito in component cell (uL). * CONSTANTS[59] is vsr in component cell (uL). * CONSTANTS[63] is vnsr in component cell (uL). * CONSTANTS[64] is vjsr in component cell (uL). * CONSTANTS[60] is vss in component cell (uL). * ALGEBRAIC[9] is i_Stim in component cell (uA_per_uF). * CONSTANTS[8] is stim_offset in component cell (ms). * CONSTANTS[9] is stim_period in component cell (ms). * CONSTANTS[10] is stim_duration in component cell (ms). * CONSTANTS[11] is stim_amplitude in component cell (uA_per_uF). * ALGEBRAIC[0] is past in component cell (ms). * ALGEBRAIC[29] is ENa in component reversal_potentials (mV). * STATES[1] is H in component INa (dimensionless). * STATES[2] is m in component INa (dimensionless). * STATES[3] is J in component INa (dimensionless). * CONSTANTS[12] is GNa in component INa (mS_per_uF). * ALGEBRAIC[1] is a in component INa (per_ms). * ALGEBRAIC[10] is aH in component INa (per_ms). * ALGEBRAIC[20] is bH in component INa (per_ms). * ALGEBRAIC[11] is aj in component INa (per_ms). * ALGEBRAIC[21] is bj in component INa (per_ms). * ALGEBRAIC[2] is am in component INa (per_ms). * ALGEBRAIC[12] is bm in component INa (per_ms). * ALGEBRAIC[49] is Ca_i in component Ca (mM). * STATES[4] is Na_i in component Na (mM). * STATES[5] is K_i in component K (mM). * STATES[6] is d in component ICaL (dimensionless). * STATES[7] is f in component ICaL (dimensionless). * ALGEBRAIC[3] is dss0 in component ICaL (dimensionless). * ALGEBRAIC[13] is taud in component ICaL (ms). * ALGEBRAIC[22] is dss1 in component ICaL (dimensionless). * ALGEBRAIC[25] is dss in component ICaL (dimensionless). * ALGEBRAIC[4] is fss in component ICaL (dimensionless). * ALGEBRAIC[14] is tauf in component ICaL (ms). * CONSTANTS[13] is gacai in component ICaL (dimensionless). * CONSTANTS[14] is gacao in component ICaL (dimensionless). * CONSTANTS[15] is kmca in component ICaL (mM). * CONSTANTS[16] is pca in component ICaL (L_per_F_ms). * CONSTANTS[17] is pna in component ICaL (L_per_F_ms). * CONSTANTS[18] is ganai in component ICaL (dimensionless). * CONSTANTS[19] is ganao in component ICaL (dimensionless). * CONSTANTS[20] is pk in component ICaL (L_per_F_ms). * CONSTANTS[21] is gaki in component ICaL (dimensionless). * CONSTANTS[22] is gako in component ICaL (dimensionless). * ALGEBRAIC[50] is ibarca in component ICaL (uA_per_uF). * ALGEBRAIC[19] is ibarna in component ICaL (uA_per_uF). * ALGEBRAIC[24] is ibark in component ICaL (uA_per_uF). * ALGEBRAIC[51] is fca in component ICaL (dimensionless). * ALGEBRAIC[32] is EK in component reversal_potentials (mV). * CONSTANTS[23] is GK1max in component IK1 (mS_per_uF). * CONSTANTS[54] is GK1_ in component IK1 (mS_per_uF). * ALGEBRAIC[33] is ak1 in component IK1 (per_ms). * ALGEBRAIC[34] is bk1 in component IK1 (per_ms). * ALGEBRAIC[35] is gK1 in component IK1 (mS_per_uF). * CONSTANTS[24] is gkrmax in component IKr (mS_per_uF). * STATES[8] is xr in component IKr (dimensionless). * ALGEBRAIC[26] is r in component IKr (dimensionless). * ALGEBRAIC[5] is xrss in component IKr (dimensionless). * ALGEBRAIC[15] is tauxr in component IKr (ms). * ALGEBRAIC[39] is EKs in component reversal_potentials (mV). * CONSTANTS[25] is GKsmax in component IKs (mS_per_uF). * STATES[9] is xs1 in component IKs (dimensionless). * STATES[10] is xs2 in component IKs (dimensionless). * ALGEBRAIC[56] is gks in component IKs (mS_per_uF). * ALGEBRAIC[6] is xss in component IKs (dimensionless). * ALGEBRAIC[16] is tauxs in component IKs (ms). * CONSTANTS[26] is kmnai in component INaK (mM). * CONSTANTS[27] is kmko in component INaK (mM). * CONSTANTS[28] is ibarnak in component INaK (uA_per_uF). * ALGEBRAIC[27] is fnak in component INaK (dimensionless). * CONSTANTS[55] is sigma in component INaK (dimensionless). * CONSTANTS[29] is c1 in component INaCa (uA_per_uF). * CONSTANTS[30] is c2 in component INaCa (dimensionless). * CONSTANTS[31] is gammas in component INaCa (dimensionless). * CONSTANTS[32] is GKpmax in component IKp (mS_per_uF). * CONSTANTS[33] is ibarpca in component IpCa (uA_per_uF). * CONSTANTS[34] is kmpca in component IpCa (mM). * CONSTANTS[35] is gcab in component ICab (mS_per_uF). * CONSTANTS[36] is GNab in component INab (mS_per_uF). * ALGEBRAIC[63] is ECa in component reversal_potentials (mV). * STATES[11] is b in component ICaT (dimensionless). * STATES[12] is g in component ICaT (dimensionless). * CONSTANTS[37] is gcat in component ICaT (mS_per_uF). * ALGEBRAIC[7] is bss in component ICaT (dimensionless). * ALGEBRAIC[17] is taub in component ICaT (ms). * ALGEBRAIC[8] is gss in component ICaT (dimensionless). * ALGEBRAIC[18] is aa in component ICaT (dimensionless). * ALGEBRAIC[23] is taug in component ICaT (ms). * CONSTANTS[38] is prnak in component reversal_potentials (dimensionless). * STATES[13] is Ca_JSR_T in component Ca (mM). * STATES[14] is Rel in component Irel (mM_per_ms). * ALGEBRAIC[54] is Rel_ss in component Irel (mM_per_ms). * ALGEBRAIC[43] is tau_Rel in component Irel (ms). * CONSTANTS[39] is K_Relss in component Irel (mM). * CONSTANTS[66] is alpha_Rel in component Irel (mM_per_mV). * CONSTANTS[40] is tau in component Irel (ms). * CONSTANTS[41] is kappa in component Irel (mM_per_mV_ms). * CONSTANTS[42] is qn in component Irel (dimensionless). * ALGEBRAIC[42] is Ca_JSR_free in component Irel (mM). * ALGEBRAIC[40] is bbb in component Irel (mM). * ALGEBRAIC[41] is c in component Irel (mM2). * CONSTANTS[43] is kmcsqn in component Irel (mM). * CONSTANTS[44] is csqnbar in component Irel (mM). * STATES[15] is Ca_NSR in component Ca (mM). * CONSTANTS[45] is kmup in component Iup_Ileak (mM). * CONSTANTS[46] is iupbar in component Iup_Ileak (mM_per_ms). * CONSTANTS[47] is nsrbar in component Iup_Ileak (mM). * ALGEBRAIC[66] is iup in component Iup_Ileak (mM_per_ms). * ALGEBRAIC[44] is ileak in component Iup_Ileak (mM_per_ms). * CONSTANTS[48] is tautr in component Itr (ms). * ALGEBRAIC[45] is itr in component Itr (mM_per_ms). * STATES[16] is Ca_T in component Ca (mM). * STATES[17] is Over in component Ca (dimensionless). * CONSTANTS[49] is cmdnbar in component Ca (mM). * CONSTANTS[50] is trpnbar in component Ca (mM). * CONSTANTS[51] is kmcmdn in component Ca (mM). * CONSTANTS[52] is kmtrpn in component Ca (mM). * ALGEBRAIC[46] is bmyo in component Ca (mM). * ALGEBRAIC[47] is cmyo in component Ca (mM2). * ALGEBRAIC[48] is dmyo in component Ca (mM3). * RATES[0] is d/dt V in component cell (mV). * RATES[1] is d/dt H in component INa (dimensionless). * RATES[2] is d/dt m in component INa (dimensionless). * RATES[3] is d/dt J in component INa (dimensionless). * RATES[6] is d/dt d in component ICaL (dimensionless). * RATES[7] is d/dt f in component ICaL (dimensionless). * RATES[8] is d/dt xr in component IKr (dimensionless). * RATES[9] is d/dt xs1 in component IKs (dimensionless). * RATES[10] is d/dt xs2 in component IKs (dimensionless). * RATES[11] is d/dt b in component ICaT (dimensionless). * RATES[12] is d/dt g in component ICaT (dimensionless). * RATES[14] is d/dt Rel in component Irel (mM_per_ms). * RATES[4] is d/dt Na_i in component Na (mM). * RATES[5] is d/dt K_i in component K (mM). * RATES[17] is d/dt Over in component Ca (dimensionless). * RATES[16] is d/dt Ca_T in component Ca (mM). * RATES[15] is d/dt Ca_NSR in component Ca (mM). * RATES[13] is d/dt Ca_JSR_T in component Ca (mM). */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { CONSTANTS[0] = 96485; CONSTANTS[1] = 8314; CONSTANTS[2] = 310; CONSTANTS[3] = 4.5; CONSTANTS[4] = 140; CONSTANTS[5] = 1.8; STATES[0] = -89.4356034692784; CONSTANTS[6] = 0.01; CONSTANTS[7] = 0.0011; CONSTANTS[8] = 0; CONSTANTS[9] = 400; CONSTANTS[10] = 3; CONSTANTS[11] = -15; STATES[1] = 0.994401369032678; STATES[2] = 0.000734780346592185; STATES[3] = 0.996100688673679; CONSTANTS[12] = 16; STATES[4] = 16.612739313555; STATES[5] = 139.730914103161; STATES[6] = 3.2514786721066e-27; STATES[7] = 0.997404948824816; CONSTANTS[13] = 1; CONSTANTS[14] = 0.341; CONSTANTS[15] = 0.0006; CONSTANTS[16] = 0.00054; CONSTANTS[17] = 6.75e-7; CONSTANTS[18] = 0.75; CONSTANTS[19] = 0.75; CONSTANTS[20] = 1.93e-7; CONSTANTS[21] = 0.75; CONSTANTS[22] = 0.75; CONSTANTS[23] = 0.75; CONSTANTS[24] = 0.02614; STATES[8] = 0.000162194715543637; CONSTANTS[25] = 0.433; STATES[9] = 0.0285147332973946; STATES[10] = 0.0764114040188678; CONSTANTS[26] = 10; CONSTANTS[27] = 1.5; CONSTANTS[28] = 2.25; CONSTANTS[29] = 0.00025; CONSTANTS[30] = 0.0001; CONSTANTS[31] = 0.15; CONSTANTS[32] = 0.00552; CONSTANTS[33] = 1.15; CONSTANTS[34] = 0.0005; CONSTANTS[35] = 0.003016; CONSTANTS[36] = 0.004; STATES[11] = 0.000927461915392873; STATES[12] = 0.952834331760863; CONSTANTS[37] = 0.05; CONSTANTS[38] = 0.01833; STATES[13] = 7.87371650296567; STATES[14] = 1.06874246141923e-23; CONSTANTS[39] = 1; CONSTANTS[40] = 4.75; CONSTANTS[41] = 0.125; CONSTANTS[42] = 9; CONSTANTS[43] = 0.8; CONSTANTS[44] = 10; STATES[15] = 2.71518235696672; CONSTANTS[45] = 0.00092; CONSTANTS[46] = 0.00875; CONSTANTS[47] = 15; CONSTANTS[48] = 120; STATES[16] = 0.0257059808595638; STATES[17] = 1e-12; CONSTANTS[49] = 0.05; CONSTANTS[50] = 0.07; CONSTANTS[51] = 0.00238; CONSTANTS[52] = 0.0005; CONSTANTS[53] = (CONSTANTS[0]/CONSTANTS[2])/CONSTANTS[1]; CONSTANTS[54] = CONSTANTS[23]* pow((CONSTANTS[3]/5.40000), 1.0 / 2); CONSTANTS[55] = (exp(CONSTANTS[4]/67.3000) - 1.00000)/7.00000; CONSTANTS[67] = 0.00000; CONSTANTS[56] = 1000.00* 3.14159265358979*CONSTANTS[7]*CONSTANTS[7]*CONSTANTS[6]; CONSTANTS[57] = 2.00000* 3.14159265358979*CONSTANTS[7]*CONSTANTS[7]+ 2.00000* 3.14159265358979*CONSTANTS[7]*CONSTANTS[6]; CONSTANTS[58] = CONSTANTS[56]*0.240000; CONSTANTS[59] = CONSTANTS[56]*0.0600000; CONSTANTS[60] = CONSTANTS[56]*0.0200000; CONSTANTS[61] = CONSTANTS[57]*2.00000; CONSTANTS[62] = CONSTANTS[56]*0.680000; CONSTANTS[63] = CONSTANTS[56]*0.0552000; CONSTANTS[64] = CONSTANTS[56]*0.00480000; CONSTANTS[65] = CONSTANTS[61]/CONSTANTS[0]; CONSTANTS[66] = CONSTANTS[40]*CONSTANTS[41]; } void computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { RATES[17] = CONSTANTS[67]; ALGEBRAIC[2] = ( 0.320000*1.00000*(STATES[0]+47.1300))/(1.00000 - exp( - 0.100000*(STATES[0]+47.1300))); ALGEBRAIC[12] = 0.0800000*exp(- STATES[0]/11.0000); RATES[2] = ALGEBRAIC[2]*(1.00000 - STATES[2]) - ALGEBRAIC[12]*STATES[2]; ALGEBRAIC[4] = 1.00000/(1.00000+exp((STATES[0]+32.0000)/8.00000))+0.600000/(1.00000+exp((50.0000 - STATES[0])/20.0000)); ALGEBRAIC[14] = 1.00000/( 0.0197000*exp(- pow( 0.0337000*(STATES[0]+10.0000), 2.00000))+0.0200000); RATES[7] = (ALGEBRAIC[4] - STATES[7])/ALGEBRAIC[14]; ALGEBRAIC[5] = 1.00000/(1.00000+exp(- (STATES[0]+10.0850)/4.25000)); ALGEBRAIC[15] = 1.00000/(( 0.00138000*(STATES[0]+14.2000))/(1.00000 - exp( - 0.123000*(STATES[0]+14.2000)))+( 0.000610000*(STATES[0]+38.9000))/(exp( 0.145000*(STATES[0]+38.9000)) - 1.00000)); RATES[8] = (ALGEBRAIC[5] - STATES[8])/ALGEBRAIC[15]; ALGEBRAIC[6] = 1.00000/(1.00000+exp(- (STATES[0] - 1.50000)/16.7000)); ALGEBRAIC[16] = 1.00000/(( 7.19000e-05*(STATES[0]+30.0000))/(1.00000 - exp( - 0.148000*(STATES[0]+30.0000)))+( 0.000131000*(STATES[0]+30.0000))/(exp( 0.0687000*(STATES[0]+30.0000)) - 1.00000)); RATES[9] = (ALGEBRAIC[6] - STATES[9])/ALGEBRAIC[16]; RATES[10] = ((ALGEBRAIC[6] - STATES[10])/ALGEBRAIC[16])/4.00000; ALGEBRAIC[7] = 1.00000/(1.00000+exp(- (STATES[0]+14.0000)/10.8000)); ALGEBRAIC[17] = 3.70000+6.10000/(1.00000+exp((STATES[0]+25.0000)/4.50000)); RATES[11] = (ALGEBRAIC[7] - STATES[11])/ALGEBRAIC[17]; ALGEBRAIC[1] = 1.00000 - 1.00000/(1.00000+exp(- (STATES[0]+40.0000)/0.0240000)); ALGEBRAIC[10] = ALGEBRAIC[1]*0.135000*exp((80.0000+STATES[0])/- 6.80000); ALGEBRAIC[20] = (1.00000 - ALGEBRAIC[1])/( 0.130000*(1.00000+exp((STATES[0]+10.6600)/- 11.1000)))+ ALGEBRAIC[1]*( 3.56000*exp( 0.0790000*STATES[0])+ 3.10000*100000.*exp( 0.350000*STATES[0])); RATES[1] = ALGEBRAIC[10]*(1.00000 - STATES[1]) - ALGEBRAIC[20]*STATES[1]; ALGEBRAIC[11] = ( ALGEBRAIC[1]*( - 127140.*exp( 0.244400*STATES[0]) - 3.47400e-05*exp( - 0.0439100*STATES[0]))*1.00000*(STATES[0]+37.7800))/(1.00000+exp( 0.311000*(STATES[0]+79.2300))); ALGEBRAIC[21] = ( (1.00000 - ALGEBRAIC[1])*0.300000*exp( - 2.53500e-07*STATES[0]))/(1.00000+exp( - 0.100000*(STATES[0]+32.0000)))+( ALGEBRAIC[1]*0.121200*exp( - 0.0105200*STATES[0]))/(1.00000+exp( - 0.137800*(STATES[0]+40.1400))); RATES[3] = ALGEBRAIC[11]*(1.00000 - STATES[3]) - ALGEBRAIC[21]*STATES[3]; ALGEBRAIC[8] = 1.00000/(1.00000+exp((STATES[0]+60.0000)/5.60000)); ALGEBRAIC[18] = 1.00000 - 1.00000/(1.00000+exp(- STATES[0]/0.00240000)); ALGEBRAIC[23] = ALGEBRAIC[18]*1.00000*( - 0.875000*STATES[0]+12.0000)+ 12.0000*(1.00000 - ALGEBRAIC[18]); RATES[12] = (ALGEBRAIC[8] - STATES[12])/ALGEBRAIC[23]; ALGEBRAIC[3] = 1.00000/(1.00000+exp(- (STATES[0]+10.0000)/6.24000)); ALGEBRAIC[13] = ( ALGEBRAIC[3]*1.00000*(1.00000 - exp(- (STATES[0]+10.0000)/6.24000)))/( 0.0350000*(STATES[0]+10.0000)); ALGEBRAIC[22] = 1.00000/(1.00000+exp(- (STATES[0]+60.0000)/0.0240000)); ALGEBRAIC[25] = ALGEBRAIC[3]*ALGEBRAIC[22]; RATES[6] = (ALGEBRAIC[25] - STATES[6])/ALGEBRAIC[13]; ALGEBRAIC[40] = (CONSTANTS[44]+CONSTANTS[43]) - STATES[13]; ALGEBRAIC[41] = STATES[13]*CONSTANTS[43]; ALGEBRAIC[42] = - ALGEBRAIC[40]/2.00000+ pow((pow(ALGEBRAIC[40], 2.00000)+ 4.00000*ALGEBRAIC[41]), 1.0 / 2)/2.00000; ALGEBRAIC[45] = (STATES[15] - ALGEBRAIC[42])/CONSTANTS[48]; RATES[13] = ALGEBRAIC[45] - STATES[14]; ALGEBRAIC[46] = ((CONSTANTS[49]+CONSTANTS[50]) - STATES[16])+CONSTANTS[52]+CONSTANTS[51]; ALGEBRAIC[47] = ( CONSTANTS[51]*CONSTANTS[52] - STATES[16]*(CONSTANTS[52]+CONSTANTS[51]))+ CONSTANTS[50]*CONSTANTS[51]+ CONSTANTS[49]*CONSTANTS[52]; ALGEBRAIC[48] = - CONSTANTS[52]*CONSTANTS[51]*STATES[16]; ALGEBRAIC[49] = (( 2.00000* pow(( ALGEBRAIC[46]*ALGEBRAIC[46] - 3.00000*ALGEBRAIC[47]), 1.0 / 2))/3.00000)*cos(acos((( 9.00000*ALGEBRAIC[46]*ALGEBRAIC[47] - 2.00000*ALGEBRAIC[46]*ALGEBRAIC[46]*ALGEBRAIC[46]) - 27.0000*ALGEBRAIC[48])/( 2.00000*pow( ALGEBRAIC[46]*ALGEBRAIC[46] - 3.00000*ALGEBRAIC[47], 1.50000)))/3.00000) - ALGEBRAIC[46]/3.00000; ALGEBRAIC[50] = ( CONSTANTS[16]*4.00000*STATES[0]*CONSTANTS[0]*CONSTANTS[53]*( CONSTANTS[13]*ALGEBRAIC[49]*exp( 2.00000*STATES[0]*CONSTANTS[53]) - CONSTANTS[14]*CONSTANTS[5]))/(exp( 2.00000*STATES[0]*CONSTANTS[53]) - 1.00000); ALGEBRAIC[51] = 1.00000/(1.00000+ALGEBRAIC[49]/CONSTANTS[15]); ALGEBRAIC[52] = STATES[6]*STATES[7]*ALGEBRAIC[51]*ALGEBRAIC[50]; ALGEBRAIC[54] = ( ALGEBRAIC[52]*CONSTANTS[66])/(1.00000+pow(CONSTANTS[39]/ALGEBRAIC[42], CONSTANTS[42])); ALGEBRAIC[43] = CONSTANTS[40]/(1.00000+0.0123000/ALGEBRAIC[42]); RATES[14] = - (ALGEBRAIC[54]+STATES[14])/ALGEBRAIC[43]; ALGEBRAIC[27] = 1.00000/(1.00000+ 0.124500*exp( - 0.100000*STATES[0]*CONSTANTS[53])+ 0.0365000*CONSTANTS[55]*exp( - STATES[0]*CONSTANTS[53])); ALGEBRAIC[28] = (( CONSTANTS[28]*ALGEBRAIC[27])/(1.00000+pow(CONSTANTS[26]/STATES[4], 2.00000)))/(1.00000+CONSTANTS[27]/CONSTANTS[3]); ALGEBRAIC[32] = log(CONSTANTS[3]/STATES[5])/CONSTANTS[53]; ALGEBRAIC[26] = 1.00000/(1.00000+exp((STATES[0]+9.00000)/22.4000)); ALGEBRAIC[37] = CONSTANTS[24]* pow((CONSTANTS[3]/5.40000), 1.0 / 2)*STATES[8]*ALGEBRAIC[26]*(STATES[0] - ALGEBRAIC[32]); ALGEBRAIC[39] = log((CONSTANTS[3]+ CONSTANTS[38]*CONSTANTS[4])/(STATES[5]+ CONSTANTS[38]*STATES[4]))/CONSTANTS[53]; ALGEBRAIC[56] = CONSTANTS[25]*(1.00000+0.600000/(1.00000+pow(3.80000e-05/ALGEBRAIC[49], 1.40000))); ALGEBRAIC[57] = ALGEBRAIC[56]*STATES[9]*STATES[10]*(STATES[0] - ALGEBRAIC[39]); ALGEBRAIC[33] = 1.02000/(1.00000+exp( 0.238500*((STATES[0] - ALGEBRAIC[32]) - 59.2150))); ALGEBRAIC[34] = ( 0.491240*exp( 0.0803200*((STATES[0] - ALGEBRAIC[32])+5.47600))+ 1.00000*exp( 0.0617500*((STATES[0] - ALGEBRAIC[32]) - 594.310)))/(1.00000+exp( - 0.514300*((STATES[0] - ALGEBRAIC[32])+4.75300))); ALGEBRAIC[35] = ( CONSTANTS[54]*ALGEBRAIC[33])/(ALGEBRAIC[33]+ALGEBRAIC[34]); ALGEBRAIC[36] = ALGEBRAIC[35]*(STATES[0] - ALGEBRAIC[32]); ALGEBRAIC[38] = ( CONSTANTS[32]*(STATES[0] - ALGEBRAIC[32]))/(1.00000+exp((7.48800 - STATES[0])/5.98000)); ALGEBRAIC[24] = ( CONSTANTS[20]*STATES[0]*CONSTANTS[0]*CONSTANTS[53]*( CONSTANTS[21]*STATES[5]*exp( STATES[0]*CONSTANTS[53]) - CONSTANTS[22]*CONSTANTS[3]))/(exp( STATES[0]*CONSTANTS[53]) - 1.00000); ALGEBRAIC[55] = STATES[6]*STATES[7]*ALGEBRAIC[51]*ALGEBRAIC[24]; ALGEBRAIC[0] = floor(VOI/CONSTANTS[9])*CONSTANTS[9]; ALGEBRAIC[9] = (VOI - ALGEBRAIC[0]>=CONSTANTS[8]&&VOI - ALGEBRAIC[0]<=CONSTANTS[8]+CONSTANTS[10] ? CONSTANTS[11] : 0.00000); ALGEBRAIC[58] = ((ALGEBRAIC[37]+ALGEBRAIC[57]+ALGEBRAIC[36]+ALGEBRAIC[38]+ALGEBRAIC[55]) - 2.00000*ALGEBRAIC[28])+ALGEBRAIC[9]; RATES[5] = ( - ALGEBRAIC[58]*CONSTANTS[65])/CONSTANTS[62]; ALGEBRAIC[59] = ( CONSTANTS[29]*exp( (CONSTANTS[31] - 1.00000)*STATES[0]*CONSTANTS[53])*( exp( STATES[0]*CONSTANTS[53])*pow(STATES[4], 3.00000)*CONSTANTS[5] - pow(CONSTANTS[4], 3.00000)*ALGEBRAIC[49]))/(1.00000+ CONSTANTS[30]*exp( (CONSTANTS[31] - 1.00000)*STATES[0]*CONSTANTS[53])*( exp( STATES[0]*CONSTANTS[53])*pow(STATES[4], 3.00000)*CONSTANTS[5]+ pow(CONSTANTS[4], 3.00000)*ALGEBRAIC[49])); ALGEBRAIC[29] = log(CONSTANTS[4]/STATES[4])/CONSTANTS[53]; ALGEBRAIC[30] = CONSTANTS[12]*STATES[2]*STATES[2]*STATES[2]*STATES[1]*STATES[3]*(STATES[0] - ALGEBRAIC[29]); ALGEBRAIC[31] = CONSTANTS[36]*(STATES[0] - ALGEBRAIC[29]); ALGEBRAIC[19] = ( CONSTANTS[17]*STATES[0]*CONSTANTS[0]*CONSTANTS[53]*( CONSTANTS[18]*STATES[4]*exp( STATES[0]*CONSTANTS[53]) - CONSTANTS[19]*CONSTANTS[4]))/(exp( STATES[0]*CONSTANTS[53]) - 1.00000); ALGEBRAIC[53] = STATES[6]*STATES[7]*ALGEBRAIC[51]*ALGEBRAIC[19]; ALGEBRAIC[60] = ALGEBRAIC[30]+ALGEBRAIC[31]+ 3.00000*ALGEBRAIC[59]+ALGEBRAIC[53]+ 3.00000*ALGEBRAIC[28]; RATES[4] = ( - ALGEBRAIC[60]*CONSTANTS[65])/CONSTANTS[62]; ALGEBRAIC[62] = CONSTANTS[35]*(STATES[0] - log(CONSTANTS[5]/ALGEBRAIC[49])/( 2.00000*CONSTANTS[53])); ALGEBRAIC[61] = ( CONSTANTS[33]*ALGEBRAIC[49])/(CONSTANTS[34]+ALGEBRAIC[49]); ALGEBRAIC[63] = (log(CONSTANTS[5]/ALGEBRAIC[49])/2.00000)/CONSTANTS[53]; ALGEBRAIC[64] = CONSTANTS[37]*STATES[11]*STATES[11]*STATES[12]*(STATES[0] - ALGEBRAIC[63]); ALGEBRAIC[65] = ((ALGEBRAIC[52]+ALGEBRAIC[62]+ALGEBRAIC[61]) - 2.00000*ALGEBRAIC[59])+ALGEBRAIC[64]; RATES[0] = - (ALGEBRAIC[60]+ALGEBRAIC[58]+ALGEBRAIC[65]); ALGEBRAIC[66] = ( CONSTANTS[46]*ALGEBRAIC[49])/(ALGEBRAIC[49]+CONSTANTS[45]); ALGEBRAIC[44] = ( CONSTANTS[46]*STATES[15])/CONSTANTS[47]; RATES[16] = ( - ALGEBRAIC[65]*CONSTANTS[65])/( CONSTANTS[62]*2.00000)+( (ALGEBRAIC[44] - ALGEBRAIC[66])*CONSTANTS[63])/CONSTANTS[62]+( STATES[14]*CONSTANTS[64])/CONSTANTS[62]; RATES[15] = (ALGEBRAIC[66] - ( ALGEBRAIC[45]*CONSTANTS[64])/CONSTANTS[63]) - ALGEBRAIC[44]; } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[2] = ( 0.320000*1.00000*(STATES[0]+47.1300))/(1.00000 - exp( - 0.100000*(STATES[0]+47.1300))); ALGEBRAIC[12] = 0.0800000*exp(- STATES[0]/11.0000); ALGEBRAIC[4] = 1.00000/(1.00000+exp((STATES[0]+32.0000)/8.00000))+0.600000/(1.00000+exp((50.0000 - STATES[0])/20.0000)); ALGEBRAIC[14] = 1.00000/( 0.0197000*exp(- pow( 0.0337000*(STATES[0]+10.0000), 2.00000))+0.0200000); ALGEBRAIC[5] = 1.00000/(1.00000+exp(- (STATES[0]+10.0850)/4.25000)); ALGEBRAIC[15] = 1.00000/(( 0.00138000*(STATES[0]+14.2000))/(1.00000 - exp( - 0.123000*(STATES[0]+14.2000)))+( 0.000610000*(STATES[0]+38.9000))/(exp( 0.145000*(STATES[0]+38.9000)) - 1.00000)); ALGEBRAIC[6] = 1.00000/(1.00000+exp(- (STATES[0] - 1.50000)/16.7000)); ALGEBRAIC[16] = 1.00000/(( 7.19000e-05*(STATES[0]+30.0000))/(1.00000 - exp( - 0.148000*(STATES[0]+30.0000)))+( 0.000131000*(STATES[0]+30.0000))/(exp( 0.0687000*(STATES[0]+30.0000)) - 1.00000)); ALGEBRAIC[7] = 1.00000/(1.00000+exp(- (STATES[0]+14.0000)/10.8000)); ALGEBRAIC[17] = 3.70000+6.10000/(1.00000+exp((STATES[0]+25.0000)/4.50000)); ALGEBRAIC[1] = 1.00000 - 1.00000/(1.00000+exp(- (STATES[0]+40.0000)/0.0240000)); ALGEBRAIC[10] = ALGEBRAIC[1]*0.135000*exp((80.0000+STATES[0])/- 6.80000); ALGEBRAIC[20] = (1.00000 - ALGEBRAIC[1])/( 0.130000*(1.00000+exp((STATES[0]+10.6600)/- 11.1000)))+ ALGEBRAIC[1]*( 3.56000*exp( 0.0790000*STATES[0])+ 3.10000*100000.*exp( 0.350000*STATES[0])); ALGEBRAIC[11] = ( ALGEBRAIC[1]*( - 127140.*exp( 0.244400*STATES[0]) - 3.47400e-05*exp( - 0.0439100*STATES[0]))*1.00000*(STATES[0]+37.7800))/(1.00000+exp( 0.311000*(STATES[0]+79.2300))); ALGEBRAIC[21] = ( (1.00000 - ALGEBRAIC[1])*0.300000*exp( - 2.53500e-07*STATES[0]))/(1.00000+exp( - 0.100000*(STATES[0]+32.0000)))+( ALGEBRAIC[1]*0.121200*exp( - 0.0105200*STATES[0]))/(1.00000+exp( - 0.137800*(STATES[0]+40.1400))); ALGEBRAIC[8] = 1.00000/(1.00000+exp((STATES[0]+60.0000)/5.60000)); ALGEBRAIC[18] = 1.00000 - 1.00000/(1.00000+exp(- STATES[0]/0.00240000)); ALGEBRAIC[23] = ALGEBRAIC[18]*1.00000*( - 0.875000*STATES[0]+12.0000)+ 12.0000*(1.00000 - ALGEBRAIC[18]); ALGEBRAIC[3] = 1.00000/(1.00000+exp(- (STATES[0]+10.0000)/6.24000)); ALGEBRAIC[13] = ( ALGEBRAIC[3]*1.00000*(1.00000 - exp(- (STATES[0]+10.0000)/6.24000)))/( 0.0350000*(STATES[0]+10.0000)); ALGEBRAIC[22] = 1.00000/(1.00000+exp(- (STATES[0]+60.0000)/0.0240000)); ALGEBRAIC[25] = ALGEBRAIC[3]*ALGEBRAIC[22]; ALGEBRAIC[40] = (CONSTANTS[44]+CONSTANTS[43]) - STATES[13]; ALGEBRAIC[41] = STATES[13]*CONSTANTS[43]; ALGEBRAIC[42] = - ALGEBRAIC[40]/2.00000+ pow((pow(ALGEBRAIC[40], 2.00000)+ 4.00000*ALGEBRAIC[41]), 1.0 / 2)/2.00000; ALGEBRAIC[45] = (STATES[15] - ALGEBRAIC[42])/CONSTANTS[48]; ALGEBRAIC[46] = ((CONSTANTS[49]+CONSTANTS[50]) - STATES[16])+CONSTANTS[52]+CONSTANTS[51]; ALGEBRAIC[47] = ( CONSTANTS[51]*CONSTANTS[52] - STATES[16]*(CONSTANTS[52]+CONSTANTS[51]))+ CONSTANTS[50]*CONSTANTS[51]+ CONSTANTS[49]*CONSTANTS[52]; ALGEBRAIC[48] = - CONSTANTS[52]*CONSTANTS[51]*STATES[16]; ALGEBRAIC[49] = (( 2.00000* pow(( ALGEBRAIC[46]*ALGEBRAIC[46] - 3.00000*ALGEBRAIC[47]), 1.0 / 2))/3.00000)*cos(acos((( 9.00000*ALGEBRAIC[46]*ALGEBRAIC[47] - 2.00000*ALGEBRAIC[46]*ALGEBRAIC[46]*ALGEBRAIC[46]) - 27.0000*ALGEBRAIC[48])/( 2.00000*pow( ALGEBRAIC[46]*ALGEBRAIC[46] - 3.00000*ALGEBRAIC[47], 1.50000)))/3.00000) - ALGEBRAIC[46]/3.00000; ALGEBRAIC[50] = ( CONSTANTS[16]*4.00000*STATES[0]*CONSTANTS[0]*CONSTANTS[53]*( CONSTANTS[13]*ALGEBRAIC[49]*exp( 2.00000*STATES[0]*CONSTANTS[53]) - CONSTANTS[14]*CONSTANTS[5]))/(exp( 2.00000*STATES[0]*CONSTANTS[53]) - 1.00000); ALGEBRAIC[51] = 1.00000/(1.00000+ALGEBRAIC[49]/CONSTANTS[15]); ALGEBRAIC[52] = STATES[6]*STATES[7]*ALGEBRAIC[51]*ALGEBRAIC[50]; ALGEBRAIC[54] = ( ALGEBRAIC[52]*CONSTANTS[66])/(1.00000+pow(CONSTANTS[39]/ALGEBRAIC[42], CONSTANTS[42])); ALGEBRAIC[43] = CONSTANTS[40]/(1.00000+0.0123000/ALGEBRAIC[42]); ALGEBRAIC[27] = 1.00000/(1.00000+ 0.124500*exp( - 0.100000*STATES[0]*CONSTANTS[53])+ 0.0365000*CONSTANTS[55]*exp( - STATES[0]*CONSTANTS[53])); ALGEBRAIC[28] = (( CONSTANTS[28]*ALGEBRAIC[27])/(1.00000+pow(CONSTANTS[26]/STATES[4], 2.00000)))/(1.00000+CONSTANTS[27]/CONSTANTS[3]); ALGEBRAIC[32] = log(CONSTANTS[3]/STATES[5])/CONSTANTS[53]; ALGEBRAIC[26] = 1.00000/(1.00000+exp((STATES[0]+9.00000)/22.4000)); ALGEBRAIC[37] = CONSTANTS[24]* pow((CONSTANTS[3]/5.40000), 1.0 / 2)*STATES[8]*ALGEBRAIC[26]*(STATES[0] - ALGEBRAIC[32]); ALGEBRAIC[39] = log((CONSTANTS[3]+ CONSTANTS[38]*CONSTANTS[4])/(STATES[5]+ CONSTANTS[38]*STATES[4]))/CONSTANTS[53]; ALGEBRAIC[56] = CONSTANTS[25]*(1.00000+0.600000/(1.00000+pow(3.80000e-05/ALGEBRAIC[49], 1.40000))); ALGEBRAIC[57] = ALGEBRAIC[56]*STATES[9]*STATES[10]*(STATES[0] - ALGEBRAIC[39]); ALGEBRAIC[33] = 1.02000/(1.00000+exp( 0.238500*((STATES[0] - ALGEBRAIC[32]) - 59.2150))); ALGEBRAIC[34] = ( 0.491240*exp( 0.0803200*((STATES[0] - ALGEBRAIC[32])+5.47600))+ 1.00000*exp( 0.0617500*((STATES[0] - ALGEBRAIC[32]) - 594.310)))/(1.00000+exp( - 0.514300*((STATES[0] - ALGEBRAIC[32])+4.75300))); ALGEBRAIC[35] = ( CONSTANTS[54]*ALGEBRAIC[33])/(ALGEBRAIC[33]+ALGEBRAIC[34]); ALGEBRAIC[36] = ALGEBRAIC[35]*(STATES[0] - ALGEBRAIC[32]); ALGEBRAIC[38] = ( CONSTANTS[32]*(STATES[0] - ALGEBRAIC[32]))/(1.00000+exp((7.48800 - STATES[0])/5.98000)); ALGEBRAIC[24] = ( CONSTANTS[20]*STATES[0]*CONSTANTS[0]*CONSTANTS[53]*( CONSTANTS[21]*STATES[5]*exp( STATES[0]*CONSTANTS[53]) - CONSTANTS[22]*CONSTANTS[3]))/(exp( STATES[0]*CONSTANTS[53]) - 1.00000); ALGEBRAIC[55] = STATES[6]*STATES[7]*ALGEBRAIC[51]*ALGEBRAIC[24]; ALGEBRAIC[0] = floor(VOI/CONSTANTS[9])*CONSTANTS[9]; ALGEBRAIC[9] = (VOI - ALGEBRAIC[0]>=CONSTANTS[8]&&VOI - ALGEBRAIC[0]<=CONSTANTS[8]+CONSTANTS[10] ? CONSTANTS[11] : 0.00000); ALGEBRAIC[58] = ((ALGEBRAIC[37]+ALGEBRAIC[57]+ALGEBRAIC[36]+ALGEBRAIC[38]+ALGEBRAIC[55]) - 2.00000*ALGEBRAIC[28])+ALGEBRAIC[9]; ALGEBRAIC[59] = ( CONSTANTS[29]*exp( (CONSTANTS[31] - 1.00000)*STATES[0]*CONSTANTS[53])*( exp( STATES[0]*CONSTANTS[53])*pow(STATES[4], 3.00000)*CONSTANTS[5] - pow(CONSTANTS[4], 3.00000)*ALGEBRAIC[49]))/(1.00000+ CONSTANTS[30]*exp( (CONSTANTS[31] - 1.00000)*STATES[0]*CONSTANTS[53])*( exp( STATES[0]*CONSTANTS[53])*pow(STATES[4], 3.00000)*CONSTANTS[5]+ pow(CONSTANTS[4], 3.00000)*ALGEBRAIC[49])); ALGEBRAIC[29] = log(CONSTANTS[4]/STATES[4])/CONSTANTS[53]; ALGEBRAIC[30] = CONSTANTS[12]*STATES[2]*STATES[2]*STATES[2]*STATES[1]*STATES[3]*(STATES[0] - ALGEBRAIC[29]); ALGEBRAIC[31] = CONSTANTS[36]*(STATES[0] - ALGEBRAIC[29]); ALGEBRAIC[19] = ( CONSTANTS[17]*STATES[0]*CONSTANTS[0]*CONSTANTS[53]*( CONSTANTS[18]*STATES[4]*exp( STATES[0]*CONSTANTS[53]) - CONSTANTS[19]*CONSTANTS[4]))/(exp( STATES[0]*CONSTANTS[53]) - 1.00000); ALGEBRAIC[53] = STATES[6]*STATES[7]*ALGEBRAIC[51]*ALGEBRAIC[19]; ALGEBRAIC[60] = ALGEBRAIC[30]+ALGEBRAIC[31]+ 3.00000*ALGEBRAIC[59]+ALGEBRAIC[53]+ 3.00000*ALGEBRAIC[28]; ALGEBRAIC[62] = CONSTANTS[35]*(STATES[0] - log(CONSTANTS[5]/ALGEBRAIC[49])/( 2.00000*CONSTANTS[53])); ALGEBRAIC[61] = ( CONSTANTS[33]*ALGEBRAIC[49])/(CONSTANTS[34]+ALGEBRAIC[49]); ALGEBRAIC[63] = (log(CONSTANTS[5]/ALGEBRAIC[49])/2.00000)/CONSTANTS[53]; ALGEBRAIC[64] = CONSTANTS[37]*STATES[11]*STATES[11]*STATES[12]*(STATES[0] - ALGEBRAIC[63]); ALGEBRAIC[65] = ((ALGEBRAIC[52]+ALGEBRAIC[62]+ALGEBRAIC[61]) - 2.00000*ALGEBRAIC[59])+ALGEBRAIC[64]; ALGEBRAIC[66] = ( CONSTANTS[46]*ALGEBRAIC[49])/(ALGEBRAIC[49]+CONSTANTS[45]); ALGEBRAIC[44] = ( CONSTANTS[46]*STATES[15])/CONSTANTS[47]; }