\frac{6 \cdot \left(x - 1\right)}{\left(x + 1\right) + 4 \cdot \sqrt{x}}\frac{x - 1}{\mathsf{fma}\left(\sqrt{x}, 4, 1 + x\right)} \cdot 6double f(double x) {
double r710423 = 6.0;
double r710424 = x;
double r710425 = 1.0;
double r710426 = r710424 - r710425;
double r710427 = r710423 * r710426;
double r710428 = r710424 + r710425;
double r710429 = 4.0;
double r710430 = sqrt(r710424);
double r710431 = r710429 * r710430;
double r710432 = r710428 + r710431;
double r710433 = r710427 / r710432;
return r710433;
}
double f(double x) {
double r710434 = x;
double r710435 = 1.0;
double r710436 = r710434 - r710435;
double r710437 = sqrt(r710434);
double r710438 = 4.0;
double r710439 = r710435 + r710434;
double r710440 = fma(r710437, r710438, r710439);
double r710441 = r710436 / r710440;
double r710442 = 6.0;
double r710443 = r710441 * r710442;
return r710443;
}




Bits error versus x
| Original | 0.2 |
|---|---|
| Target | 0.1 |
| Herbie | 0.0 |
Initial program 0.2
Simplified0.0
rmApplied *-commutative0.0
Final simplification0.0
herbie shell --seed 2019179 +o rules:numerics
(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)))))