Generated Code

The following is c code generated by the CellML API from this CellML file. (Back to language selection)

The raw code is available.

/*
   There are a total of 5 entries in the algebraic variable array.
   There are a total of 7 entries in each of the rate and state variable arrays.
   There are a total of 34 entries in the constant variable array.
 */
/*
 * VOI is time in component environment (day).
 * STATES[0] is phi_I in component phi_I (cells_per_mm3).
 * ALGEBRAIC[3] is alpha in component model_parameters (dimensionless).
 * CONSTANTS[0] is k1 in component model_parameters (dimensionless).
 * CONSTANTS[1] is k2 in component model_parameters (per_day).
 * CONSTANTS[2] is k3 in component model_parameters (mm3_per_cells).
 * CONSTANTS[3] is k5 in component model_parameters (mm3_per_cells).
 * CONSTANTS[4] is k6 in component model_parameters (mm3_per_microg).
 * CONSTANTS[5] is d1 in component model_parameters (per_day).
 * STATES[1] is phi_R in component phi_R (cells_per_mm3).
 * ALGEBRAIC[0] is K_T in component K_T (cells_per_mm3_per_day).
 * STATES[2] is F in component F (cells_per_mm3).
 * STATES[3] is C in component C (microg_per_mm3).
 * STATES[4] is T in component T (pg_per_mm3).
 * CONSTANTS[6] is k4 in component model_parameters (pg_per_cells_per_day).
 * CONSTANTS[7] is k7 in component model_parameters (pg_per_cells_per_day).
 * CONSTANTS[8] is d2 in component model_parameters (per_day).
 * STATES[5] is P in component P (pg_per_mm3).
 * CONSTANTS[9] is k8 in component model_parameters (pg_per_cells_per_day).
 * CONSTANTS[10] is k9 in component model_parameters (pg_per_cells_per_day).
 * CONSTANTS[11] is d3 in component model_parameters (per_day).
 * CONSTANTS[12] is k10 in component model_parameters (per_day).
 * CONSTANTS[13] is d4 in component model_parameters (per_day).
 * ALGEBRAIC[1] is M_P in component M_P (cells_per_mm3_per_day).
 * CONSTANTS[14] is k11 in component model_parameters (microg_per_cells_per_day).
 * ALGEBRAIC[2] is f_T in component f_T (dimensionless).
 * ALGEBRAIC[4] is g_C in component g_C (dimensionless).
 * CONSTANTS[15] is d5 in component model_parameters (mm3_per_cells_per_day).
 * STATES[6] is H in component H (microg_per_mm3).
 * CONSTANTS[16] is k12 in component model_parameters (microg_per_cells_per_day).
 * CONSTANTS[17] is d6 in component model_parameters (per_day).
 * CONSTANTS[18] is tau1 in component K_T (mm6_cells_per_pg3_day).
 * CONSTANTS[19] is tau2 in component K_T (mm3_cells_per_pg2_day).
 * CONSTANTS[20] is tau3 in component K_T (cells_per_pg_per_day).
 * CONSTANTS[21] is tau4 in component K_T (cells_per_mm3_per_day).
 * CONSTANTS[22] is tau1 in component M_P (mm6_cells_per_pg3_day).
 * CONSTANTS[23] is tau2 in component M_P (mm3_cells_per_pg2_day).
 * CONSTANTS[24] is tau3 in component M_P (cells_per_pg_per_day).
 * CONSTANTS[25] is tau4 in component M_P (cells_per_mm3_per_day).
 * CONSTANTS[26] is tau1 in component f_T (mm9_per_pg3).
 * CONSTANTS[27] is tau2 in component f_T (mm6_per_pg2).
 * CONSTANTS[28] is tau3 in component f_T (mm3_per_pg).
 * CONSTANTS[29] is tau4 in component f_T (dimensionless).
 * CONSTANTS[30] is tau1 in component g_C (mm9_per_microg3).
 * CONSTANTS[31] is tau2 in component g_C (mm6_per_microg2).
 * CONSTANTS[32] is tau3 in component g_C (mm3_per_microg).
 * CONSTANTS[33] is tau4 in component g_C (dimensionless).
 * RATES[0] is d/dt phi_I in component phi_I (cells_per_mm3).
 * RATES[1] is d/dt phi_R in component phi_R (cells_per_mm3).
 * RATES[4] is d/dt T in component T (pg_per_mm3).
 * RATES[5] is d/dt P in component P (pg_per_mm3).
 * RATES[2] is d/dt F in component F (cells_per_mm3).
 * RATES[3] is d/dt C in component C (microg_per_mm3).
 * RATES[6] is d/dt H in component H (microg_per_mm3).
 */
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
STATES[0] = 200.0;
CONSTANTS[0] = 0.05;
CONSTANTS[1] = 0.693;
CONSTANTS[2] = 0.002;
CONSTANTS[3] = 0.0025;
CONSTANTS[4] = 0.0004;
CONSTANTS[5] = 0.2;
STATES[1] = 200.0;
STATES[2] = 50.0;
STATES[3] = 10.0;
STATES[4] = 6.0;
CONSTANTS[6] = 0.07;
CONSTANTS[7] = 0.004;
CONSTANTS[8] = 9.1;
STATES[5] = 2.0;
CONSTANTS[9] = 0.015;
CONSTANTS[10] = 0.0015;
CONSTANTS[11] = 4.0;
CONSTANTS[12] = 0.924;
CONSTANTS[13] = 2.5;
CONSTANTS[14] = 5.0;
CONSTANTS[15] = 1.5E-5;
STATES[6] = 0.01;
CONSTANTS[16] = 0.001;
CONSTANTS[17] = 0.7;
CONSTANTS[18] = -2.47;
CONSTANTS[19] = 21.94;
CONSTANTS[20] = 6.41;
CONSTANTS[21] = 1.75;
CONSTANTS[22] = 15.333;
CONSTANTS[23] = -167.21;
CONSTANTS[24] = 452.38;
CONSTANTS[25] = 2.6593;
CONSTANTS[26] = 0.0092;
CONSTANTS[27] = -0.1552;
CONSTANTS[28] = 0.6279;
CONSTANTS[29] = 0.2527;
CONSTANTS[30] = -4.33E-10;
CONSTANTS[31] = 0.0000009;
CONSTANTS[32] = -0.00055;
CONSTANTS[33] = 0.13;
}
void
computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
RATES[4] = ( CONSTANTS[6]*STATES[0]+ CONSTANTS[7]*STATES[2]) -  CONSTANTS[8]*STATES[4];
RATES[5] = ( CONSTANTS[9]*(STATES[0]+STATES[1])+ CONSTANTS[10]*STATES[2]) -  CONSTANTS[11]*STATES[5];
RATES[6] =  CONSTANTS[16]*STATES[2] -  CONSTANTS[17]*STATES[6];
ALGEBRAIC[1] =  CONSTANTS[22]*pow(STATES[5], 3.00000)+ CONSTANTS[23]*pow(STATES[5], 2.00000)+ CONSTANTS[24]*STATES[5]+CONSTANTS[25];
RATES[2] = (ALGEBRAIC[1]+ CONSTANTS[12]*STATES[2]*(1.00000 - ( CONSTANTS[2]*(STATES[0]+STATES[1])+ CONSTANTS[3]*STATES[2]+ CONSTANTS[4]*STATES[3]))) -  CONSTANTS[13]*STATES[2];
ALGEBRAIC[3] = - ( 0.197000*arbitrary_log(STATES[6], 10))+0.440700;
ALGEBRAIC[0] =  CONSTANTS[18]*pow(STATES[4], 3.00000)+ CONSTANTS[19]*pow(STATES[4], 2.00000)+ CONSTANTS[20]*STATES[4]+CONSTANTS[21];
RATES[0] = ( ALGEBRAIC[3]*ALGEBRAIC[0]+ CONSTANTS[0]*CONSTANTS[1]*STATES[0]*(1.00000 - ( CONSTANTS[2]*(STATES[0]+STATES[1])+ CONSTANTS[3]*STATES[2]+ CONSTANTS[4]*STATES[3]))) -  CONSTANTS[5]*STATES[0];
RATES[1] = ( (1.00000 - ALGEBRAIC[3])*ALGEBRAIC[0]+ CONSTANTS[0]*CONSTANTS[1]*STATES[1]*(1.00000 - ( CONSTANTS[2]*(STATES[0]+STATES[1])+ CONSTANTS[3]*STATES[2]+ CONSTANTS[4]*STATES[3]))) -  CONSTANTS[5]*STATES[1];
ALGEBRAIC[2] =  CONSTANTS[26]*pow(STATES[4], 3.00000)+ CONSTANTS[27]*pow(STATES[4], 2.00000)+ CONSTANTS[28]*STATES[4]+CONSTANTS[29];
ALGEBRAIC[4] =  CONSTANTS[30]*pow(STATES[3], 3.00000)+ CONSTANTS[31]*pow(STATES[3], 2.00000)+ CONSTANTS[32]*STATES[3]+CONSTANTS[33];
RATES[3] =  CONSTANTS[14]*STATES[2]*ALGEBRAIC[2]*ALGEBRAIC[4] -  CONSTANTS[15]*STATES[2]*STATES[3];
}
void
computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[1] =  CONSTANTS[22]*pow(STATES[5], 3.00000)+ CONSTANTS[23]*pow(STATES[5], 2.00000)+ CONSTANTS[24]*STATES[5]+CONSTANTS[25];
ALGEBRAIC[3] = - ( 0.197000*arbitrary_log(STATES[6], 10))+0.440700;
ALGEBRAIC[0] =  CONSTANTS[18]*pow(STATES[4], 3.00000)+ CONSTANTS[19]*pow(STATES[4], 2.00000)+ CONSTANTS[20]*STATES[4]+CONSTANTS[21];
ALGEBRAIC[2] =  CONSTANTS[26]*pow(STATES[4], 3.00000)+ CONSTANTS[27]*pow(STATES[4], 2.00000)+ CONSTANTS[28]*STATES[4]+CONSTANTS[29];
ALGEBRAIC[4] =  CONSTANTS[30]*pow(STATES[3], 3.00000)+ CONSTANTS[31]*pow(STATES[3], 2.00000)+ CONSTANTS[32]*STATES[3]+CONSTANTS[33];
}