\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)}{\left(\frac{\sin x}{\sin \left(0.5 \cdot x\right)} \cdot \left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right)\right) \cdot \sqrt[3]{3}}double f(double x) {
double r656540 = 8.0;
double r656541 = 3.0;
double r656542 = r656540 / r656541;
double r656543 = x;
double r656544 = 0.5;
double r656545 = r656543 * r656544;
double r656546 = sin(r656545);
double r656547 = r656542 * r656546;
double r656548 = r656547 * r656546;
double r656549 = sin(r656543);
double r656550 = r656548 / r656549;
return r656550;
}
double f(double x) {
double r656551 = 8.0;
double r656552 = x;
double r656553 = 0.5;
double r656554 = r656552 * r656553;
double r656555 = sin(r656554);
double r656556 = r656551 * r656555;
double r656557 = sin(r656552);
double r656558 = r656553 * r656552;
double r656559 = sin(r656558);
double r656560 = r656557 / r656559;
double r656561 = 3.0;
double r656562 = cbrt(r656561);
double r656563 = r656562 * r656562;
double r656564 = r656560 * r656563;
double r656565 = r656564 * r656562;
double r656566 = r656556 / r656565;
return r656566;
}




Bits error versus x
Results
| Original | 14.8 |
|---|---|
| Target | 0.3 |
| Herbie | 0.4 |
Initial program 14.8
rmApplied associate-/l*0.5
Simplified0.5
rmApplied associate-*l/0.3
Applied associate-/l/0.3
rmApplied add-cube-cbrt0.3
Applied associate-*r*0.4
Final simplification0.4
herbie shell --seed 2020047
(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)))