\Re(\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))
\Re(\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 r1728418 = -1.0;
double r1728419 = 1.0;
double r1728420 = /* ERROR: no complex support in C */;
double r1728421 = r1728420 * r1728420;
double r1728422 = r1728421 * r1728420;
double r1728423 = r1728422 * r1728420;
double r1728424 = r1728423 * r1728420;
double r1728425 = r1728424 * r1728420;
double r1728426 = 6.0;
double r1728427 = 0.0;
double r1728428 = /* ERROR: no complex support in C */;
double r1728429 = r1728428 * r1728420;
double r1728430 = r1728429 * r1728420;
double r1728431 = r1728430 * r1728420;
double r1728432 = r1728431 * r1728420;
double r1728433 = r1728432 * r1728420;
double r1728434 = r1728425 + r1728433;
double r1728435 = 15.0;
double r1728436 = /* ERROR: no complex support in C */;
double r1728437 = r1728436 * r1728420;
double r1728438 = r1728437 * r1728420;
double r1728439 = r1728438 * r1728420;
double r1728440 = r1728439 * r1728420;
double r1728441 = r1728434 + r1728440;
double r1728442 = 20.0;
double r1728443 = /* ERROR: no complex support in C */;
double r1728444 = r1728443 * r1728420;
double r1728445 = r1728444 * r1728420;
double r1728446 = r1728445 * r1728420;
double r1728447 = r1728441 + r1728446;
double r1728448 = r1728447 + r1728438;
double r1728449 = r1728448 + r1728429;
double r1728450 = /* ERROR: no complex support in C */;
double r1728451 = r1728449 + r1728450;
double r1728452 = /* ERROR: no complex support in C */;
return r1728452;
}
double f() {
double r1728453 = -1.0;
double r1728454 = 6.0;
double r1728455 = r1728453 * r1728454;
double r1728456 = 0.0;
double r1728457 = 1.0;
double r1728458 = r1728456 * r1728457;
double r1728459 = r1728455 - r1728458;
double r1728460 = r1728454 * r1728457;
double r1728461 = fma(r1728456, r1728453, r1728460);
double r1728462 = /* ERROR: no complex support in C */;
double r1728463 = r1728457 + r1728453;
double r1728464 = r1728453 - r1728457;
double r1728465 = r1728463 * r1728464;
double r1728466 = 15.0;
double r1728467 = r1728465 * r1728466;
double r1728468 = r1728457 * r1728453;
double r1728469 = r1728468 + r1728468;
double r1728470 = r1728469 * r1728456;
double r1728471 = r1728467 - r1728470;
double r1728472 = r1728457 + r1728471;
double r1728473 = r1728456 * r1728465;
double r1728474 = fma(r1728466, r1728469, r1728473);
double r1728475 = r1728474 + r1728456;
double r1728476 = /* ERROR: no complex support in C */;
double r1728477 = /* ERROR: no complex support in C */;
double r1728478 = r1728465 + r1728469;
double r1728479 = r1728465 - r1728469;
double r1728480 = r1728478 * r1728479;
double r1728481 = r1728459 * r1728465;
double r1728482 = r1728461 * r1728469;
double r1728483 = r1728481 - r1728482;
double r1728484 = r1728480 + r1728483;
double r1728485 = 20.0;
double r1728486 = r1728453 * r1728485;
double r1728487 = r1728486 - r1728458;
double r1728488 = r1728487 + r1728471;
double r1728489 = r1728484 + r1728488;
double r1728490 = r1728469 * r1728465;
double r1728491 = r1728490 + r1728490;
double r1728492 = r1728461 * r1728465;
double r1728493 = fma(r1728459, r1728469, r1728492);
double r1728494 = r1728491 + r1728493;
double r1728495 = r1728456 * r1728453;
double r1728496 = fma(r1728485, r1728457, r1728495);
double r1728497 = r1728496 + r1728474;
double r1728498 = r1728494 + r1728497;
double r1728499 = /* ERROR: no complex support in C */;
double r1728500 = r1728477 * r1728499;
double r1728501 = r1728476 + r1728500;
double r1728502 = r1728462 + r1728501;
double r1728503 = /* ERROR: no complex support in C */;
return r1728503;
}
Initial program 0
Simplified0
Final simplification0
herbie shell --seed 2019169 +o rules:numerics
(FPCore ()
:name "3.9.1 real part (p56)"
(re (+ (+ (+ (+ (+ (+ (* (* (* (* (* (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))))