Alternative 1 | |
---|---|
Error | 0.0 |
Cost | 448 |
\[x \cdot \frac{1}{x + 1}
\]
(FPCore (x) :precision binary64 (/ x (+ x 1.0)))
(FPCore (x) :precision binary64 (* (/ x (fma x x -1.0)) (+ x -1.0)))
double code(double x) { return x / (x + 1.0); }
double code(double x) { return (x / fma(x, x, -1.0)) * (x + -1.0); }
function code(x) return Float64(x / Float64(x + 1.0)) end
function code(x) return Float64(Float64(x / fma(x, x, -1.0)) * Float64(x + -1.0)) end
code[x_] := N[(x / N[(x + 1.0), $MachinePrecision]), $MachinePrecision]
code[x_] := N[(N[(x / N[(x * x + -1.0), $MachinePrecision]), $MachinePrecision] * N[(x + -1.0), $MachinePrecision]), $MachinePrecision]
\frac{x}{x + 1}
\frac{x}{\mathsf{fma}\left(x, x, -1\right)} \cdot \left(x + -1\right)
Initial program 0.0
Applied egg-rr0.0
Final simplification0.0
Alternative 1 | |
---|---|
Error | 0.0 |
Cost | 448 |
Alternative 2 | |
---|---|
Error | 0.7 |
Cost | 320 |
Alternative 3 | |
---|---|
Error | 0.0 |
Cost | 320 |
Alternative 4 | |
---|---|
Error | 1.4 |
Cost | 64 |
herbie shell --seed 1
(FPCore (x)
:name "x/(x+1)"
:precision binary64
:pre (and (<= 0.0 x) (<= x 1.0))
(/ x (+ x 1.0)))