Average Error: 2.1 → 2.1
Time: 9.1s
Precision: 64
\[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
\[\left({k}^{\left(\frac{m}{4}\right)} \cdot \left(\frac{a}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot {k}^{\left(\frac{m}{2}\right)}\right)\right) \cdot {k}^{\left(\frac{\frac{m}{2}}{2}\right)}\]
\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}
\left({k}^{\left(\frac{m}{4}\right)} \cdot \left(\frac{a}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot {k}^{\left(\frac{m}{2}\right)}\right)\right) \cdot {k}^{\left(\frac{\frac{m}{2}}{2}\right)}
double f(double a, double k, double m) {
        double r267629 = a;
        double r267630 = k;
        double r267631 = m;
        double r267632 = pow(r267630, r267631);
        double r267633 = r267629 * r267632;
        double r267634 = 1.0;
        double r267635 = 10.0;
        double r267636 = r267635 * r267630;
        double r267637 = r267634 + r267636;
        double r267638 = r267630 * r267630;
        double r267639 = r267637 + r267638;
        double r267640 = r267633 / r267639;
        return r267640;
}

double f(double a, double k, double m) {
        double r267641 = k;
        double r267642 = m;
        double r267643 = 4.0;
        double r267644 = r267642 / r267643;
        double r267645 = pow(r267641, r267644);
        double r267646 = a;
        double r267647 = 10.0;
        double r267648 = r267647 + r267641;
        double r267649 = 1.0;
        double r267650 = fma(r267641, r267648, r267649);
        double r267651 = r267646 / r267650;
        double r267652 = 2.0;
        double r267653 = r267642 / r267652;
        double r267654 = pow(r267641, r267653);
        double r267655 = r267651 * r267654;
        double r267656 = r267645 * r267655;
        double r267657 = r267653 / r267652;
        double r267658 = pow(r267641, r267657);
        double r267659 = r267656 * r267658;
        return r267659;
}

Error

Bits error versus a

Bits error versus k

Bits error versus m

Derivation

  1. Initial program 2.1

    \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}\]
  2. Simplified2.1

    \[\leadsto \color{blue}{\frac{a}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot {k}^{m}}\]
  3. Using strategy rm
  4. Applied sqr-pow2.1

    \[\leadsto \frac{a}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot \color{blue}{\left({k}^{\left(\frac{m}{2}\right)} \cdot {k}^{\left(\frac{m}{2}\right)}\right)}\]
  5. Applied associate-*r*2.1

    \[\leadsto \color{blue}{\left(\frac{a}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot {k}^{\left(\frac{m}{2}\right)}\right) \cdot {k}^{\left(\frac{m}{2}\right)}}\]
  6. Using strategy rm
  7. Applied sqr-pow2.1

    \[\leadsto \left(\frac{a}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot {k}^{\left(\frac{m}{2}\right)}\right) \cdot \color{blue}{\left({k}^{\left(\frac{\frac{m}{2}}{2}\right)} \cdot {k}^{\left(\frac{\frac{m}{2}}{2}\right)}\right)}\]
  8. Applied associate-*r*2.1

    \[\leadsto \color{blue}{\left(\left(\frac{a}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot {k}^{\left(\frac{m}{2}\right)}\right) \cdot {k}^{\left(\frac{\frac{m}{2}}{2}\right)}\right) \cdot {k}^{\left(\frac{\frac{m}{2}}{2}\right)}}\]
  9. Simplified2.1

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

    \[\leadsto \left({k}^{\left(\frac{m}{4}\right)} \cdot \left(\frac{a}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot {k}^{\left(\frac{m}{2}\right)}\right)\right) \cdot {k}^{\left(\frac{\frac{m}{2}}{2}\right)}\]

Reproduce

herbie shell --seed 2020046 +o rules:numerics
(FPCore (a k m)
  :name "Falkner and Boettcher, Appendix A"
  :precision binary64
  (/ (* a (pow k m)) (+ (+ 1 (* 10 k)) (* k k))))