Alternative 1 | |
---|---|
Error | 0.0 |
Cost | 960 |
\[\frac{v}{\left(v + 1\right) \cdot \left(v + 1\right)} \cdot \left(-2 + v \cdot -3\right)
\]
(FPCore (v) :precision binary64 (* (/ (- v) (pow (+ v 1.0) 2.0)) (+ (* 3.0 v) 2.0)))
(FPCore (v) :precision binary64 (* (/ v (+ (+ 1.0 (* v v)) (* v 2.0))) (+ -2.0 (* v -3.0))))
double code(double v) { return (-v / pow((v + 1.0), 2.0)) * ((3.0 * v) + 2.0); }
double code(double v) { return (v / ((1.0 + (v * v)) + (v * 2.0))) * (-2.0 + (v * -3.0)); }
real(8) function code(v) real(8), intent (in) :: v code = (-v / ((v + 1.0d0) ** 2.0d0)) * ((3.0d0 * v) + 2.0d0) end function
real(8) function code(v) real(8), intent (in) :: v code = (v / ((1.0d0 + (v * v)) + (v * 2.0d0))) * ((-2.0d0) + (v * (-3.0d0))) end function
public static double code(double v) { return (-v / Math.pow((v + 1.0), 2.0)) * ((3.0 * v) + 2.0); }
public static double code(double v) { return (v / ((1.0 + (v * v)) + (v * 2.0))) * (-2.0 + (v * -3.0)); }
def code(v): return (-v / math.pow((v + 1.0), 2.0)) * ((3.0 * v) + 2.0)
def code(v): return (v / ((1.0 + (v * v)) + (v * 2.0))) * (-2.0 + (v * -3.0))
function code(v) return Float64(Float64(Float64(-v) / (Float64(v + 1.0) ^ 2.0)) * Float64(Float64(3.0 * v) + 2.0)) end
function code(v) return Float64(Float64(v / Float64(Float64(1.0 + Float64(v * v)) + Float64(v * 2.0))) * Float64(-2.0 + Float64(v * -3.0))) end
function tmp = code(v) tmp = (-v / ((v + 1.0) ^ 2.0)) * ((3.0 * v) + 2.0); end
function tmp = code(v) tmp = (v / ((1.0 + (v * v)) + (v * 2.0))) * (-2.0 + (v * -3.0)); end
code[v_] := N[(N[((-v) / N[Power[N[(v + 1.0), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[(3.0 * v), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]
code[v_] := N[(N[(v / N[(N[(1.0 + N[(v * v), $MachinePrecision]), $MachinePrecision] + N[(v * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(-2.0 + N[(v * -3.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\frac{-v}{{\left(v + 1\right)}^{2}} \cdot \left(3 \cdot v + 2\right)
\frac{v}{\left(1 + v \cdot v\right) + v \cdot 2} \cdot \left(-2 + v \cdot -3\right)
Results
Initial program 0.0
Taylor expanded in v around 0 0.0
Simplified0.0
[Start]0.0 | \[ \frac{-v}{1 + \left({v}^{2} + 2 \cdot v\right)} \cdot \left(3 \cdot v + 2\right)
\] |
---|---|
associate-+r+ [=>]0.0 | \[ \frac{-v}{\color{blue}{\left(1 + {v}^{2}\right) + 2 \cdot v}} \cdot \left(3 \cdot v + 2\right)
\] |
unpow2 [=>]0.0 | \[ \frac{-v}{\left(1 + \color{blue}{v \cdot v}\right) + 2 \cdot v} \cdot \left(3 \cdot v + 2\right)
\] |
Final simplification0.0
Alternative 1 | |
---|---|
Error | 0.0 |
Cost | 960 |
Alternative 2 | |
---|---|
Error | 0.0 |
Cost | 960 |
Alternative 3 | |
---|---|
Error | 0.8 |
Cost | 448 |
Alternative 4 | |
---|---|
Error | 0.8 |
Cost | 320 |
Alternative 5 | |
---|---|
Error | 1.6 |
Cost | 192 |
Alternative 6 | |
---|---|
Error | 60.5 |
Cost | 64 |
herbie shell --seed 1
(FPCore (v)
:name "(-v/(v+1)^2) * (3*v + 2)"
:precision binary64
:pre (and (<= 0.0 v) (<= v 20.0))
(* (/ (- v) (pow (+ v 1.0) 2.0)) (+ (* 3.0 v) 2.0)))