Average Error: 0 → 0
Time: 17.4s
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 r1203523 = 1.0;
        double r1203524 = -r1203523;
        double r1203525 = 2.0;
        double r1203526 = r1203524 / r1203525;
        double r1203527 = 3.0;
        double r1203528 = sqrt(r1203527);
        double r1203529 = r1203528 / r1203525;
        double r1203530 = /* ERROR: no complex support in C */;
        double r1203531 = r1203530 * r1203530;
        double r1203532 = r1203531 * r1203530;
        double r1203533 = r1203532 * r1203530;
        double r1203534 = -r1203525;
        double r1203535 = 0.0;
        double r1203536 = /* ERROR: no complex support in C */;
        double r1203537 = r1203536 * r1203530;
        double r1203538 = r1203537 * r1203530;
        double r1203539 = r1203538 * r1203530;
        double r1203540 = r1203533 + r1203539;
        double r1203541 = 5.0;
        double r1203542 = /* ERROR: no complex support in C */;
        double r1203543 = r1203542 * r1203530;
        double r1203544 = r1203543 * r1203530;
        double r1203545 = r1203540 + r1203544;
        double r1203546 = 4.0;
        double r1203547 = /* ERROR: no complex support in C */;
        double r1203548 = r1203547 * r1203530;
        double r1203549 = r1203545 + r1203548;
        double r1203550 = 7.0;
        double r1203551 = /* ERROR: no complex support in C */;
        double r1203552 = r1203549 + r1203551;
        double r1203553 = /* ERROR: no complex support in C */;
        return r1203553;
}

double f() {
        double r1203554 = -0.5;
        double r1203555 = 3.0;
        double r1203556 = sqrt(r1203555);
        double r1203557 = -r1203556;
        double r1203558 = 2.0;
        double r1203559 = r1203557 / r1203558;
        double r1203560 = /* ERROR: no complex support in C */;
        double r1203561 = 6.0;
        double r1203562 = -1.0;
        double r1203563 = r1203556 / r1203562;
        double r1203564 = /* ERROR: no complex support in C */;
        double r1203565 = r1203560 + r1203564;
        double r1203566 = r1203560 * r1203565;
        double r1203567 = 5.0;
        double r1203568 = 0.5;
        double r1203569 = r1203556 / r1203568;
        double r1203570 = /* ERROR: no complex support in C */;
        double r1203571 = r1203566 + r1203570;
        double r1203572 = /* ERROR: no complex support in C */;
        return r1203572;
}

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