\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(4 + 0.0 i\right) + \left(\left(\left(5 + 0.0 i\right) + \left(\left(\left(-\frac{1}{2}\right) + \frac{\sqrt{3}}{2} i\right) \cdot \left(\left(-\left(\frac{1}{2} + 2\right)\right) + \left(\frac{\sqrt{3}}{2} + 0.0\right) i\right)\right)\right) \cdot \left(\left(-\frac{1}{2}\right) + \frac{\sqrt{3}}{2} i\right)\right)\right) \cdot \left(\left(-\frac{1}{2}\right) + \frac{\sqrt{3}}{2} i\right)\right) + \left(7 + 0.0 i\right)\right))double f() {
double r30086 = 1.0;
double r30087 = -r30086;
double r30088 = 2.0;
double r30089 = r30087 / r30088;
double r30090 = 3.0;
double r30091 = sqrt(r30090);
double r30092 = r30091 / r30088;
double r30093 = /* ERROR: no complex support in C */;
double r30094 = r30093 * r30093;
double r30095 = r30094 * r30093;
double r30096 = r30095 * r30093;
double r30097 = -r30088;
double r30098 = 0.0;
double r30099 = /* ERROR: no complex support in C */;
double r30100 = r30099 * r30093;
double r30101 = r30100 * r30093;
double r30102 = r30101 * r30093;
double r30103 = r30096 + r30102;
double r30104 = 5.0;
double r30105 = /* ERROR: no complex support in C */;
double r30106 = r30105 * r30093;
double r30107 = r30106 * r30093;
double r30108 = r30103 + r30107;
double r30109 = 4.0;
double r30110 = /* ERROR: no complex support in C */;
double r30111 = r30110 * r30093;
double r30112 = r30108 + r30111;
double r30113 = 7.0;
double r30114 = /* ERROR: no complex support in C */;
double r30115 = r30112 + r30114;
double r30116 = /* ERROR: no complex support in C */;
return r30116;
}
double f() {
double r30117 = 4.0;
double r30118 = 0.0;
double r30119 = /* ERROR: no complex support in C */;
double r30120 = 5.0;
double r30121 = /* ERROR: no complex support in C */;
double r30122 = 1.0;
double r30123 = 2.0;
double r30124 = r30122 / r30123;
double r30125 = -r30124;
double r30126 = 3.0;
double r30127 = sqrt(r30126);
double r30128 = r30127 / r30123;
double r30129 = /* ERROR: no complex support in C */;
double r30130 = r30124 + r30123;
double r30131 = -r30130;
double r30132 = r30128 + r30118;
double r30133 = /* ERROR: no complex support in C */;
double r30134 = r30129 * r30133;
double r30135 = r30121 + r30134;
double r30136 = r30135 * r30129;
double r30137 = r30119 + r30136;
double r30138 = r30137 * r30129;
double r30139 = 7.0;
double r30140 = /* ERROR: no complex support in C */;
double r30141 = r30138 + r30140;
double r30142 = /* ERROR: no complex support in C */;
return r30142;
}
Initial program 61.9
Simplified0
Final simplification0
herbie shell --seed 2019195 +o rules:numerics
(FPCore ()
:name "3.9.2 real part (p56)"
(re (+ (+ (+ (+ (* (* (* (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0)) (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0))) (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0))) (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0))) (* (* (* (complex (- 2.0) 0.0) (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0))) (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0))) (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0)))) (* (* (complex 5.0 0.0) (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0))) (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0)))) (* (complex 4.0 0.0) (complex (/ (- 1.0) 2.0) (/ (sqrt 3.0) 2.0)))) (complex 7.0 0.0))))