Average Error: 0 → 0
Time: 22.0s
Precision: 64
\[\Im(\left(\left(\left(\left(\left(\left(\left(\left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) + \left(\left(\left(\left(\left(-2\right) + 0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(\left(\left(5 + 0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(\left(4 + 0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(7 + 0 i\right)\right))\]
\[\Im(\left(\left(\frac{11}{2} + \left(\frac{\sqrt{3}}{-2} + \left(-\sqrt{3}\right)\right) i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{-2} i\right) + \left(5 + \sqrt{3} \cdot 2 i\right)\right))\]
\Im(\left(\left(\left(\left(\left(\left(\left(\left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) + \left(\left(\left(\left(\left(-2\right) + 0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(\left(\left(5 + 0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(\left(4 + 0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(7 + 0 i\right)\right))
\Im(\left(\left(\frac{11}{2} + \left(\frac{\sqrt{3}}{-2} + \left(-\sqrt{3}\right)\right) i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{-2} i\right) + \left(5 + \sqrt{3} \cdot 2 i\right)\right))
double f() {
        double r1304606 = 1.0;
        double r1304607 = -r1304606;
        double r1304608 = 2.0;
        double r1304609 = r1304607 / r1304608;
        double r1304610 = 3.0;
        double r1304611 = sqrt(r1304610);
        double r1304612 = r1304611 / r1304608;
        double r1304613 = /* ERROR: no complex support in C */;
        double r1304614 = r1304613 * r1304613;
        double r1304615 = r1304614 * r1304613;
        double r1304616 = r1304615 * r1304613;
        double r1304617 = -r1304608;
        double r1304618 = 0.0;
        double r1304619 = /* ERROR: no complex support in C */;
        double r1304620 = r1304619 * r1304613;
        double r1304621 = r1304620 * r1304613;
        double r1304622 = r1304621 * r1304613;
        double r1304623 = r1304616 + r1304622;
        double r1304624 = 5.0;
        double r1304625 = /* ERROR: no complex support in C */;
        double r1304626 = r1304625 * r1304613;
        double r1304627 = r1304626 * r1304613;
        double r1304628 = r1304623 + r1304627;
        double r1304629 = 4.0;
        double r1304630 = /* ERROR: no complex support in C */;
        double r1304631 = r1304630 * r1304613;
        double r1304632 = r1304628 + r1304631;
        double r1304633 = 7.0;
        double r1304634 = /* ERROR: no complex support in C */;
        double r1304635 = r1304632 + r1304634;
        double r1304636 = /* ERROR: no complex support in C */;
        return r1304636;
}

double f() {
        double r1304637 = 5.5;
        double r1304638 = 3.0;
        double r1304639 = sqrt(r1304638);
        double r1304640 = -2.0;
        double r1304641 = r1304639 / r1304640;
        double r1304642 = -r1304639;
        double r1304643 = r1304641 + r1304642;
        double r1304644 = /* ERROR: no complex support in C */;
        double r1304645 = -0.5;
        double r1304646 = /* ERROR: no complex support in C */;
        double r1304647 = r1304644 * r1304646;
        double r1304648 = 5.0;
        double r1304649 = 2.0;
        double r1304650 = r1304639 * r1304649;
        double r1304651 = /* ERROR: no complex support in C */;
        double r1304652 = r1304647 + r1304651;
        double r1304653 = /* ERROR: no complex support in C */;
        return r1304653;
}

Error

Derivation

  1. Initial program 0

    \[\Im(\left(\left(\left(\left(\left(\left(\left(\left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) + \left(\left(\left(\left(\left(-2\right) + 0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(\left(\left(5 + 0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(\left(4 + 0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(7 + 0 i\right)\right))\]
  2. Simplified0

    \[\leadsto \color{blue}{\Im(\left(\left(5 + 2 \cdot \sqrt{3} i\right) + \left(\left(\left(6 + \left(\frac{1}{4} - \frac{3}{4}\right)\right) + \left(-1 \cdot \sqrt{3} + \frac{\sqrt{3}}{-2}\right) i\right) \cdot \left(\left(\frac{1}{4} - \frac{3}{4}\right) + \frac{\sqrt{3}}{-2} i\right)\right)\right))}\]
  3. Final simplification0

    \[\leadsto \Im(\left(\left(\frac{11}{2} + \left(\frac{\sqrt{3}}{-2} + \left(-\sqrt{3}\right)\right) i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{-2} i\right) + \left(5 + \sqrt{3} \cdot 2 i\right)\right))\]

Reproduce

herbie shell --seed 2019149 +o rules:numerics
(FPCore ()
  :name "3.9.2 imaginary part (p56)"
  (im (+.c (+.c (+.c (+.c (*.c (*.c (*.c (complex (/ (- 1) 2) (/ (sqrt 3) 2)) (complex (/ (- 1) 2) (/ (sqrt 3) 2))) (complex (/ (- 1) 2) (/ (sqrt 3) 2))) (complex (/ (- 1) 2) (/ (sqrt 3) 2))) (*.c (*.c (*.c (complex (- 2) 0) (complex (/ (- 1) 2) (/ (sqrt 3) 2))) (complex (/ (- 1) 2) (/ (sqrt 3) 2))) (complex (/ (- 1) 2) (/ (sqrt 3) 2)))) (*.c (*.c (complex 5 0) (complex (/ (- 1) 2) (/ (sqrt 3) 2))) (complex (/ (- 1) 2) (/ (sqrt 3) 2)))) (*.c (complex 4 0) (complex (/ (- 1) 2) (/ (sqrt 3) 2)))) (complex 7 0))))