\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 r2102458 = -1.0;
double r2102459 = 1.0;
double r2102460 = /* ERROR: no complex support in C */;
double r2102461 = r2102460 * r2102460;
double r2102462 = r2102461 * r2102460;
double r2102463 = r2102462 * r2102460;
double r2102464 = r2102463 * r2102460;
double r2102465 = r2102464 * r2102460;
double r2102466 = 6.0;
double r2102467 = 0.0;
double r2102468 = /* ERROR: no complex support in C */;
double r2102469 = r2102468 * r2102460;
double r2102470 = r2102469 * r2102460;
double r2102471 = r2102470 * r2102460;
double r2102472 = r2102471 * r2102460;
double r2102473 = r2102472 * r2102460;
double r2102474 = r2102465 + r2102473;
double r2102475 = 15.0;
double r2102476 = /* ERROR: no complex support in C */;
double r2102477 = r2102476 * r2102460;
double r2102478 = r2102477 * r2102460;
double r2102479 = r2102478 * r2102460;
double r2102480 = r2102479 * r2102460;
double r2102481 = r2102474 + r2102480;
double r2102482 = 20.0;
double r2102483 = /* ERROR: no complex support in C */;
double r2102484 = r2102483 * r2102460;
double r2102485 = r2102484 * r2102460;
double r2102486 = r2102485 * r2102460;
double r2102487 = r2102481 + r2102486;
double r2102488 = r2102487 + r2102478;
double r2102489 = r2102488 + r2102469;
double r2102490 = /* ERROR: no complex support in C */;
double r2102491 = r2102489 + r2102490;
double r2102492 = /* ERROR: no complex support in C */;
return r2102492;
}
double f() {
double r2102493 = -1.0;
double r2102494 = 6.0;
double r2102495 = r2102493 * r2102494;
double r2102496 = 0.0;
double r2102497 = 1.0;
double r2102498 = r2102496 * r2102497;
double r2102499 = r2102495 - r2102498;
double r2102500 = r2102494 * r2102497;
double r2102501 = fma(r2102496, r2102493, r2102500);
double r2102502 = /* ERROR: no complex support in C */;
double r2102503 = r2102497 + r2102493;
double r2102504 = r2102493 - r2102497;
double r2102505 = r2102503 * r2102504;
double r2102506 = 15.0;
double r2102507 = r2102505 * r2102506;
double r2102508 = r2102497 * r2102493;
double r2102509 = r2102508 + r2102508;
double r2102510 = r2102509 * r2102496;
double r2102511 = r2102507 - r2102510;
double r2102512 = r2102497 + r2102511;
double r2102513 = r2102496 * r2102505;
double r2102514 = fma(r2102506, r2102509, r2102513);
double r2102515 = r2102514 + r2102496;
double r2102516 = /* ERROR: no complex support in C */;
double r2102517 = /* ERROR: no complex support in C */;
double r2102518 = r2102505 + r2102509;
double r2102519 = r2102505 - r2102509;
double r2102520 = r2102518 * r2102519;
double r2102521 = r2102499 * r2102505;
double r2102522 = r2102501 * r2102509;
double r2102523 = r2102521 - r2102522;
double r2102524 = r2102520 + r2102523;
double r2102525 = 20.0;
double r2102526 = r2102493 * r2102525;
double r2102527 = r2102526 - r2102498;
double r2102528 = r2102527 + r2102511;
double r2102529 = r2102524 + r2102528;
double r2102530 = r2102509 * r2102505;
double r2102531 = r2102530 + r2102530;
double r2102532 = r2102501 * r2102505;
double r2102533 = fma(r2102499, r2102509, r2102532);
double r2102534 = r2102531 + r2102533;
double r2102535 = r2102496 * r2102493;
double r2102536 = fma(r2102525, r2102497, r2102535);
double r2102537 = r2102536 + r2102514;
double r2102538 = r2102534 + r2102537;
double r2102539 = /* ERROR: no complex support in C */;
double r2102540 = r2102517 * r2102539;
double r2102541 = r2102516 + r2102540;
double r2102542 = r2102502 + r2102541;
double r2102543 = /* ERROR: no complex support in C */;
return r2102543;
}
Initial program 0
Simplified0
Final simplification0
herbie shell --seed 2019169 +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))))