\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(0.5 \cdot x\right)}{3}\right) \cdot \log \left(e^{\frac{\sin \left(0.5 \cdot x\right)}{\sin x}}\right)double f(double x) {
double r563587 = 8.0;
double r563588 = 3.0;
double r563589 = r563587 / r563588;
double r563590 = x;
double r563591 = 0.5;
double r563592 = r563590 * r563591;
double r563593 = sin(r563592);
double r563594 = r563589 * r563593;
double r563595 = r563594 * r563593;
double r563596 = sin(r563590);
double r563597 = r563595 / r563596;
return r563597;
}
double f(double x) {
double r563598 = 8.0;
double r563599 = 0.5;
double r563600 = x;
double r563601 = r563599 * r563600;
double r563602 = sin(r563601);
double r563603 = 3.0;
double r563604 = r563602 / r563603;
double r563605 = r563598 * r563604;
double r563606 = sin(r563600);
double r563607 = r563602 / r563606;
double r563608 = exp(r563607);
double r563609 = log(r563608);
double r563610 = r563605 * r563609;
return r563610;
}




Bits error versus x
Results
| Original | 15.4 |
|---|---|
| Target | 0.3 |
| Herbie | 0.4 |
Initial program 15.4
rmApplied *-un-lft-identity15.4
Applied times-frac0.5
Simplified0.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 2019354 +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)))