\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.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.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.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.0 i\right) \cdot \left(-1 + 1 i\right)\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(\left(6 + 0.0 i\right) \cdot \left(-1 + 1 i\right)\right)\right) + \left(1 + 0.0 i\right)\right))
\Im(\left(\left(\left(\left(1 + 0.0 i\right) + \left(\left(-1 \cdot 6 - 1 \cdot 0.0\right) + \left(1 \cdot 6 + 0.0 \cdot -1\right) i\right)\right) + \left(\left(\left(1 + -1\right) \cdot \left(-1 - 1\right) + \left(1 \cdot -1 + 1 \cdot -1\right) i\right) \cdot \left(\left(\left(-1 \cdot 20 - 1 \cdot 0.0\right) + 15\right) + \left(0.0 + \left(0.0 \cdot -1 + 20 \cdot 1\right)\right) i\right)\right)\right) + \left(\left(\left(\left(15 + 0.0 i\right) + \left(\left(-1 \cdot 6 - 1 \cdot 0.0\right) + \left(1 \cdot 6 + 0.0 \cdot -1\right) i\right)\right) \cdot \left(\left(\left(1 \cdot -1 + 1 \cdot -1\right) + \left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right) - \left(1 \cdot -1 + 1 \cdot -1\right)\right) + \left(\left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot -1 + 1 \cdot -1\right) + \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot -1 + 1 \cdot -1\right)\right) i\right)\right) + \left(\left(\left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(\left(\left(1 \cdot -1 + 1 \cdot -1\right) + \left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right) - \left(1 \cdot -1 + 1 \cdot -1\right)\right)\right) - \left(1 \cdot -1 + 1 \cdot -1\right) \cdot \left(\left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot -1 + 1 \cdot -1\right) + \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot -1 + 1 \cdot -1\right)\right)\right) + \left(\left(\left(\left(1 \cdot -1 + 1 \cdot -1\right) + \left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right) - \left(1 \cdot -1 + 1 \cdot -1\right)\right)\right) \cdot \left(1 \cdot -1 + 1 \cdot -1\right) + \left(\left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot -1 + 1 \cdot -1\right) + \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(1 \cdot -1 + 1 \cdot -1\right)\right) \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right)\right) i\right)\right)\right))
double f() {
double r1050431 = -1.0;
double r1050432 = 1.0;
double r1050433 = /* ERROR: no complex support in C */;
double r1050434 = r1050433 * r1050433;
double r1050435 = r1050434 * r1050433;
double r1050436 = r1050435 * r1050433;
double r1050437 = r1050436 * r1050433;
double r1050438 = r1050437 * r1050433;
double r1050439 = 6.0;
double r1050440 = 0.0;
double r1050441 = /* ERROR: no complex support in C */;
double r1050442 = r1050441 * r1050433;
double r1050443 = r1050442 * r1050433;
double r1050444 = r1050443 * r1050433;
double r1050445 = r1050444 * r1050433;
double r1050446 = r1050445 * r1050433;
double r1050447 = r1050438 + r1050446;
double r1050448 = 15.0;
double r1050449 = /* ERROR: no complex support in C */;
double r1050450 = r1050449 * r1050433;
double r1050451 = r1050450 * r1050433;
double r1050452 = r1050451 * r1050433;
double r1050453 = r1050452 * r1050433;
double r1050454 = r1050447 + r1050453;
double r1050455 = 20.0;
double r1050456 = /* ERROR: no complex support in C */;
double r1050457 = r1050456 * r1050433;
double r1050458 = r1050457 * r1050433;
double r1050459 = r1050458 * r1050433;
double r1050460 = r1050454 + r1050459;
double r1050461 = r1050460 + r1050451;
double r1050462 = r1050461 + r1050442;
double r1050463 = /* ERROR: no complex support in C */;
double r1050464 = r1050462 + r1050463;
double r1050465 = /* ERROR: no complex support in C */;
return r1050465;
}
double f() {
double r1050466 = 1.0;
double r1050467 = 0.0;
double r1050468 = /* ERROR: no complex support in C */;
double r1050469 = -1.0;
double r1050470 = 6.0;
double r1050471 = r1050469 * r1050470;
double r1050472 = r1050466 * r1050467;
double r1050473 = r1050471 - r1050472;
double r1050474 = r1050466 * r1050470;
double r1050475 = r1050467 * r1050469;
double r1050476 = r1050474 + r1050475;
double r1050477 = /* ERROR: no complex support in C */;
double r1050478 = r1050468 + r1050477;
double r1050479 = r1050466 + r1050469;
double r1050480 = r1050469 - r1050466;
double r1050481 = r1050479 * r1050480;
double r1050482 = r1050466 * r1050469;
double r1050483 = r1050482 + r1050482;
double r1050484 = /* ERROR: no complex support in C */;
double r1050485 = 20.0;
double r1050486 = r1050469 * r1050485;
double r1050487 = r1050486 - r1050472;
double r1050488 = 15.0;
double r1050489 = r1050487 + r1050488;
double r1050490 = r1050485 * r1050466;
double r1050491 = r1050475 + r1050490;
double r1050492 = r1050467 + r1050491;
double r1050493 = /* ERROR: no complex support in C */;
double r1050494 = r1050484 * r1050493;
double r1050495 = r1050478 + r1050494;
double r1050496 = /* ERROR: no complex support in C */;
double r1050497 = r1050496 + r1050477;
double r1050498 = r1050483 + r1050481;
double r1050499 = r1050481 - r1050483;
double r1050500 = r1050498 * r1050499;
double r1050501 = r1050481 * r1050483;
double r1050502 = r1050501 + r1050501;
double r1050503 = /* ERROR: no complex support in C */;
double r1050504 = r1050497 * r1050503;
double r1050505 = r1050481 * r1050500;
double r1050506 = r1050483 * r1050502;
double r1050507 = r1050505 - r1050506;
double r1050508 = r1050500 * r1050483;
double r1050509 = r1050502 * r1050481;
double r1050510 = r1050508 + r1050509;
double r1050511 = /* ERROR: no complex support in C */;
double r1050512 = r1050504 + r1050511;
double r1050513 = r1050495 + r1050512;
double r1050514 = /* ERROR: no complex support in C */;
return r1050514;
}
Initial program 0
Simplified0
Final simplification0
herbie shell --seed 2019172
(FPCore ()
:name "3.9.1 imaginary part (p56)"
(im (+ (+ (+ (+ (+ (+ (* (* (* (* (* (complex -1.0 1.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (* (* (* (* (* (complex 6.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0))) (* (* (* (* (complex 15.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0))) (* (* (* (complex 20.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0))) (* (* (complex 15.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0))) (* (complex 6.0 0.0) (complex -1.0 1.0))) (complex 1.0 0.0))))