\frac{\left(\frac{8}{3} \cdot \sin \left(x \cdot 0.5\right)\right) \cdot \sin \left(x \cdot 0.5\right)}{\sin x}\frac{8 \cdot \frac{\sin \left(0.5 \cdot x\right)}{3}}{\frac{\sin x}{\sin \left(0.5 \cdot x\right)}}double f(double x) {
double r649434 = 8.0;
double r649435 = 3.0;
double r649436 = r649434 / r649435;
double r649437 = x;
double r649438 = 0.5;
double r649439 = r649437 * r649438;
double r649440 = sin(r649439);
double r649441 = r649436 * r649440;
double r649442 = r649441 * r649440;
double r649443 = sin(r649437);
double r649444 = r649442 / r649443;
return r649444;
}
double f(double x) {
double r649445 = 8.0;
double r649446 = 0.5;
double r649447 = x;
double r649448 = r649446 * r649447;
double r649449 = sin(r649448);
double r649450 = 3.0;
double r649451 = r649449 / r649450;
double r649452 = r649445 * r649451;
double r649453 = sin(r649447);
double r649454 = r649453 / r649449;
double r649455 = r649452 / r649454;
return r649455;
}




Bits error versus x
Results
| Original | 14.5 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 14.5
rmApplied associate-/l*0.5
Simplified0.5
rmApplied div-inv0.5
Applied associate-*l*0.5
Simplified0.3
Final simplification0.3
herbie shell --seed 2020018
(FPCore (x)
:name "Graphics.Rasterific.Svg.PathConverter:segmentToBezier from rasterific-svg-0.2.3.1, A"
:precision binary64
:herbie-target
(/ (/ (* 8 (sin (* x 0.5))) 3) (/ (sin x) (sin (* x 0.5))))
(/ (* (* (/ 8 3) (sin (* x 0.5))) (sin (* x 0.5))) (sin x)))