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 10 entries in the algebraic variable array.
   There are a total of 5 entries in each of the rate and state variable arrays.
   There are a total of 21 entries in the constant variable array.
 */
/*
 * VOI is time in component environment (minute).
 * STATES[0] is Ca_m in component Ca_m (micromolar).
 * ALGEBRAIC[0] is J_min in component J_min (micromolar).
 * ALGEBRAIC[3] is J_mout in component J_mout (micromolar).
 * CONSTANTS[0] is k_min in component J_min (micromolar).
 * STATES[1] is Ca_cyt in component Ca_cyt (micromolar).
 * CONSTANTS[1] is K_m in component J_min (micromolar).
 * CONSTANTS[2] is n in component J_min (micromolar).
 * CONSTANTS[3] is k_mout in component J_mout (micromolar).
 * ALGEBRAIC[6] is J_ERch in component J_ERch (micromolar).
 * ALGEBRAIC[7] is J_ERpump in component J_ERpump (micromolar).
 * ALGEBRAIC[8] is J_in in component J_in (micromolar).
 * ALGEBRAIC[9] is J_out in component J_out (micromolar).
 * STATES[2] is Ca_ER in component Ca_ER (micromolar).
 * STATES[3] is PLC in component PLC (micromolar).
 * ALGEBRAIC[1] is J_PLCact in component J_PLCact (micromolar).
 * ALGEBRAIC[4] is J_PLCinact in component J_PLCinact (micromolar).
 * STATES[4] is G_alpha in component G_alpha (micromolar).
 * ALGEBRAIC[2] is J_actG_alpha in component J_actG_alpha (micromolar).
 * ALGEBRAIC[5] is J_inactG_alpha in component J_inactG_alpha (micromolar).
 * CONSTANTS[4] is k_10 in component J_ERch (dimensionless).
 * CONSTANTS[5] is K_11 in component J_ERch (dimensionless).
 * CONSTANTS[6] is K_17 in component J_ERpump (dimensionless).
 * CONSTANTS[7] is k_16 in component J_ERpump (dimensionless).
 * CONSTANTS[8] is K_12 in component J_in (dimensionless).
 * CONSTANTS[9] is k_13 in component J_in (dimensionless).
 * CONSTANTS[10] is k_14 in component J_out (dimensionless).
 * CONSTANTS[11] is K_15 in component J_out (dimensionless).
 * CONSTANTS[12] is k_7 in component J_PLCact (dimensionless).
 * CONSTANTS[13] is k_8 in component J_PLCinact (dimensionless).
 * CONSTANTS[14] is K_9 in component J_PLCinact (dimensionless).
 * CONSTANTS[15] is k_1 in component J_actG_alpha (dimensionless).
 * CONSTANTS[16] is k_2 in component J_actG_alpha (dimensionless).
 * CONSTANTS[17] is k_3 in component J_inactG_alpha (dimensionless).
 * CONSTANTS[18] is K_4 in component J_inactG_alpha (dimensionless).
 * CONSTANTS[19] is k_5 in component J_inactG_alpha (dimensionless).
 * CONSTANTS[20] is K_6 in component J_inactG_alpha (dimensionless).
 * RATES[0] is d/dt Ca_m in component Ca_m (micromolar).
 * RATES[1] is d/dt Ca_cyt in component Ca_cyt (micromolar).
 * RATES[2] is d/dt Ca_ER in component Ca_ER (micromolar).
 * RATES[3] is d/dt PLC in component PLC (micromolar).
 * RATES[4] is d/dt G_alpha in component G_alpha (micromolar).
 */
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
STATES[0] = 0.1;
CONSTANTS[0] = 330;
STATES[1] = 0.01;
CONSTANTS[1] = 1.6;
CONSTANTS[2] = 8;
CONSTANTS[3] = 0.5;
STATES[2] = 20;
STATES[3] = 0.01;
STATES[4] = 0.01;
CONSTANTS[4] = 5;
CONSTANTS[5] = 3;
CONSTANTS[6] = 0.05;
CONSTANTS[7] = 5.37;
CONSTANTS[8] = 2.8;
CONSTANTS[9] = 13.4;
CONSTANTS[10] = 153;
CONSTANTS[11] = 0.16;
CONSTANTS[12] = 2.08;
CONSTANTS[13] = 32.24;
CONSTANTS[14] = 29.09;
CONSTANTS[15] = 0.01;
CONSTANTS[16] = 0.1;
CONSTANTS[17] = 0.64;
CONSTANTS[18] = 0.09;
CONSTANTS[19] = 4.88;
CONSTANTS[20] = 1.18;
}
void
computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[0] = ( CONSTANTS[0]*pow(STATES[1], CONSTANTS[2]))/(pow(CONSTANTS[1], CONSTANTS[2])+pow(STATES[1], CONSTANTS[2]));
ALGEBRAIC[3] = ( CONSTANTS[3]*STATES[0])/1.00000;
RATES[0] = ALGEBRAIC[0] - ALGEBRAIC[3];
ALGEBRAIC[1] =  CONSTANTS[12]*STATES[4];
ALGEBRAIC[4] =  CONSTANTS[13]*(STATES[3]/(CONSTANTS[14]+STATES[3]));
RATES[3] =  (ALGEBRAIC[1] - ALGEBRAIC[4])*1.00000;
ALGEBRAIC[2] = CONSTANTS[15]+ CONSTANTS[16]*STATES[4];
ALGEBRAIC[5] =  CONSTANTS[17]*STATES[3]*(STATES[4]/(CONSTANTS[18]+STATES[4]))+ CONSTANTS[19]*STATES[1]*(STATES[4]/(CONSTANTS[20]+STATES[4]));
RATES[4] =  (ALGEBRAIC[2] - ALGEBRAIC[5])*1.00000;
ALGEBRAIC[6] =  CONSTANTS[4]*STATES[1]*STATES[3]*(STATES[2]/(CONSTANTS[5]+STATES[2]));
ALGEBRAIC[7] =  CONSTANTS[7]*(STATES[1]/(CONSTANTS[6]+STATES[2]));
RATES[2] =  (ALGEBRAIC[7] - ALGEBRAIC[6])*1.00000;
ALGEBRAIC[8] =  CONSTANTS[8]*STATES[3]+ CONSTANTS[9]*STATES[4];
ALGEBRAIC[9] =  CONSTANTS[10]*(STATES[1]/(CONSTANTS[11]+STATES[1]));
RATES[1] =  (((((ALGEBRAIC[6] - ALGEBRAIC[7])+ALGEBRAIC[8]) - ALGEBRAIC[9])+ALGEBRAIC[3]) - ALGEBRAIC[0])*1.00000;
}
void
computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[0] = ( CONSTANTS[0]*pow(STATES[1], CONSTANTS[2]))/(pow(CONSTANTS[1], CONSTANTS[2])+pow(STATES[1], CONSTANTS[2]));
ALGEBRAIC[3] = ( CONSTANTS[3]*STATES[0])/1.00000;
ALGEBRAIC[1] =  CONSTANTS[12]*STATES[4];
ALGEBRAIC[4] =  CONSTANTS[13]*(STATES[3]/(CONSTANTS[14]+STATES[3]));
ALGEBRAIC[2] = CONSTANTS[15]+ CONSTANTS[16]*STATES[4];
ALGEBRAIC[5] =  CONSTANTS[17]*STATES[3]*(STATES[4]/(CONSTANTS[18]+STATES[4]))+ CONSTANTS[19]*STATES[1]*(STATES[4]/(CONSTANTS[20]+STATES[4]));
ALGEBRAIC[6] =  CONSTANTS[4]*STATES[1]*STATES[3]*(STATES[2]/(CONSTANTS[5]+STATES[2]));
ALGEBRAIC[7] =  CONSTANTS[7]*(STATES[1]/(CONSTANTS[6]+STATES[2]));
ALGEBRAIC[8] =  CONSTANTS[8]*STATES[3]+ CONSTANTS[9]*STATES[4];
ALGEBRAIC[9] =  CONSTANTS[10]*(STATES[1]/(CONSTANTS[11]+STATES[1]));
}