\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\left(1 - x\right) \cdot \frac{\frac{3 - x}{3}}{y}double f(double x, double y) {
double r648231 = 1.0;
double r648232 = x;
double r648233 = r648231 - r648232;
double r648234 = 3.0;
double r648235 = r648234 - r648232;
double r648236 = r648233 * r648235;
double r648237 = y;
double r648238 = r648237 * r648234;
double r648239 = r648236 / r648238;
return r648239;
}
double f(double x, double y) {
double r648240 = 1.0;
double r648241 = x;
double r648242 = r648240 - r648241;
double r648243 = 3.0;
double r648244 = r648243 - r648241;
double r648245 = r648244 / r648243;
double r648246 = y;
double r648247 = r648245 / r648246;
double r648248 = r648242 * r648247;
return r648248;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.7 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 5.7
rmApplied times-frac0.1
rmApplied div-inv0.2
Applied associate-*l*0.2
Simplified0.1
Final simplification0.1
herbie shell --seed 1978988140
(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)))