Average Error: 0 → 0
Time: 23.7s
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 r1646401 = -1.0;
        double r1646402 = 1.0;
        double r1646403 = /* ERROR: no complex support in C */;
        double r1646404 = r1646403 * r1646403;
        double r1646405 = r1646404 * r1646403;
        double r1646406 = r1646405 * r1646403;
        double r1646407 = r1646406 * r1646403;
        double r1646408 = r1646407 * r1646403;
        double r1646409 = 6.0;
        double r1646410 = 0.0;
        double r1646411 = /* ERROR: no complex support in C */;
        double r1646412 = r1646411 * r1646403;
        double r1646413 = r1646412 * r1646403;
        double r1646414 = r1646413 * r1646403;
        double r1646415 = r1646414 * r1646403;
        double r1646416 = r1646415 * r1646403;
        double r1646417 = r1646408 + r1646416;
        double r1646418 = 15.0;
        double r1646419 = /* ERROR: no complex support in C */;
        double r1646420 = r1646419 * r1646403;
        double r1646421 = r1646420 * r1646403;
        double r1646422 = r1646421 * r1646403;
        double r1646423 = r1646422 * r1646403;
        double r1646424 = r1646417 + r1646423;
        double r1646425 = 20.0;
        double r1646426 = /* ERROR: no complex support in C */;
        double r1646427 = r1646426 * r1646403;
        double r1646428 = r1646427 * r1646403;
        double r1646429 = r1646428 * r1646403;
        double r1646430 = r1646424 + r1646429;
        double r1646431 = r1646430 + r1646421;
        double r1646432 = r1646431 + r1646412;
        double r1646433 = /* ERROR: no complex support in C */;
        double r1646434 = r1646432 + r1646433;
        double r1646435 = /* ERROR: no complex support in C */;
        return r1646435;
}

double f() {
        double r1646436 = -5.0;
        double r1646437 = -24.0;
        double r1646438 = /* ERROR: no complex support in C */;
        double r1646439 = 24.0;
        double r1646440 = /* ERROR: no complex support in C */;
        double r1646441 = 0.0;
        double r1646442 = 8.0;
        double r1646443 = /* ERROR: no complex support in C */;
        double r1646444 = r1646440 + r1646443;
        double r1646445 = 40.0;
        double r1646446 = /* ERROR: no complex support in C */;
        double r1646447 = -60.0;
        double r1646448 = /* ERROR: no complex support in C */;
        double r1646449 = r1646446 + r1646448;
        double r1646450 = r1646444 + r1646449;
        double r1646451 = r1646438 + r1646450;
        double r1646452 = /* ERROR: no complex support in C */;
        return r1646452;
}

\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 2019102 +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))))