\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 r30344 = 1.0;
double r30345 = -r30344;
double r30346 = 2.0;
double r30347 = r30345 / r30346;
double r30348 = 3.0;
double r30349 = sqrt(r30348);
double r30350 = r30349 / r30346;
double r30351 = /* ERROR: no complex support in C */;
double r30352 = r30351 * r30351;
double r30353 = r30352 * r30351;
double r30354 = r30353 * r30351;
double r30355 = -r30346;
double r30356 = 0.0;
double r30357 = /* ERROR: no complex support in C */;
double r30358 = r30357 * r30351;
double r30359 = r30358 * r30351;
double r30360 = r30359 * r30351;
double r30361 = r30354 + r30360;
double r30362 = 5.0;
double r30363 = /* ERROR: no complex support in C */;
double r30364 = r30363 * r30351;
double r30365 = r30364 * r30351;
double r30366 = r30361 + r30365;
double r30367 = 4.0;
double r30368 = /* ERROR: no complex support in C */;
double r30369 = r30368 * r30351;
double r30370 = r30366 + r30369;
double r30371 = 7.0;
double r30372 = /* ERROR: no complex support in C */;
double r30373 = r30370 + r30372;
double r30374 = /* ERROR: no complex support in C */;
return r30374;
}
double f() {
double r30375 = 1.0;
double r30376 = -r30375;
double r30377 = 2.0;
double r30378 = r30376 / r30377;
double r30379 = 3.0;
double r30380 = sqrt(r30379);
double r30381 = r30380 / r30377;
double r30382 = /* ERROR: no complex support in C */;
double r30383 = r30382 * r30382;
double r30384 = r30383 * r30382;
double r30385 = r30384 * r30382;
double r30386 = -r30377;
double r30387 = 0.0;
double r30388 = /* ERROR: no complex support in C */;
double r30389 = r30388 * r30382;
double r30390 = r30389 * r30382;
double r30391 = r30390 * r30382;
double r30392 = r30385 + r30391;
double r30393 = 5.0;
double r30394 = /* ERROR: no complex support in C */;
double r30395 = r30394 * r30382;
double r30396 = r30395 * r30382;
double r30397 = r30392 + r30396;
double r30398 = 4.0;
double r30399 = /* ERROR: no complex support in C */;
double r30400 = r30399 * r30382;
double r30401 = r30397 + r30400;
double r30402 = 7.0;
double r30403 = /* ERROR: no complex support in C */;
double r30404 = r30401 + r30403;
double r30405 = /* ERROR: no complex support in C */;
return r30405;
}
Initial program 61.9
Final simplification61.9
herbie shell --seed 2020057 +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))))