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 13 entries in each of the rate and state variable arrays.
   There are a total of 65 entries in the constant variable array.
 */
/*
 * VOI is time in component environment (ms).
 * CONSTANTS[0] is V in component membrane (V).
 * ALGEBRAIC[1] is i_Na in component sodium_current (dimensionless).
 * CONSTANTS[1] is E_Na in component sodium_current (V).
 * CONSTANTS[2] is g_Na in component sodium_current (per_V).
 * ALGEBRAIC[0] is P_open in component Markov_model (dimensionless).
 * STATES[0] is O1 in component Markov_model (dimensionless).
 * STATES[1] is O2 in component Markov_model (dimensionless).
 * STATES[2] is C0 in component Markov_model (dimensionless).
 * STATES[3] is C1 in component Markov_model (dimensionless).
 * STATES[4] is C2 in component Markov_model (dimensionless).
 * STATES[5] is C3 in component Markov_model (dimensionless).
 * STATES[6] is C4 in component Markov_model (dimensionless).
 * STATES[7] is C0I in component Markov_model (dimensionless).
 * STATES[8] is C1I in component Markov_model (dimensionless).
 * STATES[9] is C2I in component Markov_model (dimensionless).
 * STATES[10] is C3I in component Markov_model (dimensionless).
 * STATES[11] is C4I in component Markov_model (dimensionless).
 * STATES[12] is I in component Markov_model (dimensionless).
 * CONSTANTS[3] is a in component Markov_model (dimensionless).
 * CONSTANTS[51] is alpha in component rate_constants (first_order_rate_constant).
 * CONSTANTS[52] is beta in component rate_constants (first_order_rate_constant).
 * CONSTANTS[53] is cf in component rate_constants (first_order_rate_constant).
 * CONSTANTS[54] is cn in component rate_constants (first_order_rate_constant).
 * CONSTANTS[55] is of in component rate_constants (first_order_rate_constant).
 * CONSTANTS[56] is on in component rate_constants (first_order_rate_constant).
 * CONSTANTS[57] is eta in component rate_constants (first_order_rate_constant).
 * CONSTANTS[58] is gamma in component rate_constants (first_order_rate_constant).
 * CONSTANTS[59] is delta in component rate_constants (first_order_rate_constant).
 * CONSTANTS[60] is epsilon in component rate_constants (first_order_rate_constant).
 * CONSTANTS[61] is omega in component rate_constants (first_order_rate_constant).
 * CONSTANTS[62] is v in component rate_constants (first_order_rate_constant).
 * CONSTANTS[63] is gamma_gamma in component rate_constants (first_order_rate_constant).
 * CONSTANTS[64] is delta_delta in component rate_constants (first_order_rate_constant).
 * CONSTANTS[4] is R in component rate_constants (J_mol_K).
 * CONSTANTS[5] is T in component rate_constants (K).
 * CONSTANTS[6] is F in component rate_constants (C_mol).
 * CONSTANTS[7] is k in component rate_constants (J_K).
 * CONSTANTS[8] is h in component rate_constants (J_ms).
 * CONSTANTS[9] is z_alpha in component rate_constants (dimensionless).
 * CONSTANTS[10] is z_beta in component rate_constants (dimensionless).
 * CONSTANTS[11] is z_gamma in component rate_constants (dimensionless).
 * CONSTANTS[12] is z_delta in component rate_constants (dimensionless).
 * CONSTANTS[13] is z_on in component rate_constants (dimensionless).
 * CONSTANTS[14] is z_of in component rate_constants (dimensionless).
 * CONSTANTS[15] is z_gamma_gamma in component rate_constants (dimensionless).
 * CONSTANTS[16] is z_delta_delta in component rate_constants (dimensionless).
 * CONSTANTS[17] is z_epsilon in component rate_constants (dimensionless).
 * CONSTANTS[18] is z_omega in component rate_constants (dimensionless).
 * CONSTANTS[19] is z_eta in component rate_constants (dimensionless).
 * CONSTANTS[20] is z_v in component rate_constants (dimensionless).
 * CONSTANTS[21] is z_cn in component rate_constants (dimensionless).
 * CONSTANTS[22] is z_cf in component rate_constants (dimensionless).
 * CONSTANTS[23] is delta_H_alpha in component rate_constants (J_mol).
 * CONSTANTS[24] is delta_H_beta in component rate_constants (J_mol).
 * CONSTANTS[25] is delta_H_cf in component rate_constants (J_mol).
 * CONSTANTS[26] is delta_H_cn in component rate_constants (J_mol).
 * CONSTANTS[27] is delta_H_of in component rate_constants (J_mol).
 * CONSTANTS[28] is delta_H_on in component rate_constants (J_mol).
 * CONSTANTS[29] is delta_H_eta in component rate_constants (J_mol).
 * CONSTANTS[30] is delta_H_gamma in component rate_constants (J_mol).
 * CONSTANTS[31] is delta_H_delta in component rate_constants (J_mol).
 * CONSTANTS[32] is delta_H_epsilon in component rate_constants (J_mol).
 * CONSTANTS[33] is delta_H_omega in component rate_constants (J_mol).
 * CONSTANTS[34] is delta_H_v in component rate_constants (J_mol).
 * CONSTANTS[35] is delta_H_gamma_gamma in component rate_constants (J_mol).
 * CONSTANTS[36] is delta_H_delta_delta in component rate_constants (J_mol).
 * CONSTANTS[37] is delta_S_alpha in component rate_constants (J_mol_K).
 * CONSTANTS[38] is delta_S_beta in component rate_constants (J_mol_K).
 * CONSTANTS[39] is delta_S_cf in component rate_constants (J_mol_K).
 * CONSTANTS[40] is delta_S_cn in component rate_constants (J_mol_K).
 * CONSTANTS[41] is delta_S_of in component rate_constants (J_mol_K).
 * CONSTANTS[42] is delta_S_on in component rate_constants (J_mol_K).
 * CONSTANTS[43] is delta_S_eta in component rate_constants (J_mol_K).
 * CONSTANTS[44] is delta_S_gamma in component rate_constants (J_mol_K).
 * CONSTANTS[45] is delta_S_delta in component rate_constants (J_mol_K).
 * CONSTANTS[46] is delta_S_epsilon in component rate_constants (J_mol_K).
 * CONSTANTS[47] is delta_S_omega in component rate_constants (J_mol_K).
 * CONSTANTS[48] is delta_S_v in component rate_constants (J_mol_K).
 * CONSTANTS[49] is delta_S_gamma_gamma in component rate_constants (J_mol_K).
 * CONSTANTS[50] is delta_S_delta_delta in component rate_constants (J_mol_K).
 * RATES[2] is d/dt C0 in component Markov_model (dimensionless).
 * RATES[3] is d/dt C1 in component Markov_model (dimensionless).
 * RATES[4] is d/dt C2 in component Markov_model (dimensionless).
 * RATES[5] is d/dt C3 in component Markov_model (dimensionless).
 * RATES[6] is d/dt C4 in component Markov_model (dimensionless).
 * RATES[0] is d/dt O1 in component Markov_model (dimensionless).
 * RATES[1] is d/dt O2 in component Markov_model (dimensionless).
 * RATES[7] is d/dt C0I in component Markov_model (dimensionless).
 * RATES[8] is d/dt C1I in component Markov_model (dimensionless).
 * RATES[9] is d/dt C2I in component Markov_model (dimensionless).
 * RATES[10] is d/dt C3I in component Markov_model (dimensionless).
 * RATES[11] is d/dt C4I in component Markov_model (dimensionless).
 * RATES[12] is d/dt I in component Markov_model (dimensionless).
 */
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
CONSTANTS[0] = -0.12;
CONSTANTS[1] = 0.044675;
CONSTANTS[2] = 0.0131;
STATES[0] = 0.0;
STATES[1] = 0.0;
STATES[2] = 1.0;
STATES[3] = 0.0;
STATES[4] = 0.0;
STATES[5] = 0.0;
STATES[6] = 0.0;
STATES[7] = 0.0;
STATES[8] = 0.0;
STATES[9] = 0.0;
STATES[10] = 0.0;
STATES[11] = 0.0;
STATES[12] = 0.0;
CONSTANTS[3] = 2.5218;
CONSTANTS[4] = 8.314472;
CONSTANTS[5] = 286.0;
CONSTANTS[6] = 96500.0;
CONSTANTS[7] = 1.3806504E-23;
CONSTANTS[8] = 6.62607095E-31;
CONSTANTS[9] = 0;
CONSTANTS[10] = -0.9701;
CONSTANTS[11] = 1.5703;
CONSTANTS[12] = -1.3266;
CONSTANTS[13] = 0.6625;
CONSTANTS[14] = 0;
CONSTANTS[15] = 0;
CONSTANTS[16] = -3.5596;
CONSTANTS[17] = 0;
CONSTANTS[18] = 0;
CONSTANTS[19] = 1.5717;
CONSTANTS[20] = -1.3281;
CONSTANTS[21] = 0;
CONSTANTS[22] = 0;
CONSTANTS[23] = 116900;
CONSTANTS[24] = 263870;
CONSTANTS[25] = 57533;
CONSTANTS[26] = 293270;
CONSTANTS[27] = 79035;
CONSTANTS[28] = 62385;
CONSTANTS[29] = 150333;
CONSTANTS[30] = 200240;
CONSTANTS[31] = 127970;
CONSTANTS[32] = 79183;
CONSTANTS[33] = 123020;
CONSTANTS[34] = 121900;
CONSTANTS[35] = -99967;
CONSTANTS[36] = 62555;
CONSTANTS[37] = 224.114;
CONSTANTS[38] = 708.146;
CONSTANTS[39] = 0.00711;
CONSTANTS[40] = 786.217;
CONSTANTS[41] = 1.510;
CONSTANTS[42] = 39.295;
CONSTANTS[43] = 338.915;
CONSTANTS[44] = 529.952;
CONSTANTS[45] = 229.205;
CONSTANTS[46] = 70.078;
CONSTANTS[47] = 225.175;
CONSTANTS[48] = 193.265;
CONSTANTS[49] = -578.317;
CONSTANTS[50] = -130.639;
CONSTANTS[51] =  (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[23]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[37]/CONSTANTS[4]+( CONSTANTS[9]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[52] =  (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[24]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[38]/CONSTANTS[4]+( CONSTANTS[10]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[53] =  (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[25]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[39]/CONSTANTS[4]+( CONSTANTS[22]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[54] =  (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[26]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[40]/CONSTANTS[4]+( CONSTANTS[21]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[55] =  (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[27]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[41]/CONSTANTS[4]+( CONSTANTS[14]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[56] =  (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[28]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[42]/CONSTANTS[4]+( CONSTANTS[13]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[57] =  (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[29]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[43]/CONSTANTS[4]+( CONSTANTS[19]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[58] =  (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[30]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[44]/CONSTANTS[4]+( CONSTANTS[11]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[59] =  (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[31]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[45]/CONSTANTS[4]+( CONSTANTS[12]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[60] =  (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[32]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[46]/CONSTANTS[4]+( CONSTANTS[17]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[61] =  (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[33]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[47]/CONSTANTS[4]+( CONSTANTS[18]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[62] =  (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[34]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[48]/CONSTANTS[4]+( CONSTANTS[20]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[63] =  (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[35]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[49]/CONSTANTS[4]+( CONSTANTS[15]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
CONSTANTS[64] =  (( CONSTANTS[7]*CONSTANTS[5])/CONSTANTS[8])*exp(- CONSTANTS[36]/( CONSTANTS[4]*CONSTANTS[5])+CONSTANTS[50]/CONSTANTS[4]+( CONSTANTS[16]*CONSTANTS[6]*CONSTANTS[0])/( CONSTANTS[4]*CONSTANTS[5]));
}
void
computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
RATES[2] = ( CONSTANTS[52]*STATES[3]+ CONSTANTS[53]*STATES[7]) -  (CONSTANTS[54]+ 4.00000*CONSTANTS[51])*STATES[2];
RATES[3] = ( 2.00000*CONSTANTS[52]*STATES[4]+ 4.00000*CONSTANTS[51]*STATES[2]+ (CONSTANTS[53]/CONSTANTS[3])*STATES[8]) -  (CONSTANTS[52]+ 3.00000*CONSTANTS[51]+ CONSTANTS[54]*CONSTANTS[3])*STATES[3];
RATES[4] = ( 3.00000*CONSTANTS[52]*STATES[5]+ 3.00000*CONSTANTS[51]*STATES[3]+ (CONSTANTS[53]/pow(CONSTANTS[3], 2.00000))*STATES[9]) -  ( 2.00000*CONSTANTS[52]+ 2.00000*CONSTANTS[51]+ CONSTANTS[54]*pow(CONSTANTS[3], 2.00000))*STATES[4];
RATES[5] = ( 4.00000*CONSTANTS[52]*STATES[6]+ 2.00000*CONSTANTS[51]*STATES[4]+ (CONSTANTS[53]/pow(CONSTANTS[3], 3.00000))*STATES[10]) -  ( 3.00000*CONSTANTS[52]+CONSTANTS[51]+ CONSTANTS[54]*pow(CONSTANTS[3], 3.00000))*STATES[5];
RATES[6] = ( CONSTANTS[59]*STATES[0]+ CONSTANTS[62]*STATES[1]+ CONSTANTS[51]*STATES[5]+ (CONSTANTS[53]/pow(CONSTANTS[3], 4.00000))*STATES[11]) -  ( 4.00000*CONSTANTS[52]+CONSTANTS[58]+CONSTANTS[57]+ CONSTANTS[54]*pow(CONSTANTS[3], 4.00000))*STATES[6];
RATES[0] = ( CONSTANTS[58]*STATES[6]+ CONSTANTS[61]*STATES[1]+ CONSTANTS[55]*STATES[12]) -  (CONSTANTS[59]+CONSTANTS[60]+CONSTANTS[56])*STATES[0];
RATES[1] = ( CONSTANTS[60]*STATES[0]+ CONSTANTS[57]*STATES[6]) -  (CONSTANTS[62]+CONSTANTS[61])*STATES[1];
RATES[7] = ( (CONSTANTS[52]/CONSTANTS[3])*STATES[8]+ CONSTANTS[54]*STATES[2]) -  (CONSTANTS[53]+ 4.00000*CONSTANTS[51]*CONSTANTS[3])*STATES[7];
RATES[8] = ( (( 2.00000*CONSTANTS[52])/CONSTANTS[3])*STATES[9]+ 4.00000*CONSTANTS[51]*CONSTANTS[3]*STATES[7]+ CONSTANTS[54]*CONSTANTS[3]*STATES[3]) -  (CONSTANTS[52]/CONSTANTS[3]+ 3.00000*CONSTANTS[51]*CONSTANTS[3]+CONSTANTS[53]/CONSTANTS[3])*STATES[8];
RATES[9] = ( (( 3.00000*CONSTANTS[52])/CONSTANTS[3])*STATES[10]+ 3.00000*CONSTANTS[51]*CONSTANTS[3]*STATES[8]+ CONSTANTS[54]*pow(CONSTANTS[3], 2.00000)*STATES[4]) -  (( 2.00000*CONSTANTS[52])/CONSTANTS[3]+ 2.00000*CONSTANTS[51]*CONSTANTS[3]+CONSTANTS[53]/pow(CONSTANTS[3], 2.00000))*STATES[9];
RATES[10] = ( (( 4.00000*CONSTANTS[52])/CONSTANTS[3])*STATES[11]+ 2.00000*CONSTANTS[51]*CONSTANTS[3]*STATES[9]+ CONSTANTS[54]*pow(CONSTANTS[3], 3.00000)*STATES[5]) -  (( 3.00000*CONSTANTS[52])/CONSTANTS[3]+ CONSTANTS[51]*CONSTANTS[3]+CONSTANTS[53]/pow(CONSTANTS[3], 3.00000))*STATES[10];
RATES[11] = ( CONSTANTS[64]*STATES[12]+ CONSTANTS[51]*CONSTANTS[3]*STATES[10]+ CONSTANTS[54]*pow(CONSTANTS[3], 4.00000)*STATES[6]) -  (( 4.00000*CONSTANTS[52])/CONSTANTS[3]+CONSTANTS[63]+CONSTANTS[53]/pow(CONSTANTS[3], 4.00000))*STATES[11];
RATES[12] = ( CONSTANTS[63]*STATES[11]+ CONSTANTS[56]*STATES[0]) -  (CONSTANTS[64]+CONSTANTS[55])*STATES[12];
}
void
computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[0] = STATES[0]+STATES[1];
ALGEBRAIC[1] =  CONSTANTS[2]*ALGEBRAIC[0]*(CONSTANTS[0] - CONSTANTS[1]);
}