\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(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(20 \cdot -1 - 0.0 \cdot 1\right) - \left(\left(-1 + -1\right) \cdot 1\right) \cdot \mathsf{fma}\left(20, 1, -1 \cdot 0.0\right)\right) + \mathsf{fma}\left(20 \cdot -1 - 0.0 \cdot 1, \left(-1 + -1\right) \cdot 1, \mathsf{fma}\left(20, 1, -1 \cdot 0.0\right) \cdot \left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right)\right) i\right) + \left(\left(\left(\left(\left(6 + \left(-1 \cdot 15 - 0.0 \cdot 1\right)\right) + \left(\mathsf{fma}\left(1, 15, -1 \cdot 0.0\right) + 0.0\right) i\right) + \left(\left(\left(-1 + 1\right) \cdot \left(-1 - 1\right) + \left(-1 + -1\right) \cdot 1 i\right) \cdot \left(\left(\left(-1 \cdot 15 - 0.0 \cdot 1\right) + \mathsf{fma}\left(1, 15, -1 \cdot 0.0\right) i\right) + \left(\left(\left(-1 + 1\right) \cdot \left(-1 - 1\right) + \left(-1 + -1\right) \cdot 1 i\right) \cdot \left(\left(6 + 0.0 i\right) + \left(-1 + 1 i\right)\right)\right)\right)\right)\right) \cdot \left(-1 + 1 i\right)\right) + \left(1 + 0.0 i\right)\right)\right))double f() {
double r1897020 = -1.0;
double r1897021 = 1.0;
double r1897022 = /* ERROR: no complex support in C */;
double r1897023 = r1897022 * r1897022;
double r1897024 = r1897023 * r1897022;
double r1897025 = r1897024 * r1897022;
double r1897026 = r1897025 * r1897022;
double r1897027 = r1897026 * r1897022;
double r1897028 = 6.0;
double r1897029 = 0.0;
double r1897030 = /* ERROR: no complex support in C */;
double r1897031 = r1897030 * r1897022;
double r1897032 = r1897031 * r1897022;
double r1897033 = r1897032 * r1897022;
double r1897034 = r1897033 * r1897022;
double r1897035 = r1897034 * r1897022;
double r1897036 = r1897027 + r1897035;
double r1897037 = 15.0;
double r1897038 = /* ERROR: no complex support in C */;
double r1897039 = r1897038 * r1897022;
double r1897040 = r1897039 * r1897022;
double r1897041 = r1897040 * r1897022;
double r1897042 = r1897041 * r1897022;
double r1897043 = r1897036 + r1897042;
double r1897044 = 20.0;
double r1897045 = /* ERROR: no complex support in C */;
double r1897046 = r1897045 * r1897022;
double r1897047 = r1897046 * r1897022;
double r1897048 = r1897047 * r1897022;
double r1897049 = r1897043 + r1897048;
double r1897050 = r1897049 + r1897040;
double r1897051 = r1897050 + r1897031;
double r1897052 = /* ERROR: no complex support in C */;
double r1897053 = r1897051 + r1897052;
double r1897054 = /* ERROR: no complex support in C */;
return r1897054;
}
double f() {
double r1897055 = -1.0;
double r1897056 = 1.0;
double r1897057 = r1897055 + r1897056;
double r1897058 = r1897055 - r1897056;
double r1897059 = r1897057 * r1897058;
double r1897060 = 20.0;
double r1897061 = r1897060 * r1897055;
double r1897062 = 0.0;
double r1897063 = r1897062 * r1897056;
double r1897064 = r1897061 - r1897063;
double r1897065 = r1897059 * r1897064;
double r1897066 = r1897055 + r1897055;
double r1897067 = r1897066 * r1897056;
double r1897068 = r1897055 * r1897062;
double r1897069 = fma(r1897060, r1897056, r1897068);
double r1897070 = r1897067 * r1897069;
double r1897071 = r1897065 - r1897070;
double r1897072 = r1897069 * r1897059;
double r1897073 = fma(r1897064, r1897067, r1897072);
double r1897074 = /* ERROR: no complex support in C */;
double r1897075 = 6.0;
double r1897076 = 15.0;
double r1897077 = r1897055 * r1897076;
double r1897078 = r1897077 - r1897063;
double r1897079 = r1897075 + r1897078;
double r1897080 = fma(r1897056, r1897076, r1897068);
double r1897081 = r1897080 + r1897062;
double r1897082 = /* ERROR: no complex support in C */;
double r1897083 = /* ERROR: no complex support in C */;
double r1897084 = /* ERROR: no complex support in C */;
double r1897085 = /* ERROR: no complex support in C */;
double r1897086 = /* ERROR: no complex support in C */;
double r1897087 = r1897085 + r1897086;
double r1897088 = r1897083 * r1897087;
double r1897089 = r1897084 + r1897088;
double r1897090 = r1897083 * r1897089;
double r1897091 = r1897082 + r1897090;
double r1897092 = r1897091 * r1897086;
double r1897093 = /* ERROR: no complex support in C */;
double r1897094 = r1897092 + r1897093;
double r1897095 = r1897074 + r1897094;
double r1897096 = /* ERROR: no complex support in C */;
return r1897096;
}
Initial program 0
Simplified0
Final simplification0
herbie shell --seed 2019172 +o rules:numerics
(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))))