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 33 entries in the algebraic variable array.
   There are a total of 10 entries in each of the rate and state variable arrays.
   There are a total of 61 entries in the constant variable array.
 */
/*
 * VOI is time in component environment (second).
 * CONSTANTS[0] is Vc_Vg in component volume_ratio (dimensionless).
 * CONSTANTS[1] is Glc_o in component Glc_o (millimolar).
 * STATES[0] is Glc_i in component Glc_i (millimolar).
 * ALGEBRAIC[17] is V_HK in component V_HK (flux).
 * ALGEBRAIC[15] is V_glucose_transport in component V_glucose_transport (flux).
 * ALGEBRAIC[0] is Glc_6_P_g in component Glc_6_P_g (millimolar).
 * CONSTANTS[2] is Keq_PGI in component Glc_6_P_g (dimensionless).
 * ALGEBRAIC[1] is Fru_6_P_g in component Fru_6_P_g (millimolar).
 * STATES[1] is hexose_P_g in component hexose_P_g (millimolar).
 * ALGEBRAIC[19] is V_PFK in component V_PFK (flux).
 * STATES[2] is Fru_1_6_BP_g in component Fru_1_6_BP_g (millimolar).
 * ALGEBRAIC[32] is V_ALD in component V_ALD (flux).
 * ALGEBRAIC[23] is GA_3_P_g in component GA_3_P_g (millimolar).
 * CONSTANTS[3] is Keq_TIM in component DHAP (dimensionless).
 * ALGEBRAIC[7] is DHAP_g in component DHAP_g (millimolar).
 * STATES[3] is triose_P in component triose_P (millimolar).
 * ALGEBRAIC[28] is V_GAPDH in component V_GAPDH (flux).
 * ALGEBRAIC[30] is V_GDH in component V_GDH (flux).
 * ALGEBRAIC[27] is V_GPO in component V_GPO (flux).
 * STATES[4] is one_three_BPGA_g in component one_three_BPGA_g (millimolar).
 * ALGEBRAIC[18] is V_PGK in component V_PGK (flux).
 * ALGEBRAIC[2] is three_PGA in component three_PGA (millimolar).
 * STATES[5] is N in component N (millimolar).
 * CONSTANTS[4] is Keq_PGM in component three_PGA (dimensionless).
 * CONSTANTS[5] is Keq_ENO in component three_PGA (dimensionless).
 * ALGEBRAIC[3] is two_PGA_c in component two_PGA_c (millimolar).
 * ALGEBRAIC[31] is V_PYK in component V_PYK (flux).
 * ALGEBRAIC[4] is PEP_c in component PEP_c (millimolar).
 * STATES[6] is PYR_c in component PYR_c (millimolar).
 * ALGEBRAIC[16] is V_pyruvate_transport in component V_pyruvate_transport (flux).
 * CONSTANTS[6] is glycerol_g in component glycerol_g (millimolar).
 * ALGEBRAIC[5] is DHAP in component DHAP (millimolar).
 * ALGEBRAIC[6] is DHAP_c in component DHAP_c (millimolar).
 * ALGEBRAIC[24] is Gly_3_P in component Gly_3_P (millimolar).
 * ALGEBRAIC[9] is ATP_g in component ATP_g (millimolar).
 * ALGEBRAIC[11] is ADP_g in component ADP_g (millimolar).
 * CONSTANTS[7] is C4 in component C4 (millimolar).
 * ALGEBRAIC[25] is Gly_3_P_c in component Gly_3_P_c (millimolar).
 * ALGEBRAIC[26] is Gly_3_P_g in component Gly_3_P_g (millimolar).
 * ALGEBRAIC[8] is NAD_g in component NAD_g (millimolar).
 * STATES[7] is NADH_g in component NADH_g (millimolar).
 * CONSTANTS[8] is C3 in component C3 (millimolar).
 * STATES[8] is P_g in component P_g (millimolar).
 * ALGEBRAIC[29] is V_GK in component V_GK (flux).
 * STATES[9] is P_c in component P_c (millimolar).
 * ALGEBRAIC[22] is V_ATP_utilisation in component V_ATP_utilisation (flux).
 * CONSTANTS[9] is Keq_AK in component ATP_g (dimensionless).
 * CONSTANTS[10] is C1 in component C1 (millimolar).
 * ALGEBRAIC[10] is ATP_c in component ATP_c (millimolar).
 * CONSTANTS[11] is Keq_AK in component ATP_c (dimensionless).
 * CONSTANTS[12] is C2 in component C2 (millimolar).
 * ALGEBRAIC[12] is ADP_c in component ADP_c (millimolar).
 * ALGEBRAIC[13] is AMP_g in component AMP_g (millimolar).
 * ALGEBRAIC[14] is AMP_c in component AMP_c (millimolar).
 * CONSTANTS[13] is K_Glc in component V_glucose_transport (millimolar).
 * CONSTANTS[14] is alpha in component V_glucose_transport (dimensionless).
 * CONSTANTS[15] is V_glucose_transport_max in component V_glucose_transport (flux).
 * CONSTANTS[16] is K_pyruvate in component V_pyruvate_transport (millimolar).
 * CONSTANTS[17] is V_pyruvate_transport_max in component V_pyruvate_transport (flux).
 * CONSTANTS[18] is K_Gly_3_P in component V_GPO (millimolar).
 * CONSTANTS[19] is V_GPO_max in component V_GPO (flux).
 * CONSTANTS[20] is K_Glc_i in component V_HK (millimolar).
 * CONSTANTS[21] is K_ATP in component V_HK (millimolar).
 * CONSTANTS[22] is K_ADP in component V_HK (millimolar).
 * CONSTANTS[23] is V_HK_max in component V_HK (flux).
 * CONSTANTS[24] is K_NAD in component V_GAPDH (millimolar).
 * CONSTANTS[25] is K_GA_3_P in component V_GAPDH (millimolar).
 * CONSTANTS[26] is K_1_3_BPGA in component V_GAPDH (millimolar).
 * CONSTANTS[27] is K_NADH in component V_GAPDH (millimolar).
 * CONSTANTS[28] is V_GAPDH_max_plus in component V_GAPDH (flux).
 * CONSTANTS[29] is V_GAPDH_max_ratio in component V_GAPDH (dimensionless).
 * CONSTANTS[30] is K_ADP in component V_PGK (millimolar).
 * CONSTANTS[31] is K_1_3_BPGA in component V_PGK (millimolar).
 * CONSTANTS[32] is K_3_PGA in component V_PGK (millimolar).
 * CONSTANTS[33] is K_ATP in component V_PGK (millimolar).
 * CONSTANTS[34] is V_PGK_max_plus in component V_PGK (flux).
 * CONSTANTS[35] is V_PGK_max_ratio in component V_PGK (dimensionless).
 * CONSTANTS[36] is K_ADP in component V_GK (millimolar).
 * CONSTANTS[37] is K_Gly_3_P in component V_GK (millimolar).
 * CONSTANTS[38] is K_glycerol in component V_GK (millimolar).
 * CONSTANTS[39] is K_ATP in component V_GK (millimolar).
 * CONSTANTS[40] is V_GK_max_plus in component V_GK (flux).
 * CONSTANTS[41] is V_GK_max_ratio in component V_GK (dimensionless).
 * CONSTANTS[42] is K_NADH in component V_GDH (millimolar).
 * CONSTANTS[43] is K_Gly_3_P in component V_GDH (millimolar).
 * CONSTANTS[44] is K_DHAP in component V_GDH (millimolar).
 * CONSTANTS[45] is K_NAD in component V_GDH (millimolar).
 * CONSTANTS[46] is V_GDH_max_plus in component V_GDH (flux).
 * CONSTANTS[47] is V_GDH_max_ratio in component V_GDH (dimensionless).
 * CONSTANTS[48] is n in component V_PFK (dimensionless).
 * CONSTANTS[49] is Km_Fru_6_P in component V_PFK (millimolar).
 * CONSTANTS[50] is Km_ATP in component V_PFK (millimolar).
 * CONSTANTS[51] is V_PFK_max in component V_PFK (flux).
 * ALGEBRAIC[20] is Km_PEP in component V_PYK (millimolar).
 * CONSTANTS[52] is Km_ADP in component V_PYK (millimolar).
 * CONSTANTS[53] is n in component V_PYK (dimensionless).
 * CONSTANTS[54] is V_PYK_max in component V_PYK (flux).
 * ALGEBRAIC[21] is Km_Fru_1_6_BP in component V_ALD (millimolar).
 * CONSTANTS[55] is Km_GA_3_P in component V_ALD (millimolar).
 * CONSTANTS[56] is Ki_GA_3_P in component V_ALD (millimolar).
 * CONSTANTS[57] is Km_DHAP in component V_ALD (millimolar).
 * CONSTANTS[58] is V_ALD_max_plus in component V_ALD (flux).
 * CONSTANTS[59] is V_ALD_max_ratio in component V_ALD (dimensionless).
 * CONSTANTS[60] is k in component V_ATP_utilisation (flux).
 * RATES[0] is d/dt Glc_i in component Glc_i (millimolar).
 * RATES[1] is d/dt hexose_P_g in component hexose_P_g (millimolar).
 * RATES[2] is d/dt Fru_1_6_BP_g in component Fru_1_6_BP_g (millimolar).
 * RATES[3] is d/dt triose_P in component triose_P (millimolar).
 * RATES[4] is d/dt one_three_BPGA_g in component one_three_BPGA_g (millimolar).
 * RATES[5] is d/dt N in component N (millimolar).
 * RATES[6] is d/dt PYR_c in component PYR_c (millimolar).
 * RATES[7] is d/dt NADH_g in component NADH_g (millimolar).
 * RATES[8] is d/dt P_g in component P_g (millimolar).
 * RATES[9] is d/dt P_c in component P_c (millimolar).
 * There are a total of 0 condition variables.
 */
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
CONSTANTS[0] = 22.3;
CONSTANTS[1] = 5.0;
STATES[0] = 0.01;
CONSTANTS[2] = 0.29;
STATES[1] = 0.01;
STATES[2] = 0.01;
CONSTANTS[3] = 0.045;
STATES[3] = 0.01;
STATES[4] = 0.01;
STATES[5] = 0.01;
CONSTANTS[4] = 0.187;
CONSTANTS[5] = 6.7;
STATES[6] = 0.01;
CONSTANTS[6] = 0.00;
CONSTANTS[7] = 120.0;
STATES[7] = 0.01;
CONSTANTS[8] = 4.0;
STATES[8] = 0.01;
STATES[9] = 0.01;
CONSTANTS[9] = 0.442;
CONSTANTS[10] = 3.9;
CONSTANTS[11] = 0.442;
CONSTANTS[12] = 3.9;
CONSTANTS[13] = 2.0;
CONSTANTS[14] = 0.75;
CONSTANTS[15] = 106.2;
CONSTANTS[16] = 1.96;
CONSTANTS[17] = 160.0;
CONSTANTS[18] = 1.7;
CONSTANTS[19] = 200.0;
CONSTANTS[20] = 0.1;
CONSTANTS[21] = 0.116;
CONSTANTS[22] = 0.126;
CONSTANTS[23] = 625.0;
CONSTANTS[24] = 0.45;
CONSTANTS[25] = 0.15;
CONSTANTS[26] = 0.1;
CONSTANTS[27] = 0.02;
CONSTANTS[28] = 1470.0;
CONSTANTS[29] = 0.67;
CONSTANTS[30] = 0.1;
CONSTANTS[31] = 0.05;
CONSTANTS[32] = 1.62;
CONSTANTS[33] = 0.29;
CONSTANTS[34] = 640.0;
CONSTANTS[35] = 0.029;
CONSTANTS[36] = 0.12;
CONSTANTS[37] = 5.1;
CONSTANTS[38] = 0.12;
CONSTANTS[39] = 0.19;
CONSTANTS[40] = 0.0;
CONSTANTS[41] = 167.0;
CONSTANTS[42] = 0.01;
CONSTANTS[43] = 2.0;
CONSTANTS[44] = 0.1;
CONSTANTS[45] = 0.4;
CONSTANTS[46] = 533.0;
CONSTANTS[47] = 0.28;
CONSTANTS[48] = 1.2;
CONSTANTS[49] = 0.82;
CONSTANTS[50] = 2.6E-2;
CONSTANTS[51] = 780.0;
CONSTANTS[52] = 0.114;
CONSTANTS[53] = 2.5;
CONSTANTS[54] = 2.6E3;
CONSTANTS[55] = 6.7E-2;
CONSTANTS[56] = 9.8E-2;
CONSTANTS[57] = 1.5E-2;
CONSTANTS[58] = 780.0;
CONSTANTS[59] = 1.19;
CONSTANTS[60] = 50;
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;
}
void
computeResiduals(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES,
                 double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS)
{
resid[0] = RATES[0] - ALGEBRAIC[15] - ALGEBRAIC[17];
resid[1] = RATES[1] - ALGEBRAIC[17] - ALGEBRAIC[19];
resid[2] = RATES[2] - ALGEBRAIC[19] - ALGEBRAIC[32];
resid[3] = RATES[3] - ( 2.00000*ALGEBRAIC[32]+ALGEBRAIC[27]) - (ALGEBRAIC[28]+ALGEBRAIC[30]);
resid[4] = RATES[4] - ALGEBRAIC[28] - ALGEBRAIC[18];
resid[5] = RATES[5] - ALGEBRAIC[18] - ALGEBRAIC[31];
resid[6] = RATES[6] - ALGEBRAIC[31] - ALGEBRAIC[16];
resid[7] = RATES[7] - ALGEBRAIC[28] - ALGEBRAIC[30];
resid[8] = RATES[8] - (ALGEBRAIC[18]+ALGEBRAIC[29]) - (ALGEBRAIC[17]+ALGEBRAIC[19]);
resid[9] = RATES[9] - ALGEBRAIC[31] - ALGEBRAIC[22];
}
void
computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[6] = ALGEBRAIC[5];
ALGEBRAIC[14] = CONSTANTS[12] - (ALGEBRAIC[10]+ALGEBRAIC[12]);
}
void
computeEssentialVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[15] =  CONSTANTS[15]*((CONSTANTS[1] - STATES[0])/(CONSTANTS[13]+CONSTANTS[1]+STATES[0]+ CONSTANTS[14]*CONSTANTS[1]*(STATES[0]/CONSTANTS[13])));
ALGEBRAIC[16] =  CONSTANTS[17]*(STATES[6]/CONSTANTS[16])*(1.00000+STATES[6]/CONSTANTS[16]);
ALGEBRAIC[9] = ((CONSTANTS[10] - - ( STATES[8]*(1.00000 -  4.00000*CONSTANTS[9])))+pow(pow(CONSTANTS[10] - - ( STATES[8]*(1.00000 -  4.00000*CONSTANTS[9])), 2.00000) -  4.00000*(1.00000 -  4.00000*CONSTANTS[9])*( - CONSTANTS[9]*pow(STATES[8], 2.00000)), 0.500000))/( 2.00000*(1.00000 -  4.00000*CONSTANTS[9]));
ALGEBRAIC[11] = STATES[8] -  2.00000*ALGEBRAIC[9];
ALGEBRAIC[17] =  CONSTANTS[23]*(( (ALGEBRAIC[9]/CONSTANTS[21])*(STATES[0]/CONSTANTS[20]))/( (1.00000+ALGEBRAIC[9]/CONSTANTS[21]+ALGEBRAIC[11]/CONSTANTS[22])*(1.00000+STATES[0]/CONSTANTS[20])));
ALGEBRAIC[2] = ( STATES[5]*(1.00000+CONSTANTS[0]))/(1.00000+ (1.00000+CONSTANTS[4]+ CONSTANTS[4]*CONSTANTS[5])*CONSTANTS[0]);
ALGEBRAIC[18] =  CONSTANTS[34]*(( (STATES[4]/CONSTANTS[31])*(ALGEBRAIC[11]/CONSTANTS[30] - CONSTANTS[35])*(ALGEBRAIC[2]/CONSTANTS[32])*(ALGEBRAIC[9]/CONSTANTS[33]))/( (1.00000+STATES[4]/CONSTANTS[31]+ALGEBRAIC[2]/CONSTANTS[32])*(1.00000+ALGEBRAIC[11]/CONSTANTS[30]+ALGEBRAIC[9]/CONSTANTS[33])));
ALGEBRAIC[0] = STATES[1]/CONSTANTS[2];
ALGEBRAIC[1] = STATES[1] - ALGEBRAIC[0];
ALGEBRAIC[19] =  CONSTANTS[51]*(( pow(ALGEBRAIC[1]/CONSTANTS[49], CONSTANTS[48])*(ALGEBRAIC[9]/CONSTANTS[50]))/( (1.00000+pow(ALGEBRAIC[1]/CONSTANTS[49], CONSTANTS[48]))*(1.00000+ALGEBRAIC[9]/CONSTANTS[50])));
ALGEBRAIC[10] = ((CONSTANTS[12] - - ( STATES[9]*(1.00000 -  4.00000*CONSTANTS[11])))+pow(pow(CONSTANTS[12] - - ( STATES[9]*(1.00000 -  4.00000*CONSTANTS[11])), 2.00000) -  4.00000*(1.00000 -  4.00000*CONSTANTS[11])*( - CONSTANTS[11]*pow(STATES[9], 2.00000)), 0.500000))/( 2.00000*(1.00000 -  4.00000*CONSTANTS[11]));
ALGEBRAIC[12] = STATES[9] -  2.00000*ALGEBRAIC[10];
ALGEBRAIC[22] =  CONSTANTS[60]*(ALGEBRAIC[10]/ALGEBRAIC[12]);
ALGEBRAIC[5] = ( STATES[3]*(1.00000+CONSTANTS[0]))/(1.00000+CONSTANTS[0]+CONSTANTS[3]);
ALGEBRAIC[7] = ALGEBRAIC[5];
ALGEBRAIC[23] =  CONSTANTS[3]*ALGEBRAIC[7];
ALGEBRAIC[24] = (CONSTANTS[7] - (ALGEBRAIC[0]+ALGEBRAIC[1]+ 2.00000*STATES[2]+ALGEBRAIC[23]+STATES[4]+ 2.00000*ALGEBRAIC[9]+ALGEBRAIC[11]))/(1.00000+CONSTANTS[0]) - ALGEBRAIC[5];
ALGEBRAIC[25] = ALGEBRAIC[24];
ALGEBRAIC[27] =  CONSTANTS[19]*(ALGEBRAIC[25]/CONSTANTS[18])*(1.00000+ALGEBRAIC[25]/CONSTANTS[18]);
ALGEBRAIC[8] = CONSTANTS[8] - STATES[7];
ALGEBRAIC[28] =  CONSTANTS[28]*(( (ALGEBRAIC[23]/CONSTANTS[25])*(ALGEBRAIC[8]/CONSTANTS[24] - CONSTANTS[29])*(STATES[4]/CONSTANTS[26])*(STATES[7]/CONSTANTS[27]))/( (1.00000+ALGEBRAIC[23]/CONSTANTS[25]+STATES[4]/CONSTANTS[26])*(1.00000+ALGEBRAIC[8]/CONSTANTS[24]+STATES[7]/CONSTANTS[27])));
ALGEBRAIC[26] = ALGEBRAIC[24];
ALGEBRAIC[29] =  CONSTANTS[40]*(( (ALGEBRAIC[26]/CONSTANTS[37])*(ALGEBRAIC[11]/CONSTANTS[36] - CONSTANTS[41])*(CONSTANTS[6]/CONSTANTS[38])*(ALGEBRAIC[9]/CONSTANTS[39]))/( (1.00000+ALGEBRAIC[26]/CONSTANTS[37]+CONSTANTS[6]/CONSTANTS[38])*(1.00000+ALGEBRAIC[11]/CONSTANTS[36]+ALGEBRAIC[9]/CONSTANTS[39])));
ALGEBRAIC[30] =  CONSTANTS[46]*(( (ALGEBRAIC[7]/CONSTANTS[44])*(STATES[7]/CONSTANTS[42] - CONSTANTS[47])*(ALGEBRAIC[26]/CONSTANTS[43])*(ALGEBRAIC[8]/CONSTANTS[45]))/( (1.00000+ALGEBRAIC[7]/CONSTANTS[44]+ALGEBRAIC[26]/CONSTANTS[43])*(1.00000+STATES[7]/CONSTANTS[42]+ALGEBRAIC[8]/CONSTANTS[45])));
ALGEBRAIC[3] =  CONSTANTS[4]*ALGEBRAIC[2];
ALGEBRAIC[4] =  CONSTANTS[5]*ALGEBRAIC[3];
ALGEBRAIC[20] =  0.340000*(1.00000+ALGEBRAIC[10]/0.570000+ALGEBRAIC[12]/0.640000);
ALGEBRAIC[31] =  CONSTANTS[54]*(( pow(ALGEBRAIC[4]/ALGEBRAIC[20], CONSTANTS[53])*(ALGEBRAIC[12]/CONSTANTS[52]))/( (1.00000+pow(ALGEBRAIC[4]/ALGEBRAIC[20], CONSTANTS[53]))*(1.00000+ALGEBRAIC[12]/CONSTANTS[52])));
ALGEBRAIC[13] = CONSTANTS[10] - (ALGEBRAIC[9]+ALGEBRAIC[11]);
ALGEBRAIC[21] =  0.00900000*(1.00000+ALGEBRAIC[9]/0.680000+ALGEBRAIC[11]/1.51000+ALGEBRAIC[13]/3.65000);
ALGEBRAIC[32] =  CONSTANTS[58]*((STATES[2]/ALGEBRAIC[21] -  CONSTANTS[59]*(( ALGEBRAIC[23]*ALGEBRAIC[7])/( CONSTANTS[55]*CONSTANTS[57])))/(1.00000+STATES[2]/ALGEBRAIC[21]+ALGEBRAIC[23]/CONSTANTS[55]+ALGEBRAIC[7]/CONSTANTS[57]+( STATES[2]*ALGEBRAIC[23])/( ALGEBRAIC[21]*CONSTANTS[56])+( ALGEBRAIC[7]*ALGEBRAIC[23])/( CONSTANTS[57]*CONSTANTS[55])));
}
void
getStateInformation(double* SI)
{
SI[0] = 1.0;
SI[1] = 1.0;
SI[2] = 1.0;
SI[3] = 1.0;
SI[4] = 1.0;
SI[5] = 1.0;
SI[6] = 1.0;
SI[7] = 1.0;
SI[8] = 1.0;
SI[9] = 1.0;
}
void
computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES,
             double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS)
{
}