/* There are a total of 28 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 108 entries in the constant variable array. */ /* * VOI is time in component environment (second). * STATES[0] is ADP_m in component ADP_m (millimolar). * ALGEBRAIC[25] is V_ANT in component calcium_dynamics (flux). * ALGEBRAIC[23] is V_ATPase in component oxidative_phosphorylation (flux). * ALGEBRAIC[10] is V_SL in component V_SL (flux). * STATES[1] is NADH in component NADH (millimolar). * ALGEBRAIC[19] is V_O2 in component oxidative_phosphorylation (flux). * ALGEBRAIC[8] is V_IDH in component V_IDH (flux). * ALGEBRAIC[9] is V_KGDH in component V_KGDH (flux). * ALGEBRAIC[12] is V_MDH in component V_MDH (flux). * STATES[2] is ISOC in component ISOC (millimolar). * ALGEBRAIC[7] is V_ACO in component V_ACO (flux). * STATES[3] is alpha_KG in component alpha_KG (millimolar). * ALGEBRAIC[14] is V_AAT in component V_AAT (flux). * STATES[4] is SCoA in component SCoA (millimolar). * STATES[5] is Suc in component Suc (millimolar). * ALGEBRAIC[11] is V_SDH in component V_SDH (flux). * STATES[6] is FUM in component FUM (millimolar). * ALGEBRAIC[15] is V_FH in component V_FH (flux). * STATES[7] is MAL in component MAL (millimolar). * STATES[8] is OAA in component OAA (millimolar). * ALGEBRAIC[6] is V_CS in component V_CS (flux). * STATES[9] is ASP in component ASP (millimolar). * ALGEBRAIC[17] is V_C_ASP in component V_C_ASP (flux). * STATES[10] is Ca_m in component Ca_m (micromolar). * CONSTANTS[0] is f in component Ca_m (dimensionless). * ALGEBRAIC[26] is V_uni in component calcium_dynamics (flux). * ALGEBRAIC[27] is V_NaCa in component calcium_dynamics (flux). * ALGEBRAIC[1] is Ca_i in component Ca_i (micromolar). * CONSTANTS[1] is stim_start in component Ca_i (second). * CONSTANTS[2] is stim_end in component Ca_i (second). * ALGEBRAIC[0] is stim_period in component Ca_i (second). * CONSTANTS[3] is stim_duration in component Ca_i (second). * CONSTANTS[4] is pulse_value in component Ca_i (micromolar). * CONSTANTS[5] is Na_i in component Na_i (millimolar). * CONSTANTS[6] is ATP_i in component ATP_i (millimolar). * ALGEBRAIC[2] is ATP_m in component ATP_m (millimolar). * CONSTANTS[7] is Cm in component ATP_m (millimolar). * ALGEBRAIC[3] is ADP_i in component ADP_i (millimolar). * CONSTANTS[8] is pulse_value in component ADP_i (millimolar). * CONSTANTS[9] is GLU in component GLU (millimolar). * CONSTANTS[10] is Mg in component Mg (millimolar). * CONSTANTS[11] is H in component H (millimolar). * CONSTANTS[12] is Pi in component Pi (millimolar). * CONSTANTS[13] is CoA in component CoA (millimolar). * CONSTANTS[14] is AcCoA in component AcCoA (millimolar). * CONSTANTS[15] is FAD in component FAD (millimolar). * CONSTANTS[16] is FADH2 in component FADH2 (millimolar). * ALGEBRAIC[4] is NAD in component NAD (millimolar). * CONSTANTS[17] is C_PN in component NAD (millimolar). * ALGEBRAIC[5] is CIT in component CIT (millimolar). * CONSTANTS[18] is C_Kint in component CIT (millimolar). * STATES[11] is delta_psi_m in component mitochondrial_membrane (volt). * CONSTANTS[19] is R in component mitochondrial_membrane (volt_coulomb_per_mole_kelvin). * CONSTANTS[20] is T in component mitochondrial_membrane (kelvin). * CONSTANTS[21] is F in component mitochondrial_membrane (coulomb_per_mole). * CONSTANTS[22] is C_mito in component mitochondrial_membrane (millimolar_per_volt). * ALGEBRAIC[18] is V_He in component oxidative_phosphorylation (flux). * ALGEBRAIC[20] is V_He_F in component oxidative_phosphorylation (flux). * ALGEBRAIC[24] is V_Hu in component oxidative_phosphorylation (flux). * ALGEBRAIC[21] is V_Hleak in component oxidative_phosphorylation (flux). * CONSTANTS[23] is Km_AcCoA in component V_CS (millimolar). * CONSTANTS[24] is Km_OAA in component V_CS (millimolar). * CONSTANTS[25] is Kcat_CS in component V_CS (first_order_rate_constant). * CONSTANTS[26] is ET_CS in component V_CS (millimolar). * CONSTANTS[27] is Kf_ACO in component V_ACO (first_order_rate_constant). * CONSTANTS[28] is KE_ACO in component V_ACO (dimensionless). * CONSTANTS[29] is Kh_1 in component V_IDH (millimolar). * CONSTANTS[30] is Kh_2 in component V_IDH (millimolar). * CONSTANTS[31] is Km_ISOC in component V_IDH (millimolar). * CONSTANTS[32] is Ka_ADP in component V_IDH (millimolar). * CONSTANTS[33] is Ka_Ca in component V_IDH (micromolar). * CONSTANTS[34] is Km_NAD in component V_IDH (millimolar). * CONSTANTS[35] is Ki_NADH in component V_IDH (millimolar). * CONSTANTS[36] is Kcat_IDH in component V_IDH (first_order_rate_constant). * CONSTANTS[37] is ET_IDH in component V_IDH (millimolar). * CONSTANTS[38] is ni in component V_IDH (dimensionless). * CONSTANTS[39] is Km_alpha_KG in component V_KGDH (millimolar). * CONSTANTS[40] is Kcat_KGDH in component V_KGDH (first_order_rate_constant). * CONSTANTS[41] is ET_KGDH in component V_KGDH (millimolar). * CONSTANTS[42] is Kd_Mg in component V_KGDH (millimolar). * CONSTANTS[43] is Kd_Ca in component V_KGDH (micromolar). * CONSTANTS[44] is n_alpha_KG in component V_KGDH (dimensionless). * CONSTANTS[45] is Km_NAD in component V_KGDH (millimolar). * CONSTANTS[46] is kf_SL in component V_SL (second_order_rate_constant). * CONSTANTS[47] is Ke_SL in component V_SL (millimolar). * CONSTANTS[48] is Kisdh_OAA in component V_SDH (millimolar). * CONSTANTS[49] is Kcat_SDH in component V_SDH (first_order_rate_constant). * CONSTANTS[50] is ET_SDH in component V_SDH (millimolar). * CONSTANTS[51] is Km_Suc in component V_SDH (millimolar). * CONSTANTS[52] is Ki_FUM in component V_SDH (millimolar). * CONSTANTS[53] is Km_MAL in component V_MDH (millimolar). * CONSTANTS[54] is Kcat_MDH in component V_MDH (first_order_rate_constant). * CONSTANTS[55] is ET_MDH in component V_MDH (millimolar). * CONSTANTS[56] is Ki_OAA in component V_MDH (millimolar). * CONSTANTS[106] is fh_a in component V_MDH (dimensionless). * CONSTANTS[107] is fh_i in component V_MDH (dimensionless). * CONSTANTS[57] is Km_NAD in component V_MDH (millimolar). * CONSTANTS[58] is kh1 in component V_MDH (millimolar). * CONSTANTS[59] is kh2 in component V_MDH (millimolar). * CONSTANTS[60] is kh3 in component V_MDH (millimolar). * CONSTANTS[61] is kh4 in component V_MDH (millimolar). * CONSTANTS[62] is k_offset in component V_MDH (dimensionless). * CONSTANTS[63] is Ke_FH in component V_FH (dimensionless). * CONSTANTS[64] is kf_FH in component V_FH (first_order_rate_constant). * CONSTANTS[65] is Ke_AAT in component V_AAT (dimensionless). * CONSTANTS[66] is kf_AAT in component V_AAT (second_order_rate_constant). * CONSTANTS[67] is k_C_ASP in component V_C_ASP (first_order_rate_constant). * CONSTANTS[68] is rho_res in component oxidative_phosphorylation (millimolar). * CONSTANTS[69] is rho_res_F in component oxidative_phosphorylation (millimolar). * CONSTANTS[70] is ra in component oxidative_phosphorylation (first_order_rate_constant). * CONSTANTS[71] is rc1 in component oxidative_phosphorylation (first_order_rate_constant). * ALGEBRAIC[13] is Ares in component oxidative_phosphorylation (volt). * CONSTANTS[105] is Ares_F in component oxidative_phosphorylation (volt). * CONSTANTS[72] is r1 in component oxidative_phosphorylation (dimensionless). * CONSTANTS[73] is r2 in component oxidative_phosphorylation (dimensionless). * CONSTANTS[74] is r3 in component oxidative_phosphorylation (dimensionless). * CONSTANTS[75] is rb in component oxidative_phosphorylation (first_order_rate_constant). * CONSTANTS[76] is rc2 in component oxidative_phosphorylation (first_order_rate_constant). * CONSTANTS[77] is Kres in component oxidative_phosphorylation (dimensionless). * CONSTANTS[78] is Kres_F in component oxidative_phosphorylation (dimensionless). * CONSTANTS[79] is gH in component oxidative_phosphorylation (millimolar_per_second_volt). * CONSTANTS[80] is delta_psi_B in component oxidative_phosphorylation (volt). * CONSTANTS[81] is g in component oxidative_phosphorylation (dimensionless). * ALGEBRAIC[16] is delta_mu_H in component oxidative_phosphorylation (volt). * CONSTANTS[82] is delta_pH in component oxidative_phosphorylation (dimensionless). * CONSTANTS[83] is rho_F1 in component oxidative_phosphorylation (millimolar). * CONSTANTS[84] is pa in component oxidative_phosphorylation (first_order_rate_constant). * CONSTANTS[85] is pc1 in component oxidative_phosphorylation (first_order_rate_constant). * ALGEBRAIC[22] is AF1 in component oxidative_phosphorylation (volt). * CONSTANTS[86] is p1 in component oxidative_phosphorylation (dimensionless). * CONSTANTS[87] is p2 in component oxidative_phosphorylation (dimensionless). * CONSTANTS[88] is p3 in component oxidative_phosphorylation (dimensionless). * CONSTANTS[89] is pb in component oxidative_phosphorylation (first_order_rate_constant). * CONSTANTS[90] is pc2 in component oxidative_phosphorylation (first_order_rate_constant). * CONSTANTS[91] is KF1 in component oxidative_phosphorylation (millimolar). * CONSTANTS[92] is h in component calcium_dynamics (dimensionless). * CONSTANTS[93] is delta_psi_0 in component calcium_dynamics (volt). * CONSTANTS[94] is Vmax_ANT in component calcium_dynamics (flux). * CONSTANTS[95] is L in component calcium_dynamics (dimensionless). * CONSTANTS[96] is na in component calcium_dynamics (dimensionless). * CONSTANTS[97] is Vmax_uni in component calcium_dynamics (flux). * CONSTANTS[98] is K_act in component calcium_dynamics (micromolar). * CONSTANTS[99] is K_trans in component calcium_dynamics (micromolar). * CONSTANTS[100] is n in component calcium_dynamics (dimensionless). * CONSTANTS[101] is Vmax_NaCa in component calcium_dynamics (flux). * CONSTANTS[102] is KNa in component calcium_dynamics (millimolar). * CONSTANTS[103] is KCa in component calcium_dynamics (micromolar). * CONSTANTS[104] is b in component calcium_dynamics (dimensionless). * RATES[0] is d/dt ADP_m in component ADP_m (millimolar). * RATES[1] is d/dt NADH in component NADH (millimolar). * RATES[2] is d/dt ISOC in component ISOC (millimolar). * RATES[3] is d/dt alpha_KG in component alpha_KG (millimolar). * RATES[4] is d/dt SCoA in component SCoA (millimolar). * RATES[5] is d/dt Suc in component Suc (millimolar). * RATES[6] is d/dt FUM in component FUM (millimolar). * RATES[7] is d/dt MAL in component MAL (millimolar). * RATES[8] is d/dt OAA in component OAA (millimolar). * RATES[9] is d/dt ASP in component ASP (millimolar). * RATES[10] is d/dt Ca_m in component Ca_m (micromolar). * RATES[11] is d/dt delta_psi_m in component mitochondrial_membrane (volt). */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { STATES[0] = 0.1; STATES[1] = 0.01; STATES[2] = 0.01; STATES[3] = 0.01; STATES[4] = 0.01; STATES[5] = 0.01; STATES[6] = 0.01; STATES[7] = 0.01; STATES[8] = 0.01; STATES[9] = 0.01; STATES[10] = 0.01; CONSTANTS[0] = 0.0003; CONSTANTS[1] = 0; CONSTANTS[2] = 10000; CONSTANTS[3] = 0.4; CONSTANTS[4] = 1; CONSTANTS[5] = 10.0; CONSTANTS[6] = 6.5; CONSTANTS[7] = 15.0; CONSTANTS[8] = 0.15; CONSTANTS[9] = 20; CONSTANTS[10] = 0.4; CONSTANTS[11] = 2.5E-5; CONSTANTS[12] = 20.0; CONSTANTS[13] = 0.02; CONSTANTS[14] = 0.0002; CONSTANTS[15] = 0.01; CONSTANTS[16] = 1.24; CONSTANTS[17] = 10.0; CONSTANTS[18] = 1.0; STATES[11] = 0.01; CONSTANTS[19] = 8.315; CONSTANTS[20] = 310.16; CONSTANTS[21] = 96480; CONSTANTS[22] = 1.812; CONSTANTS[23] = 1.26E-2; CONSTANTS[24] = 6.4E-4; CONSTANTS[25] = 3.2; CONSTANTS[26] = 0.4; CONSTANTS[27] = 12.5; CONSTANTS[28] = 2.22; CONSTANTS[29] = 8.1E-5; CONSTANTS[30] = 5.98E-5; CONSTANTS[31] = 1.52; CONSTANTS[32] = 6.2E-2; CONSTANTS[33] = 1.41; CONSTANTS[34] = 0.923; CONSTANTS[35] = 0.19; CONSTANTS[36] = 1.94; CONSTANTS[37] = 0.109; CONSTANTS[38] = 1; CONSTANTS[39] = 1.94; CONSTANTS[40] = 0.15; CONSTANTS[41] = 0.5; CONSTANTS[42] = 0.0308; CONSTANTS[43] = 1.27; CONSTANTS[44] = 1.2; CONSTANTS[45] = 38.7; CONSTANTS[46] = 0.127; CONSTANTS[47] = 3.115; CONSTANTS[48] = 0.15; CONSTANTS[49] = 1.0; CONSTANTS[50] = 0.5; CONSTANTS[51] = 3.0E-2; CONSTANTS[52] = 1.3; CONSTANTS[53] = 1.493; CONSTANTS[54] = 2.775E1; CONSTANTS[55] = 0.154; CONSTANTS[56] = 3.1E-3; CONSTANTS[57] = 0.2244; CONSTANTS[58] = 1.13E-5; CONSTANTS[59] = 26.7; CONSTANTS[60] = 6.68E-9; CONSTANTS[61] = 5.62E-6; CONSTANTS[62] = 3.99E-2; CONSTANTS[63] = 1.0; CONSTANTS[64] = 0.83; CONSTANTS[65] = 6.6; CONSTANTS[66] = 0.644; CONSTANTS[67] = 0.01; CONSTANTS[68] = 0.0006; CONSTANTS[69] = 0.0045; CONSTANTS[70] = 6.394E-10; CONSTANTS[71] = 2.656E-19; CONSTANTS[72] = 2.077E-18; CONSTANTS[73] = 1.728E-9; CONSTANTS[74] = 1.059E-26; CONSTANTS[75] = 1.762E-13; CONSTANTS[76] = 8.632E-27; CONSTANTS[77] = 1.35E18; CONSTANTS[78] = 5.765E13; CONSTANTS[79] = 0.01; CONSTANTS[80] = 0.05; CONSTANTS[81] = 0.85; CONSTANTS[82] = -0.6; CONSTANTS[83] = 0.06; CONSTANTS[84] = 1.656E-5; CONSTANTS[85] = 9.651E-14; CONSTANTS[86] = 1.346E-8; CONSTANTS[87] = 7.739E-7; CONSTANTS[88] = 6.65E-15; CONSTANTS[89] = 3.373E-7; CONSTANTS[90] = 4.585E-14; CONSTANTS[91] = 1.71E6; CONSTANTS[92] = 0.5; CONSTANTS[93] = 0.091; CONSTANTS[94] = 0.05; CONSTANTS[95] = 110.0; CONSTANTS[96] = 2.8; CONSTANTS[97] = 0.000625; CONSTANTS[98] = 0.38; CONSTANTS[99] = 19.0; CONSTANTS[100] = 3.0; CONSTANTS[101] = 0.005; CONSTANTS[102] = 9.4; CONSTANTS[103] = 3.75E-1; CONSTANTS[104] = 0.5; CONSTANTS[105] = (( CONSTANTS[19]*CONSTANTS[20])/CONSTANTS[21])*log( CONSTANTS[78]*pow(CONSTANTS[16]/CONSTANTS[15], 0.500000)); CONSTANTS[106] = 1.00000/(1.00000+CONSTANTS[11]/CONSTANTS[58]+pow(CONSTANTS[11], 2.00000)/( CONSTANTS[58]*CONSTANTS[59]))+CONSTANTS[62]; CONSTANTS[107] = pow(1.00000/(1.00000+CONSTANTS[60]/CONSTANTS[11]+( CONSTANTS[60]*CONSTANTS[61])/pow(CONSTANTS[11], 2.00000)), 2.00000); } void computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[4] = CONSTANTS[17] - STATES[1]; ALGEBRAIC[8] = ( CONSTANTS[36]*CONSTANTS[37])/(1.00000+CONSTANTS[11]/CONSTANTS[29]+CONSTANTS[30]/CONSTANTS[11]+pow(CONSTANTS[31]/STATES[2], CONSTANTS[38])/( (1.00000+STATES[0]/CONSTANTS[32])*(1.00000+STATES[10]/CONSTANTS[33]))+ (CONSTANTS[34]/ALGEBRAIC[4])*(1.00000+STATES[1]/CONSTANTS[35])+( pow(CONSTANTS[31]/STATES[2], CONSTANTS[38])*(CONSTANTS[34]/ALGEBRAIC[4])*(1.00000+STATES[1]/CONSTANTS[35]))/( (1.00000+STATES[0]/CONSTANTS[32])*(1.00000+STATES[10]/CONSTANTS[33]))); ALGEBRAIC[5] = CONSTANTS[18] - (STATES[2]+STATES[3]+STATES[4]+STATES[5]+STATES[6]+STATES[7]+STATES[8]); ALGEBRAIC[7] = CONSTANTS[27]*(ALGEBRAIC[5] - STATES[2]/CONSTANTS[28]); RATES[2] = ALGEBRAIC[7] - ALGEBRAIC[8]; ALGEBRAIC[2] = CONSTANTS[7] - STATES[0]; ALGEBRAIC[10] = CONSTANTS[46]*( STATES[4]*STATES[0] - ( STATES[5]*ALGEBRAIC[2]*CONSTANTS[13])/CONSTANTS[47]); ALGEBRAIC[9] = ( CONSTANTS[40]*CONSTANTS[41])/(1.00000+pow(CONSTANTS[39]/STATES[3], CONSTANTS[44])/( (1.00000+CONSTANTS[10]/CONSTANTS[42])*(1.00000+STATES[10]/CONSTANTS[43]))+(CONSTANTS[45]/ALGEBRAIC[4])/( (1.00000+CONSTANTS[10]/CONSTANTS[42])*(1.00000+STATES[10]/CONSTANTS[43]))); RATES[4] = ALGEBRAIC[9] - ALGEBRAIC[10]; ALGEBRAIC[11] = ( CONSTANTS[49]*CONSTANTS[50])/(1.00000+ (CONSTANTS[51]/STATES[5])*(1.00000+STATES[8]/CONSTANTS[48])*(1.00000+STATES[6]/CONSTANTS[52])); RATES[5] = ALGEBRAIC[10] - ALGEBRAIC[11]; ALGEBRAIC[14] = CONSTANTS[66]*( STATES[8]*CONSTANTS[9] - ( STATES[3]*STATES[9])/CONSTANTS[65]); RATES[3] = ALGEBRAIC[14]+ALGEBRAIC[8]+- ALGEBRAIC[9]; ALGEBRAIC[15] = CONSTANTS[64]*(STATES[6] - STATES[7]/CONSTANTS[63]); RATES[6] = ALGEBRAIC[11] - ALGEBRAIC[15]; ALGEBRAIC[12] = ( CONSTANTS[54]*CONSTANTS[55]*CONSTANTS[106]*CONSTANTS[107])/(1.00000+ (CONSTANTS[53]/STATES[7])*(1.00000+STATES[8]/CONSTANTS[56])+CONSTANTS[57]/ALGEBRAIC[4]+ (CONSTANTS[53]/STATES[7])*(1.00000+STATES[8]/CONSTANTS[56])*(CONSTANTS[57]/ALGEBRAIC[4])); RATES[7] = ALGEBRAIC[15] - ALGEBRAIC[12]; ALGEBRAIC[6] = ( CONSTANTS[25]*CONSTANTS[26])/(1.00000+CONSTANTS[23]/CONSTANTS[14]+CONSTANTS[24]/STATES[8]+ (CONSTANTS[23]/CONSTANTS[14])*(CONSTANTS[24]/STATES[8])); RATES[8] = ALGEBRAIC[12] - (ALGEBRAIC[6]+ALGEBRAIC[14]); ALGEBRAIC[17] = CONSTANTS[67]*STATES[9]; RATES[9] = ALGEBRAIC[14] - ALGEBRAIC[17]; ALGEBRAIC[13] = (( CONSTANTS[19]*CONSTANTS[20])/CONSTANTS[21])*log( CONSTANTS[77]*pow(STATES[1]/ALGEBRAIC[4], 0.500000)); ALGEBRAIC[16] = (( CONSTANTS[19]*CONSTANTS[20])/CONSTANTS[21])*CONSTANTS[82]+STATES[11]; ALGEBRAIC[19] = 0.500000*CONSTANTS[68]*((( (CONSTANTS[70]+ CONSTANTS[71]*exp(( 6.00000*CONSTANTS[21]*CONSTANTS[80])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( ALGEBRAIC[13]*CONSTANTS[21])/( CONSTANTS[19]*CONSTANTS[20])) - CONSTANTS[70]*exp(( CONSTANTS[81]*6.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))+ CONSTANTS[76]*exp(( ALGEBRAIC[13]*CONSTANTS[21])/( CONSTANTS[19]*CONSTANTS[20]))*exp(( CONSTANTS[81]*6.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))/( (1.00000+ CONSTANTS[72]*exp(( CONSTANTS[21]*ALGEBRAIC[13])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( 6.00000*CONSTANTS[21]*CONSTANTS[80])/( CONSTANTS[19]*CONSTANTS[20]))+ (CONSTANTS[73]+ CONSTANTS[74]*exp(( CONSTANTS[21]*ALGEBRAIC[13])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( CONSTANTS[81]*6.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))); RATES[1] = - ALGEBRAIC[19]+ALGEBRAIC[8]+ALGEBRAIC[9]+ALGEBRAIC[12]; ALGEBRAIC[3] = (VOI>=100.000&&VOI<300.000 ? CONSTANTS[8] : 0.0500000); ALGEBRAIC[25] = CONSTANTS[94]*((1.00000 - ( 0.0500000*CONSTANTS[6]*0.450000*0.800000*STATES[0])/( 0.450000*ALGEBRAIC[3]*0.0500000*ALGEBRAIC[2]))/( (1.00000+ (( 0.0500000*CONSTANTS[6])/( 0.450000*ALGEBRAIC[3]))*exp(( - CONSTANTS[92]*CONSTANTS[21]*CONSTANTS[93])/( CONSTANTS[19]*CONSTANTS[20])))*(1.00000+( 0.450000*0.800000*STATES[0])/( 0.0500000*ALGEBRAIC[2])))); ALGEBRAIC[22] = (( CONSTANTS[19]*CONSTANTS[20])/CONSTANTS[21])*log( CONSTANTS[91]*(ALGEBRAIC[2]/( STATES[0]*CONSTANTS[12]))); ALGEBRAIC[23] = - CONSTANTS[83]*(( ( 100.000*CONSTANTS[84]+ CONSTANTS[85]*exp(( 3.00000*CONSTANTS[21]*CONSTANTS[80])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( ALGEBRAIC[22]*CONSTANTS[21])/( CONSTANTS[19]*CONSTANTS[20])) - ( CONSTANTS[84]*exp(( 3.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20]))+ CONSTANTS[90]*exp(( ALGEBRAIC[22]*CONSTANTS[21])/( CONSTANTS[19]*CONSTANTS[20]))*exp(( 3.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20]))))/( (1.00000+ CONSTANTS[86]*exp(( CONSTANTS[21]*ALGEBRAIC[22])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( 3.00000*CONSTANTS[21]*CONSTANTS[80])/( CONSTANTS[19]*CONSTANTS[20]))+ (CONSTANTS[87]+ CONSTANTS[88]*exp(( CONSTANTS[21]*ALGEBRAIC[22])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( 3.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))); RATES[0] = ALGEBRAIC[25] - (ALGEBRAIC[23]+ALGEBRAIC[10]); ALGEBRAIC[0] = (VOI>=100.000&&VOI<300.000 ? 0.500000 : 4.00000); ALGEBRAIC[1] = (VOI>=CONSTANTS[1]&&VOI<=CONSTANTS[2]&&(VOI - CONSTANTS[1]) - floor((VOI - CONSTANTS[1])/ALGEBRAIC[0])*ALGEBRAIC[0]<=CONSTANTS[3] ? CONSTANTS[4] : 0.100000); ALGEBRAIC[26] = CONSTANTS[97]*(( (ALGEBRAIC[1]/CONSTANTS[99])*pow(1.00000+ALGEBRAIC[1]/CONSTANTS[99], 3.00000)*(( 2.00000*CONSTANTS[21]*(STATES[11] - CONSTANTS[93]))/( CONSTANTS[19]*CONSTANTS[20])))/(pow(1.00000+ALGEBRAIC[1]/CONSTANTS[99], 4.00000)+ (CONSTANTS[95]/pow(1.00000+ALGEBRAIC[1]/CONSTANTS[98], CONSTANTS[96]))*(1.00000 - exp(( -2.00000*CONSTANTS[21]*(STATES[11] - CONSTANTS[93]))/( CONSTANTS[19]*CONSTANTS[20]))))); ALGEBRAIC[27] = CONSTANTS[101]*(( exp(( CONSTANTS[104]*CONSTANTS[21]*(STATES[11] - CONSTANTS[93]))/( CONSTANTS[19]*CONSTANTS[20]))*exp(log(ALGEBRAIC[1]/STATES[10])))/( pow(1.00000+CONSTANTS[102]/CONSTANTS[5], CONSTANTS[100])*(1.00000+CONSTANTS[103]/STATES[10]))); RATES[10] = CONSTANTS[0]*1.00000*(ALGEBRAIC[26] - ALGEBRAIC[27]); ALGEBRAIC[18] = 6.00000*CONSTANTS[68]*(( CONSTANTS[70]*exp(( CONSTANTS[21]*ALGEBRAIC[13])/( CONSTANTS[19]*CONSTANTS[20])) - (CONSTANTS[70]+CONSTANTS[75])*exp(( CONSTANTS[81]*6.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))/( (1.00000+ CONSTANTS[72]*exp(( CONSTANTS[21]*ALGEBRAIC[13])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( 6.00000*CONSTANTS[21]*CONSTANTS[80])/( CONSTANTS[19]*CONSTANTS[20]))+ (CONSTANTS[73]+ CONSTANTS[74]*exp(( CONSTANTS[21]*ALGEBRAIC[13])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( CONSTANTS[81]*6.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))); ALGEBRAIC[20] = 6.00000*CONSTANTS[69]*(( CONSTANTS[70]*exp(( CONSTANTS[21]*CONSTANTS[105])/( CONSTANTS[19]*CONSTANTS[20])) - (CONSTANTS[70]+CONSTANTS[75])*exp(( CONSTANTS[81]*6.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))/( (1.00000+ CONSTANTS[72]*exp(( CONSTANTS[21]*CONSTANTS[105])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( 6.00000*CONSTANTS[21]*CONSTANTS[80])/( CONSTANTS[19]*CONSTANTS[20]))+ (CONSTANTS[73]+ CONSTANTS[74]*exp(( CONSTANTS[21]*CONSTANTS[105])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( CONSTANTS[81]*6.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))); ALGEBRAIC[24] = -3.00000*CONSTANTS[83]*(( 100.000*CONSTANTS[84]*(1.00000+exp(( CONSTANTS[21]*ALGEBRAIC[22])/( CONSTANTS[19]*CONSTANTS[20]))) - (CONSTANTS[84]+CONSTANTS[89])*exp(( 3.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))/( (1.00000+ CONSTANTS[86]*exp(( CONSTANTS[21]*ALGEBRAIC[22])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( 3.00000*CONSTANTS[21]*CONSTANTS[80])/( CONSTANTS[19]*CONSTANTS[20]))+ (CONSTANTS[87]+ CONSTANTS[88]*exp(( CONSTANTS[21]*ALGEBRAIC[22])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( 3.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))); ALGEBRAIC[21] = CONSTANTS[79]*ALGEBRAIC[16]; RATES[11] = (ALGEBRAIC[18]+ALGEBRAIC[20]+- (ALGEBRAIC[24]+ALGEBRAIC[25]+ALGEBRAIC[21]+ALGEBRAIC[27]+ 2.00000*ALGEBRAIC[26]))/CONSTANTS[22]; } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[4] = CONSTANTS[17] - STATES[1]; ALGEBRAIC[8] = ( CONSTANTS[36]*CONSTANTS[37])/(1.00000+CONSTANTS[11]/CONSTANTS[29]+CONSTANTS[30]/CONSTANTS[11]+pow(CONSTANTS[31]/STATES[2], CONSTANTS[38])/( (1.00000+STATES[0]/CONSTANTS[32])*(1.00000+STATES[10]/CONSTANTS[33]))+ (CONSTANTS[34]/ALGEBRAIC[4])*(1.00000+STATES[1]/CONSTANTS[35])+( pow(CONSTANTS[31]/STATES[2], CONSTANTS[38])*(CONSTANTS[34]/ALGEBRAIC[4])*(1.00000+STATES[1]/CONSTANTS[35]))/( (1.00000+STATES[0]/CONSTANTS[32])*(1.00000+STATES[10]/CONSTANTS[33]))); ALGEBRAIC[5] = CONSTANTS[18] - (STATES[2]+STATES[3]+STATES[4]+STATES[5]+STATES[6]+STATES[7]+STATES[8]); ALGEBRAIC[7] = CONSTANTS[27]*(ALGEBRAIC[5] - STATES[2]/CONSTANTS[28]); ALGEBRAIC[2] = CONSTANTS[7] - STATES[0]; ALGEBRAIC[10] = CONSTANTS[46]*( STATES[4]*STATES[0] - ( STATES[5]*ALGEBRAIC[2]*CONSTANTS[13])/CONSTANTS[47]); ALGEBRAIC[9] = ( CONSTANTS[40]*CONSTANTS[41])/(1.00000+pow(CONSTANTS[39]/STATES[3], CONSTANTS[44])/( (1.00000+CONSTANTS[10]/CONSTANTS[42])*(1.00000+STATES[10]/CONSTANTS[43]))+(CONSTANTS[45]/ALGEBRAIC[4])/( (1.00000+CONSTANTS[10]/CONSTANTS[42])*(1.00000+STATES[10]/CONSTANTS[43]))); ALGEBRAIC[11] = ( CONSTANTS[49]*CONSTANTS[50])/(1.00000+ (CONSTANTS[51]/STATES[5])*(1.00000+STATES[8]/CONSTANTS[48])*(1.00000+STATES[6]/CONSTANTS[52])); ALGEBRAIC[14] = CONSTANTS[66]*( STATES[8]*CONSTANTS[9] - ( STATES[3]*STATES[9])/CONSTANTS[65]); ALGEBRAIC[15] = CONSTANTS[64]*(STATES[6] - STATES[7]/CONSTANTS[63]); ALGEBRAIC[12] = ( CONSTANTS[54]*CONSTANTS[55]*CONSTANTS[106]*CONSTANTS[107])/(1.00000+ (CONSTANTS[53]/STATES[7])*(1.00000+STATES[8]/CONSTANTS[56])+CONSTANTS[57]/ALGEBRAIC[4]+ (CONSTANTS[53]/STATES[7])*(1.00000+STATES[8]/CONSTANTS[56])*(CONSTANTS[57]/ALGEBRAIC[4])); ALGEBRAIC[6] = ( CONSTANTS[25]*CONSTANTS[26])/(1.00000+CONSTANTS[23]/CONSTANTS[14]+CONSTANTS[24]/STATES[8]+ (CONSTANTS[23]/CONSTANTS[14])*(CONSTANTS[24]/STATES[8])); ALGEBRAIC[17] = CONSTANTS[67]*STATES[9]; ALGEBRAIC[13] = (( CONSTANTS[19]*CONSTANTS[20])/CONSTANTS[21])*log( CONSTANTS[77]*pow(STATES[1]/ALGEBRAIC[4], 0.500000)); ALGEBRAIC[16] = (( CONSTANTS[19]*CONSTANTS[20])/CONSTANTS[21])*CONSTANTS[82]+STATES[11]; ALGEBRAIC[19] = 0.500000*CONSTANTS[68]*((( (CONSTANTS[70]+ CONSTANTS[71]*exp(( 6.00000*CONSTANTS[21]*CONSTANTS[80])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( ALGEBRAIC[13]*CONSTANTS[21])/( CONSTANTS[19]*CONSTANTS[20])) - CONSTANTS[70]*exp(( CONSTANTS[81]*6.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))+ CONSTANTS[76]*exp(( ALGEBRAIC[13]*CONSTANTS[21])/( CONSTANTS[19]*CONSTANTS[20]))*exp(( CONSTANTS[81]*6.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))/( (1.00000+ CONSTANTS[72]*exp(( CONSTANTS[21]*ALGEBRAIC[13])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( 6.00000*CONSTANTS[21]*CONSTANTS[80])/( CONSTANTS[19]*CONSTANTS[20]))+ (CONSTANTS[73]+ CONSTANTS[74]*exp(( CONSTANTS[21]*ALGEBRAIC[13])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( CONSTANTS[81]*6.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))); ALGEBRAIC[3] = (VOI>=100.000&&VOI<300.000 ? CONSTANTS[8] : 0.0500000); ALGEBRAIC[25] = CONSTANTS[94]*((1.00000 - ( 0.0500000*CONSTANTS[6]*0.450000*0.800000*STATES[0])/( 0.450000*ALGEBRAIC[3]*0.0500000*ALGEBRAIC[2]))/( (1.00000+ (( 0.0500000*CONSTANTS[6])/( 0.450000*ALGEBRAIC[3]))*exp(( - CONSTANTS[92]*CONSTANTS[21]*CONSTANTS[93])/( CONSTANTS[19]*CONSTANTS[20])))*(1.00000+( 0.450000*0.800000*STATES[0])/( 0.0500000*ALGEBRAIC[2])))); ALGEBRAIC[22] = (( CONSTANTS[19]*CONSTANTS[20])/CONSTANTS[21])*log( CONSTANTS[91]*(ALGEBRAIC[2]/( STATES[0]*CONSTANTS[12]))); ALGEBRAIC[23] = - CONSTANTS[83]*(( ( 100.000*CONSTANTS[84]+ CONSTANTS[85]*exp(( 3.00000*CONSTANTS[21]*CONSTANTS[80])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( ALGEBRAIC[22]*CONSTANTS[21])/( CONSTANTS[19]*CONSTANTS[20])) - ( CONSTANTS[84]*exp(( 3.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20]))+ CONSTANTS[90]*exp(( ALGEBRAIC[22]*CONSTANTS[21])/( CONSTANTS[19]*CONSTANTS[20]))*exp(( 3.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20]))))/( (1.00000+ CONSTANTS[86]*exp(( CONSTANTS[21]*ALGEBRAIC[22])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( 3.00000*CONSTANTS[21]*CONSTANTS[80])/( CONSTANTS[19]*CONSTANTS[20]))+ (CONSTANTS[87]+ CONSTANTS[88]*exp(( CONSTANTS[21]*ALGEBRAIC[22])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( 3.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))); ALGEBRAIC[0] = (VOI>=100.000&&VOI<300.000 ? 0.500000 : 4.00000); ALGEBRAIC[1] = (VOI>=CONSTANTS[1]&&VOI<=CONSTANTS[2]&&(VOI - CONSTANTS[1]) - floor((VOI - CONSTANTS[1])/ALGEBRAIC[0])*ALGEBRAIC[0]<=CONSTANTS[3] ? CONSTANTS[4] : 0.100000); ALGEBRAIC[26] = CONSTANTS[97]*(( (ALGEBRAIC[1]/CONSTANTS[99])*pow(1.00000+ALGEBRAIC[1]/CONSTANTS[99], 3.00000)*(( 2.00000*CONSTANTS[21]*(STATES[11] - CONSTANTS[93]))/( CONSTANTS[19]*CONSTANTS[20])))/(pow(1.00000+ALGEBRAIC[1]/CONSTANTS[99], 4.00000)+ (CONSTANTS[95]/pow(1.00000+ALGEBRAIC[1]/CONSTANTS[98], CONSTANTS[96]))*(1.00000 - exp(( -2.00000*CONSTANTS[21]*(STATES[11] - CONSTANTS[93]))/( CONSTANTS[19]*CONSTANTS[20]))))); ALGEBRAIC[27] = CONSTANTS[101]*(( exp(( CONSTANTS[104]*CONSTANTS[21]*(STATES[11] - CONSTANTS[93]))/( CONSTANTS[19]*CONSTANTS[20]))*exp(log(ALGEBRAIC[1]/STATES[10])))/( pow(1.00000+CONSTANTS[102]/CONSTANTS[5], CONSTANTS[100])*(1.00000+CONSTANTS[103]/STATES[10]))); ALGEBRAIC[18] = 6.00000*CONSTANTS[68]*(( CONSTANTS[70]*exp(( CONSTANTS[21]*ALGEBRAIC[13])/( CONSTANTS[19]*CONSTANTS[20])) - (CONSTANTS[70]+CONSTANTS[75])*exp(( CONSTANTS[81]*6.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))/( (1.00000+ CONSTANTS[72]*exp(( CONSTANTS[21]*ALGEBRAIC[13])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( 6.00000*CONSTANTS[21]*CONSTANTS[80])/( CONSTANTS[19]*CONSTANTS[20]))+ (CONSTANTS[73]+ CONSTANTS[74]*exp(( CONSTANTS[21]*ALGEBRAIC[13])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( CONSTANTS[81]*6.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))); ALGEBRAIC[20] = 6.00000*CONSTANTS[69]*(( CONSTANTS[70]*exp(( CONSTANTS[21]*CONSTANTS[105])/( CONSTANTS[19]*CONSTANTS[20])) - (CONSTANTS[70]+CONSTANTS[75])*exp(( CONSTANTS[81]*6.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))/( (1.00000+ CONSTANTS[72]*exp(( CONSTANTS[21]*CONSTANTS[105])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( 6.00000*CONSTANTS[21]*CONSTANTS[80])/( CONSTANTS[19]*CONSTANTS[20]))+ (CONSTANTS[73]+ CONSTANTS[74]*exp(( CONSTANTS[21]*CONSTANTS[105])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( CONSTANTS[81]*6.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))); ALGEBRAIC[24] = -3.00000*CONSTANTS[83]*(( 100.000*CONSTANTS[84]*(1.00000+exp(( CONSTANTS[21]*ALGEBRAIC[22])/( CONSTANTS[19]*CONSTANTS[20]))) - (CONSTANTS[84]+CONSTANTS[89])*exp(( 3.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))/( (1.00000+ CONSTANTS[86]*exp(( CONSTANTS[21]*ALGEBRAIC[22])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( 3.00000*CONSTANTS[21]*CONSTANTS[80])/( CONSTANTS[19]*CONSTANTS[20]))+ (CONSTANTS[87]+ CONSTANTS[88]*exp(( CONSTANTS[21]*ALGEBRAIC[22])/( CONSTANTS[19]*CONSTANTS[20])))*exp(( 3.00000*CONSTANTS[21]*ALGEBRAIC[16])/( CONSTANTS[19]*CONSTANTS[20])))); ALGEBRAIC[21] = CONSTANTS[79]*ALGEBRAIC[16]; }