Falkner and Boettcher, Appendix A

Percentage Accurate: 89.6% → 97.5%
Time: 11.3s
Alternatives: 10
Speedup: 1.1×

Specification

?
\[\begin{array}{l} \\ \frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \end{array} \]
(FPCore (a k m)
 :precision binary64
 (/ (* a (pow 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));
}
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
public static double code(double a, double k, double m) {
	return (a * Math.pow(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))
function code(a, k, m)
	return Float64(Float64(a * (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
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]
\begin{array}{l}

\\
\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}
\end{array}

Sampling outcomes in binary64 precision:

Local Percentage Accuracy vs ?

The average percentage accuracy by input value. Horizontal axis shows value of an input variable; the variable is choosen in the title. Vertical axis is accuracy; higher is better. Red represent the original program, while blue represents Herbie's suggestion. These can be toggled with buttons below the plot. The line is an average while dots represent individual samples.

Accuracy vs Speed?

Herbie found 10 alternatives:

AlternativeAccuracySpeedup
The accuracy (vertical axis) and speed (horizontal axis) of each alternatives. Up and to the right is better. The red square shows the initial program, and each blue circle shows an alternative.The line shows the best available speed-accuracy tradeoffs.

Initial Program: 89.6% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \end{array} \]
(FPCore (a k m)
 :precision binary64
 (/ (* a (pow 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));
}
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
public static double code(double a, double k, double m) {
	return (a * Math.pow(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))
function code(a, k, m)
	return Float64(Float64(a * (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
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]
\begin{array}{l}

\\
\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}
\end{array}

Alternative 1: 97.5% accurate, 0.5× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := a \cdot {k}^{m}\\ t_1 := \frac{t\_0}{\left(1 + k \cdot 10\right) + k \cdot k}\\ \mathbf{if}\;t\_1 \leq 4 \cdot 10^{+226}:\\ \;\;\;\;t\_1\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
(FPCore (a k m)
 :precision binary64
 (let* ((t_0 (* a (pow k m))) (t_1 (/ t_0 (+ (+ 1.0 (* k 10.0)) (* k k)))))
   (if (<= t_1 4e+226) t_1 t_0)))
double code(double a, double k, double m) {
	double t_0 = a * pow(k, m);
	double t_1 = t_0 / ((1.0 + (k * 10.0)) + (k * k));
	double tmp;
	if (t_1 <= 4e+226) {
		tmp = t_1;
	} else {
		tmp = t_0;
	}
	return tmp;
}
real(8) function code(a, k, m)
    real(8), intent (in) :: a
    real(8), intent (in) :: k
    real(8), intent (in) :: m
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = a * (k ** m)
    t_1 = t_0 / ((1.0d0 + (k * 10.0d0)) + (k * k))
    if (t_1 <= 4d+226) then
        tmp = t_1
    else
        tmp = t_0
    end if
    code = tmp
end function
public static double code(double a, double k, double m) {
	double t_0 = a * Math.pow(k, m);
	double t_1 = t_0 / ((1.0 + (k * 10.0)) + (k * k));
	double tmp;
	if (t_1 <= 4e+226) {
		tmp = t_1;
	} else {
		tmp = t_0;
	}
	return tmp;
}
def code(a, k, m):
	t_0 = a * math.pow(k, m)
	t_1 = t_0 / ((1.0 + (k * 10.0)) + (k * k))
	tmp = 0
	if t_1 <= 4e+226:
		tmp = t_1
	else:
		tmp = t_0
	return tmp
function code(a, k, m)
	t_0 = Float64(a * (k ^ m))
	t_1 = Float64(t_0 / Float64(Float64(1.0 + Float64(k * 10.0)) + Float64(k * k)))
	tmp = 0.0
	if (t_1 <= 4e+226)
		tmp = t_1;
	else
		tmp = t_0;
	end
	return tmp
end
function tmp_2 = code(a, k, m)
	t_0 = a * (k ^ m);
	t_1 = t_0 / ((1.0 + (k * 10.0)) + (k * k));
	tmp = 0.0;
	if (t_1 <= 4e+226)
		tmp = t_1;
	else
		tmp = t_0;
	end
	tmp_2 = tmp;
end
code[a_, k_, m_] := Block[{t$95$0 = N[(a * N[Power[k, m], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(t$95$0 / N[(N[(1.0 + N[(k * 10.0), $MachinePrecision]), $MachinePrecision] + N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, 4e+226], t$95$1, t$95$0]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := a \cdot {k}^{m}\\
t_1 := \frac{t\_0}{\left(1 + k \cdot 10\right) + k \cdot k}\\
\mathbf{if}\;t\_1 \leq 4 \cdot 10^{+226}:\\
\;\;\;\;t\_1\\

\mathbf{else}:\\
\;\;\;\;t\_0\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))) < 3.99999999999999985e226

    1. Initial program 97.3%

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

    if 3.99999999999999985e226 < (/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))

    1. Initial program 57.8%

      \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
    2. Add Preprocessing
    3. Taylor expanded in k around 0

      \[\leadsto \color{blue}{a \cdot {k}^{m}} \]
    4. Step-by-step derivation
      1. lower-*.f64N/A

        \[\leadsto \color{blue}{a \cdot {k}^{m}} \]
      2. lower-pow.f64100.0

        \[\leadsto a \cdot \color{blue}{{k}^{m}} \]
    5. Applied rewrites100.0%

      \[\leadsto \color{blue}{a \cdot {k}^{m}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification97.8%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{a \cdot {k}^{m}}{\left(1 + k \cdot 10\right) + k \cdot k} \leq 4 \cdot 10^{+226}:\\ \;\;\;\;\frac{a \cdot {k}^{m}}{\left(1 + k \cdot 10\right) + k \cdot k}\\ \mathbf{else}:\\ \;\;\;\;a \cdot {k}^{m}\\ \end{array} \]
  5. Add Preprocessing

Alternative 2: 46.9% accurate, 0.4× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{a \cdot {k}^{m}}{\left(1 + k \cdot 10\right) + k \cdot k}\\ \mathbf{if}\;t\_0 \leq 0:\\ \;\;\;\;a \cdot \frac{1}{\mathsf{fma}\left(k, \left(100 - k \cdot k\right) \cdot 0.1, 1\right)}\\ \mathbf{elif}\;t\_0 \leq 2 \cdot 10^{+305}:\\ \;\;\;\;\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;a \cdot \frac{1}{k \cdot k}\\ \end{array} \end{array} \]
(FPCore (a k m)
 :precision binary64
 (let* ((t_0 (/ (* a (pow k m)) (+ (+ 1.0 (* k 10.0)) (* k k)))))
   (if (<= t_0 0.0)
     (* a (/ 1.0 (fma k (* (- 100.0 (* k k)) 0.1) 1.0)))
     (if (<= t_0 2e+305) (/ a (fma k (+ k 10.0) 1.0)) (* a (/ 1.0 (* k k)))))))
double code(double a, double k, double m) {
	double t_0 = (a * pow(k, m)) / ((1.0 + (k * 10.0)) + (k * k));
	double tmp;
	if (t_0 <= 0.0) {
		tmp = a * (1.0 / fma(k, ((100.0 - (k * k)) * 0.1), 1.0));
	} else if (t_0 <= 2e+305) {
		tmp = a / fma(k, (k + 10.0), 1.0);
	} else {
		tmp = a * (1.0 / (k * k));
	}
	return tmp;
}
function code(a, k, m)
	t_0 = Float64(Float64(a * (k ^ m)) / Float64(Float64(1.0 + Float64(k * 10.0)) + Float64(k * k)))
	tmp = 0.0
	if (t_0 <= 0.0)
		tmp = Float64(a * Float64(1.0 / fma(k, Float64(Float64(100.0 - Float64(k * k)) * 0.1), 1.0)));
	elseif (t_0 <= 2e+305)
		tmp = Float64(a / fma(k, Float64(k + 10.0), 1.0));
	else
		tmp = Float64(a * Float64(1.0 / Float64(k * k)));
	end
	return tmp
end
code[a_, k_, m_] := Block[{t$95$0 = N[(N[(a * N[Power[k, m], $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 + N[(k * 10.0), $MachinePrecision]), $MachinePrecision] + N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$0, 0.0], N[(a * N[(1.0 / N[(k * N[(N[(100.0 - N[(k * k), $MachinePrecision]), $MachinePrecision] * 0.1), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$0, 2e+305], N[(a / N[(k * N[(k + 10.0), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision], N[(a * N[(1.0 / N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{a \cdot {k}^{m}}{\left(1 + k \cdot 10\right) + k \cdot k}\\
\mathbf{if}\;t\_0 \leq 0:\\
\;\;\;\;a \cdot \frac{1}{\mathsf{fma}\left(k, \left(100 - k \cdot k\right) \cdot 0.1, 1\right)}\\

\mathbf{elif}\;t\_0 \leq 2 \cdot 10^{+305}:\\
\;\;\;\;\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}\\

\mathbf{else}:\\
\;\;\;\;a \cdot \frac{1}{k \cdot k}\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if (/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))) < 0.0

    1. Initial program 96.9%

      \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. lift-pow.f64N/A

        \[\leadsto \frac{a \cdot \color{blue}{{k}^{m}}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
      2. lift-*.f64N/A

        \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + \color{blue}{10 \cdot k}\right) + k \cdot k} \]
      3. lift-+.f64N/A

        \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right)} + k \cdot k} \]
      4. lift-*.f64N/A

        \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + \color{blue}{k \cdot k}} \]
      5. lift-+.f64N/A

        \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right) + k \cdot k}} \]
      6. *-commutativeN/A

        \[\leadsto \frac{\color{blue}{{k}^{m} \cdot a}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
      7. associate-*l/N/A

        \[\leadsto \color{blue}{\frac{{k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \cdot a} \]
      8. lower-*.f64N/A

        \[\leadsto \color{blue}{\frac{{k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \cdot a} \]
      9. lower-/.f6496.9

        \[\leadsto \color{blue}{\frac{{k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}} \cdot a \]
      10. lift-+.f64N/A

        \[\leadsto \frac{{k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right) + k \cdot k}} \cdot a \]
      11. lift-+.f64N/A

        \[\leadsto \frac{{k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right)} + k \cdot k} \cdot a \]
      12. associate-+l+N/A

        \[\leadsto \frac{{k}^{m}}{\color{blue}{1 + \left(10 \cdot k + k \cdot k\right)}} \cdot a \]
      13. +-commutativeN/A

        \[\leadsto \frac{{k}^{m}}{\color{blue}{\left(10 \cdot k + k \cdot k\right) + 1}} \cdot a \]
      14. lift-*.f64N/A

        \[\leadsto \frac{{k}^{m}}{\left(\color{blue}{10 \cdot k} + k \cdot k\right) + 1} \cdot a \]
      15. lift-*.f64N/A

        \[\leadsto \frac{{k}^{m}}{\left(10 \cdot k + \color{blue}{k \cdot k}\right) + 1} \cdot a \]
      16. distribute-rgt-outN/A

        \[\leadsto \frac{{k}^{m}}{\color{blue}{k \cdot \left(10 + k\right)} + 1} \cdot a \]
      17. lower-fma.f64N/A

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

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

      \[\leadsto \color{blue}{\frac{{k}^{m}}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot a} \]
    5. Taylor expanded in m around 0

      \[\leadsto \frac{\color{blue}{1}}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot a \]
    6. Step-by-step derivation
      1. Applied rewrites48.3%

        \[\leadsto \frac{\color{blue}{1}}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot a \]
      2. Step-by-step derivation
        1. flip-+N/A

          \[\leadsto \frac{1}{\mathsf{fma}\left(k, \color{blue}{\frac{10 \cdot 10 - k \cdot k}{10 - k}}, 1\right)} \cdot a \]
        2. lift--.f64N/A

          \[\leadsto \frac{1}{\mathsf{fma}\left(k, \frac{10 \cdot 10 - k \cdot k}{\color{blue}{10 - k}}, 1\right)} \cdot a \]
        3. div-invN/A

          \[\leadsto \frac{1}{\mathsf{fma}\left(k, \color{blue}{\left(10 \cdot 10 - k \cdot k\right) \cdot \frac{1}{10 - k}}, 1\right)} \cdot a \]
        4. lower-*.f64N/A

          \[\leadsto \frac{1}{\mathsf{fma}\left(k, \color{blue}{\left(10 \cdot 10 - k \cdot k\right) \cdot \frac{1}{10 - k}}, 1\right)} \cdot a \]
        5. metadata-evalN/A

          \[\leadsto \frac{1}{\mathsf{fma}\left(k, \left(\color{blue}{100} - k \cdot k\right) \cdot \frac{1}{10 - k}, 1\right)} \cdot a \]
        6. lift-*.f64N/A

          \[\leadsto \frac{1}{\mathsf{fma}\left(k, \left(100 - \color{blue}{k \cdot k}\right) \cdot \frac{1}{10 - k}, 1\right)} \cdot a \]
        7. lower--.f64N/A

          \[\leadsto \frac{1}{\mathsf{fma}\left(k, \color{blue}{\left(100 - k \cdot k\right)} \cdot \frac{1}{10 - k}, 1\right)} \cdot a \]
        8. lower-/.f6448.3

          \[\leadsto \frac{1}{\mathsf{fma}\left(k, \left(100 - k \cdot k\right) \cdot \color{blue}{\frac{1}{10 - k}}, 1\right)} \cdot a \]
      3. Applied rewrites48.3%

        \[\leadsto \frac{1}{\mathsf{fma}\left(k, \color{blue}{\left(100 - k \cdot k\right) \cdot \frac{1}{10 - k}}, 1\right)} \cdot a \]
      4. Taylor expanded in k around 0

        \[\leadsto \frac{1}{\mathsf{fma}\left(k, \left(100 - k \cdot k\right) \cdot \color{blue}{\frac{1}{10}}, 1\right)} \cdot a \]
      5. Step-by-step derivation
        1. Applied rewrites46.7%

          \[\leadsto \frac{1}{\mathsf{fma}\left(k, \left(100 - k \cdot k\right) \cdot \color{blue}{0.1}, 1\right)} \cdot a \]

        if 0.0 < (/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))) < 1.9999999999999999e305

        1. Initial program 99.8%

          \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
        2. Add Preprocessing
        3. Taylor expanded in m around 0

          \[\leadsto \color{blue}{\frac{a}{1 + \left(10 \cdot k + {k}^{2}\right)}} \]
        4. Step-by-step derivation
          1. lower-/.f64N/A

            \[\leadsto \color{blue}{\frac{a}{1 + \left(10 \cdot k + {k}^{2}\right)}} \]
          2. unpow2N/A

            \[\leadsto \frac{a}{1 + \left(10 \cdot k + \color{blue}{k \cdot k}\right)} \]
          3. distribute-rgt-inN/A

            \[\leadsto \frac{a}{1 + \color{blue}{k \cdot \left(10 + k\right)}} \]
          4. +-commutativeN/A

            \[\leadsto \frac{a}{\color{blue}{k \cdot \left(10 + k\right) + 1}} \]
          5. metadata-evalN/A

            \[\leadsto \frac{a}{k \cdot \left(\color{blue}{10 \cdot 1} + k\right) + 1} \]
          6. lft-mult-inverseN/A

            \[\leadsto \frac{a}{k \cdot \left(10 \cdot \color{blue}{\left(\frac{1}{k} \cdot k\right)} + k\right) + 1} \]
          7. associate-*l*N/A

            \[\leadsto \frac{a}{k \cdot \left(\color{blue}{\left(10 \cdot \frac{1}{k}\right) \cdot k} + k\right) + 1} \]
          8. *-lft-identityN/A

            \[\leadsto \frac{a}{k \cdot \left(\left(10 \cdot \frac{1}{k}\right) \cdot k + \color{blue}{1 \cdot k}\right) + 1} \]
          9. distribute-rgt-inN/A

            \[\leadsto \frac{a}{k \cdot \color{blue}{\left(k \cdot \left(10 \cdot \frac{1}{k} + 1\right)\right)} + 1} \]
          10. +-commutativeN/A

            \[\leadsto \frac{a}{k \cdot \left(k \cdot \color{blue}{\left(1 + 10 \cdot \frac{1}{k}\right)}\right) + 1} \]
          11. *-commutativeN/A

            \[\leadsto \frac{a}{k \cdot \color{blue}{\left(\left(1 + 10 \cdot \frac{1}{k}\right) \cdot k\right)} + 1} \]
          12. lower-fma.f64N/A

            \[\leadsto \frac{a}{\color{blue}{\mathsf{fma}\left(k, \left(1 + 10 \cdot \frac{1}{k}\right) \cdot k, 1\right)}} \]
          13. *-commutativeN/A

            \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{k \cdot \left(1 + 10 \cdot \frac{1}{k}\right)}, 1\right)} \]
          14. +-commutativeN/A

            \[\leadsto \frac{a}{\mathsf{fma}\left(k, k \cdot \color{blue}{\left(10 \cdot \frac{1}{k} + 1\right)}, 1\right)} \]
          15. distribute-rgt-inN/A

            \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{\left(10 \cdot \frac{1}{k}\right) \cdot k + 1 \cdot k}, 1\right)} \]
          16. associate-*l*N/A

            \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10 \cdot \left(\frac{1}{k} \cdot k\right)} + 1 \cdot k, 1\right)} \]
          17. lft-mult-inverseN/A

            \[\leadsto \frac{a}{\mathsf{fma}\left(k, 10 \cdot \color{blue}{1} + 1 \cdot k, 1\right)} \]
          18. metadata-evalN/A

            \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10} + 1 \cdot k, 1\right)} \]
          19. *-lft-identityN/A

            \[\leadsto \frac{a}{\mathsf{fma}\left(k, 10 + \color{blue}{k}, 1\right)} \]
          20. lower-+.f6494.1

            \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10 + k}, 1\right)} \]
        5. Applied rewrites94.1%

          \[\leadsto \color{blue}{\frac{a}{\mathsf{fma}\left(k, 10 + k, 1\right)}} \]

        if 1.9999999999999999e305 < (/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))

        1. Initial program 55.8%

          \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
        2. Add Preprocessing
        3. Step-by-step derivation
          1. lift-pow.f64N/A

            \[\leadsto \frac{a \cdot \color{blue}{{k}^{m}}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
          2. lift-*.f64N/A

            \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + \color{blue}{10 \cdot k}\right) + k \cdot k} \]
          3. lift-+.f64N/A

            \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right)} + k \cdot k} \]
          4. lift-*.f64N/A

            \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + \color{blue}{k \cdot k}} \]
          5. lift-+.f64N/A

            \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right) + k \cdot k}} \]
          6. *-commutativeN/A

            \[\leadsto \frac{\color{blue}{{k}^{m} \cdot a}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
          7. associate-*l/N/A

            \[\leadsto \color{blue}{\frac{{k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \cdot a} \]
          8. lower-*.f64N/A

            \[\leadsto \color{blue}{\frac{{k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \cdot a} \]
          9. lower-/.f6455.8

            \[\leadsto \color{blue}{\frac{{k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}} \cdot a \]
          10. lift-+.f64N/A

            \[\leadsto \frac{{k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right) + k \cdot k}} \cdot a \]
          11. lift-+.f64N/A

            \[\leadsto \frac{{k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right)} + k \cdot k} \cdot a \]
          12. associate-+l+N/A

            \[\leadsto \frac{{k}^{m}}{\color{blue}{1 + \left(10 \cdot k + k \cdot k\right)}} \cdot a \]
          13. +-commutativeN/A

            \[\leadsto \frac{{k}^{m}}{\color{blue}{\left(10 \cdot k + k \cdot k\right) + 1}} \cdot a \]
          14. lift-*.f64N/A

            \[\leadsto \frac{{k}^{m}}{\left(\color{blue}{10 \cdot k} + k \cdot k\right) + 1} \cdot a \]
          15. lift-*.f64N/A

            \[\leadsto \frac{{k}^{m}}{\left(10 \cdot k + \color{blue}{k \cdot k}\right) + 1} \cdot a \]
          16. distribute-rgt-outN/A

            \[\leadsto \frac{{k}^{m}}{\color{blue}{k \cdot \left(10 + k\right)} + 1} \cdot a \]
          17. lower-fma.f64N/A

            \[\leadsto \frac{{k}^{m}}{\color{blue}{\mathsf{fma}\left(k, 10 + k, 1\right)}} \cdot a \]
          18. lower-+.f6455.8

            \[\leadsto \frac{{k}^{m}}{\mathsf{fma}\left(k, \color{blue}{10 + k}, 1\right)} \cdot a \]
        4. Applied rewrites55.8%

          \[\leadsto \color{blue}{\frac{{k}^{m}}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot a} \]
        5. Taylor expanded in m around 0

          \[\leadsto \frac{\color{blue}{1}}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot a \]
        6. Step-by-step derivation
          1. Applied rewrites2.5%

            \[\leadsto \frac{\color{blue}{1}}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot a \]
          2. Taylor expanded in k around inf

            \[\leadsto \frac{1}{\color{blue}{{k}^{2}}} \cdot a \]
          3. Step-by-step derivation
            1. unpow2N/A

              \[\leadsto \frac{1}{\color{blue}{k \cdot k}} \cdot a \]
            2. lower-*.f6422.7

              \[\leadsto \frac{1}{\color{blue}{k \cdot k}} \cdot a \]
          4. Applied rewrites22.7%

            \[\leadsto \frac{1}{\color{blue}{k \cdot k}} \cdot a \]
        7. Recombined 3 regimes into one program.
        8. Final simplification47.8%

          \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{a \cdot {k}^{m}}{\left(1 + k \cdot 10\right) + k \cdot k} \leq 0:\\ \;\;\;\;a \cdot \frac{1}{\mathsf{fma}\left(k, \left(100 - k \cdot k\right) \cdot 0.1, 1\right)}\\ \mathbf{elif}\;\frac{a \cdot {k}^{m}}{\left(1 + k \cdot 10\right) + k \cdot k} \leq 2 \cdot 10^{+305}:\\ \;\;\;\;\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;a \cdot \frac{1}{k \cdot k}\\ \end{array} \]
        9. Add Preprocessing

        Alternative 3: 97.5% accurate, 0.5× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} t_0 := a \cdot {k}^{m}\\ \mathbf{if}\;\frac{t\_0}{\left(1 + k \cdot 10\right) + k \cdot k} \leq 4 \cdot 10^{+226}:\\ \;\;\;\;a \cdot \frac{{k}^{m}}{\mathsf{fma}\left(k, k + 10, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
        (FPCore (a k m)
         :precision binary64
         (let* ((t_0 (* a (pow k m))))
           (if (<= (/ t_0 (+ (+ 1.0 (* k 10.0)) (* k k))) 4e+226)
             (* a (/ (pow k m) (fma k (+ k 10.0) 1.0)))
             t_0)))
        double code(double a, double k, double m) {
        	double t_0 = a * pow(k, m);
        	double tmp;
        	if ((t_0 / ((1.0 + (k * 10.0)) + (k * k))) <= 4e+226) {
        		tmp = a * (pow(k, m) / fma(k, (k + 10.0), 1.0));
        	} else {
        		tmp = t_0;
        	}
        	return tmp;
        }
        
        function code(a, k, m)
        	t_0 = Float64(a * (k ^ m))
        	tmp = 0.0
        	if (Float64(t_0 / Float64(Float64(1.0 + Float64(k * 10.0)) + Float64(k * k))) <= 4e+226)
        		tmp = Float64(a * Float64((k ^ m) / fma(k, Float64(k + 10.0), 1.0)));
        	else
        		tmp = t_0;
        	end
        	return tmp
        end
        
        code[a_, k_, m_] := Block[{t$95$0 = N[(a * N[Power[k, m], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(t$95$0 / N[(N[(1.0 + N[(k * 10.0), $MachinePrecision]), $MachinePrecision] + N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 4e+226], N[(a * N[(N[Power[k, m], $MachinePrecision] / N[(k * N[(k + 10.0), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        t_0 := a \cdot {k}^{m}\\
        \mathbf{if}\;\frac{t\_0}{\left(1 + k \cdot 10\right) + k \cdot k} \leq 4 \cdot 10^{+226}:\\
        \;\;\;\;a \cdot \frac{{k}^{m}}{\mathsf{fma}\left(k, k + 10, 1\right)}\\
        
        \mathbf{else}:\\
        \;\;\;\;t\_0\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 2 regimes
        2. if (/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))) < 3.99999999999999985e226

          1. Initial program 97.3%

            \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
          2. Add Preprocessing
          3. Step-by-step derivation
            1. lift-pow.f64N/A

              \[\leadsto \frac{a \cdot \color{blue}{{k}^{m}}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
            2. lift-*.f64N/A

              \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + \color{blue}{10 \cdot k}\right) + k \cdot k} \]
            3. lift-+.f64N/A

              \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right)} + k \cdot k} \]
            4. lift-*.f64N/A

              \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + \color{blue}{k \cdot k}} \]
            5. lift-+.f64N/A

              \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right) + k \cdot k}} \]
            6. *-commutativeN/A

              \[\leadsto \frac{\color{blue}{{k}^{m} \cdot a}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
            7. associate-*l/N/A

              \[\leadsto \color{blue}{\frac{{k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \cdot a} \]
            8. lower-*.f64N/A

              \[\leadsto \color{blue}{\frac{{k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \cdot a} \]
            9. lower-/.f6497.3

              \[\leadsto \color{blue}{\frac{{k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}} \cdot a \]
            10. lift-+.f64N/A

              \[\leadsto \frac{{k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right) + k \cdot k}} \cdot a \]
            11. lift-+.f64N/A

              \[\leadsto \frac{{k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right)} + k \cdot k} \cdot a \]
            12. associate-+l+N/A

              \[\leadsto \frac{{k}^{m}}{\color{blue}{1 + \left(10 \cdot k + k \cdot k\right)}} \cdot a \]
            13. +-commutativeN/A

              \[\leadsto \frac{{k}^{m}}{\color{blue}{\left(10 \cdot k + k \cdot k\right) + 1}} \cdot a \]
            14. lift-*.f64N/A

              \[\leadsto \frac{{k}^{m}}{\left(\color{blue}{10 \cdot k} + k \cdot k\right) + 1} \cdot a \]
            15. lift-*.f64N/A

              \[\leadsto \frac{{k}^{m}}{\left(10 \cdot k + \color{blue}{k \cdot k}\right) + 1} \cdot a \]
            16. distribute-rgt-outN/A

              \[\leadsto \frac{{k}^{m}}{\color{blue}{k \cdot \left(10 + k\right)} + 1} \cdot a \]
            17. lower-fma.f64N/A

              \[\leadsto \frac{{k}^{m}}{\color{blue}{\mathsf{fma}\left(k, 10 + k, 1\right)}} \cdot a \]
            18. lower-+.f6497.3

              \[\leadsto \frac{{k}^{m}}{\mathsf{fma}\left(k, \color{blue}{10 + k}, 1\right)} \cdot a \]
          4. Applied rewrites97.3%

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

          if 3.99999999999999985e226 < (/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))

          1. Initial program 57.8%

            \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
          2. Add Preprocessing
          3. Taylor expanded in k around 0

            \[\leadsto \color{blue}{a \cdot {k}^{m}} \]
          4. Step-by-step derivation
            1. lower-*.f64N/A

              \[\leadsto \color{blue}{a \cdot {k}^{m}} \]
            2. lower-pow.f64100.0

              \[\leadsto a \cdot \color{blue}{{k}^{m}} \]
          5. Applied rewrites100.0%

            \[\leadsto \color{blue}{a \cdot {k}^{m}} \]
        3. Recombined 2 regimes into one program.
        4. Final simplification97.8%

          \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{a \cdot {k}^{m}}{\left(1 + k \cdot 10\right) + k \cdot k} \leq 4 \cdot 10^{+226}:\\ \;\;\;\;a \cdot \frac{{k}^{m}}{\mathsf{fma}\left(k, k + 10, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;a \cdot {k}^{m}\\ \end{array} \]
        5. Add Preprocessing

        Alternative 4: 48.4% accurate, 0.8× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\frac{a \cdot {k}^{m}}{\left(1 + k \cdot 10\right) + k \cdot k} \leq 2 \cdot 10^{+305}:\\ \;\;\;\;\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;a \cdot \frac{1}{k \cdot k}\\ \end{array} \end{array} \]
        (FPCore (a k m)
         :precision binary64
         (if (<= (/ (* a (pow k m)) (+ (+ 1.0 (* k 10.0)) (* k k))) 2e+305)
           (/ a (fma k (+ k 10.0) 1.0))
           (* a (/ 1.0 (* k k)))))
        double code(double a, double k, double m) {
        	double tmp;
        	if (((a * pow(k, m)) / ((1.0 + (k * 10.0)) + (k * k))) <= 2e+305) {
        		tmp = a / fma(k, (k + 10.0), 1.0);
        	} else {
        		tmp = a * (1.0 / (k * k));
        	}
        	return tmp;
        }
        
        function code(a, k, m)
        	tmp = 0.0
        	if (Float64(Float64(a * (k ^ m)) / Float64(Float64(1.0 + Float64(k * 10.0)) + Float64(k * k))) <= 2e+305)
        		tmp = Float64(a / fma(k, Float64(k + 10.0), 1.0));
        	else
        		tmp = Float64(a * Float64(1.0 / Float64(k * k)));
        	end
        	return tmp
        end
        
        code[a_, k_, m_] := If[LessEqual[N[(N[(a * N[Power[k, m], $MachinePrecision]), $MachinePrecision] / N[(N[(1.0 + N[(k * 10.0), $MachinePrecision]), $MachinePrecision] + N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2e+305], N[(a / N[(k * N[(k + 10.0), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision], N[(a * N[(1.0 / N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        \mathbf{if}\;\frac{a \cdot {k}^{m}}{\left(1 + k \cdot 10\right) + k \cdot k} \leq 2 \cdot 10^{+305}:\\
        \;\;\;\;\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}\\
        
        \mathbf{else}:\\
        \;\;\;\;a \cdot \frac{1}{k \cdot k}\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 2 regimes
        2. if (/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k))) < 1.9999999999999999e305

          1. Initial program 97.3%

            \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
          2. Add Preprocessing
          3. Taylor expanded in m around 0

            \[\leadsto \color{blue}{\frac{a}{1 + \left(10 \cdot k + {k}^{2}\right)}} \]
          4. Step-by-step derivation
            1. lower-/.f64N/A

              \[\leadsto \color{blue}{\frac{a}{1 + \left(10 \cdot k + {k}^{2}\right)}} \]
            2. unpow2N/A

              \[\leadsto \frac{a}{1 + \left(10 \cdot k + \color{blue}{k \cdot k}\right)} \]
            3. distribute-rgt-inN/A

              \[\leadsto \frac{a}{1 + \color{blue}{k \cdot \left(10 + k\right)}} \]
            4. +-commutativeN/A

              \[\leadsto \frac{a}{\color{blue}{k \cdot \left(10 + k\right) + 1}} \]
            5. metadata-evalN/A

              \[\leadsto \frac{a}{k \cdot \left(\color{blue}{10 \cdot 1} + k\right) + 1} \]
            6. lft-mult-inverseN/A

              \[\leadsto \frac{a}{k \cdot \left(10 \cdot \color{blue}{\left(\frac{1}{k} \cdot k\right)} + k\right) + 1} \]
            7. associate-*l*N/A

              \[\leadsto \frac{a}{k \cdot \left(\color{blue}{\left(10 \cdot \frac{1}{k}\right) \cdot k} + k\right) + 1} \]
            8. *-lft-identityN/A

              \[\leadsto \frac{a}{k \cdot \left(\left(10 \cdot \frac{1}{k}\right) \cdot k + \color{blue}{1 \cdot k}\right) + 1} \]
            9. distribute-rgt-inN/A

              \[\leadsto \frac{a}{k \cdot \color{blue}{\left(k \cdot \left(10 \cdot \frac{1}{k} + 1\right)\right)} + 1} \]
            10. +-commutativeN/A

              \[\leadsto \frac{a}{k \cdot \left(k \cdot \color{blue}{\left(1 + 10 \cdot \frac{1}{k}\right)}\right) + 1} \]
            11. *-commutativeN/A

              \[\leadsto \frac{a}{k \cdot \color{blue}{\left(\left(1 + 10 \cdot \frac{1}{k}\right) \cdot k\right)} + 1} \]
            12. lower-fma.f64N/A

              \[\leadsto \frac{a}{\color{blue}{\mathsf{fma}\left(k, \left(1 + 10 \cdot \frac{1}{k}\right) \cdot k, 1\right)}} \]
            13. *-commutativeN/A

              \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{k \cdot \left(1 + 10 \cdot \frac{1}{k}\right)}, 1\right)} \]
            14. +-commutativeN/A

              \[\leadsto \frac{a}{\mathsf{fma}\left(k, k \cdot \color{blue}{\left(10 \cdot \frac{1}{k} + 1\right)}, 1\right)} \]
            15. distribute-rgt-inN/A

              \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{\left(10 \cdot \frac{1}{k}\right) \cdot k + 1 \cdot k}, 1\right)} \]
            16. associate-*l*N/A

              \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10 \cdot \left(\frac{1}{k} \cdot k\right)} + 1 \cdot k, 1\right)} \]
            17. lft-mult-inverseN/A

              \[\leadsto \frac{a}{\mathsf{fma}\left(k, 10 \cdot \color{blue}{1} + 1 \cdot k, 1\right)} \]
            18. metadata-evalN/A

              \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10} + 1 \cdot k, 1\right)} \]
            19. *-lft-identityN/A

              \[\leadsto \frac{a}{\mathsf{fma}\left(k, 10 + \color{blue}{k}, 1\right)} \]
            20. lower-+.f6454.4

              \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10 + k}, 1\right)} \]
          5. Applied rewrites54.4%

            \[\leadsto \color{blue}{\frac{a}{\mathsf{fma}\left(k, 10 + k, 1\right)}} \]

          if 1.9999999999999999e305 < (/.f64 (*.f64 a (pow.f64 k m)) (+.f64 (+.f64 #s(literal 1 binary64) (*.f64 #s(literal 10 binary64) k)) (*.f64 k k)))

          1. Initial program 55.8%

            \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
          2. Add Preprocessing
          3. Step-by-step derivation
            1. lift-pow.f64N/A

              \[\leadsto \frac{a \cdot \color{blue}{{k}^{m}}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
            2. lift-*.f64N/A

              \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + \color{blue}{10 \cdot k}\right) + k \cdot k} \]
            3. lift-+.f64N/A

              \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right)} + k \cdot k} \]
            4. lift-*.f64N/A

              \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + \color{blue}{k \cdot k}} \]
            5. lift-+.f64N/A

              \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right) + k \cdot k}} \]
            6. *-commutativeN/A

              \[\leadsto \frac{\color{blue}{{k}^{m} \cdot a}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
            7. associate-*l/N/A

              \[\leadsto \color{blue}{\frac{{k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \cdot a} \]
            8. lower-*.f64N/A

              \[\leadsto \color{blue}{\frac{{k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \cdot a} \]
            9. lower-/.f6455.8

              \[\leadsto \color{blue}{\frac{{k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}} \cdot a \]
            10. lift-+.f64N/A

              \[\leadsto \frac{{k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right) + k \cdot k}} \cdot a \]
            11. lift-+.f64N/A

              \[\leadsto \frac{{k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right)} + k \cdot k} \cdot a \]
            12. associate-+l+N/A

              \[\leadsto \frac{{k}^{m}}{\color{blue}{1 + \left(10 \cdot k + k \cdot k\right)}} \cdot a \]
            13. +-commutativeN/A

              \[\leadsto \frac{{k}^{m}}{\color{blue}{\left(10 \cdot k + k \cdot k\right) + 1}} \cdot a \]
            14. lift-*.f64N/A

              \[\leadsto \frac{{k}^{m}}{\left(\color{blue}{10 \cdot k} + k \cdot k\right) + 1} \cdot a \]
            15. lift-*.f64N/A

              \[\leadsto \frac{{k}^{m}}{\left(10 \cdot k + \color{blue}{k \cdot k}\right) + 1} \cdot a \]
            16. distribute-rgt-outN/A

              \[\leadsto \frac{{k}^{m}}{\color{blue}{k \cdot \left(10 + k\right)} + 1} \cdot a \]
            17. lower-fma.f64N/A

              \[\leadsto \frac{{k}^{m}}{\color{blue}{\mathsf{fma}\left(k, 10 + k, 1\right)}} \cdot a \]
            18. lower-+.f6455.8

              \[\leadsto \frac{{k}^{m}}{\mathsf{fma}\left(k, \color{blue}{10 + k}, 1\right)} \cdot a \]
          4. Applied rewrites55.8%

            \[\leadsto \color{blue}{\frac{{k}^{m}}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot a} \]
          5. Taylor expanded in m around 0

            \[\leadsto \frac{\color{blue}{1}}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot a \]
          6. Step-by-step derivation
            1. Applied rewrites2.5%

              \[\leadsto \frac{\color{blue}{1}}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot a \]
            2. Taylor expanded in k around inf

              \[\leadsto \frac{1}{\color{blue}{{k}^{2}}} \cdot a \]
            3. Step-by-step derivation
              1. unpow2N/A

                \[\leadsto \frac{1}{\color{blue}{k \cdot k}} \cdot a \]
              2. lower-*.f6422.7

                \[\leadsto \frac{1}{\color{blue}{k \cdot k}} \cdot a \]
            4. Applied rewrites22.7%

              \[\leadsto \frac{1}{\color{blue}{k \cdot k}} \cdot a \]
          7. Recombined 2 regimes into one program.
          8. Final simplification49.0%

            \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{a \cdot {k}^{m}}{\left(1 + k \cdot 10\right) + k \cdot k} \leq 2 \cdot 10^{+305}:\\ \;\;\;\;\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;a \cdot \frac{1}{k \cdot k}\\ \end{array} \]
          9. Add Preprocessing

          Alternative 5: 96.6% accurate, 1.1× speedup?

          \[\begin{array}{l} \\ \begin{array}{l} t_0 := a \cdot {k}^{m}\\ \mathbf{if}\;m \leq -5 \cdot 10^{-17}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;m \leq 2 \cdot 10^{-19}:\\ \;\;\;\;\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
          (FPCore (a k m)
           :precision binary64
           (let* ((t_0 (* a (pow k m))))
             (if (<= m -5e-17) t_0 (if (<= m 2e-19) (/ a (fma k (+ k 10.0) 1.0)) t_0))))
          double code(double a, double k, double m) {
          	double t_0 = a * pow(k, m);
          	double tmp;
          	if (m <= -5e-17) {
          		tmp = t_0;
          	} else if (m <= 2e-19) {
          		tmp = a / fma(k, (k + 10.0), 1.0);
          	} else {
          		tmp = t_0;
          	}
          	return tmp;
          }
          
          function code(a, k, m)
          	t_0 = Float64(a * (k ^ m))
          	tmp = 0.0
          	if (m <= -5e-17)
          		tmp = t_0;
          	elseif (m <= 2e-19)
          		tmp = Float64(a / fma(k, Float64(k + 10.0), 1.0));
          	else
          		tmp = t_0;
          	end
          	return tmp
          end
          
          code[a_, k_, m_] := Block[{t$95$0 = N[(a * N[Power[k, m], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[m, -5e-17], t$95$0, If[LessEqual[m, 2e-19], N[(a / N[(k * N[(k + 10.0), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision], t$95$0]]]
          
          \begin{array}{l}
          
          \\
          \begin{array}{l}
          t_0 := a \cdot {k}^{m}\\
          \mathbf{if}\;m \leq -5 \cdot 10^{-17}:\\
          \;\;\;\;t\_0\\
          
          \mathbf{elif}\;m \leq 2 \cdot 10^{-19}:\\
          \;\;\;\;\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}\\
          
          \mathbf{else}:\\
          \;\;\;\;t\_0\\
          
          
          \end{array}
          \end{array}
          
          Derivation
          1. Split input into 2 regimes
          2. if m < -4.9999999999999999e-17 or 2e-19 < m

            1. Initial program 88.6%

              \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
            2. Add Preprocessing
            3. Taylor expanded in k around 0

              \[\leadsto \color{blue}{a \cdot {k}^{m}} \]
            4. Step-by-step derivation
              1. lower-*.f64N/A

                \[\leadsto \color{blue}{a \cdot {k}^{m}} \]
              2. lower-pow.f6499.4

                \[\leadsto a \cdot \color{blue}{{k}^{m}} \]
            5. Applied rewrites99.4%

              \[\leadsto \color{blue}{a \cdot {k}^{m}} \]

            if -4.9999999999999999e-17 < m < 2e-19

            1. Initial program 93.7%

              \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
            2. Add Preprocessing
            3. Taylor expanded in m around 0

              \[\leadsto \color{blue}{\frac{a}{1 + \left(10 \cdot k + {k}^{2}\right)}} \]
            4. Step-by-step derivation
              1. lower-/.f64N/A

                \[\leadsto \color{blue}{\frac{a}{1 + \left(10 \cdot k + {k}^{2}\right)}} \]
              2. unpow2N/A

                \[\leadsto \frac{a}{1 + \left(10 \cdot k + \color{blue}{k \cdot k}\right)} \]
              3. distribute-rgt-inN/A

                \[\leadsto \frac{a}{1 + \color{blue}{k \cdot \left(10 + k\right)}} \]
              4. +-commutativeN/A

                \[\leadsto \frac{a}{\color{blue}{k \cdot \left(10 + k\right) + 1}} \]
              5. metadata-evalN/A

                \[\leadsto \frac{a}{k \cdot \left(\color{blue}{10 \cdot 1} + k\right) + 1} \]
              6. lft-mult-inverseN/A

                \[\leadsto \frac{a}{k \cdot \left(10 \cdot \color{blue}{\left(\frac{1}{k} \cdot k\right)} + k\right) + 1} \]
              7. associate-*l*N/A

                \[\leadsto \frac{a}{k \cdot \left(\color{blue}{\left(10 \cdot \frac{1}{k}\right) \cdot k} + k\right) + 1} \]
              8. *-lft-identityN/A

                \[\leadsto \frac{a}{k \cdot \left(\left(10 \cdot \frac{1}{k}\right) \cdot k + \color{blue}{1 \cdot k}\right) + 1} \]
              9. distribute-rgt-inN/A

                \[\leadsto \frac{a}{k \cdot \color{blue}{\left(k \cdot \left(10 \cdot \frac{1}{k} + 1\right)\right)} + 1} \]
              10. +-commutativeN/A

                \[\leadsto \frac{a}{k \cdot \left(k \cdot \color{blue}{\left(1 + 10 \cdot \frac{1}{k}\right)}\right) + 1} \]
              11. *-commutativeN/A

                \[\leadsto \frac{a}{k \cdot \color{blue}{\left(\left(1 + 10 \cdot \frac{1}{k}\right) \cdot k\right)} + 1} \]
              12. lower-fma.f64N/A

                \[\leadsto \frac{a}{\color{blue}{\mathsf{fma}\left(k, \left(1 + 10 \cdot \frac{1}{k}\right) \cdot k, 1\right)}} \]
              13. *-commutativeN/A

                \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{k \cdot \left(1 + 10 \cdot \frac{1}{k}\right)}, 1\right)} \]
              14. +-commutativeN/A

                \[\leadsto \frac{a}{\mathsf{fma}\left(k, k \cdot \color{blue}{\left(10 \cdot \frac{1}{k} + 1\right)}, 1\right)} \]
              15. distribute-rgt-inN/A

                \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{\left(10 \cdot \frac{1}{k}\right) \cdot k + 1 \cdot k}, 1\right)} \]
              16. associate-*l*N/A

                \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10 \cdot \left(\frac{1}{k} \cdot k\right)} + 1 \cdot k, 1\right)} \]
              17. lft-mult-inverseN/A

                \[\leadsto \frac{a}{\mathsf{fma}\left(k, 10 \cdot \color{blue}{1} + 1 \cdot k, 1\right)} \]
              18. metadata-evalN/A

                \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10} + 1 \cdot k, 1\right)} \]
              19. *-lft-identityN/A

                \[\leadsto \frac{a}{\mathsf{fma}\left(k, 10 + \color{blue}{k}, 1\right)} \]
              20. lower-+.f6493.7

                \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10 + k}, 1\right)} \]
            5. Applied rewrites93.7%

              \[\leadsto \color{blue}{\frac{a}{\mathsf{fma}\left(k, 10 + k, 1\right)}} \]
          3. Recombined 2 regimes into one program.
          4. Final simplification97.4%

            \[\leadsto \begin{array}{l} \mathbf{if}\;m \leq -5 \cdot 10^{-17}:\\ \;\;\;\;a \cdot {k}^{m}\\ \mathbf{elif}\;m \leq 2 \cdot 10^{-19}:\\ \;\;\;\;\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;a \cdot {k}^{m}\\ \end{array} \]
          5. Add Preprocessing

          Alternative 6: 70.0% accurate, 1.9× speedup?

          \[\begin{array}{l} \\ \begin{array}{l} t_0 := \mathsf{fma}\left(k, 10 - k, 1\right)\\ \mathbf{if}\;m \leq -36000000000000:\\ \;\;\;\;\frac{a \cdot 1}{\left(k \cdot k\right) \cdot \left(t\_0 \cdot 1\right)}\\ \mathbf{elif}\;m \leq 1.65:\\ \;\;\;\;\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{a \cdot 1}{1 \cdot \left(t\_0 \cdot \frac{-10 - k}{k \cdot \left(k \cdot k\right)}\right)}\\ \end{array} \end{array} \]
          (FPCore (a k m)
           :precision binary64
           (let* ((t_0 (fma k (- 10.0 k) 1.0)))
             (if (<= m -36000000000000.0)
               (/ (* a 1.0) (* (* k k) (* t_0 1.0)))
               (if (<= m 1.65)
                 (/ a (fma k (+ k 10.0) 1.0))
                 (/ (* a 1.0) (* 1.0 (* t_0 (/ (- -10.0 k) (* k (* k k))))))))))
          double code(double a, double k, double m) {
          	double t_0 = fma(k, (10.0 - k), 1.0);
          	double tmp;
          	if (m <= -36000000000000.0) {
          		tmp = (a * 1.0) / ((k * k) * (t_0 * 1.0));
          	} else if (m <= 1.65) {
          		tmp = a / fma(k, (k + 10.0), 1.0);
          	} else {
          		tmp = (a * 1.0) / (1.0 * (t_0 * ((-10.0 - k) / (k * (k * k)))));
          	}
          	return tmp;
          }
          
          function code(a, k, m)
          	t_0 = fma(k, Float64(10.0 - k), 1.0)
          	tmp = 0.0
          	if (m <= -36000000000000.0)
          		tmp = Float64(Float64(a * 1.0) / Float64(Float64(k * k) * Float64(t_0 * 1.0)));
          	elseif (m <= 1.65)
          		tmp = Float64(a / fma(k, Float64(k + 10.0), 1.0));
          	else
          		tmp = Float64(Float64(a * 1.0) / Float64(1.0 * Float64(t_0 * Float64(Float64(-10.0 - k) / Float64(k * Float64(k * k))))));
          	end
          	return tmp
          end
          
          code[a_, k_, m_] := Block[{t$95$0 = N[(k * N[(10.0 - k), $MachinePrecision] + 1.0), $MachinePrecision]}, If[LessEqual[m, -36000000000000.0], N[(N[(a * 1.0), $MachinePrecision] / N[(N[(k * k), $MachinePrecision] * N[(t$95$0 * 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 1.65], N[(a / N[(k * N[(k + 10.0), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision], N[(N[(a * 1.0), $MachinePrecision] / N[(1.0 * N[(t$95$0 * N[(N[(-10.0 - k), $MachinePrecision] / N[(k * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
          
          \begin{array}{l}
          
          \\
          \begin{array}{l}
          t_0 := \mathsf{fma}\left(k, 10 - k, 1\right)\\
          \mathbf{if}\;m \leq -36000000000000:\\
          \;\;\;\;\frac{a \cdot 1}{\left(k \cdot k\right) \cdot \left(t\_0 \cdot 1\right)}\\
          
          \mathbf{elif}\;m \leq 1.65:\\
          \;\;\;\;\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}\\
          
          \mathbf{else}:\\
          \;\;\;\;\frac{a \cdot 1}{1 \cdot \left(t\_0 \cdot \frac{-10 - k}{k \cdot \left(k \cdot k\right)}\right)}\\
          
          
          \end{array}
          \end{array}
          
          Derivation
          1. Split input into 3 regimes
          2. if m < -3.6e13

            1. Initial program 100.0%

              \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
            2. Add Preprocessing
            3. Step-by-step derivation
              1. lift-*.f64N/A

                \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + \color{blue}{10 \cdot k}\right) + k \cdot k} \]
              2. lift-+.f64N/A

                \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right)} + k \cdot k} \]
              3. lift-*.f64N/A

                \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + \color{blue}{k \cdot k}} \]
              4. flip-+N/A

                \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\frac{\left(1 + 10 \cdot k\right) \cdot \left(1 + 10 \cdot k\right) - \left(k \cdot k\right) \cdot \left(k \cdot k\right)}{\left(1 + 10 \cdot k\right) - k \cdot k}}} \]
              5. div-invN/A

                \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(\left(1 + 10 \cdot k\right) \cdot \left(1 + 10 \cdot k\right) - \left(k \cdot k\right) \cdot \left(k \cdot k\right)\right) \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}}} \]
              6. difference-of-squaresN/A

                \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(\left(\left(1 + 10 \cdot k\right) + k \cdot k\right) \cdot \left(\left(1 + 10 \cdot k\right) - k \cdot k\right)\right)} \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}} \]
              7. lift-+.f64N/A

                \[\leadsto \frac{a \cdot {k}^{m}}{\left(\color{blue}{\left(\left(1 + 10 \cdot k\right) + k \cdot k\right)} \cdot \left(\left(1 + 10 \cdot k\right) - k \cdot k\right)\right) \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}} \]
              8. associate-*l*N/A

                \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(\left(1 + 10 \cdot k\right) + k \cdot k\right) \cdot \left(\left(\left(1 + 10 \cdot k\right) - k \cdot k\right) \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}\right)}} \]
              9. lower-*.f64N/A

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

              \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)}} \]
            5. Taylor expanded in m around 0

              \[\leadsto \frac{a \cdot \color{blue}{1}}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)} \]
            6. Step-by-step derivation
              1. Applied rewrites4.1%

                \[\leadsto \frac{a \cdot \color{blue}{1}}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)} \]
              2. Taylor expanded in k around 0

                \[\leadsto \frac{a \cdot 1}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \color{blue}{1}\right)} \]
              3. Step-by-step derivation
                1. Applied rewrites46.3%

                  \[\leadsto \frac{a \cdot 1}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \color{blue}{1}\right)} \]
                2. Taylor expanded in k around inf

                  \[\leadsto \frac{a \cdot 1}{\color{blue}{{k}^{2}} \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot 1\right)} \]
                3. Step-by-step derivation
                  1. unpow2N/A

                    \[\leadsto \frac{a \cdot 1}{\color{blue}{\left(k \cdot k\right)} \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot 1\right)} \]
                  2. lower-*.f6471.4

                    \[\leadsto \frac{a \cdot 1}{\color{blue}{\left(k \cdot k\right)} \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot 1\right)} \]
                4. Applied rewrites71.4%

                  \[\leadsto \frac{a \cdot 1}{\color{blue}{\left(k \cdot k\right)} \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot 1\right)} \]

                if -3.6e13 < m < 1.6499999999999999

                1. Initial program 94.1%

                  \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
                2. Add Preprocessing
                3. Taylor expanded in m around 0

                  \[\leadsto \color{blue}{\frac{a}{1 + \left(10 \cdot k + {k}^{2}\right)}} \]
                4. Step-by-step derivation
                  1. lower-/.f64N/A

                    \[\leadsto \color{blue}{\frac{a}{1 + \left(10 \cdot k + {k}^{2}\right)}} \]
                  2. unpow2N/A

                    \[\leadsto \frac{a}{1 + \left(10 \cdot k + \color{blue}{k \cdot k}\right)} \]
                  3. distribute-rgt-inN/A

                    \[\leadsto \frac{a}{1 + \color{blue}{k \cdot \left(10 + k\right)}} \]
                  4. +-commutativeN/A

                    \[\leadsto \frac{a}{\color{blue}{k \cdot \left(10 + k\right) + 1}} \]
                  5. metadata-evalN/A

                    \[\leadsto \frac{a}{k \cdot \left(\color{blue}{10 \cdot 1} + k\right) + 1} \]
                  6. lft-mult-inverseN/A

                    \[\leadsto \frac{a}{k \cdot \left(10 \cdot \color{blue}{\left(\frac{1}{k} \cdot k\right)} + k\right) + 1} \]
                  7. associate-*l*N/A

                    \[\leadsto \frac{a}{k \cdot \left(\color{blue}{\left(10 \cdot \frac{1}{k}\right) \cdot k} + k\right) + 1} \]
                  8. *-lft-identityN/A

                    \[\leadsto \frac{a}{k \cdot \left(\left(10 \cdot \frac{1}{k}\right) \cdot k + \color{blue}{1 \cdot k}\right) + 1} \]
                  9. distribute-rgt-inN/A

                    \[\leadsto \frac{a}{k \cdot \color{blue}{\left(k \cdot \left(10 \cdot \frac{1}{k} + 1\right)\right)} + 1} \]
                  10. +-commutativeN/A

                    \[\leadsto \frac{a}{k \cdot \left(k \cdot \color{blue}{\left(1 + 10 \cdot \frac{1}{k}\right)}\right) + 1} \]
                  11. *-commutativeN/A

                    \[\leadsto \frac{a}{k \cdot \color{blue}{\left(\left(1 + 10 \cdot \frac{1}{k}\right) \cdot k\right)} + 1} \]
                  12. lower-fma.f64N/A

                    \[\leadsto \frac{a}{\color{blue}{\mathsf{fma}\left(k, \left(1 + 10 \cdot \frac{1}{k}\right) \cdot k, 1\right)}} \]
                  13. *-commutativeN/A

                    \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{k \cdot \left(1 + 10 \cdot \frac{1}{k}\right)}, 1\right)} \]
                  14. +-commutativeN/A

                    \[\leadsto \frac{a}{\mathsf{fma}\left(k, k \cdot \color{blue}{\left(10 \cdot \frac{1}{k} + 1\right)}, 1\right)} \]
                  15. distribute-rgt-inN/A

                    \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{\left(10 \cdot \frac{1}{k}\right) \cdot k + 1 \cdot k}, 1\right)} \]
                  16. associate-*l*N/A

                    \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10 \cdot \left(\frac{1}{k} \cdot k\right)} + 1 \cdot k, 1\right)} \]
                  17. lft-mult-inverseN/A

                    \[\leadsto \frac{a}{\mathsf{fma}\left(k, 10 \cdot \color{blue}{1} + 1 \cdot k, 1\right)} \]
                  18. metadata-evalN/A

                    \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10} + 1 \cdot k, 1\right)} \]
                  19. *-lft-identityN/A

                    \[\leadsto \frac{a}{\mathsf{fma}\left(k, 10 + \color{blue}{k}, 1\right)} \]
                  20. lower-+.f6492.0

                    \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10 + k}, 1\right)} \]
                5. Applied rewrites92.0%

                  \[\leadsto \color{blue}{\frac{a}{\mathsf{fma}\left(k, 10 + k, 1\right)}} \]

                if 1.6499999999999999 < m

                1. Initial program 76.8%

                  \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
                2. Add Preprocessing
                3. Step-by-step derivation
                  1. lift-*.f64N/A

                    \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + \color{blue}{10 \cdot k}\right) + k \cdot k} \]
                  2. lift-+.f64N/A

                    \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right)} + k \cdot k} \]
                  3. lift-*.f64N/A

                    \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + \color{blue}{k \cdot k}} \]
                  4. flip-+N/A

                    \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\frac{\left(1 + 10 \cdot k\right) \cdot \left(1 + 10 \cdot k\right) - \left(k \cdot k\right) \cdot \left(k \cdot k\right)}{\left(1 + 10 \cdot k\right) - k \cdot k}}} \]
                  5. div-invN/A

                    \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(\left(1 + 10 \cdot k\right) \cdot \left(1 + 10 \cdot k\right) - \left(k \cdot k\right) \cdot \left(k \cdot k\right)\right) \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}}} \]
                  6. difference-of-squaresN/A

                    \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(\left(\left(1 + 10 \cdot k\right) + k \cdot k\right) \cdot \left(\left(1 + 10 \cdot k\right) - k \cdot k\right)\right)} \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}} \]
                  7. lift-+.f64N/A

                    \[\leadsto \frac{a \cdot {k}^{m}}{\left(\color{blue}{\left(\left(1 + 10 \cdot k\right) + k \cdot k\right)} \cdot \left(\left(1 + 10 \cdot k\right) - k \cdot k\right)\right) \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}} \]
                  8. associate-*l*N/A

                    \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(\left(1 + 10 \cdot k\right) + k \cdot k\right) \cdot \left(\left(\left(1 + 10 \cdot k\right) - k \cdot k\right) \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}\right)}} \]
                  9. lower-*.f64N/A

                    \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(\left(1 + 10 \cdot k\right) + k \cdot k\right) \cdot \left(\left(\left(1 + 10 \cdot k\right) - k \cdot k\right) \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}\right)}} \]
                4. Applied rewrites76.8%

                  \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)}} \]
                5. Taylor expanded in m around 0

                  \[\leadsto \frac{a \cdot \color{blue}{1}}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)} \]
                6. Step-by-step derivation
                  1. Applied rewrites2.6%

                    \[\leadsto \frac{a \cdot \color{blue}{1}}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)} \]
                  2. Taylor expanded in k around 0

                    \[\leadsto \frac{a \cdot 1}{\color{blue}{1} \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)} \]
                  3. Step-by-step derivation
                    1. Applied rewrites3.1%

                      \[\leadsto \frac{a \cdot 1}{\color{blue}{1} \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)} \]
                    2. Taylor expanded in k around inf

                      \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \color{blue}{\left(-1 \cdot \frac{1 + 10 \cdot \frac{1}{k}}{{k}^{2}}\right)}\right)} \]
                    3. Step-by-step derivation
                      1. mul-1-negN/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \color{blue}{\left(\mathsf{neg}\left(\frac{1 + 10 \cdot \frac{1}{k}}{{k}^{2}}\right)\right)}\right)} \]
                      2. distribute-neg-fracN/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \color{blue}{\frac{\mathsf{neg}\left(\left(1 + 10 \cdot \frac{1}{k}\right)\right)}{{k}^{2}}}\right)} \]
                      3. distribute-neg-inN/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{\color{blue}{\left(\mathsf{neg}\left(1\right)\right) + \left(\mathsf{neg}\left(10 \cdot \frac{1}{k}\right)\right)}}{{k}^{2}}\right)} \]
                      4. metadata-evalN/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{\color{blue}{-1} + \left(\mathsf{neg}\left(10 \cdot \frac{1}{k}\right)\right)}{{k}^{2}}\right)} \]
                      5. unsub-negN/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{\color{blue}{-1 - 10 \cdot \frac{1}{k}}}{{k}^{2}}\right)} \]
                      6. metadata-evalN/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{\color{blue}{\left(\mathsf{neg}\left(1\right)\right)} - 10 \cdot \frac{1}{k}}{{k}^{2}}\right)} \]
                      7. *-inversesN/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{\left(\mathsf{neg}\left(\color{blue}{\frac{k}{k}}\right)\right) - 10 \cdot \frac{1}{k}}{{k}^{2}}\right)} \]
                      8. distribute-frac-negN/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{\color{blue}{\frac{\mathsf{neg}\left(k\right)}{k}} - 10 \cdot \frac{1}{k}}{{k}^{2}}\right)} \]
                      9. mul-1-negN/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{\frac{\color{blue}{-1 \cdot k}}{k} - 10 \cdot \frac{1}{k}}{{k}^{2}}\right)} \]
                      10. associate-*r/N/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{\frac{-1 \cdot k}{k} - \color{blue}{\frac{10 \cdot 1}{k}}}{{k}^{2}}\right)} \]
                      11. metadata-evalN/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{\frac{-1 \cdot k}{k} - \frac{\color{blue}{10}}{k}}{{k}^{2}}\right)} \]
                      12. div-subN/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{\color{blue}{\frac{-1 \cdot k - 10}{k}}}{{k}^{2}}\right)} \]
                      13. associate-/r*N/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \color{blue}{\frac{-1 \cdot k - 10}{k \cdot {k}^{2}}}\right)} \]
                      14. unpow2N/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{-1 \cdot k - 10}{k \cdot \color{blue}{\left(k \cdot k\right)}}\right)} \]
                      15. cube-multN/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{-1 \cdot k - 10}{\color{blue}{{k}^{3}}}\right)} \]
                      16. lower-/.f64N/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \color{blue}{\frac{-1 \cdot k - 10}{{k}^{3}}}\right)} \]
                      17. sub-negN/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{\color{blue}{-1 \cdot k + \left(\mathsf{neg}\left(10\right)\right)}}{{k}^{3}}\right)} \]
                      18. metadata-evalN/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{-1 \cdot k + \color{blue}{-10}}{{k}^{3}}\right)} \]
                      19. +-commutativeN/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{\color{blue}{-10 + -1 \cdot k}}{{k}^{3}}\right)} \]
                      20. mul-1-negN/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{-10 + \color{blue}{\left(\mathsf{neg}\left(k\right)\right)}}{{k}^{3}}\right)} \]
                      21. unsub-negN/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{\color{blue}{-10 - k}}{{k}^{3}}\right)} \]
                      22. lower--.f64N/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{\color{blue}{-10 - k}}{{k}^{3}}\right)} \]
                      23. cube-multN/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{-10 - k}{\color{blue}{k \cdot \left(k \cdot k\right)}}\right)} \]
                      24. unpow2N/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{-10 - k}{k \cdot \color{blue}{{k}^{2}}}\right)} \]
                      25. lower-*.f64N/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{-10 - k}{\color{blue}{k \cdot {k}^{2}}}\right)} \]
                      26. unpow2N/A

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{-10 - k}{k \cdot \color{blue}{\left(k \cdot k\right)}}\right)} \]
                      27. lower-*.f6454.5

                        \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{-10 - k}{k \cdot \color{blue}{\left(k \cdot k\right)}}\right)} \]
                    4. Applied rewrites54.5%

                      \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \color{blue}{\frac{-10 - k}{k \cdot \left(k \cdot k\right)}}\right)} \]
                  4. Recombined 3 regimes into one program.
                  5. Final simplification73.8%

                    \[\leadsto \begin{array}{l} \mathbf{if}\;m \leq -36000000000000:\\ \;\;\;\;\frac{a \cdot 1}{\left(k \cdot k\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot 1\right)}\\ \mathbf{elif}\;m \leq 1.65:\\ \;\;\;\;\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{-10 - k}{k \cdot \left(k \cdot k\right)}\right)}\\ \end{array} \]
                  6. Add Preprocessing

                  Alternative 7: 65.3% accurate, 2.1× speedup?

                  \[\begin{array}{l} \\ \begin{array}{l} t_0 := \mathsf{fma}\left(k, 10 - k, 1\right)\\ \mathbf{if}\;m \leq -36000000000000:\\ \;\;\;\;\frac{a \cdot 1}{\left(k \cdot k\right) \cdot \left(t\_0 \cdot 1\right)}\\ \mathbf{elif}\;m \leq 1.65:\\ \;\;\;\;\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{a \cdot 1}{1 \cdot \left(t\_0 \cdot \frac{-1}{k \cdot k}\right)}\\ \end{array} \end{array} \]
                  (FPCore (a k m)
                   :precision binary64
                   (let* ((t_0 (fma k (- 10.0 k) 1.0)))
                     (if (<= m -36000000000000.0)
                       (/ (* a 1.0) (* (* k k) (* t_0 1.0)))
                       (if (<= m 1.65)
                         (/ a (fma k (+ k 10.0) 1.0))
                         (/ (* a 1.0) (* 1.0 (* t_0 (/ -1.0 (* k k)))))))))
                  double code(double a, double k, double m) {
                  	double t_0 = fma(k, (10.0 - k), 1.0);
                  	double tmp;
                  	if (m <= -36000000000000.0) {
                  		tmp = (a * 1.0) / ((k * k) * (t_0 * 1.0));
                  	} else if (m <= 1.65) {
                  		tmp = a / fma(k, (k + 10.0), 1.0);
                  	} else {
                  		tmp = (a * 1.0) / (1.0 * (t_0 * (-1.0 / (k * k))));
                  	}
                  	return tmp;
                  }
                  
                  function code(a, k, m)
                  	t_0 = fma(k, Float64(10.0 - k), 1.0)
                  	tmp = 0.0
                  	if (m <= -36000000000000.0)
                  		tmp = Float64(Float64(a * 1.0) / Float64(Float64(k * k) * Float64(t_0 * 1.0)));
                  	elseif (m <= 1.65)
                  		tmp = Float64(a / fma(k, Float64(k + 10.0), 1.0));
                  	else
                  		tmp = Float64(Float64(a * 1.0) / Float64(1.0 * Float64(t_0 * Float64(-1.0 / Float64(k * k)))));
                  	end
                  	return tmp
                  end
                  
                  code[a_, k_, m_] := Block[{t$95$0 = N[(k * N[(10.0 - k), $MachinePrecision] + 1.0), $MachinePrecision]}, If[LessEqual[m, -36000000000000.0], N[(N[(a * 1.0), $MachinePrecision] / N[(N[(k * k), $MachinePrecision] * N[(t$95$0 * 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[m, 1.65], N[(a / N[(k * N[(k + 10.0), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision], N[(N[(a * 1.0), $MachinePrecision] / N[(1.0 * N[(t$95$0 * N[(-1.0 / N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
                  
                  \begin{array}{l}
                  
                  \\
                  \begin{array}{l}
                  t_0 := \mathsf{fma}\left(k, 10 - k, 1\right)\\
                  \mathbf{if}\;m \leq -36000000000000:\\
                  \;\;\;\;\frac{a \cdot 1}{\left(k \cdot k\right) \cdot \left(t\_0 \cdot 1\right)}\\
                  
                  \mathbf{elif}\;m \leq 1.65:\\
                  \;\;\;\;\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}\\
                  
                  \mathbf{else}:\\
                  \;\;\;\;\frac{a \cdot 1}{1 \cdot \left(t\_0 \cdot \frac{-1}{k \cdot k}\right)}\\
                  
                  
                  \end{array}
                  \end{array}
                  
                  Derivation
                  1. Split input into 3 regimes
                  2. if m < -3.6e13

                    1. Initial program 100.0%

                      \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
                    2. Add Preprocessing
                    3. Step-by-step derivation
                      1. lift-*.f64N/A

                        \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + \color{blue}{10 \cdot k}\right) + k \cdot k} \]
                      2. lift-+.f64N/A

                        \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right)} + k \cdot k} \]
                      3. lift-*.f64N/A

                        \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + \color{blue}{k \cdot k}} \]
                      4. flip-+N/A

                        \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\frac{\left(1 + 10 \cdot k\right) \cdot \left(1 + 10 \cdot k\right) - \left(k \cdot k\right) \cdot \left(k \cdot k\right)}{\left(1 + 10 \cdot k\right) - k \cdot k}}} \]
                      5. div-invN/A

                        \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(\left(1 + 10 \cdot k\right) \cdot \left(1 + 10 \cdot k\right) - \left(k \cdot k\right) \cdot \left(k \cdot k\right)\right) \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}}} \]
                      6. difference-of-squaresN/A

                        \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(\left(\left(1 + 10 \cdot k\right) + k \cdot k\right) \cdot \left(\left(1 + 10 \cdot k\right) - k \cdot k\right)\right)} \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}} \]
                      7. lift-+.f64N/A

                        \[\leadsto \frac{a \cdot {k}^{m}}{\left(\color{blue}{\left(\left(1 + 10 \cdot k\right) + k \cdot k\right)} \cdot \left(\left(1 + 10 \cdot k\right) - k \cdot k\right)\right) \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}} \]
                      8. associate-*l*N/A

                        \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(\left(1 + 10 \cdot k\right) + k \cdot k\right) \cdot \left(\left(\left(1 + 10 \cdot k\right) - k \cdot k\right) \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}\right)}} \]
                      9. lower-*.f64N/A

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

                      \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)}} \]
                    5. Taylor expanded in m around 0

                      \[\leadsto \frac{a \cdot \color{blue}{1}}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)} \]
                    6. Step-by-step derivation
                      1. Applied rewrites4.1%

                        \[\leadsto \frac{a \cdot \color{blue}{1}}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)} \]
                      2. Taylor expanded in k around 0

                        \[\leadsto \frac{a \cdot 1}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \color{blue}{1}\right)} \]
                      3. Step-by-step derivation
                        1. Applied rewrites46.3%

                          \[\leadsto \frac{a \cdot 1}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \color{blue}{1}\right)} \]
                        2. Taylor expanded in k around inf

                          \[\leadsto \frac{a \cdot 1}{\color{blue}{{k}^{2}} \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot 1\right)} \]
                        3. Step-by-step derivation
                          1. unpow2N/A

                            \[\leadsto \frac{a \cdot 1}{\color{blue}{\left(k \cdot k\right)} \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot 1\right)} \]
                          2. lower-*.f6471.4

                            \[\leadsto \frac{a \cdot 1}{\color{blue}{\left(k \cdot k\right)} \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot 1\right)} \]
                        4. Applied rewrites71.4%

                          \[\leadsto \frac{a \cdot 1}{\color{blue}{\left(k \cdot k\right)} \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot 1\right)} \]

                        if -3.6e13 < m < 1.6499999999999999

                        1. Initial program 94.1%

                          \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
                        2. Add Preprocessing
                        3. Taylor expanded in m around 0

                          \[\leadsto \color{blue}{\frac{a}{1 + \left(10 \cdot k + {k}^{2}\right)}} \]
                        4. Step-by-step derivation
                          1. lower-/.f64N/A

                            \[\leadsto \color{blue}{\frac{a}{1 + \left(10 \cdot k + {k}^{2}\right)}} \]
                          2. unpow2N/A

                            \[\leadsto \frac{a}{1 + \left(10 \cdot k + \color{blue}{k \cdot k}\right)} \]
                          3. distribute-rgt-inN/A

                            \[\leadsto \frac{a}{1 + \color{blue}{k \cdot \left(10 + k\right)}} \]
                          4. +-commutativeN/A

                            \[\leadsto \frac{a}{\color{blue}{k \cdot \left(10 + k\right) + 1}} \]
                          5. metadata-evalN/A

                            \[\leadsto \frac{a}{k \cdot \left(\color{blue}{10 \cdot 1} + k\right) + 1} \]
                          6. lft-mult-inverseN/A

                            \[\leadsto \frac{a}{k \cdot \left(10 \cdot \color{blue}{\left(\frac{1}{k} \cdot k\right)} + k\right) + 1} \]
                          7. associate-*l*N/A

                            \[\leadsto \frac{a}{k \cdot \left(\color{blue}{\left(10 \cdot \frac{1}{k}\right) \cdot k} + k\right) + 1} \]
                          8. *-lft-identityN/A

                            \[\leadsto \frac{a}{k \cdot \left(\left(10 \cdot \frac{1}{k}\right) \cdot k + \color{blue}{1 \cdot k}\right) + 1} \]
                          9. distribute-rgt-inN/A

                            \[\leadsto \frac{a}{k \cdot \color{blue}{\left(k \cdot \left(10 \cdot \frac{1}{k} + 1\right)\right)} + 1} \]
                          10. +-commutativeN/A

                            \[\leadsto \frac{a}{k \cdot \left(k \cdot \color{blue}{\left(1 + 10 \cdot \frac{1}{k}\right)}\right) + 1} \]
                          11. *-commutativeN/A

                            \[\leadsto \frac{a}{k \cdot \color{blue}{\left(\left(1 + 10 \cdot \frac{1}{k}\right) \cdot k\right)} + 1} \]
                          12. lower-fma.f64N/A

                            \[\leadsto \frac{a}{\color{blue}{\mathsf{fma}\left(k, \left(1 + 10 \cdot \frac{1}{k}\right) \cdot k, 1\right)}} \]
                          13. *-commutativeN/A

                            \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{k \cdot \left(1 + 10 \cdot \frac{1}{k}\right)}, 1\right)} \]
                          14. +-commutativeN/A

                            \[\leadsto \frac{a}{\mathsf{fma}\left(k, k \cdot \color{blue}{\left(10 \cdot \frac{1}{k} + 1\right)}, 1\right)} \]
                          15. distribute-rgt-inN/A

                            \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{\left(10 \cdot \frac{1}{k}\right) \cdot k + 1 \cdot k}, 1\right)} \]
                          16. associate-*l*N/A

                            \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10 \cdot \left(\frac{1}{k} \cdot k\right)} + 1 \cdot k, 1\right)} \]
                          17. lft-mult-inverseN/A

                            \[\leadsto \frac{a}{\mathsf{fma}\left(k, 10 \cdot \color{blue}{1} + 1 \cdot k, 1\right)} \]
                          18. metadata-evalN/A

                            \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10} + 1 \cdot k, 1\right)} \]
                          19. *-lft-identityN/A

                            \[\leadsto \frac{a}{\mathsf{fma}\left(k, 10 + \color{blue}{k}, 1\right)} \]
                          20. lower-+.f6492.0

                            \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10 + k}, 1\right)} \]
                        5. Applied rewrites92.0%

                          \[\leadsto \color{blue}{\frac{a}{\mathsf{fma}\left(k, 10 + k, 1\right)}} \]

                        if 1.6499999999999999 < m

                        1. Initial program 76.8%

                          \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
                        2. Add Preprocessing
                        3. Step-by-step derivation
                          1. lift-*.f64N/A

                            \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + \color{blue}{10 \cdot k}\right) + k \cdot k} \]
                          2. lift-+.f64N/A

                            \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right)} + k \cdot k} \]
                          3. lift-*.f64N/A

                            \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + \color{blue}{k \cdot k}} \]
                          4. flip-+N/A

                            \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\frac{\left(1 + 10 \cdot k\right) \cdot \left(1 + 10 \cdot k\right) - \left(k \cdot k\right) \cdot \left(k \cdot k\right)}{\left(1 + 10 \cdot k\right) - k \cdot k}}} \]
                          5. div-invN/A

                            \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(\left(1 + 10 \cdot k\right) \cdot \left(1 + 10 \cdot k\right) - \left(k \cdot k\right) \cdot \left(k \cdot k\right)\right) \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}}} \]
                          6. difference-of-squaresN/A

                            \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(\left(\left(1 + 10 \cdot k\right) + k \cdot k\right) \cdot \left(\left(1 + 10 \cdot k\right) - k \cdot k\right)\right)} \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}} \]
                          7. lift-+.f64N/A

                            \[\leadsto \frac{a \cdot {k}^{m}}{\left(\color{blue}{\left(\left(1 + 10 \cdot k\right) + k \cdot k\right)} \cdot \left(\left(1 + 10 \cdot k\right) - k \cdot k\right)\right) \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}} \]
                          8. associate-*l*N/A

                            \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(\left(1 + 10 \cdot k\right) + k \cdot k\right) \cdot \left(\left(\left(1 + 10 \cdot k\right) - k \cdot k\right) \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}\right)}} \]
                          9. lower-*.f64N/A

                            \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(\left(1 + 10 \cdot k\right) + k \cdot k\right) \cdot \left(\left(\left(1 + 10 \cdot k\right) - k \cdot k\right) \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}\right)}} \]
                        4. Applied rewrites76.8%

                          \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)}} \]
                        5. Taylor expanded in m around 0

                          \[\leadsto \frac{a \cdot \color{blue}{1}}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)} \]
                        6. Step-by-step derivation
                          1. Applied rewrites2.6%

                            \[\leadsto \frac{a \cdot \color{blue}{1}}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)} \]
                          2. Taylor expanded in k around 0

                            \[\leadsto \frac{a \cdot 1}{\color{blue}{1} \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)} \]
                          3. Step-by-step derivation
                            1. Applied rewrites3.1%

                              \[\leadsto \frac{a \cdot 1}{\color{blue}{1} \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)} \]
                            2. Taylor expanded in k around inf

                              \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \color{blue}{\frac{-1}{{k}^{2}}}\right)} \]
                            3. Step-by-step derivation
                              1. lower-/.f64N/A

                                \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \color{blue}{\frac{-1}{{k}^{2}}}\right)} \]
                              2. unpow2N/A

                                \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{-1}{\color{blue}{k \cdot k}}\right)} \]
                              3. lower-*.f6436.1

                                \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{-1}{\color{blue}{k \cdot k}}\right)} \]
                            4. Applied rewrites36.1%

                              \[\leadsto \frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \color{blue}{\frac{-1}{k \cdot k}}\right)} \]
                          4. Recombined 3 regimes into one program.
                          5. Final simplification67.9%

                            \[\leadsto \begin{array}{l} \mathbf{if}\;m \leq -36000000000000:\\ \;\;\;\;\frac{a \cdot 1}{\left(k \cdot k\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot 1\right)}\\ \mathbf{elif}\;m \leq 1.65:\\ \;\;\;\;\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{a \cdot 1}{1 \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{-1}{k \cdot k}\right)}\\ \end{array} \]
                          6. Add Preprocessing

                          Alternative 8: 54.7% accurate, 2.9× speedup?

                          \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;m \leq -36000000000000:\\ \;\;\;\;\frac{a \cdot 1}{\left(k \cdot k\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}\\ \end{array} \end{array} \]
                          (FPCore (a k m)
                           :precision binary64
                           (if (<= m -36000000000000.0)
                             (/ (* a 1.0) (* (* k k) (* (fma k (- 10.0 k) 1.0) 1.0)))
                             (/ a (fma k (+ k 10.0) 1.0))))
                          double code(double a, double k, double m) {
                          	double tmp;
                          	if (m <= -36000000000000.0) {
                          		tmp = (a * 1.0) / ((k * k) * (fma(k, (10.0 - k), 1.0) * 1.0));
                          	} else {
                          		tmp = a / fma(k, (k + 10.0), 1.0);
                          	}
                          	return tmp;
                          }
                          
                          function code(a, k, m)
                          	tmp = 0.0
                          	if (m <= -36000000000000.0)
                          		tmp = Float64(Float64(a * 1.0) / Float64(Float64(k * k) * Float64(fma(k, Float64(10.0 - k), 1.0) * 1.0)));
                          	else
                          		tmp = Float64(a / fma(k, Float64(k + 10.0), 1.0));
                          	end
                          	return tmp
                          end
                          
                          code[a_, k_, m_] := If[LessEqual[m, -36000000000000.0], N[(N[(a * 1.0), $MachinePrecision] / N[(N[(k * k), $MachinePrecision] * N[(N[(k * N[(10.0 - k), $MachinePrecision] + 1.0), $MachinePrecision] * 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(a / N[(k * N[(k + 10.0), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]]
                          
                          \begin{array}{l}
                          
                          \\
                          \begin{array}{l}
                          \mathbf{if}\;m \leq -36000000000000:\\
                          \;\;\;\;\frac{a \cdot 1}{\left(k \cdot k\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot 1\right)}\\
                          
                          \mathbf{else}:\\
                          \;\;\;\;\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}\\
                          
                          
                          \end{array}
                          \end{array}
                          
                          Derivation
                          1. Split input into 2 regimes
                          2. if m < -3.6e13

                            1. Initial program 100.0%

                              \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
                            2. Add Preprocessing
                            3. Step-by-step derivation
                              1. lift-*.f64N/A

                                \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + \color{blue}{10 \cdot k}\right) + k \cdot k} \]
                              2. lift-+.f64N/A

                                \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right)} + k \cdot k} \]
                              3. lift-*.f64N/A

                                \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + \color{blue}{k \cdot k}} \]
                              4. flip-+N/A

                                \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\frac{\left(1 + 10 \cdot k\right) \cdot \left(1 + 10 \cdot k\right) - \left(k \cdot k\right) \cdot \left(k \cdot k\right)}{\left(1 + 10 \cdot k\right) - k \cdot k}}} \]
                              5. div-invN/A

                                \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(\left(1 + 10 \cdot k\right) \cdot \left(1 + 10 \cdot k\right) - \left(k \cdot k\right) \cdot \left(k \cdot k\right)\right) \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}}} \]
                              6. difference-of-squaresN/A

                                \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(\left(\left(1 + 10 \cdot k\right) + k \cdot k\right) \cdot \left(\left(1 + 10 \cdot k\right) - k \cdot k\right)\right)} \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}} \]
                              7. lift-+.f64N/A

                                \[\leadsto \frac{a \cdot {k}^{m}}{\left(\color{blue}{\left(\left(1 + 10 \cdot k\right) + k \cdot k\right)} \cdot \left(\left(1 + 10 \cdot k\right) - k \cdot k\right)\right) \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}} \]
                              8. associate-*l*N/A

                                \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(\left(1 + 10 \cdot k\right) + k \cdot k\right) \cdot \left(\left(\left(1 + 10 \cdot k\right) - k \cdot k\right) \cdot \frac{1}{\left(1 + 10 \cdot k\right) - k \cdot k}\right)}} \]
                              9. lower-*.f64N/A

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

                              \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)}} \]
                            5. Taylor expanded in m around 0

                              \[\leadsto \frac{a \cdot \color{blue}{1}}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)} \]
                            6. Step-by-step derivation
                              1. Applied rewrites4.1%

                                \[\leadsto \frac{a \cdot \color{blue}{1}}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \frac{1}{\mathsf{fma}\left(k, 10 - k, 1\right)}\right)} \]
                              2. Taylor expanded in k around 0

                                \[\leadsto \frac{a \cdot 1}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \color{blue}{1}\right)} \]
                              3. Step-by-step derivation
                                1. Applied rewrites46.3%

                                  \[\leadsto \frac{a \cdot 1}{\mathsf{fma}\left(k, 10 + k, 1\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot \color{blue}{1}\right)} \]
                                2. Taylor expanded in k around inf

                                  \[\leadsto \frac{a \cdot 1}{\color{blue}{{k}^{2}} \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot 1\right)} \]
                                3. Step-by-step derivation
                                  1. unpow2N/A

                                    \[\leadsto \frac{a \cdot 1}{\color{blue}{\left(k \cdot k\right)} \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot 1\right)} \]
                                  2. lower-*.f6471.4

                                    \[\leadsto \frac{a \cdot 1}{\color{blue}{\left(k \cdot k\right)} \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot 1\right)} \]
                                4. Applied rewrites71.4%

                                  \[\leadsto \frac{a \cdot 1}{\color{blue}{\left(k \cdot k\right)} \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot 1\right)} \]

                                if -3.6e13 < m

                                1. Initial program 86.2%

                                  \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
                                2. Add Preprocessing
                                3. Taylor expanded in m around 0

                                  \[\leadsto \color{blue}{\frac{a}{1 + \left(10 \cdot k + {k}^{2}\right)}} \]
                                4. Step-by-step derivation
                                  1. lower-/.f64N/A

                                    \[\leadsto \color{blue}{\frac{a}{1 + \left(10 \cdot k + {k}^{2}\right)}} \]
                                  2. unpow2N/A

                                    \[\leadsto \frac{a}{1 + \left(10 \cdot k + \color{blue}{k \cdot k}\right)} \]
                                  3. distribute-rgt-inN/A

                                    \[\leadsto \frac{a}{1 + \color{blue}{k \cdot \left(10 + k\right)}} \]
                                  4. +-commutativeN/A

                                    \[\leadsto \frac{a}{\color{blue}{k \cdot \left(10 + k\right) + 1}} \]
                                  5. metadata-evalN/A

                                    \[\leadsto \frac{a}{k \cdot \left(\color{blue}{10 \cdot 1} + k\right) + 1} \]
                                  6. lft-mult-inverseN/A

                                    \[\leadsto \frac{a}{k \cdot \left(10 \cdot \color{blue}{\left(\frac{1}{k} \cdot k\right)} + k\right) + 1} \]
                                  7. associate-*l*N/A

                                    \[\leadsto \frac{a}{k \cdot \left(\color{blue}{\left(10 \cdot \frac{1}{k}\right) \cdot k} + k\right) + 1} \]
                                  8. *-lft-identityN/A

                                    \[\leadsto \frac{a}{k \cdot \left(\left(10 \cdot \frac{1}{k}\right) \cdot k + \color{blue}{1 \cdot k}\right) + 1} \]
                                  9. distribute-rgt-inN/A

                                    \[\leadsto \frac{a}{k \cdot \color{blue}{\left(k \cdot \left(10 \cdot \frac{1}{k} + 1\right)\right)} + 1} \]
                                  10. +-commutativeN/A

                                    \[\leadsto \frac{a}{k \cdot \left(k \cdot \color{blue}{\left(1 + 10 \cdot \frac{1}{k}\right)}\right) + 1} \]
                                  11. *-commutativeN/A

                                    \[\leadsto \frac{a}{k \cdot \color{blue}{\left(\left(1 + 10 \cdot \frac{1}{k}\right) \cdot k\right)} + 1} \]
                                  12. lower-fma.f64N/A

                                    \[\leadsto \frac{a}{\color{blue}{\mathsf{fma}\left(k, \left(1 + 10 \cdot \frac{1}{k}\right) \cdot k, 1\right)}} \]
                                  13. *-commutativeN/A

                                    \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{k \cdot \left(1 + 10 \cdot \frac{1}{k}\right)}, 1\right)} \]
                                  14. +-commutativeN/A

                                    \[\leadsto \frac{a}{\mathsf{fma}\left(k, k \cdot \color{blue}{\left(10 \cdot \frac{1}{k} + 1\right)}, 1\right)} \]
                                  15. distribute-rgt-inN/A

                                    \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{\left(10 \cdot \frac{1}{k}\right) \cdot k + 1 \cdot k}, 1\right)} \]
                                  16. associate-*l*N/A

                                    \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10 \cdot \left(\frac{1}{k} \cdot k\right)} + 1 \cdot k, 1\right)} \]
                                  17. lft-mult-inverseN/A

                                    \[\leadsto \frac{a}{\mathsf{fma}\left(k, 10 \cdot \color{blue}{1} + 1 \cdot k, 1\right)} \]
                                  18. metadata-evalN/A

                                    \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10} + 1 \cdot k, 1\right)} \]
                                  19. *-lft-identityN/A

                                    \[\leadsto \frac{a}{\mathsf{fma}\left(k, 10 + \color{blue}{k}, 1\right)} \]
                                  20. lower-+.f6451.2

                                    \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10 + k}, 1\right)} \]
                                5. Applied rewrites51.2%

                                  \[\leadsto \color{blue}{\frac{a}{\mathsf{fma}\left(k, 10 + k, 1\right)}} \]
                              4. Recombined 2 regimes into one program.
                              5. Final simplification57.3%

                                \[\leadsto \begin{array}{l} \mathbf{if}\;m \leq -36000000000000:\\ \;\;\;\;\frac{a \cdot 1}{\left(k \cdot k\right) \cdot \left(\mathsf{fma}\left(k, 10 - k, 1\right) \cdot 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}\\ \end{array} \]
                              6. Add Preprocessing

                              Alternative 9: 44.5% accurate, 6.4× speedup?

                              \[\begin{array}{l} \\ \frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)} \end{array} \]
                              (FPCore (a k m) :precision binary64 (/ a (fma k (+ k 10.0) 1.0)))
                              double code(double a, double k, double m) {
                              	return a / fma(k, (k + 10.0), 1.0);
                              }
                              
                              function code(a, k, m)
                              	return Float64(a / fma(k, Float64(k + 10.0), 1.0))
                              end
                              
                              code[a_, k_, m_] := N[(a / N[(k * N[(k + 10.0), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]
                              
                              \begin{array}{l}
                              
                              \\
                              \frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)}
                              \end{array}
                              
                              Derivation
                              1. Initial program 90.4%

                                \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
                              2. Add Preprocessing
                              3. Taylor expanded in m around 0

                                \[\leadsto \color{blue}{\frac{a}{1 + \left(10 \cdot k + {k}^{2}\right)}} \]
                              4. Step-by-step derivation
                                1. lower-/.f64N/A

                                  \[\leadsto \color{blue}{\frac{a}{1 + \left(10 \cdot k + {k}^{2}\right)}} \]
                                2. unpow2N/A

                                  \[\leadsto \frac{a}{1 + \left(10 \cdot k + \color{blue}{k \cdot k}\right)} \]
                                3. distribute-rgt-inN/A

                                  \[\leadsto \frac{a}{1 + \color{blue}{k \cdot \left(10 + k\right)}} \]
                                4. +-commutativeN/A

                                  \[\leadsto \frac{a}{\color{blue}{k \cdot \left(10 + k\right) + 1}} \]
                                5. metadata-evalN/A

                                  \[\leadsto \frac{a}{k \cdot \left(\color{blue}{10 \cdot 1} + k\right) + 1} \]
                                6. lft-mult-inverseN/A

                                  \[\leadsto \frac{a}{k \cdot \left(10 \cdot \color{blue}{\left(\frac{1}{k} \cdot k\right)} + k\right) + 1} \]
                                7. associate-*l*N/A

                                  \[\leadsto \frac{a}{k \cdot \left(\color{blue}{\left(10 \cdot \frac{1}{k}\right) \cdot k} + k\right) + 1} \]
                                8. *-lft-identityN/A

                                  \[\leadsto \frac{a}{k \cdot \left(\left(10 \cdot \frac{1}{k}\right) \cdot k + \color{blue}{1 \cdot k}\right) + 1} \]
                                9. distribute-rgt-inN/A

                                  \[\leadsto \frac{a}{k \cdot \color{blue}{\left(k \cdot \left(10 \cdot \frac{1}{k} + 1\right)\right)} + 1} \]
                                10. +-commutativeN/A

                                  \[\leadsto \frac{a}{k \cdot \left(k \cdot \color{blue}{\left(1 + 10 \cdot \frac{1}{k}\right)}\right) + 1} \]
                                11. *-commutativeN/A

                                  \[\leadsto \frac{a}{k \cdot \color{blue}{\left(\left(1 + 10 \cdot \frac{1}{k}\right) \cdot k\right)} + 1} \]
                                12. lower-fma.f64N/A

                                  \[\leadsto \frac{a}{\color{blue}{\mathsf{fma}\left(k, \left(1 + 10 \cdot \frac{1}{k}\right) \cdot k, 1\right)}} \]
                                13. *-commutativeN/A

                                  \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{k \cdot \left(1 + 10 \cdot \frac{1}{k}\right)}, 1\right)} \]
                                14. +-commutativeN/A

                                  \[\leadsto \frac{a}{\mathsf{fma}\left(k, k \cdot \color{blue}{\left(10 \cdot \frac{1}{k} + 1\right)}, 1\right)} \]
                                15. distribute-rgt-inN/A

                                  \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{\left(10 \cdot \frac{1}{k}\right) \cdot k + 1 \cdot k}, 1\right)} \]
                                16. associate-*l*N/A

                                  \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10 \cdot \left(\frac{1}{k} \cdot k\right)} + 1 \cdot k, 1\right)} \]
                                17. lft-mult-inverseN/A

                                  \[\leadsto \frac{a}{\mathsf{fma}\left(k, 10 \cdot \color{blue}{1} + 1 \cdot k, 1\right)} \]
                                18. metadata-evalN/A

                                  \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10} + 1 \cdot k, 1\right)} \]
                                19. *-lft-identityN/A

                                  \[\leadsto \frac{a}{\mathsf{fma}\left(k, 10 + \color{blue}{k}, 1\right)} \]
                                20. lower-+.f6445.7

                                  \[\leadsto \frac{a}{\mathsf{fma}\left(k, \color{blue}{10 + k}, 1\right)} \]
                              5. Applied rewrites45.7%

                                \[\leadsto \color{blue}{\frac{a}{\mathsf{fma}\left(k, 10 + k, 1\right)}} \]
                              6. Final simplification45.7%

                                \[\leadsto \frac{a}{\mathsf{fma}\left(k, k + 10, 1\right)} \]
                              7. Add Preprocessing

                              Alternative 10: 19.8% accurate, 22.3× speedup?

                              \[\begin{array}{l} \\ a \cdot 1 \end{array} \]
                              (FPCore (a k m) :precision binary64 (* a 1.0))
                              double code(double a, double k, double m) {
                              	return a * 1.0;
                              }
                              
                              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
                              end function
                              
                              public static double code(double a, double k, double m) {
                              	return a * 1.0;
                              }
                              
                              def code(a, k, m):
                              	return a * 1.0
                              
                              function code(a, k, m)
                              	return Float64(a * 1.0)
                              end
                              
                              function tmp = code(a, k, m)
                              	tmp = a * 1.0;
                              end
                              
                              code[a_, k_, m_] := N[(a * 1.0), $MachinePrecision]
                              
                              \begin{array}{l}
                              
                              \\
                              a \cdot 1
                              \end{array}
                              
                              Derivation
                              1. Initial program 90.4%

                                \[\frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
                              2. Add Preprocessing
                              3. Step-by-step derivation
                                1. lift-pow.f64N/A

                                  \[\leadsto \frac{a \cdot \color{blue}{{k}^{m}}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
                                2. lift-*.f64N/A

                                  \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + \color{blue}{10 \cdot k}\right) + k \cdot k} \]
                                3. lift-+.f64N/A

                                  \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right)} + k \cdot k} \]
                                4. lift-*.f64N/A

                                  \[\leadsto \frac{a \cdot {k}^{m}}{\left(1 + 10 \cdot k\right) + \color{blue}{k \cdot k}} \]
                                5. lift-+.f64N/A

                                  \[\leadsto \frac{a \cdot {k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right) + k \cdot k}} \]
                                6. *-commutativeN/A

                                  \[\leadsto \frac{\color{blue}{{k}^{m} \cdot a}}{\left(1 + 10 \cdot k\right) + k \cdot k} \]
                                7. associate-*l/N/A

                                  \[\leadsto \color{blue}{\frac{{k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \cdot a} \]
                                8. lower-*.f64N/A

                                  \[\leadsto \color{blue}{\frac{{k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k} \cdot a} \]
                                9. lower-/.f6490.3

                                  \[\leadsto \color{blue}{\frac{{k}^{m}}{\left(1 + 10 \cdot k\right) + k \cdot k}} \cdot a \]
                                10. lift-+.f64N/A

                                  \[\leadsto \frac{{k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right) + k \cdot k}} \cdot a \]
                                11. lift-+.f64N/A

                                  \[\leadsto \frac{{k}^{m}}{\color{blue}{\left(1 + 10 \cdot k\right)} + k \cdot k} \cdot a \]
                                12. associate-+l+N/A

                                  \[\leadsto \frac{{k}^{m}}{\color{blue}{1 + \left(10 \cdot k + k \cdot k\right)}} \cdot a \]
                                13. +-commutativeN/A

                                  \[\leadsto \frac{{k}^{m}}{\color{blue}{\left(10 \cdot k + k \cdot k\right) + 1}} \cdot a \]
                                14. lift-*.f64N/A

                                  \[\leadsto \frac{{k}^{m}}{\left(\color{blue}{10 \cdot k} + k \cdot k\right) + 1} \cdot a \]
                                15. lift-*.f64N/A

                                  \[\leadsto \frac{{k}^{m}}{\left(10 \cdot k + \color{blue}{k \cdot k}\right) + 1} \cdot a \]
                                16. distribute-rgt-outN/A

                                  \[\leadsto \frac{{k}^{m}}{\color{blue}{k \cdot \left(10 + k\right)} + 1} \cdot a \]
                                17. lower-fma.f64N/A

                                  \[\leadsto \frac{{k}^{m}}{\color{blue}{\mathsf{fma}\left(k, 10 + k, 1\right)}} \cdot a \]
                                18. lower-+.f6490.3

                                  \[\leadsto \frac{{k}^{m}}{\mathsf{fma}\left(k, \color{blue}{10 + k}, 1\right)} \cdot a \]
                              4. Applied rewrites90.3%

                                \[\leadsto \color{blue}{\frac{{k}^{m}}{\mathsf{fma}\left(k, 10 + k, 1\right)} \cdot a} \]
                              5. Taylor expanded in k around 0

                                \[\leadsto \color{blue}{{k}^{m}} \cdot a \]
                              6. Step-by-step derivation
                                1. lower-pow.f6479.7

                                  \[\leadsto \color{blue}{{k}^{m}} \cdot a \]
                              7. Applied rewrites79.7%

                                \[\leadsto \color{blue}{{k}^{m}} \cdot a \]
                              8. Step-by-step derivation
                                1. lift-approxN/A

                                  \[\leadsto \color{blue}{{k}^{m}} \cdot a \]
                                2. lift-*.f6479.7

                                  \[\leadsto \color{blue}{{k}^{m} \cdot a} \]
                              9. Applied rewrites18.5%

                                \[\leadsto \color{blue}{1 \cdot a} \]
                              10. Final simplification18.5%

                                \[\leadsto a \cdot 1 \]
                              11. Add Preprocessing

                              Reproduce

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