\Re(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(-1 + 1 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) + \left(\left(\left(\left(\left(\left(6 + 0.0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(\left(\left(\left(\left(15 + 0.0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(\left(\left(\left(20 + 0.0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(\left(\left(15 + 0.0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(\left(6 + 0.0 i\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(1 + 0.0 i\right)\right))
\Re(\left(\left(\left(\left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(20 \cdot -1 - 0.0 \cdot 1\right) - \left(\left(-1 + -1\right) \cdot 1\right) \cdot \mathsf{fma}\left(20, 1, -1 \cdot 0.0\right)\right) + \mathsf{fma}\left(20 \cdot -1 - 0.0 \cdot 1, \left(-1 + -1\right) \cdot 1, \mathsf{fma}\left(20, 1, -1 \cdot 0.0\right) \cdot \left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right)\right) i\right) + \left(\left(\left(\left(\left(6 + \left(-1 \cdot 15 - 0.0 \cdot 1\right)\right) + \left(\mathsf{fma}\left(1, 15, -1 \cdot 0.0\right) + 0.0\right) i\right) + \left(\left(\left(-1 + 1\right) \cdot \left(-1 - 1\right) + \left(-1 + -1\right) \cdot 1 i\right) \cdot \left(\left(\left(-1 \cdot 15 - 0.0 \cdot 1\right) + \mathsf{fma}\left(1, 15, -1 \cdot 0.0\right) i\right) + \left(\left(\left(-1 + 1\right) \cdot \left(-1 - 1\right) + \left(-1 + -1\right) \cdot 1 i\right) \cdot \left(\left(6 + 0.0 i\right) + \left(-1 + 1 i\right)\right)\right)\right)\right)\right) \cdot \left(-1 + 1 i\right)\right) + \left(1 + 0.0 i\right)\right)\right))double f() {
double r1050098 = -1.0;
double r1050099 = 1.0;
double r1050100 = /* ERROR: no complex support in C */;
double r1050101 = r1050100 * r1050100;
double r1050102 = r1050101 * r1050100;
double r1050103 = r1050102 * r1050100;
double r1050104 = r1050103 * r1050100;
double r1050105 = r1050104 * r1050100;
double r1050106 = 6.0;
double r1050107 = 0.0;
double r1050108 = /* ERROR: no complex support in C */;
double r1050109 = r1050108 * r1050100;
double r1050110 = r1050109 * r1050100;
double r1050111 = r1050110 * r1050100;
double r1050112 = r1050111 * r1050100;
double r1050113 = r1050112 * r1050100;
double r1050114 = r1050105 + r1050113;
double r1050115 = 15.0;
double r1050116 = /* ERROR: no complex support in C */;
double r1050117 = r1050116 * r1050100;
double r1050118 = r1050117 * r1050100;
double r1050119 = r1050118 * r1050100;
double r1050120 = r1050119 * r1050100;
double r1050121 = r1050114 + r1050120;
double r1050122 = 20.0;
double r1050123 = /* ERROR: no complex support in C */;
double r1050124 = r1050123 * r1050100;
double r1050125 = r1050124 * r1050100;
double r1050126 = r1050125 * r1050100;
double r1050127 = r1050121 + r1050126;
double r1050128 = r1050127 + r1050118;
double r1050129 = r1050128 + r1050109;
double r1050130 = /* ERROR: no complex support in C */;
double r1050131 = r1050129 + r1050130;
double r1050132 = /* ERROR: no complex support in C */;
return r1050132;
}
double f() {
double r1050133 = -1.0;
double r1050134 = 1.0;
double r1050135 = r1050133 + r1050134;
double r1050136 = r1050133 - r1050134;
double r1050137 = r1050135 * r1050136;
double r1050138 = 20.0;
double r1050139 = r1050138 * r1050133;
double r1050140 = 0.0;
double r1050141 = r1050140 * r1050134;
double r1050142 = r1050139 - r1050141;
double r1050143 = r1050137 * r1050142;
double r1050144 = r1050133 + r1050133;
double r1050145 = r1050144 * r1050134;
double r1050146 = r1050133 * r1050140;
double r1050147 = fma(r1050138, r1050134, r1050146);
double r1050148 = r1050145 * r1050147;
double r1050149 = r1050143 - r1050148;
double r1050150 = r1050147 * r1050137;
double r1050151 = fma(r1050142, r1050145, r1050150);
double r1050152 = /* ERROR: no complex support in C */;
double r1050153 = 6.0;
double r1050154 = 15.0;
double r1050155 = r1050133 * r1050154;
double r1050156 = r1050155 - r1050141;
double r1050157 = r1050153 + r1050156;
double r1050158 = fma(r1050134, r1050154, r1050146);
double r1050159 = r1050158 + r1050140;
double r1050160 = /* ERROR: no complex support in C */;
double r1050161 = /* ERROR: no complex support in C */;
double r1050162 = /* ERROR: no complex support in C */;
double r1050163 = /* ERROR: no complex support in C */;
double r1050164 = /* ERROR: no complex support in C */;
double r1050165 = r1050163 + r1050164;
double r1050166 = r1050161 * r1050165;
double r1050167 = r1050162 + r1050166;
double r1050168 = r1050161 * r1050167;
double r1050169 = r1050160 + r1050168;
double r1050170 = r1050169 * r1050164;
double r1050171 = /* ERROR: no complex support in C */;
double r1050172 = r1050170 + r1050171;
double r1050173 = r1050152 + r1050172;
double r1050174 = /* ERROR: no complex support in C */;
return r1050174;
}
Initial program 0
Simplified0
Final simplification0
herbie shell --seed 2019174 +o rules:numerics
(FPCore ()
:name "3.9.1 real part (p56)"
(re (+ (+ (+ (+ (+ (+ (* (* (* (* (* (complex -1.0 1.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (* (* (* (* (* (complex 6.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0))) (* (* (* (* (complex 15.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0))) (* (* (* (complex 20.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0))) (* (* (complex 15.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0))) (* (complex 6.0 0.0) (complex -1.0 1.0))) (complex 1.0 0.0))))