Generated Code
The following is c_ida code generated by the CellML API from this CellML file. (Back to language selection)
The raw code is available.
/*
There are a total of 21 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 19 entries in the constant variable array.
*/
/*
* VOI is t in component environment (second).
* CONSTANTS[0] is C_m in component environment (fF).
* CONSTANTS[1] is q_K_o in component environment (fmol).
* CONSTANTS[2] is q_K_i in component environment (fmol).
* STATES[0] is q_S_Ks0 in component environment (fmol).
* STATES[1] is q_S_Ks1 in component environment (fmol).
* STATES[2] is q_S_Ks2 in component environment (fmol).
* ALGEBRAIC[1] is q_mem in component environment (fC).
* ALGEBRAIC[0] is Vmem in component environment (volt).
* CONSTANTS[3] is R in component environment (J_per_K_per_mol).
* CONSTANTS[4] is T in component environment (kelvin).
* CONSTANTS[5] is F in component environment (C_per_mol).
* ALGEBRAIC[9] is v_Ks in component Ks (fmol_per_sec).
* ALGEBRAIC[20] is I_mem_Ks in component Ks (fA).
* ALGEBRAIC[19] is i_Ks in component environment (uA_per_uF).
* CONSTANTS[6] is kappa_Ks in component Ks_parameters (fmol_per_sec).
* CONSTANTS[7] is kappa_xs1 in component Ks_parameters (fmol_per_sec).
* CONSTANTS[8] is kappa_xs2 in component Ks_parameters (fmol_per_sec).
* CONSTANTS[9] is K_K_i in component Ks_parameters (per_fmol).
* CONSTANTS[10] is K_K_o in component Ks_parameters (per_fmol).
* CONSTANTS[11] is K_S_Ks0 in component Ks_parameters (per_fmol).
* CONSTANTS[12] is K_S_Ks1 in component Ks_parameters (per_fmol).
* CONSTANTS[13] is K_S_Ks2 in component Ks_parameters (per_fmol).
* CONSTANTS[14] is zK in component Ks_parameters (dimensionless).
* CONSTANTS[15] is z_xs_f in component Ks_parameters (dimensionless).
* CONSTANTS[16] is z_xs_r in component Ks_parameters (dimensionless).
* CONSTANTS[17] is u_K_i in component Ks (J_per_mol).
* CONSTANTS[18] is u_K_o in component Ks (J_per_mol).
* ALGEBRAIC[2] is V_mem in component Ks (J_per_C).
* ALGEBRAIC[6] is Am_Ks in component Ks (J_per_mol).
* ALGEBRAIC[7] is Af_Ks in component Ks (J_per_mol).
* ALGEBRAIC[8] is Ar_Ks in component Ks (J_per_mol).
* ALGEBRAIC[16] is v_S_Ks0 in component Ks (fmol_per_sec).
* ALGEBRAIC[17] is v_S_Ks1 in component Ks (fmol_per_sec).
* ALGEBRAIC[18] is v_S_Ks2 in component Ks (fmol_per_sec).
* ALGEBRAIC[14] is v_xs1 in component Ks (fmol_per_sec).
* ALGEBRAIC[15] is v_xs2 in component Ks (fmol_per_sec).
* ALGEBRAIC[3] is mu_S_Ks0 in component Ks (J_per_mol).
* ALGEBRAIC[4] is mu_S_Ks1 in component Ks (J_per_mol).
* ALGEBRAIC[5] is mu_S_Ks2 in component Ks (J_per_mol).
* ALGEBRAIC[10] is Af_xs1 in component Ks (J_per_mol).
* ALGEBRAIC[11] is Ar_xs1 in component Ks (J_per_mol).
* ALGEBRAIC[12] is Af_xs2 in component Ks (J_per_mol).
* ALGEBRAIC[13] is Ar_xs2 in component Ks (J_per_mol).
* RATES[0] is d/dt q_S_Ks0 in component environment (fmol).
* RATES[1] is d/dt q_S_Ks1 in component environment (fmol).
* RATES[2] is d/dt q_S_Ks2 in component environment (fmol).
* There are a total of 7 condition variables.
*/
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
CONSTANTS[0] = 60000;
CONSTANTS[1] = 20.0448;
CONSTANTS[2] = 388.832;
STATES[0] = 9.742056902468725e-06;
STATES[1] = 9.742056902468725e-06;
STATES[2] = 9.742056902468725e-06;
CONSTANTS[3] = 8.31;
CONSTANTS[4] = 310;
CONSTANTS[5] = 96500;
CONSTANTS[6] = 27.8683;
CONSTANTS[7] = 0.00829152;
CONSTANTS[8] = 0.0295644;
CONSTANTS[9] = 1.42292;
CONSTANTS[10] = 10.4348;
CONSTANTS[11] = 0.281155;
CONSTANTS[12] = 0.0394258;
CONSTANTS[13] = 0.0221145;
CONSTANTS[14] = 1;
CONSTANTS[15] = 0.000400323747581994;
CONSTANTS[16] = -1.41544821457997;
CONSTANTS[17] = CONSTANTS[3]*CONSTANTS[4]*log( CONSTANTS[9]*CONSTANTS[2]);
CONSTANTS[18] = CONSTANTS[3]*CONSTANTS[4]*log( CONSTANTS[10]*CONSTANTS[1]);
RATES[0] = 0.1001;
RATES[1] = 0.1001;
RATES[2] = 0.1001;
}
void
computeResiduals(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES,
double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS)
{
resid[0] = RATES[0] - ALGEBRAIC[16];
resid[1] = RATES[1] - ALGEBRAIC[17];
resid[2] = RATES[2] - ALGEBRAIC[18];
}
void
computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[6] = CONSTANTS[14]*CONSTANTS[5]*ALGEBRAIC[2];
ALGEBRAIC[7] = ALGEBRAIC[5]+CONSTANTS[17]+ALGEBRAIC[6];
ALGEBRAIC[8] = ALGEBRAIC[5]+CONSTANTS[18];
ALGEBRAIC[9] = (ALGEBRAIC[6]==0.00000 ? 1.00000*CONSTANTS[6]*(exp(ALGEBRAIC[7]/( CONSTANTS[3]*CONSTANTS[4])) - exp(ALGEBRAIC[8]/( CONSTANTS[3]*CONSTANTS[4]))) : ((( 1.00000*CONSTANTS[6]*ALGEBRAIC[6])/( CONSTANTS[3]*CONSTANTS[4]))/(exp(ALGEBRAIC[6]/( CONSTANTS[3]*CONSTANTS[4])) - 1.00000))*(exp(ALGEBRAIC[7]/( CONSTANTS[3]*CONSTANTS[4])) - exp(ALGEBRAIC[8]/( CONSTANTS[3]*CONSTANTS[4]))));
ALGEBRAIC[19] = (( 1.00000e-09*CONSTANTS[5])/CONSTANTS[0])*ALGEBRAIC[9];
ALGEBRAIC[20] = CONSTANTS[5]*( - CONSTANTS[14]*ALGEBRAIC[9]+ (ALGEBRAIC[14]+ALGEBRAIC[15])*(CONSTANTS[16] - CONSTANTS[15]));
}
void
computeEssentialVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[0] = (CONDVAR[0]>=0.00000&&CONDVAR[1]<0.00000 ? - 0.0900000 : CONDVAR[2]>0.00000&&CONDVAR[3]<0.00000 ? - 0.0600000 : CONDVAR[4]>0.00000&&CONDVAR[5]<0.00000 ? - 0.0400000 : CONDVAR[6]>0.00000 ? 0.0900000 : - 0.0800000);
ALGEBRAIC[1] = ALGEBRAIC[0]*CONSTANTS[0];
ALGEBRAIC[2] = ALGEBRAIC[1]/CONSTANTS[0];
ALGEBRAIC[3] = CONSTANTS[3]*CONSTANTS[4]*log( CONSTANTS[11]*STATES[0]);
ALGEBRAIC[10] = ALGEBRAIC[3]+ CONSTANTS[15]*CONSTANTS[5]*ALGEBRAIC[2];
ALGEBRAIC[4] = CONSTANTS[3]*CONSTANTS[4]*log( CONSTANTS[12]*STATES[1]);
ALGEBRAIC[11] = ALGEBRAIC[4]+ CONSTANTS[16]*CONSTANTS[5]*ALGEBRAIC[2];
ALGEBRAIC[14] = CONSTANTS[7]*(exp(ALGEBRAIC[10]/( CONSTANTS[3]*CONSTANTS[4])) - exp(ALGEBRAIC[11]/( CONSTANTS[3]*CONSTANTS[4])));
ALGEBRAIC[16] = - ALGEBRAIC[14];
ALGEBRAIC[12] = ALGEBRAIC[4]+ CONSTANTS[15]*CONSTANTS[5]*ALGEBRAIC[2];
ALGEBRAIC[5] = CONSTANTS[3]*CONSTANTS[4]*log( CONSTANTS[13]*STATES[2]);
ALGEBRAIC[13] = ALGEBRAIC[5]+ CONSTANTS[16]*CONSTANTS[5]*ALGEBRAIC[2];
ALGEBRAIC[15] = CONSTANTS[8]*(exp(ALGEBRAIC[12]/( CONSTANTS[3]*CONSTANTS[4])) - exp(ALGEBRAIC[13]/( CONSTANTS[3]*CONSTANTS[4])));
ALGEBRAIC[17] = ALGEBRAIC[14] - ALGEBRAIC[15];
ALGEBRAIC[18] = ALGEBRAIC[15];
}
void
getStateInformation(double* SI)
{
SI[0] = 1.0;
SI[1] = 1.0;
SI[2] = 1.0;
}
void
computeRoots(double VOI, double* CONSTANTS, double* RATES, double* OLDRATES, double* STATES,
double* OLDSTATES, double* ALGEBRAIC, double* CONDVARS)
{
CONDVAR[0] = VOI - 0.00000;
CONDVAR[1] = VOI - 4.00000;
CONDVAR[2] = VOI - 10.1000;
CONDVAR[3] = VOI - 13.1000;
CONDVAR[4] = VOI - 14.1000;
CONDVAR[5] = VOI - 15.1000;
CONDVAR[6] = VOI - 17.0000;
}
