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 75 entries in the algebraic variable array.
   There are a total of 9 entries in each of the rate and state variable arrays.
   There are a total of 54 entries in the constant variable array.
 */
/*
 * VOI is time in component environment (millisecond).
 * STATES[0] is Gi in component Gi (millimolar).
 * ALGEBRAIC[6] is Jglut in component Jglut (millimolar_per_millisecond).
 * ALGEBRAIC[7] is Jgk in component Jgk (millimolar_per_millisecond).
 * ALGEBRAIC[3] is Ge in component Ge (millimolar).
 * CONSTANTS[0] is gluper in component Ge (dimensionless).
 * CONSTANTS[1] is gluamp in component Ge (millimolar).
 * CONSTANTS[2] is glubasa1 in component Ge (millimolar).
 * CONSTANTS[3] is glustep in component Ge (dimensionless).
 * CONSTANTS[4] is steptime in component Ge (millisecond).
 * ALGEBRAIC[0] is GeStep in component Ge (millimolar).
 * STATES[1] is G6P in component G6P (millimolar).
 * CONSTANTS[5] is kappa in component model_parameters (dimensionless).
 * ALGEBRAIC[74] is JPFK in component JPFK (micromolar_per_millisecond).
 * STATES[2] is FBP in component FBP (micromolar).
 * ALGEBRAIC[8] is JGPDH in component JGPDH (micromolar_per_millisecond).
 * ALGEBRAIC[5] is F6P in component F6P (millimolar).
 * CONSTANTS[6] is Kglut in component Jglut (millimolar).
 * CONSTANTS[7] is Vglut in component Jglut (millimolar_per_millisecond).
 * CONSTANTS[8] is Kgk in component Jgk (millimolar).
 * CONSTANTS[9] is Vgk in component Jgk (millimolar_per_millisecond).
 * CONSTANTS[10] is ngk in component Jgk (dimensionless).
 * CONSTANTS[11] is pfkbas in component JPFK (dimensionless).
 * CONSTANTS[12] is cat in component JPFK (micromolar_per_millisecond).
 * ALGEBRAIC[60] is topb in component w (dimensionless).
 * ALGEBRAIC[72] is topa16 in component w (dimensionless).
 * ALGEBRAIC[73] is bottom16 in component w (dimensionless).
 * CONSTANTS[51] is weight1 in component w (dimensionless).
 * ALGEBRAIC[51] is weight9 in component w (dimensionless).
 * ALGEBRAIC[9] is weight5 in component w (dimensionless).
 * ALGEBRAIC[10] is weight3 in component w (dimensionless).
 * ALGEBRAIC[15] is weight2 in component w (dimensionless).
 * ALGEBRAIC[53] is weight13 in component w (dimensionless).
 * ALGEBRAIC[54] is weight11 in component w (dimensionless).
 * ALGEBRAIC[56] is weight10 in component w (dimensionless).
 * ALGEBRAIC[23] is weight6 in component w (dimensionless).
 * ALGEBRAIC[26] is weight4 in component w (dimensionless).
 * ALGEBRAIC[59] is weight15 in component w (dimensionless).
 * ALGEBRAIC[45] is weight8 in component w (dimensionless).
 * ALGEBRAIC[61] is weight12 in component w (dimensionless).
 * ALGEBRAIC[66] is weight14 in component w (dimensionless).
 * ALGEBRAIC[71] is weight16 in component w (dimensionless).
 * ALGEBRAIC[12] is weight7 in component w (dimensionless).
 * CONSTANTS[50] is topa1 in component w (dimensionless).
 * CONSTANTS[53] is topa2 in component w (dimensionless).
 * ALGEBRAIC[11] is topa3 in component w (dimensionless).
 * ALGEBRAIC[29] is topa4 in component w (dimensionless).
 * ALGEBRAIC[32] is topa5 in component w (dimensionless).
 * ALGEBRAIC[35] is topa6 in component w (dimensionless).
 * ALGEBRAIC[43] is topa7 in component w (dimensionless).
 * ALGEBRAIC[46] is topa8 in component w (dimensionless).
 * ALGEBRAIC[47] is topa9 in component w (dimensionless).
 * ALGEBRAIC[48] is topa10 in component w (dimensionless).
 * ALGEBRAIC[55] is topa11 in component w (dimensionless).
 * ALGEBRAIC[62] is topa12 in component w (dimensionless).
 * ALGEBRAIC[63] is topa13 in component w (dimensionless).
 * ALGEBRAIC[67] is topa14 in component w (dimensionless).
 * ALGEBRAIC[68] is topa15 in component w (dimensionless).
 * CONSTANTS[52] is bottom1 in component w (dimensionless).
 * ALGEBRAIC[18] is bottom2 in component w (dimensionless).
 * ALGEBRAIC[21] is bottom3 in component w (dimensionless).
 * ALGEBRAIC[37] is bottom4 in component w (dimensionless).
 * ALGEBRAIC[39] is bottom5 in component w (dimensionless).
 * ALGEBRAIC[41] is bottom6 in component w (dimensionless).
 * ALGEBRAIC[44] is bottom7 in component w (dimensionless).
 * ALGEBRAIC[49] is bottom8 in component w (dimensionless).
 * ALGEBRAIC[52] is bottom9 in component w (dimensionless).
 * ALGEBRAIC[57] is bottom10 in component w (dimensionless).
 * ALGEBRAIC[58] is bottom11 in component w (dimensionless).
 * ALGEBRAIC[64] is bottom12 in component w (dimensionless).
 * ALGEBRAIC[65] is bottom13 in component w (dimensionless).
 * ALGEBRAIC[69] is bottom14 in component w (dimensionless).
 * ALGEBRAIC[70] is bottom15 in component w (dimensionless).
 * CONSTANTS[13] is famp in component w (dimensionless).
 * CONSTANTS[14] is ffbp in component w (dimensionless).
 * CONSTANTS[15] is fmt in component w (dimensionless).
 * CONSTANTS[16] is fbt in component w (dimensionless).
 * CONSTANTS[17] is fatp in component w (dimensionless).
 * CONSTANTS[18] is K1 in component w (micromolar).
 * CONSTANTS[19] is K2 in component w (micromolar).
 * CONSTANTS[20] is K3 in component w (micromolar).
 * CONSTANTS[21] is K4 in component w (micromolar).
 * ALGEBRAIC[50] is AMP in component AMP (micromolar).
 * ALGEBRAIC[14] is ATP in component ATP (micromolar).
 * CONSTANTS[22] is Atot in component ATP (micromolar).
 * ALGEBRAIC[13] is rad in component ATP (micromolar).
 * STATES[3] is ADP in component ADP (micromolar).
 * ALGEBRAIC[16] is y in component ADP (dimensionless).
 * CONSTANTS[23] is tau_a in component ADP (millisecond).
 * CONSTANTS[24] is r in component ADP (dimensionless).
 * CONSTANTS[25] is r1 in component ADP (micromolar).
 * CONSTANTS[26] is autoadp in component ADP (dimensionless).
 * CONSTANTS[27] is adpknot in component ADP (micromolar).
 * ALGEBRAIC[19] is fback in component ADP (dimensionless).
 * CONSTANTS[28] is ky in component ADP (dimensionless).
 * CONSTANTS[29] is kg in component ADP (micromolar_per_millisecond).
 * STATES[4] is Ca in component Ca (micromolar).
 * STATES[5] is v in component membrane (millivolt).
 * CONSTANTS[30] is cm in component membrane (femtofarad).
 * ALGEBRAIC[22] is I_Ca in component I_Ca (femtoampere).
 * ALGEBRAIC[17] is I_K in component I_K (femtoampere).
 * ALGEBRAIC[24] is I_K_Ca in component I_K_Ca (femtoampere).
 * ALGEBRAIC[42] is I_K_ATP in component I_K_ATP (femtoampere).
 * CONSTANTS[31] is gK in component I_K (picosiemens).
 * CONSTANTS[32] is vK in component model_parameters (millivolt).
 * STATES[6] is n in component n (dimensionless).
 * ALGEBRAIC[4] is n_infinity in component n (dimensionless).
 * ALGEBRAIC[1] is tau_n in component n (millisecond).
 * CONSTANTS[33] is gCa in component I_Ca (picosiemens).
 * CONSTANTS[34] is vCa in component model_parameters (millivolt).
 * ALGEBRAIC[20] is m_infinity in component m (dimensionless).
 * CONSTANTS[35] is gkCa in component I_K_Ca (picosiemens).
 * CONSTANTS[36] is KD in component I_K_Ca (micromolar).
 * CONSTANTS[37] is nh in component I_K_Ca (dimensionless).
 * CONSTANTS[38] is gkATP_bar in component I_K_ATP (picosiemens).
 * ALGEBRAIC[40] is katpo in component I_K_ATP (dimensionless).
 * ALGEBRAIC[30] is topo in component I_K_ATP (dimensionless).
 * ALGEBRAIC[38] is bottomo in component I_K_ATP (dimensionless).
 * ALGEBRAIC[27] is MgADP in component I_K_ATP (micromolar).
 * ALGEBRAIC[33] is ADP3 in component I_K_ATP (micromolar).
 * ALGEBRAIC[36] is ATP4 in component I_K_ATP (micromolar).
 * CONSTANTS[39] is fcyt in component Ca (dimensionless).
 * ALGEBRAIC[25] is Jmem in component Jmem (micromolar_per_millisecond).
 * ALGEBRAIC[34] is Jer in component Jer (micromolar_per_millisecond).
 * STATES[7] is Caer in component Caer (micromolar).
 * CONSTANTS[40] is fer in component Caer (dimensionless).
 * CONSTANTS[41] is sigmav in component Caer (dimensionless).
 * CONSTANTS[42] is kPMCA in component Jmem (first_order_rate_constant).
 * CONSTANTS[43] is alpha in component Jmem (micromolar_per_millisecond).
 * ALGEBRAIC[31] is Jleak in component Jleak (micromolar_per_millisecond).
 * ALGEBRAIC[28] is JSERCA in component JSERCA (micromolar_per_millisecond).
 * CONSTANTS[44] is kSERCA in component JSERCA (first_order_rate_constant).
 * CONSTANTS[45] is pleak in component Jleak (first_order_rate_constant).
 * STATES[8] is I in component I (dimensionless).
 * ALGEBRAIC[2] is I_infinity in component I (dimensionless).
 * CONSTANTS[46] is tau_I in component I (millisecond).
 * CONSTANTS[47] is I_max in component I (dimensionless).
 * CONSTANTS[48] is delta in component I (dimensionless).
 * CONSTANTS[49] is ki in component I (micromolar).
 * RATES[0] is d/dt Gi in component Gi (millimolar).
 * RATES[1] is d/dt G6P in component G6P (millimolar).
 * RATES[2] is d/dt FBP in component FBP (micromolar).
 * RATES[3] is d/dt ADP in component ADP (micromolar).
 * RATES[5] is d/dt v in component membrane (millivolt).
 * RATES[6] is d/dt n in component n (dimensionless).
 * RATES[4] is d/dt Ca in component Ca (micromolar).
 * RATES[7] is d/dt Caer in component Caer (micromolar).
 * RATES[8] is d/dt I in component I (dimensionless).
 */
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
STATES[0] = 6.0637;
CONSTANTS[0] = 7.0;
CONSTANTS[1] = 0.0;
CONSTANTS[2] = 7.0;
CONSTANTS[3] = 0.0;
CONSTANTS[4] = 480000;
STATES[1] = 525.97;
CONSTANTS[5] = 0.005;
STATES[2] = 0.2088;
CONSTANTS[6] = 7;
CONSTANTS[7] = 8;
CONSTANTS[8] = 7;
CONSTANTS[9] = 0.8;
CONSTANTS[10] = 4;
CONSTANTS[11] = 0.06;
CONSTANTS[12] = 2;
CONSTANTS[13] = 0.02;
CONSTANTS[14] = 0.2;
CONSTANTS[15] = 20;
CONSTANTS[16] = 20;
CONSTANTS[17] = 20;
CONSTANTS[18] = 30;
CONSTANTS[19] = 1;
CONSTANTS[20] = 50000;
CONSTANTS[21] = 1000;
CONSTANTS[22] = 3000;
STATES[3] = 537.6;
CONSTANTS[23] = 300000;
CONSTANTS[24] = 0.5;
CONSTANTS[25] = 0.35;
CONSTANTS[26] = 1.0;
CONSTANTS[27] = 800.0;
CONSTANTS[28] = 2.2;
CONSTANTS[29] = 0.1;
STATES[4] = 0.05626;
STATES[5] = -66.7;
CONSTANTS[30] = 5300;
CONSTANTS[31] = 2700;
CONSTANTS[32] = -75;
STATES[6] = 0.00012;
CONSTANTS[33] = 1000;
CONSTANTS[34] = 25;
CONSTANTS[35] = 400;
CONSTANTS[36] = 0.5;
CONSTANTS[37] = 2.0;
CONSTANTS[38] = 2000;
CONSTANTS[39] = 0.01;
STATES[7] = 121.8;
CONSTANTS[40] = 0.01;
CONSTANTS[41] = 31;
CONSTANTS[42] = 0.18;
CONSTANTS[43] = 4.5e-6;
CONSTANTS[44] = 0.4;
CONSTANTS[45] = 0.0002;
STATES[8] = 0.316;
CONSTANTS[46] = 10000;
CONSTANTS[47] = 20;
CONSTANTS[48] = 8.0;
CONSTANTS[49] = 0.1;
CONSTANTS[50] = 0.00000;
CONSTANTS[51] = 1.00000;
CONSTANTS[52] = 1.00000;
CONSTANTS[53] = CONSTANTS[50];
}
void
computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[2] =  CONSTANTS[47]*(pow(STATES[4], CONSTANTS[48])/(pow(CONSTANTS[49], CONSTANTS[48])+pow(STATES[4], CONSTANTS[48])));
RATES[8] = (ALGEBRAIC[2] - STATES[8])/CONSTANTS[46];
ALGEBRAIC[4] =  0.500000*(1.00000+ tanh((STATES[5] - -16.0000)/11.2000));
ALGEBRAIC[1] = 1.00000/( 0.0350000*cosh((STATES[5] - -16.0000)/22.4000));
RATES[6] = (ALGEBRAIC[4] - STATES[6])/ALGEBRAIC[1];
ALGEBRAIC[0] = ((VOI - CONSTANTS[4])/1000.00>1.00000 ?  CONSTANTS[3]*CONSTANTS[1] : (VOI - CONSTANTS[4])/1000.00>0.00000&&(VOI - CONSTANTS[4])/1000.00<1.00000 ?  ((VOI - CONSTANTS[4])/1000.00)*CONSTANTS[3]*CONSTANTS[1] : (VOI - CONSTANTS[4])/1000.00<0.00000 ? 0.00000 : 0.0/0.0);
ALGEBRAIC[3] = CONSTANTS[2]+ CONSTANTS[1]*(1.00000 - CONSTANTS[3])*cos(( VOI*2.00000* 3.14159265358979)/( 60000.0*CONSTANTS[0]))+ALGEBRAIC[0];
ALGEBRAIC[6] =  CONSTANTS[7]*(( (ALGEBRAIC[3] - STATES[0])*CONSTANTS[6])/( (CONSTANTS[6]+ALGEBRAIC[3])*(CONSTANTS[6]+STATES[0])));
ALGEBRAIC[7] = ( CONSTANTS[9]*pow(STATES[0], CONSTANTS[10]))/(pow(CONSTANTS[8], CONSTANTS[10])+pow(STATES[0], CONSTANTS[10]));
RATES[0] = ALGEBRAIC[6] - ALGEBRAIC[7];
ALGEBRAIC[13] =  pow((pow(STATES[3] - CONSTANTS[22], 2.00000) -  4.00000*pow(STATES[3], 2.00000)), 1.0 / 2);
ALGEBRAIC[14] =  0.500000*((CONSTANTS[22]+ALGEBRAIC[13]) - STATES[3]);
ALGEBRAIC[8] =  0.200000* pow((STATES[2]/1.00000), 1.0 / 2);
ALGEBRAIC[16] = ( CONSTANTS[28]*ALGEBRAIC[8])/(CONSTANTS[29]+ALGEBRAIC[8]);
ALGEBRAIC[19] = CONSTANTS[24]+ALGEBRAIC[16];
RATES[3] =  CONSTANTS[26]*((ALGEBRAIC[14] -  STATES[3]*exp( ALGEBRAIC[19]*((1.00000 - STATES[4])/CONSTANTS[25])))/CONSTANTS[23])+ 1.00000*(1.00000 - CONSTANTS[26])*(CONSTANTS[27] - STATES[3]);
ALGEBRAIC[20] =  0.500000*(1.00000+ tanh((STATES[5] - -20.0000)/24.0000));
ALGEBRAIC[22] =  CONSTANTS[33]*ALGEBRAIC[20]*(STATES[5] - CONSTANTS[34]);
ALGEBRAIC[25] = - ( CONSTANTS[43]*1.00000*ALGEBRAIC[22]+ CONSTANTS[42]*STATES[4]);
ALGEBRAIC[31] =  CONSTANTS[45]*(STATES[7] - STATES[4]);
ALGEBRAIC[28] =  CONSTANTS[44]*STATES[4];
ALGEBRAIC[34] = ALGEBRAIC[31] - ALGEBRAIC[28];
RATES[4] =  CONSTANTS[39]*(ALGEBRAIC[25]+ALGEBRAIC[34]);
RATES[7] =  - CONSTANTS[40]*CONSTANTS[41]*ALGEBRAIC[34];
ALGEBRAIC[17] =  CONSTANTS[31]*STATES[6]*(STATES[5] - CONSTANTS[32]);
ALGEBRAIC[24] =  (CONSTANTS[35]/(1.00000+pow(CONSTANTS[36]/STATES[4], CONSTANTS[37])))*(STATES[5] - CONSTANTS[32]);
ALGEBRAIC[27] =  0.165000*STATES[3];
ALGEBRAIC[30] =  0.0800000*(1.00000+( 2.00000*ALGEBRAIC[27])/17.0000)+ 0.890000*pow(ALGEBRAIC[27]/17.0000, 2.00000);
ALGEBRAIC[33] =  0.135000*STATES[3];
ALGEBRAIC[36] =  0.0500000*ALGEBRAIC[14];
ALGEBRAIC[38] =  pow(1.00000+ALGEBRAIC[27]/17.0000, 2.00000)*(1.00000+ALGEBRAIC[33]/26.0000+ALGEBRAIC[36]/1.00000);
ALGEBRAIC[40] =  20.0000*(ALGEBRAIC[30]/ALGEBRAIC[38]);
ALGEBRAIC[42] =  CONSTANTS[38]*ALGEBRAIC[40]*(STATES[5] - CONSTANTS[32]);
RATES[5] = - (ALGEBRAIC[17]+ALGEBRAIC[22]+ALGEBRAIC[24]+ALGEBRAIC[42])/CONSTANTS[30];
ALGEBRAIC[5] =  0.300000*STATES[1];
ALGEBRAIC[50] = pow(STATES[3], 2.00000)/ALGEBRAIC[14];
ALGEBRAIC[59] = ( ALGEBRAIC[50]*STATES[2]*pow(ALGEBRAIC[5], 2.00000))/( 1.00000*CONSTANTS[18]*CONSTANTS[19]*CONSTANTS[20]*CONSTANTS[14]*CONSTANTS[13]);
ALGEBRAIC[60] = ALGEBRAIC[59];
ALGEBRAIC[71] = ( ALGEBRAIC[50]*STATES[2]*pow(ALGEBRAIC[5], 2.00000)*pow(ALGEBRAIC[14], 2.00000))/( 1.00000*CONSTANTS[18]*CONSTANTS[19]*CONSTANTS[20]*CONSTANTS[21]*CONSTANTS[14]*CONSTANTS[13]*CONSTANTS[16]*CONSTANTS[15]*CONSTANTS[17]);
ALGEBRAIC[61] = ( ALGEBRAIC[50]*pow(ALGEBRAIC[5], 2.00000)*pow(ALGEBRAIC[14], 2.00000))/( 1.00000*CONSTANTS[18]*CONSTANTS[20]*CONSTANTS[21]*CONSTANTS[13]*CONSTANTS[15]*CONSTANTS[17]);
ALGEBRAIC[54] = ( ALGEBRAIC[50]*pow(ALGEBRAIC[5], 2.00000))/( 1.00000*CONSTANTS[18]*CONSTANTS[20]*CONSTANTS[13]);
ALGEBRAIC[45] = ( STATES[2]*pow(ALGEBRAIC[5], 2.00000)*pow(ALGEBRAIC[14], 2.00000))/( 1.00000*CONSTANTS[19]*CONSTANTS[20]*CONSTANTS[21]*CONSTANTS[14]*CONSTANTS[16]*CONSTANTS[17]);
ALGEBRAIC[12] = ( STATES[2]*pow(ALGEBRAIC[5], 2.00000))/( 1.00000*CONSTANTS[19]*CONSTANTS[20]*CONSTANTS[14]);
ALGEBRAIC[26] = pow( ALGEBRAIC[5]*ALGEBRAIC[14], 2.00000)/( 1.00000*CONSTANTS[17]*CONSTANTS[20]*CONSTANTS[21]);
ALGEBRAIC[10] = pow(ALGEBRAIC[5], 2.00000)/( 1.00000*CONSTANTS[20]);
ALGEBRAIC[11] = CONSTANTS[53]+ALGEBRAIC[10];
ALGEBRAIC[29] = ALGEBRAIC[11]+ALGEBRAIC[26];
ALGEBRAIC[32] = ALGEBRAIC[29];
ALGEBRAIC[35] = ALGEBRAIC[32];
ALGEBRAIC[43] = ALGEBRAIC[35]+ALGEBRAIC[12];
ALGEBRAIC[46] = ALGEBRAIC[43]+ALGEBRAIC[45];
ALGEBRAIC[47] = ALGEBRAIC[46];
ALGEBRAIC[48] = ALGEBRAIC[47];
ALGEBRAIC[55] = ALGEBRAIC[48]+ALGEBRAIC[54];
ALGEBRAIC[62] = ALGEBRAIC[55]+ALGEBRAIC[61];
ALGEBRAIC[63] = ALGEBRAIC[62];
ALGEBRAIC[67] = ALGEBRAIC[63];
ALGEBRAIC[68] = ALGEBRAIC[67];
ALGEBRAIC[72] = ALGEBRAIC[68]+ALGEBRAIC[71];
ALGEBRAIC[66] = ( ALGEBRAIC[50]*STATES[2]*pow(ALGEBRAIC[14], 2.00000))/( 1.00000*CONSTANTS[18]*CONSTANTS[19]*CONSTANTS[21]*CONSTANTS[16]*CONSTANTS[15]);
ALGEBRAIC[53] = ( ALGEBRAIC[50]*STATES[2])/( CONSTANTS[18]*CONSTANTS[19]);
ALGEBRAIC[56] = ( ALGEBRAIC[50]*pow(ALGEBRAIC[14], 2.00000))/( 1.00000*CONSTANTS[18]*CONSTANTS[21]*CONSTANTS[15]);
ALGEBRAIC[51] = ALGEBRAIC[50]/CONSTANTS[18];
ALGEBRAIC[23] = ( STATES[2]*pow(ALGEBRAIC[14], 2.00000))/( 1.00000*CONSTANTS[19]*CONSTANTS[21]*CONSTANTS[16]);
ALGEBRAIC[9] = STATES[2]/CONSTANTS[19];
ALGEBRAIC[15] = pow(ALGEBRAIC[14], 2.00000)/( 1.00000*CONSTANTS[21]);
ALGEBRAIC[18] = CONSTANTS[52]+ALGEBRAIC[15];
ALGEBRAIC[21] = ALGEBRAIC[18]+ALGEBRAIC[10];
ALGEBRAIC[37] = ALGEBRAIC[21]+ALGEBRAIC[26];
ALGEBRAIC[39] = ALGEBRAIC[37]+ALGEBRAIC[9];
ALGEBRAIC[41] = ALGEBRAIC[39]+ALGEBRAIC[23];
ALGEBRAIC[44] = ALGEBRAIC[41]+ALGEBRAIC[12];
ALGEBRAIC[49] = ALGEBRAIC[44]+ALGEBRAIC[45];
ALGEBRAIC[52] = ALGEBRAIC[49]+ALGEBRAIC[51];
ALGEBRAIC[57] = ALGEBRAIC[52]+ALGEBRAIC[56];
ALGEBRAIC[58] = ALGEBRAIC[57]+ALGEBRAIC[54];
ALGEBRAIC[64] = ALGEBRAIC[58]+ALGEBRAIC[61];
ALGEBRAIC[65] = ALGEBRAIC[64]+ALGEBRAIC[53];
ALGEBRAIC[69] = ALGEBRAIC[65]+ALGEBRAIC[66];
ALGEBRAIC[70] = ALGEBRAIC[69]+ALGEBRAIC[59];
ALGEBRAIC[73] = ALGEBRAIC[70]+ALGEBRAIC[71];
ALGEBRAIC[74] = ( CONSTANTS[11]*CONSTANTS[12]*ALGEBRAIC[72]+ CONSTANTS[12]*ALGEBRAIC[60])/ALGEBRAIC[73];
RATES[1] =  CONSTANTS[5]*(ALGEBRAIC[7] - ALGEBRAIC[74]);
RATES[2] =  CONSTANTS[5]*(ALGEBRAIC[74] -  0.500000*ALGEBRAIC[8]);
}
void
computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[2] =  CONSTANTS[47]*(pow(STATES[4], CONSTANTS[48])/(pow(CONSTANTS[49], CONSTANTS[48])+pow(STATES[4], CONSTANTS[48])));
ALGEBRAIC[4] =  0.500000*(1.00000+ tanh((STATES[5] - -16.0000)/11.2000));
ALGEBRAIC[1] = 1.00000/( 0.0350000*cosh((STATES[5] - -16.0000)/22.4000));
ALGEBRAIC[0] = ((VOI - CONSTANTS[4])/1000.00>1.00000 ?  CONSTANTS[3]*CONSTANTS[1] : (VOI - CONSTANTS[4])/1000.00>0.00000&&(VOI - CONSTANTS[4])/1000.00<1.00000 ?  ((VOI - CONSTANTS[4])/1000.00)*CONSTANTS[3]*CONSTANTS[1] : (VOI - CONSTANTS[4])/1000.00<0.00000 ? 0.00000 : 0.0/0.0);
ALGEBRAIC[3] = CONSTANTS[2]+ CONSTANTS[1]*(1.00000 - CONSTANTS[3])*cos(( VOI*2.00000* 3.14159265358979)/( 60000.0*CONSTANTS[0]))+ALGEBRAIC[0];
ALGEBRAIC[6] =  CONSTANTS[7]*(( (ALGEBRAIC[3] - STATES[0])*CONSTANTS[6])/( (CONSTANTS[6]+ALGEBRAIC[3])*(CONSTANTS[6]+STATES[0])));
ALGEBRAIC[7] = ( CONSTANTS[9]*pow(STATES[0], CONSTANTS[10]))/(pow(CONSTANTS[8], CONSTANTS[10])+pow(STATES[0], CONSTANTS[10]));
ALGEBRAIC[13] =  pow((pow(STATES[3] - CONSTANTS[22], 2.00000) -  4.00000*pow(STATES[3], 2.00000)), 1.0 / 2);
ALGEBRAIC[14] =  0.500000*((CONSTANTS[22]+ALGEBRAIC[13]) - STATES[3]);
ALGEBRAIC[8] =  0.200000* pow((STATES[2]/1.00000), 1.0 / 2);
ALGEBRAIC[16] = ( CONSTANTS[28]*ALGEBRAIC[8])/(CONSTANTS[29]+ALGEBRAIC[8]);
ALGEBRAIC[19] = CONSTANTS[24]+ALGEBRAIC[16];
ALGEBRAIC[20] =  0.500000*(1.00000+ tanh((STATES[5] - -20.0000)/24.0000));
ALGEBRAIC[22] =  CONSTANTS[33]*ALGEBRAIC[20]*(STATES[5] - CONSTANTS[34]);
ALGEBRAIC[25] = - ( CONSTANTS[43]*1.00000*ALGEBRAIC[22]+ CONSTANTS[42]*STATES[4]);
ALGEBRAIC[31] =  CONSTANTS[45]*(STATES[7] - STATES[4]);
ALGEBRAIC[28] =  CONSTANTS[44]*STATES[4];
ALGEBRAIC[34] = ALGEBRAIC[31] - ALGEBRAIC[28];
ALGEBRAIC[17] =  CONSTANTS[31]*STATES[6]*(STATES[5] - CONSTANTS[32]);
ALGEBRAIC[24] =  (CONSTANTS[35]/(1.00000+pow(CONSTANTS[36]/STATES[4], CONSTANTS[37])))*(STATES[5] - CONSTANTS[32]);
ALGEBRAIC[27] =  0.165000*STATES[3];
ALGEBRAIC[30] =  0.0800000*(1.00000+( 2.00000*ALGEBRAIC[27])/17.0000)+ 0.890000*pow(ALGEBRAIC[27]/17.0000, 2.00000);
ALGEBRAIC[33] =  0.135000*STATES[3];
ALGEBRAIC[36] =  0.0500000*ALGEBRAIC[14];
ALGEBRAIC[38] =  pow(1.00000+ALGEBRAIC[27]/17.0000, 2.00000)*(1.00000+ALGEBRAIC[33]/26.0000+ALGEBRAIC[36]/1.00000);
ALGEBRAIC[40] =  20.0000*(ALGEBRAIC[30]/ALGEBRAIC[38]);
ALGEBRAIC[42] =  CONSTANTS[38]*ALGEBRAIC[40]*(STATES[5] - CONSTANTS[32]);
ALGEBRAIC[5] =  0.300000*STATES[1];
ALGEBRAIC[50] = pow(STATES[3], 2.00000)/ALGEBRAIC[14];
ALGEBRAIC[59] = ( ALGEBRAIC[50]*STATES[2]*pow(ALGEBRAIC[5], 2.00000))/( 1.00000*CONSTANTS[18]*CONSTANTS[19]*CONSTANTS[20]*CONSTANTS[14]*CONSTANTS[13]);
ALGEBRAIC[60] = ALGEBRAIC[59];
ALGEBRAIC[71] = ( ALGEBRAIC[50]*STATES[2]*pow(ALGEBRAIC[5], 2.00000)*pow(ALGEBRAIC[14], 2.00000))/( 1.00000*CONSTANTS[18]*CONSTANTS[19]*CONSTANTS[20]*CONSTANTS[21]*CONSTANTS[14]*CONSTANTS[13]*CONSTANTS[16]*CONSTANTS[15]*CONSTANTS[17]);
ALGEBRAIC[61] = ( ALGEBRAIC[50]*pow(ALGEBRAIC[5], 2.00000)*pow(ALGEBRAIC[14], 2.00000))/( 1.00000*CONSTANTS[18]*CONSTANTS[20]*CONSTANTS[21]*CONSTANTS[13]*CONSTANTS[15]*CONSTANTS[17]);
ALGEBRAIC[54] = ( ALGEBRAIC[50]*pow(ALGEBRAIC[5], 2.00000))/( 1.00000*CONSTANTS[18]*CONSTANTS[20]*CONSTANTS[13]);
ALGEBRAIC[45] = ( STATES[2]*pow(ALGEBRAIC[5], 2.00000)*pow(ALGEBRAIC[14], 2.00000))/( 1.00000*CONSTANTS[19]*CONSTANTS[20]*CONSTANTS[21]*CONSTANTS[14]*CONSTANTS[16]*CONSTANTS[17]);
ALGEBRAIC[12] = ( STATES[2]*pow(ALGEBRAIC[5], 2.00000))/( 1.00000*CONSTANTS[19]*CONSTANTS[20]*CONSTANTS[14]);
ALGEBRAIC[26] = pow( ALGEBRAIC[5]*ALGEBRAIC[14], 2.00000)/( 1.00000*CONSTANTS[17]*CONSTANTS[20]*CONSTANTS[21]);
ALGEBRAIC[10] = pow(ALGEBRAIC[5], 2.00000)/( 1.00000*CONSTANTS[20]);
ALGEBRAIC[11] = CONSTANTS[53]+ALGEBRAIC[10];
ALGEBRAIC[29] = ALGEBRAIC[11]+ALGEBRAIC[26];
ALGEBRAIC[32] = ALGEBRAIC[29];
ALGEBRAIC[35] = ALGEBRAIC[32];
ALGEBRAIC[43] = ALGEBRAIC[35]+ALGEBRAIC[12];
ALGEBRAIC[46] = ALGEBRAIC[43]+ALGEBRAIC[45];
ALGEBRAIC[47] = ALGEBRAIC[46];
ALGEBRAIC[48] = ALGEBRAIC[47];
ALGEBRAIC[55] = ALGEBRAIC[48]+ALGEBRAIC[54];
ALGEBRAIC[62] = ALGEBRAIC[55]+ALGEBRAIC[61];
ALGEBRAIC[63] = ALGEBRAIC[62];
ALGEBRAIC[67] = ALGEBRAIC[63];
ALGEBRAIC[68] = ALGEBRAIC[67];
ALGEBRAIC[72] = ALGEBRAIC[68]+ALGEBRAIC[71];
ALGEBRAIC[66] = ( ALGEBRAIC[50]*STATES[2]*pow(ALGEBRAIC[14], 2.00000))/( 1.00000*CONSTANTS[18]*CONSTANTS[19]*CONSTANTS[21]*CONSTANTS[16]*CONSTANTS[15]);
ALGEBRAIC[53] = ( ALGEBRAIC[50]*STATES[2])/( CONSTANTS[18]*CONSTANTS[19]);
ALGEBRAIC[56] = ( ALGEBRAIC[50]*pow(ALGEBRAIC[14], 2.00000))/( 1.00000*CONSTANTS[18]*CONSTANTS[21]*CONSTANTS[15]);
ALGEBRAIC[51] = ALGEBRAIC[50]/CONSTANTS[18];
ALGEBRAIC[23] = ( STATES[2]*pow(ALGEBRAIC[14], 2.00000))/( 1.00000*CONSTANTS[19]*CONSTANTS[21]*CONSTANTS[16]);
ALGEBRAIC[9] = STATES[2]/CONSTANTS[19];
ALGEBRAIC[15] = pow(ALGEBRAIC[14], 2.00000)/( 1.00000*CONSTANTS[21]);
ALGEBRAIC[18] = CONSTANTS[52]+ALGEBRAIC[15];
ALGEBRAIC[21] = ALGEBRAIC[18]+ALGEBRAIC[10];
ALGEBRAIC[37] = ALGEBRAIC[21]+ALGEBRAIC[26];
ALGEBRAIC[39] = ALGEBRAIC[37]+ALGEBRAIC[9];
ALGEBRAIC[41] = ALGEBRAIC[39]+ALGEBRAIC[23];
ALGEBRAIC[44] = ALGEBRAIC[41]+ALGEBRAIC[12];
ALGEBRAIC[49] = ALGEBRAIC[44]+ALGEBRAIC[45];
ALGEBRAIC[52] = ALGEBRAIC[49]+ALGEBRAIC[51];
ALGEBRAIC[57] = ALGEBRAIC[52]+ALGEBRAIC[56];
ALGEBRAIC[58] = ALGEBRAIC[57]+ALGEBRAIC[54];
ALGEBRAIC[64] = ALGEBRAIC[58]+ALGEBRAIC[61];
ALGEBRAIC[65] = ALGEBRAIC[64]+ALGEBRAIC[53];
ALGEBRAIC[69] = ALGEBRAIC[65]+ALGEBRAIC[66];
ALGEBRAIC[70] = ALGEBRAIC[69]+ALGEBRAIC[59];
ALGEBRAIC[73] = ALGEBRAIC[70]+ALGEBRAIC[71];
ALGEBRAIC[74] = ( CONSTANTS[11]*CONSTANTS[12]*ALGEBRAIC[72]+ CONSTANTS[12]*ALGEBRAIC[60])/ALGEBRAIC[73];
}