\frac{6 \cdot \left(x - 1\right)}{\left(x + 1\right) + 4 \cdot \sqrt{x}}\frac{x - 1}{\left(x + 1\right) + 4 \cdot \sqrt{x}} \cdot 6double f(double x) {
double r640703 = 6.0;
double r640704 = x;
double r640705 = 1.0;
double r640706 = r640704 - r640705;
double r640707 = r640703 * r640706;
double r640708 = r640704 + r640705;
double r640709 = 4.0;
double r640710 = sqrt(r640704);
double r640711 = r640709 * r640710;
double r640712 = r640708 + r640711;
double r640713 = r640707 / r640712;
return r640713;
}
double f(double x) {
double r640714 = x;
double r640715 = 1.0;
double r640716 = r640714 - r640715;
double r640717 = r640714 + r640715;
double r640718 = 4.0;
double r640719 = sqrt(r640714);
double r640720 = r640718 * r640719;
double r640721 = r640717 + r640720;
double r640722 = r640716 / r640721;
double r640723 = 6.0;
double r640724 = r640722 * r640723;
return r640724;
}




Bits error versus x
Results
| Original | 0.2 |
|---|---|
| Target | 0.1 |
| Herbie | 0.0 |
Initial program 0.2
rmApplied *-un-lft-identity0.2
Applied times-frac0.0
Simplified0.0
rmApplied *-commutative0.0
Final simplification0.0
herbie shell --seed 2019305
(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)))))