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 62 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 45 entries in the constant variable array. */ /* * VOI is time in component environment (minute). * CONSTANTS[0] is ADHMV in component circulatory_dynamics (dimensionless). * CONSTANTS[1] is AMM in component circulatory_dynamics (dimensionless). * CONSTANTS[2] is ANU in component circulatory_dynamics (dimensionless). * CONSTANTS[3] is ANUVN in component circulatory_dynamics (dimensionless). * CONSTANTS[4] is ARM in component circulatory_dynamics (dimensionless). * CONSTANTS[5] is ATRRFB in component circulatory_dynamics (dimensionless). * CONSTANTS[6] is ATRVFB in component circulatory_dynamics (litre). * CONSTANTS[7] is AU in component circulatory_dynamics (dimensionless). * CONSTANTS[8] is AUH in component circulatory_dynamics (dimensionless). * CONSTANTS[9] is AUM in component circulatory_dynamics (dimensionless). * CONSTANTS[10] is AVE in component circulatory_dynamics (dimensionless). * CONSTANTS[11] is HMD in component circulatory_dynamics (dimensionless). * CONSTANTS[12] is HPL in component circulatory_dynamics (dimensionless). * CONSTANTS[13] is HPR in component circulatory_dynamics (dimensionless). * CONSTANTS[14] is MYOGRS in component circulatory_dynamics (dimensionless). * CONSTANTS[15] is OSA in component circulatory_dynamics (dimensionless). * CONSTANTS[16] is PAMK in component circulatory_dynamics (dimensionless). * CONSTANTS[17] is PC in component circulatory_dynamics (mmHg). * CONSTANTS[18] is RBF in component circulatory_dynamics (L_per_minute). * CONSTANTS[19] is VIM in component circulatory_dynamics (dimensionless). * CONSTANTS[20] is VP in component circulatory_dynamics (litre). * CONSTANTS[21] is VRC in component circulatory_dynamics (litre). * CONSTANTS[22] is VV6 in component circulatory_dynamics (litre). * CONSTANTS[23] is VV7 in component circulatory_dynamics (litre). * CONSTANTS[24] is VVR in component circulatory_dynamics (litre). * STATES[0] is VVS1 in component venous_blood_volume (litre). * STATES[1] is VAS1 in component arterial_blood_volume (litre). * STATES[2] is VLA1 in component left_atrial_blood_volume (litre). * STATES[3] is VPA1 in component pulmonary_vasculature_blood_volume (litre). * STATES[4] is VRA1 in component right_atrial_blood_volume (litre). * ALGEBRAIC[0] is VBD in component total_blood_volume_change (litre). * ALGEBRAIC[33] is QVO in component rate_of_blood_flow_from_veins_to_right_atrium (L_per_minute). * ALGEBRAIC[45] is QRO in component right_ventricular_output (L_per_minute). * ALGEBRAIC[1] is VRA in component right_atrial_blood_volume (litre). * ALGEBRAIC[47] is DRA in component right_atrial_blood_volume (L_per_minute). * ALGEBRAIC[3] is PRA in component right_atrial_pressure (mmHg). * ALGEBRAIC[2] is VRE in component right_atrial_pressure (litre). * ALGEBRAIC[4] is PRA1 in component autonomic_stimulation_effect_on_right_atrial_pressure (mmHg). * CONSTANTS[25] is HTAUML in component parameter_values (dimensionless). * ALGEBRAIC[8] is PPA in component pulmonary_vasculature_pressure (mmHg). * ALGEBRAIC[10] is RVM in component pressure_effect_on_right_ventricular_pumping (dimensionless). * ALGEBRAIC[9] is PP2 in component pressure_effect_on_right_ventricular_pumping (mmHg). * ALGEBRAIC[41] is QLO in component left_ventricular_output (L_per_minute). * ALGEBRAIC[24] is QLN in component left_ventricular_output (L_per_minute). * ALGEBRAIC[42] is HPEF in component pumping_effectiveness_of_right_ventricle (L_per_minute). * CONSTANTS[26] is QRF in component parameter_values (L_per_minute). * CONSTANTS[27] is HSR in component parameter_values (dimensionless). * ALGEBRAIC[5] is QRN in component right_ventricular_output (dimensionless). * ALGEBRAIC[22] is QPO in component rate_of_blood_flow_from_pulmonary_veins_to_left_atrium (L_per_minute). * ALGEBRAIC[6] is VPA in component pulmonary_vasculature_blood_volume (litre). * ALGEBRAIC[48] is DPA in component pulmonary_vasculature_blood_volume (L_per_minute). * ALGEBRAIC[7] is VPE in component pulmonary_vasculature_pressure (litre). * ALGEBRAIC[14] is RPA in component pulmonary_arterial_resistance (mmHg_minute_per_L). * ALGEBRAIC[11] is PP1T in component pulmonary_arterial_resistance (L_per_minute_per_mmHg). * ALGEBRAIC[12] is PP1 in component pulmonary_arterial_resistance (L_per_minute_per_mmHg). * ALGEBRAIC[13] is CPA in component pulmonary_arterial_resistance (L_per_minute_per_mmHg). * ALGEBRAIC[17] is PLA in component left_atrial_pressure (mmHg). * ALGEBRAIC[19] is RPV in component pulmonary_venous_resistance (mmHg_minute_per_L). * ALGEBRAIC[18] is PL1 in component pulmonary_venous_resistance (mmHg). * ALGEBRAIC[20] is RPT in component total_pulmonary_vascular_resistance (mmHg_minute_per_L). * ALGEBRAIC[21] is PGL in component pressure_gradient_through_the_lungs (mmHg). * ALGEBRAIC[15] is VLA in component left_atrial_blood_volume (litre). * ALGEBRAIC[43] is DLA in component left_atrial_blood_volume (L_per_minute). * ALGEBRAIC[16] is VLE in component left_atrial_pressure (litre). * ALGEBRAIC[23] is PLA1 in component autonomic_stimulation_effect_on_left_atrial_pressure (mmHg). * ALGEBRAIC[36] is PA in component arterial_pressure_and_pressure_gradient (mmHg). * ALGEBRAIC[38] is LVM in component pumping_effectiveness_of_left_ventricle (dimensionless). * ALGEBRAIC[37] is PA2 in component pumping_effectiveness_of_left_ventricle (mmHg). * ALGEBRAIC[39] is QLOT in component left_ventricular_output (L_per_minute). * CONSTANTS[28] is HSL in component parameter_values (dimensionless). * ALGEBRAIC[40] is QLO1 in component left_ventricular_output (L_per_minute). * ALGEBRAIC[58] is QAO in component systemic_blood_flow (L_per_minute). * ALGEBRAIC[25] is VVS in component venous_blood_volume (litre). * ALGEBRAIC[59] is DVS in component venous_blood_volume (L_per_minute). * CONSTANTS[40] is VVA in component angiotensin_induced_venous_constriction (litre). * CONSTANTS[29] is ANY in component parameter_values (litre). * ALGEBRAIC[27] is VVE in component venous_excess_volume (litre). * ALGEBRAIC[26] is VVE1 in component venous_excess_volume (litre). * ALGEBRAIC[29] is PVS in component venous_average_pressure (mmHg). * CONSTANTS[30] is CV in component parameter_values (L_per_mmHg). * ALGEBRAIC[28] is PVS1 in component venous_average_pressure (mmHg). * ALGEBRAIC[30] is PR1 in component venous_outflow_pressure_into_heart (mmHg). * CONSTANTS[31] is PR1LL in component parameter_values (mmHg). * ALGEBRAIC[31] is RVG in component resistance_from_veins_to_right_atrium (mmHg_minute_per_L). * ALGEBRAIC[32] is PGV in component rate_of_blood_flow_from_veins_to_right_atrium (mmHg). * CONSTANTS[43] is RVS in component venous_resistance (mmHg_minute_per_L). * CONSTANTS[32] is CN7 in component parameter_values (dimensionless). * CONSTANTS[33] is CN2 in component parameter_values (per_mmHg). * CONSTANTS[34] is RVSM in component parameter_values (mmHg_minute_per_L). * CONSTANTS[41] is CN3 in component venous_resistance (dimensionless). * CONSTANTS[42] is RV1 in component venous_resistance (mmHg_minute_per_L). * CONSTANTS[44] is NNRVR in component NM_NR_venous_resistance (mmHg_minute_per_L). * ALGEBRAIC[34] is VAS in component arterial_blood_volume (litre). * ALGEBRAIC[60] is DAS in component arterial_blood_volume (L_per_minute). * ALGEBRAIC[44] is PAG in component arterial_pressure_and_pressure_gradient (mmHg). * ALGEBRAIC[35] is VAE in component arterial_pressure_and_pressure_gradient (litre). * ALGEBRAIC[46] is PAM in component pressure_effect_on_arterial_distention (dimensionless). * CONSTANTS[35] is PAEX in component parameter_values (dimensionless). * ALGEBRAIC[49] is R1 in component non_renal_systemic_arterial_resistance_multiplier (dimensionless). * ALGEBRAIC[50] is NNRAR in component NM_NR_arterial_resistance (mmHg_minute_per_L). * CONSTANTS[36] is RAR in component parameter_values (mmHg_minute_per_L). * CONSTANTS[37] is RMULT1 in component parameter_values (dimensionless). * ALGEBRAIC[51] is PGS in component pressure_gradient_from_arteries_to_veins (mmHg). * ALGEBRAIC[52] is RSM in component M_systemic_resistance (mmHg_minute_per_L). * CONSTANTS[38] is RAM in component parameter_values (mmHg_minute_per_L). * ALGEBRAIC[53] is RSN in component total_NM_NR_systemic_resistance (mmHg_minute_per_L). * ALGEBRAIC[54] is BFM in component blood_flow_through_M_tissues (L_per_minute). * ALGEBRAIC[55] is BFN in component blood_flow_through_NM_NR_tissues (L_per_minute). * ALGEBRAIC[56] is FISFLO in component blood_flow_through_AV_fistulas (L_per_minute). * CONSTANTS[39] is FIS in component parameter_values (L_per_minute_per_mmHg). * ALGEBRAIC[57] is SYSFLO in component systemic_blood_flow (L_per_minute). * ALGEBRAIC[61] is RTP in component total_peripheral_resistance (mmHg_minute_per_L). * RATES[4] is d/dt VRA1 in component right_atrial_blood_volume (litre). * RATES[3] is d/dt VPA1 in component pulmonary_vasculature_blood_volume (litre). * RATES[2] is d/dt VLA1 in component left_atrial_blood_volume (litre). * RATES[0] is d/dt VVS1 in component venous_blood_volume (litre). * RATES[1] is d/dt VAS1 in component arterial_blood_volume (litre). */ void initConsts(double* CONSTANTS, double* RATES, double *STATES) { CONSTANTS[0] = 1.0; CONSTANTS[1] = 1.0; CONSTANTS[2] = 0.925271; CONSTANTS[3] = 1.0; CONSTANTS[4] = 1.16463; CONSTANTS[5] = 1.0; CONSTANTS[6] = 0.0; CONSTANTS[7] = 1.00022; CONSTANTS[8] = 1.00012; CONSTANTS[9] = 1.00066; CONSTANTS[10] = 1.0; CONSTANTS[11] = 1.0; CONSTANTS[12] = 1.00163; CONSTANTS[13] = 1.00237; CONSTANTS[14] = 1.0; CONSTANTS[15] = 0.97287; CONSTANTS[16] = 1.0; CONSTANTS[17] = 16.9144; CONSTANTS[18] = 1.22057; CONSTANTS[19] = 1.00076; CONSTANTS[20] = 3.00449; CONSTANTS[21] = 2.00439; CONSTANTS[22] = 0.0101913; CONSTANTS[23] = 0.00366525; CONSTANTS[24] = 2.50967; STATES[0] = 3.28246; STATES[1] = 0.862514; STATES[2] = 0.379883; STATES[3] = 0.38131; STATES[4] = 0.100043; CONSTANTS[25] = 0.4; CONSTANTS[26] = 0.15; CONSTANTS[27] = 1; CONSTANTS[28] = 1; CONSTANTS[29] = -0.2; CONSTANTS[30] = 0.1; CONSTANTS[31] = 0; CONSTANTS[32] = 0.2; CONSTANTS[33] = 0.0212; CONSTANTS[34] = 1; CONSTANTS[35] = 2; CONSTANTS[36] = 30.52; CONSTANTS[37] = 1; CONSTANTS[38] = 96.3; CONSTANTS[39] = 0; CONSTANTS[40] = (CONSTANTS[2] - 1.00000)*CONSTANTS[29]; CONSTANTS[41] = ( (CONSTANTS[17] - 17.0000)*CONSTANTS[32]+17.0000)*CONSTANTS[33]; CONSTANTS[42] = CONSTANTS[34]/CONSTANTS[41]; CONSTANTS[43] = CONSTANTS[10]*CONSTANTS[42]*CONSTANTS[19]*CONSTANTS[3]; CONSTANTS[44] = CONSTANTS[43]*1.79000; } void computeRates(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[0] = ((((((CONSTANTS[20]+CONSTANTS[21]) - STATES[0]) - STATES[1]) - STATES[2]) - STATES[3]) - STATES[4])/2.00000; ALGEBRAIC[15] = STATES[2]+ ALGEBRAIC[0]*0.128000; ALGEBRAIC[16] = ALGEBRAIC[15] - 0.380000; ALGEBRAIC[17] = ALGEBRAIC[16]/0.0100000; ALGEBRAIC[23] = (ALGEBRAIC[17]+4.00000)*( CONSTANTS[25]*(CONSTANTS[7] - 1.00000)+1.00000) - 4.00000; ALGEBRAIC[24] = (ALGEBRAIC[23]<=- 2.00000 ? 0.0100000 : ALGEBRAIC[23]>- 2.00000&&ALGEBRAIC[23]<=1.00000 ? 0.0100000+( (3.60000 - 0.0100000)*(ALGEBRAIC[23] - - 2.00000))/(1.00000 - - 2.00000) : ALGEBRAIC[23]>1.00000&&ALGEBRAIC[23]<=5.00000 ? 3.60000+( (9.40000 - 3.60000)*(ALGEBRAIC[23] - 1.00000))/(5.00000 - 1.00000) : ALGEBRAIC[23]>5.00000&&ALGEBRAIC[23]<=8.00000 ? 9.40000+( (11.6000 - 9.40000)*(ALGEBRAIC[23] - 5.00000))/(8.00000 - 5.00000) : ALGEBRAIC[23]>8.00000&&ALGEBRAIC[23]<=12.0000 ? 11.6000+( (13.5000 - 11.6000)*(ALGEBRAIC[23] - 8.00000))/(12.0000 - 8.00000) : 13.5000); ALGEBRAIC[34] = STATES[1]+ ALGEBRAIC[0]*0.261000; ALGEBRAIC[35] = ALGEBRAIC[34] - 0.495000; ALGEBRAIC[36] = ALGEBRAIC[35]/0.00355000; ALGEBRAIC[37] = ALGEBRAIC[36]/( CONSTANTS[8]*CONSTANTS[15]); ALGEBRAIC[38] = (ALGEBRAIC[37]<=0.00000 ? 1.04000 : ALGEBRAIC[37]>0.00000&&ALGEBRAIC[37]<=60.0000 ? 1.04000+( (1.02500 - 1.04000)*(ALGEBRAIC[37] - 0.00000))/(60.0000 - 0.00000) : ALGEBRAIC[37]>60.0000&&ALGEBRAIC[37]<=125.000 ? 1.02500+( (0.970000 - 1.02500)*(ALGEBRAIC[37] - 60.0000))/(125.000 - 60.0000) : ALGEBRAIC[37]>125.000&&ALGEBRAIC[37]<=160.000 ? 0.970000+( (0.880000 - 0.970000)*(ALGEBRAIC[37] - 125.000))/(160.000 - 125.000) : ALGEBRAIC[37]>160.000&&ALGEBRAIC[37]<=200.000 ? 0.880000+( (0.590000 - 0.880000)*(ALGEBRAIC[37] - 160.000))/(200.000 - 160.000) : ALGEBRAIC[37]>200.000&&ALGEBRAIC[37]<=240.000 ? 0.590000+( (0.00000 - 0.590000)*(ALGEBRAIC[37] - 200.000))/(240.000 - 200.000) : 0.00000); ALGEBRAIC[39] = ALGEBRAIC[38]*ALGEBRAIC[24]*CONSTANTS[8]*CONSTANTS[28]*CONSTANTS[11]*CONSTANTS[12]; ALGEBRAIC[40] = (ALGEBRAIC[17] - ALGEBRAIC[36])/3.00000; ALGEBRAIC[41] = (ALGEBRAIC[40]>0.00000 ? ALGEBRAIC[39]+ALGEBRAIC[40] : ALGEBRAIC[39]); ALGEBRAIC[6] = STATES[3]+ ALGEBRAIC[0]*0.155000; ALGEBRAIC[7] = ALGEBRAIC[6] - 0.306250; ALGEBRAIC[8] = ALGEBRAIC[7]/0.00480000; ALGEBRAIC[11] = 0.0260000*ALGEBRAIC[8]; ALGEBRAIC[12] = (ALGEBRAIC[11]<1.00000e-05 ? 1.00000e-05 : ALGEBRAIC[11]); ALGEBRAIC[13] = pow(ALGEBRAIC[12], 0.500000); ALGEBRAIC[14] = 1.00000/ALGEBRAIC[13]; ALGEBRAIC[18] = ALGEBRAIC[17]+18.0000; ALGEBRAIC[19] = 1.00000/( ALGEBRAIC[18]*0.0357000); ALGEBRAIC[20] = ALGEBRAIC[19]+ALGEBRAIC[14]; ALGEBRAIC[21] = ALGEBRAIC[8] - ALGEBRAIC[17]; ALGEBRAIC[22] = ALGEBRAIC[21]/ALGEBRAIC[20]; ALGEBRAIC[43] = ALGEBRAIC[22] - ALGEBRAIC[41]; RATES[2] = ALGEBRAIC[43]; ALGEBRAIC[25] = STATES[0]+ ALGEBRAIC[0]*0.398600; ALGEBRAIC[26] = ((((ALGEBRAIC[25] - CONSTANTS[24]) - CONSTANTS[40]) - CONSTANTS[23]) - CONSTANTS[22]) - CONSTANTS[6]; ALGEBRAIC[27] = (ALGEBRAIC[26]<0.000100000 ? 0.000100000 : ALGEBRAIC[26]); ALGEBRAIC[28] = 3.70000+(ALGEBRAIC[27] - 0.740000)/CONSTANTS[30]; ALGEBRAIC[29] = (ALGEBRAIC[28]<0.000100000 ? 0.000100000 : ALGEBRAIC[28]); ALGEBRAIC[31] = 0.740000/pow(ALGEBRAIC[29]/( CONSTANTS[19]*3.70000), 0.500000); ALGEBRAIC[1] = STATES[4]+ ALGEBRAIC[0]*0.0574000; ALGEBRAIC[2] = ALGEBRAIC[1] - 0.100000; ALGEBRAIC[3] = ALGEBRAIC[2]/0.00500000; ALGEBRAIC[30] = (ALGEBRAIC[3]<CONSTANTS[31] ? CONSTANTS[31] : ALGEBRAIC[3]); ALGEBRAIC[32] = ALGEBRAIC[29] - ALGEBRAIC[30]; ALGEBRAIC[33] = ALGEBRAIC[32]/ALGEBRAIC[31]; ALGEBRAIC[9] = (ALGEBRAIC[8]/CONSTANTS[8])/CONSTANTS[15]; ALGEBRAIC[10] = (ALGEBRAIC[9]<=0.00000 ? 1.06000 : ALGEBRAIC[9]>0.00000&&ALGEBRAIC[9]<=32.0000 ? 1.06000+( (0.970000 - 1.06000)*(ALGEBRAIC[9] - 0.00000))/(32.0000 - 0.00000) : ALGEBRAIC[9]>32.0000&&ALGEBRAIC[9]<=38.4000 ? 0.970000+( (0.930000 - 0.970000)*(ALGEBRAIC[9] - 32.0000))/(38.4000 - 32.0000) : ALGEBRAIC[9]>38.4000&&ALGEBRAIC[9]<=48.0000 ? 0.930000+( (0.800000 - 0.930000)*(ALGEBRAIC[9] - 38.4000))/(48.0000 - 38.4000) : ALGEBRAIC[9]>48.0000&&ALGEBRAIC[9]<=60.8000 ? 0.800000+( (0.460000 - 0.800000)*(ALGEBRAIC[9] - 48.0000))/(60.8000 - 48.0000) : ALGEBRAIC[9]>60.8000&&ALGEBRAIC[9]<=72.0000 ? 0.460000+( (0.00000 - 0.460000)*(ALGEBRAIC[9] - 60.8000))/(72.0000 - 60.8000) : 0.00000); ALGEBRAIC[42] = (1.00000 - CONSTANTS[26])*CONSTANTS[8]*ALGEBRAIC[10]*CONSTANTS[27]*CONSTANTS[11]*CONSTANTS[13]+( CONSTANTS[26]*ALGEBRAIC[41])/ALGEBRAIC[24]; ALGEBRAIC[4] = (ALGEBRAIC[3]+8.00000)*( CONSTANTS[25]*(CONSTANTS[7] - 1.00000)+1.00000) - 8.00000; ALGEBRAIC[5] = (ALGEBRAIC[4]<=- 8.00000 ? 0.00000 : ALGEBRAIC[4]>- 8.00000&&ALGEBRAIC[4]<=- 6.00000 ? 0.00000+( (0.750000 - 0.00000)*(ALGEBRAIC[4] - - 8.00000))/(- 6.00000 - - 8.00000) : ALGEBRAIC[4]>- 6.00000&&ALGEBRAIC[4]<=- 2.00000 ? 0.750000+( (2.60000 - 0.750000)*(ALGEBRAIC[4] - - 6.00000))/(- 2.00000 - - 6.00000) : ALGEBRAIC[4]>- 2.00000&&ALGEBRAIC[4]<=4.00000 ? 2.60000+( (9.80000 - 2.60000)*(ALGEBRAIC[4] - - 2.00000))/(4.00000 - - 2.00000) : ALGEBRAIC[4]>4.00000&&ALGEBRAIC[4]<=12.0000 ? 9.80000+( (13.5000 - 9.80000)*(ALGEBRAIC[4] - 4.00000))/(12.0000 - 4.00000) : 13.5000); ALGEBRAIC[45] = ALGEBRAIC[5]*ALGEBRAIC[42]; ALGEBRAIC[47] = ALGEBRAIC[33] - ALGEBRAIC[45]; RATES[4] = ALGEBRAIC[47]; ALGEBRAIC[48] = ALGEBRAIC[45] - ALGEBRAIC[22]; RATES[3] = ALGEBRAIC[48]; ALGEBRAIC[44] = ALGEBRAIC[36] - ALGEBRAIC[3]; ALGEBRAIC[56] = ALGEBRAIC[44]*CONSTANTS[39]; ALGEBRAIC[51] = ALGEBRAIC[36] - ALGEBRAIC[29]; ALGEBRAIC[46] = pow(ALGEBRAIC[36]/100.000, CONSTANTS[35]); ALGEBRAIC[49] = (( CONSTANTS[2]*CONSTANTS[0]*CONSTANTS[9]*CONSTANTS[19]*CONSTANTS[16])/ALGEBRAIC[46])/CONSTANTS[5]; ALGEBRAIC[52] = CONSTANTS[38]*CONSTANTS[1]*ALGEBRAIC[49]*CONSTANTS[14]*CONSTANTS[37]; ALGEBRAIC[54] = ALGEBRAIC[51]/ALGEBRAIC[52]; ALGEBRAIC[50] = CONSTANTS[36]*CONSTANTS[4]*ALGEBRAIC[49]*CONSTANTS[14]*CONSTANTS[37]; ALGEBRAIC[53] = ALGEBRAIC[50]+CONSTANTS[44]; ALGEBRAIC[55] = ALGEBRAIC[51]/ALGEBRAIC[53]; ALGEBRAIC[57] = ALGEBRAIC[54]+ALGEBRAIC[55]+CONSTANTS[18]; ALGEBRAIC[58] = ALGEBRAIC[57]+ALGEBRAIC[56]; ALGEBRAIC[59] = ALGEBRAIC[58] - ALGEBRAIC[33]; RATES[0] = ALGEBRAIC[59]; ALGEBRAIC[60] = ALGEBRAIC[41] - ALGEBRAIC[58]; RATES[1] = ALGEBRAIC[60]; } void computeVariables(double VOI, double* CONSTANTS, double* RATES, double* STATES, double* ALGEBRAIC) { ALGEBRAIC[0] = ((((((CONSTANTS[20]+CONSTANTS[21]) - STATES[0]) - STATES[1]) - STATES[2]) - STATES[3]) - STATES[4])/2.00000; ALGEBRAIC[15] = STATES[2]+ ALGEBRAIC[0]*0.128000; ALGEBRAIC[16] = ALGEBRAIC[15] - 0.380000; ALGEBRAIC[17] = ALGEBRAIC[16]/0.0100000; ALGEBRAIC[23] = (ALGEBRAIC[17]+4.00000)*( CONSTANTS[25]*(CONSTANTS[7] - 1.00000)+1.00000) - 4.00000; ALGEBRAIC[24] = (ALGEBRAIC[23]<=- 2.00000 ? 0.0100000 : ALGEBRAIC[23]>- 2.00000&&ALGEBRAIC[23]<=1.00000 ? 0.0100000+( (3.60000 - 0.0100000)*(ALGEBRAIC[23] - - 2.00000))/(1.00000 - - 2.00000) : ALGEBRAIC[23]>1.00000&&ALGEBRAIC[23]<=5.00000 ? 3.60000+( (9.40000 - 3.60000)*(ALGEBRAIC[23] - 1.00000))/(5.00000 - 1.00000) : ALGEBRAIC[23]>5.00000&&ALGEBRAIC[23]<=8.00000 ? 9.40000+( (11.6000 - 9.40000)*(ALGEBRAIC[23] - 5.00000))/(8.00000 - 5.00000) : ALGEBRAIC[23]>8.00000&&ALGEBRAIC[23]<=12.0000 ? 11.6000+( (13.5000 - 11.6000)*(ALGEBRAIC[23] - 8.00000))/(12.0000 - 8.00000) : 13.5000); ALGEBRAIC[34] = STATES[1]+ ALGEBRAIC[0]*0.261000; ALGEBRAIC[35] = ALGEBRAIC[34] - 0.495000; ALGEBRAIC[36] = ALGEBRAIC[35]/0.00355000; ALGEBRAIC[37] = ALGEBRAIC[36]/( CONSTANTS[8]*CONSTANTS[15]); ALGEBRAIC[38] = (ALGEBRAIC[37]<=0.00000 ? 1.04000 : ALGEBRAIC[37]>0.00000&&ALGEBRAIC[37]<=60.0000 ? 1.04000+( (1.02500 - 1.04000)*(ALGEBRAIC[37] - 0.00000))/(60.0000 - 0.00000) : ALGEBRAIC[37]>60.0000&&ALGEBRAIC[37]<=125.000 ? 1.02500+( (0.970000 - 1.02500)*(ALGEBRAIC[37] - 60.0000))/(125.000 - 60.0000) : ALGEBRAIC[37]>125.000&&ALGEBRAIC[37]<=160.000 ? 0.970000+( (0.880000 - 0.970000)*(ALGEBRAIC[37] - 125.000))/(160.000 - 125.000) : ALGEBRAIC[37]>160.000&&ALGEBRAIC[37]<=200.000 ? 0.880000+( (0.590000 - 0.880000)*(ALGEBRAIC[37] - 160.000))/(200.000 - 160.000) : ALGEBRAIC[37]>200.000&&ALGEBRAIC[37]<=240.000 ? 0.590000+( (0.00000 - 0.590000)*(ALGEBRAIC[37] - 200.000))/(240.000 - 200.000) : 0.00000); ALGEBRAIC[39] = ALGEBRAIC[38]*ALGEBRAIC[24]*CONSTANTS[8]*CONSTANTS[28]*CONSTANTS[11]*CONSTANTS[12]; ALGEBRAIC[40] = (ALGEBRAIC[17] - ALGEBRAIC[36])/3.00000; ALGEBRAIC[41] = (ALGEBRAIC[40]>0.00000 ? ALGEBRAIC[39]+ALGEBRAIC[40] : ALGEBRAIC[39]); ALGEBRAIC[6] = STATES[3]+ ALGEBRAIC[0]*0.155000; ALGEBRAIC[7] = ALGEBRAIC[6] - 0.306250; ALGEBRAIC[8] = ALGEBRAIC[7]/0.00480000; ALGEBRAIC[11] = 0.0260000*ALGEBRAIC[8]; ALGEBRAIC[12] = (ALGEBRAIC[11]<1.00000e-05 ? 1.00000e-05 : ALGEBRAIC[11]); ALGEBRAIC[13] = pow(ALGEBRAIC[12], 0.500000); ALGEBRAIC[14] = 1.00000/ALGEBRAIC[13]; ALGEBRAIC[18] = ALGEBRAIC[17]+18.0000; ALGEBRAIC[19] = 1.00000/( ALGEBRAIC[18]*0.0357000); ALGEBRAIC[20] = ALGEBRAIC[19]+ALGEBRAIC[14]; ALGEBRAIC[21] = ALGEBRAIC[8] - ALGEBRAIC[17]; ALGEBRAIC[22] = ALGEBRAIC[21]/ALGEBRAIC[20]; ALGEBRAIC[43] = ALGEBRAIC[22] - ALGEBRAIC[41]; ALGEBRAIC[25] = STATES[0]+ ALGEBRAIC[0]*0.398600; ALGEBRAIC[26] = ((((ALGEBRAIC[25] - CONSTANTS[24]) - CONSTANTS[40]) - CONSTANTS[23]) - CONSTANTS[22]) - CONSTANTS[6]; ALGEBRAIC[27] = (ALGEBRAIC[26]<0.000100000 ? 0.000100000 : ALGEBRAIC[26]); ALGEBRAIC[28] = 3.70000+(ALGEBRAIC[27] - 0.740000)/CONSTANTS[30]; ALGEBRAIC[29] = (ALGEBRAIC[28]<0.000100000 ? 0.000100000 : ALGEBRAIC[28]); ALGEBRAIC[31] = 0.740000/pow(ALGEBRAIC[29]/( CONSTANTS[19]*3.70000), 0.500000); ALGEBRAIC[1] = STATES[4]+ ALGEBRAIC[0]*0.0574000; ALGEBRAIC[2] = ALGEBRAIC[1] - 0.100000; ALGEBRAIC[3] = ALGEBRAIC[2]/0.00500000; ALGEBRAIC[30] = (ALGEBRAIC[3]<CONSTANTS[31] ? CONSTANTS[31] : ALGEBRAIC[3]); ALGEBRAIC[32] = ALGEBRAIC[29] - ALGEBRAIC[30]; ALGEBRAIC[33] = ALGEBRAIC[32]/ALGEBRAIC[31]; ALGEBRAIC[9] = (ALGEBRAIC[8]/CONSTANTS[8])/CONSTANTS[15]; ALGEBRAIC[10] = (ALGEBRAIC[9]<=0.00000 ? 1.06000 : ALGEBRAIC[9]>0.00000&&ALGEBRAIC[9]<=32.0000 ? 1.06000+( (0.970000 - 1.06000)*(ALGEBRAIC[9] - 0.00000))/(32.0000 - 0.00000) : ALGEBRAIC[9]>32.0000&&ALGEBRAIC[9]<=38.4000 ? 0.970000+( (0.930000 - 0.970000)*(ALGEBRAIC[9] - 32.0000))/(38.4000 - 32.0000) : ALGEBRAIC[9]>38.4000&&ALGEBRAIC[9]<=48.0000 ? 0.930000+( (0.800000 - 0.930000)*(ALGEBRAIC[9] - 38.4000))/(48.0000 - 38.4000) : ALGEBRAIC[9]>48.0000&&ALGEBRAIC[9]<=60.8000 ? 0.800000+( (0.460000 - 0.800000)*(ALGEBRAIC[9] - 48.0000))/(60.8000 - 48.0000) : ALGEBRAIC[9]>60.8000&&ALGEBRAIC[9]<=72.0000 ? 0.460000+( (0.00000 - 0.460000)*(ALGEBRAIC[9] - 60.8000))/(72.0000 - 60.8000) : 0.00000); ALGEBRAIC[42] = (1.00000 - CONSTANTS[26])*CONSTANTS[8]*ALGEBRAIC[10]*CONSTANTS[27]*CONSTANTS[11]*CONSTANTS[13]+( CONSTANTS[26]*ALGEBRAIC[41])/ALGEBRAIC[24]; ALGEBRAIC[4] = (ALGEBRAIC[3]+8.00000)*( CONSTANTS[25]*(CONSTANTS[7] - 1.00000)+1.00000) - 8.00000; ALGEBRAIC[5] = (ALGEBRAIC[4]<=- 8.00000 ? 0.00000 : ALGEBRAIC[4]>- 8.00000&&ALGEBRAIC[4]<=- 6.00000 ? 0.00000+( (0.750000 - 0.00000)*(ALGEBRAIC[4] - - 8.00000))/(- 6.00000 - - 8.00000) : ALGEBRAIC[4]>- 6.00000&&ALGEBRAIC[4]<=- 2.00000 ? 0.750000+( (2.60000 - 0.750000)*(ALGEBRAIC[4] - - 6.00000))/(- 2.00000 - - 6.00000) : ALGEBRAIC[4]>- 2.00000&&ALGEBRAIC[4]<=4.00000 ? 2.60000+( (9.80000 - 2.60000)*(ALGEBRAIC[4] - - 2.00000))/(4.00000 - - 2.00000) : ALGEBRAIC[4]>4.00000&&ALGEBRAIC[4]<=12.0000 ? 9.80000+( (13.5000 - 9.80000)*(ALGEBRAIC[4] - 4.00000))/(12.0000 - 4.00000) : 13.5000); ALGEBRAIC[45] = ALGEBRAIC[5]*ALGEBRAIC[42]; ALGEBRAIC[47] = ALGEBRAIC[33] - ALGEBRAIC[45]; ALGEBRAIC[48] = ALGEBRAIC[45] - ALGEBRAIC[22]; ALGEBRAIC[44] = ALGEBRAIC[36] - ALGEBRAIC[3]; ALGEBRAIC[56] = ALGEBRAIC[44]*CONSTANTS[39]; ALGEBRAIC[51] = ALGEBRAIC[36] - ALGEBRAIC[29]; ALGEBRAIC[46] = pow(ALGEBRAIC[36]/100.000, CONSTANTS[35]); ALGEBRAIC[49] = (( CONSTANTS[2]*CONSTANTS[0]*CONSTANTS[9]*CONSTANTS[19]*CONSTANTS[16])/ALGEBRAIC[46])/CONSTANTS[5]; ALGEBRAIC[52] = CONSTANTS[38]*CONSTANTS[1]*ALGEBRAIC[49]*CONSTANTS[14]*CONSTANTS[37]; ALGEBRAIC[54] = ALGEBRAIC[51]/ALGEBRAIC[52]; ALGEBRAIC[50] = CONSTANTS[36]*CONSTANTS[4]*ALGEBRAIC[49]*CONSTANTS[14]*CONSTANTS[37]; ALGEBRAIC[53] = ALGEBRAIC[50]+CONSTANTS[44]; ALGEBRAIC[55] = ALGEBRAIC[51]/ALGEBRAIC[53]; ALGEBRAIC[57] = ALGEBRAIC[54]+ALGEBRAIC[55]+CONSTANTS[18]; ALGEBRAIC[58] = ALGEBRAIC[57]+ALGEBRAIC[56]; ALGEBRAIC[59] = ALGEBRAIC[58] - ALGEBRAIC[33]; ALGEBRAIC[60] = ALGEBRAIC[41] - ALGEBRAIC[58]; ALGEBRAIC[61] = ALGEBRAIC[44]/ALGEBRAIC[58]; }