\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{\sin \left(0.5 \cdot x\right) \cdot 8}{3} \cdot \frac{\sin \left(x \cdot 0.5\right)}{\sin x}double f(double x) {
double r676304 = 8.0;
double r676305 = 3.0;
double r676306 = r676304 / r676305;
double r676307 = x;
double r676308 = 0.5;
double r676309 = r676307 * r676308;
double r676310 = sin(r676309);
double r676311 = r676306 * r676310;
double r676312 = r676311 * r676310;
double r676313 = sin(r676307);
double r676314 = r676312 / r676313;
return r676314;
}
double f(double x) {
double r676315 = 0.5;
double r676316 = x;
double r676317 = r676315 * r676316;
double r676318 = sin(r676317);
double r676319 = 8.0;
double r676320 = r676318 * r676319;
double r676321 = 3.0;
double r676322 = r676320 / r676321;
double r676323 = r676316 * r676315;
double r676324 = sin(r676323);
double r676325 = sin(r676316);
double r676326 = r676324 / r676325;
double r676327 = r676322 * r676326;
return r676327;
}




Bits error versus x
Results
| Original | 15.0 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 15.0
rmApplied *-un-lft-identity15.0
Applied times-frac0.5
Simplified0.5
rmApplied associate-*r/0.3
Final simplification0.3
herbie shell --seed 2020042 +o rules:numerics
(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)))