/* There are a total of 6 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 43 entries in the constant variable array. */ /* * VOI is time in component environment (minute). * STATES[0] is Asp in component Asp (millimolar). * ALGEBRAIC[0] is vAKI in component vAKI (flux). * ALGEBRAIC[4] is vAKIII in component vAKIII (flux). * STATES[1] is aspp in component aspp (millimolar). * ALGEBRAIC[1] is vASD in component vASD (flux). * STATES[2] is ASA in component ASA (millimolar). * ALGEBRAIC[2] is vHDH in component vHDH (flux). * STATES[3] is hs in component hs (millimolar). * ALGEBRAIC[3] is vHK in component vHK (flux). * STATES[4] is hsp in component hsp (millimolar). * ALGEBRAIC[5] is vTS in component vTS (flux). * STATES[5] is Thr in component Thr (millimolar). * STATES[6] is ATP in component ATP (millimolar). * STATES[7] is ADP in component ADP (millimolar). * STATES[8] is NADPH in component NADPH (millimolar). * STATES[9] is NADP in component NADP (millimolar). * STATES[10] is Pi in component Pi (millimolar). * STATES[11] is Lys in component Lys (millimolar). * CONSTANTS[0] is K_asp in component vAKI (millimolar). * CONSTANTS[1] is K_ATP in component vAKI (millimolar). * CONSTANTS[2] is K_aspp in component vAKI (millimolar). * CONSTANTS[3] is K_ADP in component vAKI (millimolar). * CONSTANTS[4] is K_iThr in component vAKI (millimolar). * CONSTANTS[5] is alpha in component vAKI (dimensionless). * CONSTANTS[6] is h_Thr in component vAKI (dimensionless). * CONSTANTS[7] is K_eq in component vAKI (dimensionless). * CONSTANTS[8] is V_max_AK_I in component vAKI (flux). * CONSTANTS[9] is K_aspp in component vASD (millimolar). * CONSTANTS[10] is K_NADPH in component vASD (millimolar). * CONSTANTS[11] is K_ASA in component vASD (millimolar). * CONSTANTS[12] is K_NADP in component vASD (millimolar). * CONSTANTS[13] is K_Pi in component vASD (millimolar). * CONSTANTS[14] is K_eq in component vASD (millimolar). * CONSTANTS[15] is V_max_ASD in component vASD (flux). * CONSTANTS[16] is K_ASA in component vHDH (millimolar). * CONSTANTS[17] is K_NADPH in component vHDH (millimolar). * CONSTANTS[18] is K_hs in component vHDH (millimolar). * CONSTANTS[19] is K_NADP in component vHDH (millimolar). * CONSTANTS[20] is K_iThr in component vHDH (millimolar). * CONSTANTS[21] is alpha in component vHDH (dimensionless). * CONSTANTS[22] is h in component vHDH (dimensionless). * CONSTANTS[23] is K_eq in component vHDH (dimensionless). * CONSTANTS[24] is V_max_HDH in component vHDH (flux). * CONSTANTS[25] is K_hs in component vHK (millimolar). * CONSTANTS[26] is K_ATP in component vHK (millimolar). * CONSTANTS[27] is K_iThr in component vHK (millimolar). * CONSTANTS[28] is K_iLys in component vHK (millimolar). * CONSTANTS[29] is K_ihs in component vHK (millimolar). * CONSTANTS[30] is K_iATP in component vHK (millimolar). * CONSTANTS[31] is V_max_HK in component vHK (flux). * CONSTANTS[32] is K_hsp in component vTS (millimolar). * CONSTANTS[33] is V_max_TS in component vTS (flux). * CONSTANTS[34] is K_asp in component vAKIII (millimolar). * CONSTANTS[35] is K_ATP in component vAKIII (millimolar). * CONSTANTS[36] is K_aspp in component vAKIII (millimolar). * CONSTANTS[37] is K_ADP in component vAKIII (millimolar). * CONSTANTS[38] is K_iLys in component vAKIII (millimolar). * CONSTANTS[39] is h_Lys in component vAKIII (dimensionless). * CONSTANTS[40] is K_eq in component vAKIII (dimensionless). * CONSTANTS[41] is V_max_AK_III in component vAKIII (flux). * RATES[0] is d/dt Asp in component Asp (millimolar). * RATES[1] is d/dt aspp in component aspp (millimolar). * RATES[2] is d/dt ASA in component ASA (millimolar). * RATES[3] is d/dt hs in component hs (millimolar). * RATES[4] is d/dt hsp in component hsp (millimolar). * RATES[5] is d/dt Thr in component Thr (millimolar). * RATES[6] is d/dt ATP in component ATP (millimolar). * RATES[7] is d/dt ADP in component ADP (millimolar). * RATES[8] is d/dt NADPH in component NADPH (millimolar). * RATES[9] is d/dt NADP in component NADP (millimolar). * RATES[10] is d/dt Pi in component Pi (millimolar). * RATES[11] is d/dt Lys in component Lys (millimolar). */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { STATES[0] = 10; STATES[1] = 0; STATES[2] = 0; STATES[3] = 0; STATES[4] = 0; STATES[5] = 0; STATES[6] = 30; STATES[7] = 0; STATES[8] = 0; STATES[9] = 0; STATES[10] = 0; STATES[11] = 0; CONSTANTS[0] = 0.97; CONSTANTS[1] = 0.98; CONSTANTS[2] = 0.017; CONSTANTS[3] = 0.25; CONSTANTS[4] = 0.167; CONSTANTS[5] = 2.47; CONSTANTS[6] = 4.09; CONSTANTS[7] = 0.00064; CONSTANTS[8] = 463; CONSTANTS[9] = 0.022; CONSTANTS[10] = 0.029; CONSTANTS[11] = 0.11; CONSTANTS[12] = 0.144; CONSTANTS[13] = 10.2; CONSTANTS[14] = 284000; CONSTANTS[15] = 598; CONSTANTS[16] = 0.24; CONSTANTS[17] = 0.037; CONSTANTS[18] = 3.39; CONSTANTS[19] = 0.067; CONSTANTS[20] = 0.097; CONSTANTS[21] = 3.93; CONSTANTS[22] = 1.41; CONSTANTS[23] = 100000000000; CONSTANTS[24] = 2585; CONSTANTS[25] = 0.11; CONSTANTS[26] = 0.072; CONSTANTS[27] = 1.09; CONSTANTS[28] = 9.45; CONSTANTS[29] = 4.7; CONSTANTS[30] = 4.35; CONSTANTS[31] = 483; CONSTANTS[32] = 0.31; CONSTANTS[33] = 208; CONSTANTS[34] = 0.32; CONSTANTS[35] = 0.22; CONSTANTS[36] = 0.017; CONSTANTS[37] = 0.25; CONSTANTS[38] = 0.391; CONSTANTS[39] = 2.8; CONSTANTS[40] = 0.00064; CONSTANTS[41] = 299; CONSTANTS[42] = 0.00000; } void computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { RATES[11] = CONSTANTS[42]; ALGEBRAIC[1] = ( CONSTANTS[15]*( STATES[1]*STATES[8] - ( STATES[2]*STATES[9]*STATES[10])/CONSTANTS[14]))/( ( CONSTANTS[9]*(1.00000+STATES[2]/CONSTANTS[11])*(1.00000+STATES[10]/CONSTANTS[13])+STATES[1])*( CONSTANTS[10]*(1.00000+STATES[9]/CONSTANTS[12])+STATES[8])); ALGEBRAIC[2] = ( CONSTANTS[24]*( STATES[2]*STATES[8] - ( STATES[3]*STATES[9])/CONSTANTS[23]))/( ((1.00000+pow(STATES[5]/CONSTANTS[20], CONSTANTS[22]))/(1.00000+pow(STATES[5]/( CONSTANTS[21]*CONSTANTS[20]), CONSTANTS[22])))*(CONSTANTS[16]+( STATES[3]*CONSTANTS[16])/CONSTANTS[18]+STATES[2])*( CONSTANTS[17]*(1.00000+STATES[9]/CONSTANTS[19])+STATES[8])); RATES[2] = ALGEBRAIC[1] - ALGEBRAIC[2]; RATES[8] = - ALGEBRAIC[1] - ALGEBRAIC[2]; RATES[9] = ALGEBRAIC[1]+ALGEBRAIC[2]; ALGEBRAIC[3] = ( CONSTANTS[31]*STATES[3]*STATES[6])/( (( CONSTANTS[25]*(1.00000+STATES[6]/CONSTANTS[30]))/(1.00000+STATES[5]/CONSTANTS[27])+STATES[3])*( CONSTANTS[26]*(1.00000+STATES[3]/CONSTANTS[29])+STATES[6])*(1.00000+STATES[11]/CONSTANTS[28])); RATES[3] = ALGEBRAIC[2] - ALGEBRAIC[3]; ALGEBRAIC[0] = ( CONSTANTS[8]*( STATES[0]*STATES[6] - ( STATES[1]*STATES[7])/CONSTANTS[7]))/( (( CONSTANTS[0]*(1.00000+pow(STATES[5]/CONSTANTS[4], CONSTANTS[6])))/(1.00000+pow(STATES[5]/( CONSTANTS[4]*CONSTANTS[5]), CONSTANTS[6]))+( STATES[1]*CONSTANTS[0])/CONSTANTS[2]+STATES[0])*( CONSTANTS[1]*(1.00000+STATES[7]/CONSTANTS[3])+STATES[6])); ALGEBRAIC[4] = ( CONSTANTS[41]*( STATES[0]*STATES[6] - ( STATES[1]*STATES[7])/CONSTANTS[40]))/( (1.00000+pow(STATES[11]/CONSTANTS[38], CONSTANTS[39]))*( CONSTANTS[34]*(1.00000+STATES[1]/CONSTANTS[36])+STATES[0])*( CONSTANTS[35]*(1.00000+STATES[7]/CONSTANTS[37])+STATES[6])); RATES[0] = - ALGEBRAIC[0] - ALGEBRAIC[4]; RATES[1] = (ALGEBRAIC[0]+ALGEBRAIC[4]) - ALGEBRAIC[1]; ALGEBRAIC[5] = ( CONSTANTS[33]*STATES[4])/(CONSTANTS[32]+STATES[4]); RATES[4] = ALGEBRAIC[3]+ALGEBRAIC[5]; RATES[5] = ALGEBRAIC[5]; RATES[6] = (- ALGEBRAIC[0] - ALGEBRAIC[4]) - ALGEBRAIC[3]; RATES[7] = ALGEBRAIC[0]+ALGEBRAIC[4]+ALGEBRAIC[3]; RATES[10] = ALGEBRAIC[1]+ALGEBRAIC[5]; } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[1] = ( CONSTANTS[15]*( STATES[1]*STATES[8] - ( STATES[2]*STATES[9]*STATES[10])/CONSTANTS[14]))/( ( CONSTANTS[9]*(1.00000+STATES[2]/CONSTANTS[11])*(1.00000+STATES[10]/CONSTANTS[13])+STATES[1])*( CONSTANTS[10]*(1.00000+STATES[9]/CONSTANTS[12])+STATES[8])); ALGEBRAIC[2] = ( CONSTANTS[24]*( STATES[2]*STATES[8] - ( STATES[3]*STATES[9])/CONSTANTS[23]))/( ((1.00000+pow(STATES[5]/CONSTANTS[20], CONSTANTS[22]))/(1.00000+pow(STATES[5]/( CONSTANTS[21]*CONSTANTS[20]), CONSTANTS[22])))*(CONSTANTS[16]+( STATES[3]*CONSTANTS[16])/CONSTANTS[18]+STATES[2])*( CONSTANTS[17]*(1.00000+STATES[9]/CONSTANTS[19])+STATES[8])); ALGEBRAIC[3] = ( CONSTANTS[31]*STATES[3]*STATES[6])/( (( CONSTANTS[25]*(1.00000+STATES[6]/CONSTANTS[30]))/(1.00000+STATES[5]/CONSTANTS[27])+STATES[3])*( CONSTANTS[26]*(1.00000+STATES[3]/CONSTANTS[29])+STATES[6])*(1.00000+STATES[11]/CONSTANTS[28])); ALGEBRAIC[0] = ( CONSTANTS[8]*( STATES[0]*STATES[6] - ( STATES[1]*STATES[7])/CONSTANTS[7]))/( (( CONSTANTS[0]*(1.00000+pow(STATES[5]/CONSTANTS[4], CONSTANTS[6])))/(1.00000+pow(STATES[5]/( CONSTANTS[4]*CONSTANTS[5]), CONSTANTS[6]))+( STATES[1]*CONSTANTS[0])/CONSTANTS[2]+STATES[0])*( CONSTANTS[1]*(1.00000+STATES[7]/CONSTANTS[3])+STATES[6])); ALGEBRAIC[4] = ( CONSTANTS[41]*( STATES[0]*STATES[6] - ( STATES[1]*STATES[7])/CONSTANTS[40]))/( (1.00000+pow(STATES[11]/CONSTANTS[38], CONSTANTS[39]))*( CONSTANTS[34]*(1.00000+STATES[1]/CONSTANTS[36])+STATES[0])*( CONSTANTS[35]*(1.00000+STATES[7]/CONSTANTS[37])+STATES[6])); ALGEBRAIC[5] = ( CONSTANTS[33]*STATES[4])/(CONSTANTS[32]+STATES[4]); }