\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)}{1 \cdot \left(\frac{\sin x}{\sin \left(0.5 \cdot x\right)} \cdot 3\right)}double f(double x) {
double r564703 = 8.0;
double r564704 = 3.0;
double r564705 = r564703 / r564704;
double r564706 = x;
double r564707 = 0.5;
double r564708 = r564706 * r564707;
double r564709 = sin(r564708);
double r564710 = r564705 * r564709;
double r564711 = r564710 * r564709;
double r564712 = sin(r564706);
double r564713 = r564711 / r564712;
return r564713;
}
double f(double x) {
double r564714 = 8.0;
double r564715 = x;
double r564716 = 0.5;
double r564717 = r564715 * r564716;
double r564718 = sin(r564717);
double r564719 = r564714 * r564718;
double r564720 = 1.0;
double r564721 = sin(r564715);
double r564722 = r564716 * r564715;
double r564723 = sin(r564722);
double r564724 = r564721 / r564723;
double r564725 = 3.0;
double r564726 = r564724 * r564725;
double r564727 = r564720 * r564726;
double r564728 = r564719 / r564727;
return r564728;
}




Bits error versus x
Results
| Original | 14.9 |
|---|---|
| Target | 0.3 |
| Herbie | 0.3 |
Initial program 14.9
rmApplied associate-/l*0.5
Simplified0.5
rmApplied associate-*l/0.3
Applied associate-/l/0.3
rmApplied *-un-lft-identity0.3
Applied *-un-lft-identity0.3
Applied times-frac0.3
Applied associate-*l*0.3
Final simplification0.3
herbie shell --seed 2020027
(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)))