\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 r503776 = -1.0;
double r503777 = 1.0;
double r503778 = /* ERROR: no complex support in C */;
double r503779 = r503778 * r503778;
double r503780 = r503779 * r503778;
double r503781 = r503780 * r503778;
double r503782 = r503781 * r503778;
double r503783 = r503782 * r503778;
double r503784 = 6.0;
double r503785 = 0.0;
double r503786 = /* ERROR: no complex support in C */;
double r503787 = r503786 * r503778;
double r503788 = r503787 * r503778;
double r503789 = r503788 * r503778;
double r503790 = r503789 * r503778;
double r503791 = r503790 * r503778;
double r503792 = r503783 + r503791;
double r503793 = 15.0;
double r503794 = /* ERROR: no complex support in C */;
double r503795 = r503794 * r503778;
double r503796 = r503795 * r503778;
double r503797 = r503796 * r503778;
double r503798 = r503797 * r503778;
double r503799 = r503792 + r503798;
double r503800 = 20.0;
double r503801 = /* ERROR: no complex support in C */;
double r503802 = r503801 * r503778;
double r503803 = r503802 * r503778;
double r503804 = r503803 * r503778;
double r503805 = r503799 + r503804;
double r503806 = r503805 + r503796;
double r503807 = r503806 + r503787;
double r503808 = /* ERROR: no complex support in C */;
double r503809 = r503807 + r503808;
double r503810 = /* ERROR: no complex support in C */;
return r503810;
}
double f() {
double r503811 = -1.0;
double r503812 = 0.0;
double r503813 = /* ERROR: no complex support in C */;
double r503814 = /* ERROR: no complex support in C */;
return r503814;
}
Initial program 0
Simplified0
Final simplification0
herbie shell --seed 2019146 +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 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))))