\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 r1036952 = -1.0;
double r1036953 = 1.0;
double r1036954 = /* ERROR: no complex support in C */;
double r1036955 = r1036954 * r1036954;
double r1036956 = r1036955 * r1036954;
double r1036957 = r1036956 * r1036954;
double r1036958 = r1036957 * r1036954;
double r1036959 = r1036958 * r1036954;
double r1036960 = 6.0;
double r1036961 = 0.0;
double r1036962 = /* ERROR: no complex support in C */;
double r1036963 = r1036962 * r1036954;
double r1036964 = r1036963 * r1036954;
double r1036965 = r1036964 * r1036954;
double r1036966 = r1036965 * r1036954;
double r1036967 = r1036966 * r1036954;
double r1036968 = r1036959 + r1036967;
double r1036969 = 15.0;
double r1036970 = /* ERROR: no complex support in C */;
double r1036971 = r1036970 * r1036954;
double r1036972 = r1036971 * r1036954;
double r1036973 = r1036972 * r1036954;
double r1036974 = r1036973 * r1036954;
double r1036975 = r1036968 + r1036974;
double r1036976 = 20.0;
double r1036977 = /* ERROR: no complex support in C */;
double r1036978 = r1036977 * r1036954;
double r1036979 = r1036978 * r1036954;
double r1036980 = r1036979 * r1036954;
double r1036981 = r1036975 + r1036980;
double r1036982 = r1036981 + r1036972;
double r1036983 = r1036982 + r1036963;
double r1036984 = /* ERROR: no complex support in C */;
double r1036985 = r1036983 + r1036984;
double r1036986 = /* ERROR: no complex support in C */;
return r1036986;
}
double f() {
double r1036987 = -1.0;
double r1036988 = 0.0;
double r1036989 = /* ERROR: no complex support in C */;
double r1036990 = /* ERROR: no complex support in C */;
return r1036990;
}
Initial program 0
Simplified0
Final simplification0
herbie shell --seed 2019138 +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))))