\Im(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(-1.0 + 1.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) + \left(\left(\left(\left(\left(\left(6.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(\left(\left(\left(15.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(\left(\left(20.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(\left(15.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(\left(6.0 + 0.0 i\right) \cdot \left(-1.0 + 1.0 i\right)\right)\right) + \left(1.0 + 0.0 i\right)\right))
\Im(\left(\left(\left(-1.0 \cdot 6.0 - 0.0 \cdot 1.0\right) + \mathsf{fma}\left(0.0, -1.0, 6.0 \cdot 1.0\right) i\right) + \left(\left(\left(1.0 + \left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot 15.0 - \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) \cdot 0.0\right)\right) + \left(\mathsf{fma}\left(15.0, 1.0 \cdot -1.0 + 1.0 \cdot -1.0, 0.0 \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right)\right) + 0.0\right) i\right) + \left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) + \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) i\right) \cdot \left(\left(\left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) + \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right)\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right) - \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right)\right) + \left(\left(-1.0 \cdot 6.0 - 0.0 \cdot 1.0\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) - \mathsf{fma}\left(0.0, -1.0, 6.0 \cdot 1.0\right) \cdot \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right)\right)\right) + \left(\left(-1.0 \cdot 20.0 - 0.0 \cdot 1.0\right) + \left(\left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) \cdot 15.0 - \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) \cdot 0.0\right)\right)\right) + \left(\left(\left(\left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right) + \left(1.0 \cdot -1.0 + 1.0 \cdot -1.0\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right)\right) + \mathsf{fma}\left(-1.0 \cdot 6.0 - 0.0 \cdot 1.0, 1.0 \cdot -1.0 + 1.0 \cdot -1.0, \mathsf{fma}\left(0.0, -1.0, 6.0 \cdot 1.0\right) \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right)\right)\right) + \left(\mathsf{fma}\left(20.0, 1.0, 0.0 \cdot -1.0\right) + \mathsf{fma}\left(15.0, 1.0 \cdot -1.0 + 1.0 \cdot -1.0, 0.0 \cdot \left(\left(1.0 + -1.0\right) \cdot \left(-1.0 - 1.0\right)\right)\right)\right)\right) i\right)\right)\right)\right))double f() {
double r1986310 = -1.0;
double r1986311 = 1.0;
double r1986312 = /* ERROR: no complex support in C */;
double r1986313 = r1986312 * r1986312;
double r1986314 = r1986313 * r1986312;
double r1986315 = r1986314 * r1986312;
double r1986316 = r1986315 * r1986312;
double r1986317 = r1986316 * r1986312;
double r1986318 = 6.0;
double r1986319 = 0.0;
double r1986320 = /* ERROR: no complex support in C */;
double r1986321 = r1986320 * r1986312;
double r1986322 = r1986321 * r1986312;
double r1986323 = r1986322 * r1986312;
double r1986324 = r1986323 * r1986312;
double r1986325 = r1986324 * r1986312;
double r1986326 = r1986317 + r1986325;
double r1986327 = 15.0;
double r1986328 = /* ERROR: no complex support in C */;
double r1986329 = r1986328 * r1986312;
double r1986330 = r1986329 * r1986312;
double r1986331 = r1986330 * r1986312;
double r1986332 = r1986331 * r1986312;
double r1986333 = r1986326 + r1986332;
double r1986334 = 20.0;
double r1986335 = /* ERROR: no complex support in C */;
double r1986336 = r1986335 * r1986312;
double r1986337 = r1986336 * r1986312;
double r1986338 = r1986337 * r1986312;
double r1986339 = r1986333 + r1986338;
double r1986340 = r1986339 + r1986330;
double r1986341 = r1986340 + r1986321;
double r1986342 = /* ERROR: no complex support in C */;
double r1986343 = r1986341 + r1986342;
double r1986344 = /* ERROR: no complex support in C */;
return r1986344;
}
double f() {
double r1986345 = -1.0;
double r1986346 = 6.0;
double r1986347 = r1986345 * r1986346;
double r1986348 = 0.0;
double r1986349 = 1.0;
double r1986350 = r1986348 * r1986349;
double r1986351 = r1986347 - r1986350;
double r1986352 = r1986346 * r1986349;
double r1986353 = fma(r1986348, r1986345, r1986352);
double r1986354 = /* ERROR: no complex support in C */;
double r1986355 = r1986349 + r1986345;
double r1986356 = r1986345 - r1986349;
double r1986357 = r1986355 * r1986356;
double r1986358 = 15.0;
double r1986359 = r1986357 * r1986358;
double r1986360 = r1986349 * r1986345;
double r1986361 = r1986360 + r1986360;
double r1986362 = r1986361 * r1986348;
double r1986363 = r1986359 - r1986362;
double r1986364 = r1986349 + r1986363;
double r1986365 = r1986348 * r1986357;
double r1986366 = fma(r1986358, r1986361, r1986365);
double r1986367 = r1986366 + r1986348;
double r1986368 = /* ERROR: no complex support in C */;
double r1986369 = /* ERROR: no complex support in C */;
double r1986370 = r1986357 + r1986361;
double r1986371 = r1986357 - r1986361;
double r1986372 = r1986370 * r1986371;
double r1986373 = r1986351 * r1986357;
double r1986374 = r1986353 * r1986361;
double r1986375 = r1986373 - r1986374;
double r1986376 = r1986372 + r1986375;
double r1986377 = 20.0;
double r1986378 = r1986345 * r1986377;
double r1986379 = r1986378 - r1986350;
double r1986380 = r1986379 + r1986363;
double r1986381 = r1986376 + r1986380;
double r1986382 = r1986361 * r1986357;
double r1986383 = r1986382 + r1986382;
double r1986384 = r1986353 * r1986357;
double r1986385 = fma(r1986351, r1986361, r1986384);
double r1986386 = r1986383 + r1986385;
double r1986387 = r1986348 * r1986345;
double r1986388 = fma(r1986377, r1986349, r1986387);
double r1986389 = r1986388 + r1986366;
double r1986390 = r1986386 + r1986389;
double r1986391 = /* ERROR: no complex support in C */;
double r1986392 = r1986369 * r1986391;
double r1986393 = r1986368 + r1986392;
double r1986394 = r1986354 + r1986393;
double r1986395 = /* ERROR: no complex support in C */;
return r1986395;
}
Initial program 0
Simplified0
Final simplification0
herbie shell --seed 2019165 +o rules:numerics
(FPCore ()
:name "3.9.1 imaginary part (p56)"
(im (+.c (+.c (+.c (+.c (+.c (+.c (*.c (*.c (*.c (*.c (*.c (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)) (*.c (*.c (*.c (*.c (*.c (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))) (*.c (*.c (*.c (*.c (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))) (*.c (*.c (*.c (complex 20.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0))) (*.c (*.c (complex 15.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0))) (*.c (complex 6.0 0.0) (complex -1.0 1.0))) (complex 1.0 0.0))))