\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(\left(1 + 0.0 i\right) + \left(\left(-1 \cdot 6 - 1 \cdot 0.0\right) + \left(1 \cdot 6 + 0.0 \cdot -1\right) i\right)\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(-1 \cdot 20 - 1 \cdot 0.0\right) + 15\right) + \left(0.0 + \left(0.0 \cdot -1 + 20 \cdot 1\right)\right) i\right)\right)\right) + \left(\left(\left(\left(15 + 0.0 i\right) + \left(\left(-1 \cdot 6 - 1 \cdot 0.0\right) + \left(1 \cdot 6 + 0.0 \cdot -1\right) i\right)\right) \cdot \left(\left(\left(1 \cdot -1 + 1 \cdot -1\right) + \left(1 + -1\right) \cdot \left(-1 - 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(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot -1 + 1 \cdot -1\right) + \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot -1 + 1 \cdot -1\right)\right) i\right)\right) + \left(\left(\left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(\left(\left(1 \cdot -1 + 1 \cdot -1\right) + \left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right) - \left(1 \cdot -1 + 1 \cdot -1\right)\right)\right) - \left(1 \cdot -1 + 1 \cdot -1\right) \cdot \left(\left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot -1 + 1 \cdot -1\right) + \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot -1 + 1 \cdot -1\right)\right)\right) + \left(\left(\left(\left(1 \cdot -1 + 1 \cdot -1\right) + \left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right) - \left(1 \cdot -1 + 1 \cdot -1\right)\right)\right) \cdot \left(1 \cdot -1 + 1 \cdot -1\right) + \left(\left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot -1 + 1 \cdot -1\right) + \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot -1 + 1 \cdot -1\right)\right) \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right)\right) i\right)\right)\right))
double f() {
double r1050535 = -1.0;
double r1050536 = 1.0;
double r1050537 = /* ERROR: no complex support in C */;
double r1050538 = r1050537 * r1050537;
double r1050539 = r1050538 * r1050537;
double r1050540 = r1050539 * r1050537;
double r1050541 = r1050540 * r1050537;
double r1050542 = r1050541 * r1050537;
double r1050543 = 6.0;
double r1050544 = 0.0;
double r1050545 = /* ERROR: no complex support in C */;
double r1050546 = r1050545 * r1050537;
double r1050547 = r1050546 * r1050537;
double r1050548 = r1050547 * r1050537;
double r1050549 = r1050548 * r1050537;
double r1050550 = r1050549 * r1050537;
double r1050551 = r1050542 + r1050550;
double r1050552 = 15.0;
double r1050553 = /* ERROR: no complex support in C */;
double r1050554 = r1050553 * r1050537;
double r1050555 = r1050554 * r1050537;
double r1050556 = r1050555 * r1050537;
double r1050557 = r1050556 * r1050537;
double r1050558 = r1050551 + r1050557;
double r1050559 = 20.0;
double r1050560 = /* ERROR: no complex support in C */;
double r1050561 = r1050560 * r1050537;
double r1050562 = r1050561 * r1050537;
double r1050563 = r1050562 * r1050537;
double r1050564 = r1050558 + r1050563;
double r1050565 = r1050564 + r1050555;
double r1050566 = r1050565 + r1050546;
double r1050567 = /* ERROR: no complex support in C */;
double r1050568 = r1050566 + r1050567;
double r1050569 = /* ERROR: no complex support in C */;
return r1050569;
}
double f() {
double r1050570 = 1.0;
double r1050571 = 0.0;
double r1050572 = /* ERROR: no complex support in C */;
double r1050573 = -1.0;
double r1050574 = 6.0;
double r1050575 = r1050573 * r1050574;
double r1050576 = r1050570 * r1050571;
double r1050577 = r1050575 - r1050576;
double r1050578 = r1050570 * r1050574;
double r1050579 = r1050571 * r1050573;
double r1050580 = r1050578 + r1050579;
double r1050581 = /* ERROR: no complex support in C */;
double r1050582 = r1050572 + r1050581;
double r1050583 = r1050570 + r1050573;
double r1050584 = r1050573 - r1050570;
double r1050585 = r1050583 * r1050584;
double r1050586 = r1050570 * r1050573;
double r1050587 = r1050586 + r1050586;
double r1050588 = /* ERROR: no complex support in C */;
double r1050589 = 20.0;
double r1050590 = r1050573 * r1050589;
double r1050591 = r1050590 - r1050576;
double r1050592 = 15.0;
double r1050593 = r1050591 + r1050592;
double r1050594 = r1050589 * r1050570;
double r1050595 = r1050579 + r1050594;
double r1050596 = r1050571 + r1050595;
double r1050597 = /* ERROR: no complex support in C */;
double r1050598 = r1050588 * r1050597;
double r1050599 = r1050582 + r1050598;
double r1050600 = /* ERROR: no complex support in C */;
double r1050601 = r1050600 + r1050581;
double r1050602 = r1050587 + r1050585;
double r1050603 = r1050585 - r1050587;
double r1050604 = r1050602 * r1050603;
double r1050605 = r1050585 * r1050587;
double r1050606 = r1050605 + r1050605;
double r1050607 = /* ERROR: no complex support in C */;
double r1050608 = r1050601 * r1050607;
double r1050609 = r1050585 * r1050604;
double r1050610 = r1050587 * r1050606;
double r1050611 = r1050609 - r1050610;
double r1050612 = r1050604 * r1050587;
double r1050613 = r1050606 * r1050585;
double r1050614 = r1050612 + r1050613;
double r1050615 = /* ERROR: no complex support in C */;
double r1050616 = r1050608 + r1050615;
double r1050617 = r1050599 + r1050616;
double r1050618 = /* ERROR: no complex support in C */;
return r1050618;
}
Initial program 0
Simplified0
Final simplification0
herbie shell --seed 2019171
(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))))