\frac{6.0 \cdot \left(x - 1.0\right)}{\left(x + 1.0\right) + 4.0 \cdot \sqrt{x}}\frac{x - 1.0}{4.0 \cdot \sqrt{x} + \left(x + 1.0\right)} \cdot 6.0double f(double x) {
double r44030027 = 6.0;
double r44030028 = x;
double r44030029 = 1.0;
double r44030030 = r44030028 - r44030029;
double r44030031 = r44030027 * r44030030;
double r44030032 = r44030028 + r44030029;
double r44030033 = 4.0;
double r44030034 = sqrt(r44030028);
double r44030035 = r44030033 * r44030034;
double r44030036 = r44030032 + r44030035;
double r44030037 = r44030031 / r44030036;
return r44030037;
}
double f(double x) {
double r44030038 = x;
double r44030039 = 1.0;
double r44030040 = r44030038 - r44030039;
double r44030041 = 4.0;
double r44030042 = sqrt(r44030038);
double r44030043 = r44030041 * r44030042;
double r44030044 = r44030038 + r44030039;
double r44030045 = r44030043 + r44030044;
double r44030046 = r44030040 / r44030045;
double r44030047 = 6.0;
double r44030048 = r44030046 * r44030047;
return r44030048;
}




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
Final simplification0.0
herbie shell --seed 2019158
(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)))))