\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\frac{1 - x}{y} \cdot \frac{1}{\frac{3}{3 - x}}double f(double x, double y) {
double r700801 = 1.0;
double r700802 = x;
double r700803 = r700801 - r700802;
double r700804 = 3.0;
double r700805 = r700804 - r700802;
double r700806 = r700803 * r700805;
double r700807 = y;
double r700808 = r700807 * r700804;
double r700809 = r700806 / r700808;
return r700809;
}
double f(double x, double y) {
double r700810 = 1.0;
double r700811 = x;
double r700812 = r700810 - r700811;
double r700813 = y;
double r700814 = r700812 / r700813;
double r700815 = 1.0;
double r700816 = 3.0;
double r700817 = r700816 - r700811;
double r700818 = r700816 / r700817;
double r700819 = r700815 / r700818;
double r700820 = r700814 * r700819;
return r700820;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.7 |
|---|---|
| Target | 0.1 |
| Herbie | 0.2 |
Initial program 5.7
rmApplied times-frac0.1
rmApplied clear-num0.2
Final simplification0.2
herbie shell --seed 2020081 +o rules:numerics
(FPCore (x y)
:name "Diagrams.TwoD.Arc:bezierFromSweepQ1 from diagrams-lib-1.3.0.3"
:precision binary64
:herbie-target
(* (/ (- 1 x) y) (/ (- 3 x) 3))
(/ (* (- 1 x) (- 3 x)) (* y 3)))