\frac{6.0 \cdot \left(x - 1.0\right)}{\left(x + 1.0\right) + 4.0 \cdot \sqrt{x}}\left(\frac{x}{\mathsf{fma}\left(\sqrt{x}, 4.0, x + 1.0\right)} - \frac{1.0}{\mathsf{fma}\left(\sqrt{x}, 4.0, x + 1.0\right)}\right) \cdot 6.0double f(double x) {
double r32036154 = 6.0;
double r32036155 = x;
double r32036156 = 1.0;
double r32036157 = r32036155 - r32036156;
double r32036158 = r32036154 * r32036157;
double r32036159 = r32036155 + r32036156;
double r32036160 = 4.0;
double r32036161 = sqrt(r32036155);
double r32036162 = r32036160 * r32036161;
double r32036163 = r32036159 + r32036162;
double r32036164 = r32036158 / r32036163;
return r32036164;
}
double f(double x) {
double r32036165 = x;
double r32036166 = sqrt(r32036165);
double r32036167 = 4.0;
double r32036168 = 1.0;
double r32036169 = r32036165 + r32036168;
double r32036170 = fma(r32036166, r32036167, r32036169);
double r32036171 = r32036165 / r32036170;
double r32036172 = r32036168 / r32036170;
double r32036173 = r32036171 - r32036172;
double r32036174 = 6.0;
double r32036175 = r32036173 * r32036174;
return r32036175;
}




Bits error versus x
| Original | 0.2 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.2
Simplified0.0
rmApplied div-inv0.1
Simplified0.0
rmApplied div-sub0.0
Final simplification0.0
herbie shell --seed 2019165 +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)))))