Average Error: 0 → 0
Time: 36.6s
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(-1 - 1\right) \cdot \left(1 + -1\right) + 1 \cdot \left(-1 + -1\right) i\right) \cdot \left(\left(\left(15 + 0.0 i\right) + \left(\left(-1 \cdot 20 - 0.0 \cdot 1\right) + \mathsf{fma}\left(1, 20, 0.0 \cdot -1\right) i\right)\right) + \left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right) + 1 \cdot \left(-1 + -1\right) i\right) \cdot \left(\left(\left(6 \cdot -1 - 0.0 \cdot 1\right) + 15\right) + \left(\mathsf{fma}\left(-1, 0.0, 1 \cdot 6\right) + 0.0\right) i\right)\right)\right)\right) + \left(\left(\left(1 + \left(6 \cdot -1 - 0.0 \cdot 1\right)\right) + \left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) \cdot \left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) + \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right)\right)\right)\right) + \left(\left(\left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right) + \left(\left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) + \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right)\right) + \left(\mathsf{fma}\left(-1, 0.0, 1 \cdot 6\right) + 0.0\right)\right) i\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(-1 - 1\right) \cdot \left(1 + -1\right) + 1 \cdot \left(-1 + -1\right) i\right) \cdot \left(\left(\left(15 + 0.0 i\right) + \left(\left(-1 \cdot 20 - 0.0 \cdot 1\right) + \mathsf{fma}\left(1, 20, 0.0 \cdot -1\right) i\right)\right) + \left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right) + 1 \cdot \left(-1 + -1\right) i\right) \cdot \left(\left(\left(6 \cdot -1 - 0.0 \cdot 1\right) + 15\right) + \left(\mathsf{fma}\left(-1, 0.0, 1 \cdot 6\right) + 0.0\right) i\right)\right)\right)\right) + \left(\left(\left(1 + \left(6 \cdot -1 - 0.0 \cdot 1\right)\right) + \left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) \cdot \left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) + \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right)\right)\right)\right) + \left(\left(\left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right) + \left(\left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) + \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right)\right) + \left(\mathsf{fma}\left(-1, 0.0, 1 \cdot 6\right) + 0.0\right)\right) i\right)\right))
double f() {
        double r1497540 = -1.0;
        double r1497541 = 1.0;
        double r1497542 = /* ERROR: no complex support in C */;
        double r1497543 = r1497542 * r1497542;
        double r1497544 = r1497543 * r1497542;
        double r1497545 = r1497544 * r1497542;
        double r1497546 = r1497545 * r1497542;
        double r1497547 = r1497546 * r1497542;
        double r1497548 = 6.0;
        double r1497549 = 0.0;
        double r1497550 = /* ERROR: no complex support in C */;
        double r1497551 = r1497550 * r1497542;
        double r1497552 = r1497551 * r1497542;
        double r1497553 = r1497552 * r1497542;
        double r1497554 = r1497553 * r1497542;
        double r1497555 = r1497554 * r1497542;
        double r1497556 = r1497547 + r1497555;
        double r1497557 = 15.0;
        double r1497558 = /* ERROR: no complex support in C */;
        double r1497559 = r1497558 * r1497542;
        double r1497560 = r1497559 * r1497542;
        double r1497561 = r1497560 * r1497542;
        double r1497562 = r1497561 * r1497542;
        double r1497563 = r1497556 + r1497562;
        double r1497564 = 20.0;
        double r1497565 = /* ERROR: no complex support in C */;
        double r1497566 = r1497565 * r1497542;
        double r1497567 = r1497566 * r1497542;
        double r1497568 = r1497567 * r1497542;
        double r1497569 = r1497563 + r1497568;
        double r1497570 = r1497569 + r1497560;
        double r1497571 = r1497570 + r1497551;
        double r1497572 = /* ERROR: no complex support in C */;
        double r1497573 = r1497571 + r1497572;
        double r1497574 = /* ERROR: no complex support in C */;
        return r1497574;
}

