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 17 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 19 entries in the constant variable array.
 */
/*
 * VOI is time in component environment (second).
 * STATES[0] is C_6PG in component C_6PG (millimolar).
 * CONSTANTS[0] is mu in component model_constants (per_hour).
 * ALGEBRAIC[13] is rG6PDH in component rG6PDH (flux).
 * ALGEBRAIC[14] is r6PGDH in component r6PGDH (flux).
 * STATES[1] is C_Ru5P in component C_Ru5P (millimolar).
 * ALGEBRAIC[6] is rRu5PE in component rRu5PE (flux).
 * ALGEBRAIC[5] is rR5PI in component rR5PI (flux).
 * STATES[2] is C_R5P in component C_R5P (millimolar).
 * ALGEBRAIC[7] is rTKL1 in component rTKL1 (flux).
 * ALGEBRAIC[11] is rRPPK in component rRPPK (flux).
 * STATES[3] is C_X5P in component C_X5P (millimolar).
 * ALGEBRAIC[9] is rTKL2 in component rTKL2 (flux).
 * STATES[4] is C_S7P in component C_S7P (millimolar).
 * ALGEBRAIC[8] is rTAL in component rTAL (flux).
 * STATES[5] is C_E4P in component C_E4P (millimolar).
 * ALGEBRAIC[10] is rPKDA in component rPKDA (flux).
 * STATES[6] is C_G6P in component C_G6P (millimolar).
 * ALGEBRAIC[0] is dC_G6P_dt in component C_G6P (flux).
 * STATES[7] is C_NADP in component C_NADP (millimolar).
 * STATES[8] is C_NADPH in component C_NADPH (millimolar).
 * STATES[9] is C_MgATP in component C_MgATP (millimolar).
 * CONSTANTS[1] is K_NADP_1 in component rG6PDH (millimolar).
 * CONSTANTS[2] is Ki_NADPH_1 in component rG6PDH (millimolar).
 * CONSTANTS[3] is Ki_MgATP_1 in component rG6PDH (millimolar).
 * ALGEBRAIC[1] is I_NADPH_1 in component rG6PDH (dimensionless).
 * ALGEBRAIC[2] is I_MgATP_1 in component rG6PDH (dimensionless).
 * CONSTANTS[4] is rmax_G6PDH in component rG6PDH (flux).
 * CONSTANTS[5] is K_NADP_2 in component r6PGDH (millimolar).
 * CONSTANTS[6] is Ki_NADPH_2 in component r6PGDH (millimolar).
 * CONSTANTS[7] is Ki_MgATP_2 in component r6PGDH (millimolar).
 * ALGEBRAIC[3] is I_NADPH_2 in component r6PGDH (dimensionless).
 * ALGEBRAIC[4] is I_MgATP_2 in component r6PGDH (dimensionless).
 * CONSTANTS[8] is rmax_6PGDH in component r6PGDH (flux).
 * CONSTANTS[9] is rmax_R5PI in component rR5PI (millimole_per_second).
 * CONSTANTS[10] is rmax_Ru5PE in component rRu5PE (millimole_per_second).
 * CONSTANTS[11] is rmax_TKL1 in component rTKL1 (millimole_per_second).
 * CONSTANTS[12] is C_GAP in component model_constants (millimolar).
 * CONSTANTS[13] is rmax_TAL in component rTAL (millimole_per_second).
 * CONSTANTS[14] is rmax_TKL2 in component rTKL2 (millimole_per_second).
 * CONSTANTS[15] is K_PKDA in component rPKDA (millimolar).
 * CONSTANTS[16] is rmax_PKDA in component rPKDA (millimole_per_second).
 * CONSTANTS[17] is K_RPPK in component rRPPK (millimolar).
 * CONSTANTS[18] is rmax_RPPK in component rRPPK (millimole_per_second).
 * ALGEBRAIC[15] is rHK in component rHK (flux).
 * ALGEBRAIC[12] is qs in component model_constants (flux).
 * ALGEBRAIC[16] is rPGI in component rPGI (flux).
 * RATES[0] is d/dt C_6PG in component C_6PG (millimolar).
 * RATES[1] is d/dt C_Ru5P in component C_Ru5P (millimolar).
 * RATES[2] is d/dt C_R5P in component C_R5P (millimolar).
 * RATES[3] is d/dt C_X5P in component C_X5P (millimolar).
 * RATES[4] is d/dt C_S7P in component C_S7P (millimolar).
 * RATES[5] is d/dt C_E4P in component C_E4P (millimolar).
 * RATES[6] is d/dt C_G6P in component C_G6P (millimolar).
 * RATES[7] is d/dt C_NADP in component C_NADP (millimolar).
 * RATES[8] is d/dt C_NADPH in component C_NADPH (millimolar).
 * RATES[9] is d/dt C_MgATP in component C_MgATP (millimolar).
 * There are a total of 1 condition variables.
 */
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
STATES[0] = 0.25;
CONSTANTS[0] = 1.0;
STATES[1] = 0.033;
STATES[2] = 0.118;
STATES[3] = 0.041;
STATES[4] = 0.082;
STATES[5] = 0.029;
STATES[6] = 0.9;
STATES[7] = 0.168;
STATES[8] = 0.168;
STATES[9] = 2.3;
CONSTANTS[1] = 0.116;
CONSTANTS[2] = 1.702;
CONSTANTS[3] = 0.33;
CONSTANTS[4] = 44.19;
CONSTANTS[5] = 1.848;
CONSTANTS[6] = 0.055;
CONSTANTS[7] = 0.109;
CONSTANTS[8] = 0.654;
CONSTANTS[9] = 0.57;
CONSTANTS[10] = 0.85;
CONSTANTS[11] = 3.24;
CONSTANTS[12] = 0.064;
CONSTANTS[13] = 3.0;
CONSTANTS[14] = 10.5;
CONSTANTS[15] = 0.0032;
CONSTANTS[16] = 0.004;
CONSTANTS[17] = 0.0034;
CONSTANTS[18] = 0.003;
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[13] - (ALGEBRAIC[14]+ CONSTANTS[0]*STATES[0]);
resid[1] = RATES[1] - ALGEBRAIC[14] - (ALGEBRAIC[5]+ALGEBRAIC[6]+ CONSTANTS[0]*STATES[1]);
resid[2] = RATES[2] - ALGEBRAIC[5] - (ALGEBRAIC[7]+ALGEBRAIC[11]+ CONSTANTS[0]*STATES[2]);
resid[3] = RATES[3] - ALGEBRAIC[6] - (ALGEBRAIC[7]+ALGEBRAIC[9]+ CONSTANTS[0]*STATES[3]);
resid[4] = RATES[4] - ALGEBRAIC[7] - (ALGEBRAIC[8]+ CONSTANTS[0]*STATES[4]);
resid[5] = RATES[5] - ALGEBRAIC[8] - (ALGEBRAIC[9]+ALGEBRAIC[10]+ CONSTANTS[0]*STATES[5]);
resid[6] = RATES[6] - ALGEBRAIC[0];
resid[7] = RATES[7] - -1.48000/(9.17000+ 16.1000*VOI+ 0.480000*pow(VOI, 2.00000))+ (( 1.48000*VOI)/( (9.17000+ 16.1000*VOI+ 0.480000*pow(VOI, 2.00000))*(9.17000+ 16.1000*VOI+ 0.480000*pow(VOI, 2.00000))))*(16.1000+ 0.960000*VOI);
resid[8] = RATES[8] - 0.516000/(25.3900+ 0.370000*VOI+ 0.500000*pow(VOI, 2.00000)) -  (( 0.516000*VOI)/( (25.3900+ 0.370000*VOI+ 0.500000*pow(VOI, 2.00000))*(25.3900+ 0.370000*VOI+ 0.500000*pow(VOI, 2.00000))))*(0.370000+ 1.00000*VOI);
resid[9] = RATES[9] - 29.8300/(29.7700+ 13.4200*VOI+ 0.0500000*pow(VOI, 2.00000)) -  (( 29.8300*VOI)/( (29.7700+ 13.4200*VOI+ 0.0500000*pow(VOI, 2.00000))*(29.7700+ 13.4200*VOI+ 0.0500000*pow(VOI, 2.00000))))*(13.4200+ 0.100000*VOI);
}
void
computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[12] = (CONDVAR[0]<0.00000 ? 0.131000 : 0.546000);
ALGEBRAIC[15] = ALGEBRAIC[12];
ALGEBRAIC[16] = ALGEBRAIC[12] - (ALGEBRAIC[13]+ CONSTANTS[0]*STATES[6]+ALGEBRAIC[0]);
}
void
computeEssentialVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[0] = 44.1000/(48.0000+ 1.00000*VOI+ 0.450000*pow(VOI, 2.00000))+ (( 44.1000*VOI)/( (48.0000+ 1.00000*VOI+ 0.450000*pow(VOI, 2.00000))*(48.0000+ 1.00000*VOI+ 0.450000*pow(VOI, 2.00000))))*(1.00000+ 0.900000*VOI);
ALGEBRAIC[5] =  1.00000*CONSTANTS[9]*STATES[1];
ALGEBRAIC[6] =  1.00000*CONSTANTS[10]*STATES[1];
ALGEBRAIC[7] =  1.00000*CONSTANTS[11]*STATES[3]*STATES[2];
ALGEBRAIC[8] =  1.00000*CONSTANTS[13]*CONSTANTS[12]*STATES[4];
ALGEBRAIC[9] =  1.00000*CONSTANTS[14]*STATES[5]*STATES[3];
ALGEBRAIC[10] =  1.00000*CONSTANTS[16]*(STATES[5]/(STATES[5]+CONSTANTS[15]));
ALGEBRAIC[11] =  1.00000*CONSTANTS[18]*(STATES[2]/(STATES[2]+CONSTANTS[17]));
ALGEBRAIC[1] = 1.00000+STATES[8]/CONSTANTS[2];
ALGEBRAIC[2] = 1.00000+STATES[9]/CONSTANTS[3];
ALGEBRAIC[13] =  CONSTANTS[4]*(STATES[7]/( (STATES[7]+ CONSTANTS[1]*ALGEBRAIC[1])*ALGEBRAIC[2]));
ALGEBRAIC[3] = 1.00000+STATES[8]/CONSTANTS[6];
ALGEBRAIC[4] = 1.00000+STATES[9]/CONSTANTS[7];
ALGEBRAIC[14] =  CONSTANTS[8]*(STATES[7]/( (STATES[7]+ CONSTANTS[5]*ALGEBRAIC[3])*ALGEBRAIC[4]));
}
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)
{
CONDVAR[0] = VOI - 0.00000;
}