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