\Im(\left(\left(\left(\left(\left(\left(\left(\left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) + \left(\left(\left(\left(\left(-2\right) + 0.0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(\left(\left(5 + 0.0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(\left(4 + 0.0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(7 + 0.0 i\right)\right))\Im(\left(\left(\left(\left(\left(\left(\left(\left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) + \left(\left(\left(\left(\left(-2\right) + 0.0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(\left(\left(5 + 0.0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(\left(4 + 0.0 i\right) \cdot \left(\frac{-1}{2} + \frac{\sqrt{3}}{2} i\right)\right)\right) + \left(7 + 0.0 i\right)\right))double f() {
double r30606 = 1.0;
double r30607 = -r30606;
double r30608 = 2.0;
double r30609 = r30607 / r30608;
double r30610 = 3.0;
double r30611 = sqrt(r30610);
double r30612 = r30611 / r30608;
double r30613 = /* ERROR: no complex support in C */;
double r30614 = r30613 * r30613;
double r30615 = r30614 * r30613;
double r30616 = r30615 * r30613;
double r30617 = -r30608;
double r30618 = 0.0;
double r30619 = /* ERROR: no complex support in C */;
double r30620 = r30619 * r30613;
double r30621 = r30620 * r30613;
double r30622 = r30621 * r30613;
double r30623 = r30616 + r30622;
double r30624 = 5.0;
double r30625 = /* ERROR: no complex support in C */;
double r30626 = r30625 * r30613;
double r30627 = r30626 * r30613;
double r30628 = r30623 + r30627;
double r30629 = 4.0;
double r30630 = /* ERROR: no complex support in C */;
double r30631 = r30630 * r30613;
double r30632 = r30628 + r30631;
double r30633 = 7.0;
double r30634 = /* ERROR: no complex support in C */;
double r30635 = r30632 + r30634;
double r30636 = /* ERROR: no complex support in C */;
return r30636;
}
double f() {
double r30637 = 1.0;
double r30638 = -r30637;
double r30639 = 2.0;
double r30640 = r30638 / r30639;
double r30641 = 3.0;
double r30642 = sqrt(r30641);
double r30643 = r30642 / r30639;
double r30644 = /* ERROR: no complex support in C */;
double r30645 = r30644 * r30644;
double r30646 = r30645 * r30644;
double r30647 = r30646 * r30644;
double r30648 = -r30639;
double r30649 = 0.0;
double r30650 = /* ERROR: no complex support in C */;
double r30651 = r30650 * r30644;
double r30652 = r30651 * r30644;
double r30653 = r30652 * r30644;
double r30654 = r30647 + r30653;
double r30655 = 5.0;
double r30656 = /* ERROR: no complex support in C */;
double r30657 = r30656 * r30644;
double r30658 = r30657 * r30644;
double r30659 = r30654 + r30658;
double r30660 = 4.0;
double r30661 = /* ERROR: no complex support in C */;
double r30662 = r30661 * r30644;
double r30663 = r30659 + r30662;
double r30664 = 7.0;
double r30665 = /* ERROR: no complex support in C */;
double r30666 = r30663 + r30665;
double r30667 = /* ERROR: no complex support in C */;
return r30667;
}
Initial program 0
Final simplification0
herbie shell --seed 2019326 +o rules:numerics
(FPCore ()
:name "3.9.2 imaginary part (p56)"
:precision binary64
(im (+ (+ (+ (+ (* (* (* (complex (/ (- 1) 2) (/ (sqrt 3) 2)) (complex (/ (- 1) 2) (/ (sqrt 3) 2))) (complex (/ (- 1) 2) (/ (sqrt 3) 2))) (complex (/ (- 1) 2) (/ (sqrt 3) 2))) (* (* (* (complex (- 2) 0.0) (complex (/ (- 1) 2) (/ (sqrt 3) 2))) (complex (/ (- 1) 2) (/ (sqrt 3) 2))) (complex (/ (- 1) 2) (/ (sqrt 3) 2)))) (* (* (complex 5 0.0) (complex (/ (- 1) 2) (/ (sqrt 3) 2))) (complex (/ (- 1) 2) (/ (sqrt 3) 2)))) (* (complex 4 0.0) (complex (/ (- 1) 2) (/ (sqrt 3) 2)))) (complex 7 0.0))))