\frac{\left(\frac{8}{3} \cdot \sin \left(x \cdot 0.5\right)\right) \cdot \sin \left(x \cdot 0.5\right)}{\sin x}\left(8 \cdot \frac{\sin \left(x \cdot 0.5\right)}{3}\right) \cdot \log \left(e^{\frac{\sin \left(x \cdot 0.5\right)}{\sin x}}\right)double f(double x) {
double r524907 = 8.0;
double r524908 = 3.0;
double r524909 = r524907 / r524908;
double r524910 = x;
double r524911 = 0.5;
double r524912 = r524910 * r524911;
double r524913 = sin(r524912);
double r524914 = r524909 * r524913;
double r524915 = r524914 * r524913;
double r524916 = sin(r524910);
double r524917 = r524915 / r524916;
return r524917;
}
double f(double x) {
double r524918 = 8.0;
double r524919 = x;
double r524920 = 0.5;
double r524921 = r524919 * r524920;
double r524922 = sin(r524921);
double r524923 = 3.0;
double r524924 = r524922 / r524923;
double r524925 = r524918 * r524924;
double r524926 = sin(r524919);
double r524927 = r524922 / r524926;
double r524928 = exp(r524927);
double r524929 = log(r524928);
double r524930 = r524925 * r524929;
return r524930;
}




Bits error versus x
Results
| Original | 15.2 |
|---|---|
| Target | 0.3 |
| Herbie | 0.4 |
Initial program 15.2
rmApplied *-un-lft-identity15.2
Applied times-frac0.5
Simplified0.5
rmApplied div-inv0.5
Applied associate-*l*0.5
Simplified0.3
rmApplied add-log-exp0.4
Final simplification0.4
herbie shell --seed 2020045
(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)))