double f() {
        double r1497575 = -1.0;
        double r1497576 = 1.0;
        double r1497577 = r1497575 - r1497576;
        double r1497578 = r1497576 + r1497575;
        double r1497579 = r1497577 * r1497578;
        double r1497580 = r1497575 + r1497575;
        double r1497581 = r1497576 * r1497580;
        double r1497582 = /* ERROR: no complex support in C */;
        double r1497583 = 15.0;
        double r1497584 = 0.0;
        double r1497585 = /* ERROR: no complex support in C */;
        double r1497586 = 20.0;
        double r1497587 = r1497575 * r1497586;
        double r1497588 = r1497584 * r1497576;
        double r1497589 = r1497587 - r1497588;
        double r1497590 = r1497584 * r1497575;
        double r1497591 = fma(r1497576, r1497586, r1497590);
        double r1497592 = /* ERROR: no complex support in C */;
        double r1497593 = r1497585 + r1497592;
        double r1497594 = 6.0;
        double r1497595 = r1497594 * r1497575;
        double r1497596 = r1497595 - r1497588;
        double r1497597 = r1497596 + r1497583;
        double r1497598 = r1497576 * r1497594;
        double r1497599 = fma(r1497575, r1497584, r1497598);
        double r1497600 = r1497599 + r1497584;
        double r1497601 = /* ERROR: no complex support in C */;
        double r1497602 = r1497582 * r1497601;
        double r1497603 = r1497593 + r1497602;
        double r1497604 = r1497582 * r1497603;
        double r1497605 = r1497576 + r1497596;
        double r1497606 = r1497579 * r1497579;
        double r1497607 = r1497581 * r1497581;
        double r1497608 = r1497606 - r1497607;
        double r1497609 = r1497579 * r1497608;
        double r1497610 = r1497581 * r1497579;
        double r1497611 = r1497610 + r1497610;
        double r1497612 = r1497581 * r1497611;
        double r1497613 = r1497609 - r1497612;
        double r1497614 = r1497605 + r1497613;
        double r1497615 = r1497608 * r1497581;
        double r1497616 = r1497611 * r1497579;
        double r1497617 = r1497615 + r1497616;
        double r1497618 = r1497617 + r1497600;
        double r1497619 = /* ERROR: no complex support in C */;
        double r1497620 = r1497604 + r1497619;
        double r1497621 = /* ERROR: no complex support in C */;
        return r1497621;
}

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(1 + \left(-1 \cdot 6 - 0.0 \cdot 1\right)\right) + \left(\left(\left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) \cdot \left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) - \left(\left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right) + \left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right)\right) + \left(\left(\mathsf{fma}\left(-1, 0.0, 6 \cdot 1\right) + 0.0\right) + \left(\left(\left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right) + \left(\left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right) + \left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) \cdot \left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right)\right)\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(\left(\left(-1 + 1\right) \cdot \left(-1 - 1\right) + 1 \cdot \left(-1 + -1\right) i\right) \cdot \left(\left(\left(-1 \cdot 6 - 0.0 \cdot 1\right) + 15\right) + \left(\mathsf{fma}\left(-1, 0.0, 6 \cdot 1\right) + 0.0\right) i\right)\right) + \left(\left(\left(20 \cdot -1 - 0.0 \cdot 1\right) + \mathsf{fma}\left(1, 20, 0.0 \cdot -1\right) i\right) + \left(15 + 0.0 i\right)\right)\right)\right)\right))}\]
  3. Final simplification0

    \[\leadsto \Im(\left(\left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right) + 1 \cdot \left(-1 + -1\right) i\right) \cdot \left(\left(\left(15 + 0.0 i\right) + \left(\left(-1 \cdot 20 - 0.0 \cdot 1\right) + \mathsf{fma}\left(1, 20, 0.0 \cdot -1\right) i\right)\right) + \left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right) + 1 \cdot \left(-1 + -1\right) i\right) \cdot \left(\left(\left(6 \cdot -1 - 0.0 \cdot 1\right) + 15\right) + \left(\mathsf{fma}\left(-1, 0.0, 1 \cdot 6\right) + 0.0\right) i\right)\right)\right)\right) + \left(\left(\left(1 + \left(6 \cdot -1 - 0.0 \cdot 1\right)\right) + \left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) \cdot \left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) + \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right)\right)\right)\right) + \left(\left(\left(\left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) - \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right)\right) \cdot \left(1 \cdot \left(-1 + -1\right)\right) + \left(\left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right) + \left(1 \cdot \left(-1 + -1\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right)\right) \cdot \left(\left(-1 - 1\right) \cdot \left(1 + -1\right)\right)\right) + \left(\mathsf{fma}\left(-1, 0.0, 1 \cdot 6\right) + 0.0\right)\right) i\right)\right))\]

Reproduce

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