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 13 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 14 entries in the constant variable array. */ /* * VOI is time in component environment (millisecond). * CONSTANTS[0] is alpha in component model_constants (dimensionless). * CONSTANTS[1] is lamda in component model_constants (dimensionless). * STATES[0] is V in component membrane (millivolt). * CONSTANTS[2] is Cm in component membrane (microF_per_cm2). * ALGEBRAIC[8] is i_Ca_T in component T_type_calcium_current (microA_per_cm2). * ALGEBRAIC[9] is i_Ca_L in component L_type_calcium_current (microA_per_cm2). * ALGEBRAIC[11] is i_Ca_K in component calcium_activated_potassium_current (microA_per_cm2). * ALGEBRAIC[10] is i_K in component potassium_current (microA_per_cm2). * ALGEBRAIC[12] is i_Cl in component leak_chloride_current (microA_per_cm2). * ALGEBRAIC[0] is V_tilde in component gate_voltage (millivolt). * CONSTANTS[3] is E_Ca in component T_type_calcium_current (millivolt). * CONSTANTS[4] is g_Ca_T in component T_type_calcium_current (milliS_per_cm2). * ALGEBRAIC[7] is m in component T_type_calcium_current_m_gate (dimensionless). * STATES[1] is h in component T_type_calcium_current_h_gate (dimensionless). * ALGEBRAIC[1] is alpha_m in component T_type_calcium_current_m_gate (per_millisecond). * ALGEBRAIC[4] is beta_m in component T_type_calcium_current_m_gate (per_millisecond). * ALGEBRAIC[2] is alpha_h in component T_type_calcium_current_h_gate (per_millisecond). * ALGEBRAIC[5] is beta_h in component T_type_calcium_current_h_gate (per_millisecond). * CONSTANTS[5] is g_Ca_L in component L_type_calcium_current (milliS_per_cm2). * STATES[2] is x_Ca in component L_type_calcium_current_x_Ca_gate (dimensionless). * CONSTANTS[6] is tau_x_Ca in component L_type_calcium_current_x_Ca_gate (millisecond). * CONSTANTS[7] is E_K in component potassium_current (millivolt). * CONSTANTS[8] is g_K in component potassium_current (milliS_per_cm2). * STATES[3] is n in component potassium_current_n_gate (dimensionless). * ALGEBRAIC[3] is alpha_n in component potassium_current_n_gate (per_millisecond). * ALGEBRAIC[6] is beta_n in component potassium_current_n_gate (per_millisecond). * STATES[4] is Ca in component calcium_activated_potassium_current (millimolar). * CONSTANTS[9] is g_Ca_K in component calcium_activated_potassium_current (milliS_per_cm2). * CONSTANTS[10] is rho in component calcium_activated_potassium_current (per_millisecond). * CONSTANTS[11] is K_c in component calcium_activated_potassium_current (millimolar_per_millivolt). * CONSTANTS[12] is g_Cl in component leak_chloride_current (milliS_per_cm2). * CONSTANTS[13] is E_Cl in component leak_chloride_current (millivolt). * RATES[0] is d/dt V in component membrane (millivolt). * RATES[1] is d/dt h in component T_type_calcium_current_h_gate (dimensionless). * RATES[2] is d/dt x_Ca in component L_type_calcium_current_x_Ca_gate (dimensionless). * RATES[3] is d/dt n in component potassium_current_n_gate (dimensionless). * RATES[4] is d/dt Ca in component calcium_activated_potassium_current (millimolar). */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { CONSTANTS[0] = 0.12; CONSTANTS[1] = 12.5; STATES[0] = -55.0; CONSTANTS[2] = 2.5; CONSTANTS[3] = 80.0; CONSTANTS[4] = 0.51; STATES[1] = 0.01; CONSTANTS[5] = 0.004; STATES[2] = 0.01; CONSTANTS[6] = 500.0; CONSTANTS[7] = -75.0; CONSTANTS[8] = 0.3; STATES[3] = 0.01; STATES[4] = 1E-4; CONSTANTS[9] = 0.03; CONSTANTS[10] = 0.125E3; CONSTANTS[11] = 425.0E-5; CONSTANTS[12] = 0.003; CONSTANTS[13] = -40.0; } void computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { RATES[4] = (CONSTANTS[10]/CONSTANTS[0])*( CONSTANTS[11]*STATES[2]*(CONSTANTS[3] - STATES[0]) - STATES[4]); ALGEBRAIC[0] = ( 127.000*STATES[0]+8265.00)/105.000; RATES[2] = (1.00000/(1.00000+exp( 0.150000*(- ALGEBRAIC[0] - 50.0000))) - STATES[2])/( CONSTANTS[0]*CONSTANTS[6]); ALGEBRAIC[2] = 0.0700000*exp((25.0000 - ALGEBRAIC[0])/20.0000); ALGEBRAIC[5] = 1.00000/(1.00000+exp(5.50000 - ALGEBRAIC[0]*0.100000)); RATES[1] = ( ALGEBRAIC[2]*(1.00000 - STATES[1]) - ALGEBRAIC[5]*STATES[1])/( CONSTANTS[0]*CONSTANTS[1]); ALGEBRAIC[3] = ( 0.0100000*(55.0000 - ALGEBRAIC[0]))/(exp((55.0000 - ALGEBRAIC[0])/10.0000) - 1.00000); ALGEBRAIC[6] = 0.125000*exp((45.0000 - ALGEBRAIC[0])/80.0000); RATES[3] = ( ALGEBRAIC[3]*(1.00000 - STATES[3]) - ALGEBRAIC[6]*STATES[3])/( CONSTANTS[0]*CONSTANTS[1]); ALGEBRAIC[1] = ( 0.100000*(50.0000 - ALGEBRAIC[0]))/(exp(5.00000 - ALGEBRAIC[0]*0.100000) - 1.00000); ALGEBRAIC[4] = 4.00000*exp((25.0000 - ALGEBRAIC[0])/18.0000); ALGEBRAIC[7] = ALGEBRAIC[1]/(ALGEBRAIC[1]+ALGEBRAIC[4]); ALGEBRAIC[8] = CONSTANTS[4]*pow(ALGEBRAIC[7], 3.00000)*STATES[1]*(STATES[0] - CONSTANTS[3]); ALGEBRAIC[9] = CONSTANTS[5]*STATES[2]*(STATES[0] - CONSTANTS[3]); ALGEBRAIC[11] = ( CONSTANTS[9]*STATES[4]*(STATES[0] - CONSTANTS[7]))/(0.500000+STATES[4]); ALGEBRAIC[10] = CONSTANTS[8]*pow(STATES[3], 4.00000)*(STATES[0] - CONSTANTS[7]); ALGEBRAIC[12] = CONSTANTS[12]*(STATES[0] - CONSTANTS[13]); RATES[0] = - (1.00000/( CONSTANTS[2]*CONSTANTS[0]))*(ALGEBRAIC[8]+ALGEBRAIC[9]+ALGEBRAIC[11]+ALGEBRAIC[10]+ALGEBRAIC[12]); } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[0] = ( 127.000*STATES[0]+8265.00)/105.000; ALGEBRAIC[2] = 0.0700000*exp((25.0000 - ALGEBRAIC[0])/20.0000); ALGEBRAIC[5] = 1.00000/(1.00000+exp(5.50000 - ALGEBRAIC[0]*0.100000)); ALGEBRAIC[3] = ( 0.0100000*(55.0000 - ALGEBRAIC[0]))/(exp((55.0000 - ALGEBRAIC[0])/10.0000) - 1.00000); ALGEBRAIC[6] = 0.125000*exp((45.0000 - ALGEBRAIC[0])/80.0000); ALGEBRAIC[1] = ( 0.100000*(50.0000 - ALGEBRAIC[0]))/(exp(5.00000 - ALGEBRAIC[0]*0.100000) - 1.00000); ALGEBRAIC[4] = 4.00000*exp((25.0000 - ALGEBRAIC[0])/18.0000); ALGEBRAIC[7] = ALGEBRAIC[1]/(ALGEBRAIC[1]+ALGEBRAIC[4]); ALGEBRAIC[8] = CONSTANTS[4]*pow(ALGEBRAIC[7], 3.00000)*STATES[1]*(STATES[0] - CONSTANTS[3]); ALGEBRAIC[9] = CONSTANTS[5]*STATES[2]*(STATES[0] - CONSTANTS[3]); ALGEBRAIC[11] = ( CONSTANTS[9]*STATES[4]*(STATES[0] - CONSTANTS[7]))/(0.500000+STATES[4]); ALGEBRAIC[10] = CONSTANTS[8]*pow(STATES[3], 4.00000)*(STATES[0] - CONSTANTS[7]); ALGEBRAIC[12] = CONSTANTS[12]*(STATES[0] - CONSTANTS[13]); }