\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 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 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 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 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(\left(6 + 0 i\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(1 + 0 i\right)\right))
\Im(\left(-1 + 0 i\right))
double f() {
double r740606 = -1.0;
double r740607 = 1.0;
double r740608 = /* ERROR: no complex support in C */;
double r740609 = r740608 * r740608;
double r740610 = r740609 * r740608;
double r740611 = r740610 * r740608;
double r740612 = r740611 * r740608;
double r740613 = r740612 * r740608;
double r740614 = 6.0;
double r740615 = 0.0;
double r740616 = /* ERROR: no complex support in C */;
double r740617 = r740616 * r740608;
double r740618 = r740617 * r740608;
double r740619 = r740618 * r740608;
double r740620 = r740619 * r740608;
double r740621 = r740620 * r740608;
double r740622 = r740613 + r740621;
double r740623 = 15.0;
double r740624 = /* ERROR: no complex support in C */;
double r740625 = r740624 * r740608;
double r740626 = r740625 * r740608;
double r740627 = r740626 * r740608;
double r740628 = r740627 * r740608;
double r740629 = r740622 + r740628;
double r740630 = 20.0;
double r740631 = /* ERROR: no complex support in C */;
double r740632 = r740631 * r740608;
double r740633 = r740632 * r740608;
double r740634 = r740633 * r740608;
double r740635 = r740629 + r740634;
double r740636 = r740635 + r740626;
double r740637 = r740636 + r740617;
double r740638 = /* ERROR: no complex support in C */;
double r740639 = r740637 + r740638;
double r740640 = /* ERROR: no complex support in C */;
return r740640;
}
double f() {
double r740641 = -1.0;
double r740642 = 0.0;
double r740643 = /* ERROR: no complex support in C */;
double r740644 = /* ERROR: no complex support in C */;
return r740644;
}
Initial program 0
Simplified0
Final simplification0
herbie shell --seed 2019142
(FPCore ()
:name "3.9.1 imaginary part (p56)"
(im (+.c (+.c (+.c (+.c (+.c (+.c (*.c (*.c (*.c (*.c (*.c (complex -1 1) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (*.c (*.c (*.c (*.c (*.c (complex 6 0) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1))) (*.c (*.c (*.c (*.c (complex 15 0) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1))) (*.c (*.c (*.c (complex 20 0) (complex -1 1)) (complex -1 1)) (complex -1 1))) (*.c (*.c (complex 15 0) (complex -1 1)) (complex -1 1))) (*.c (complex 6 0) (complex -1 1))) (complex 1 0))))