\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 \sin \left(x \cdot 0.5\right)}{\frac{\sin x}{\sin \left(0.5 \cdot x\right)} \cdot 3}double f(double x) {
double r337092 = 8.0;
double r337093 = 3.0;
double r337094 = r337092 / r337093;
double r337095 = x;
double r337096 = 0.5;
double r337097 = r337095 * r337096;
double r337098 = sin(r337097);
double r337099 = r337094 * r337098;
double r337100 = r337099 * r337098;
double r337101 = sin(r337095);
double r337102 = r337100 / r337101;
return r337102;
}
double f(double x) {
double r337103 = 8.0;
double r337104 = x;
double r337105 = 0.5;
double r337106 = r337104 * r337105;
double r337107 = sin(r337106);
double r337108 = r337103 * r337107;
double r337109 = sin(r337104);
double r337110 = r337105 * r337104;
double r337111 = sin(r337110);
double r337112 = r337109 / r337111;
double r337113 = 3.0;
double r337114 = r337112 * r337113;
double r337115 = r337108 / r337114;
return r337115;
}




Bits error versus x
Results
| Original | 15.2 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 15.2
rmApplied associate-/l*0.5
Simplified0.5
rmApplied associate-*l/0.3
Applied associate-/l/0.3
Final simplification0.3
herbie shell --seed 2019326 +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)))