\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(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right) \cdot \left(20 \cdot -1 - 0.0 \cdot 1\right) - \left(\left(-1 + -1\right) \cdot 1\right) \cdot \mathsf{fma}\left(20, 1, -1 \cdot 0.0\right)\right) + \mathsf{fma}\left(20 \cdot -1 - 0.0 \cdot 1, \left(-1 + -1\right) \cdot 1, \mathsf{fma}\left(20, 1, -1 \cdot 0.0\right) \cdot \left(\left(-1 + 1\right) \cdot \left(-1 - 1\right)\right)\right) i\right) + \left(\left(\left(\left(\left(6 + \left(-1 \cdot 15 - 0.0 \cdot 1\right)\right) + \left(\mathsf{fma}\left(1, 15, -1 \cdot 0.0\right) + 0.0\right) i\right) + \left(\left(\left(-1 + 1\right) \cdot \left(-1 - 1\right) + \left(-1 + -1\right) \cdot 1 i\right) \cdot \left(\left(\left(-1 \cdot 15 - 0.0 \cdot 1\right) + \mathsf{fma}\left(1, 15, -1 \cdot 0.0\right) i\right) + \left(\left(\left(-1 + 1\right) \cdot \left(-1 - 1\right) + \left(-1 + -1\right) \cdot 1 i\right) \cdot \left(\left(6 + 0.0 i\right) + \left(-1 + 1 i\right)\right)\right)\right)\right)\right) \cdot \left(-1 + 1 i\right)\right) + \left(1 + 0.0 i\right)\right)\right))double f() {
double r1918664 = -1.0;
double r1918665 = 1.0;
double r1918666 = /* ERROR: no complex support in C */;
double r1918667 = r1918666 * r1918666;
double r1918668 = r1918667 * r1918666;
double r1918669 = r1918668 * r1918666;
double r1918670 = r1918669 * r1918666;
double r1918671 = r1918670 * r1918666;
double r1918672 = 6.0;
double r1918673 = 0.0;
double r1918674 = /* ERROR: no complex support in C */;
double r1918675 = r1918674 * r1918666;
double r1918676 = r1918675 * r1918666;
double r1918677 = r1918676 * r1918666;
double r1918678 = r1918677 * r1918666;
double r1918679 = r1918678 * r1918666;
double r1918680 = r1918671 + r1918679;
double r1918681 = 15.0;
double r1918682 = /* ERROR: no complex support in C */;
double r1918683 = r1918682 * r1918666;
double r1918684 = r1918683 * r1918666;
double r1918685 = r1918684 * r1918666;
double r1918686 = r1918685 * r1918666;
double r1918687 = r1918680 + r1918686;
double r1918688 = 20.0;
double r1918689 = /* ERROR: no complex support in C */;
double r1918690 = r1918689 * r1918666;
double r1918691 = r1918690 * r1918666;
double r1918692 = r1918691 * r1918666;
double r1918693 = r1918687 + r1918692;
double r1918694 = r1918693 + r1918684;
double r1918695 = r1918694 + r1918675;
double r1918696 = /* ERROR: no complex support in C */;
double r1918697 = r1918695 + r1918696;
double r1918698 = /* ERROR: no complex support in C */;
return r1918698;
}
double f() {
double r1918699 = -1.0;
double r1918700 = 1.0;
double r1918701 = r1918699 + r1918700;
double r1918702 = r1918699 - r1918700;
double r1918703 = r1918701 * r1918702;
double r1918704 = 20.0;
double r1918705 = r1918704 * r1918699;
double r1918706 = 0.0;
double r1918707 = r1918706 * r1918700;
double r1918708 = r1918705 - r1918707;
double r1918709 = r1918703 * r1918708;
double r1918710 = r1918699 + r1918699;
double r1918711 = r1918710 * r1918700;
double r1918712 = r1918699 * r1918706;
double r1918713 = fma(r1918704, r1918700, r1918712);
double r1918714 = r1918711 * r1918713;
double r1918715 = r1918709 - r1918714;
double r1918716 = r1918713 * r1918703;
double r1918717 = fma(r1918708, r1918711, r1918716);
double r1918718 = /* ERROR: no complex support in C */;
double r1918719 = 6.0;
double r1918720 = 15.0;
double r1918721 = r1918699 * r1918720;
double r1918722 = r1918721 - r1918707;
double r1918723 = r1918719 + r1918722;
double r1918724 = fma(r1918700, r1918720, r1918712);
double r1918725 = r1918724 + r1918706;
double r1918726 = /* ERROR: no complex support in C */;
double r1918727 = /* ERROR: no complex support in C */;
double r1918728 = /* ERROR: no complex support in C */;
double r1918729 = /* ERROR: no complex support in C */;
double r1918730 = /* ERROR: no complex support in C */;
double r1918731 = r1918729 + r1918730;
double r1918732 = r1918727 * r1918731;
double r1918733 = r1918728 + r1918732;
double r1918734 = r1918727 * r1918733;
double r1918735 = r1918726 + r1918734;
double r1918736 = r1918735 * r1918730;
double r1918737 = /* ERROR: no complex support in C */;
double r1918738 = r1918736 + r1918737;
double r1918739 = r1918718 + r1918738;
double r1918740 = /* ERROR: no complex support in C */;
return r1918740;
}
Initial program 0
Simplified0
Final simplification0
herbie shell --seed 2019174 +o rules:numerics
(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))))