\Re(\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))\Re(\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 r37446 = 1.0;
double r37447 = -r37446;
double r37448 = 2.0;
double r37449 = r37447 / r37448;
double r37450 = 3.0;
double r37451 = sqrt(r37450);
double r37452 = r37451 / r37448;
double r37453 = /* ERROR: no complex support in C */;
double r37454 = r37453 * r37453;
double r37455 = r37454 * r37453;
double r37456 = r37455 * r37453;
double r37457 = -r37448;
double r37458 = 0.0;
double r37459 = /* ERROR: no complex support in C */;
double r37460 = r37459 * r37453;
double r37461 = r37460 * r37453;
double r37462 = r37461 * r37453;
double r37463 = r37456 + r37462;
double r37464 = 5.0;
double r37465 = /* ERROR: no complex support in C */;
double r37466 = r37465 * r37453;
double r37467 = r37466 * r37453;
double r37468 = r37463 + r37467;
double r37469 = 4.0;
double r37470 = /* ERROR: no complex support in C */;
double r37471 = r37470 * r37453;
double r37472 = r37468 + r37471;
double r37473 = 7.0;
double r37474 = /* ERROR: no complex support in C */;
double r37475 = r37472 + r37474;
double r37476 = /* ERROR: no complex support in C */;
return r37476;
}
double f() {
double r37477 = 1.0;
double r37478 = -r37477;
double r37479 = 2.0;
double r37480 = r37478 / r37479;
double r37481 = 3.0;
double r37482 = sqrt(r37481);
double r37483 = r37482 / r37479;
double r37484 = /* ERROR: no complex support in C */;
double r37485 = r37484 * r37484;
double r37486 = r37485 * r37484;
double r37487 = r37486 * r37484;
double r37488 = -r37479;
double r37489 = 0.0;
double r37490 = /* ERROR: no complex support in C */;
double r37491 = r37490 * r37484;
double r37492 = r37491 * r37484;
double r37493 = r37492 * r37484;
double r37494 = r37487 + r37493;
double r37495 = 5.0;
double r37496 = /* ERROR: no complex support in C */;
double r37497 = r37496 * r37484;
double r37498 = r37497 * r37484;
double r37499 = r37494 + r37498;
double r37500 = 4.0;
double r37501 = /* ERROR: no complex support in C */;
double r37502 = r37501 * r37484;
double r37503 = r37499 + r37502;
double r37504 = 7.0;
double r37505 = /* ERROR: no complex support in C */;
double r37506 = r37503 + r37505;
double r37507 = /* ERROR: no complex support in C */;
return r37507;
}
Initial program 61.9
Final simplification61.9
herbie shell --seed 2020049 +o rules:numerics
(FPCore ()
:name "3.9.2 real part (p56)"
:precision binary64
(re (+ (+ (+ (+ (* (* (* (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))))