/* There are a total of 12 entries in the algebraic variable array. There are a total of 23 entries in each of the rate and state variable arrays. There are a total of 67 entries in the constant variable array. */ /* * VOI is time in component environment (second). * STATES[0] is GlcI in component GlcI (millimolar). * ALGEBRAIC[5] is vHK in component vHK (flux). * ALGEBRAIC[4] is vGlcTr in component vGlcTr (flux). * STATES[1] is hexose_P in component hexose_P (millimolar). * ALGEBRAIC[7] is vPFK in component vPFK (flux). * STATES[2] is Fru16BP in component Fru16BP (millimolar). * STATES[13] is vALD in component vALD (flux). * STATES[3] is triose_P in component triose_P (millimolar). * STATES[14] is vGAPDH in component vGAPDH (flux). * STATES[15] is vGDH in component vGDH (flux). * ALGEBRAIC[8] is vGPO in component vGPO (flux). * STATES[4] is BPGA13 in component BPGA13 (millimolar). * STATES[16] is vPGK in component vPGK (flux). * STATES[5] is N in component N (millimolar). * STATES[17] is vPK in component vPK (flux). * STATES[6] is Pyr in component Pyr (millimolar). * ALGEBRAIC[9] is vPyrTr in component vPyrTr (flux). * STATES[7] is NADH in component NADH (millimolar). * STATES[8] is NAD in component NAD (millimolar). * STATES[9] is Gly3P in component Gly3P (millimolar). * ALGEBRAIC[11] is vGlyK in component vGlyK (flux). * STATES[10] is Gly in component Gly (millimolar). * STATES[11] is P in component P (millimolar). * ALGEBRAIC[10] is vATPase in component vATPase (flux). * ALGEBRAIC[0] is ATP in component ATP (millimolar). * CONSTANTS[0] is sumA in component ATP (millimolar). * CONSTANTS[1] is Keq_AK in component ATP (dimensionless). * ALGEBRAIC[1] is ADP in component ADP (millimolar). * STATES[18] is DHAP in component DHAP (millimolar). * ALGEBRAIC[3] is Fru6P in component Fru6P (millimolar). * STATES[19] is GAP in component GAP (millimolar). * STATES[12] is Glc6P in component Glc6P (millimolar). * CONSTANTS[2] is sumc4 in component DHAP (millimolar). * CONSTANTS[3] is sumc5 in component DHAP (millimolar). * ALGEBRAIC[2] is GlcE in component GlcE (millimolar). * ALGEBRAIC[6] is vPGI in component vPGI (flux). * STATES[20] is PGA3 in component PGA3 (millimolar). * STATES[21] is PEP in component PEP (millimolar). * CONSTANTS[4] is Keq_ENO in component PEP (dimensionless). * CONSTANTS[5] is Keq_PGM in component PEP (dimensionless). * CONSTANTS[6] is K_Glc in component vGlcTr (millimolar). * CONSTANTS[7] is alpha in component vGlcTr (dimensionless). * CONSTANTS[8] is vGlcTr_max in component vGlcTr (flux). * CONSTANTS[9] is K_GlcI in component vHK (millimolar). * CONSTANTS[10] is K_Glc6P in component vHK (millimolar). * CONSTANTS[11] is K_ATP in component vHK (millimolar). * CONSTANTS[12] is K_ADP in component vHK (millimolar). * CONSTANTS[13] is vHK_max in component vHK (flux). * CONSTANTS[14] is K_Glc6P in component vPGI (millimolar). * CONSTANTS[15] is K_Fru6P in component vPGI (millimolar). * CONSTANTS[16] is vPGI_max in component vPGI (flux). * CONSTANTS[17] is Ki_1 in component vPFK (millimolar). * CONSTANTS[18] is Ki_2 in component vPFK (millimolar). * CONSTANTS[19] is KM_Fru6P in component vPFK (millimolar). * CONSTANTS[20] is KM_ATP in component vPFK (millimolar). * CONSTANTS[21] is vPFK_max in component vPFK (flux). * CONSTANTS[22] is sumA in component vALD (millimolar). * CONSTANTS[23] is KM_GAP in component vALD (millimolar). * CONSTANTS[24] is Ki_GAP in component vALD (millimolar). * CONSTANTS[25] is KM_DHAP in component vALD (millimolar). * CONSTANTS[26] is vALD_max_forward in component vALD (flux). * CONSTANTS[27] is vALD_max_reverse in component vALD (flux). * STATES[22] is vTPI in component vTPI (flux). * CONSTANTS[28] is K_DHAP in component vTPI (millimolar). * CONSTANTS[29] is K_GAP in component vTPI (millimolar). * CONSTANTS[30] is vTPI_max in component vTPI (flux). * CONSTANTS[31] is K_NAD in component vGAPDH (millimolar). * CONSTANTS[32] is K_GAP in component vGAPDH (millimolar). * CONSTANTS[33] is K_BPGA13 in component vGAPDH (millimolar). * CONSTANTS[34] is K_NADH in component vGAPDH (millimolar). * CONSTANTS[35] is vGAPDH_max_forward in component vGAPDH (flux). * CONSTANTS[36] is vGAPDH_max_reverse in component vGAPDH (flux). * CONSTANTS[37] is vGAPDH_max in component vGAPDH (dimensionless). * CONSTANTS[38] is K_NADH in component vGDH (millimolar). * CONSTANTS[39] is K_Gly3P in component vGDH (millimolar). * CONSTANTS[40] is K_DHAP in component vGDH (millimolar). * CONSTANTS[41] is K_NAD in component vGDH (millimolar). * CONSTANTS[42] is vGDH_max_forward in component vGDH (flux). * CONSTANTS[43] is vGDH_max_reverse in component vGDH (flux). * CONSTANTS[44] is vGDH_max in component vGDH (dimensionless). * CONSTANTS[45] is K_Gly3P in component vGPO (millimolar). * CONSTANTS[46] is vGPO_max in component vGPO (flux). * CONSTANTS[47] is K_pyruvate in component vPyrTr (millimolar). * CONSTANTS[48] is vPyrTr_max in component vPyrTr (flux). * CONSTANTS[49] is K_ADP in component vPGK (millimolar). * CONSTANTS[50] is K_BPGA13 in component vPGK (millimolar). * CONSTANTS[51] is K_PGA3 in component vPGK (millimolar). * CONSTANTS[52] is K_ATP in component vPGK (millimolar). * CONSTANTS[53] is vPGK_max_forward in component vPGK (flux). * CONSTANTS[54] is vPGK_max_reverse in component vPGK (flux). * CONSTANTS[55] is vPGK_max in component vPGK (dimensionless). * CONSTANTS[56] is KM_ADP in component vPK (millimolar). * CONSTANTS[57] is n in component vPK (dimensionless). * CONSTANTS[58] is vPK_max in component vPK (flux). * CONSTANTS[59] is k in component vATPase (flux). * CONSTANTS[60] is K_ADP in component vGlyK (millimolar). * CONSTANTS[61] is K_Gly3P in component vGlyK (millimolar). * CONSTANTS[62] is K_Gly in component vGlyK (millimolar). * CONSTANTS[63] is K_ATP in component vGlyK (millimolar). * CONSTANTS[64] is vGlyK_max_forward in component vGlyK (flux). * CONSTANTS[65] is vGlyK_max_reverse in component vGlyK (flux). * CONSTANTS[66] is vGlyK_max in component vGlyK (dimensionless). * RATES[0] is d/dt GlcI in component GlcI (millimolar). * RATES[1] is d/dt hexose_P in component hexose_P (millimolar). * RATES[2] is d/dt Fru16BP in component Fru16BP (millimolar). * RATES[3] is d/dt triose_P in component triose_P (millimolar). * RATES[4] is d/dt BPGA13 in component BPGA13 (millimolar). * RATES[5] is d/dt N in component N (millimolar). * RATES[6] is d/dt Pyr in component Pyr (millimolar). * RATES[7] is d/dt NADH in component NADH (millimolar). * RATES[8] is d/dt NAD in component NAD (millimolar). * RATES[9] is d/dt Gly3P in component Gly3P (millimolar). * RATES[10] is d/dt Gly in component Gly (millimolar). * RATES[11] is d/dt P in component P (millimolar). * RATES[12] is d/dt Glc6P in component Glc6P (millimolar). * There are a total of 2 condition variables. */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { STATES[0] = 0.0340009; STATES[1] = 2.583763; STATES[2] = 16.5371; STATES[3] = 3.9391429; STATES[4] = 0.0326745; STATES[5] = 1.59603; STATES[6] = 4.77413; STATES[7] = 0.0448639; STATES[8] = 0.0448639; STATES[9] = 0.0; STATES[10] = 0.0; STATES[11] = 7.63936; CONSTANTS[0] = 3.9; CONSTANTS[1] = 0.442; STATES[12] = 2.07199; CONSTANTS[2] = 45.0; CONSTANTS[3] = 5.0; CONSTANTS[4] = 6.7; CONSTANTS[5] = 0.187; CONSTANTS[6] = 2.0; CONSTANTS[7] = 0.75; CONSTANTS[8] = 106.2; CONSTANTS[9] = 0.1; CONSTANTS[10] = 12.0; CONSTANTS[11] = 0.116; CONSTANTS[12] = 0.126; CONSTANTS[13] = 625.0; CONSTANTS[14] = 0.4; CONSTANTS[15] = 0.12; CONSTANTS[16] = 848.0; CONSTANTS[17] = 15.8; CONSTANTS[18] = 10.7; CONSTANTS[19] = 0.82; CONSTANTS[20] = 0.026; CONSTANTS[21] = 780.0; CONSTANTS[22] = 6.0; CONSTANTS[23] = 0.067; CONSTANTS[24] = 0.098; CONSTANTS[25] = 0.015; CONSTANTS[26] = 184.5; CONSTANTS[27] = 219.555; CONSTANTS[28] = 1.2; CONSTANTS[29] = 0.25; CONSTANTS[30] = 842.0; CONSTANTS[31] = 0.45; CONSTANTS[32] = 0.15; CONSTANTS[33] = 0.1; CONSTANTS[34] = 0.02; CONSTANTS[35] = 1470.0; CONSTANTS[36] = 984.9; CONSTANTS[37] = 1.0; CONSTANTS[38] = 0.01; CONSTANTS[39] = 2.0; CONSTANTS[40] = 0.1; CONSTANTS[41] = 0.4; CONSTANTS[42] = 533.0; CONSTANTS[43] = 149.24; CONSTANTS[44] = 1.0; CONSTANTS[45] = 1.7; CONSTANTS[46] = 368.0; CONSTANTS[47] = 1.96; CONSTANTS[48] = 200.0; CONSTANTS[49] = 0.1; CONSTANTS[50] = 0.05; CONSTANTS[51] = 1.62; CONSTANTS[52] = 0.29; CONSTANTS[53] = 640.0; CONSTANTS[54] = 18.56; CONSTANTS[55] = 1.0; CONSTANTS[56] = 0.114; CONSTANTS[57] = 2.5; CONSTANTS[58] = 2600; CONSTANTS[59] = 50; CONSTANTS[60] = 0.12; CONSTANTS[61] = 5.1; CONSTANTS[62] = 0.12; CONSTANTS[63] = 0.19; CONSTANTS[64] = 220.0; CONSTANTS[65] = 334000.0; CONSTANTS[66] = 1.0; STATES[13] = 0.1001; STATES[14] = 0.1001; STATES[15] = 0.1001; STATES[16] = 0.1001; STATES[17] = 0.1001; STATES[18] = 0.1001; STATES[19] = 0.1001; STATES[20] = 0.1001; STATES[21] = 0.1001; STATES[22] = 0.1001; RATES[0] = 0.1001; RATES[1] = 0.1001; RATES[2] = 0.1001; RATES[3] = 0.1001; RATES[4] = 0.1001; RATES[5] = 0.1001; RATES[6] = 0.1001; RATES[7] = 0.1001; RATES[8] = 0.1001; RATES[9] = 0.1001; RATES[10] = 0.1001; RATES[11] = 0.1001; RATES[12] = 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[4] - ALGEBRAIC[5]; resid[1] = RATES[1] - ALGEBRAIC[5] - ALGEBRAIC[7]; resid[2] = RATES[2] - ALGEBRAIC[7] - STATES[13]; resid[3] = RATES[3] - ( 2.00000*STATES[13]+ALGEBRAIC[8]) - (STATES[14]+STATES[15]); resid[4] = RATES[4] - STATES[14] - STATES[16]; resid[5] = RATES[5] - STATES[16] - STATES[17]; resid[6] = RATES[6] - STATES[17] - ALGEBRAIC[9]; resid[7] = RATES[7] - STATES[14] - STATES[15]; resid[8] = RATES[8] - STATES[15] - STATES[14]; resid[9] = RATES[9] - STATES[15] - (ALGEBRAIC[11]+ALGEBRAIC[8]); resid[10] = RATES[10] - ALGEBRAIC[11]; resid[11] = RATES[11] - (STATES[16]+ALGEBRAIC[11]+STATES[17]) - (ALGEBRAIC[5]+ALGEBRAIC[7]+ALGEBRAIC[10]); resid[12] = STATES[18] - ( CONSTANTS[3]*STATES[18])/((CONSTANTS[2]+CONSTANTS[3]) - (STATES[4]+ 2.00000*STATES[2]+ALGEBRAIC[3]+STATES[19]+STATES[12]+STATES[11])); resid[13] = STATES[19] - STATES[3] - STATES[18]; resid[14] = RATES[12] - ALGEBRAIC[5] - ALGEBRAIC[6]; resid[15] = STATES[20] - STATES[5] - STATES[21]; resid[16] = STATES[21] - CONSTANTS[4]*CONSTANTS[5]*STATES[20]; resid[17] = STATES[13] - (( CONSTANTS[26]*STATES[2])/( 0.00900000*(1.00000+ALGEBRAIC[0]/0.680000+ALGEBRAIC[1]/1.51000+(CONSTANTS[22] - (ALGEBRAIC[0]+ALGEBRAIC[1]))/3.65000)) - ( CONSTANTS[27]*STATES[19]*STATES[18])/( CONSTANTS[25]*CONSTANTS[23]))/(1.00000+STATES[19]/CONSTANTS[23]+STATES[18]/CONSTANTS[25]+( STATES[19]*STATES[18])/( CONSTANTS[25]*CONSTANTS[23])+STATES[2]/( 0.00900000*(1.00000+ALGEBRAIC[0]/0.680000+ALGEBRAIC[1]/1.51000+(CONSTANTS[22] - (ALGEBRAIC[0]+ALGEBRAIC[1]))/3.65000))+( STATES[2]*STATES[19])/( CONSTANTS[24]*0.00900000*(1.00000+ALGEBRAIC[0]/0.680000+ALGEBRAIC[1]/1.51000+(CONSTANTS[22] - (ALGEBRAIC[0]+ALGEBRAIC[1]))/3.65000))); resid[18] = STATES[22] - ( CONSTANTS[30]*(STATES[18]/CONSTANTS[28] - ( 5.70000*STATES[19])/CONSTANTS[29]))/(1.00000+STATES[19]/CONSTANTS[29]+STATES[18]/CONSTANTS[28]); resid[19] = STATES[14] - CONSTANTS[37]*(( CONSTANTS[35]*( STATES[19]*((STATES[8]/CONSTANTS[32])/CONSTANTS[31]) - (CONSTANTS[36]/CONSTANTS[35])*((( STATES[4]*STATES[7])/CONSTANTS[33])/CONSTANTS[34])))/( (1.00000+STATES[19]/CONSTANTS[32]+STATES[4]/CONSTANTS[33])*(1.00000+STATES[8]/CONSTANTS[31]+STATES[7]/CONSTANTS[34]))); resid[20] = STATES[15] - ( CONSTANTS[44]*CONSTANTS[42]*(( STATES[7]*STATES[18])/( CONSTANTS[38]*CONSTANTS[40]) - ( CONSTANTS[43]*STATES[8]*STATES[9])/( CONSTANTS[39]*CONSTANTS[41]*CONSTANTS[42])))/( (1.00000+STATES[8]/CONSTANTS[41]+STATES[7]/CONSTANTS[38])*(1.00000+STATES[18]/CONSTANTS[40]+STATES[9]/CONSTANTS[39])); resid[21] = STATES[16] - ( CONSTANTS[55]*CONSTANTS[53]*(( - CONSTANTS[54]*STATES[20]*ALGEBRAIC[0])/( CONSTANTS[52]*CONSTANTS[51]*CONSTANTS[53])+( STATES[4]*ALGEBRAIC[1])/( CONSTANTS[50]*CONSTANTS[49])))/( (1.00000+STATES[4]/CONSTANTS[50]+STATES[20]/CONSTANTS[51])*(1.00000+ALGEBRAIC[1]/CONSTANTS[49]+ALGEBRAIC[0]/CONSTANTS[52])); resid[22] = STATES[17] - (( CONSTANTS[58]*pow(STATES[21]/( 0.340000*(1.00000+ALGEBRAIC[0]/0.570000+ALGEBRAIC[1]/0.640000)), CONSTANTS[57])*ALGEBRAIC[1])/CONSTANTS[56])/( (1.00000+pow(STATES[21]/( 0.340000*(1.00000+ALGEBRAIC[0]/0.570000+ALGEBRAIC[1]/0.640000)), CONSTANTS[57]))*(1.00000+ALGEBRAIC[1]/CONSTANTS[56])); } 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[0] = (( STATES[11]*(1.00000 - 4.00000*CONSTANTS[1]) - CONSTANTS[0])+pow(pow(CONSTANTS[0] - (1.00000 - 4.00000*CONSTANTS[1])*STATES[11], 2.00000)+ 4.00000*(1.00000 - 4.00000*CONSTANTS[1])*( - CONSTANTS[1]*pow(STATES[11], 2.00000)), 0.500000))/( 2.00000*(1.00000 - 4.00000*CONSTANTS[1])); ALGEBRAIC[1] = STATES[11] - 2.00000*ALGEBRAIC[0]; ALGEBRAIC[3] = STATES[1] - STATES[12]; ALGEBRAIC[2] = (CONDVAR[0]>=0.00000&&CONDVAR[1]<0.00000 ? 5.00000 : 0.0500000); ALGEBRAIC[4] = CONSTANTS[8]*((ALGEBRAIC[2] - STATES[0])/(CONSTANTS[6]+ALGEBRAIC[2]+STATES[0]+ CONSTANTS[7]*ALGEBRAIC[2]*(STATES[0]/CONSTANTS[6]))); ALGEBRAIC[5] = ( CONSTANTS[13]*STATES[0]*ALGEBRAIC[0])/( CONSTANTS[11]*CONSTANTS[9]*(1.00000+STATES[12]/CONSTANTS[10]+STATES[0]/CONSTANTS[9])*(1.00000+ALGEBRAIC[0]/CONSTANTS[11]+ALGEBRAIC[1]/CONSTANTS[12])); ALGEBRAIC[6] = ( CONSTANTS[16]*(STATES[12]/CONSTANTS[14] - ALGEBRAIC[3]/CONSTANTS[15]))/(1.00000+STATES[12]/CONSTANTS[14]+ALGEBRAIC[3]/CONSTANTS[15]); ALGEBRAIC[7] = ( CONSTANTS[17]*CONSTANTS[21]*ALGEBRAIC[3]*ALGEBRAIC[0])/( CONSTANTS[20]*CONSTANTS[19]*(STATES[2]+CONSTANTS[17])*(1.00000+STATES[2]/CONSTANTS[18]+ALGEBRAIC[3]/CONSTANTS[19])*(1.00000+ALGEBRAIC[0]/CONSTANTS[20])); ALGEBRAIC[8] = ( CONSTANTS[46]*STATES[9])/(STATES[9]+CONSTANTS[45]); ALGEBRAIC[9] = (( CONSTANTS[48]*STATES[6])/CONSTANTS[47])/(1.00000+STATES[6]/CONSTANTS[47]); ALGEBRAIC[10] = ( CONSTANTS[59]*ALGEBRAIC[0])/ALGEBRAIC[1]; ALGEBRAIC[11] = ( CONSTANTS[66]*(( CONSTANTS[64]*ALGEBRAIC[1]*STATES[9])/( CONSTANTS[60]*CONSTANTS[61]) - ( CONSTANTS[65]*ALGEBRAIC[0]*STATES[10])/( CONSTANTS[63]*CONSTANTS[62])))/( (1.00000+STATES[9]/CONSTANTS[61]+STATES[10]/CONSTANTS[62])*(1.00000+ALGEBRAIC[1]/CONSTANTS[60]+ALGEBRAIC[0]/CONSTANTS[63])); } void getStateInformation(double* SI) { SI[0] = 1.0; SI[1] = 1.0; SI[2] = 1.0; SI[13] = 0.0; SI[3] = 1.0; SI[14] = 0.0; SI[15] = 0.0; SI[4] = 1.0; SI[16] = 0.0; SI[5] = 1.0; SI[17] = 0.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; SI[18] = 0.0; SI[19] = 0.0; SI[12] = 1.0; SI[20] = 0.0; SI[21] = 0.0; SI[22] = 0.0; } void computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES, double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS) { CONDVAR[0] = VOI - 60.0000; CONDVAR[1] = VOI - 61.0000; }