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 2 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 38 entries in the constant variable array.
*/
/*
* VOI is time in component environment (hour).
* CONSTANTS[0] is v_sP in component nucleus (nanomolar_hour).
* CONSTANTS[1] is v_mP in component nucleus (nanomolar_hour).
* CONSTANTS[2] is K_IP in component nucleus (nanomolar).
* CONSTANTS[3] is K_mP in component nucleus (nanomolar).
* CONSTANTS[4] is v_sT in component nucleus (nanomolar_hour).
* CONSTANTS[5] is v_mT in component nucleus (nanomolar_hour).
* CONSTANTS[6] is K_IT in component nucleus (nanomolar).
* CONSTANTS[7] is K_mT in component nucleus (nanomolar).
* CONSTANTS[8] is k_d in component cytosol (per_hour).
* CONSTANTS[9] is n in component nucleus (dimensionless).
* CONSTANTS[10] is k_1 in component cytosol (per_hour).
* CONSTANTS[11] is k_2 in component cytosol (per_hour).
* CONSTANTS[12] is k_dN in component nucleus (per_hour).
* STATES[0] is C in component cytosol (nanomolar).
* STATES[1] is M_P in component nucleus (nanomolar).
* STATES[2] is M_T in component nucleus (nanomolar).
* STATES[3] is C_N in component nucleus (nanomolar).
* CONSTANTS[13] is k_3 in component cytosol (per_nanomolar_hour).
* CONSTANTS[14] is k_4 in component cytosol (per_hour).
* CONSTANTS[15] is k_dC in component cytosol (per_hour).
* STATES[4] is P_0 in component PER (nanomolar).
* STATES[5] is P_1 in component PER (nanomolar).
* STATES[6] is P_2 in component PER (nanomolar).
* STATES[7] is T_0 in component TIM (nanomolar).
* STATES[8] is T_1 in component TIM (nanomolar).
* STATES[9] is T_2 in component TIM (nanomolar).
* CONSTANTS[16] is V_1P in component PER (nanomolar_hour).
* CONSTANTS[17] is V_2P in component PER (nanomolar_hour).
* CONSTANTS[18] is V_3P in component PER (nanomolar_hour).
* CONSTANTS[19] is V_4P in component PER (nanomolar_hour).
* CONSTANTS[20] is K_1P in component PER (nanomolar).
* CONSTANTS[21] is K_2P in component PER (nanomolar).
* CONSTANTS[22] is K_3P in component PER (nanomolar).
* CONSTANTS[23] is K_4P in component PER (nanomolar).
* CONSTANTS[24] is K_dP in component PER (nanomolar).
* CONSTANTS[25] is v_dP in component PER (nanomolar_hour).
* CONSTANTS[26] is k_sP in component PER (per_hour).
* CONSTANTS[27] is V_1T in component TIM (nanomolar_hour).
* CONSTANTS[28] is V_2T in component TIM (nanomolar_hour).
* CONSTANTS[29] is V_3T in component TIM (nanomolar_hour).
* CONSTANTS[30] is V_4T in component TIM (nanomolar_hour).
* CONSTANTS[31] is K_1T in component TIM (nanomolar).
* CONSTANTS[32] is K_2T in component TIM (nanomolar).
* CONSTANTS[33] is K_3T in component TIM (nanomolar).
* CONSTANTS[34] is K_4T in component TIM (nanomolar).
* CONSTANTS[35] is K_dT in component TIM (nanomolar).
* CONSTANTS[36] is v_dT in component TIM (nanomolar_hour).
* CONSTANTS[37] is k_sT in component TIM (per_hour).
* ALGEBRAIC[0] is P_t in component PER_total (nanomolar).
* ALGEBRAIC[1] is T_t in component TIM_total (nanomolar).
* RATES[1] is d/dt M_P in component nucleus (nanomolar).
* RATES[2] is d/dt M_T in component nucleus (nanomolar).
* RATES[3] is d/dt C_N in component nucleus (nanomolar).
* RATES[0] is d/dt C in component cytosol (nanomolar).
* RATES[4] is d/dt P_0 in component PER (nanomolar).
* RATES[5] is d/dt P_1 in component PER (nanomolar).
* RATES[6] is d/dt P_2 in component PER (nanomolar).
* RATES[7] is d/dt T_0 in component TIM (nanomolar).
* RATES[8] is d/dt T_1 in component TIM (nanomolar).
* RATES[9] is d/dt T_2 in component TIM (nanomolar).
*/
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
CONSTANTS[0] = 1;
CONSTANTS[1] = 0.7;
CONSTANTS[2] = 1;
CONSTANTS[3] = 0.2;
CONSTANTS[4] = 1;
CONSTANTS[5] = 0.7;
CONSTANTS[6] = 1;
CONSTANTS[7] = 0.2;
CONSTANTS[8] = 0.01;
CONSTANTS[9] = 4;
CONSTANTS[10] = 0.6;
CONSTANTS[11] = 0.2;
CONSTANTS[12] = 0.01;
STATES[0] = 0.344;
STATES[1] = 0.031;
STATES[2] = 0.031;
STATES[3] = 1.77;
CONSTANTS[13] = 1.2;
CONSTANTS[14] = 0.6;
CONSTANTS[15] = 0.01;
STATES[4] = 0.0114;
STATES[5] = 0.0178;
STATES[6] = 0.0322;
STATES[7] = 0.0114;
STATES[8] = 0.0178;
STATES[9] = 0.0324;
CONSTANTS[16] = 8;
CONSTANTS[17] = 1;
CONSTANTS[18] = 8;
CONSTANTS[19] = 1;
CONSTANTS[20] = 2;
CONSTANTS[21] = 2;
CONSTANTS[22] = 2;
CONSTANTS[23] = 2;
CONSTANTS[24] = 0.2;
CONSTANTS[25] = 2;
CONSTANTS[26] = 0.9;
CONSTANTS[27] = 8;
CONSTANTS[28] = 1;
CONSTANTS[29] = 8;
CONSTANTS[30] = 1;
CONSTANTS[31] = 2;
CONSTANTS[32] = 2;
CONSTANTS[33] = 2;
CONSTANTS[34] = 2;
CONSTANTS[35] = 0.2;
CONSTANTS[36] = 2;
CONSTANTS[37] = 0.9;
}
void
computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
RATES[1] = ( CONSTANTS[0]*(pow(CONSTANTS[2], CONSTANTS[9])/(pow(CONSTANTS[2], CONSTANTS[9])+pow(STATES[3], CONSTANTS[9]))) - CONSTANTS[1]*(STATES[1]/(CONSTANTS[3]+STATES[1]))) - CONSTANTS[8]*STATES[1];
RATES[2] = ( CONSTANTS[4]*(pow(CONSTANTS[6], CONSTANTS[9])/(pow(CONSTANTS[6], CONSTANTS[9])+pow(STATES[3], CONSTANTS[9]))) - CONSTANTS[5]*(STATES[2]/(CONSTANTS[7]+STATES[2]))) - CONSTANTS[8]*STATES[2];
RATES[3] = ( CONSTANTS[10]*STATES[0] - CONSTANTS[11]*STATES[3]) - CONSTANTS[12]*STATES[3];
RATES[0] = ((( CONSTANTS[13]*STATES[6]*STATES[9] - CONSTANTS[14]*STATES[0]) - CONSTANTS[10]*STATES[0])+ CONSTANTS[11]*STATES[3]) - CONSTANTS[15]*STATES[0];
RATES[4] = (( CONSTANTS[26]*STATES[1] - CONSTANTS[16]*(STATES[4]/(CONSTANTS[20]+STATES[4])))+ CONSTANTS[17]*(STATES[5]/(CONSTANTS[21]+STATES[5]))) - CONSTANTS[8]*STATES[4];
RATES[5] = ((( CONSTANTS[16]*(STATES[4]/(CONSTANTS[20]+STATES[4])) - CONSTANTS[17]*(STATES[5]/(CONSTANTS[21]+STATES[5]))) - CONSTANTS[18]*(STATES[5]/(CONSTANTS[22]+STATES[5])))+ CONSTANTS[19]*(STATES[6]/(CONSTANTS[23]+STATES[6]))) - CONSTANTS[8]*STATES[5];
RATES[6] = (((( CONSTANTS[18]*(STATES[5]/(CONSTANTS[22]+STATES[5])) - CONSTANTS[19]*(STATES[6]/(CONSTANTS[23]+STATES[6]))) - CONSTANTS[13]*STATES[6]*STATES[9])+ CONSTANTS[14]*STATES[0]) - CONSTANTS[25]*(STATES[6]/(CONSTANTS[24]+STATES[6]))) - CONSTANTS[8]*STATES[6];
RATES[7] = (( CONSTANTS[37]*STATES[2] - CONSTANTS[27]*(STATES[7]/(CONSTANTS[31]+STATES[7])))+ CONSTANTS[28]*(STATES[8]/(CONSTANTS[32]+STATES[8]))) - CONSTANTS[8]*STATES[7];
RATES[8] = ((( CONSTANTS[27]*(STATES[7]/(CONSTANTS[31]+STATES[7])) - CONSTANTS[28]*(STATES[8]/(CONSTANTS[32]+STATES[8]))) - CONSTANTS[29]*(STATES[8]/(CONSTANTS[33]+STATES[8])))+ CONSTANTS[30]*(STATES[9]/(CONSTANTS[34]+STATES[9]))) - CONSTANTS[8]*STATES[8];
RATES[9] = (((( CONSTANTS[29]*(STATES[8]/(CONSTANTS[33]+STATES[8])) - CONSTANTS[30]*(STATES[9]/(CONSTANTS[34]+STATES[9]))) - CONSTANTS[13]*STATES[6]*STATES[9])+ CONSTANTS[14]*STATES[0]) - CONSTANTS[36]*(STATES[9]/(CONSTANTS[35]+STATES[9]))) - CONSTANTS[8]*STATES[9];
}
void
computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[0] = STATES[4]+STATES[5]+STATES[6]+STATES[0]+STATES[3];
ALGEBRAIC[1] = STATES[7]+STATES[8]+STATES[9]+STATES[0]+STATES[3];
}
