\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(-1 \cdot 6 - 0.0 \cdot 1\right) + \mathsf{fma}\left(0.0, -1, 6 \cdot 1\right) i\right) + \left(\left(\left(1 + \left(\left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot 15 - \left(1 \cdot -1 + 1 \cdot -1\right) \cdot 0.0\right)\right) + \left(\mathsf{fma}\left(15, 1 \cdot -1 + 1 \cdot -1, 0.0 \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right)\right) + 0.0\right) i\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(\left(\left(1 + -1\right) \cdot \left(-1 - 1\right) + \left(1 \cdot -1 + 1 \cdot -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(-1 \cdot 6 - 0.0 \cdot 1\right) \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) - \mathsf{fma}\left(0.0, -1, 6 \cdot 1\right) \cdot \left(1 \cdot -1 + 1 \cdot -1\right)\right)\right) + \left(\left(-1 \cdot 20 - 0.0 \cdot 1\right) + \left(\left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) \cdot 15 - \left(1 \cdot -1 + 1 \cdot -1\right) \cdot 0.0\right)\right)\right) + \left(\left(\left(\left(1 \cdot -1 + 1 \cdot -1\right) \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right) + \left(1 \cdot -1 + 1 \cdot -1\right) \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right)\right) + \mathsf{fma}\left(-1 \cdot 6 - 0.0 \cdot 1, 1 \cdot -1 + 1 \cdot -1, \mathsf{fma}\left(0.0, -1, 6 \cdot 1\right) \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right)\right)\right) + \left(\mathsf{fma}\left(20, 1, 0.0 \cdot -1\right) + \mathsf{fma}\left(15, 1 \cdot -1 + 1 \cdot -1, 0.0 \cdot \left(\left(1 + -1\right) \cdot \left(-1 - 1\right)\right)\right)\right)\right) i\right)\right)\right)\right))double f() {
double r2275468 = -1.0;
double r2275469 = 1.0;
double r2275470 = /* ERROR: no complex support in C */;
double r2275471 = r2275470 * r2275470;
double r2275472 = r2275471 * r2275470;
double r2275473 = r2275472 * r2275470;
double r2275474 = r2275473 * r2275470;
double r2275475 = r2275474 * r2275470;
double r2275476 = 6.0;
double r2275477 = 0.0;
double r2275478 = /* ERROR: no complex support in C */;
double r2275479 = r2275478 * r2275470;
double r2275480 = r2275479 * r2275470;
double r2275481 = r2275480 * r2275470;
double r2275482 = r2275481 * r2275470;
double r2275483 = r2275482 * r2275470;
double r2275484 = r2275475 + r2275483;
double r2275485 = 15.0;
double r2275486 = /* ERROR: no complex support in C */;
double r2275487 = r2275486 * r2275470;
double r2275488 = r2275487 * r2275470;
double r2275489 = r2275488 * r2275470;
double r2275490 = r2275489 * r2275470;
double r2275491 = r2275484 + r2275490;
double r2275492 = 20.0;
double r2275493 = /* ERROR: no complex support in C */;
double r2275494 = r2275493 * r2275470;
double r2275495 = r2275494 * r2275470;
double r2275496 = r2275495 * r2275470;
double r2275497 = r2275491 + r2275496;
double r2275498 = r2275497 + r2275488;
double r2275499 = r2275498 + r2275479;
double r2275500 = /* ERROR: no complex support in C */;
double r2275501 = r2275499 + r2275500;
double r2275502 = /* ERROR: no complex support in C */;
return r2275502;
}
double f() {
double r2275503 = -1.0;
double r2275504 = 6.0;
double r2275505 = r2275503 * r2275504;
double r2275506 = 0.0;
double r2275507 = 1.0;
double r2275508 = r2275506 * r2275507;
double r2275509 = r2275505 - r2275508;
double r2275510 = r2275504 * r2275507;
double r2275511 = fma(r2275506, r2275503, r2275510);
double r2275512 = /* ERROR: no complex support in C */;
double r2275513 = r2275507 + r2275503;
double r2275514 = r2275503 - r2275507;
double r2275515 = r2275513 * r2275514;
double r2275516 = 15.0;
double r2275517 = r2275515 * r2275516;
double r2275518 = r2275507 * r2275503;
double r2275519 = r2275518 + r2275518;
double r2275520 = r2275519 * r2275506;
double r2275521 = r2275517 - r2275520;
double r2275522 = r2275507 + r2275521;
double r2275523 = r2275506 * r2275515;
double r2275524 = fma(r2275516, r2275519, r2275523);
double r2275525 = r2275524 + r2275506;
double r2275526 = /* ERROR: no complex support in C */;
double r2275527 = /* ERROR: no complex support in C */;
double r2275528 = r2275515 + r2275519;
double r2275529 = r2275515 - r2275519;
double r2275530 = r2275528 * r2275529;
double r2275531 = r2275509 * r2275515;
double r2275532 = r2275511 * r2275519;
double r2275533 = r2275531 - r2275532;
double r2275534 = r2275530 + r2275533;
double r2275535 = 20.0;
double r2275536 = r2275503 * r2275535;
double r2275537 = r2275536 - r2275508;
double r2275538 = r2275537 + r2275521;
double r2275539 = r2275534 + r2275538;
double r2275540 = r2275519 * r2275515;
double r2275541 = r2275540 + r2275540;
double r2275542 = r2275511 * r2275515;
double r2275543 = fma(r2275509, r2275519, r2275542);
double r2275544 = r2275541 + r2275543;
double r2275545 = r2275506 * r2275503;
double r2275546 = fma(r2275535, r2275507, r2275545);
double r2275547 = r2275546 + r2275524;
double r2275548 = r2275544 + r2275547;
double r2275549 = /* ERROR: no complex support in C */;
double r2275550 = r2275527 * r2275549;
double r2275551 = r2275526 + r2275550;
double r2275552 = r2275512 + r2275551;
double r2275553 = /* ERROR: no complex support in C */;
return r2275553;
}
Initial program 0
Simplified0
Final simplification0
herbie shell --seed 2019168 +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.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)) (*.c (*.c (*.c (*.c (*.c (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))) (*.c (*.c (*.c (*.c (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))) (*.c (*.c (*.c (complex 20.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0)) (complex -1.0 1.0))) (*.c (*.c (complex 15.0 0.0) (complex -1.0 1.0)) (complex -1.0 1.0))) (*.c (complex 6.0 0.0) (complex -1.0 1.0))) (complex 1.0 0.0))))