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 K_C_Kp in component Kp_parameters (per_fmol).
 * CONSTANTS[5] is K_K_o in component Kp_parameters (per_fmol).
 * CONSTANTS[6] is K_K_i in component Kp_parameters (per_fmol).
 * CONSTANTS[7] is K_O_Kp in component Kp_parameters (per_fmol).
 * CONSTANTS[8] is kappa_Kp in component Kp_parameters (fmol_per_sec).
 * CONSTANTS[9] is kappa_gKp in component Kp_parameters (fmol_per_sec).
 * 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] = 41.6265;
CONSTANTS[5] = 0.059344;
CONSTANTS[6] = 0.0080926;
CONSTANTS[7] = 145.607;
CONSTANTS[8] = 252.3419;
CONSTANTS[9] = 24.0195;
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[7]*STATES[3]);
ALGEBRAIC[5] = ALGEBRAIC[3]+ CONSTANTS[10]*CONSTANTS[2]*ALGEBRAIC[0]+ALGEBRAIC[4];
ALGEBRAIC[2] =  CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[5]*STATES[0]);
ALGEBRAIC[8] = ALGEBRAIC[2]+ALGEBRAIC[4];
ALGEBRAIC[11] = (ALGEBRAIC[7]==0.00000 ?  CONSTANTS[8]*(exp(ALGEBRAIC[5]/( CONSTANTS[0]*CONSTANTS[1])) - exp(ALGEBRAIC[8]/( CONSTANTS[0]*CONSTANTS[1]))) :  ((( CONSTANTS[8]*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[4]*STATES[2])+ CONSTANTS[11]*CONSTANTS[2]*ALGEBRAIC[0];
ALGEBRAIC[9] =  CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[7]*STATES[3])+ CONSTANTS[12]*CONSTANTS[2]*ALGEBRAIC[0];
ALGEBRAIC[10] =  CONSTANTS[9]*(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[7]*STATES[3]);
ALGEBRAIC[5] = ALGEBRAIC[3]+ CONSTANTS[10]*CONSTANTS[2]*ALGEBRAIC[0]+ALGEBRAIC[4];
ALGEBRAIC[2] =  CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[5]*STATES[0]);
ALGEBRAIC[8] = ALGEBRAIC[2]+ALGEBRAIC[4];
ALGEBRAIC[11] = (ALGEBRAIC[7]==0.00000 ?  CONSTANTS[8]*(exp(ALGEBRAIC[5]/( CONSTANTS[0]*CONSTANTS[1])) - exp(ALGEBRAIC[8]/( CONSTANTS[0]*CONSTANTS[1]))) :  ((( CONSTANTS[8]*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[4]*STATES[2])+ CONSTANTS[11]*CONSTANTS[2]*ALGEBRAIC[0];
ALGEBRAIC[9] =  CONSTANTS[0]*CONSTANTS[1]*log( CONSTANTS[7]*STATES[3])+ CONSTANTS[12]*CONSTANTS[2]*ALGEBRAIC[0];
ALGEBRAIC[10] =  CONSTANTS[9]*(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[4]*STATES[2]);
}
Source
Derived from workspace Kp protein knowledge page at changeset fd07421f61fa.
Collaboration
To begin collaborating on this work, please use your git client and issue this command:
License
The terms of use/license for this work is unspecified.