Average Error: 0 → 0
Time: 22.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{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 r1039326 = 1.0;
        double r1039327 = -r1039326;
        double r1039328 = 2.0;
        double r1039329 = r1039327 / r1039328;
        double r1039330 = 3.0;
        double r1039331 = sqrt(r1039330);
        double r1039332 = r1039331 / r1039328;
        double r1039333 = /* ERROR: no complex support in C */;
        double r1039334 = r1039333 * r1039333;
        double r1039335 = r1039334 * r1039333;
        double r1039336 = r1039335 * r1039333;
        double r1039337 = -r1039328;
        double r1039338 = 0.0;
        double r1039339 = /* ERROR: no complex support in C */;
        double r1039340 = r1039339 * r1039333;
        double r1039341 = r1039340 * r1039333;
        double r1039342 = r1039341 * r1039333;
        double r1039343 = r1039336 + r1039342;
        double r1039344 = 5.0;
        double r1039345 = /* ERROR: no complex support in C */;
        double r1039346 = r1039345 * r1039333;
        double r1039347 = r1039346 * r1039333;
        double r1039348 = r1039343 + r1039347;
        double r1039349 = 4.0;
        double r1039350 = /* ERROR: no complex support in C */;
        double r1039351 = r1039350 * r1039333;
        double r1039352 = r1039348 + r1039351;
        double r1039353 = 7.0;
        double r1039354 = /* ERROR: no complex support in C */;
        double r1039355 = r1039352 + r1039354;
        double r1039356 = /* ERROR: no complex support in C */;
        return r1039356;
}

double f() {
        double r1039357 = 5.5;
        double r1039358 = 3.0;
        double r1039359 = sqrt(r1039358);
        double r1039360 = -2.0;
        double r1039361 = r1039359 / r1039360;
        double r1039362 = -r1039359;
        double r1039363 = r1039361 + r1039362;
        double r1039364 = /* ERROR: no complex support in C */;
        double r1039365 = -0.5;
        double r1039366 = /* ERROR: no complex support in C */;
        double r1039367 = r1039364 * r1039366;
        double r1039368 = 5.0;
        double r1039369 = 2.0;
        double r1039370 = r1039359 * r1039369;
        double r1039371 = /* ERROR: no complex support in C */;
        double r1039372 = r1039367 + r1039371;
        double r1039373 = /* ERROR: no complex support in C */;
        return r1039373;
}

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 2019146 +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))))