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 37 entries in the algebraic variable array.
   There are a total of 20 entries in each of the rate and state variable arrays.
   There are a total of 144 entries in the constant variable array.
 */
/*
 * VOI is time in component environment (hour).
 * ALGEBRAIC[4] is V_K in component membrane (nanoM).
 * ALGEBRAIC[36] is fr in component membrane (hertz).
 * ALGEBRAIC[0] is v_sPC in component membrane (flux).
 * ALGEBRAIC[24] is Res in component membrane (gigaohm).
 * ALGEBRAIC[18] is V_rest in component membrane (milliV).
 * ALGEBRAIC[23] is V_reset in component membrane (milliV).
 * CONSTANTS[0] is V_theta in component membrane (milliV).
 * CONSTANTS[1] is Cm in component membrane (nanoF).
 * CONSTANTS[2] is R in component membrane (joule_per_mole_kelvin).
 * CONSTANTS[3] is T in component membrane (kelvin).
 * CONSTANTS[4] is T_abs in component membrane (kelvin).
 * CONSTANTS[5] is T_room in component membrane (kelvin).
 * CONSTANTS[6] is F in component membrane (coulomb_per_mole).
 * ALGEBRAIC[5] is alpha in component membrane (dimensionless).
 * ALGEBRAIC[1] is beta in component membrane (dimensionless).
 * ALGEBRAIC[15] is beta_a in component membrane (dimensionless).
 * ALGEBRAIC[16] is c in component membrane (dimensionless).
 * CONSTANTS[7] is P_Ca in component membrane (per_milliM).
 * ALGEBRAIC[2] is P_K in component membrane (per_milliM).
 * CONSTANTS[8] is P_Na in component membrane (per_milliM).
 * CONSTANTS[9] is P_Cl in component membrane (per_milliM).
 * CONSTANTS[10] is v_PK in component membrane (per_milliM).
 * CONSTANTS[11] is npk in component membrane (dimensionless).
 * CONSTANTS[12] is K_PK in component membrane (per_nanoM2).
 * CONSTANTS[13] is V_R in component membrane (gigaohm).
 * CONSTANTS[14] is K_R in component membrane (milliV).
 * CONSTANTS[15] is Ca_ex in component membrane (microM).
 * CONSTANTS[16] is Na_ex in component membrane (milliM).
 * CONSTANTS[17] is K_ex in component membrane (milliM).
 * CONSTANTS[18] is Cl_ex in component membrane (milliM).
 * CONSTANTS[142] is Na_in in component membrane (milliM).
 * CONSTANTS[139] is K_in in component membrane (milliM).
 * CONSTANTS[141] is theta_Na in component membrane (dimensionless).
 * CONSTANTS[138] is theta_K in component membrane (dimensionless).
 * CONSTANTS[19] is E_Na_0 in component membrane (milliV).
 * CONSTANTS[140] is E_Na in component membrane (milliV).
 * CONSTANTS[20] is g_Na in component membrane (nanoS).
 * ALGEBRAIC[7] is E_Ca in component membrane (milliV).
 * ALGEBRAIC[11] is g_Ca in component membrane (nanoS).
 * ALGEBRAIC[9] is g_K in component membrane (nanoS).
 * CONSTANTS[21] is g_K0 in component membrane (nanoS).
 * CONSTANTS[22] is v_gk in component membrane (nanoS).
 * CONSTANTS[23] is K_gk in component membrane (nanoM).
 * ALGEBRAIC[12] is g_KCa in component membrane (nanoS).
 * CONSTANTS[24] is v_KCa in component membrane (nanoS).
 * CONSTANTS[25] is K_KCa in component membrane (per_nanoM).
 * CONSTANTS[26] is nkca in component membrane (dimensionless).
 * ALGEBRAIC[29] is g_L in component membrane (nanoS).
 * CONSTANTS[27] is E_L_0 in component membrane (milliV).
 * CONSTANTS[143] is E_L in component membrane (milliV).
 * CONSTANTS[28] is E_K_0 in component membrane (milliV).
 * CONSTANTS[136] is E_K in component membrane (milliV).
 * ALGEBRAIC[30] is g_ex in component membrane (nanoS).
 * CONSTANTS[29] is E_ex in component membrane (milliV).
 * CONSTANTS[30] is v_ex1 in component membrane (nanoS).
 * CONSTANTS[31] is v_ex2 in component membrane (nanoS).
 * CONSTANTS[32] is K_ex1 in component membrane (picoA_2_5).
 * CONSTANTS[33] is K_ex2 in component membrane (per_microM).
 * CONSTANTS[34] is nex1 in component membrane (dimensionless).
 * CONSTANTS[35] is nex2 in component membrane (dimensionless).
 * CONSTANTS[36] is g_inhib in component membrane (nanoS).
 * ALGEBRAIC[25] is E_inhib in component membrane (milliV).
 * ALGEBRAIC[13] is GABA in component membrane (nanoM).
 * CONSTANTS[37] is GABA0 in component membrane (nanoM).
 * CONSTANTS[38] is v_GABA in component membrane (nanoM).
 * CONSTANTS[39] is K_GABA in component membrane (nanoM).
 * ALGEBRAIC[14] is Cl_in in component membrane (milliM).
 * CONSTANTS[40] is Cl0 in component membrane (milliM).
 * CONSTANTS[41] is v_Cl1 in component membrane (milliM).
 * CONSTANTS[42] is v_Cl2 in component membrane (milliM).
 * CONSTANTS[43] is K_Cl1 in component membrane (nanoM).
 * CONSTANTS[44] is K_Cl2 in component membrane (per_nanoM_0_2).
 * CONSTANTS[45] is nCl in component membrane (dimensionless).
 * ALGEBRAIC[26] is i_Na in component membrane (picoA).
 * ALGEBRAIC[28] is i_Na_abs in component membrane (picoA).
 * ALGEBRAIC[20] is i_Ca in component membrane (picoA).
 * ALGEBRAIC[21] is i_K in component membrane (picoA).
 * ALGEBRAIC[22] is i_KCa in component membrane (picoA).
 * ALGEBRAIC[31] is i_L in component membrane (picoA).
 * ALGEBRAIC[32] is i_ex in component membrane (picoA).
 * ALGEBRAIC[27] is i_inhib in component membrane (picoA).
 * ALGEBRAIC[33] is I_star in component membrane (picoA).
 * ALGEBRAIC[34] is R_star in component membrane (milliohm).
 * ALGEBRAIC[35] is tau_m in component membrane (second).
 * ALGEBRAIC[19] is theta in component membrane (milliV).
 * ALGEBRAIC[17] is psi in component membrane (dimensionless).
 * CONSTANTS[46] is k_q in component membrane (per_kelvin).
 * CONSTANTS[47] is k_MK in component membrane (nanoM).
 * CONSTANTS[48] is V_MK in component membrane (nanoM).
 * CONSTANTS[49] is V_b in component membrane (nanoM).
 * CONSTANTS[50] is k_b in component membrane (dimensionless).
 * CONSTANTS[51] is K_D in component membrane (nanoM).
 * CONSTANTS[52] is v_sP0 in component membrane (flux).
 * CONSTANTS[53] is C_T in component membrane (flux).
 * CONSTANTS[54] is nca in component membrane (dimensionless).
 * CONSTANTS[55] is v_Ca in component membrane (nanoS).
 * CONSTANTS[56] is K_Ca in component membrane (nanoM_2_2).
 * CONSTANTS[57] is K_C in component membrane (nanoM).
 * STATES[0] is Ca_in in component Ca_in (microM).
 * STATES[1] is BC in component BC (nanoM).
 * STATES[2] is MP in component MP (nanoM).
 * STATES[3] is VIP in component VIP (nanoM).
 * STATES[4] is CC in component CC (nanoM).
 * STATES[5] is CB in component CB (nanoM).
 * CONSTANTS[58] is beta_IP3 in component Ca_in (dimensionless).
 * STATES[6] is Ca_store in component Ca_in (nanoM).
 * ALGEBRAIC[6] is v0 in component Ca_in (microM_per_hour).
 * CONSTANTS[137] is v1 in component Ca_in (microM_per_hour).
 * ALGEBRAIC[8] is v2 in component Ca_in (microM_per_hour).
 * ALGEBRAIC[10] is v3 in component Ca_in (microM_per_hour).
 * CONSTANTS[59] is v_kk in component Ca_in (per_microM_per_hour).
 * CONSTANTS[60] is v_v0 in component Ca_in (microM_per_hour).
 * CONSTANTS[61] is kf in component Ca_in (per_hour).
 * ALGEBRAIC[3] is k in component Ca_in (per_microM_per_hour).
 * CONSTANTS[62] is nkk in component Ca_in (dimensionless).
 * CONSTANTS[63] is nv0 in component Ca_in (dimensionless).
 * CONSTANTS[64] is m in component Ca_in (dimensionless).
 * CONSTANTS[65] is n in component Ca_in (dimensionless).
 * CONSTANTS[66] is p in component Ca_in (dimensionless).
 * CONSTANTS[67] is v in component Ca_in (dimensionless).
 * CONSTANTS[68] is K_kk in component Ca_in (nanoM_0_1).
 * CONSTANTS[69] is K_v0 in component Ca_in (nanoM_4_5).
 * CONSTANTS[70] is K_2 in component Ca_in (microM).
 * CONSTANTS[71] is K_R in component Ca_in (microM).
 * CONSTANTS[72] is K_A in component Ca_in (microM).
 * CONSTANTS[73] is v_M1 in component Ca_in (microM_per_hour).
 * CONSTANTS[74] is v_M2 in component Ca_in (microM_per_hour).
 * CONSTANTS[75] is v_M3 in component Ca_in (microM_per_hour).
 * CONSTANTS[76] is v_VIP in component VIP (flux).
 * CONSTANTS[77] is K_VIP in component VIP (hertz_1_9).
 * CONSTANTS[78] is kd_VIP in component VIP (nanoM_0_8_per_hour).
 * CONSTANTS[79] is nd_VIP in component VIP (dimensionless).
 * CONSTANTS[80] is n_VIP in component VIP (dimensionless).
 * CONSTANTS[81] is vmP in component MP (flux).
 * CONSTANTS[82] is kdmp in component MP (first_order_rate_constant).
 * CONSTANTS[83] is KAP in component MP (nanoM).
 * CONSTANTS[84] is KmP in component MP (nanoM).
 * CONSTANTS[85] is n in component model_parameters (dimensionless).
 * STATES[7] is BN in component BN (nanoM).
 * STATES[8] is MC in component MC (nanoM).
 * CONSTANTS[86] is vsC in component MC (flux).
 * CONSTANTS[87] is vmC in component MC (flux).
 * CONSTANTS[88] is kdmc in component MC (first_order_rate_constant).
 * CONSTANTS[89] is KAC in component MC (nanoM).
 * CONSTANTS[90] is KmC in component MC (nanoM).
 * STATES[9] is MB in component MB (nanoM).
 * CONSTANTS[91] is vsB in component MB (flux).
 * CONSTANTS[92] is vmB in component MB (flux).
 * CONSTANTS[93] is kdmb in component MB (first_order_rate_constant).
 * CONSTANTS[94] is KIB in component MB (nanoM).
 * CONSTANTS[95] is KmB in component MB (nanoM).
 * CONSTANTS[96] is m in component model_parameters (dimensionless).
 * STATES[10] is PC in component PC (nanoM).
 * CONSTANTS[97] is ksP in component model_parameters (first_order_rate_constant).
 * CONSTANTS[98] is Kp in component model_parameters (nanoM).
 * CONSTANTS[99] is Kdp in component model_parameters (nanoM).
 * CONSTANTS[100] is k3 in component model_parameters (second_order_rate_constant).
 * CONSTANTS[101] is k4 in component model_parameters (first_order_rate_constant).
 * CONSTANTS[102] is kdn in component model_parameters (first_order_rate_constant).
 * CONSTANTS[103] is V1P in component model_parameters (flux).
 * CONSTANTS[104] is V2P in component model_parameters (flux).
 * STATES[11] is PCP in component PCP (nanoM).
 * STATES[12] is PCC in component PCC (nanoM).
 * CONSTANTS[105] is ksC in component model_parameters (first_order_rate_constant).
 * CONSTANTS[106] is kdnc in component model_parameters (first_order_rate_constant).
 * CONSTANTS[107] is V1C in component model_parameters (flux).
 * CONSTANTS[108] is V2C in component model_parameters (flux).
 * STATES[13] is CCP in component CCP (nanoM).
 * CONSTANTS[109] is vdPC in component model_parameters (flux).
 * CONSTANTS[110] is Kd in component model_parameters (nanoM).
 * CONSTANTS[111] is vdCC in component model_parameters (flux).
 * CONSTANTS[112] is k1 in component model_parameters (first_order_rate_constant).
 * CONSTANTS[113] is k2 in component model_parameters (first_order_rate_constant).
 * CONSTANTS[114] is V1PC in component model_parameters (flux).
 * CONSTANTS[115] is V2PC in component model_parameters (flux).
 * STATES[14] is PCCP in component PCCP (nanoM).
 * STATES[15] is PCN in component PCN (nanoM).
 * CONSTANTS[116] is k7 in component model_parameters (second_order_rate_constant).
 * CONSTANTS[117] is k8 in component model_parameters (first_order_rate_constant).
 * CONSTANTS[118] is V3PC in component model_parameters (flux).
 * CONSTANTS[119] is V4PC in component model_parameters (flux).
 * STATES[16] is PCNP in component PCNP (nanoM).
 * STATES[17] is IN in component IN (nanoM).
 * CONSTANTS[120] is vdPCC in component model_parameters (flux).
 * CONSTANTS[121] is vdPCN in component model_parameters (flux).
 * CONSTANTS[122] is ksB in component model_parameters (first_order_rate_constant).
 * CONSTANTS[123] is k5 in component model_parameters (first_order_rate_constant).
 * CONSTANTS[124] is k6 in component model_parameters (first_order_rate_constant).
 * CONSTANTS[125] is V1B in component model_parameters (flux).
 * CONSTANTS[126] is V2B in component model_parameters (flux).
 * STATES[18] is BCP in component BCP (nanoM).
 * CONSTANTS[127] is vdBC in component model_parameters (flux).
 * CONSTANTS[128] is V3B in component model_parameters (flux).
 * CONSTANTS[129] is V4B in component model_parameters (flux).
 * STATES[19] is BNP in component BNP (nanoM).
 * CONSTANTS[130] is vdBN in component model_parameters (flux).
 * CONSTANTS[131] is vdIN in component model_parameters (flux).
 * CONSTANTS[132] is K1CB in component CB (nanoM).
 * CONSTANTS[133] is K2CB in component CB (nanoM).
 * CONSTANTS[134] is WT in component CB (hour).
 * CONSTANTS[135] is vP in component CB (nanoM).
 * RATES[0] is d/dt Ca_in in component Ca_in (microM).
 * RATES[6] is d/dt Ca_store in component Ca_in (nanoM).
 * RATES[3] is d/dt VIP in component VIP (nanoM).
 * RATES[2] is d/dt MP in component MP (nanoM).
 * RATES[8] is d/dt MC in component MC (nanoM).
 * RATES[9] is d/dt MB in component MB (nanoM).
 * RATES[10] is d/dt PC in component PC (nanoM).
 * RATES[4] is d/dt CC in component CC (nanoM).
 * RATES[11] is d/dt PCP in component PCP (nanoM).
 * RATES[13] is d/dt CCP in component CCP (nanoM).
 * RATES[12] is d/dt PCC in component PCC (nanoM).
 * RATES[15] is d/dt PCN in component PCN (nanoM).
 * RATES[14] is d/dt PCCP in component PCCP (nanoM).
 * RATES[16] is d/dt PCNP in component PCNP (nanoM).
 * RATES[1] is d/dt BC in component BC (nanoM).
 * RATES[18] is d/dt BCP in component BCP (nanoM).
 * RATES[7] is d/dt BN in component BN (nanoM).
 * RATES[19] is d/dt BNP in component BNP (nanoM).
 * RATES[17] is d/dt IN in component IN (nanoM).
 * RATES[5] is d/dt CB in component CB (nanoM).
 */
