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 26 entries in the algebraic variable array.
   There are a total of 4 entries in each of the rate and state variable arrays.
   There are a total of 27 entries in the constant variable array.
 */
/*
 * VOI is time in component environment (minute).
 * CONSTANTS[0] is VEC in component capillary_dynamics (litre).
 * CONSTANTS[1] is PPD in component capillary_dynamics (gram_per_minute).
 * CONSTANTS[2] is RVS in component capillary_dynamics (mmHg_minute_per_L).
 * CONSTANTS[3] is DFP in component capillary_dynamics (L_per_minute).
 * CONSTANTS[4] is VPF in component capillary_dynamics (litre).
 * CONSTANTS[5] is BFN in component capillary_dynamics (L_per_minute).
 * CONSTANTS[6] is PVS in component capillary_dynamics (mmHg).
 * CONSTANTS[24] is PC in component capillary_pressure (mmHg).
 * ALGEBRAIC[15] is PGH in component hydrostatic_pressure_of_tissue_gel (mmHg).
 * ALGEBRAIC[13] is PTC in component total_osmotic_pressure_of_tissue_gel (mmHg).
 * ALGEBRAIC[3] is PPC in component plasma_colloid_osmotic_pressure (mmHg).
 * CONSTANTS[26] is VTCPL in component plasma_leakage (L_per_minute).
 * ALGEBRAIC[16] is VTC in component rate_of_fluid_out_of_capillaries (L_per_minute).
 * CONSTANTS[7] is CFC in component parameter_values (L_per_minute_per_mmHg).
 * ALGEBRAIC[21] is VTL in component lymph_flow (L_per_minute).
 * STATES[0] is VP in component plasma_volume (litre).
 * CONSTANTS[8] is TRPL in component parameter_values (L_per_minute).
 * ALGEBRAIC[22] is VPD in component plasma_volume (L_per_minute).
 * STATES[1] is PRP in component total_plasma_protein (gram).
 * ALGEBRAIC[0] is CPP in component plasma_protein_concentration (gram_per_L).
 * ALGEBRAIC[2] is DLP in component protein_destruction_and_formation (gram_per_minute).
 * CONSTANTS[9] is CPR in component parameter_values (gram_per_L).
 * CONSTANTS[10] is LPPR in component parameter_values (gram_per_minute).
 * CONSTANTS[11] is LPDE in component parameter_values (dimensionless).
 * CONSTANTS[12] is LPK in component parameter_values (L_per_minute).
 * ALGEBRAIC[1] is CPPD in component protein_destruction_and_formation (gram_per_L).
 * CONSTANTS[13] is PCR in component parameter_values (mmHg).
 * CONSTANTS[14] is CPK in component parameter_values (L_per_minute_per_mmHg).
 * CONSTANTS[15] is PCE in component parameter_values (dimensionless).
 * CONSTANTS[25] is PRCD in component plasma_leakage (mmHg).
 * ALGEBRAIC[7] is CPI in component interstitial_protein_concentration (gram_per_L).
 * ALGEBRAIC[9] is DPC in component protein_influx_into_interstitium (gram_per_minute).
 * ALGEBRAIC[23] is DPL in component lymph_protein_flow (gram_per_minute).
 * ALGEBRAIC[24] is DPP in component total_plasma_protein (gram_per_minute).
 * ALGEBRAIC[4] is VTS in component total_systemic_fluid_volume (litre).
 * ALGEBRAIC[5] is VTS1 in component interstitial_fluid_volume (litre).
 * CONSTANTS[16] is TSSLML in component parameter_values (dimensionless).
 * CONSTANTS[17] is TSSLTC in component parameter_values (per_minute).
 * STATES[2] is VTS2 in component interstitial_fluid_volume (litre).
 * STATES[3] is TSP in component total_interstitial_protein (gram).
 * ALGEBRAIC[25] is DPI in component total_interstitial_protein (gram_per_minute).
 * ALGEBRAIC[10] is PTCPR in component interstitial_colloid_osmotic_pressure (mmHg).
 * ALGEBRAIC[14] is PTT in component total_tissue_pressure (mmHg).
 * ALGEBRAIC[11] is CHY in component hydrostatic_pressure_of_tissue_gel (gram_per_L).
 * CONSTANTS[18] is HYL in component parameter_values (gram).
 * CONSTANTS[19] is CMPTSS in component parameter_values (dimensionless).
 * CONSTANTS[20] is PGHF in component parameter_values (L_mmHg_per_gram).
 * ALGEBRAIC[12] is POSHYL in component total_osmotic_pressure_of_tissue_gel (mmHg).
 * CONSTANTS[21] is GCOPF in component parameter_values (per_mmHg).
 * CONSTANTS[22] is VTSF in component parameter_values (litre).
 * ALGEBRAIC[17] is PIF in component interstial_free_fluid_pressure (mmHg).
 * ALGEBRAIC[19] is PTS in component interstitial_solid_tissue_pressure (mmHg).
 * CONSTANTS[23] is PLDF in component parameter_values (mmHg).
 * ALGEBRAIC[18] is PLD1 in component lymph_flow (mmHg).
 * ALGEBRAIC[20] is PLD in component lymph_flow (mmHg).
 * ALGEBRAIC[6] is VG in component interstitial_gel_volume (litre).
 * ALGEBRAIC[8] is VIF in component interstitial_free_fluid_volume (litre).
 * RATES[0] is d/dt VP in component plasma_volume (litre).
 * RATES[1] is d/dt PRP in component total_plasma_protein (gram).
 * RATES[2] is d/dt VTS2 in component interstitial_fluid_volume (litre).
 * RATES[3] is d/dt TSP in component total_interstitial_protein (gram).
 */
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
CONSTANTS[0] = 14.8548;
CONSTANTS[1] = 4.4805e-06;
CONSTANTS[2] = 2.77751;
CONSTANTS[3] = -4.078e-07;
CONSTANTS[4] = 0.0123238;
CONSTANTS[5] = 2.79521;
CONSTANTS[6] = 3.71612;
CONSTANTS[7] = 0.01167;
STATES[0] = 3.00449;
CONSTANTS[8] = 0;
STATES[1] = 216.243;
CONSTANTS[9] = 40;
CONSTANTS[10] = 0.03;
CONSTANTS[11] = 8;
CONSTANTS[12] = 2.728e-14;
CONSTANTS[13] = 15;
CONSTANTS[14] = 0.000253;
CONSTANTS[15] = 1;
CONSTANTS[16] = 0.15;
CONSTANTS[17] = 0.005;
STATES[2] = 0.0;
STATES[3] = 279.945;
CONSTANTS[18] = 60;
CONSTANTS[19] = 2;
CONSTANTS[20] = -2;
CONSTANTS[21] = 0.8092;
CONSTANTS[22] = 6;
CONSTANTS[23] = 4.2;
CONSTANTS[24] =  CONSTANTS[2]*1.70000*CONSTANTS[5]+CONSTANTS[6];
CONSTANTS[25] = (CONSTANTS[24] - CONSTANTS[13]<0.00000 ? 0.00000 : CONSTANTS[24] - CONSTANTS[13]);
CONSTANTS[26] = pow( CONSTANTS[25]*CONSTANTS[14], CONSTANTS[15]);
}
void
computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[4] = (CONSTANTS[0] - STATES[0]) - CONSTANTS[4];
RATES[2] =  ( (ALGEBRAIC[4] - 12.0000)*CONSTANTS[16] - STATES[2])*CONSTANTS[17];
ALGEBRAIC[5] = ALGEBRAIC[4] - STATES[2];
ALGEBRAIC[14] =  pow((ALGEBRAIC[5] - CONSTANTS[22])/CONSTANTS[22], 2.00000)*1.00000;
ALGEBRAIC[11] = pow((CONSTANTS[18]/ALGEBRAIC[4])/5.00000, CONSTANTS[19]);
ALGEBRAIC[15] =  ALGEBRAIC[11]*CONSTANTS[20]+ALGEBRAIC[14];
ALGEBRAIC[7] = STATES[3]/ALGEBRAIC[4];
ALGEBRAIC[10] =  0.280000*ALGEBRAIC[7]+ 0.00190000*pow(ALGEBRAIC[7], 2.00000);
ALGEBRAIC[12] =  ALGEBRAIC[11]*2.00000;
ALGEBRAIC[13] =  ALGEBRAIC[12]*ALGEBRAIC[10]*CONSTANTS[21];
ALGEBRAIC[0] = STATES[1]/STATES[0];
ALGEBRAIC[3] =  0.280000*ALGEBRAIC[0]+ 0.00190000*pow(ALGEBRAIC[0], 2.00000);
ALGEBRAIC[16] =  (((CONSTANTS[24] - ALGEBRAIC[3]) - ALGEBRAIC[15])+ALGEBRAIC[13])*CONSTANTS[7]+CONSTANTS[26];
ALGEBRAIC[17] = ALGEBRAIC[15] - ALGEBRAIC[12];
ALGEBRAIC[18] = (ALGEBRAIC[17]+CONSTANTS[23]) - ALGEBRAIC[14];
ALGEBRAIC[20] = (ALGEBRAIC[18]>7.00000 ? 7.00000 : ALGEBRAIC[18]);
ALGEBRAIC[21] = (ALGEBRAIC[20]<0.00000 ? 0.00000 :  ALGEBRAIC[20]*0.0200000);
ALGEBRAIC[22] = ((ALGEBRAIC[21] - ALGEBRAIC[16]) - CONSTANTS[3])+CONSTANTS[8];
RATES[0] = ALGEBRAIC[22];
ALGEBRAIC[1] = (ALGEBRAIC[0] - CONSTANTS[9]<0.00000 ? 0.00000 : ALGEBRAIC[0] - CONSTANTS[9]);
ALGEBRAIC[2] = CONSTANTS[10] -  pow(ALGEBRAIC[1], CONSTANTS[11])*CONSTANTS[12];
ALGEBRAIC[9] =  CONSTANTS[26]*ALGEBRAIC[0]+ (ALGEBRAIC[0] - ALGEBRAIC[7])*0.00104000;
ALGEBRAIC[23] =  ALGEBRAIC[7]*ALGEBRAIC[21];
ALGEBRAIC[24] = (((ALGEBRAIC[2]+ALGEBRAIC[23]) - ALGEBRAIC[9]) - CONSTANTS[1])+ CONSTANTS[8]*72.0000;
RATES[1] = ALGEBRAIC[24];
ALGEBRAIC[25] = ALGEBRAIC[9] - ALGEBRAIC[23];
RATES[3] = ALGEBRAIC[25];
}
void
computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[4] = (CONSTANTS[0] - STATES[0]) - CONSTANTS[4];
ALGEBRAIC[5] = ALGEBRAIC[4] - STATES[2];
ALGEBRAIC[14] =  pow((ALGEBRAIC[5] - CONSTANTS[22])/CONSTANTS[22], 2.00000)*1.00000;
ALGEBRAIC[11] = pow((CONSTANTS[18]/ALGEBRAIC[4])/5.00000, CONSTANTS[19]);
ALGEBRAIC[15] =  ALGEBRAIC[11]*CONSTANTS[20]+ALGEBRAIC[14];
ALGEBRAIC[7] = STATES[3]/ALGEBRAIC[4];
ALGEBRAIC[10] =  0.280000*ALGEBRAIC[7]+ 0.00190000*pow(ALGEBRAIC[7], 2.00000);
ALGEBRAIC[12] =  ALGEBRAIC[11]*2.00000;
ALGEBRAIC[13] =  ALGEBRAIC[12]*ALGEBRAIC[10]*CONSTANTS[21];
ALGEBRAIC[0] = STATES[1]/STATES[0];
ALGEBRAIC[3] =  0.280000*ALGEBRAIC[0]+ 0.00190000*pow(ALGEBRAIC[0], 2.00000);
ALGEBRAIC[16] =  (((CONSTANTS[24] - ALGEBRAIC[3]) - ALGEBRAIC[15])+ALGEBRAIC[13])*CONSTANTS[7]+CONSTANTS[26];
ALGEBRAIC[17] = ALGEBRAIC[15] - ALGEBRAIC[12];
ALGEBRAIC[18] = (ALGEBRAIC[17]+CONSTANTS[23]) - ALGEBRAIC[14];
ALGEBRAIC[20] = (ALGEBRAIC[18]>7.00000 ? 7.00000 : ALGEBRAIC[18]);
ALGEBRAIC[21] = (ALGEBRAIC[20]<0.00000 ? 0.00000 :  ALGEBRAIC[20]*0.0200000);
ALGEBRAIC[22] = ((ALGEBRAIC[21] - ALGEBRAIC[16]) - CONSTANTS[3])+CONSTANTS[8];
ALGEBRAIC[1] = (ALGEBRAIC[0] - CONSTANTS[9]<0.00000 ? 0.00000 : ALGEBRAIC[0] - CONSTANTS[9]);
ALGEBRAIC[2] = CONSTANTS[10] -  pow(ALGEBRAIC[1], CONSTANTS[11])*CONSTANTS[12];
ALGEBRAIC[9] =  CONSTANTS[26]*ALGEBRAIC[0]+ (ALGEBRAIC[0] - ALGEBRAIC[7])*0.00104000;
ALGEBRAIC[23] =  ALGEBRAIC[7]*ALGEBRAIC[21];
ALGEBRAIC[24] = (((ALGEBRAIC[2]+ALGEBRAIC[23]) - ALGEBRAIC[9]) - CONSTANTS[1])+ CONSTANTS[8]*72.0000;
ALGEBRAIC[25] = ALGEBRAIC[9] - ALGEBRAIC[23];
ALGEBRAIC[6] = (ALGEBRAIC[4]<=0.00000 ? 0.00000 : ALGEBRAIC[4]>0.00000&&ALGEBRAIC[4]<=12.0000 ? 0.00000+( (11.4000 - 0.00000)*(ALGEBRAIC[4] - 0.00000))/(12.0000 - 0.00000) : ALGEBRAIC[4]>12.0000&&ALGEBRAIC[4]<=15.0000 ? 11.4000+( (14.0000 - 11.4000)*(ALGEBRAIC[4] - 12.0000))/(15.0000 - 12.0000) : ALGEBRAIC[4]>15.0000&&ALGEBRAIC[4]<=18.0000 ? 14.0000+( (16.0000 - 14.0000)*(ALGEBRAIC[4] - 15.0000))/(18.0000 - 15.0000) : ALGEBRAIC[4]>18.0000&&ALGEBRAIC[4]<=21.0000 ? 16.0000+( (17.3000 - 16.0000)*(ALGEBRAIC[4] - 18.0000))/(21.0000 - 18.0000) : ALGEBRAIC[4]>21.0000&&ALGEBRAIC[4]<=24.0000 ? 17.3000+( (18.0000 - 17.3000)*(ALGEBRAIC[4] - 21.0000))/(24.0000 - 21.0000) : 18.0000);
ALGEBRAIC[8] = ALGEBRAIC[4] - ALGEBRAIC[6];
ALGEBRAIC[19] = ALGEBRAIC[14] - ALGEBRAIC[17];
}