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 7 entries in each of the rate and state variable arrays.
   There are a total of 29 entries in the constant variable array.
 */
/*
 * VOI is time in component environment (millisecond).
 * CONSTANTS[0] is A_iso in component parameters (mN_per_mm2_per_mM).
 * CONSTANTS[1] is k_off in component parameters (per_msec).
 * CONSTANTS[2] is k_on in component parameters (per_mM_per_msec).
 * CONSTANTS[3] is k_onI in component parameters (per_msec).
 * CONSTANTS[4] is k_offi in component parameters (per_msec).
 * CONSTANTS[5] is k_OFF in component parameters (dimensionless).
 * CONSTANTS[6] is k_xboff in component parameters (dimensionless).
 * CONSTANTS[7] is k_tmoff in component parameters (per_msec).
 * CONSTANTS[8] is k_tmonc in component parameters (per_msec).
 * CONSTANTS[9] is k_tmRU in component parameters (dimensionless).
 * CONSTANTS[10] is k_tmxb in component parameters (dimensionless).
 * CONSTANTS[11] is k_12 in component parameters (per_mM_per_msec).
 * CONSTANTS[12] is k_minus12 in component parameters (per_msec).
 * CONSTANTS[13] is k_Titin in component parameters (dimensionless).
 * CONSTANTS[14] is k_3c in component parameters (per_msec).
 * CONSTANTS[15] is k_3f in component parameters (dimensionless).
 * CONSTANTS[16] is k_3xb in component parameters (dimensionless).
 * CONSTANTS[17] is k_minus3 in component parameters (per_msec).
 * CONSTANTS[18] is k_4 in component parameters (per_msec).
 * CONSTANTS[19] is k_minus4 in component parameters (per_msec).
 * CONSTANTS[20] is k_5 in component parameters (per_msec).
 * ALGEBRAIC[0] is F_b in component active_force (mN_per_mm2).
 * STATES[0] is RUA_MADPPi in component RU_species (mM).
 * STATES[1] is RUA_MADP in component RU_species (mM).
 * ALGEBRAIC[5] is Q_CaB in component Ca_binding_rate (mM_per_msec).
 * ALGEBRAIC[3] is RUNA in component RU_species (mM).
 * STATES[2] is Ca in component RU_species (mM).
 * STATES[3] is RUTCa_off in component RU_species (mM).
 * ALGEBRAIC[11] is Q_TCaA in component TnI_conf_change_rate (mM_per_msec).
 * ALGEBRAIC[9] is k_offI in component TnI_conf_change_rate (per_msec).
 * STATES[4] is RUTCa_on in component RU_species (mM).
 * ALGEBRAIC[7] is RUA in component RU_species (mM).
 * CONSTANTS[21] is RU_total in component RU_species (mM).
 * ALGEBRAIC[2] is Q_TMA in component Tm_conf_change_rate (mM_per_msec).
 * ALGEBRAIC[1] is k_tmon in component Tm_conf_change_rate (per_msec).
 * STATES[5] is RUTM_on in component RU_species (mM).
 * ALGEBRAIC[10] is Q_MB in component myosin_binding_rate (mM_per_msec).
 * CONSTANTS[28] is KTitin in component KTitin (dimensionless).
 * CONSTANTS[24] is L in component length (mmeter).
 * CONSTANTS[22] is L_0 in component length (mmeter).
 * CONSTANTS[23] is MADPPi in component RU_species (mM).
 * ALGEBRAIC[8] is RUTM_on_eff in component RU_species (mM).
 * STATES[6] is RUAMADPPi in component RU_species (mM).
 * CONSTANTS[25] is f_titinNormal in component KTitin (dimensionless).
 * CONSTANTS[27] is f_titinDamaged in component KTitin (dimensionless).
 * ALGEBRAIC[14] is Q_Fgen in component Force_Generating_rate (mM_per_msec).
 * ALGEBRAIC[13] is k_3 in component Force_Generating_rate (per_msec).
 * ALGEBRAIC[12] is RUTCa_on_eff in component RU_species (mM).
 * ALGEBRAIC[4] is Q_PiR in component Pi_release_rate (mM_per_msec).
 * ALGEBRAIC[6] is Q_ADPR in component ADP_release_rate (mM_per_msec).
 * CONSTANTS[26] is alpha in component alpha (dimensionless).
 * RATES[3] is d/dt RUTCa_off in component RU_species (mM).
 * RATES[4] is d/dt RUTCa_on in component RU_species (mM).
 * RATES[5] is d/dt RUTM_on in component RU_species (mM).
 * RATES[6] is d/dt RUAMADPPi in component RU_species (mM).
 * RATES[0] is d/dt RUA_MADPPi in component RU_species (mM).
 * RATES[1] is d/dt RUA_MADP in component RU_species (mM).
 * RATES[2] is d/dt Ca in component RU_species (mM).
 */
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
CONSTANTS[0] = 9000;
CONSTANTS[1] = 0.2;
CONSTANTS[2] = 17.3;
CONSTANTS[3] = 0.2;
CONSTANTS[4] = 0.075;
CONSTANTS[5] = -0.32;
CONSTANTS[6] = -1.37;
CONSTANTS[7] = 0.067;
CONSTANTS[8] = 0.014;
CONSTANTS[9] = 10;
CONSTANTS[10] = -1.86;
CONSTANTS[11] = 2;
CONSTANTS[12] = 0.6;
CONSTANTS[13] = 0.2;
CONSTANTS[14] = 0.025;
CONSTANTS[15] = 50;
CONSTANTS[16] = -1.23;
CONSTANTS[17] = 0.008;
CONSTANTS[18] = 0.077;
CONSTANTS[19] = 0.001;
CONSTANTS[20] = 0.03723;
STATES[0] = 0;
STATES[1] = 0;
STATES[2] = 0.01;
STATES[3] = 0;
STATES[4] = 0;
CONSTANTS[21] = 0.0726;
STATES[5] = 0;
CONSTANTS[22] = 0.001;
CONSTANTS[23] = 0.1375;
STATES[6] = 0;
CONSTANTS[24] = CONSTANTS[22];
CONSTANTS[25] =  CONSTANTS[13]*(9.96630/(1.00000+exp((CONSTANTS[24]/CONSTANTS[22]+1.06390)/0.0696000)));
CONSTANTS[26] = (CONSTANTS[24]<1.00000 ?  1.50000*(CONSTANTS[24]/CONSTANTS[22]) - 0.500000 : 1.00000<=CONSTANTS[24]&&CONSTANTS[24]<1.10000 ? 1.00000 :  - 1.60000*(CONSTANTS[24]/CONSTANTS[22])+2.76000);
CONSTANTS[27] =  CONSTANTS[13]*( - 31.0000*(CONSTANTS[24]/CONSTANTS[22])+40.0000);
CONSTANTS[28] = (CONSTANTS[24]<=1.10000 ? CONSTANTS[25] : CONSTANTS[27]);
}
void
computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[4] =  CONSTANTS[18]*STATES[0] -  CONSTANTS[19]*STATES[1];
ALGEBRAIC[6] =  CONSTANTS[20]*STATES[1];
RATES[1] = ALGEBRAIC[4] - ALGEBRAIC[6];
ALGEBRAIC[3] = CONSTANTS[21] - (STATES[3]+STATES[4]+STATES[5]+STATES[6]+STATES[0]+STATES[1]);
ALGEBRAIC[5] =  CONSTANTS[2]*ALGEBRAIC[3]*STATES[2] -  CONSTANTS[1]*STATES[3];
RATES[2] = - ALGEBRAIC[5];
ALGEBRAIC[1] =  CONSTANTS[8]*(STATES[4]/CONSTANTS[21])*pow(1.00000+ CONSTANTS[9]*(STATES[5]/CONSTANTS[21]), 2.00000)*pow(1.00000+ CONSTANTS[10]*((STATES[0]+STATES[1])/CONSTANTS[21]), 2.00000);
ALGEBRAIC[2] =  ALGEBRAIC[1]*STATES[4] -  CONSTANTS[7]*STATES[5];
ALGEBRAIC[8] =  CONSTANTS[26]*STATES[5];
ALGEBRAIC[10] =  CONSTANTS[11]*CONSTANTS[28]*CONSTANTS[23]*ALGEBRAIC[8] -  CONSTANTS[12]*STATES[6];
RATES[5] = (ALGEBRAIC[2] - ALGEBRAIC[10])+ALGEBRAIC[6];
ALGEBRAIC[7] = STATES[4]+STATES[5]+STATES[6]+STATES[0]+STATES[1];
ALGEBRAIC[9] =  CONSTANTS[4]*pow(1.00000+ CONSTANTS[5]*(ALGEBRAIC[7]/CONSTANTS[21]), 2.00000)*pow(1.00000+ CONSTANTS[6]*((STATES[0]+STATES[1])/CONSTANTS[21]), 4.40000);
ALGEBRAIC[11] =  CONSTANTS[3]*STATES[3] -  ALGEBRAIC[9]*STATES[4];
RATES[3] = ALGEBRAIC[5] - ALGEBRAIC[11];
RATES[4] = ALGEBRAIC[11] - ALGEBRAIC[2];
ALGEBRAIC[12] =  CONSTANTS[26]*STATES[4];
ALGEBRAIC[13] =  CONSTANTS[14]*pow(1.00000+( CONSTANTS[15]*(ALGEBRAIC[12]+ALGEBRAIC[8]+STATES[6]))/CONSTANTS[21], 2.00000)*pow(1.00000+( CONSTANTS[16]*(STATES[0]+STATES[1]))/CONSTANTS[21], 2.00000);
ALGEBRAIC[14] =  ALGEBRAIC[13]*STATES[6] -  CONSTANTS[17]*STATES[0];
RATES[6] = ALGEBRAIC[10] - ALGEBRAIC[14];
RATES[0] = ALGEBRAIC[14] - ALGEBRAIC[4];
}
void
computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[4] =  CONSTANTS[18]*STATES[0] -  CONSTANTS[19]*STATES[1];
ALGEBRAIC[6] =  CONSTANTS[20]*STATES[1];
ALGEBRAIC[3] = CONSTANTS[21] - (STATES[3]+STATES[4]+STATES[5]+STATES[6]+STATES[0]+STATES[1]);
ALGEBRAIC[5] =  CONSTANTS[2]*ALGEBRAIC[3]*STATES[2] -  CONSTANTS[1]*STATES[3];
ALGEBRAIC[1] =  CONSTANTS[8]*(STATES[4]/CONSTANTS[21])*pow(1.00000+ CONSTANTS[9]*(STATES[5]/CONSTANTS[21]), 2.00000)*pow(1.00000+ CONSTANTS[10]*((STATES[0]+STATES[1])/CONSTANTS[21]), 2.00000);
ALGEBRAIC[2] =  ALGEBRAIC[1]*STATES[4] -  CONSTANTS[7]*STATES[5];
ALGEBRAIC[8] =  CONSTANTS[26]*STATES[5];
ALGEBRAIC[10] =  CONSTANTS[11]*CONSTANTS[28]*CONSTANTS[23]*ALGEBRAIC[8] -  CONSTANTS[12]*STATES[6];
ALGEBRAIC[7] = STATES[4]+STATES[5]+STATES[6]+STATES[0]+STATES[1];
ALGEBRAIC[9] =  CONSTANTS[4]*pow(1.00000+ CONSTANTS[5]*(ALGEBRAIC[7]/CONSTANTS[21]), 2.00000)*pow(1.00000+ CONSTANTS[6]*((STATES[0]+STATES[1])/CONSTANTS[21]), 4.40000);
ALGEBRAIC[11] =  CONSTANTS[3]*STATES[3] -  ALGEBRAIC[9]*STATES[4];
ALGEBRAIC[12] =  CONSTANTS[26]*STATES[4];
ALGEBRAIC[13] =  CONSTANTS[14]*pow(1.00000+( CONSTANTS[15]*(ALGEBRAIC[12]+ALGEBRAIC[8]+STATES[6]))/CONSTANTS[21], 2.00000)*pow(1.00000+( CONSTANTS[16]*(STATES[0]+STATES[1]))/CONSTANTS[21], 2.00000);
ALGEBRAIC[14] =  ALGEBRAIC[13]*STATES[6] -  CONSTANTS[17]*STATES[0];
ALGEBRAIC[0] =  CONSTANTS[0]*(STATES[0]+STATES[1]);
}