void
initConsts(double* CONSTANTS, double* RATES, double *STATES)
{
CONSTANTS[0] = 20.0;
CONSTANTS[1] = 5.0;
CONSTANTS[2] = 8.314;
CONSTANTS[3] = 37;
CONSTANTS[4] = 273.15;
CONSTANTS[5] = 22;
CONSTANTS[6] = 96485;
CONSTANTS[7] = 0.05;
CONSTANTS[8] = 0.036;
CONSTANTS[9] = 0.3;
CONSTANTS[10] = 1.9;
CONSTANTS[11] = -2.0;
CONSTANTS[12] = 1.0;
CONSTANTS[13] = 0.41;
CONSTANTS[14] = 34.0;
CONSTANTS[15] = 5.0;
CONSTANTS[16] = 145.0;
CONSTANTS[17] = 1.0;
CONSTANTS[18] = 114.5;
CONSTANTS[19] = 45.0;
CONSTANTS[20] = 36.0;
CONSTANTS[21] = 9.7;
CONSTANTS[22] = 10.0;
CONSTANTS[23] = 10.0;
CONSTANTS[24] = 3.0;
CONSTANTS[25] = 0.16;
CONSTANTS[26] = -1.0;
CONSTANTS[27] = -29.0;
CONSTANTS[28] = -97.0;
CONSTANTS[29] = 0.0;
CONSTANTS[30] = 105.0;
CONSTANTS[31] = 4.4;
CONSTANTS[32] = 574050000.0;
CONSTANTS[33] = 1.0;
CONSTANTS[34] = 2.5;
CONSTANTS[35] = -1.0;
CONSTANTS[36] = 12.3;
CONSTANTS[37] = 0.2;
CONSTANTS[38] = 19.0;
CONSTANTS[39] = 3.0;
CONSTANTS[40] = 1.0;
CONSTANTS[41] = 15.5;
CONSTANTS[42] = 19.0;
CONSTANTS[43] = 4.0;
CONSTANTS[44] = 1.0;
CONSTANTS[45] = -0.2;
CONSTANTS[46] = 8.75e-5;
CONSTANTS[47] = 2.9;
CONSTANTS[48] = 5.0;
CONSTANTS[49] = 2.0;
CONSTANTS[50] = 2.0;
CONSTANTS[51] = 0.08;
CONSTANTS[52] = 1.0;
CONSTANTS[53] = 1.6;
CONSTANTS[54] = 2.2;
CONSTANTS[55] = 12.3;
CONSTANTS[56] = 22.0;
CONSTANTS[57] = 0.15;
STATES[0] = 0.1;
STATES[1] = 2.41;
STATES[2] = 2.8;
STATES[3] = 0.0;
STATES[4] = 12.0;
STATES[5] = 0.12;
CONSTANTS[58] = 0.5;
STATES[6] = 0.1;
CONSTANTS[59] = 3.3;
CONSTANTS[60] = 0.09;
CONSTANTS[61] = 0.001;
CONSTANTS[62] = 0.1;
CONSTANTS[63] = 4.5;
CONSTANTS[64] = 6.0;
CONSTANTS[65] = 2.2;
CONSTANTS[66] = 4.2;
CONSTANTS[67] = 2.0;
CONSTANTS[68] = 0.02;
CONSTANTS[69] = 4.5;
CONSTANTS[70] = 5.0;
CONSTANTS[71] = 3.0;
CONSTANTS[72] = 0.67;
CONSTANTS[73] = 0.0003;
CONSTANTS[74] = 149.5;
CONSTANTS[75] = 400.0;
CONSTANTS[76] = 0.5;
CONSTANTS[77] = 15.0;
CONSTANTS[78] = 0.5;
CONSTANTS[79] = 0.2;
CONSTANTS[80] = 1.9;
CONSTANTS[81] = 1.1;
CONSTANTS[82] = 0.01;
CONSTANTS[83] = 0.6;
CONSTANTS[84] = 0.31;
CONSTANTS[85] = 4.0;
STATES[7] = 1.94;
STATES[8] = 2.0;
CONSTANTS[86] = 1.1;
CONSTANTS[87] = 1.0;
CONSTANTS[88] = 0.01;
CONSTANTS[89] = 0.6;
CONSTANTS[90] = 0.4;
STATES[9] = 7.94;
CONSTANTS[91] = 1.0;
CONSTANTS[92] = 0.8;
CONSTANTS[93] = 0.01;
CONSTANTS[94] = 2.2;
CONSTANTS[95] = 0.4;
CONSTANTS[96] = 2.0;
STATES[10] = 0.4;
CONSTANTS[97] = 0.6;
CONSTANTS[98] = 0.1;
CONSTANTS[99] = 0.1;
CONSTANTS[100] = 0.4;
CONSTANTS[101] = 0.2;
CONSTANTS[102] = 0.01;
CONSTANTS[103] = 0.4;
CONSTANTS[104] = 0.3;
STATES[11] = 0.13;
STATES[12] = 1.26;
CONSTANTS[105] = 1.6;
CONSTANTS[106] = 0.12;
CONSTANTS[107] = 0.6;
CONSTANTS[108] = 0.1;
STATES[13] = 9.0;
CONSTANTS[109] = 0.7;
CONSTANTS[110] = 0.3;
CONSTANTS[111] = 0.7;
CONSTANTS[112] = 0.45;
CONSTANTS[113] = 0.2;
CONSTANTS[114] = 0.4;
CONSTANTS[115] = 0.1;
STATES[14] = 0.2;
STATES[15] = 0.16;
CONSTANTS[116] = 0.5;
CONSTANTS[117] = 0.1;
CONSTANTS[118] = 0.4;
CONSTANTS[119] = 0.1;
STATES[16] = 0.091;
STATES[17] = 0.05;
CONSTANTS[120] = 0.7;
CONSTANTS[121] = 0.7;
CONSTANTS[122] = 0.12;
CONSTANTS[123] = 0.4;
CONSTANTS[124] = 0.2;
CONSTANTS[125] = 0.5;
CONSTANTS[126] = 0.1;
STATES[18] = 0.48;
CONSTANTS[127] = 0.5;
CONSTANTS[128] = 0.5;
CONSTANTS[129] = 0.2;
STATES[19] = 0.32;
CONSTANTS[130] = 0.6;
CONSTANTS[131] = 0.8;
CONSTANTS[132] = 0.01;
CONSTANTS[133] = 0.01;
CONSTANTS[134] = 1.0;
CONSTANTS[135] = 1.0;
CONSTANTS[136] = ( CONSTANTS[28]*(CONSTANTS[3]+CONSTANTS[4]))/(CONSTANTS[5]+CONSTANTS[4]);
CONSTANTS[137] =  CONSTANTS[73]*CONSTANTS[58];
CONSTANTS[138] = exp(CONSTANTS[136]/( CONSTANTS[46]*(CONSTANTS[3]+CONSTANTS[4])*1000.00));
CONSTANTS[139] = CONSTANTS[17]/CONSTANTS[138];
CONSTANTS[140] = ( CONSTANTS[19]*(CONSTANTS[3]+CONSTANTS[4]))/(CONSTANTS[5]+CONSTANTS[4]);
CONSTANTS[141] = exp(CONSTANTS[140]/( CONSTANTS[46]*(CONSTANTS[3]+CONSTANTS[4])*1000.00));
CONSTANTS[142] = CONSTANTS[16]/CONSTANTS[141];
CONSTANTS[143] = ( CONSTANTS[27]*(CONSTANTS[3]+CONSTANTS[4]))/(CONSTANTS[5]+CONSTANTS[4]);
}
void
computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
RATES[8] =  CONSTANTS[86]*(pow(STATES[7], CONSTANTS[85])/(pow(CONSTANTS[89], CONSTANTS[85])+pow(STATES[7], CONSTANTS[85]))) - ( CONSTANTS[87]*(STATES[8]/(CONSTANTS[90]+STATES[8]))+ CONSTANTS[88]*STATES[8]);
RATES[9] =  CONSTANTS[91]*(pow(CONSTANTS[94], CONSTANTS[96])/(pow(CONSTANTS[94], CONSTANTS[96])+pow(STATES[7], CONSTANTS[96]))) - ( CONSTANTS[92]*(STATES[9]/(CONSTANTS[95]+STATES[9]))+ CONSTANTS[93]*STATES[9]);
RATES[10] = ( CONSTANTS[97]*STATES[2]+ CONSTANTS[104]*(STATES[11]/(CONSTANTS[99]+STATES[11]))+ CONSTANTS[101]*STATES[12]) - ( CONSTANTS[103]*(STATES[10]/(CONSTANTS[98]+STATES[10]))+ CONSTANTS[100]*STATES[10]*STATES[4]+ CONSTANTS[102]*STATES[10]);
RATES[4] = ( CONSTANTS[105]*STATES[8]+ CONSTANTS[108]*(STATES[13]/(CONSTANTS[99]+STATES[13]))+ CONSTANTS[101]*STATES[12]) - ( CONSTANTS[107]*(STATES[4]/(CONSTANTS[98]+STATES[4]))+ CONSTANTS[100]*STATES[10]*STATES[4]+ CONSTANTS[106]*STATES[4]);
RATES[11] =  CONSTANTS[103]*(STATES[10]/(CONSTANTS[98]+STATES[10])) - ( CONSTANTS[104]*(STATES[11]/(CONSTANTS[99]+STATES[11]))+ CONSTANTS[109]*(STATES[11]/(CONSTANTS[110]+STATES[11]))+ CONSTANTS[102]*STATES[11]);
RATES[13] =  CONSTANTS[107]*(STATES[4]/(CONSTANTS[98]+STATES[4])) - ( CONSTANTS[108]*(STATES[13]/(CONSTANTS[99]+STATES[13]))+ CONSTANTS[111]*(STATES[13]/(CONSTANTS[110]+STATES[13]))+ CONSTANTS[102]*STATES[13]);
RATES[12] = ( CONSTANTS[115]*(STATES[14]/(CONSTANTS[99]+STATES[14]))+ CONSTANTS[100]*STATES[10]*STATES[4]+ CONSTANTS[113]*STATES[15]) - ( CONSTANTS[114]*(STATES[12]/(CONSTANTS[98]+STATES[12]))+ CONSTANTS[101]*STATES[12]+ CONSTANTS[112]*STATES[12]+ CONSTANTS[102]*STATES[12]);
RATES[15] = ( CONSTANTS[119]*(STATES[16]/(CONSTANTS[99]+STATES[16]))+ CONSTANTS[112]*STATES[12]+ CONSTANTS[117]*STATES[17]) - ( CONSTANTS[118]*(STATES[15]/(CONSTANTS[98]+STATES[15]))+ CONSTANTS[113]*STATES[15]+ CONSTANTS[116]*STATES[7]*STATES[15]+ CONSTANTS[102]*STATES[15]);
RATES[14] =  CONSTANTS[114]*(STATES[12]/(CONSTANTS[98]+STATES[12])) - ( CONSTANTS[115]*(STATES[14]/(CONSTANTS[99]+STATES[14]))+ CONSTANTS[120]*(STATES[14]/(CONSTANTS[110]+STATES[14]))+ CONSTANTS[102]*STATES[14]);
RATES[16] =  CONSTANTS[118]*(STATES[15]/(CONSTANTS[98]+STATES[15])) - ( CONSTANTS[119]*(STATES[16]/(CONSTANTS[99]+STATES[16]))+ CONSTANTS[121]*(STATES[16]/(CONSTANTS[110]+STATES[16]))+ CONSTANTS[102]*STATES[16]);
RATES[1] = ( CONSTANTS[126]*(STATES[18]/(CONSTANTS[99]+STATES[18]))+ CONSTANTS[124]*STATES[7]+ CONSTANTS[122]*STATES[9]) - ( CONSTANTS[125]*(STATES[1]/(CONSTANTS[98]+STATES[1]))+ CONSTANTS[123]*STATES[1]+ CONSTANTS[102]*STATES[1]);
RATES[18] =  CONSTANTS[125]*(STATES[1]/(CONSTANTS[98]+STATES[1])) - ( CONSTANTS[126]*(STATES[18]/(CONSTANTS[99]+STATES[18]))+ CONSTANTS[127]*(STATES[18]/(CONSTANTS[110]+STATES[18]))+ CONSTANTS[102]*STATES[18]);
RATES[7] = ( CONSTANTS[129]*(STATES[19]/(CONSTANTS[99]+STATES[19]))+ CONSTANTS[123]*STATES[1]+ CONSTANTS[117]*STATES[17]) - ( CONSTANTS[128]*(STATES[7]/(CONSTANTS[98]+STATES[7]))+ CONSTANTS[124]*STATES[7]+ CONSTANTS[116]*STATES[7]*STATES[15]+ CONSTANTS[102]*STATES[7]);
RATES[19] =  CONSTANTS[128]*(STATES[7]/(CONSTANTS[98]+STATES[7])) - ( CONSTANTS[129]*(STATES[19]/(CONSTANTS[99]+STATES[19]))+ CONSTANTS[130]*(STATES[19]/(CONSTANTS[110]+STATES[19]))+ CONSTANTS[102]*STATES[19]);
RATES[17] =  CONSTANTS[116]*STATES[7]*STATES[15] - ( CONSTANTS[117]*STATES[17]+ CONSTANTS[131]*(STATES[17]/(CONSTANTS[110]+STATES[17]))+ CONSTANTS[102]*STATES[17]);
ALGEBRAIC[0] = CONSTANTS[52]+( CONSTANTS[53]*STATES[5])/(CONSTANTS[57]+STATES[5]);
RATES[2] =  ALGEBRAIC[0]*(pow(STATES[7], CONSTANTS[85])/(pow(CONSTANTS[83], CONSTANTS[85])+pow(STATES[7], CONSTANTS[85]))) - ( CONSTANTS[81]*(STATES[2]/(CONSTANTS[84]+STATES[2]))+ CONSTANTS[82]*STATES[2]);
ALGEBRAIC[1] = STATES[3]/(STATES[3]+CONSTANTS[51]);
ALGEBRAIC[4] = ( CONSTANTS[48]*STATES[0])/(CONSTANTS[47]+STATES[0])+( CONSTANTS[49]*ALGEBRAIC[1])/(CONSTANTS[50]+ALGEBRAIC[1]);
RATES[5] = (( ALGEBRAIC[4]*(1.00000 - STATES[5]))/((CONSTANTS[132]+1.00000) - STATES[5]) - ( CONSTANTS[135]*STATES[5])/(CONSTANTS[133]+STATES[5]))/CONSTANTS[134];
ALGEBRAIC[6] =  CONSTANTS[60]*(pow(STATES[1], CONSTANTS[63])/(CONSTANTS[69]+pow(STATES[1], CONSTANTS[63])));
ALGEBRAIC[8] =  CONSTANTS[74]*(pow(STATES[0], CONSTANTS[65])/(pow(CONSTANTS[70], CONSTANTS[65])+pow(STATES[0], CONSTANTS[65])));
ALGEBRAIC[10] =  CONSTANTS[75]*(pow(STATES[6], CONSTANTS[64])/(pow(CONSTANTS[71], CONSTANTS[64])+pow(STATES[6], CONSTANTS[64])))*(pow(STATES[0], CONSTANTS[66])/(pow(CONSTANTS[72], CONSTANTS[66])+pow(STATES[0], CONSTANTS[66])));
ALGEBRAIC[3] =  CONSTANTS[59]*(pow(STATES[4], CONSTANTS[62])/(CONSTANTS[68]+pow(STATES[4], CONSTANTS[62])));
RATES[0] = (ALGEBRAIC[6]+CONSTANTS[137]+ALGEBRAIC[10]+ CONSTANTS[61]*STATES[6]) - (ALGEBRAIC[8]+ ALGEBRAIC[3]*pow(STATES[0], CONSTANTS[67]));
RATES[6] = ALGEBRAIC[8] - (ALGEBRAIC[10]+ CONSTANTS[61]*STATES[6]);
ALGEBRAIC[2] =  CONSTANTS[10]*(pow(STATES[1], CONSTANTS[11])/(CONSTANTS[12]+pow(STATES[1], CONSTANTS[11])));
ALGEBRAIC[5] =  4.00000*CONSTANTS[7]*STATES[0]*0.00100000+ ALGEBRAIC[2]*CONSTANTS[139]+ CONSTANTS[8]*CONSTANTS[142]+ CONSTANTS[9]*CONSTANTS[18];
ALGEBRAIC[13] = CONSTANTS[37]+( CONSTANTS[38]*STATES[3])/(CONSTANTS[39]+STATES[3]);
ALGEBRAIC[14] = CONSTANTS[40]+ CONSTANTS[41]*(STATES[2]/(CONSTANTS[43]+STATES[2]))+ CONSTANTS[42]*(pow(ALGEBRAIC[13], CONSTANTS[45])/(CONSTANTS[44]+pow(ALGEBRAIC[13], CONSTANTS[45])));
ALGEBRAIC[15] = ( ALGEBRAIC[2]*CONSTANTS[139]+ CONSTANTS[8]*CONSTANTS[142]+ CONSTANTS[9]*CONSTANTS[18]) - ( ALGEBRAIC[2]*CONSTANTS[17]+ CONSTANTS[8]*CONSTANTS[16]+ CONSTANTS[9]*ALGEBRAIC[14]);
ALGEBRAIC[16] = - ( ALGEBRAIC[2]*CONSTANTS[17]+ 4.00000*CONSTANTS[7]*CONSTANTS[15]*0.00100000+ CONSTANTS[8]*CONSTANTS[16]+ CONSTANTS[9]*ALGEBRAIC[14]);
ALGEBRAIC[17] = ( pow((pow(ALGEBRAIC[15], 2.00000) -  4.00000*ALGEBRAIC[5]*ALGEBRAIC[16]), 1.0 / 2) - ALGEBRAIC[15])/( 2.00000*ALGEBRAIC[5]);
ALGEBRAIC[18] =  (( CONSTANTS[2]*(CONSTANTS[3]+CONSTANTS[4]))/CONSTANTS[6])*log(ALGEBRAIC[17])*1000.00;
ALGEBRAIC[23] = ALGEBRAIC[18]+4.00000;
ALGEBRAIC[7] =  (( CONSTANTS[46]*(CONSTANTS[3]+CONSTANTS[4]))/2.00000)*log(CONSTANTS[15]/STATES[0])*1000.00;
ALGEBRAIC[11] =  CONSTANTS[55]*(pow(STATES[2], CONSTANTS[54])/(CONSTANTS[56]+pow(STATES[2], CONSTANTS[54])));
ALGEBRAIC[9] = CONSTANTS[21]+ CONSTANTS[22]*(STATES[2]/(CONSTANTS[23]+STATES[2]));
ALGEBRAIC[12] =  CONSTANTS[24]*(pow(STATES[4], CONSTANTS[26])/(CONSTANTS[25]+pow(STATES[4], CONSTANTS[26])));
ALGEBRAIC[24] =  CONSTANTS[13]*(ALGEBRAIC[18]/(CONSTANTS[14]+ALGEBRAIC[18]));
ALGEBRAIC[29] = 1.00000/ALGEBRAIC[24];
ALGEBRAIC[26] =  CONSTANTS[20]*(ALGEBRAIC[18] - CONSTANTS[140]);
ALGEBRAIC[28] =  pow(pow(ALGEBRAIC[26], 2.00000), 1.0 / 2);
ALGEBRAIC[30] =  CONSTANTS[30]*(pow(ALGEBRAIC[28], CONSTANTS[34])/(CONSTANTS[32]+pow(ALGEBRAIC[28], CONSTANTS[34])))+ CONSTANTS[31]*(pow(STATES[0], CONSTANTS[35])/(CONSTANTS[33]+pow(STATES[0], CONSTANTS[35])));
ALGEBRAIC[25] =  - CONSTANTS[46]*(CONSTANTS[3]+CONSTANTS[4])*log(CONSTANTS[18]/ALGEBRAIC[14])*1000.00;
ALGEBRAIC[33] = ( CONSTANTS[20]*CONSTANTS[140]+ ALGEBRAIC[11]*ALGEBRAIC[7]+ ALGEBRAIC[9]*CONSTANTS[136]+ ALGEBRAIC[29]*CONSTANTS[143]+ ALGEBRAIC[12]*CONSTANTS[136]) - ( CONSTANTS[36]*ALGEBRAIC[25]+ ALGEBRAIC[30]*CONSTANTS[29]);
ALGEBRAIC[34] = 1.00000/((CONSTANTS[20]+ALGEBRAIC[9]+ALGEBRAIC[29]+ALGEBRAIC[11]+ALGEBRAIC[12]) - (CONSTANTS[36]+ALGEBRAIC[30]));
ALGEBRAIC[35] =  CONSTANTS[1]*ALGEBRAIC[34];
ALGEBRAIC[19] = ALGEBRAIC[18]+CONSTANTS[0];
ALGEBRAIC[36] = -1.00000/( ALGEBRAIC[35]*log((ALGEBRAIC[19] -  ALGEBRAIC[34]*ALGEBRAIC[33])/(ALGEBRAIC[23] -  ALGEBRAIC[34]*ALGEBRAIC[33])));
RATES[3] =  CONSTANTS[76]*(pow(ALGEBRAIC[36], CONSTANTS[80])/(CONSTANTS[77]+pow(ALGEBRAIC[36], CONSTANTS[80]))) -  CONSTANTS[78]*pow(STATES[3], CONSTANTS[79]);
}
void
computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC)
{
ALGEBRAIC[0] = CONSTANTS[52]+( CONSTANTS[53]*STATES[5])/(CONSTANTS[57]+STATES[5]);
ALGEBRAIC[1] = STATES[3]/(STATES[3]+CONSTANTS[51]);
ALGEBRAIC[4] = ( CONSTANTS[48]*STATES[0])/(CONSTANTS[47]+STATES[0])+( CONSTANTS[49]*ALGEBRAIC[1])/(CONSTANTS[50]+ALGEBRAIC[1]);
ALGEBRAIC[6] =  CONSTANTS[60]*(pow(STATES[1], CONSTANTS[63])/(CONSTANTS[69]+pow(STATES[1], CONSTANTS[63])));
ALGEBRAIC[8] =  CONSTANTS[74]*(pow(STATES[0], CONSTANTS[65])/(pow(CONSTANTS[70], CONSTANTS[65])+pow(STATES[0], CONSTANTS[65])));
ALGEBRAIC[10] =  CONSTANTS[75]*(pow(STATES[6], CONSTANTS[64])/(pow(CONSTANTS[71], CONSTANTS[64])+pow(STATES[6], CONSTANTS[64])))*(pow(STATES[0], CONSTANTS[66])/(pow(CONSTANTS[72], CONSTANTS[66])+pow(STATES[0], CONSTANTS[66])));
ALGEBRAIC[3] =  CONSTANTS[59]*(pow(STATES[4], CONSTANTS[62])/(CONSTANTS[68]+pow(STATES[4], CONSTANTS[62])));
ALGEBRAIC[2] =  CONSTANTS[10]*(pow(STATES[1], CONSTANTS[11])/(CONSTANTS[12]+pow(STATES[1], CONSTANTS[11])));
ALGEBRAIC[5] =  4.00000*CONSTANTS[7]*STATES[0]*0.00100000+ ALGEBRAIC[2]*CONSTANTS[139]+ CONSTANTS[8]*CONSTANTS[142]+ CONSTANTS[9]*CONSTANTS[18];
ALGEBRAIC[13] = CONSTANTS[37]+( CONSTANTS[38]*STATES[3])/(CONSTANTS[39]+STATES[3]);
ALGEBRAIC[14] = CONSTANTS[40]+ CONSTANTS[41]*(STATES[2]/(CONSTANTS[43]+STATES[2]))+ CONSTANTS[42]*(pow(ALGEBRAIC[13], CONSTANTS[45])/(CONSTANTS[44]+pow(ALGEBRAIC[13], CONSTANTS[45])));
ALGEBRAIC[15] = ( ALGEBRAIC[2]*CONSTANTS[139]+ CONSTANTS[8]*CONSTANTS[142]+ CONSTANTS[9]*CONSTANTS[18]) - ( ALGEBRAIC[2]*CONSTANTS[17]+ CONSTANTS[8]*CONSTANTS[16]+ CONSTANTS[9]*ALGEBRAIC[14]);
ALGEBRAIC[16] = - ( ALGEBRAIC[2]*CONSTANTS[17]+ 4.00000*CONSTANTS[7]*CONSTANTS[15]*0.00100000+ CONSTANTS[8]*CONSTANTS[16]+ CONSTANTS[9]*ALGEBRAIC[14]);
ALGEBRAIC[17] = ( pow((pow(ALGEBRAIC[15], 2.00000) -  4.00000*ALGEBRAIC[5]*ALGEBRAIC[16]), 1.0 / 2) - ALGEBRAIC[15])/( 2.00000*ALGEBRAIC[5]);
ALGEBRAIC[18] =  (( CONSTANTS[2]*(CONSTANTS[3]+CONSTANTS[4]))/CONSTANTS[6])*log(ALGEBRAIC[17])*1000.00;
ALGEBRAIC[23] = ALGEBRAIC[18]+4.00000;
ALGEBRAIC[7] =  (( CONSTANTS[46]*(CONSTANTS[3]+CONSTANTS[4]))/2.00000)*log(CONSTANTS[15]/STATES[0])*1000.00;
ALGEBRAIC[11] =  CONSTANTS[55]*(pow(STATES[2], CONSTANTS[54])/(CONSTANTS[56]+pow(STATES[2], CONSTANTS[54])));
ALGEBRAIC[9] = CONSTANTS[21]+ CONSTANTS[22]*(STATES[2]/(CONSTANTS[23]+STATES[2]));
ALGEBRAIC[12] =  CONSTANTS[24]*(pow(STATES[4], CONSTANTS[26])/(CONSTANTS[25]+pow(STATES[4], CONSTANTS[26])));
ALGEBRAIC[24] =  CONSTANTS[13]*(ALGEBRAIC[18]/(CONSTANTS[14]+ALGEBRAIC[18]));
ALGEBRAIC[29] = 1.00000/ALGEBRAIC[24];
ALGEBRAIC[26] =  CONSTANTS[20]*(ALGEBRAIC[18] - CONSTANTS[140]);
ALGEBRAIC[28] =  pow(pow(ALGEBRAIC[26], 2.00000), 1.0 / 2);
ALGEBRAIC[30] =  CONSTANTS[30]*(pow(ALGEBRAIC[28], CONSTANTS[34])/(CONSTANTS[32]+pow(ALGEBRAIC[28], CONSTANTS[34])))+ CONSTANTS[31]*(pow(STATES[0], CONSTANTS[35])/(CONSTANTS[33]+pow(STATES[0], CONSTANTS[35])));
ALGEBRAIC[25] =  - CONSTANTS[46]*(CONSTANTS[3]+CONSTANTS[4])*log(CONSTANTS[18]/ALGEBRAIC[14])*1000.00;
ALGEBRAIC[33] = ( CONSTANTS[20]*CONSTANTS[140]+ ALGEBRAIC[11]*ALGEBRAIC[7]+ ALGEBRAIC[9]*CONSTANTS[136]+ ALGEBRAIC[29]*CONSTANTS[143]+ ALGEBRAIC[12]*CONSTANTS[136]) - ( CONSTANTS[36]*ALGEBRAIC[25]+ ALGEBRAIC[30]*CONSTANTS[29]);
ALGEBRAIC[34] = 1.00000/((CONSTANTS[20]+ALGEBRAIC[9]+ALGEBRAIC[29]+ALGEBRAIC[11]+ALGEBRAIC[12]) - (CONSTANTS[36]+ALGEBRAIC[30]));
ALGEBRAIC[35] =  CONSTANTS[1]*ALGEBRAIC[34];
ALGEBRAIC[19] = ALGEBRAIC[18]+CONSTANTS[0];
ALGEBRAIC[36] = -1.00000/( ALGEBRAIC[35]*log((ALGEBRAIC[19] -  ALGEBRAIC[34]*ALGEBRAIC[33])/(ALGEBRAIC[23] -  ALGEBRAIC[34]*ALGEBRAIC[33])));
ALGEBRAIC[20] =  ALGEBRAIC[11]*(ALGEBRAIC[18] - ALGEBRAIC[7]);
ALGEBRAIC[21] =  ALGEBRAIC[9]*(ALGEBRAIC[18] - CONSTANTS[136]);
ALGEBRAIC[22] =  ALGEBRAIC[12]*(ALGEBRAIC[18] - CONSTANTS[136]);
ALGEBRAIC[27] =  CONSTANTS[36]*(ALGEBRAIC[18] - ALGEBRAIC[25]);
ALGEBRAIC[31] =  ALGEBRAIC[29]*(ALGEBRAIC[18] - CONSTANTS[143]);
ALGEBRAIC[32] =  ALGEBRAIC[30]*(ALGEBRAIC[18] - CONSTANTS[29]);
}