\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\frac{1 - x}{y} \cdot \frac{\frac{3 - x}{\sqrt[3]{3} \cdot \sqrt[3]{3}}}{\sqrt[3]{3}}double f(double x, double y) {
double r77745969 = 1.0;
double r77745970 = x;
double r77745971 = r77745969 - r77745970;
double r77745972 = 3.0;
double r77745973 = r77745972 - r77745970;
double r77745974 = r77745971 * r77745973;
double r77745975 = y;
double r77745976 = r77745975 * r77745972;
double r77745977 = r77745974 / r77745976;
return r77745977;
}
double f(double x, double y) {
double r77745978 = 1.0;
double r77745979 = x;
double r77745980 = r77745978 - r77745979;
double r77745981 = y;
double r77745982 = r77745980 / r77745981;
double r77745983 = 3.0;
double r77745984 = r77745983 - r77745979;
double r77745985 = cbrt(r77745983);
double r77745986 = r77745985 * r77745985;
double r77745987 = r77745984 / r77745986;
double r77745988 = r77745987 / r77745985;
double r77745989 = r77745982 * r77745988;
return r77745989;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.4 |
|---|---|
| Target | 0.1 |
| Herbie | 0.2 |
Initial program 5.4
rmApplied times-frac0.1
rmApplied add-cube-cbrt0.1
Applied associate-/r*0.2
Final simplification0.2
herbie shell --seed 2019173 +o rules:numerics
(FPCore (x y)
:name "Diagrams.TwoD.Arc:bezierFromSweepQ1 from diagrams-lib-1.3.0.3"
:herbie-target
(* (/ (- 1.0 x) y) (/ (- 3.0 x) 3.0))
(/ (* (- 1.0 x) (- 3.0 x)) (* y 3.0)))