\Im(\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))
\Im(\left(\left(\left(-1 \cdot 6 - 0.0 \cdot 1\right) + \mathsf{fma}\left(0.0, -1, 6 \cdot 1\right) i\right) + \left(\left(\left(1 + \left(\left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot 15 - \left(1 \cdot -1 + 1 \cdot -1\right) \cdot 0.0\right)\right) + \left(\mathsf{fma}\left(15, 1 \cdot -1 + 1 \cdot -1, 0.0 \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right)\right) + 0.0\right) i\right) + \left(\left(\left(1 + -1\right) \cdot \left(-1 - 1\right) + \left(1 \cdot -1 + 1 \cdot -1\right) i\right) \cdot \left(\left(\left(\left(\left(1 + -1\right) \cdot \left(-1 - 1\right) + \left(1 \cdot -1 + 1 \cdot -1\right)\right) \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right) - \left(1 \cdot -1 + 1 \cdot -1\right)\right) + \left(\left(-1 \cdot 6 - 0.0 \cdot 1\right) \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) - \mathsf{fma}\left(0.0, -1, 6 \cdot 1\right) \cdot \left(1 \cdot -1 + 1 \cdot -1\right)\right)\right) + \left(\left(-1 \cdot 20 - 0.0 \cdot 1\right) + \left(\left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot 15 - \left(1 \cdot -1 + 1 \cdot -1\right) \cdot 0.0\right)\right)\right) + \left(\left(\left(\left(1 \cdot -1 + 1 \cdot -1\right) \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) + \left(1 \cdot -1 + 1 \cdot -1\right) \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right)\right) + \mathsf{fma}\left(-1 \cdot 6 - 0.0 \cdot 1, 1 \cdot -1 + 1 \cdot -1, \mathsf{fma}\left(0.0, -1, 6 \cdot 1\right) \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right)\right)\right) + \left(\mathsf{fma}\left(20, 1, 0.0 \cdot -1\right) + \mathsf{fma}\left(15, 1 \cdot -1 + 1 \cdot -1, 0.0 \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right)\right)\right)\right) i\right)\right)\right)\right))double f() {
double r1845250 = -1.0;
double r1845251 = 1.0;
double r1845252 = /* ERROR: no complex support in C */;
double r1845253 = r1845252 * r1845252;
double r1845254 = r1845253 * r1845252;
double r1845255 = r1845254 * r1845252;
double r1845256 = r1845255 * r1845252;
double r1845257 = r1845256 * r1845252;
double r1845258 = 6.0;
double r1845259 = 0.0;
double r1845260 = /* ERROR: no complex support in C */;
double r1845261 = r1845260 * r1845252;
double r1845262 = r1845261 * r1845252;
double r1845263 = r1845262 * r1845252;
double r1845264 = r1845263 * r1845252;
double r1845265 = r1845264 * r1845252;
double r1845266 = r1845257 + r1845265;
double r1845267 = 15.0;
double r1845268 = /* ERROR: no complex support in C */;
double r1845269 = r1845268 * r1845252;
double r1845270 = r1845269 * r1845252;
double r1845271 = r1845270 * r1845252;
double r1845272 = r1845271 * r1845252;
double r1845273 = r1845266 + r1845272;
double r1845274 = 20.0;
double r1845275 = /* ERROR: no complex support in C */;
double r1845276 = r1845275 * r1845252;
double r1845277 = r1845276 * r1845252;
double r1845278 = r1845277 * r1845252;
double r1845279 = r1845273 + r1845278;
double r1845280 = r1845279 + r1845270;
double r1845281 = r1845280 + r1845261;
double r1845282 = /* ERROR: no complex support in C */;
double r1845283 = r1845281 + r1845282;
double r1845284 = /* ERROR: no complex support in C */;
return r1845284;
}
double f() {
double r1845285 = -1.0;
double r1845286 = 6.0;
double r1845287 = r1845285 * r1845286;
double r1845288 = 0.0;
double r1845289 = 1.0;
double r1845290 = r1845288 * r1845289;
double r1845291 = r1845287 - r1845290;
double r1845292 = r1845286 * r1845289;
double r1845293 = fma(r1845288, r1845285, r1845292);
double r1845294 = /* ERROR: no complex support in C */;
double r1845295 = r1845289 + r1845285;
double r1845296 = r1845285 - r1845289;
double r1845297 = r1845295 * r1845296;
double r1845298 = 15.0;
double r1845299 = r1845297 * r1845298;
double r1845300 = r1845289 * r1845285;
double r1845301 = r1845300 + r1845300;
double r1845302 = r1845301 * r1845288;
double r1845303 = r1845299 - r1845302;
double r1845304 = r1845289 + r1845303;
double r1845305 = r1845288 * r1845297;
double r1845306 = fma(r1845298, r1845301, r1845305);
double r1845307 = r1845306 + r1845288;
double r1845308 = /* ERROR: no complex support in C */;
double r1845309 = /* ERROR: no complex support in C */;
double r1845310 = r1845297 + r1845301;
double r1845311 = r1845297 - r1845301;
double r1845312 = r1845310 * r1845311;
double r1845313 = r1845291 * r1845297;
double r1845314 = r1845293 * r1845301;
double r1845315 = r1845313 - r1845314;
double r1845316 = r1845312 + r1845315;
double r1845317 = 20.0;
double r1845318 = r1845285 * r1845317;
double r1845319 = r1845318 - r1845290;
double r1845320 = r1845319 + r1845303;
double r1845321 = r1845316 + r1845320;
double r1845322 = r1845301 * r1845297;
double r1845323 = r1845322 + r1845322;
double r1845324 = r1845293 * r1845297;
double r1845325 = fma(r1845291, r1845301, r1845324);
double r1845326 = r1845323 + r1845325;
double r1845327 = r1845288 * r1845285;
double r1845328 = fma(r1845317, r1845289, r1845327);
double r1845329 = r1845328 + r1845306;
double r1845330 = r1845326 + r1845329;
double r1845331 = /* ERROR: no complex support in C */;
double r1845332 = r1845309 * r1845331;
double r1845333 = r1845308 + r1845332;
double r1845334 = r1845294 + r1845333;
double r1845335 = /* ERROR: no complex support in C */;
return r1845335;
}
Initial program 0
Simplified0
Final simplification0
herbie shell --seed 2019172 +o rules:numerics
(FPCore ()
:name "3.9.1 imaginary part (p56)"
(im (+ (+ (+ (+ (+ (+ (* (* (* (* (* (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))))