\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(0.5 \cdot x\right)}{3} \cdot \frac{1}{\log \left(e^{\frac{\sin x}{\sin \left(x \cdot 0.5\right)}}\right)}double f(double x) {
double r416652 = 8.0;
double r416653 = 3.0;
double r416654 = r416652 / r416653;
double r416655 = x;
double r416656 = 0.5;
double r416657 = r416655 * r416656;
double r416658 = sin(r416657);
double r416659 = r416654 * r416658;
double r416660 = r416659 * r416658;
double r416661 = sin(r416655);
double r416662 = r416660 / r416661;
return r416662;
}
double f(double x) {
double r416663 = 8.0;
double r416664 = 0.5;
double r416665 = x;
double r416666 = r416664 * r416665;
double r416667 = sin(r416666);
double r416668 = r416663 * r416667;
double r416669 = 3.0;
double r416670 = r416668 / r416669;
double r416671 = 1.0;
double r416672 = sin(r416665);
double r416673 = r416665 * r416664;
double r416674 = sin(r416673);
double r416675 = r416672 / r416674;
double r416676 = exp(r416675);
double r416677 = log(r416676);
double r416678 = r416671 / r416677;
double r416679 = r416670 * r416678;
return r416679;
}




Bits error versus x
Results
| Original | 14.8 |
|---|---|
| Target | 0.3 |
| Herbie | 0.4 |
Initial program 14.8
rmApplied associate-/l*0.5
rmApplied associate-*l/0.3
Simplified0.3
rmApplied div-inv0.3
rmApplied add-log-exp0.4
Final simplification0.4
herbie shell --seed 2019323
(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)))