\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 + 1 i\right) \cdot \left(\left(\left(-1 + 1 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(\left(\left(15 + 0.0 i\right) \cdot \left(-1 + 1 i\right)\right) + \left(\left(\left(-1 + 1 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(\left(-1 + 1 i\right) + \left(6 + 0.0 i\right)\right)\right)\right)\right)\right) + \left(\left(-1 + 1 i\right) \cdot \left(\left(\left(-1 + 1 i\right) \cdot \left(\left(\left(20 + 0.0 i\right) \cdot \left(-1 + 1 i\right)\right) + \left(15 + 0.0 i\right)\right)\right) + \left(6 + 0.0 i\right)\right)\right)\right) + \left(1 + 0.0 i\right)\right))
double f() {
double r9946 = -1.0;
double r9947 = 1.0;
double r9948 = /* ERROR: no complex support in C */;
double r9949 = r9948 * r9948;
double r9950 = r9949 * r9948;
double r9951 = r9950 * r9948;
double r9952 = r9951 * r9948;
double r9953 = r9952 * r9948;
double r9954 = 6.0;
double r9955 = 0.0;
double r9956 = /* ERROR: no complex support in C */;
double r9957 = r9956 * r9948;
double r9958 = r9957 * r9948;
double r9959 = r9958 * r9948;
double r9960 = r9959 * r9948;
double r9961 = r9960 * r9948;
double r9962 = r9953 + r9961;
double r9963 = 15.0;
double r9964 = /* ERROR: no complex support in C */;
double r9965 = r9964 * r9948;
double r9966 = r9965 * r9948;
double r9967 = r9966 * r9948;
double r9968 = r9967 * r9948;
double r9969 = r9962 + r9968;
double r9970 = 20.0;
double r9971 = /* ERROR: no complex support in C */;
double r9972 = r9971 * r9948;
double r9973 = r9972 * r9948;
double r9974 = r9973 * r9948;
double r9975 = r9969 + r9974;
double r9976 = r9975 + r9966;
double r9977 = r9976 + r9957;
double r9978 = /* ERROR: no complex support in C */;
double r9979 = r9977 + r9978;
double r9980 = /* ERROR: no complex support in C */;
return r9980;
}
double f() {
double r9981 = -1.0;
double r9982 = 1.0;
double r9983 = /* ERROR: no complex support in C */;
double r9984 = r9983 * r9983;
double r9985 = 15.0;
double r9986 = 0.0;
double r9987 = /* ERROR: no complex support in C */;
double r9988 = r9987 * r9983;
double r9989 = 6.0;
double r9990 = /* ERROR: no complex support in C */;
double r9991 = r9983 + r9990;
double r9992 = r9984 * r9991;
double r9993 = r9988 + r9992;
double r9994 = r9984 * r9993;
double r9995 = r9983 * r9994;
double r9996 = 20.0;
double r9997 = /* ERROR: no complex support in C */;
double r9998 = r9997 * r9983;
double r9999 = r9998 + r9987;
double r10000 = r9983 * r9999;
double r10001 = r10000 + r9990;
double r10002 = r9983 * r10001;
double r10003 = r9995 + r10002;
double r10004 = /* ERROR: no complex support in C */;
double r10005 = r10003 + r10004;
double r10006 = /* ERROR: no complex support in C */;
return r10006;
}
Initial program 0
Simplified0
Final simplification0
herbie shell --seed 2019315 +o rules:numerics
(FPCore ()
:name "3.9.1 imaginary part (p56)"
:precision binary64
(im (+ (+ (+ (+ (+ (+ (* (* (* (* (* (complex -1 1) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (* (* (* (* (* (complex 6 0.0) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1))) (* (* (* (* (complex 15 0.0) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1))) (* (* (* (complex 20 0.0) (complex -1 1)) (complex -1 1)) (complex -1 1))) (* (* (complex 15 0.0) (complex -1 1)) (complex -1 1))) (* (complex 6 0.0) (complex -1 1))) (complex 1 0.0))))