\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 r832839 = 6.0;
double r832840 = x;
double r832841 = 1.0;
double r832842 = r832840 - r832841;
double r832843 = r832839 * r832842;
double r832844 = r832840 + r832841;
double r832845 = 4.0;
double r832846 = sqrt(r832840);
double r832847 = r832845 * r832846;
double r832848 = r832844 + r832847;
double r832849 = r832843 / r832848;
return r832849;
}
double f(double x) {
double r832850 = x;
double r832851 = 1.0;
double r832852 = r832850 - r832851;
double r832853 = r832850 + r832851;
double r832854 = 4.0;
double r832855 = sqrt(r832850);
double r832856 = r832854 * r832855;
double r832857 = r832853 + r832856;
double r832858 = r832852 / r832857;
double r832859 = 6.0;
double r832860 = r832858 * r832859;
return r832860;
}




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