\frac{6 \cdot \left(x - 1\right)}{\left(x + 1\right) + 4 \cdot \sqrt{x}}\frac{1}{\frac{\sqrt{x} \cdot 4 + \left(x + 1\right)}{x - 1}} \cdot 6double f(double x) {
double r704300 = 6.0;
double r704301 = x;
double r704302 = 1.0;
double r704303 = r704301 - r704302;
double r704304 = r704300 * r704303;
double r704305 = r704301 + r704302;
double r704306 = 4.0;
double r704307 = sqrt(r704301);
double r704308 = r704306 * r704307;
double r704309 = r704305 + r704308;
double r704310 = r704304 / r704309;
return r704310;
}
double f(double x) {
double r704311 = 1.0;
double r704312 = x;
double r704313 = sqrt(r704312);
double r704314 = 4.0;
double r704315 = r704313 * r704314;
double r704316 = 1.0;
double r704317 = r704312 + r704316;
double r704318 = r704315 + r704317;
double r704319 = r704312 - r704316;
double r704320 = r704318 / r704319;
double r704321 = r704311 / r704320;
double r704322 = 6.0;
double r704323 = r704321 * r704322;
return r704323;
}




Bits error versus x
Results
| Original | 0.2 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 0.2
Simplified0.0
rmApplied clear-num0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019195
(FPCore (x)
:name "Data.Approximate.Numerics:blog from approximate-0.2.2.1"
:herbie-target
(/ 6.0 (/ (+ (+ x 1.0) (* 4.0 (sqrt x))) (- x 1.0)))
(/ (* 6.0 (- x 1.0)) (+ (+ x 1.0) (* 4.0 (sqrt x)))))