\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))
\Im(\left(-1 + 0 i\right))
double f() {
double r1010447 = -1.0;
double r1010448 = 1.0;
double r1010449 = /* ERROR: no complex support in C */;
double r1010450 = r1010449 * r1010449;
double r1010451 = r1010450 * r1010449;
double r1010452 = r1010451 * r1010449;
double r1010453 = r1010452 * r1010449;
double r1010454 = r1010453 * r1010449;
double r1010455 = 6.0;
double r1010456 = 0.0;
double r1010457 = /* ERROR: no complex support in C */;
double r1010458 = r1010457 * r1010449;
double r1010459 = r1010458 * r1010449;
double r1010460 = r1010459 * r1010449;
double r1010461 = r1010460 * r1010449;
double r1010462 = r1010461 * r1010449;
double r1010463 = r1010454 + r1010462;
double r1010464 = 15.0;
double r1010465 = /* ERROR: no complex support in C */;
double r1010466 = r1010465 * r1010449;
double r1010467 = r1010466 * r1010449;
double r1010468 = r1010467 * r1010449;
double r1010469 = r1010468 * r1010449;
double r1010470 = r1010463 + r1010469;
double r1010471 = 20.0;
double r1010472 = /* ERROR: no complex support in C */;
double r1010473 = r1010472 * r1010449;
double r1010474 = r1010473 * r1010449;
double r1010475 = r1010474 * r1010449;
double r1010476 = r1010470 + r1010475;
double r1010477 = r1010476 + r1010467;
double r1010478 = r1010477 + r1010458;
double r1010479 = /* ERROR: no complex support in C */;
double r1010480 = r1010478 + r1010479;
double r1010481 = /* ERROR: no complex support in C */;
return r1010481;
}
double f() {
double r1010482 = -1.0;
double r1010483 = 0.0;
double r1010484 = /* ERROR: no complex support in C */;
double r1010485 = /* ERROR: no complex support in C */;
return r1010485;
}
Initial program 0
Simplified0
Final simplification0
herbie shell --seed 2019142 +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))))