Average Error: 0 → 0
Time: 24.8s
Precision: 64
\[\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))\]
\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 r1050217 = -1.0;
        double r1050218 = 1.0;
        double r1050219 = /* ERROR: no complex support in C */;
        double r1050220 = r1050219 * r1050219;
        double r1050221 = r1050220 * r1050219;
        double r1050222 = r1050221 * r1050219;
        double r1050223 = r1050222 * r1050219;
        double r1050224 = r1050223 * r1050219;
        double r1050225 = 6.0;
        double r1050226 = 0.0;
        double r1050227 = /* ERROR: no complex support in C */;
        double r1050228 = r1050227 * r1050219;
        double r1050229 = r1050228 * r1050219;
        double r1050230 = r1050229 * r1050219;
        double r1050231 = r1050230 * r1050219;
        double r1050232 = r1050231 * r1050219;
        double r1050233 = r1050224 + r1050232;
        double r1050234 = 15.0;
        double r1050235 = /* ERROR: no complex support in C */;
        double r1050236 = r1050235 * r1050219;
        double r1050237 = r1050236 * r1050219;
        double r1050238 = r1050237 * r1050219;
        double r1050239 = r1050238 * r1050219;
        double r1050240 = r1050233 + r1050239;
        double r1050241 = 20.0;
        double r1050242 = /* ERROR: no complex support in C */;
        double r1050243 = r1050242 * r1050219;
        double r1050244 = r1050243 * r1050219;
        double r1050245 = r1050244 * r1050219;
        double r1050246 = r1050240 + r1050245;
        double r1050247 = r1050246 + r1050237;
        double r1050248 = r1050247 + r1050228;
        double r1050249 = /* ERROR: no complex support in C */;
        double r1050250 = r1050248 + r1050249;
        double r1050251 = /* ERROR: no complex support in C */;
        return r1050251;
}

double f() {
        double r1050252 = -1.0;
        double r1050253 = 1.0;
        double r1050254 = r1050252 + r1050253;
        double r1050255 = r1050252 - r1050253;
        double r1050256 = r1050254 * r1050255;
        double r1050257 = 20.0;
        double r1050258 = r1050257 * r1050252;
        double r1050259 = 0.0;
        double r1050260 = r1050259 * r1050253;
        double r1050261 = r1050258 - r1050260;
        double r1050262 = r1050256 * r1050261;
        double r1050263 = r1050252 + r1050252;
        double r1050264 = r1050263 * r1050253;
        double r1050265 = r1050252 * r1050259;
        double r1050266 = fma(r1050257, r1050253, r1050265);
        double r1050267 = r1050264 * r1050266;
        double r1050268 = r1050262 - r1050267;
        double r1050269 = r1050266 * r1050256;
        double r1050270 = fma(r1050261, r1050264, r1050269);
        double r1050271 = /* ERROR: no complex support in C */;
        double r1050272 = 6.0;
        double r1050273 = 15.0;
        double r1050274 = r1050252 * r1050273;
        double r1050275 = r1050274 - r1050260;
        double r1050276 = r1050272 + r1050275;
        double r1050277 = fma(r1050253, r1050273, r1050265);
        double r1050278 = r1050277 + r1050259;
        double r1050279 = /* ERROR: no complex support in C */;
        double r1050280 = /* ERROR: no complex support in C */;
        double r1050281 = /* ERROR: no complex support in C */;
        double r1050282 = /* ERROR: no complex support in C */;
        double r1050283 = /* ERROR: no complex support in C */;
        double r1050284 = r1050282 + r1050283;
        double r1050285 = r1050280 * r1050284;
        double r1050286 = r1050281 + r1050285;
        double r1050287 = r1050280 * r1050286;
        double r1050288 = r1050279 + r1050287;
        double r1050289 = r1050288 * r1050283;
        double r1050290 = /* ERROR: no complex support in C */;
        double r1050291 = r1050289 + r1050290;
        double r1050292 = r1050271 + r1050291;
        double r1050293 = /* ERROR: no complex support in C */;
        return r1050293;
}

Error

Derivation

  1. Initial program 0

    \[\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))\]
  2. Simplified0

    \[\leadsto \color{blue}{\Im(\left(\left(\left(\left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(-1 \cdot 20 - 1 \cdot 0.0\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \mathsf{fma}\left(20, 1, 0.0 \cdot -1\right)\right) + \mathsf{fma}\left(-1 \cdot 20 - 1 \cdot 0.0, 1 \cdot \left(-1 + -1\right), \mathsf{fma}\left(20, 1, 0.0 \cdot -1\right) \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right)\right) i\right) + \left(\left(\left(-1 + 1 i\right) \cdot \left(\left(\left(\left(1 + -1\right) \cdot \left(-1 - 1\right) + 1 \cdot \left(-1 + -1\right) i\right) \cdot \left(\left(\left(-1 \cdot 15 - 1 \cdot 0.0\right) + \mathsf{fma}\left(1, 15, 0.0 \cdot -1\right) i\right) + \left(\left(\left(1 + -1\right) \cdot \left(-1 - 1\right) + 1 \cdot \left(-1 + -1\right) i\right) \cdot \left(\left(-1 + 1 i\right) + \left(6 + 0.0 i\right)\right)\right)\right)\right) + \left(\left(\left(-1 \cdot 15 - 1 \cdot 0.0\right) + 6\right) + \left(\mathsf{fma}\left(1, 15, 0.0 \cdot -1\right) + 0.0\right) i\right)\right)\right) + \left(1 + 0.0 i\right)\right)\right))}\]
  3. Final simplification0

    \[\leadsto \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))\]

Reproduce

herbie shell --seed 2019171 +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))))