Average Error: 0 → 0
Time: 17.3s
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{-1}{2} + \frac{-\sqrt{3}}{2} i\right) \cdot \left(\left(\frac{-1}{2} + \frac{-\sqrt{3}}{2} i\right) + \left(6 + \frac{\sqrt{3}}{-1} i\right)\right) + \left(5 + \frac{\sqrt{3}}{\frac{1}{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{-1}{2} + \frac{-\sqrt{3}}{2} i\right) \cdot \left(\left(\frac{-1}{2} + \frac{-\sqrt{3}}{2} i\right) + \left(6 + \frac{\sqrt{3}}{-1} i\right)\right) + \left(5 + \frac{\sqrt{3}}{\frac{1}{2}} i\right)\right))
double f() {
        double r1062513 = 1.0;
        double r1062514 = -r1062513;
        double r1062515 = 2.0;
        double r1062516 = r1062514 / r1062515;
        double r1062517 = 3.0;
        double r1062518 = sqrt(r1062517);
        double r1062519 = r1062518 / r1062515;
        double r1062520 = /* ERROR: no complex support in C */;
        double r1062521 = r1062520 * r1062520;
        double r1062522 = r1062521 * r1062520;
        double r1062523 = r1062522 * r1062520;
        double r1062524 = -r1062515;
        double r1062525 = 0.0;
        double r1062526 = /* ERROR: no complex support in C */;
        double r1062527 = r1062526 * r1062520;
        double r1062528 = r1062527 * r1062520;
        double r1062529 = r1062528 * r1062520;
        double r1062530 = r1062523 + r1062529;
        double r1062531 = 5.0;
        double r1062532 = /* ERROR: no complex support in C */;
        double r1062533 = r1062532 * r1062520;
        double r1062534 = r1062533 * r1062520;
        double r1062535 = r1062530 + r1062534;
        double r1062536 = 4.0;
        double r1062537 = /* ERROR: no complex support in C */;
        double r1062538 = r1062537 * r1062520;
        double r1062539 = r1062535 + r1062538;
        double r1062540 = 7.0;
        double r1062541 = /* ERROR: no complex support in C */;
        double r1062542 = r1062539 + r1062541;
        double r1062543 = /* ERROR: no complex support in C */;
        return r1062543;
}

double f() {
        double r1062544 = -0.5;
        double r1062545 = 3.0;
        double r1062546 = sqrt(r1062545);
        double r1062547 = -r1062546;
        double r1062548 = 2.0;
        double r1062549 = r1062547 / r1062548;
        double r1062550 = /* ERROR: no complex support in C */;
        double r1062551 = 6.0;
        double r1062552 = -1.0;
        double r1062553 = r1062546 / r1062552;
        double r1062554 = /* ERROR: no complex support in C */;
        double r1062555 = r1062550 + r1062554;
        double r1062556 = r1062550 * r1062555;
        double r1062557 = 5.0;
        double r1062558 = 0.5;
        double r1062559 = r1062546 / r1062558;
        double r1062560 = /* ERROR: no complex support in C */;
        double r1062561 = r1062556 + r1062560;
        double r1062562 = /* ERROR: no complex support in C */;
        return r1062562;
}

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 + \frac{\sqrt{3}}{\frac{1}{2}} i\right) + \left(\left(\left(\frac{1}{4} - \frac{\frac{3}{2}}{2}\right) + \frac{-\sqrt{3}}{2} i\right) \cdot \left(\left(6 + \frac{\sqrt{3}}{-1} i\right) + \left(\left(\frac{1}{4} - \frac{\frac{3}{2}}{2}\right) + \frac{-\sqrt{3}}{2} i\right)\right)\right)\right))}\]
  3. Final simplification0

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

Reproduce

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