Average Error: 0 → 0
Time: 22.6s
Precision: 64
\[\Im(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(-1 + 1 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right) + \left(\left(\left(\left(\left(6 + 0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) + \left(\left(\left(\left(15 + 0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) + \left(\left(\left(20 + 0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) + \left(\left(15 + 0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) + \left(6 + 0 i\right) \cdot \left(-1 + 1 i\right)\right) + \left(1 + 0 i\right)\right))\]
\[\Im(\left(\left(-5 + -24 i\right) + \left(\left(\left(24 + -24 i\right) + \left(0 + 8 i\right)\right) + \left(\left(40 + 40 i\right) + \left(-60 + 0 i\right)\right)\right)\right))\]
double f() {
        double r1763417 = -1.0;
        double r1763418 = 1.0;
        double r1763419 = /* ERROR: no complex support in C */;
        double r1763420 = r1763419 * r1763419;
        double r1763421 = r1763420 * r1763419;
        double r1763422 = r1763421 * r1763419;
        double r1763423 = r1763422 * r1763419;
        double r1763424 = r1763423 * r1763419;
        double r1763425 = 6.0;
        double r1763426 = 0.0;
        double r1763427 = /* ERROR: no complex support in C */;
        double r1763428 = r1763427 * r1763419;
        double r1763429 = r1763428 * r1763419;
        double r1763430 = r1763429 * r1763419;
        double r1763431 = r1763430 * r1763419;
        double r1763432 = r1763431 * r1763419;
        double r1763433 = r1763424 + r1763432;
        double r1763434 = 15.0;
        double r1763435 = /* ERROR: no complex support in C */;
        double r1763436 = r1763435 * r1763419;
        double r1763437 = r1763436 * r1763419;
        double r1763438 = r1763437 * r1763419;
        double r1763439 = r1763438 * r1763419;
        double r1763440 = r1763433 + r1763439;
        double r1763441 = 20.0;
        double r1763442 = /* ERROR: no complex support in C */;
        double r1763443 = r1763442 * r1763419;
        double r1763444 = r1763443 * r1763419;
        double r1763445 = r1763444 * r1763419;
        double r1763446 = r1763440 + r1763445;
        double r1763447 = r1763446 + r1763437;
        double r1763448 = r1763447 + r1763428;
        double r1763449 = /* ERROR: no complex support in C */;
        double r1763450 = r1763448 + r1763449;
        double r1763451 = /* ERROR: no complex support in C */;
        return r1763451;
}

double f() {
        double r1763452 = -5.0;
        double r1763453 = -24.0;
        double r1763454 = /* ERROR: no complex support in C */;
        double r1763455 = 24.0;
        double r1763456 = /* ERROR: no complex support in C */;
        double r1763457 = 0.0;
        double r1763458 = 8.0;
        double r1763459 = /* ERROR: no complex support in C */;
        double r1763460 = r1763456 + r1763459;
        double r1763461 = 40.0;
        double r1763462 = /* ERROR: no complex support in C */;
        double r1763463 = -60.0;
        double r1763464 = /* ERROR: no complex support in C */;
        double r1763465 = r1763462 + r1763464;
        double r1763466 = r1763460 + r1763465;
        double r1763467 = r1763454 + r1763466;
        double r1763468 = /* ERROR: no complex support in C */;
        return r1763468;
}

\Im(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(-1 + 1 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right) + \left(\left(\left(\left(\left(6 + 0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) + \left(\left(\left(\left(15 + 0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) + \left(\left(\left(20 + 0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) + \left(\left(15 + 0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) + \left(6 + 0 i\right) \cdot \left(-1 + 1 i\right)\right) + \left(1 + 0 i\right)\right))
\Im(\left(\left(-5 + -24 i\right) + \left(\left(\left(24 + -24 i\right) + \left(0 + 8 i\right)\right) + \left(\left(40 + 40 i\right) + \left(-60 + 0 i\right)\right)\right)\right))

Error

Derivation

  1. Initial program 0

    \[\Im(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(\left(-1 + 1 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) + \left(\left(\left(\left(\left(\left(6 + 0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(\left(\left(\left(\left(15 + 0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(\left(\left(\left(20 + 0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(\left(\left(15 + 0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(\left(6 + 0 i\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(1 + 0 i\right)\right))\]
  2. Simplified0

    \[\leadsto \color{blue}{\Im(\left(\left(-5 + -24 i\right) + \left(\left(\left(40 + 40 i\right) + \left(-60 + 0 i\right)\right) + \left(\left(24 + -24 i\right) + \left(0 + 8 i\right)\right)\right)\right))}\]
  3. Final simplification0

    \[\leadsto \Im(\left(\left(-5 + -24 i\right) + \left(\left(\left(24 + -24 i\right) + \left(0 + 8 i\right)\right) + \left(\left(40 + 40 i\right) + \left(-60 + 0 i\right)\right)\right)\right))\]

Reproduce

herbie shell --seed 2019101 +o rules:numerics
(FPCore ()
  :name "3.9.1 imaginary part (p56)"
  (im (+.c (+.c (+.c (+.c (+.c (+.c (*.c (*.c (*.c (*.c (*.c (complex -1 1) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (*.c (*.c (*.c (*.c (*.c (complex 6 0) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1))) (*.c (*.c (*.c (*.c (complex 15 0) (complex -1 1)) (complex -1 1)) (complex -1 1)) (complex -1 1))) (*.c (*.c (*.c (complex 20 0) (complex -1 1)) (complex -1 1)) (complex -1 1))) (*.c (*.c (complex 15 0) (complex -1 1)) (complex -1 1))) (*.c (complex 6 0) (complex -1 1))) (complex 1 0))))