Average Error: 0 → 0
Time: 23.9s
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} + \frac{\sqrt{3}}{-1}\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} + \frac{\sqrt{3}}{-1}\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 r994680 = 1.0;
        double r994681 = -r994680;
        double r994682 = 2.0;
        double r994683 = r994681 / r994682;
        double r994684 = 3.0;
        double r994685 = sqrt(r994684);
        double r994686 = r994685 / r994682;
        double r994687 = /* ERROR: no complex support in C */;
        double r994688 = r994687 * r994687;
        double r994689 = r994688 * r994687;
        double r994690 = r994689 * r994687;
        double r994691 = -r994682;
        double r994692 = 0.0;
        double r994693 = /* ERROR: no complex support in C */;
        double r994694 = r994693 * r994687;
        double r994695 = r994694 * r994687;
        double r994696 = r994695 * r994687;
        double r994697 = r994690 + r994696;
        double r994698 = 5.0;
        double r994699 = /* ERROR: no complex support in C */;
        double r994700 = r994699 * r994687;
        double r994701 = r994700 * r994687;
        double r994702 = r994697 + r994701;
        double r994703 = 4.0;
        double r994704 = /* ERROR: no complex support in C */;
        double r994705 = r994704 * r994687;
        double r994706 = r994702 + r994705;
        double r994707 = 7.0;
        double r994708 = /* ERROR: no complex support in C */;
        double r994709 = r994706 + r994708;
        double r994710 = /* ERROR: no complex support in C */;
        return r994710;
}

double f() {
        double r994711 = 5.5;
        double r994712 = 3.0;
        double r994713 = sqrt(r994712);
        double r994714 = -2.0;
        double r994715 = r994713 / r994714;
        double r994716 = -1.0;
        double r994717 = r994713 / r994716;
        double r994718 = r994715 + r994717;
        double r994719 = /* ERROR: no complex support in C */;
        double r994720 = -0.5;
        double r994721 = /* ERROR: no complex support in C */;
        double r994722 = r994719 * r994721;
        double r994723 = 5.0;
        double r994724 = 2.0;
        double r994725 = r994713 * r994724;
        double r994726 = /* ERROR: no complex support in C */;
        double r994727 = r994722 + r994726;
        double r994728 = /* ERROR: no complex support in C */;
        return r994728;
}

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(\left(\frac{1}{4} + \frac{-3}{4}\right) + 6\right) + \left(\frac{\sqrt{3}}{-1} + \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} + \frac{\sqrt{3}}{-1}\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 2019141 +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))))