\frac{6 \cdot \left(x - 1\right)}{\left(x + 1\right) + 4 \cdot \sqrt{x}}\frac{1}{\frac{\frac{\left(x + 1\right) + 4 \cdot \sqrt{x}}{x - 1}}{6}}double f(double x) {
double r996225 = 6.0;
double r996226 = x;
double r996227 = 1.0;
double r996228 = r996226 - r996227;
double r996229 = r996225 * r996228;
double r996230 = r996226 + r996227;
double r996231 = 4.0;
double r996232 = sqrt(r996226);
double r996233 = r996231 * r996232;
double r996234 = r996230 + r996233;
double r996235 = r996229 / r996234;
return r996235;
}
double f(double x) {
double r996236 = 1.0;
double r996237 = x;
double r996238 = 1.0;
double r996239 = r996237 + r996238;
double r996240 = 4.0;
double r996241 = sqrt(r996237);
double r996242 = r996240 * r996241;
double r996243 = r996239 + r996242;
double r996244 = r996237 - r996238;
double r996245 = r996243 / r996244;
double r996246 = 6.0;
double r996247 = r996245 / r996246;
double r996248 = r996236 / r996247;
return r996248;
}




Bits error versus x
Results
| Original | 0.2 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 0.2
rmApplied associate-/l*0.1
rmApplied clear-num0.1
Final simplification0.1
herbie shell --seed 2020065
(FPCore (x)
:name "Data.Approximate.Numerics:blog from approximate-0.2.2.1"
:precision binary64
:herbie-target
(/ 6 (/ (+ (+ x 1) (* 4 (sqrt x))) (- x 1)))
(/ (* 6 (- x 1)) (+ (+ x 1) (* 4 (sqrt x)))))