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 15 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 13 entries in the constant variable array.
*/
/*
* VOI is t in component environment (second).
* CONSTANTS[0] is R in component environment (J_per_K_per_mol).
* CONSTANTS[1] is T in component environment (kelvin).
* CONSTANTS[2] is F in component environment (C_per_mol).
* CONSTANTS[3] is C_m in component environment (fF).
* STATES[0] is q_K_o in component environment (fmol).
* STATES[1] is q_K_i in component environment (fmol).
* STATES[2] is q_C_Kp in component environment (fmol).
* STATES[3] is q_O_Kp in component environment (fmol).
* ALGEBRAIC[11] is v_Kp in component Kp (fmol_per_sec).
* STATES[4] is q_mem in component environment (fC).
* ALGEBRAIC[13] is I_mem_Kp in component Kp (fA).
* CONSTANTS[4] is kappa_Kp in component Kp_parameters (fmol_per_sec).
* CONSTANTS[5] is kappa_gKp in component Kp_parameters (fmol_per_sec).
* CONSTANTS[6] is K_K_i in component Kp_parameters (per_fmol).
* CONSTANTS[7] is K_K_o in component Kp_parameters (per_fmol).
* CONSTANTS[8] is K_C_Kp in component Kp_parameters (per_fmol).
* CONSTANTS[9] is K_O_Kp in component Kp_parameters (per_fmol).
* CONSTANTS[10] is zK in component Kp_parameters (dimensionless).
* CONSTANTS[11] is z_f_Kp in component Kp_parameters (dimensionless).
* CONSTANTS[12] is z_r_Kp in component Kp_parameters (dimensionless).
* ALGEBRAIC[2] is mu_K_o in component Kp (J_per_mol).
* ALGEBRAIC[3] is mu_K_i in component Kp (J_per_mol).
* ALGEBRAIC[1] is mu_C_Kp in component Kp (J_per_mol).
* ALGEBRAIC[4] is mu_O_Kp in component Kp (J_per_mol).
* ALGEBRAIC[7] is Am_Kp in component Kp (J_per_mol).
* ALGEBRAIC[5] is Af_Kp in component Kp (J_per_mol).
* ALGEBRAIC[8] is Ar_Kp in component Kp (J_per_mol).
* ALGEBRAIC[6] is Af_gKp in component Kp (J_per_mol).
* ALGEBRAIC[9] is Ar_gKp in component Kp (J_per_mol).
* ALGEBRAIC[10] is v_gKp in component Kp (fmol_per_sec).
* ALGEBRAIC[12] is v_C_Kp in component Kp (fmol_per_sec).
* ALGEBRAIC[14] is v_O_Kp in component Kp (fmol_per_sec).
* ALGEBRAIC[0] is V_mem in component Kp (volt).
* RATES[0] is d/dt q_K_o in component environment (fmol).
* RATES[1] is d/dt q_K_i in component environment (fmol).
* RATES[4] is d/dt q_mem in component environment (fC).
* RATES[2] is d/dt q_C_Kp in component environment (fmol).
* RATES[3] is d/dt q_O_Kp in component environment (fmol).
*/
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
CONSTANTS[0] = 8.314;
CONSTANTS[1] = 310;
CONSTANTS[2] = 96485;
CONSTANTS[3] = 153400;
STATES[0] = 27.9828;
STATES[1] = 5510;
STATES[2] = 1.3813E-07;
STATES[3] = 3.45317E-08;
STATES[4] = -13039;
CONSTANTS[4] = 84.6981;
CONSTANTS[5] = 34.5622;
CONSTANTS[6] = 0.267534;
CONSTANTS[7] = 1.77599;
CONSTANTS[8] = 28.9289;
CONSTANTS[9] = 101.191;
CONSTANTS[10] = 1;
CONSTANTS[11] = 0;
CONSTANTS[12] = -4.4669;
}
void
computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[0] = STATES[4]/CONSTANTS[3];
ALGEBRAIC[7] = CONSTANTS[10]*CONSTANTS[2]*ALGEBRAIC[0];
ALGEBRAIC[3] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[6]*STATES[1]);
ALGEBRAIC[4] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[9]*STATES[3]);
ALGEBRAIC[5] = ALGEBRAIC[3]+ CONSTANTS[10]*CONSTANTS[2]*ALGEBRAIC[0]+ALGEBRAIC[4];
ALGEBRAIC[2] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[7]*STATES[0]);
ALGEBRAIC[8] = ALGEBRAIC[2]+ALGEBRAIC[4];
ALGEBRAIC[11] = (ALGEBRAIC[7]==0.00000 ? CONSTANTS[4]*(exp(ALGEBRAIC[5]/( CONSTANTS[0]*CONSTANTS[1])) - exp(ALGEBRAIC[8]/( CONSTANTS[0]*CONSTANTS[1]))) : ((( CONSTANTS[4]*ALGEBRAIC[7])/( CONSTANTS[0]*CONSTANTS[1]))/(exp(ALGEBRAIC[7]/( CONSTANTS[0]*CONSTANTS[1])) - 1.00000))*(exp(ALGEBRAIC[5]/( CONSTANTS[0]*CONSTANTS[1])) - exp(ALGEBRAIC[8]/( CONSTANTS[0]*CONSTANTS[1]))));
RATES[0] = ALGEBRAIC[11];
RATES[1] = - ALGEBRAIC[11];
ALGEBRAIC[6] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[8]*STATES[2])+ CONSTANTS[11]*CONSTANTS[2]*ALGEBRAIC[0];
ALGEBRAIC[9] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[9]*STATES[3])+ CONSTANTS[12]*CONSTANTS[2]*ALGEBRAIC[0];
ALGEBRAIC[10] = CONSTANTS[5]*(exp(ALGEBRAIC[6]/( CONSTANTS[0]*CONSTANTS[1])) - exp(ALGEBRAIC[9]/( CONSTANTS[0]*CONSTANTS[1])));
ALGEBRAIC[12] = - ALGEBRAIC[10];
RATES[2] = ALGEBRAIC[12];
ALGEBRAIC[13] = CONSTANTS[2]*(( - CONSTANTS[10]*ALGEBRAIC[11]+ CONSTANTS[12]*ALGEBRAIC[10]) - CONSTANTS[11]*ALGEBRAIC[10]);
RATES[4] = ALGEBRAIC[13];
ALGEBRAIC[14] = ALGEBRAIC[10] - (ALGEBRAIC[11] - ALGEBRAIC[11]);
RATES[3] = ALGEBRAIC[14];
}
void
computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[0] = STATES[4]/CONSTANTS[3];
ALGEBRAIC[7] = CONSTANTS[10]*CONSTANTS[2]*ALGEBRAIC[0];
ALGEBRAIC[3] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[6]*STATES[1]);
ALGEBRAIC[4] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[9]*STATES[3]);
ALGEBRAIC[5] = ALGEBRAIC[3]+ CONSTANTS[10]*CONSTANTS[2]*ALGEBRAIC[0]+ALGEBRAIC[4];
ALGEBRAIC[2] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[7]*STATES[0]);
ALGEBRAIC[8] = ALGEBRAIC[2]+ALGEBRAIC[4];
ALGEBRAIC[11] = (ALGEBRAIC[7]==0.00000 ? CONSTANTS[4]*(exp(ALGEBRAIC[5]/( CONSTANTS[0]*CONSTANTS[1])) - exp(ALGEBRAIC[8]/( CONSTANTS[0]*CONSTANTS[1]))) : ((( CONSTANTS[4]*ALGEBRAIC[7])/( CONSTANTS[0]*CONSTANTS[1]))/(exp(ALGEBRAIC[7]/( CONSTANTS[0]*CONSTANTS[1])) - 1.00000))*(exp(ALGEBRAIC[5]/( CONSTANTS[0]*CONSTANTS[1])) - exp(ALGEBRAIC[8]/( CONSTANTS[0]*CONSTANTS[1]))));
ALGEBRAIC[6] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[8]*STATES[2])+ CONSTANTS[11]*CONSTANTS[2]*ALGEBRAIC[0];
ALGEBRAIC[9] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[9]*STATES[3])+ CONSTANTS[12]*CONSTANTS[2]*ALGEBRAIC[0];
ALGEBRAIC[10] = CONSTANTS[5]*(exp(ALGEBRAIC[6]/( CONSTANTS[0]*CONSTANTS[1])) - exp(ALGEBRAIC[9]/( CONSTANTS[0]*CONSTANTS[1])));
ALGEBRAIC[12] = - ALGEBRAIC[10];
ALGEBRAIC[13] = CONSTANTS[2]*(( - CONSTANTS[10]*ALGEBRAIC[11]+ CONSTANTS[12]*ALGEBRAIC[10]) - CONSTANTS[11]*ALGEBRAIC[10]);
ALGEBRAIC[14] = ALGEBRAIC[10] - (ALGEBRAIC[11] - ALGEBRAIC[11]);
ALGEBRAIC[1] = CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[8]*STATES[2]);
}
