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 7 entries in the algebraic variable array.
There are a total of 3 entries in each of the rate and state variable arrays.
There are a total of 10 entries in the constant variable array.
*/
/*
* VOI is time in component environment (second).
* CONSTANTS[0] is q_Cai_init in component environment (fmol).
* CONSTANTS[1] is q_TRPN_init in component environment (fmol).
* CONSTANTS[2] is q_Ca_TRPN_init in component environment (fmol).
* ALGEBRAIC[0] is q_Cai in component environment (fmol).
* ALGEBRAIC[1] is q_TRPN in component environment (fmol).
* ALGEBRAIC[2] is q_Ca_TRPN in component environment (fmol).
* STATES[0] is q_Cai in component TRPN (fmol).
* STATES[1] is q_TRPN in component TRPN (fmol).
* STATES[2] is q_Ca_TRPN in component TRPN (fmol).
* CONSTANTS[3] is kappa_R_TRPNCa in component TRPN_parameters (fmol_per_sec).
* CONSTANTS[4] is K_Cai in component TRPN_parameters (per_fmol).
* CONSTANTS[5] is K_TRPN in component TRPN_parameters (per_fmol).
* CONSTANTS[6] is K_Ca_TRPN in component TRPN_parameters (per_fmol).
* CONSTANTS[7] is R in component constants (J_per_K_per_mol).
* CONSTANTS[8] is T in component constants (kelvin).
* ALGEBRAIC[3] is mu_Cai in component TRPN (J_per_mol).
* ALGEBRAIC[4] is mu_TRPN in component TRPN (J_per_mol).
* ALGEBRAIC[5] is mu_Ca_TRPN in component TRPN (J_per_mol).
* ALGEBRAIC[6] is v_R_TRPNCa in component TRPN (fmol_per_sec).
* CONSTANTS[9] is F in component constants (C_per_mol).
* RATES[0] is d/dt q_Cai in component TRPN (fmol).
* RATES[1] is d/dt q_TRPN in component TRPN (fmol).
* RATES[2] is d/dt q_Ca_TRPN in component TRPN (fmol).
*/
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
CONSTANTS[0] = 6.82e-1;
CONSTANTS[1] = 2.57;
CONSTANTS[2] = 1e-16;
STATES[0] = 1e-16;
STATES[1] = 1e-16;
STATES[2] = 1e-16;
CONSTANTS[3] = 83.2553;
CONSTANTS[4] = 1.00748;
CONSTANTS[5] = 1.00748;
CONSTANTS[6] = 0.0698328;
CONSTANTS[7] = 8.31;
CONSTANTS[8] = 310;
CONSTANTS[9] = 96485;
}
void
computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[0] = STATES[0]+CONSTANTS[0];
ALGEBRAIC[3] = CONSTANTS[7]*CONSTANTS[8]*log( CONSTANTS[4]*ALGEBRAIC[0]);
ALGEBRAIC[1] = STATES[1]+CONSTANTS[1];
ALGEBRAIC[4] = CONSTANTS[7]*CONSTANTS[8]*log( CONSTANTS[5]*ALGEBRAIC[1]);
ALGEBRAIC[2] = STATES[2]+CONSTANTS[2];
ALGEBRAIC[5] = CONSTANTS[7]*CONSTANTS[8]*log( CONSTANTS[6]*ALGEBRAIC[2]);
ALGEBRAIC[6] = CONSTANTS[3]*(exp((ALGEBRAIC[3]+ALGEBRAIC[4])/( CONSTANTS[7]*CONSTANTS[8])) - exp(ALGEBRAIC[5]/( CONSTANTS[7]*CONSTANTS[8])));
RATES[0] = - ALGEBRAIC[6];
RATES[1] = - ALGEBRAIC[6];
RATES[2] = ALGEBRAIC[6];
}
void
computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[0] = STATES[0]+CONSTANTS[0];
ALGEBRAIC[3] = CONSTANTS[7]*CONSTANTS[8]*log( CONSTANTS[4]*ALGEBRAIC[0]);
ALGEBRAIC[1] = STATES[1]+CONSTANTS[1];
ALGEBRAIC[4] = CONSTANTS[7]*CONSTANTS[8]*log( CONSTANTS[5]*ALGEBRAIC[1]);
ALGEBRAIC[2] = STATES[2]+CONSTANTS[2];
ALGEBRAIC[5] = CONSTANTS[7]*CONSTANTS[8]*log( CONSTANTS[6]*ALGEBRAIC[2]);
ALGEBRAIC[6] = CONSTANTS[3]*(exp((ALGEBRAIC[3]+ALGEBRAIC[4])/( CONSTANTS[7]*CONSTANTS[8])) - exp(ALGEBRAIC[5]/( CONSTANTS[7]*CONSTANTS[8])));
}
