Average Error: 0 → 0
Time: 30.5s
Precision: 64
\[\Im(\left(\left(\left(\left(\left(\left(\left(\left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) + \left(\left(\left(\left(\left(-2.0\right) + 0.0 i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right)\right) + \left(\left(\left(5.0 + 0.0 i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right)\right) + \left(\left(4.0 + 0.0 i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right)\right) + \left(7.0 + 0.0 i\right)\right))\]
\[\Im(\left(\left(\left(\left(\left(\left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right) \cdot \left(\left(\left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right)\right) + \left(\left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right) \cdot \left(\left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right) \cdot \left(\left(\left(-2.0\right) + 0.0 i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right)\right)\right)\right) + \left(\left(\left(5.0 + 0.0 i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right)\right) + \left(\left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right) \cdot \left(4.0 + 0.0 i\right)\right)\right) + \left(7.0 + 0.0 i\right)\right))\]
\Im(\left(\left(\left(\left(\left(\left(\left(\left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) + \left(\left(\left(\left(\left(-2.0\right) + 0.0 i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right)\right) + \left(\left(\left(5.0 + 0.0 i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right)\right) + \left(\left(4.0 + 0.0 i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right)\right) + \left(7.0 + 0.0 i\right)\right))
\Im(\left(\left(\left(\left(\left(\left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right) \cdot \left(\left(\left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right)\right) + \left(\left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right) \cdot \left(\left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right) \cdot \left(\left(\left(-2.0\right) + 0.0 i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right)\right)\right)\right) + \left(\left(\left(5.0 + 0.0 i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right)\right) + \left(\left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right) \cdot \left(4.0 + 0.0 i\right)\right)\right) + \left(7.0 + 0.0 i\right)\right))
double f() {
        double r2238389 = 1.0;
        double r2238390 = -r2238389;
        double r2238391 = 2.0;
        double r2238392 = r2238390 / r2238391;
        double r2238393 = 3.0;
        double r2238394 = sqrt(r2238393);
        double r2238395 = r2238394 / r2238391;
        double r2238396 = /* ERROR: no complex support in C */;
        double r2238397 = r2238396 * r2238396;
        double r2238398 = r2238397 * r2238396;
        double r2238399 = r2238398 * r2238396;
        double r2238400 = -r2238391;
        double r2238401 = 0.0;
        double r2238402 = /* ERROR: no complex support in C */;
        double r2238403 = r2238402 * r2238396;
        double r2238404 = r2238403 * r2238396;
        double r2238405 = r2238404 * r2238396;
        double r2238406 = r2238399 + r2238405;
        double r2238407 = 5.0;
        double r2238408 = /* ERROR: no complex support in C */;
        double r2238409 = r2238408 * r2238396;
        double r2238410 = r2238409 * r2238396;
        double r2238411 = r2238406 + r2238410;
        double r2238412 = 4.0;
        double r2238413 = /* ERROR: no complex support in C */;
        double r2238414 = r2238413 * r2238396;
        double r2238415 = r2238411 + r2238414;
        double r2238416 = 7.0;
        double r2238417 = /* ERROR: no complex support in C */;
        double r2238418 = r2238415 + r2238417;
        double r2238419 = /* ERROR: no complex support in C */;
        return r2238419;
}

double f() {
        double r2238420 = 1.0;
        double r2238421 = -r2238420;
        double r2238422 = 2.0;
        double r2238423 = r2238421 / r2238422;
        double r2238424 = 3.0;
        double r2238425 = sqrt(r2238424);
        double r2238426 = r2238425 / r2238422;
        double r2238427 = /* ERROR: no complex support in C */;
        double r2238428 = r2238427 * r2238427;
        double r2238429 = r2238428 * r2238427;
        double r2238430 = r2238427 * r2238429;
        double r2238431 = -r2238422;
        double r2238432 = 0.0;
        double r2238433 = /* ERROR: no complex support in C */;
        double r2238434 = r2238433 * r2238427;
        double r2238435 = r2238427 * r2238434;
        double r2238436 = r2238427 * r2238435;
        double r2238437 = r2238430 + r2238436;
        double r2238438 = 5.0;
        double r2238439 = /* ERROR: no complex support in C */;
        double r2238440 = r2238439 * r2238427;
        double r2238441 = r2238440 * r2238427;
        double r2238442 = r2238437 + r2238441;
        double r2238443 = 4.0;
        double r2238444 = /* ERROR: no complex support in C */;
        double r2238445 = r2238427 * r2238444;
        double r2238446 = r2238442 + r2238445;
        double r2238447 = 7.0;
        double r2238448 = /* ERROR: no complex support in C */;
        double r2238449 = r2238446 + r2238448;
        double r2238450 = /* ERROR: no complex support in C */;
        return r2238450;
}

Error

Derivation

  1. Initial program 0

    \[\Im(\left(\left(\left(\left(\left(\left(\left(\left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) + \left(\left(\left(\left(\left(-2.0\right) + 0.0 i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right)\right) + \left(\left(\left(5.0 + 0.0 i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right)\right) + \left(\left(4.0 + 0.0 i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right)\right) + \left(7.0 + 0.0 i\right)\right))\]
  2. Final simplification0

    \[\leadsto \Im(\left(\left(\left(\left(\left(\left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right) \cdot \left(\left(\left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right)\right) + \left(\left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right) \cdot \left(\left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right) \cdot \left(\left(\left(-2.0\right) + 0.0 i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right)\right)\right)\right) + \left(\left(\left(5.0 + 0.0 i\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right) \cdot \left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right)\right)\right) + \left(\left(\frac{-1.0}{2.0} + \frac{\sqrt{3.0}}{2.0} i\right) \cdot \left(4.0 + 0.0 i\right)\right)\right) + \left(7.0 + 0.0 i\right)\right))\]

Reproduce

herbie shell --seed 2019165 +o rules:numerics
(FPCore ()
  :name "3.9.2 imaginary part (p56)"
  (im (+.c (+.c (+.c (+.c (*.c (*.c (*.c (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0)) (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0))) (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0))) (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0))) (*.c (*.c (*.c (complex (- 2.0) 0.0) (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0))) (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0))) (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0)))) (*.c (*.c (complex 5.0 0.0) (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0))) (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0)))) (*.c (complex 4.0 0.0) (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0)))) (complex 7.0 0.0))))