\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{\frac{8 \cdot \sin \left(x \cdot 0.5\right)}{\frac{\sin x}{\sin \left(0.5 \cdot x\right)}}}{3}double f(double x) {
double r366765 = 8.0;
double r366766 = 3.0;
double r366767 = r366765 / r366766;
double r366768 = x;
double r366769 = 0.5;
double r366770 = r366768 * r366769;
double r366771 = sin(r366770);
double r366772 = r366767 * r366771;
double r366773 = r366772 * r366771;
double r366774 = sin(r366768);
double r366775 = r366773 / r366774;
return r366775;
}
double f(double x) {
double r366776 = 8.0;
double r366777 = x;
double r366778 = 0.5;
double r366779 = r366777 * r366778;
double r366780 = sin(r366779);
double r366781 = r366776 * r366780;
double r366782 = sin(r366777);
double r366783 = r366778 * r366777;
double r366784 = sin(r366783);
double r366785 = r366782 / r366784;
double r366786 = r366781 / r366785;
double r366787 = 3.0;
double r366788 = r366786 / r366787;
return r366788;
}




Bits error versus x
Results
| Original | 15.1 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 15.1
rmApplied associate-/l*0.5
rmApplied associate-*l/0.3
Applied associate-/l/0.3
rmApplied add-cbrt-cube0.4
Simplified0.4
rmApplied associate-/r*0.4
Simplified0.3
Final simplification0.3
herbie shell --seed 2019235 +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)))