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