Average Error: 2.0 → 2.0
Time: 8.3s
Precision: binary64
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
\[\frac{a \cdot {\left(\frac{-1}{\frac{-1}{k}}\right)}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
(FPCore (a k m)
 :precision binary64
 (/ (* a (pow k m)) (+ (+ 1.0 (* 10.0 k)) (* k k))))
(FPCore (a k m)
 :precision binary64
 (/ (* a (pow (/ -1.0 (/ -1.0 k)) m)) (+ (+ 1.0 (* 10.0 k)) (* k k))))
double code(double a, double k, double m) {
	return (a * pow(k, m)) / ((1.0 + (10.0 * k)) + (k * k));
}
double code(double a, double k, double m) {
	return (a * pow((-1.0 / (-1.0 / k)), m)) / ((1.0 + (10.0 * k)) + (k * k));
}
real(8) function code(a, k, m)
    real(8), intent (in) :: a
    real(8), intent (in) :: k
    real(8), intent (in) :: m
    code = (a * (k ** m)) / ((1.0d0 + (10.0d0 * k)) + (k * k))
end function
real(8) function code(a, k, m)
    real(8), intent (in) :: a
    real(8), intent (in) :: k
    real(8), intent (in) :: m
    code = (a * (((-1.0d0) / ((-1.0d0) / k)) ** m)) / ((1.0d0 + (10.0d0 * k)) + (k * k))
end function
public static double code(double a, double k, double m) {
	return (a * Math.pow(k, m)) / ((1.0 + (10.0 * k)) + (k * k));
}
public static double code(double a, double k, double m) {
	return (a * Math.pow((-1.0 / (-1.0 / k)), m)) / ((1.0 + (10.0 * k)) + (k * k));
}
def code(a, k, m):
	return (a * math.pow(k, m)) / ((1.0 + (10.0 * k)) + (k * k))
def code(a, k, m):
	return (a * math.pow((-1.0 / (-1.0 / k)), m)) / ((1.0 + (10.0 * k)) + (k * k))
function code(a, k, m)
	return Float64(Float64(a * (k ^ m)) / Float64(Float64(1.0 + Float64(10.0 * k)) + Float64(k * k)))
end
function code(a, k, m)
	return Float64(Float64(a * (Float64(-1.0 / Float64(-1.0 / k)) ^ m)) / Float64(Float64(1.0 + Float64(10.0 * k)) + Float64(k * k)))
end
function tmp = code(a, k, m)
	tmp = (a * (k ^ m)) / ((1.0 + (10.0 * k)) + (k * k));
end
function tmp = code(a, k, m)
	tmp = (a * ((-1.0 / (-1.0 / k)) ^ m)) / ((1.0 + (10.0 * k)) + (k * k));
end
code[a_, k_, m_] := N[(N[(a * N[Power[k, m], $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 + N[(10.0 * k), $MachinePrecision]), $MachinePrecision] + N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
code[a_, k_, m_] := N[(N[(a * N[Power[N[(-1.0 / N[(-1.0 / k), $MachinePrecision]), $MachinePrecision], m], $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 + N[(10.0 * k), $MachinePrecision]), $MachinePrecision] + N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}
\frac{a \cdot {\left(\frac{-1}{\frac{-1}{k}}\right)}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 2.0

    \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
  2. Taylor expanded in k around -inf 64.0

    \[\leadsto \frac{\color{blue}{a \cdot e^{\left(\log -1 - \log \left(\frac{-1}{k}\right)\right) \cdot m}}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
  3. Simplified2.0

    \[\leadsto \frac{\color{blue}{a \cdot {\left(\frac{-1}{\frac{-1}{k}}\right)}^{m}}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
  4. Final simplification2.0

    \[\leadsto \frac{a \cdot {\left(\frac{-1}{\frac{-1}{k}}\right)}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]

Reproduce

herbie shell --seed 2022152 
(FPCore (a k m)
  :name "Falkner and Boettcher, Appendix A"
  :precision binary64
  (/ (* a (pow k m)) (+ (+ 1.0 (* 10.0 k)) (* k k))))