Compound Interest

Percentage Accurate: 28.2% → 98.0%
Time: 12.7s
Alternatives: 16
Speedup: 24.3×

Specification

?
\[\begin{array}{l} \\ 100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \end{array} \]
(FPCore (i n)
 :precision binary64
 (* 100.0 (/ (- (pow (+ 1.0 (/ i n)) n) 1.0) (/ i n))))
double code(double i, double n) {
	return 100.0 * ((pow((1.0 + (i / n)), n) - 1.0) / (i / n));
}
real(8) function code(i, n)
    real(8), intent (in) :: i
    real(8), intent (in) :: n
    code = 100.0d0 * ((((1.0d0 + (i / n)) ** n) - 1.0d0) / (i / n))
end function
public static double code(double i, double n) {
	return 100.0 * ((Math.pow((1.0 + (i / n)), n) - 1.0) / (i / n));
}
def code(i, n):
	return 100.0 * ((math.pow((1.0 + (i / n)), n) - 1.0) / (i / n))
function code(i, n)
	return Float64(100.0 * Float64(Float64((Float64(1.0 + Float64(i / n)) ^ n) - 1.0) / Float64(i / n)))
end
function tmp = code(i, n)
	tmp = 100.0 * ((((1.0 + (i / n)) ^ n) - 1.0) / (i / n));
end
code[i_, n_] := N[(100.0 * N[(N[(N[Power[N[(1.0 + N[(i / n), $MachinePrecision]), $MachinePrecision], n], $MachinePrecision] - 1.0), $MachinePrecision] / N[(i / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}
\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 16 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: 28.2% accurate, 1.0× speedup?

\[\begin{array}{l} \\ 100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \end{array} \]
(FPCore (i n)
 :precision binary64
 (* 100.0 (/ (- (pow (+ 1.0 (/ i n)) n) 1.0) (/ i n))))
double code(double i, double n) {
	return 100.0 * ((pow((1.0 + (i / n)), n) - 1.0) / (i / n));
}
real(8) function code(i, n)
    real(8), intent (in) :: i
    real(8), intent (in) :: n
    code = 100.0d0 * ((((1.0d0 + (i / n)) ** n) - 1.0d0) / (i / n))
end function
public static double code(double i, double n) {
	return 100.0 * ((Math.pow((1.0 + (i / n)), n) - 1.0) / (i / n));
}
def code(i, n):
	return 100.0 * ((math.pow((1.0 + (i / n)), n) - 1.0) / (i / n))
function code(i, n)
	return Float64(100.0 * Float64(Float64((Float64(1.0 + Float64(i / n)) ^ n) - 1.0) / Float64(i / n)))
end
function tmp = code(i, n)
	tmp = 100.0 * ((((1.0 + (i / n)) ^ n) - 1.0) / (i / n));
end
code[i_, n_] := N[(100.0 * N[(N[(N[Power[N[(1.0 + N[(i / n), $MachinePrecision]), $MachinePrecision], n], $MachinePrecision] - 1.0), $MachinePrecision] / N[(i / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}
\end{array}

Alternative 1: 98.0% accurate, 0.3× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := {\left(\frac{i}{n} + 1\right)}^{n}\\ t_1 := \frac{t\_0 - 1}{\frac{i}{n}}\\ \mathbf{if}\;t\_1 \leq 0:\\ \;\;\;\;\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right) \cdot 100}{\frac{i}{n}}\\ \mathbf{elif}\;t\_1 \leq \infty:\\ \;\;\;\;\left(\left(\frac{-1}{i} + \frac{t\_0}{i}\right) \cdot 100\right) \cdot n\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\ \end{array} \end{array} \]
(FPCore (i n)
 :precision binary64
 (let* ((t_0 (pow (+ (/ i n) 1.0) n)) (t_1 (/ (- t_0 1.0) (/ i n))))
   (if (<= t_1 0.0)
     (/ (* (expm1 (* (log1p (/ i n)) n)) 100.0) (/ i n))
     (if (<= t_1 INFINITY)
       (* (* (+ (/ -1.0 i) (/ t_0 i)) 100.0) n)
       (/ 1.0 (fma (* 0.01 i) (- (/ 0.5 (* n n)) (/ 0.5 n)) (/ 0.01 n)))))))
double code(double i, double n) {
	double t_0 = pow(((i / n) + 1.0), n);
	double t_1 = (t_0 - 1.0) / (i / n);
	double tmp;
	if (t_1 <= 0.0) {
		tmp = (expm1((log1p((i / n)) * n)) * 100.0) / (i / n);
	} else if (t_1 <= ((double) INFINITY)) {
		tmp = (((-1.0 / i) + (t_0 / i)) * 100.0) * n;
	} else {
		tmp = 1.0 / fma((0.01 * i), ((0.5 / (n * n)) - (0.5 / n)), (0.01 / n));
	}
	return tmp;
}
function code(i, n)
	t_0 = Float64(Float64(i / n) + 1.0) ^ n
	t_1 = Float64(Float64(t_0 - 1.0) / Float64(i / n))
	tmp = 0.0
	if (t_1 <= 0.0)
		tmp = Float64(Float64(expm1(Float64(log1p(Float64(i / n)) * n)) * 100.0) / Float64(i / n));
	elseif (t_1 <= Inf)
		tmp = Float64(Float64(Float64(Float64(-1.0 / i) + Float64(t_0 / i)) * 100.0) * n);
	else
		tmp = Float64(1.0 / fma(Float64(0.01 * i), Float64(Float64(0.5 / Float64(n * n)) - Float64(0.5 / n)), Float64(0.01 / n)));
	end
	return tmp
end
code[i_, n_] := Block[{t$95$0 = N[Power[N[(N[(i / n), $MachinePrecision] + 1.0), $MachinePrecision], n], $MachinePrecision]}, Block[{t$95$1 = N[(N[(t$95$0 - 1.0), $MachinePrecision] / N[(i / n), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, 0.0], N[(N[(N[(Exp[N[(N[Log[1 + N[(i / n), $MachinePrecision]], $MachinePrecision] * n), $MachinePrecision]] - 1), $MachinePrecision] * 100.0), $MachinePrecision] / N[(i / n), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$1, Infinity], N[(N[(N[(N[(-1.0 / i), $MachinePrecision] + N[(t$95$0 / i), $MachinePrecision]), $MachinePrecision] * 100.0), $MachinePrecision] * n), $MachinePrecision], N[(1.0 / N[(N[(0.01 * i), $MachinePrecision] * N[(N[(0.5 / N[(n * n), $MachinePrecision]), $MachinePrecision] - N[(0.5 / n), $MachinePrecision]), $MachinePrecision] + N[(0.01 / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := {\left(\frac{i}{n} + 1\right)}^{n}\\
t_1 := \frac{t\_0 - 1}{\frac{i}{n}}\\
\mathbf{if}\;t\_1 \leq 0:\\
\;\;\;\;\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right) \cdot 100}{\frac{i}{n}}\\

\mathbf{elif}\;t\_1 \leq \infty:\\
\;\;\;\;\left(\left(\frac{-1}{i} + \frac{t\_0}{i}\right) \cdot 100\right) \cdot n\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n)) < -0.0

    1. Initial program 28.5%

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

        \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      2. lift-/.f64N/A

        \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      3. associate-*r/N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      4. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      5. lower-*.f6428.5

        \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      6. lift--.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      7. lift-pow.f64N/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
      8. pow-to-expN/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
      9. lower-expm1.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
      10. lower-*.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
      11. lift-+.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
      12. lower-log1p.f6498.7

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
    4. Applied rewrites98.7%

      \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]

    if -0.0 < (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n)) < +inf.0

    1. Initial program 96.7%

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

        \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      2. lift-/.f64N/A

        \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      3. associate-*r/N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      4. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      5. lower-*.f6496.8

        \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      6. lift--.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      7. lift-pow.f64N/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
      8. pow-to-expN/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
      9. lower-expm1.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
      10. lower-*.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
      11. lift-+.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
      12. lower-log1p.f6445.8

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
    4. Applied rewrites45.8%

      \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
    5. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
      2. lift-*.f64N/A

        \[\leadsto \frac{\color{blue}{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
      3. lift-expm1.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\left(e^{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n} - 1\right)}}{\frac{i}{n}} \]
      4. lift-*.f64N/A

        \[\leadsto \frac{100 \cdot \left(e^{\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
      5. lift-log1p.f64N/A

        \[\leadsto \frac{100 \cdot \left(e^{\color{blue}{\log \left(1 + \frac{i}{n}\right)} \cdot n} - 1\right)}{\frac{i}{n}} \]
      6. pow-to-expN/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
      7. lift-/.f64N/A

        \[\leadsto \frac{100 \cdot \left({\left(1 + \color{blue}{\frac{i}{n}}\right)}^{n} - 1\right)}{\frac{i}{n}} \]
      8. associate-*r/N/A

        \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      9. lift-/.f64N/A

        \[\leadsto 100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\color{blue}{\frac{i}{n}}} \]
      10. *-commutativeN/A

        \[\leadsto \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \cdot 100} \]
      11. associate-/r/N/A

        \[\leadsto \color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot n\right)} \cdot 100 \]
      12. associate-*l*N/A

        \[\leadsto \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \left(n \cdot 100\right)} \]
      13. *-commutativeN/A

        \[\leadsto \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \color{blue}{\left(100 \cdot n\right)} \]
      14. lift-*.f64N/A

        \[\leadsto \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \color{blue}{\left(100 \cdot n\right)} \]
      15. lower-*.f64N/A

        \[\leadsto \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \left(100 \cdot n\right)} \]
    6. Applied rewrites45.8%

      \[\leadsto \color{blue}{\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot \left(n \cdot 100\right)} \]
    7. Step-by-step derivation
      1. lift-*.f64N/A

        \[\leadsto \color{blue}{\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot \left(n \cdot 100\right)} \]
      2. lift-*.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot \color{blue}{\left(n \cdot 100\right)} \]
      3. *-commutativeN/A

        \[\leadsto \frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot \color{blue}{\left(100 \cdot n\right)} \]
      4. associate-*r*N/A

        \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot 100\right) \cdot n} \]
      5. lower-*.f64N/A

        \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot 100\right) \cdot n} \]
      6. lower-*.f6445.8

        \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot 100\right)} \cdot n \]
    8. Applied rewrites45.8%

      \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot 100\right) \cdot n} \]
    9. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \left(\color{blue}{\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i}} \cdot 100\right) \cdot n \]
      2. lift-expm1.f64N/A

        \[\leadsto \left(\frac{\color{blue}{e^{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n} - 1}}{i} \cdot 100\right) \cdot n \]
      3. div-subN/A

        \[\leadsto \left(\color{blue}{\left(\frac{e^{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n}}{i} - \frac{1}{i}\right)} \cdot 100\right) \cdot n \]
      4. lift-*.f64N/A

        \[\leadsto \left(\left(\frac{e^{\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n}}}{i} - \frac{1}{i}\right) \cdot 100\right) \cdot n \]
      5. lift-log1p.f64N/A

        \[\leadsto \left(\left(\frac{e^{\color{blue}{\log \left(1 + \frac{i}{n}\right)} \cdot n}}{i} - \frac{1}{i}\right) \cdot 100\right) \cdot n \]
      6. +-commutativeN/A

        \[\leadsto \left(\left(\frac{e^{\log \color{blue}{\left(\frac{i}{n} + 1\right)} \cdot n}}{i} - \frac{1}{i}\right) \cdot 100\right) \cdot n \]
      7. lift-+.f64N/A

        \[\leadsto \left(\left(\frac{e^{\log \color{blue}{\left(\frac{i}{n} + 1\right)} \cdot n}}{i} - \frac{1}{i}\right) \cdot 100\right) \cdot n \]
      8. pow-to-expN/A

        \[\leadsto \left(\left(\frac{\color{blue}{{\left(\frac{i}{n} + 1\right)}^{n}}}{i} - \frac{1}{i}\right) \cdot 100\right) \cdot n \]
      9. lift-pow.f64N/A

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

        \[\leadsto \left(\left(\color{blue}{\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i}} - \frac{1}{i}\right) \cdot 100\right) \cdot n \]
      11. sub-negN/A

        \[\leadsto \left(\color{blue}{\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i} + \left(\mathsf{neg}\left(\frac{1}{i}\right)\right)\right)} \cdot 100\right) \cdot n \]
      12. mul-1-negN/A

        \[\leadsto \left(\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i} + \color{blue}{-1 \cdot \frac{1}{i}}\right) \cdot 100\right) \cdot n \]
      13. div-invN/A

        \[\leadsto \left(\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i} + \color{blue}{\frac{-1}{i}}\right) \cdot 100\right) \cdot n \]
      14. lift-/.f64N/A

        \[\leadsto \left(\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i} + \color{blue}{\frac{-1}{i}}\right) \cdot 100\right) \cdot n \]
      15. lower-+.f6497.5

        \[\leadsto \left(\color{blue}{\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i} + \frac{-1}{i}\right)} \cdot 100\right) \cdot n \]
      16. lift-+.f64N/A

        \[\leadsto \left(\left(\frac{{\color{blue}{\left(\frac{i}{n} + 1\right)}}^{n}}{i} + \frac{-1}{i}\right) \cdot 100\right) \cdot n \]
      17. +-commutativeN/A

        \[\leadsto \left(\left(\frac{{\color{blue}{\left(1 + \frac{i}{n}\right)}}^{n}}{i} + \frac{-1}{i}\right) \cdot 100\right) \cdot n \]
      18. lower-+.f6497.5

        \[\leadsto \left(\left(\frac{{\color{blue}{\left(1 + \frac{i}{n}\right)}}^{n}}{i} + \frac{-1}{i}\right) \cdot 100\right) \cdot n \]
    10. Applied rewrites97.5%

      \[\leadsto \left(\color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{i} + \frac{-1}{i}\right)} \cdot 100\right) \cdot n \]

    if +inf.0 < (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n))

    1. Initial program 0.0%

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

        \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      2. lift-/.f64N/A

        \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      3. associate-*r/N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      4. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      5. lower-*.f640.0

        \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      6. lift--.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      7. lift-pow.f64N/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
      8. pow-to-expN/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
      9. lower-expm1.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
      10. lower-*.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
      11. lift-+.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
      12. lower-log1p.f640.0

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
    4. Applied rewrites0.0%

      \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
    5. Taylor expanded in i around 0

      \[\leadsto \frac{\color{blue}{100 \cdot i}}{\frac{i}{n}} \]
    6. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
      2. lower-*.f6424.3

        \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
    7. Applied rewrites24.3%

      \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
    8. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{i \cdot 100}{\frac{i}{n}}} \]
      2. clear-numN/A

        \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
      3. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
      4. lower-/.f6424.3

        \[\leadsto \frac{1}{\color{blue}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
    9. Applied rewrites24.3%

      \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{100 \cdot i}}} \]
    10. Taylor expanded in i around 0

      \[\leadsto \frac{1}{\color{blue}{\frac{1}{100} \cdot \left(i \cdot \left(\frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + \frac{1}{100} \cdot \frac{1}{n}}} \]
    11. Step-by-step derivation
      1. associate-*r*N/A

        \[\leadsto \frac{1}{\color{blue}{\left(\frac{1}{100} \cdot i\right) \cdot \left(\frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}\right)} + \frac{1}{100} \cdot \frac{1}{n}} \]
      2. lower-fma.f64N/A

        \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)}} \]
      3. lower-*.f64N/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\color{blue}{\frac{1}{100} \cdot i}, \frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      4. lower--.f64N/A

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

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

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\color{blue}{\frac{1}{2}}}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      7. lower-/.f64N/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \color{blue}{\frac{\frac{1}{2}}{{n}^{2}}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      8. unpow2N/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{\color{blue}{n \cdot n}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      9. lower-*.f64N/A

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

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \color{blue}{\frac{\frac{1}{2} \cdot 1}{n}}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      11. metadata-evalN/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\color{blue}{\frac{1}{2}}}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      12. lower-/.f64N/A

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

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\frac{1}{2}}{n}, \color{blue}{\frac{\frac{1}{100} \cdot 1}{n}}\right)} \]
      14. metadata-evalN/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\frac{1}{2}}{n}, \frac{\color{blue}{\frac{1}{100}}}{n}\right)} \]
      15. lower-/.f6499.6

        \[\leadsto \frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \color{blue}{\frac{0.01}{n}}\right)} \]
    12. Applied rewrites99.6%

      \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification98.7%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{{\left(\frac{i}{n} + 1\right)}^{n} - 1}{\frac{i}{n}} \leq 0:\\ \;\;\;\;\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right) \cdot 100}{\frac{i}{n}}\\ \mathbf{elif}\;\frac{{\left(\frac{i}{n} + 1\right)}^{n} - 1}{\frac{i}{n}} \leq \infty:\\ \;\;\;\;\left(\left(\frac{-1}{i} + \frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i}\right) \cdot 100\right) \cdot n\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 2: 97.1% accurate, 0.3× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := {\left(\frac{i}{n} + 1\right)}^{n}\\ t_1 := \frac{t\_0 - 1}{\frac{i}{n}}\\ \mathbf{if}\;t\_1 \leq 0:\\ \;\;\;\;\left(\frac{100}{i} \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)\right) \cdot n\\ \mathbf{elif}\;t\_1 \leq \infty:\\ \;\;\;\;\left(\left(\frac{-1}{i} + \frac{t\_0}{i}\right) \cdot 100\right) \cdot n\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\ \end{array} \end{array} \]
(FPCore (i n)
 :precision binary64
 (let* ((t_0 (pow (+ (/ i n) 1.0) n)) (t_1 (/ (- t_0 1.0) (/ i n))))
   (if (<= t_1 0.0)
     (* (* (/ 100.0 i) (expm1 (* (log1p (/ i n)) n))) n)
     (if (<= t_1 INFINITY)
       (* (* (+ (/ -1.0 i) (/ t_0 i)) 100.0) n)
       (/ 1.0 (fma (* 0.01 i) (- (/ 0.5 (* n n)) (/ 0.5 n)) (/ 0.01 n)))))))
double code(double i, double n) {
	double t_0 = pow(((i / n) + 1.0), n);
	double t_1 = (t_0 - 1.0) / (i / n);
	double tmp;
	if (t_1 <= 0.0) {
		tmp = ((100.0 / i) * expm1((log1p((i / n)) * n))) * n;
	} else if (t_1 <= ((double) INFINITY)) {
		tmp = (((-1.0 / i) + (t_0 / i)) * 100.0) * n;
	} else {
		tmp = 1.0 / fma((0.01 * i), ((0.5 / (n * n)) - (0.5 / n)), (0.01 / n));
	}
	return tmp;
}
function code(i, n)
	t_0 = Float64(Float64(i / n) + 1.0) ^ n
	t_1 = Float64(Float64(t_0 - 1.0) / Float64(i / n))
	tmp = 0.0
	if (t_1 <= 0.0)
		tmp = Float64(Float64(Float64(100.0 / i) * expm1(Float64(log1p(Float64(i / n)) * n))) * n);
	elseif (t_1 <= Inf)
		tmp = Float64(Float64(Float64(Float64(-1.0 / i) + Float64(t_0 / i)) * 100.0) * n);
	else
		tmp = Float64(1.0 / fma(Float64(0.01 * i), Float64(Float64(0.5 / Float64(n * n)) - Float64(0.5 / n)), Float64(0.01 / n)));
	end
	return tmp
end
code[i_, n_] := Block[{t$95$0 = N[Power[N[(N[(i / n), $MachinePrecision] + 1.0), $MachinePrecision], n], $MachinePrecision]}, Block[{t$95$1 = N[(N[(t$95$0 - 1.0), $MachinePrecision] / N[(i / n), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, 0.0], N[(N[(N[(100.0 / i), $MachinePrecision] * N[(Exp[N[(N[Log[1 + N[(i / n), $MachinePrecision]], $MachinePrecision] * n), $MachinePrecision]] - 1), $MachinePrecision]), $MachinePrecision] * n), $MachinePrecision], If[LessEqual[t$95$1, Infinity], N[(N[(N[(N[(-1.0 / i), $MachinePrecision] + N[(t$95$0 / i), $MachinePrecision]), $MachinePrecision] * 100.0), $MachinePrecision] * n), $MachinePrecision], N[(1.0 / N[(N[(0.01 * i), $MachinePrecision] * N[(N[(0.5 / N[(n * n), $MachinePrecision]), $MachinePrecision] - N[(0.5 / n), $MachinePrecision]), $MachinePrecision] + N[(0.01 / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := {\left(\frac{i}{n} + 1\right)}^{n}\\
t_1 := \frac{t\_0 - 1}{\frac{i}{n}}\\
\mathbf{if}\;t\_1 \leq 0:\\
\;\;\;\;\left(\frac{100}{i} \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)\right) \cdot n\\

\mathbf{elif}\;t\_1 \leq \infty:\\
\;\;\;\;\left(\left(\frac{-1}{i} + \frac{t\_0}{i}\right) \cdot 100\right) \cdot n\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n)) < -0.0

    1. Initial program 28.5%

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

        \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      2. lift-/.f64N/A

        \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      3. associate-*r/N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      4. lift-/.f64N/A

        \[\leadsto \frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\color{blue}{\frac{i}{n}}} \]
      5. associate-/r/N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{i} \cdot n} \]
      6. lower-*.f64N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{i} \cdot n} \]
      7. *-commutativeN/A

        \[\leadsto \frac{\color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right) \cdot 100}}{i} \cdot n \]
      8. associate-/l*N/A

        \[\leadsto \color{blue}{\left(\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right) \cdot \frac{100}{i}\right)} \cdot n \]
      9. lower-*.f64N/A

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

        \[\leadsto \left(\color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)} \cdot \frac{100}{i}\right) \cdot n \]
      11. lift-pow.f64N/A

        \[\leadsto \left(\left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right) \cdot \frac{100}{i}\right) \cdot n \]
      12. pow-to-expN/A

        \[\leadsto \left(\left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right) \cdot \frac{100}{i}\right) \cdot n \]
      13. lower-expm1.f64N/A

        \[\leadsto \left(\color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)} \cdot \frac{100}{i}\right) \cdot n \]
      14. lower-*.f64N/A

        \[\leadsto \left(\mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right) \cdot \frac{100}{i}\right) \cdot n \]
      15. lift-+.f64N/A

        \[\leadsto \left(\mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right) \cdot \frac{100}{i}\right) \cdot n \]
      16. lower-log1p.f64N/A

        \[\leadsto \left(\mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right) \cdot \frac{100}{i}\right) \cdot n \]
      17. lower-/.f6498.3

        \[\leadsto \left(\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right) \cdot \color{blue}{\frac{100}{i}}\right) \cdot n \]
    4. Applied rewrites98.3%

      \[\leadsto \color{blue}{\left(\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right) \cdot \frac{100}{i}\right) \cdot n} \]

    if -0.0 < (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n)) < +inf.0

    1. Initial program 96.7%

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

        \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      2. lift-/.f64N/A

        \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      3. associate-*r/N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      4. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      5. lower-*.f6496.8

        \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      6. lift--.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      7. lift-pow.f64N/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
      8. pow-to-expN/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
      9. lower-expm1.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
      10. lower-*.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
      11. lift-+.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
      12. lower-log1p.f6445.8

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
    4. Applied rewrites45.8%

      \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
    5. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
      2. lift-*.f64N/A

        \[\leadsto \frac{\color{blue}{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
      3. lift-expm1.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\left(e^{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n} - 1\right)}}{\frac{i}{n}} \]
      4. lift-*.f64N/A

        \[\leadsto \frac{100 \cdot \left(e^{\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
      5. lift-log1p.f64N/A

        \[\leadsto \frac{100 \cdot \left(e^{\color{blue}{\log \left(1 + \frac{i}{n}\right)} \cdot n} - 1\right)}{\frac{i}{n}} \]
      6. pow-to-expN/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
      7. lift-/.f64N/A

        \[\leadsto \frac{100 \cdot \left({\left(1 + \color{blue}{\frac{i}{n}}\right)}^{n} - 1\right)}{\frac{i}{n}} \]
      8. associate-*r/N/A

        \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      9. lift-/.f64N/A

        \[\leadsto 100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\color{blue}{\frac{i}{n}}} \]
      10. *-commutativeN/A

        \[\leadsto \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \cdot 100} \]
      11. associate-/r/N/A

        \[\leadsto \color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot n\right)} \cdot 100 \]
      12. associate-*l*N/A

        \[\leadsto \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \left(n \cdot 100\right)} \]
      13. *-commutativeN/A

        \[\leadsto \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \color{blue}{\left(100 \cdot n\right)} \]
      14. lift-*.f64N/A

        \[\leadsto \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \color{blue}{\left(100 \cdot n\right)} \]
      15. lower-*.f64N/A

        \[\leadsto \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \left(100 \cdot n\right)} \]
    6. Applied rewrites45.8%

      \[\leadsto \color{blue}{\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot \left(n \cdot 100\right)} \]
    7. Step-by-step derivation
      1. lift-*.f64N/A

        \[\leadsto \color{blue}{\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot \left(n \cdot 100\right)} \]
      2. lift-*.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot \color{blue}{\left(n \cdot 100\right)} \]
      3. *-commutativeN/A

        \[\leadsto \frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot \color{blue}{\left(100 \cdot n\right)} \]
      4. associate-*r*N/A

        \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot 100\right) \cdot n} \]
      5. lower-*.f64N/A

        \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot 100\right) \cdot n} \]
      6. lower-*.f6445.8

        \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot 100\right)} \cdot n \]
    8. Applied rewrites45.8%

      \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot 100\right) \cdot n} \]
    9. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \left(\color{blue}{\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i}} \cdot 100\right) \cdot n \]
      2. lift-expm1.f64N/A

        \[\leadsto \left(\frac{\color{blue}{e^{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n} - 1}}{i} \cdot 100\right) \cdot n \]
      3. div-subN/A

        \[\leadsto \left(\color{blue}{\left(\frac{e^{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n}}{i} - \frac{1}{i}\right)} \cdot 100\right) \cdot n \]
      4. lift-*.f64N/A

        \[\leadsto \left(\left(\frac{e^{\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n}}}{i} - \frac{1}{i}\right) \cdot 100\right) \cdot n \]
      5. lift-log1p.f64N/A

        \[\leadsto \left(\left(\frac{e^{\color{blue}{\log \left(1 + \frac{i}{n}\right)} \cdot n}}{i} - \frac{1}{i}\right) \cdot 100\right) \cdot n \]
      6. +-commutativeN/A

        \[\leadsto \left(\left(\frac{e^{\log \color{blue}{\left(\frac{i}{n} + 1\right)} \cdot n}}{i} - \frac{1}{i}\right) \cdot 100\right) \cdot n \]
      7. lift-+.f64N/A

        \[\leadsto \left(\left(\frac{e^{\log \color{blue}{\left(\frac{i}{n} + 1\right)} \cdot n}}{i} - \frac{1}{i}\right) \cdot 100\right) \cdot n \]
      8. pow-to-expN/A

        \[\leadsto \left(\left(\frac{\color{blue}{{\left(\frac{i}{n} + 1\right)}^{n}}}{i} - \frac{1}{i}\right) \cdot 100\right) \cdot n \]
      9. lift-pow.f64N/A

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

        \[\leadsto \left(\left(\color{blue}{\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i}} - \frac{1}{i}\right) \cdot 100\right) \cdot n \]
      11. sub-negN/A

        \[\leadsto \left(\color{blue}{\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i} + \left(\mathsf{neg}\left(\frac{1}{i}\right)\right)\right)} \cdot 100\right) \cdot n \]
      12. mul-1-negN/A

        \[\leadsto \left(\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i} + \color{blue}{-1 \cdot \frac{1}{i}}\right) \cdot 100\right) \cdot n \]
      13. div-invN/A

        \[\leadsto \left(\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i} + \color{blue}{\frac{-1}{i}}\right) \cdot 100\right) \cdot n \]
      14. lift-/.f64N/A

        \[\leadsto \left(\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i} + \color{blue}{\frac{-1}{i}}\right) \cdot 100\right) \cdot n \]
      15. lower-+.f6497.5

        \[\leadsto \left(\color{blue}{\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i} + \frac{-1}{i}\right)} \cdot 100\right) \cdot n \]
      16. lift-+.f64N/A

        \[\leadsto \left(\left(\frac{{\color{blue}{\left(\frac{i}{n} + 1\right)}}^{n}}{i} + \frac{-1}{i}\right) \cdot 100\right) \cdot n \]
      17. +-commutativeN/A

        \[\leadsto \left(\left(\frac{{\color{blue}{\left(1 + \frac{i}{n}\right)}}^{n}}{i} + \frac{-1}{i}\right) \cdot 100\right) \cdot n \]
      18. lower-+.f6497.5

        \[\leadsto \left(\left(\frac{{\color{blue}{\left(1 + \frac{i}{n}\right)}}^{n}}{i} + \frac{-1}{i}\right) \cdot 100\right) \cdot n \]
    10. Applied rewrites97.5%

      \[\leadsto \left(\color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{i} + \frac{-1}{i}\right)} \cdot 100\right) \cdot n \]

    if +inf.0 < (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n))

    1. Initial program 0.0%

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

        \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      2. lift-/.f64N/A

        \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      3. associate-*r/N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      4. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      5. lower-*.f640.0

        \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      6. lift--.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      7. lift-pow.f64N/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
      8. pow-to-expN/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
      9. lower-expm1.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
      10. lower-*.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
      11. lift-+.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
      12. lower-log1p.f640.0

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
    4. Applied rewrites0.0%

      \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
    5. Taylor expanded in i around 0

      \[\leadsto \frac{\color{blue}{100 \cdot i}}{\frac{i}{n}} \]
    6. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
      2. lower-*.f6424.3

        \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
    7. Applied rewrites24.3%

      \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
    8. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{i \cdot 100}{\frac{i}{n}}} \]
      2. clear-numN/A

        \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
      3. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
      4. lower-/.f6424.3

        \[\leadsto \frac{1}{\color{blue}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
    9. Applied rewrites24.3%

      \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{100 \cdot i}}} \]
    10. Taylor expanded in i around 0

      \[\leadsto \frac{1}{\color{blue}{\frac{1}{100} \cdot \left(i \cdot \left(\frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + \frac{1}{100} \cdot \frac{1}{n}}} \]
    11. Step-by-step derivation
      1. associate-*r*N/A

        \[\leadsto \frac{1}{\color{blue}{\left(\frac{1}{100} \cdot i\right) \cdot \left(\frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}\right)} + \frac{1}{100} \cdot \frac{1}{n}} \]
      2. lower-fma.f64N/A

        \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)}} \]
      3. lower-*.f64N/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\color{blue}{\frac{1}{100} \cdot i}, \frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      4. lower--.f64N/A

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

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

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\color{blue}{\frac{1}{2}}}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      7. lower-/.f64N/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \color{blue}{\frac{\frac{1}{2}}{{n}^{2}}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      8. unpow2N/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{\color{blue}{n \cdot n}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      9. lower-*.f64N/A

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

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \color{blue}{\frac{\frac{1}{2} \cdot 1}{n}}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      11. metadata-evalN/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\color{blue}{\frac{1}{2}}}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      12. lower-/.f64N/A

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

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\frac{1}{2}}{n}, \color{blue}{\frac{\frac{1}{100} \cdot 1}{n}}\right)} \]
      14. metadata-evalN/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\frac{1}{2}}{n}, \frac{\color{blue}{\frac{1}{100}}}{n}\right)} \]
      15. lower-/.f6499.6

        \[\leadsto \frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \color{blue}{\frac{0.01}{n}}\right)} \]
    12. Applied rewrites99.6%

      \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification98.4%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{{\left(\frac{i}{n} + 1\right)}^{n} - 1}{\frac{i}{n}} \leq 0:\\ \;\;\;\;\left(\frac{100}{i} \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)\right) \cdot n\\ \mathbf{elif}\;\frac{{\left(\frac{i}{n} + 1\right)}^{n} - 1}{\frac{i}{n}} \leq \infty:\\ \;\;\;\;\left(\left(\frac{-1}{i} + \frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i}\right) \cdot 100\right) \cdot n\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 3: 83.4% accurate, 0.3× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := {\left(\frac{i}{n} + 1\right)}^{n}\\ t_1 := \frac{t\_0 - 1}{\frac{i}{n}}\\ \mathbf{if}\;t\_1 \leq 0:\\ \;\;\;\;\left(\frac{\mathsf{expm1}\left(i\right)}{i} \cdot 100\right) \cdot n\\ \mathbf{elif}\;t\_1 \leq \infty:\\ \;\;\;\;\left(\left(\frac{-1}{i} + \frac{t\_0}{i}\right) \cdot 100\right) \cdot n\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\ \end{array} \end{array} \]
(FPCore (i n)
 :precision binary64
 (let* ((t_0 (pow (+ (/ i n) 1.0) n)) (t_1 (/ (- t_0 1.0) (/ i n))))
   (if (<= t_1 0.0)
     (* (* (/ (expm1 i) i) 100.0) n)
     (if (<= t_1 INFINITY)
       (* (* (+ (/ -1.0 i) (/ t_0 i)) 100.0) n)
       (/ 1.0 (fma (* 0.01 i) (- (/ 0.5 (* n n)) (/ 0.5 n)) (/ 0.01 n)))))))
double code(double i, double n) {
	double t_0 = pow(((i / n) + 1.0), n);
	double t_1 = (t_0 - 1.0) / (i / n);
	double tmp;
	if (t_1 <= 0.0) {
		tmp = ((expm1(i) / i) * 100.0) * n;
	} else if (t_1 <= ((double) INFINITY)) {
		tmp = (((-1.0 / i) + (t_0 / i)) * 100.0) * n;
	} else {
		tmp = 1.0 / fma((0.01 * i), ((0.5 / (n * n)) - (0.5 / n)), (0.01 / n));
	}
	return tmp;
}
function code(i, n)
	t_0 = Float64(Float64(i / n) + 1.0) ^ n
	t_1 = Float64(Float64(t_0 - 1.0) / Float64(i / n))
	tmp = 0.0
	if (t_1 <= 0.0)
		tmp = Float64(Float64(Float64(expm1(i) / i) * 100.0) * n);
	elseif (t_1 <= Inf)
		tmp = Float64(Float64(Float64(Float64(-1.0 / i) + Float64(t_0 / i)) * 100.0) * n);
	else
		tmp = Float64(1.0 / fma(Float64(0.01 * i), Float64(Float64(0.5 / Float64(n * n)) - Float64(0.5 / n)), Float64(0.01 / n)));
	end
	return tmp
end
code[i_, n_] := Block[{t$95$0 = N[Power[N[(N[(i / n), $MachinePrecision] + 1.0), $MachinePrecision], n], $MachinePrecision]}, Block[{t$95$1 = N[(N[(t$95$0 - 1.0), $MachinePrecision] / N[(i / n), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, 0.0], N[(N[(N[(N[(Exp[i] - 1), $MachinePrecision] / i), $MachinePrecision] * 100.0), $MachinePrecision] * n), $MachinePrecision], If[LessEqual[t$95$1, Infinity], N[(N[(N[(N[(-1.0 / i), $MachinePrecision] + N[(t$95$0 / i), $MachinePrecision]), $MachinePrecision] * 100.0), $MachinePrecision] * n), $MachinePrecision], N[(1.0 / N[(N[(0.01 * i), $MachinePrecision] * N[(N[(0.5 / N[(n * n), $MachinePrecision]), $MachinePrecision] - N[(0.5 / n), $MachinePrecision]), $MachinePrecision] + N[(0.01 / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := {\left(\frac{i}{n} + 1\right)}^{n}\\
t_1 := \frac{t\_0 - 1}{\frac{i}{n}}\\
\mathbf{if}\;t\_1 \leq 0:\\
\;\;\;\;\left(\frac{\mathsf{expm1}\left(i\right)}{i} \cdot 100\right) \cdot n\\

\mathbf{elif}\;t\_1 \leq \infty:\\
\;\;\;\;\left(\left(\frac{-1}{i} + \frac{t\_0}{i}\right) \cdot 100\right) \cdot n\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n)) < -0.0

    1. Initial program 28.5%

      \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
    2. Add Preprocessing
    3. Taylor expanded in n around inf

      \[\leadsto \color{blue}{100 \cdot \frac{n \cdot \left(e^{i} - 1\right)}{i}} \]
    4. Step-by-step derivation
      1. associate-/l*N/A

        \[\leadsto 100 \cdot \color{blue}{\left(n \cdot \frac{e^{i} - 1}{i}\right)} \]
      2. *-commutativeN/A

        \[\leadsto 100 \cdot \color{blue}{\left(\frac{e^{i} - 1}{i} \cdot n\right)} \]
      3. associate-*l*N/A

        \[\leadsto \color{blue}{\left(100 \cdot \frac{e^{i} - 1}{i}\right) \cdot n} \]
      4. lower-*.f64N/A

        \[\leadsto \color{blue}{\left(100 \cdot \frac{e^{i} - 1}{i}\right) \cdot n} \]
      5. *-commutativeN/A

        \[\leadsto \color{blue}{\left(\frac{e^{i} - 1}{i} \cdot 100\right)} \cdot n \]
      6. lower-*.f64N/A

        \[\leadsto \color{blue}{\left(\frac{e^{i} - 1}{i} \cdot 100\right)} \cdot n \]
      7. lower-/.f64N/A

        \[\leadsto \left(\color{blue}{\frac{e^{i} - 1}{i}} \cdot 100\right) \cdot n \]
      8. lower-expm1.f6479.2

        \[\leadsto \left(\frac{\color{blue}{\mathsf{expm1}\left(i\right)}}{i} \cdot 100\right) \cdot n \]
    5. Applied rewrites79.2%

      \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(i\right)}{i} \cdot 100\right) \cdot n} \]

    if -0.0 < (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n)) < +inf.0

    1. Initial program 96.7%

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

        \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      2. lift-/.f64N/A

        \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      3. associate-*r/N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      4. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      5. lower-*.f6496.8

        \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      6. lift--.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      7. lift-pow.f64N/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
      8. pow-to-expN/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
      9. lower-expm1.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
      10. lower-*.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
      11. lift-+.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
      12. lower-log1p.f6445.8

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
    4. Applied rewrites45.8%

      \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
    5. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
      2. lift-*.f64N/A

        \[\leadsto \frac{\color{blue}{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
      3. lift-expm1.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\left(e^{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n} - 1\right)}}{\frac{i}{n}} \]
      4. lift-*.f64N/A

        \[\leadsto \frac{100 \cdot \left(e^{\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
      5. lift-log1p.f64N/A

        \[\leadsto \frac{100 \cdot \left(e^{\color{blue}{\log \left(1 + \frac{i}{n}\right)} \cdot n} - 1\right)}{\frac{i}{n}} \]
      6. pow-to-expN/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
      7. lift-/.f64N/A

        \[\leadsto \frac{100 \cdot \left({\left(1 + \color{blue}{\frac{i}{n}}\right)}^{n} - 1\right)}{\frac{i}{n}} \]
      8. associate-*r/N/A

        \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      9. lift-/.f64N/A

        \[\leadsto 100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\color{blue}{\frac{i}{n}}} \]
      10. *-commutativeN/A

        \[\leadsto \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \cdot 100} \]
      11. associate-/r/N/A

        \[\leadsto \color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot n\right)} \cdot 100 \]
      12. associate-*l*N/A

        \[\leadsto \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \left(n \cdot 100\right)} \]
      13. *-commutativeN/A

        \[\leadsto \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \color{blue}{\left(100 \cdot n\right)} \]
      14. lift-*.f64N/A

        \[\leadsto \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \color{blue}{\left(100 \cdot n\right)} \]
      15. lower-*.f64N/A

        \[\leadsto \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \left(100 \cdot n\right)} \]
    6. Applied rewrites45.8%

      \[\leadsto \color{blue}{\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot \left(n \cdot 100\right)} \]
    7. Step-by-step derivation
      1. lift-*.f64N/A

        \[\leadsto \color{blue}{\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot \left(n \cdot 100\right)} \]
      2. lift-*.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot \color{blue}{\left(n \cdot 100\right)} \]
      3. *-commutativeN/A

        \[\leadsto \frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot \color{blue}{\left(100 \cdot n\right)} \]
      4. associate-*r*N/A

        \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot 100\right) \cdot n} \]
      5. lower-*.f64N/A

        \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot 100\right) \cdot n} \]
      6. lower-*.f6445.8

        \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot 100\right)} \cdot n \]
    8. Applied rewrites45.8%

      \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot 100\right) \cdot n} \]
    9. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \left(\color{blue}{\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i}} \cdot 100\right) \cdot n \]
      2. lift-expm1.f64N/A

        \[\leadsto \left(\frac{\color{blue}{e^{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n} - 1}}{i} \cdot 100\right) \cdot n \]
      3. div-subN/A

        \[\leadsto \left(\color{blue}{\left(\frac{e^{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n}}{i} - \frac{1}{i}\right)} \cdot 100\right) \cdot n \]
      4. lift-*.f64N/A

        \[\leadsto \left(\left(\frac{e^{\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n}}}{i} - \frac{1}{i}\right) \cdot 100\right) \cdot n \]
      5. lift-log1p.f64N/A

        \[\leadsto \left(\left(\frac{e^{\color{blue}{\log \left(1 + \frac{i}{n}\right)} \cdot n}}{i} - \frac{1}{i}\right) \cdot 100\right) \cdot n \]
      6. +-commutativeN/A

        \[\leadsto \left(\left(\frac{e^{\log \color{blue}{\left(\frac{i}{n} + 1\right)} \cdot n}}{i} - \frac{1}{i}\right) \cdot 100\right) \cdot n \]
      7. lift-+.f64N/A

        \[\leadsto \left(\left(\frac{e^{\log \color{blue}{\left(\frac{i}{n} + 1\right)} \cdot n}}{i} - \frac{1}{i}\right) \cdot 100\right) \cdot n \]
      8. pow-to-expN/A

        \[\leadsto \left(\left(\frac{\color{blue}{{\left(\frac{i}{n} + 1\right)}^{n}}}{i} - \frac{1}{i}\right) \cdot 100\right) \cdot n \]
      9. lift-pow.f64N/A

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

        \[\leadsto \left(\left(\color{blue}{\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i}} - \frac{1}{i}\right) \cdot 100\right) \cdot n \]
      11. sub-negN/A

        \[\leadsto \left(\color{blue}{\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i} + \left(\mathsf{neg}\left(\frac{1}{i}\right)\right)\right)} \cdot 100\right) \cdot n \]
      12. mul-1-negN/A

        \[\leadsto \left(\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i} + \color{blue}{-1 \cdot \frac{1}{i}}\right) \cdot 100\right) \cdot n \]
      13. div-invN/A

        \[\leadsto \left(\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i} + \color{blue}{\frac{-1}{i}}\right) \cdot 100\right) \cdot n \]
      14. lift-/.f64N/A

        \[\leadsto \left(\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i} + \color{blue}{\frac{-1}{i}}\right) \cdot 100\right) \cdot n \]
      15. lower-+.f6497.5

        \[\leadsto \left(\color{blue}{\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i} + \frac{-1}{i}\right)} \cdot 100\right) \cdot n \]
      16. lift-+.f64N/A

        \[\leadsto \left(\left(\frac{{\color{blue}{\left(\frac{i}{n} + 1\right)}}^{n}}{i} + \frac{-1}{i}\right) \cdot 100\right) \cdot n \]
      17. +-commutativeN/A

        \[\leadsto \left(\left(\frac{{\color{blue}{\left(1 + \frac{i}{n}\right)}}^{n}}{i} + \frac{-1}{i}\right) \cdot 100\right) \cdot n \]
      18. lower-+.f6497.5

        \[\leadsto \left(\left(\frac{{\color{blue}{\left(1 + \frac{i}{n}\right)}}^{n}}{i} + \frac{-1}{i}\right) \cdot 100\right) \cdot n \]
    10. Applied rewrites97.5%

      \[\leadsto \left(\color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{i} + \frac{-1}{i}\right)} \cdot 100\right) \cdot n \]

    if +inf.0 < (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n))

    1. Initial program 0.0%

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

        \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      2. lift-/.f64N/A

        \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      3. associate-*r/N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      4. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      5. lower-*.f640.0

        \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      6. lift--.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      7. lift-pow.f64N/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
      8. pow-to-expN/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
      9. lower-expm1.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
      10. lower-*.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
      11. lift-+.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
      12. lower-log1p.f640.0

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
    4. Applied rewrites0.0%

      \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
    5. Taylor expanded in i around 0

      \[\leadsto \frac{\color{blue}{100 \cdot i}}{\frac{i}{n}} \]
    6. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
      2. lower-*.f6424.3

        \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
    7. Applied rewrites24.3%

      \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
    8. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{i \cdot 100}{\frac{i}{n}}} \]
      2. clear-numN/A

        \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
      3. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
      4. lower-/.f6424.3

        \[\leadsto \frac{1}{\color{blue}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
    9. Applied rewrites24.3%

      \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{100 \cdot i}}} \]
    10. Taylor expanded in i around 0

      \[\leadsto \frac{1}{\color{blue}{\frac{1}{100} \cdot \left(i \cdot \left(\frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + \frac{1}{100} \cdot \frac{1}{n}}} \]
    11. Step-by-step derivation
      1. associate-*r*N/A

        \[\leadsto \frac{1}{\color{blue}{\left(\frac{1}{100} \cdot i\right) \cdot \left(\frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}\right)} + \frac{1}{100} \cdot \frac{1}{n}} \]
      2. lower-fma.f64N/A

        \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)}} \]
      3. lower-*.f64N/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\color{blue}{\frac{1}{100} \cdot i}, \frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      4. lower--.f64N/A

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

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

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\color{blue}{\frac{1}{2}}}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      7. lower-/.f64N/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \color{blue}{\frac{\frac{1}{2}}{{n}^{2}}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      8. unpow2N/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{\color{blue}{n \cdot n}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      9. lower-*.f64N/A

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

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \color{blue}{\frac{\frac{1}{2} \cdot 1}{n}}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      11. metadata-evalN/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\color{blue}{\frac{1}{2}}}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      12. lower-/.f64N/A

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

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\frac{1}{2}}{n}, \color{blue}{\frac{\frac{1}{100} \cdot 1}{n}}\right)} \]
      14. metadata-evalN/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\frac{1}{2}}{n}, \frac{\color{blue}{\frac{1}{100}}}{n}\right)} \]
      15. lower-/.f6499.6

        \[\leadsto \frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \color{blue}{\frac{0.01}{n}}\right)} \]
    12. Applied rewrites99.6%

      \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification83.9%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{{\left(\frac{i}{n} + 1\right)}^{n} - 1}{\frac{i}{n}} \leq 0:\\ \;\;\;\;\left(\frac{\mathsf{expm1}\left(i\right)}{i} \cdot 100\right) \cdot n\\ \mathbf{elif}\;\frac{{\left(\frac{i}{n} + 1\right)}^{n} - 1}{\frac{i}{n}} \leq \infty:\\ \;\;\;\;\left(\left(\frac{-1}{i} + \frac{{\left(\frac{i}{n} + 1\right)}^{n}}{i}\right) \cdot 100\right) \cdot n\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 4: 83.4% accurate, 0.3× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := {\left(\frac{i}{n} + 1\right)}^{n} - 1\\ t_1 := \frac{t\_0}{\frac{i}{n}}\\ \mathbf{if}\;t\_1 \leq 0:\\ \;\;\;\;\left(\frac{\mathsf{expm1}\left(i\right)}{i} \cdot 100\right) \cdot n\\ \mathbf{elif}\;t\_1 \leq \infty:\\ \;\;\;\;\left(\frac{t\_0}{i} \cdot 100\right) \cdot n\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\ \end{array} \end{array} \]
(FPCore (i n)
 :precision binary64
 (let* ((t_0 (- (pow (+ (/ i n) 1.0) n) 1.0)) (t_1 (/ t_0 (/ i n))))
   (if (<= t_1 0.0)
     (* (* (/ (expm1 i) i) 100.0) n)
     (if (<= t_1 INFINITY)
       (* (* (/ t_0 i) 100.0) n)
       (/ 1.0 (fma (* 0.01 i) (- (/ 0.5 (* n n)) (/ 0.5 n)) (/ 0.01 n)))))))
double code(double i, double n) {
	double t_0 = pow(((i / n) + 1.0), n) - 1.0;
	double t_1 = t_0 / (i / n);
	double tmp;
	if (t_1 <= 0.0) {
		tmp = ((expm1(i) / i) * 100.0) * n;
	} else if (t_1 <= ((double) INFINITY)) {
		tmp = ((t_0 / i) * 100.0) * n;
	} else {
		tmp = 1.0 / fma((0.01 * i), ((0.5 / (n * n)) - (0.5 / n)), (0.01 / n));
	}
	return tmp;
}
function code(i, n)
	t_0 = Float64((Float64(Float64(i / n) + 1.0) ^ n) - 1.0)
	t_1 = Float64(t_0 / Float64(i / n))
	tmp = 0.0
	if (t_1 <= 0.0)
		tmp = Float64(Float64(Float64(expm1(i) / i) * 100.0) * n);
	elseif (t_1 <= Inf)
		tmp = Float64(Float64(Float64(t_0 / i) * 100.0) * n);
	else
		tmp = Float64(1.0 / fma(Float64(0.01 * i), Float64(Float64(0.5 / Float64(n * n)) - Float64(0.5 / n)), Float64(0.01 / n)));
	end
	return tmp
end
code[i_, n_] := Block[{t$95$0 = N[(N[Power[N[(N[(i / n), $MachinePrecision] + 1.0), $MachinePrecision], n], $MachinePrecision] - 1.0), $MachinePrecision]}, Block[{t$95$1 = N[(t$95$0 / N[(i / n), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t$95$1, 0.0], N[(N[(N[(N[(Exp[i] - 1), $MachinePrecision] / i), $MachinePrecision] * 100.0), $MachinePrecision] * n), $MachinePrecision], If[LessEqual[t$95$1, Infinity], N[(N[(N[(t$95$0 / i), $MachinePrecision] * 100.0), $MachinePrecision] * n), $MachinePrecision], N[(1.0 / N[(N[(0.01 * i), $MachinePrecision] * N[(N[(0.5 / N[(n * n), $MachinePrecision]), $MachinePrecision] - N[(0.5 / n), $MachinePrecision]), $MachinePrecision] + N[(0.01 / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := {\left(\frac{i}{n} + 1\right)}^{n} - 1\\
t_1 := \frac{t\_0}{\frac{i}{n}}\\
\mathbf{if}\;t\_1 \leq 0:\\
\;\;\;\;\left(\frac{\mathsf{expm1}\left(i\right)}{i} \cdot 100\right) \cdot n\\

\mathbf{elif}\;t\_1 \leq \infty:\\
\;\;\;\;\left(\frac{t\_0}{i} \cdot 100\right) \cdot n\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n)) < -0.0

    1. Initial program 28.5%

      \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
    2. Add Preprocessing
    3. Taylor expanded in n around inf

      \[\leadsto \color{blue}{100 \cdot \frac{n \cdot \left(e^{i} - 1\right)}{i}} \]
    4. Step-by-step derivation
      1. associate-/l*N/A

        \[\leadsto 100 \cdot \color{blue}{\left(n \cdot \frac{e^{i} - 1}{i}\right)} \]
      2. *-commutativeN/A

        \[\leadsto 100 \cdot \color{blue}{\left(\frac{e^{i} - 1}{i} \cdot n\right)} \]
      3. associate-*l*N/A

        \[\leadsto \color{blue}{\left(100 \cdot \frac{e^{i} - 1}{i}\right) \cdot n} \]
      4. lower-*.f64N/A

        \[\leadsto \color{blue}{\left(100 \cdot \frac{e^{i} - 1}{i}\right) \cdot n} \]
      5. *-commutativeN/A

        \[\leadsto \color{blue}{\left(\frac{e^{i} - 1}{i} \cdot 100\right)} \cdot n \]
      6. lower-*.f64N/A

        \[\leadsto \color{blue}{\left(\frac{e^{i} - 1}{i} \cdot 100\right)} \cdot n \]
      7. lower-/.f64N/A

        \[\leadsto \left(\color{blue}{\frac{e^{i} - 1}{i}} \cdot 100\right) \cdot n \]
      8. lower-expm1.f6479.2

        \[\leadsto \left(\frac{\color{blue}{\mathsf{expm1}\left(i\right)}}{i} \cdot 100\right) \cdot n \]
    5. Applied rewrites79.2%

      \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(i\right)}{i} \cdot 100\right) \cdot n} \]

    if -0.0 < (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n)) < +inf.0

    1. Initial program 96.7%

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

        \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      2. lift-/.f64N/A

        \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      3. associate-*r/N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      4. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      5. lower-*.f6496.8

        \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      6. lift--.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      7. lift-pow.f64N/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
      8. pow-to-expN/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
      9. lower-expm1.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
      10. lower-*.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
      11. lift-+.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
      12. lower-log1p.f6445.8

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
    4. Applied rewrites45.8%

      \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
    5. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
      2. lift-*.f64N/A

        \[\leadsto \frac{\color{blue}{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
      3. lift-expm1.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\left(e^{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n} - 1\right)}}{\frac{i}{n}} \]
      4. lift-*.f64N/A

        \[\leadsto \frac{100 \cdot \left(e^{\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
      5. lift-log1p.f64N/A

        \[\leadsto \frac{100 \cdot \left(e^{\color{blue}{\log \left(1 + \frac{i}{n}\right)} \cdot n} - 1\right)}{\frac{i}{n}} \]
      6. pow-to-expN/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
      7. lift-/.f64N/A

        \[\leadsto \frac{100 \cdot \left({\left(1 + \color{blue}{\frac{i}{n}}\right)}^{n} - 1\right)}{\frac{i}{n}} \]
      8. associate-*r/N/A

        \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      9. lift-/.f64N/A

        \[\leadsto 100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\color{blue}{\frac{i}{n}}} \]
      10. *-commutativeN/A

        \[\leadsto \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \cdot 100} \]
      11. associate-/r/N/A

        \[\leadsto \color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot n\right)} \cdot 100 \]
      12. associate-*l*N/A

        \[\leadsto \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \left(n \cdot 100\right)} \]
      13. *-commutativeN/A

        \[\leadsto \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \color{blue}{\left(100 \cdot n\right)} \]
      14. lift-*.f64N/A

        \[\leadsto \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \color{blue}{\left(100 \cdot n\right)} \]
      15. lower-*.f64N/A

        \[\leadsto \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \left(100 \cdot n\right)} \]
    6. Applied rewrites45.8%

      \[\leadsto \color{blue}{\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot \left(n \cdot 100\right)} \]
    7. Step-by-step derivation
      1. lift-*.f64N/A

        \[\leadsto \color{blue}{\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot \left(n \cdot 100\right)} \]
      2. lift-*.f64N/A

        \[\leadsto \frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot \color{blue}{\left(n \cdot 100\right)} \]
      3. *-commutativeN/A

        \[\leadsto \frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot \color{blue}{\left(100 \cdot n\right)} \]
      4. associate-*r*N/A

        \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot 100\right) \cdot n} \]
      5. lower-*.f64N/A

        \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot 100\right) \cdot n} \]
      6. lower-*.f6445.8

        \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot 100\right)} \cdot n \]
    8. Applied rewrites45.8%

      \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot 100\right) \cdot n} \]
    9. Step-by-step derivation
      1. lift-expm1.f64N/A

        \[\leadsto \left(\frac{\color{blue}{e^{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n} - 1}}{i} \cdot 100\right) \cdot n \]
      2. lower--.f64N/A

        \[\leadsto \left(\frac{\color{blue}{e^{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n} - 1}}{i} \cdot 100\right) \cdot n \]
      3. lift-*.f64N/A

        \[\leadsto \left(\frac{e^{\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n}} - 1}{i} \cdot 100\right) \cdot n \]
      4. lift-log1p.f64N/A

        \[\leadsto \left(\frac{e^{\color{blue}{\log \left(1 + \frac{i}{n}\right)} \cdot n} - 1}{i} \cdot 100\right) \cdot n \]
      5. lift-/.f64N/A

        \[\leadsto \left(\frac{e^{\log \left(1 + \color{blue}{\frac{i}{n}}\right) \cdot n} - 1}{i} \cdot 100\right) \cdot n \]
      6. pow-to-expN/A

        \[\leadsto \left(\frac{\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1}{i} \cdot 100\right) \cdot n \]
      7. lower-pow.f64N/A

        \[\leadsto \left(\frac{\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1}{i} \cdot 100\right) \cdot n \]
      8. lift-/.f64N/A

        \[\leadsto \left(\frac{{\left(1 + \color{blue}{\frac{i}{n}}\right)}^{n} - 1}{i} \cdot 100\right) \cdot n \]
      9. lower-+.f6496.9

        \[\leadsto \left(\frac{{\color{blue}{\left(1 + \frac{i}{n}\right)}}^{n} - 1}{i} \cdot 100\right) \cdot n \]
    10. Applied rewrites96.9%

      \[\leadsto \left(\frac{\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n} - 1}}{i} \cdot 100\right) \cdot n \]

    if +inf.0 < (/.f64 (-.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (/.f64 i n)) n) #s(literal 1 binary64)) (/.f64 i n))

    1. Initial program 0.0%

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

        \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      2. lift-/.f64N/A

        \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      3. associate-*r/N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      4. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      5. lower-*.f640.0

        \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      6. lift--.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      7. lift-pow.f64N/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
      8. pow-to-expN/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
      9. lower-expm1.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
      10. lower-*.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
      11. lift-+.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
      12. lower-log1p.f640.0

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
    4. Applied rewrites0.0%

      \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
    5. Taylor expanded in i around 0

      \[\leadsto \frac{\color{blue}{100 \cdot i}}{\frac{i}{n}} \]
    6. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
      2. lower-*.f6424.3

        \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
    7. Applied rewrites24.3%

      \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
    8. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{i \cdot 100}{\frac{i}{n}}} \]
      2. clear-numN/A

        \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
      3. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
      4. lower-/.f6424.3

        \[\leadsto \frac{1}{\color{blue}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
    9. Applied rewrites24.3%

      \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{100 \cdot i}}} \]
    10. Taylor expanded in i around 0

      \[\leadsto \frac{1}{\color{blue}{\frac{1}{100} \cdot \left(i \cdot \left(\frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + \frac{1}{100} \cdot \frac{1}{n}}} \]
    11. Step-by-step derivation
      1. associate-*r*N/A

        \[\leadsto \frac{1}{\color{blue}{\left(\frac{1}{100} \cdot i\right) \cdot \left(\frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}\right)} + \frac{1}{100} \cdot \frac{1}{n}} \]
      2. lower-fma.f64N/A

        \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)}} \]
      3. lower-*.f64N/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\color{blue}{\frac{1}{100} \cdot i}, \frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      4. lower--.f64N/A

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

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

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\color{blue}{\frac{1}{2}}}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      7. lower-/.f64N/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \color{blue}{\frac{\frac{1}{2}}{{n}^{2}}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      8. unpow2N/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{\color{blue}{n \cdot n}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      9. lower-*.f64N/A

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

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \color{blue}{\frac{\frac{1}{2} \cdot 1}{n}}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      11. metadata-evalN/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\color{blue}{\frac{1}{2}}}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      12. lower-/.f64N/A

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

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\frac{1}{2}}{n}, \color{blue}{\frac{\frac{1}{100} \cdot 1}{n}}\right)} \]
      14. metadata-evalN/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\frac{1}{2}}{n}, \frac{\color{blue}{\frac{1}{100}}}{n}\right)} \]
      15. lower-/.f6499.6

        \[\leadsto \frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \color{blue}{\frac{0.01}{n}}\right)} \]
    12. Applied rewrites99.6%

      \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification83.8%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{{\left(\frac{i}{n} + 1\right)}^{n} - 1}{\frac{i}{n}} \leq 0:\\ \;\;\;\;\left(\frac{\mathsf{expm1}\left(i\right)}{i} \cdot 100\right) \cdot n\\ \mathbf{elif}\;\frac{{\left(\frac{i}{n} + 1\right)}^{n} - 1}{\frac{i}{n}} \leq \infty:\\ \;\;\;\;\left(\frac{{\left(\frac{i}{n} + 1\right)}^{n} - 1}{i} \cdot 100\right) \cdot n\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 5: 82.8% accurate, 1.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \left(\frac{\mathsf{expm1}\left(i\right)}{i} \cdot 100\right) \cdot n\\ \mathbf{if}\;n \leq -8 \cdot 10^{-251}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;n \leq 0.39:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
(FPCore (i n)
 :precision binary64
 (let* ((t_0 (* (* (/ (expm1 i) i) 100.0) n)))
   (if (<= n -8e-251)
     t_0
     (if (<= n 0.39)
       (/ 1.0 (fma (* 0.01 i) (- (/ 0.5 (* n n)) (/ 0.5 n)) (/ 0.01 n)))
       t_0))))
double code(double i, double n) {
	double t_0 = ((expm1(i) / i) * 100.0) * n;
	double tmp;
	if (n <= -8e-251) {
		tmp = t_0;
	} else if (n <= 0.39) {
		tmp = 1.0 / fma((0.01 * i), ((0.5 / (n * n)) - (0.5 / n)), (0.01 / n));
	} else {
		tmp = t_0;
	}
	return tmp;
}
function code(i, n)
	t_0 = Float64(Float64(Float64(expm1(i) / i) * 100.0) * n)
	tmp = 0.0
	if (n <= -8e-251)
		tmp = t_0;
	elseif (n <= 0.39)
		tmp = Float64(1.0 / fma(Float64(0.01 * i), Float64(Float64(0.5 / Float64(n * n)) - Float64(0.5 / n)), Float64(0.01 / n)));
	else
		tmp = t_0;
	end
	return tmp
end
code[i_, n_] := Block[{t$95$0 = N[(N[(N[(N[(Exp[i] - 1), $MachinePrecision] / i), $MachinePrecision] * 100.0), $MachinePrecision] * n), $MachinePrecision]}, If[LessEqual[n, -8e-251], t$95$0, If[LessEqual[n, 0.39], N[(1.0 / N[(N[(0.01 * i), $MachinePrecision] * N[(N[(0.5 / N[(n * n), $MachinePrecision]), $MachinePrecision] - N[(0.5 / n), $MachinePrecision]), $MachinePrecision] + N[(0.01 / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \left(\frac{\mathsf{expm1}\left(i\right)}{i} \cdot 100\right) \cdot n\\
\mathbf{if}\;n \leq -8 \cdot 10^{-251}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;n \leq 0.39:\\
\;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if n < -8.00000000000000012e-251 or 0.39000000000000001 < n

    1. Initial program 29.0%

      \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
    2. Add Preprocessing
    3. Taylor expanded in n around inf

      \[\leadsto \color{blue}{100 \cdot \frac{n \cdot \left(e^{i} - 1\right)}{i}} \]
    4. Step-by-step derivation
      1. associate-/l*N/A

        \[\leadsto 100 \cdot \color{blue}{\left(n \cdot \frac{e^{i} - 1}{i}\right)} \]
      2. *-commutativeN/A

        \[\leadsto 100 \cdot \color{blue}{\left(\frac{e^{i} - 1}{i} \cdot n\right)} \]
      3. associate-*l*N/A

        \[\leadsto \color{blue}{\left(100 \cdot \frac{e^{i} - 1}{i}\right) \cdot n} \]
      4. lower-*.f64N/A

        \[\leadsto \color{blue}{\left(100 \cdot \frac{e^{i} - 1}{i}\right) \cdot n} \]
      5. *-commutativeN/A

        \[\leadsto \color{blue}{\left(\frac{e^{i} - 1}{i} \cdot 100\right)} \cdot n \]
      6. lower-*.f64N/A

        \[\leadsto \color{blue}{\left(\frac{e^{i} - 1}{i} \cdot 100\right)} \cdot n \]
      7. lower-/.f64N/A

        \[\leadsto \left(\color{blue}{\frac{e^{i} - 1}{i}} \cdot 100\right) \cdot n \]
      8. lower-expm1.f6487.1

        \[\leadsto \left(\frac{\color{blue}{\mathsf{expm1}\left(i\right)}}{i} \cdot 100\right) \cdot n \]
    5. Applied rewrites87.1%

      \[\leadsto \color{blue}{\left(\frac{\mathsf{expm1}\left(i\right)}{i} \cdot 100\right) \cdot n} \]

    if -8.00000000000000012e-251 < n < 0.39000000000000001

    1. Initial program 36.6%

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

        \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      2. lift-/.f64N/A

        \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      3. associate-*r/N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      4. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      5. lower-*.f6436.6

        \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      6. lift--.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      7. lift-pow.f64N/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
      8. pow-to-expN/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
      9. lower-expm1.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
      10. lower-*.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
      11. lift-+.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
      12. lower-log1p.f6486.0

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
    4. Applied rewrites86.0%

      \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
    5. Taylor expanded in i around 0

      \[\leadsto \frac{\color{blue}{100 \cdot i}}{\frac{i}{n}} \]
    6. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
      2. lower-*.f6449.5

        \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
    7. Applied rewrites49.5%

      \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
    8. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{i \cdot 100}{\frac{i}{n}}} \]
      2. clear-numN/A

        \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
      3. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
      4. lower-/.f6449.4

        \[\leadsto \frac{1}{\color{blue}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
    9. Applied rewrites49.4%

      \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{100 \cdot i}}} \]
    10. Taylor expanded in i around 0

      \[\leadsto \frac{1}{\color{blue}{\frac{1}{100} \cdot \left(i \cdot \left(\frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + \frac{1}{100} \cdot \frac{1}{n}}} \]
    11. Step-by-step derivation
      1. associate-*r*N/A

        \[\leadsto \frac{1}{\color{blue}{\left(\frac{1}{100} \cdot i\right) \cdot \left(\frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}\right)} + \frac{1}{100} \cdot \frac{1}{n}} \]
      2. lower-fma.f64N/A

        \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)}} \]
      3. lower-*.f64N/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\color{blue}{\frac{1}{100} \cdot i}, \frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      4. lower--.f64N/A

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

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

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\color{blue}{\frac{1}{2}}}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      7. lower-/.f64N/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \color{blue}{\frac{\frac{1}{2}}{{n}^{2}}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      8. unpow2N/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{\color{blue}{n \cdot n}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      9. lower-*.f64N/A

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

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \color{blue}{\frac{\frac{1}{2} \cdot 1}{n}}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      11. metadata-evalN/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\color{blue}{\frac{1}{2}}}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      12. lower-/.f64N/A

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

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\frac{1}{2}}{n}, \color{blue}{\frac{\frac{1}{100} \cdot 1}{n}}\right)} \]
      14. metadata-evalN/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\frac{1}{2}}{n}, \frac{\color{blue}{\frac{1}{100}}}{n}\right)} \]
      15. lower-/.f6470.0

        \[\leadsto \frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \color{blue}{\frac{0.01}{n}}\right)} \]
    12. Applied rewrites70.0%

      \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}} \]
  3. Recombined 2 regimes into one program.
  4. Add Preprocessing

Alternative 6: 70.8% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{\frac{0.3333333333333333}{n} - 0.5}{n} + 0.16666666666666666, i, 0.5 - \frac{0.5}{n}\right), i, 1\right) \cdot i\right) \cdot n}{i} \cdot 100\\ \mathbf{if}\;n \leq -1.66 \cdot 10^{+167}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;n \leq 4.2 \cdot 10^{-11}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
(FPCore (i n)
 :precision binary64
 (let* ((t_0
         (*
          (/
           (*
            (*
             (fma
              (fma
               (+ (/ (- (/ 0.3333333333333333 n) 0.5) n) 0.16666666666666666)
               i
               (- 0.5 (/ 0.5 n)))
              i
              1.0)
             i)
            n)
           i)
          100.0)))
   (if (<= n -1.66e+167)
     t_0
     (if (<= n 4.2e-11)
       (/ 1.0 (fma (* 0.01 i) (- (/ 0.5 (* n n)) (/ 0.5 n)) (/ 0.01 n)))
       t_0))))
double code(double i, double n) {
	double t_0 = (((fma(fma(((((0.3333333333333333 / n) - 0.5) / n) + 0.16666666666666666), i, (0.5 - (0.5 / n))), i, 1.0) * i) * n) / i) * 100.0;
	double tmp;
	if (n <= -1.66e+167) {
		tmp = t_0;
	} else if (n <= 4.2e-11) {
		tmp = 1.0 / fma((0.01 * i), ((0.5 / (n * n)) - (0.5 / n)), (0.01 / n));
	} else {
		tmp = t_0;
	}
	return tmp;
}
function code(i, n)
	t_0 = Float64(Float64(Float64(Float64(fma(fma(Float64(Float64(Float64(Float64(0.3333333333333333 / n) - 0.5) / n) + 0.16666666666666666), i, Float64(0.5 - Float64(0.5 / n))), i, 1.0) * i) * n) / i) * 100.0)
	tmp = 0.0
	if (n <= -1.66e+167)
		tmp = t_0;
	elseif (n <= 4.2e-11)
		tmp = Float64(1.0 / fma(Float64(0.01 * i), Float64(Float64(0.5 / Float64(n * n)) - Float64(0.5 / n)), Float64(0.01 / n)));
	else
		tmp = t_0;
	end
	return tmp
end
code[i_, n_] := Block[{t$95$0 = N[(N[(N[(N[(N[(N[(N[(N[(N[(N[(0.3333333333333333 / n), $MachinePrecision] - 0.5), $MachinePrecision] / n), $MachinePrecision] + 0.16666666666666666), $MachinePrecision] * i + N[(0.5 - N[(0.5 / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * i + 1.0), $MachinePrecision] * i), $MachinePrecision] * n), $MachinePrecision] / i), $MachinePrecision] * 100.0), $MachinePrecision]}, If[LessEqual[n, -1.66e+167], t$95$0, If[LessEqual[n, 4.2e-11], N[(1.0 / N[(N[(0.01 * i), $MachinePrecision] * N[(N[(0.5 / N[(n * n), $MachinePrecision]), $MachinePrecision] - N[(0.5 / n), $MachinePrecision]), $MachinePrecision] + N[(0.01 / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{\frac{0.3333333333333333}{n} - 0.5}{n} + 0.16666666666666666, i, 0.5 - \frac{0.5}{n}\right), i, 1\right) \cdot i\right) \cdot n}{i} \cdot 100\\
\mathbf{if}\;n \leq -1.66 \cdot 10^{+167}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;n \leq 4.2 \cdot 10^{-11}:\\
\;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if n < -1.6600000000000001e167 or 4.1999999999999997e-11 < n

    1. Initial program 15.3%

      \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
    2. Add Preprocessing
    3. Taylor expanded in i around 0

      \[\leadsto 100 \cdot \frac{\color{blue}{i \cdot \left(1 + i \cdot \left(\left(\frac{1}{2} + i \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right)}}{\frac{i}{n}} \]
    4. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto 100 \cdot \frac{\color{blue}{\left(1 + i \cdot \left(\left(\frac{1}{2} + i \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) \cdot i}}{\frac{i}{n}} \]
      2. lower-*.f64N/A

        \[\leadsto 100 \cdot \frac{\color{blue}{\left(1 + i \cdot \left(\left(\frac{1}{2} + i \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) \cdot i}}{\frac{i}{n}} \]
    5. Applied rewrites52.8%

      \[\leadsto 100 \cdot \frac{\color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), i, 1\right) \cdot i}}{\frac{i}{n}} \]
    6. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto 100 \cdot \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\left(\frac{\frac{1}{3}}{n \cdot n} + \frac{1}{6}\right) - \frac{\frac{1}{2}}{n}, i, \frac{1}{2} - \frac{\frac{1}{2}}{n}\right), i, 1\right) \cdot i}{\frac{i}{n}}} \]
      2. lift-/.f64N/A

        \[\leadsto 100 \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\left(\frac{\frac{1}{3}}{n \cdot n} + \frac{1}{6}\right) - \frac{\frac{1}{2}}{n}, i, \frac{1}{2} - \frac{\frac{1}{2}}{n}\right), i, 1\right) \cdot i}{\color{blue}{\frac{i}{n}}} \]
      3. associate-/r/N/A

        \[\leadsto 100 \cdot \color{blue}{\left(\frac{\mathsf{fma}\left(\mathsf{fma}\left(\left(\frac{\frac{1}{3}}{n \cdot n} + \frac{1}{6}\right) - \frac{\frac{1}{2}}{n}, i, \frac{1}{2} - \frac{\frac{1}{2}}{n}\right), i, 1\right) \cdot i}{i} \cdot n\right)} \]
      4. associate-*l/N/A

        \[\leadsto 100 \cdot \color{blue}{\frac{\left(\mathsf{fma}\left(\mathsf{fma}\left(\left(\frac{\frac{1}{3}}{n \cdot n} + \frac{1}{6}\right) - \frac{\frac{1}{2}}{n}, i, \frac{1}{2} - \frac{\frac{1}{2}}{n}\right), i, 1\right) \cdot i\right) \cdot n}{i}} \]
      5. lower-/.f64N/A

        \[\leadsto 100 \cdot \color{blue}{\frac{\left(\mathsf{fma}\left(\mathsf{fma}\left(\left(\frac{\frac{1}{3}}{n \cdot n} + \frac{1}{6}\right) - \frac{\frac{1}{2}}{n}, i, \frac{1}{2} - \frac{\frac{1}{2}}{n}\right), i, 1\right) \cdot i\right) \cdot n}{i}} \]
    7. Applied rewrites75.9%

      \[\leadsto 100 \cdot \color{blue}{\frac{\left(\mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666 + \frac{\frac{0.3333333333333333}{n} - 0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), i, 1\right) \cdot i\right) \cdot n}{i}} \]

    if -1.6600000000000001e167 < n < 4.1999999999999997e-11

    1. Initial program 43.8%

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

        \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      2. lift-/.f64N/A

        \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
      3. associate-*r/N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      4. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
      5. lower-*.f6443.8

        \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      6. lift--.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
      7. lift-pow.f64N/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
      8. pow-to-expN/A

        \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
      9. lower-expm1.f64N/A

        \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
      10. lower-*.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
      11. lift-+.f64N/A

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
      12. lower-log1p.f6483.2

        \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
    4. Applied rewrites83.2%

      \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
    5. Taylor expanded in i around 0

      \[\leadsto \frac{\color{blue}{100 \cdot i}}{\frac{i}{n}} \]
    6. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
      2. lower-*.f6449.4

        \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
    7. Applied rewrites49.4%

      \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
    8. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{i \cdot 100}{\frac{i}{n}}} \]
      2. clear-numN/A

        \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
      3. lower-/.f64N/A

        \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
      4. lower-/.f6449.3

        \[\leadsto \frac{1}{\color{blue}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
    9. Applied rewrites49.3%

      \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{100 \cdot i}}} \]
    10. Taylor expanded in i around 0

      \[\leadsto \frac{1}{\color{blue}{\frac{1}{100} \cdot \left(i \cdot \left(\frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + \frac{1}{100} \cdot \frac{1}{n}}} \]
    11. Step-by-step derivation
      1. associate-*r*N/A

        \[\leadsto \frac{1}{\color{blue}{\left(\frac{1}{100} \cdot i\right) \cdot \left(\frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}\right)} + \frac{1}{100} \cdot \frac{1}{n}} \]
      2. lower-fma.f64N/A

        \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)}} \]
      3. lower-*.f64N/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\color{blue}{\frac{1}{100} \cdot i}, \frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      4. lower--.f64N/A

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

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

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\color{blue}{\frac{1}{2}}}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      7. lower-/.f64N/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \color{blue}{\frac{\frac{1}{2}}{{n}^{2}}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      8. unpow2N/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{\color{blue}{n \cdot n}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      9. lower-*.f64N/A

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

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \color{blue}{\frac{\frac{1}{2} \cdot 1}{n}}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      11. metadata-evalN/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\color{blue}{\frac{1}{2}}}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
      12. lower-/.f64N/A

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

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\frac{1}{2}}{n}, \color{blue}{\frac{\frac{1}{100} \cdot 1}{n}}\right)} \]
      14. metadata-evalN/A

        \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\frac{1}{2}}{n}, \frac{\color{blue}{\frac{1}{100}}}{n}\right)} \]
      15. lower-/.f6463.3

        \[\leadsto \frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \color{blue}{\frac{0.01}{n}}\right)} \]
    12. Applied rewrites63.3%

      \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification69.1%

    \[\leadsto \begin{array}{l} \mathbf{if}\;n \leq -1.66 \cdot 10^{+167}:\\ \;\;\;\;\frac{\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{\frac{0.3333333333333333}{n} - 0.5}{n} + 0.16666666666666666, i, 0.5 - \frac{0.5}{n}\right), i, 1\right) \cdot i\right) \cdot n}{i} \cdot 100\\ \mathbf{elif}\;n \leq 4.2 \cdot 10^{-11}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{\frac{0.3333333333333333}{n} - 0.5}{n} + 0.16666666666666666, i, 0.5 - \frac{0.5}{n}\right), i, 1\right) \cdot i\right) \cdot n}{i} \cdot 100\\ \end{array} \]
  5. Add Preprocessing

Alternative 7: 70.0% accurate, 1.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;n \leq -1.66 \cdot 10^{+167}:\\ \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(0.16666666666666666, i, 0.5\right), n\right) \cdot 100\\ \mathbf{elif}\;n \leq 4.2 \cdot 10^{-11}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(100 \cdot n\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), i, 1\right)\\ \end{array} \end{array} \]
(FPCore (i n)
 :precision binary64
 (if (<= n -1.66e+167)
   (* (fma (* n i) (fma 0.16666666666666666 i 0.5) n) 100.0)
   (if (<= n 4.2e-11)
     (/ 1.0 (fma (* 0.01 i) (- (/ 0.5 (* n n)) (/ 0.5 n)) (/ 0.01 n)))
     (*
      (* 100.0 n)
      (fma
       (fma
        (- (+ (/ 0.3333333333333333 (* n n)) 0.16666666666666666) (/ 0.5 n))
        i
        (- 0.5 (/ 0.5 n)))
       i
       1.0)))))
double code(double i, double n) {
	double tmp;
	if (n <= -1.66e+167) {
		tmp = fma((n * i), fma(0.16666666666666666, i, 0.5), n) * 100.0;
	} else if (n <= 4.2e-11) {
		tmp = 1.0 / fma((0.01 * i), ((0.5 / (n * n)) - (0.5 / n)), (0.01 / n));
	} else {
		tmp = (100.0 * n) * fma(fma((((0.3333333333333333 / (n * n)) + 0.16666666666666666) - (0.5 / n)), i, (0.5 - (0.5 / n))), i, 1.0);
	}
	return tmp;
}
function code(i, n)
	tmp = 0.0
	if (n <= -1.66e+167)
		tmp = Float64(fma(Float64(n * i), fma(0.16666666666666666, i, 0.5), n) * 100.0);
	elseif (n <= 4.2e-11)
		tmp = Float64(1.0 / fma(Float64(0.01 * i), Float64(Float64(0.5 / Float64(n * n)) - Float64(0.5 / n)), Float64(0.01 / n)));
	else
		tmp = Float64(Float64(100.0 * n) * fma(fma(Float64(Float64(Float64(0.3333333333333333 / Float64(n * n)) + 0.16666666666666666) - Float64(0.5 / n)), i, Float64(0.5 - Float64(0.5 / n))), i, 1.0));
	end
	return tmp
end
code[i_, n_] := If[LessEqual[n, -1.66e+167], N[(N[(N[(n * i), $MachinePrecision] * N[(0.16666666666666666 * i + 0.5), $MachinePrecision] + n), $MachinePrecision] * 100.0), $MachinePrecision], If[LessEqual[n, 4.2e-11], N[(1.0 / N[(N[(0.01 * i), $MachinePrecision] * N[(N[(0.5 / N[(n * n), $MachinePrecision]), $MachinePrecision] - N[(0.5 / n), $MachinePrecision]), $MachinePrecision] + N[(0.01 / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(100.0 * n), $MachinePrecision] * N[(N[(N[(N[(N[(0.3333333333333333 / N[(n * n), $MachinePrecision]), $MachinePrecision] + 0.16666666666666666), $MachinePrecision] - N[(0.5 / n), $MachinePrecision]), $MachinePrecision] * i + N[(0.5 - N[(0.5 / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * i + 1.0), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;n \leq -1.66 \cdot 10^{+167}:\\
\;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(0.16666666666666666, i, 0.5\right), n\right) \cdot 100\\

\mathbf{elif}\;n \leq 4.2 \cdot 10^{-11}:\\
\;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\

\mathbf{else}:\\
\;\;\;\;\left(100 \cdot n\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), i, 1\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if n < -1.6600000000000001e167

    1. Initial program 11.6%

      \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
    2. Add Preprocessing
    3. Taylor expanded in i around 0

      \[\leadsto 100 \cdot \color{blue}{\left(n + i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right)\right)} \]
    4. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto 100 \cdot \color{blue}{\left(i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n\right)} \]
    5. Applied rewrites63.6%

      \[\leadsto 100 \cdot \color{blue}{\mathsf{fma}\left(i \cdot n, \mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), n\right)} \]
    6. Taylor expanded in n around inf

      \[\leadsto 100 \cdot \mathsf{fma}\left(i \cdot n, \frac{1}{2} + \color{blue}{\frac{1}{6} \cdot i}, n\right) \]
    7. Step-by-step derivation
      1. Applied rewrites63.6%

        \[\leadsto 100 \cdot \mathsf{fma}\left(i \cdot n, \mathsf{fma}\left(0.16666666666666666, \color{blue}{i}, 0.5\right), n\right) \]

      if -1.6600000000000001e167 < n < 4.1999999999999997e-11

      1. Initial program 43.8%

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

          \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
        2. lift-/.f64N/A

          \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
        3. associate-*r/N/A

          \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
        4. lower-/.f64N/A

          \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
        5. lower-*.f6443.8

          \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
        6. lift--.f64N/A

          \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
        7. lift-pow.f64N/A

          \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
        8. pow-to-expN/A

          \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
        9. lower-expm1.f64N/A

          \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
        10. lower-*.f64N/A

          \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
        11. lift-+.f64N/A

          \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
        12. lower-log1p.f6483.2

          \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
      4. Applied rewrites83.2%

        \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
      5. Taylor expanded in i around 0

        \[\leadsto \frac{\color{blue}{100 \cdot i}}{\frac{i}{n}} \]
      6. Step-by-step derivation
        1. *-commutativeN/A

          \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
        2. lower-*.f6449.4

          \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
      7. Applied rewrites49.4%

        \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
      8. Step-by-step derivation
        1. lift-/.f64N/A

          \[\leadsto \color{blue}{\frac{i \cdot 100}{\frac{i}{n}}} \]
        2. clear-numN/A

          \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
        3. lower-/.f64N/A

          \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
        4. lower-/.f6449.3

          \[\leadsto \frac{1}{\color{blue}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
      9. Applied rewrites49.3%

        \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{100 \cdot i}}} \]
      10. Taylor expanded in i around 0

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{100} \cdot \left(i \cdot \left(\frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + \frac{1}{100} \cdot \frac{1}{n}}} \]
      11. Step-by-step derivation
        1. associate-*r*N/A

          \[\leadsto \frac{1}{\color{blue}{\left(\frac{1}{100} \cdot i\right) \cdot \left(\frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}\right)} + \frac{1}{100} \cdot \frac{1}{n}} \]
        2. lower-fma.f64N/A

          \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)}} \]
        3. lower-*.f64N/A

          \[\leadsto \frac{1}{\mathsf{fma}\left(\color{blue}{\frac{1}{100} \cdot i}, \frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
        4. lower--.f64N/A

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

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

          \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\color{blue}{\frac{1}{2}}}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
        7. lower-/.f64N/A

          \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \color{blue}{\frac{\frac{1}{2}}{{n}^{2}}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
        8. unpow2N/A

          \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{\color{blue}{n \cdot n}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
        9. lower-*.f64N/A

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

          \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \color{blue}{\frac{\frac{1}{2} \cdot 1}{n}}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
        11. metadata-evalN/A

          \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\color{blue}{\frac{1}{2}}}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
        12. lower-/.f64N/A

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

          \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\frac{1}{2}}{n}, \color{blue}{\frac{\frac{1}{100} \cdot 1}{n}}\right)} \]
        14. metadata-evalN/A

          \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\frac{1}{2}}{n}, \frac{\color{blue}{\frac{1}{100}}}{n}\right)} \]
        15. lower-/.f6463.3

          \[\leadsto \frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \color{blue}{\frac{0.01}{n}}\right)} \]
      12. Applied rewrites63.3%

        \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}} \]

      if 4.1999999999999997e-11 < n

      1. Initial program 17.1%

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

          \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
        2. lift-/.f64N/A

          \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
        3. associate-*r/N/A

          \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
        4. lower-/.f64N/A

          \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
        5. lower-*.f6417.1

          \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
        6. lift--.f64N/A

          \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
        7. lift-pow.f64N/A

          \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
        8. pow-to-expN/A

          \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
        9. lower-expm1.f64N/A

          \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
        10. lower-*.f64N/A

          \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
        11. lift-+.f64N/A

          \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
        12. lower-log1p.f6472.9

          \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
      4. Applied rewrites72.9%

        \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
      5. Step-by-step derivation
        1. lift-/.f64N/A

          \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
        2. lift-*.f64N/A

          \[\leadsto \frac{\color{blue}{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
        3. lift-expm1.f64N/A

          \[\leadsto \frac{100 \cdot \color{blue}{\left(e^{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n} - 1\right)}}{\frac{i}{n}} \]
        4. lift-*.f64N/A

          \[\leadsto \frac{100 \cdot \left(e^{\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
        5. lift-log1p.f64N/A

          \[\leadsto \frac{100 \cdot \left(e^{\color{blue}{\log \left(1 + \frac{i}{n}\right)} \cdot n} - 1\right)}{\frac{i}{n}} \]
        6. pow-to-expN/A

          \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
        7. lift-/.f64N/A

          \[\leadsto \frac{100 \cdot \left({\left(1 + \color{blue}{\frac{i}{n}}\right)}^{n} - 1\right)}{\frac{i}{n}} \]
        8. associate-*r/N/A

          \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
        9. lift-/.f64N/A

          \[\leadsto 100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\color{blue}{\frac{i}{n}}} \]
        10. *-commutativeN/A

          \[\leadsto \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \cdot 100} \]
        11. associate-/r/N/A

          \[\leadsto \color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot n\right)} \cdot 100 \]
        12. associate-*l*N/A

          \[\leadsto \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \left(n \cdot 100\right)} \]
        13. *-commutativeN/A

          \[\leadsto \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \color{blue}{\left(100 \cdot n\right)} \]
        14. lift-*.f64N/A

          \[\leadsto \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \color{blue}{\left(100 \cdot n\right)} \]
        15. lower-*.f64N/A

          \[\leadsto \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{i} \cdot \left(100 \cdot n\right)} \]
      6. Applied rewrites73.1%

        \[\leadsto \color{blue}{\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{i} \cdot \left(n \cdot 100\right)} \]
      7. Taylor expanded in i around 0

        \[\leadsto \color{blue}{\left(1 + i \cdot \left(\left(\frac{1}{2} + i \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right)} \cdot \left(n \cdot 100\right) \]
      8. Step-by-step derivation
        1. +-commutativeN/A

          \[\leadsto \color{blue}{\left(i \cdot \left(\left(\frac{1}{2} + i \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) - \frac{1}{2} \cdot \frac{1}{n}\right) + 1\right)} \cdot \left(n \cdot 100\right) \]
        2. *-commutativeN/A

          \[\leadsto \left(\color{blue}{\left(\left(\frac{1}{2} + i \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) - \frac{1}{2} \cdot \frac{1}{n}\right) \cdot i} + 1\right) \cdot \left(n \cdot 100\right) \]
        3. lower-fma.f64N/A

          \[\leadsto \color{blue}{\mathsf{fma}\left(\left(\frac{1}{2} + i \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) - \frac{1}{2} \cdot \frac{1}{n}, i, 1\right)} \cdot \left(n \cdot 100\right) \]
      9. Applied rewrites78.7%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), i, 1\right)} \cdot \left(n \cdot 100\right) \]
    8. Recombined 3 regimes into one program.
    9. Final simplification68.1%

      \[\leadsto \begin{array}{l} \mathbf{if}\;n \leq -1.66 \cdot 10^{+167}:\\ \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(0.16666666666666666, i, 0.5\right), n\right) \cdot 100\\ \mathbf{elif}\;n \leq 4.2 \cdot 10^{-11}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(100 \cdot n\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), i, 1\right)\\ \end{array} \]
    10. Add Preprocessing

    Alternative 8: 70.0% accurate, 1.8× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;n \leq -1.66 \cdot 10^{+167}:\\ \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(0.16666666666666666, i, 0.5\right), n\right) \cdot 100\\ \mathbf{elif}\;n \leq 4.2 \cdot 10^{-11}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), n\right) \cdot 100\\ \end{array} \end{array} \]
    (FPCore (i n)
     :precision binary64
     (if (<= n -1.66e+167)
       (* (fma (* n i) (fma 0.16666666666666666 i 0.5) n) 100.0)
       (if (<= n 4.2e-11)
         (/ 1.0 (fma (* 0.01 i) (- (/ 0.5 (* n n)) (/ 0.5 n)) (/ 0.01 n)))
         (*
          (fma
           (* n i)
           (fma
            (- (+ (/ 0.3333333333333333 (* n n)) 0.16666666666666666) (/ 0.5 n))
            i
            (- 0.5 (/ 0.5 n)))
           n)
          100.0))))
    double code(double i, double n) {
    	double tmp;
    	if (n <= -1.66e+167) {
    		tmp = fma((n * i), fma(0.16666666666666666, i, 0.5), n) * 100.0;
    	} else if (n <= 4.2e-11) {
    		tmp = 1.0 / fma((0.01 * i), ((0.5 / (n * n)) - (0.5 / n)), (0.01 / n));
    	} else {
    		tmp = fma((n * i), fma((((0.3333333333333333 / (n * n)) + 0.16666666666666666) - (0.5 / n)), i, (0.5 - (0.5 / n))), n) * 100.0;
    	}
    	return tmp;
    }
    
    function code(i, n)
    	tmp = 0.0
    	if (n <= -1.66e+167)
    		tmp = Float64(fma(Float64(n * i), fma(0.16666666666666666, i, 0.5), n) * 100.0);
    	elseif (n <= 4.2e-11)
    		tmp = Float64(1.0 / fma(Float64(0.01 * i), Float64(Float64(0.5 / Float64(n * n)) - Float64(0.5 / n)), Float64(0.01 / n)));
    	else
    		tmp = Float64(fma(Float64(n * i), fma(Float64(Float64(Float64(0.3333333333333333 / Float64(n * n)) + 0.16666666666666666) - Float64(0.5 / n)), i, Float64(0.5 - Float64(0.5 / n))), n) * 100.0);
    	end
    	return tmp
    end
    
    code[i_, n_] := If[LessEqual[n, -1.66e+167], N[(N[(N[(n * i), $MachinePrecision] * N[(0.16666666666666666 * i + 0.5), $MachinePrecision] + n), $MachinePrecision] * 100.0), $MachinePrecision], If[LessEqual[n, 4.2e-11], N[(1.0 / N[(N[(0.01 * i), $MachinePrecision] * N[(N[(0.5 / N[(n * n), $MachinePrecision]), $MachinePrecision] - N[(0.5 / n), $MachinePrecision]), $MachinePrecision] + N[(0.01 / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(n * i), $MachinePrecision] * N[(N[(N[(N[(0.3333333333333333 / N[(n * n), $MachinePrecision]), $MachinePrecision] + 0.16666666666666666), $MachinePrecision] - N[(0.5 / n), $MachinePrecision]), $MachinePrecision] * i + N[(0.5 - N[(0.5 / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + n), $MachinePrecision] * 100.0), $MachinePrecision]]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;n \leq -1.66 \cdot 10^{+167}:\\
    \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(0.16666666666666666, i, 0.5\right), n\right) \cdot 100\\
    
    \mathbf{elif}\;n \leq 4.2 \cdot 10^{-11}:\\
    \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\
    
    \mathbf{else}:\\
    \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), n\right) \cdot 100\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 3 regimes
    2. if n < -1.6600000000000001e167

      1. Initial program 11.6%

        \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
      2. Add Preprocessing
      3. Taylor expanded in i around 0

        \[\leadsto 100 \cdot \color{blue}{\left(n + i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right)\right)} \]
      4. Step-by-step derivation
        1. +-commutativeN/A

          \[\leadsto 100 \cdot \color{blue}{\left(i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n\right)} \]
      5. Applied rewrites63.6%

        \[\leadsto 100 \cdot \color{blue}{\mathsf{fma}\left(i \cdot n, \mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), n\right)} \]
      6. Taylor expanded in n around inf

        \[\leadsto 100 \cdot \mathsf{fma}\left(i \cdot n, \frac{1}{2} + \color{blue}{\frac{1}{6} \cdot i}, n\right) \]
      7. Step-by-step derivation
        1. Applied rewrites63.6%

          \[\leadsto 100 \cdot \mathsf{fma}\left(i \cdot n, \mathsf{fma}\left(0.16666666666666666, \color{blue}{i}, 0.5\right), n\right) \]

        if -1.6600000000000001e167 < n < 4.1999999999999997e-11

        1. Initial program 43.8%

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

            \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
          2. lift-/.f64N/A

            \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
          3. associate-*r/N/A

            \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
          4. lower-/.f64N/A

            \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
          5. lower-*.f6443.8

            \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
          6. lift--.f64N/A

            \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
          7. lift-pow.f64N/A

            \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
          8. pow-to-expN/A

            \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
          9. lower-expm1.f64N/A

            \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
          10. lower-*.f64N/A

            \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
          11. lift-+.f64N/A

            \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
          12. lower-log1p.f6483.2

            \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
        4. Applied rewrites83.2%

          \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
        5. Taylor expanded in i around 0

          \[\leadsto \frac{\color{blue}{100 \cdot i}}{\frac{i}{n}} \]
        6. Step-by-step derivation
          1. *-commutativeN/A

            \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
          2. lower-*.f6449.4

            \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
        7. Applied rewrites49.4%

          \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
        8. Step-by-step derivation
          1. lift-/.f64N/A

            \[\leadsto \color{blue}{\frac{i \cdot 100}{\frac{i}{n}}} \]
          2. clear-numN/A

            \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
          3. lower-/.f64N/A

            \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
          4. lower-/.f6449.3

            \[\leadsto \frac{1}{\color{blue}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
        9. Applied rewrites49.3%

          \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{100 \cdot i}}} \]
        10. Taylor expanded in i around 0

          \[\leadsto \frac{1}{\color{blue}{\frac{1}{100} \cdot \left(i \cdot \left(\frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + \frac{1}{100} \cdot \frac{1}{n}}} \]
        11. Step-by-step derivation
          1. associate-*r*N/A

            \[\leadsto \frac{1}{\color{blue}{\left(\frac{1}{100} \cdot i\right) \cdot \left(\frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}\right)} + \frac{1}{100} \cdot \frac{1}{n}} \]
          2. lower-fma.f64N/A

            \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)}} \]
          3. lower-*.f64N/A

            \[\leadsto \frac{1}{\mathsf{fma}\left(\color{blue}{\frac{1}{100} \cdot i}, \frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
          4. lower--.f64N/A

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

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

            \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\color{blue}{\frac{1}{2}}}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
          7. lower-/.f64N/A

            \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \color{blue}{\frac{\frac{1}{2}}{{n}^{2}}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
          8. unpow2N/A

            \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{\color{blue}{n \cdot n}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
          9. lower-*.f64N/A

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

            \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \color{blue}{\frac{\frac{1}{2} \cdot 1}{n}}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
          11. metadata-evalN/A

            \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\color{blue}{\frac{1}{2}}}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
          12. lower-/.f64N/A

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

            \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\frac{1}{2}}{n}, \color{blue}{\frac{\frac{1}{100} \cdot 1}{n}}\right)} \]
          14. metadata-evalN/A

            \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\frac{1}{2}}{n}, \frac{\color{blue}{\frac{1}{100}}}{n}\right)} \]
          15. lower-/.f6463.3

            \[\leadsto \frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \color{blue}{\frac{0.01}{n}}\right)} \]
        12. Applied rewrites63.3%

          \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}} \]

        if 4.1999999999999997e-11 < n

        1. Initial program 17.1%

          \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
        2. Add Preprocessing
        3. Taylor expanded in i around 0

          \[\leadsto 100 \cdot \color{blue}{\left(n + i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right)\right)} \]
        4. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto 100 \cdot \color{blue}{\left(i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n\right)} \]
        5. Applied rewrites78.7%

          \[\leadsto 100 \cdot \color{blue}{\mathsf{fma}\left(i \cdot n, \mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), n\right)} \]
      8. Recombined 3 regimes into one program.
      9. Final simplification68.1%

        \[\leadsto \begin{array}{l} \mathbf{if}\;n \leq -1.66 \cdot 10^{+167}:\\ \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(0.16666666666666666, i, 0.5\right), n\right) \cdot 100\\ \mathbf{elif}\;n \leq 4.2 \cdot 10^{-11}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), n\right) \cdot 100\\ \end{array} \]
      10. Add Preprocessing

      Alternative 9: 69.3% accurate, 1.9× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;n \leq -1.66 \cdot 10^{+167}:\\ \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(0.16666666666666666, i, 0.5\right), n\right) \cdot 100\\ \mathbf{elif}\;n \leq 1.3 \cdot 10^{+54}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(\mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot n\right) \cdot 100\\ \end{array} \end{array} \]
      (FPCore (i n)
       :precision binary64
       (if (<= n -1.66e+167)
         (* (fma (* n i) (fma 0.16666666666666666 i 0.5) n) 100.0)
         (if (<= n 1.3e+54)
           (/ 1.0 (fma (* 0.01 i) (- (/ 0.5 (* n n)) (/ 0.5 n)) (/ 0.01 n)))
           (* (* (fma (fma 0.16666666666666666 i 0.5) i 1.0) n) 100.0))))
      double code(double i, double n) {
      	double tmp;
      	if (n <= -1.66e+167) {
      		tmp = fma((n * i), fma(0.16666666666666666, i, 0.5), n) * 100.0;
      	} else if (n <= 1.3e+54) {
      		tmp = 1.0 / fma((0.01 * i), ((0.5 / (n * n)) - (0.5 / n)), (0.01 / n));
      	} else {
      		tmp = (fma(fma(0.16666666666666666, i, 0.5), i, 1.0) * n) * 100.0;
      	}
      	return tmp;
      }
      
      function code(i, n)
      	tmp = 0.0
      	if (n <= -1.66e+167)
      		tmp = Float64(fma(Float64(n * i), fma(0.16666666666666666, i, 0.5), n) * 100.0);
      	elseif (n <= 1.3e+54)
      		tmp = Float64(1.0 / fma(Float64(0.01 * i), Float64(Float64(0.5 / Float64(n * n)) - Float64(0.5 / n)), Float64(0.01 / n)));
      	else
      		tmp = Float64(Float64(fma(fma(0.16666666666666666, i, 0.5), i, 1.0) * n) * 100.0);
      	end
      	return tmp
      end
      
      code[i_, n_] := If[LessEqual[n, -1.66e+167], N[(N[(N[(n * i), $MachinePrecision] * N[(0.16666666666666666 * i + 0.5), $MachinePrecision] + n), $MachinePrecision] * 100.0), $MachinePrecision], If[LessEqual[n, 1.3e+54], N[(1.0 / N[(N[(0.01 * i), $MachinePrecision] * N[(N[(0.5 / N[(n * n), $MachinePrecision]), $MachinePrecision] - N[(0.5 / n), $MachinePrecision]), $MachinePrecision] + N[(0.01 / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(N[(0.16666666666666666 * i + 0.5), $MachinePrecision] * i + 1.0), $MachinePrecision] * n), $MachinePrecision] * 100.0), $MachinePrecision]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      \mathbf{if}\;n \leq -1.66 \cdot 10^{+167}:\\
      \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(0.16666666666666666, i, 0.5\right), n\right) \cdot 100\\
      
      \mathbf{elif}\;n \leq 1.3 \cdot 10^{+54}:\\
      \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\
      
      \mathbf{else}:\\
      \;\;\;\;\left(\mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot n\right) \cdot 100\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 3 regimes
      2. if n < -1.6600000000000001e167

        1. Initial program 11.6%

          \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
        2. Add Preprocessing
        3. Taylor expanded in i around 0

          \[\leadsto 100 \cdot \color{blue}{\left(n + i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right)\right)} \]
        4. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto 100 \cdot \color{blue}{\left(i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n\right)} \]
        5. Applied rewrites63.6%

          \[\leadsto 100 \cdot \color{blue}{\mathsf{fma}\left(i \cdot n, \mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), n\right)} \]
        6. Taylor expanded in n around inf

          \[\leadsto 100 \cdot \mathsf{fma}\left(i \cdot n, \frac{1}{2} + \color{blue}{\frac{1}{6} \cdot i}, n\right) \]
        7. Step-by-step derivation
          1. Applied rewrites63.6%

            \[\leadsto 100 \cdot \mathsf{fma}\left(i \cdot n, \mathsf{fma}\left(0.16666666666666666, \color{blue}{i}, 0.5\right), n\right) \]

          if -1.6600000000000001e167 < n < 1.30000000000000003e54

          1. Initial program 40.6%

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

              \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
            2. lift-/.f64N/A

              \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
            3. associate-*r/N/A

              \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
            4. lower-/.f64N/A

              \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
            5. lower-*.f6440.7

              \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
            6. lift--.f64N/A

              \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
            7. lift-pow.f64N/A

              \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
            8. pow-to-expN/A

              \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
            9. lower-expm1.f64N/A

              \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
            10. lower-*.f64N/A

              \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
            11. lift-+.f64N/A

              \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
            12. lower-log1p.f6484.8

              \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
          4. Applied rewrites84.8%

            \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
          5. Taylor expanded in i around 0

            \[\leadsto \frac{\color{blue}{100 \cdot i}}{\frac{i}{n}} \]
          6. Step-by-step derivation
            1. *-commutativeN/A

              \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
            2. lower-*.f6452.0

              \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
          7. Applied rewrites52.0%

            \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
          8. Step-by-step derivation
            1. lift-/.f64N/A

              \[\leadsto \color{blue}{\frac{i \cdot 100}{\frac{i}{n}}} \]
            2. clear-numN/A

              \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
            3. lower-/.f64N/A

              \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
            4. lower-/.f6451.9

              \[\leadsto \frac{1}{\color{blue}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
          9. Applied rewrites51.9%

            \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{100 \cdot i}}} \]
          10. Taylor expanded in i around 0

            \[\leadsto \frac{1}{\color{blue}{\frac{1}{100} \cdot \left(i \cdot \left(\frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + \frac{1}{100} \cdot \frac{1}{n}}} \]
          11. Step-by-step derivation
            1. associate-*r*N/A

              \[\leadsto \frac{1}{\color{blue}{\left(\frac{1}{100} \cdot i\right) \cdot \left(\frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}\right)} + \frac{1}{100} \cdot \frac{1}{n}} \]
            2. lower-fma.f64N/A

              \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)}} \]
            3. lower-*.f64N/A

              \[\leadsto \frac{1}{\mathsf{fma}\left(\color{blue}{\frac{1}{100} \cdot i}, \frac{1}{2} \cdot \frac{1}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
            4. lower--.f64N/A

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

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

              \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\color{blue}{\frac{1}{2}}}{{n}^{2}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
            7. lower-/.f64N/A

              \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \color{blue}{\frac{\frac{1}{2}}{{n}^{2}}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
            8. unpow2N/A

              \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{\color{blue}{n \cdot n}} - \frac{1}{2} \cdot \frac{1}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
            9. lower-*.f64N/A

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

              \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \color{blue}{\frac{\frac{1}{2} \cdot 1}{n}}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
            11. metadata-evalN/A

              \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\color{blue}{\frac{1}{2}}}{n}, \frac{1}{100} \cdot \frac{1}{n}\right)} \]
            12. lower-/.f64N/A

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

              \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\frac{1}{2}}{n}, \color{blue}{\frac{\frac{1}{100} \cdot 1}{n}}\right)} \]
            14. metadata-evalN/A

              \[\leadsto \frac{1}{\mathsf{fma}\left(\frac{1}{100} \cdot i, \frac{\frac{1}{2}}{n \cdot n} - \frac{\frac{1}{2}}{n}, \frac{\color{blue}{\frac{1}{100}}}{n}\right)} \]
            15. lower-/.f6465.0

              \[\leadsto \frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \color{blue}{\frac{0.01}{n}}\right)} \]
          12. Applied rewrites65.0%

            \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}} \]

          if 1.30000000000000003e54 < n

          1. Initial program 18.6%

            \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
          2. Add Preprocessing
          3. Taylor expanded in i around 0

            \[\leadsto 100 \cdot \color{blue}{\left(n + i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right)\right)} \]
          4. Step-by-step derivation
            1. +-commutativeN/A

              \[\leadsto 100 \cdot \color{blue}{\left(i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n\right)} \]
          5. Applied rewrites78.2%

            \[\leadsto 100 \cdot \color{blue}{\mathsf{fma}\left(i \cdot n, \mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), n\right)} \]
          6. Taylor expanded in n around inf

            \[\leadsto 100 \cdot \left(n \cdot \color{blue}{\left(1 + i \cdot \left(\frac{1}{2} + \frac{1}{6} \cdot i\right)\right)}\right) \]
          7. Step-by-step derivation
            1. Applied rewrites78.2%

              \[\leadsto 100 \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot \color{blue}{n}\right) \]
          8. Recombined 3 regimes into one program.
          9. Final simplification68.0%

            \[\leadsto \begin{array}{l} \mathbf{if}\;n \leq -1.66 \cdot 10^{+167}:\\ \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(0.16666666666666666, i, 0.5\right), n\right) \cdot 100\\ \mathbf{elif}\;n \leq 1.3 \cdot 10^{+54}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(0.01 \cdot i, \frac{0.5}{n \cdot n} - \frac{0.5}{n}, \frac{0.01}{n}\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(\mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot n\right) \cdot 100\\ \end{array} \]
          10. Add Preprocessing

          Alternative 10: 64.1% accurate, 2.0× speedup?

          \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;i \leq -7.2 \cdot 10^{+31}:\\ \;\;\;\;\frac{0}{i}\\ \mathbf{elif}\;i \leq 9200000000000:\\ \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(0.16666666666666666, i, 0.5\right), n\right) \cdot 100\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-0.5, i, -0.5\right), i, \mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot n\right), n, \left(i \cdot i\right) \cdot 0.3333333333333333\right)}{n} \cdot 100\\ \end{array} \end{array} \]
          (FPCore (i n)
           :precision binary64
           (if (<= i -7.2e+31)
             (/ 0.0 i)
             (if (<= i 9200000000000.0)
               (* (fma (* n i) (fma 0.16666666666666666 i 0.5) n) 100.0)
               (*
                (/
                 (fma
                  (fma
                   (fma -0.5 i -0.5)
                   i
                   (* (fma (fma 0.16666666666666666 i 0.5) i 1.0) n))
                  n
                  (* (* i i) 0.3333333333333333))
                 n)
                100.0))))
          double code(double i, double n) {
          	double tmp;
          	if (i <= -7.2e+31) {
          		tmp = 0.0 / i;
          	} else if (i <= 9200000000000.0) {
          		tmp = fma((n * i), fma(0.16666666666666666, i, 0.5), n) * 100.0;
          	} else {
          		tmp = (fma(fma(fma(-0.5, i, -0.5), i, (fma(fma(0.16666666666666666, i, 0.5), i, 1.0) * n)), n, ((i * i) * 0.3333333333333333)) / n) * 100.0;
          	}
          	return tmp;
          }
          
          function code(i, n)
          	tmp = 0.0
          	if (i <= -7.2e+31)
          		tmp = Float64(0.0 / i);
          	elseif (i <= 9200000000000.0)
          		tmp = Float64(fma(Float64(n * i), fma(0.16666666666666666, i, 0.5), n) * 100.0);
          	else
          		tmp = Float64(Float64(fma(fma(fma(-0.5, i, -0.5), i, Float64(fma(fma(0.16666666666666666, i, 0.5), i, 1.0) * n)), n, Float64(Float64(i * i) * 0.3333333333333333)) / n) * 100.0);
          	end
          	return tmp
          end
          
          code[i_, n_] := If[LessEqual[i, -7.2e+31], N[(0.0 / i), $MachinePrecision], If[LessEqual[i, 9200000000000.0], N[(N[(N[(n * i), $MachinePrecision] * N[(0.16666666666666666 * i + 0.5), $MachinePrecision] + n), $MachinePrecision] * 100.0), $MachinePrecision], N[(N[(N[(N[(N[(-0.5 * i + -0.5), $MachinePrecision] * i + N[(N[(N[(0.16666666666666666 * i + 0.5), $MachinePrecision] * i + 1.0), $MachinePrecision] * n), $MachinePrecision]), $MachinePrecision] * n + N[(N[(i * i), $MachinePrecision] * 0.3333333333333333), $MachinePrecision]), $MachinePrecision] / n), $MachinePrecision] * 100.0), $MachinePrecision]]]
          
          \begin{array}{l}
          
          \\
          \begin{array}{l}
          \mathbf{if}\;i \leq -7.2 \cdot 10^{+31}:\\
          \;\;\;\;\frac{0}{i}\\
          
          \mathbf{elif}\;i \leq 9200000000000:\\
          \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(0.16666666666666666, i, 0.5\right), n\right) \cdot 100\\
          
          \mathbf{else}:\\
          \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-0.5, i, -0.5\right), i, \mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot n\right), n, \left(i \cdot i\right) \cdot 0.3333333333333333\right)}{n} \cdot 100\\
          
          
          \end{array}
          \end{array}
          
          Derivation
          1. Split input into 3 regimes
          2. if i < -7.19999999999999992e31

            1. Initial program 74.9%

              \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
            2. Add Preprocessing
            3. Step-by-step derivation
              1. lift-/.f64N/A

                \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
              2. lift--.f64N/A

                \[\leadsto 100 \cdot \frac{\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n} - 1}}{\frac{i}{n}} \]
              3. div-subN/A

                \[\leadsto 100 \cdot \color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \frac{1}{\frac{i}{n}}\right)} \]
              4. lift-/.f64N/A

                \[\leadsto 100 \cdot \left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \frac{1}{\color{blue}{\frac{i}{n}}}\right) \]
              5. clear-numN/A

                \[\leadsto 100 \cdot \left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \color{blue}{\frac{n}{i}}\right) \]
              6. sub-negN/A

                \[\leadsto 100 \cdot \color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} + \left(\mathsf{neg}\left(\frac{n}{i}\right)\right)\right)} \]
              7. +-commutativeN/A

                \[\leadsto 100 \cdot \color{blue}{\left(\left(\mathsf{neg}\left(\frac{n}{i}\right)\right) + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right)} \]
              8. clear-numN/A

                \[\leadsto 100 \cdot \left(\left(\mathsf{neg}\left(\color{blue}{\frac{1}{\frac{i}{n}}}\right)\right) + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
              9. associate-/r/N/A

                \[\leadsto 100 \cdot \left(\left(\mathsf{neg}\left(\color{blue}{\frac{1}{i} \cdot n}\right)\right) + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
              10. distribute-lft-neg-inN/A

                \[\leadsto 100 \cdot \left(\color{blue}{\left(\mathsf{neg}\left(\frac{1}{i}\right)\right) \cdot n} + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
              11. distribute-frac-neg2N/A

                \[\leadsto 100 \cdot \left(\color{blue}{\frac{1}{\mathsf{neg}\left(i\right)}} \cdot n + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
              12. lower-fma.f64N/A

                \[\leadsto 100 \cdot \color{blue}{\mathsf{fma}\left(\frac{1}{\mathsf{neg}\left(i\right)}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right)} \]
              13. frac-2negN/A

                \[\leadsto 100 \cdot \mathsf{fma}\left(\color{blue}{\frac{\mathsf{neg}\left(1\right)}{\mathsf{neg}\left(\left(\mathsf{neg}\left(i\right)\right)\right)}}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
              14. remove-double-negN/A

                \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{\mathsf{neg}\left(1\right)}{\color{blue}{i}}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
              15. lower-/.f64N/A

                \[\leadsto 100 \cdot \mathsf{fma}\left(\color{blue}{\frac{\mathsf{neg}\left(1\right)}{i}}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
              16. metadata-evalN/A

                \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{\color{blue}{-1}}{i}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
              17. lift-/.f64N/A

                \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{-1}{i}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\color{blue}{\frac{i}{n}}}\right) \]
              18. associate-/r/N/A

                \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{-1}{i}, n, \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{i} \cdot n}\right) \]
              19. lower-*.f64N/A

                \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{-1}{i}, n, \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{i} \cdot n}\right) \]
            4. Applied rewrites66.4%

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

              \[\leadsto \color{blue}{100 \cdot \frac{n + -1 \cdot n}{i}} \]
            6. Step-by-step derivation
              1. associate-*r/N/A

                \[\leadsto \color{blue}{\frac{100 \cdot \left(n + -1 \cdot n\right)}{i}} \]
              2. distribute-rgt1-inN/A

                \[\leadsto \frac{100 \cdot \color{blue}{\left(\left(-1 + 1\right) \cdot n\right)}}{i} \]
              3. metadata-evalN/A

                \[\leadsto \frac{100 \cdot \left(\color{blue}{0} \cdot n\right)}{i} \]
              4. mul0-lftN/A

                \[\leadsto \frac{100 \cdot \color{blue}{0}}{i} \]
              5. metadata-evalN/A

                \[\leadsto \frac{\color{blue}{0}}{i} \]
              6. lower-/.f6431.5

                \[\leadsto \color{blue}{\frac{0}{i}} \]
            7. Applied rewrites31.5%

              \[\leadsto \color{blue}{\frac{0}{i}} \]

            if -7.19999999999999992e31 < i < 9.2e12

            1. Initial program 12.0%

              \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
            2. Add Preprocessing
            3. Taylor expanded in i around 0

              \[\leadsto 100 \cdot \color{blue}{\left(n + i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right)\right)} \]
            4. Step-by-step derivation
              1. +-commutativeN/A

                \[\leadsto 100 \cdot \color{blue}{\left(i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n\right)} \]
            5. Applied rewrites68.7%

              \[\leadsto 100 \cdot \color{blue}{\mathsf{fma}\left(i \cdot n, \mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), n\right)} \]
            6. Taylor expanded in n around inf

              \[\leadsto 100 \cdot \mathsf{fma}\left(i \cdot n, \frac{1}{2} + \color{blue}{\frac{1}{6} \cdot i}, n\right) \]
            7. Step-by-step derivation
              1. Applied rewrites78.0%

                \[\leadsto 100 \cdot \mathsf{fma}\left(i \cdot n, \mathsf{fma}\left(0.16666666666666666, \color{blue}{i}, 0.5\right), n\right) \]

              if 9.2e12 < i

              1. Initial program 44.7%

                \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
              2. Add Preprocessing
              3. Taylor expanded in i around 0

                \[\leadsto 100 \cdot \color{blue}{\left(n + i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right)\right)} \]
              4. Step-by-step derivation
                1. +-commutativeN/A

                  \[\leadsto 100 \cdot \color{blue}{\left(i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n\right)} \]
              5. Applied rewrites39.9%

                \[\leadsto 100 \cdot \color{blue}{\mathsf{fma}\left(i \cdot n, \mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), n\right)} \]
              6. Taylor expanded in n around 0

                \[\leadsto 100 \cdot \frac{\frac{1}{3} \cdot {i}^{2} + n \cdot \left(i \cdot \left(\frac{-1}{2} \cdot i - \frac{1}{2}\right) + n \cdot \left(1 + i \cdot \left(\frac{1}{2} + \frac{1}{6} \cdot i\right)\right)\right)}{\color{blue}{n}} \]
              7. Step-by-step derivation
                1. Applied rewrites49.2%

                  \[\leadsto 100 \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-0.5, i, -0.5\right), i, \mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot n\right), n, \left(i \cdot i\right) \cdot 0.3333333333333333\right)}{\color{blue}{n}} \]
              8. Recombined 3 regimes into one program.
              9. Final simplification63.1%

                \[\leadsto \begin{array}{l} \mathbf{if}\;i \leq -7.2 \cdot 10^{+31}:\\ \;\;\;\;\frac{0}{i}\\ \mathbf{elif}\;i \leq 9200000000000:\\ \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(0.16666666666666666, i, 0.5\right), n\right) \cdot 100\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(-0.5, i, -0.5\right), i, \mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot n\right), n, \left(i \cdot i\right) \cdot 0.3333333333333333\right)}{n} \cdot 100\\ \end{array} \]
              10. Add Preprocessing

              Alternative 11: 66.1% accurate, 3.1× speedup?

              \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;n \leq -1.8 \cdot 10^{+56}:\\ \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(0.16666666666666666, i, 0.5\right), n\right) \cdot 100\\ \mathbf{elif}\;n \leq -8 \cdot 10^{-251}:\\ \;\;\;\;\frac{100 \cdot i}{\frac{i}{n}}\\ \mathbf{elif}\;n \leq 5.2 \cdot 10^{-250}:\\ \;\;\;\;\frac{0}{i}\\ \mathbf{elif}\;n \leq 1.45 \cdot 10^{+21}:\\ \;\;\;\;\left(100 \cdot i\right) \cdot \frac{n}{i}\\ \mathbf{else}:\\ \;\;\;\;\left(\mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot n\right) \cdot 100\\ \end{array} \end{array} \]
              (FPCore (i n)
               :precision binary64
               (if (<= n -1.8e+56)
                 (* (fma (* n i) (fma 0.16666666666666666 i 0.5) n) 100.0)
                 (if (<= n -8e-251)
                   (/ (* 100.0 i) (/ i n))
                   (if (<= n 5.2e-250)
                     (/ 0.0 i)
                     (if (<= n 1.45e+21)
                       (* (* 100.0 i) (/ n i))
                       (* (* (fma (fma 0.16666666666666666 i 0.5) i 1.0) n) 100.0))))))
              double code(double i, double n) {
              	double tmp;
              	if (n <= -1.8e+56) {
              		tmp = fma((n * i), fma(0.16666666666666666, i, 0.5), n) * 100.0;
              	} else if (n <= -8e-251) {
              		tmp = (100.0 * i) / (i / n);
              	} else if (n <= 5.2e-250) {
              		tmp = 0.0 / i;
              	} else if (n <= 1.45e+21) {
              		tmp = (100.0 * i) * (n / i);
              	} else {
              		tmp = (fma(fma(0.16666666666666666, i, 0.5), i, 1.0) * n) * 100.0;
              	}
              	return tmp;
              }
              
              function code(i, n)
              	tmp = 0.0
              	if (n <= -1.8e+56)
              		tmp = Float64(fma(Float64(n * i), fma(0.16666666666666666, i, 0.5), n) * 100.0);
              	elseif (n <= -8e-251)
              		tmp = Float64(Float64(100.0 * i) / Float64(i / n));
              	elseif (n <= 5.2e-250)
              		tmp = Float64(0.0 / i);
              	elseif (n <= 1.45e+21)
              		tmp = Float64(Float64(100.0 * i) * Float64(n / i));
              	else
              		tmp = Float64(Float64(fma(fma(0.16666666666666666, i, 0.5), i, 1.0) * n) * 100.0);
              	end
              	return tmp
              end
              
              code[i_, n_] := If[LessEqual[n, -1.8e+56], N[(N[(N[(n * i), $MachinePrecision] * N[(0.16666666666666666 * i + 0.5), $MachinePrecision] + n), $MachinePrecision] * 100.0), $MachinePrecision], If[LessEqual[n, -8e-251], N[(N[(100.0 * i), $MachinePrecision] / N[(i / n), $MachinePrecision]), $MachinePrecision], If[LessEqual[n, 5.2e-250], N[(0.0 / i), $MachinePrecision], If[LessEqual[n, 1.45e+21], N[(N[(100.0 * i), $MachinePrecision] * N[(n / i), $MachinePrecision]), $MachinePrecision], N[(N[(N[(N[(0.16666666666666666 * i + 0.5), $MachinePrecision] * i + 1.0), $MachinePrecision] * n), $MachinePrecision] * 100.0), $MachinePrecision]]]]]
              
              \begin{array}{l}
              
              \\
              \begin{array}{l}
              \mathbf{if}\;n \leq -1.8 \cdot 10^{+56}:\\
              \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(0.16666666666666666, i, 0.5\right), n\right) \cdot 100\\
              
              \mathbf{elif}\;n \leq -8 \cdot 10^{-251}:\\
              \;\;\;\;\frac{100 \cdot i}{\frac{i}{n}}\\
              
              \mathbf{elif}\;n \leq 5.2 \cdot 10^{-250}:\\
              \;\;\;\;\frac{0}{i}\\
              
              \mathbf{elif}\;n \leq 1.45 \cdot 10^{+21}:\\
              \;\;\;\;\left(100 \cdot i\right) \cdot \frac{n}{i}\\
              
              \mathbf{else}:\\
              \;\;\;\;\left(\mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot n\right) \cdot 100\\
              
              
              \end{array}
              \end{array}
              
              Derivation
              1. Split input into 5 regimes
              2. if n < -1.79999999999999999e56

                1. Initial program 26.5%

                  \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
                2. Add Preprocessing
                3. Taylor expanded in i around 0

                  \[\leadsto 100 \cdot \color{blue}{\left(n + i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right)\right)} \]
                4. Step-by-step derivation
                  1. +-commutativeN/A

                    \[\leadsto 100 \cdot \color{blue}{\left(i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n\right)} \]
                5. Applied rewrites58.4%

                  \[\leadsto 100 \cdot \color{blue}{\mathsf{fma}\left(i \cdot n, \mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), n\right)} \]
                6. Taylor expanded in n around inf

                  \[\leadsto 100 \cdot \mathsf{fma}\left(i \cdot n, \frac{1}{2} + \color{blue}{\frac{1}{6} \cdot i}, n\right) \]
                7. Step-by-step derivation
                  1. Applied rewrites58.4%

                    \[\leadsto 100 \cdot \mathsf{fma}\left(i \cdot n, \mathsf{fma}\left(0.16666666666666666, \color{blue}{i}, 0.5\right), n\right) \]

                  if -1.79999999999999999e56 < n < -8.00000000000000012e-251

                  1. Initial program 47.7%

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

                      \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
                    2. lift-/.f64N/A

                      \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
                    3. associate-*r/N/A

                      \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
                    4. lower-/.f64N/A

                      \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
                    5. lower-*.f6447.8

                      \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
                    6. lift--.f64N/A

                      \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
                    7. lift-pow.f64N/A

                      \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
                    8. pow-to-expN/A

                      \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
                    9. lower-expm1.f64N/A

                      \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
                    10. lower-*.f64N/A

                      \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
                    11. lift-+.f64N/A

                      \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
                    12. lower-log1p.f6487.2

                      \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
                  4. Applied rewrites87.2%

                    \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
                  5. Taylor expanded in i around 0

                    \[\leadsto \frac{\color{blue}{100 \cdot i}}{\frac{i}{n}} \]
                  6. Step-by-step derivation
                    1. *-commutativeN/A

                      \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
                    2. lower-*.f6456.9

                      \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
                  7. Applied rewrites56.9%

                    \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]

                  if -8.00000000000000012e-251 < n < 5.20000000000000016e-250

                  1. Initial program 84.2%

                    \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
                  2. Add Preprocessing
                  3. Step-by-step derivation
                    1. lift-/.f64N/A

                      \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
                    2. lift--.f64N/A

                      \[\leadsto 100 \cdot \frac{\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n} - 1}}{\frac{i}{n}} \]
                    3. div-subN/A

                      \[\leadsto 100 \cdot \color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \frac{1}{\frac{i}{n}}\right)} \]
                    4. lift-/.f64N/A

                      \[\leadsto 100 \cdot \left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \frac{1}{\color{blue}{\frac{i}{n}}}\right) \]
                    5. clear-numN/A

                      \[\leadsto 100 \cdot \left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \color{blue}{\frac{n}{i}}\right) \]
                    6. sub-negN/A

                      \[\leadsto 100 \cdot \color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} + \left(\mathsf{neg}\left(\frac{n}{i}\right)\right)\right)} \]
                    7. +-commutativeN/A

                      \[\leadsto 100 \cdot \color{blue}{\left(\left(\mathsf{neg}\left(\frac{n}{i}\right)\right) + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right)} \]
                    8. clear-numN/A

                      \[\leadsto 100 \cdot \left(\left(\mathsf{neg}\left(\color{blue}{\frac{1}{\frac{i}{n}}}\right)\right) + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                    9. associate-/r/N/A

                      \[\leadsto 100 \cdot \left(\left(\mathsf{neg}\left(\color{blue}{\frac{1}{i} \cdot n}\right)\right) + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                    10. distribute-lft-neg-inN/A

                      \[\leadsto 100 \cdot \left(\color{blue}{\left(\mathsf{neg}\left(\frac{1}{i}\right)\right) \cdot n} + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                    11. distribute-frac-neg2N/A

                      \[\leadsto 100 \cdot \left(\color{blue}{\frac{1}{\mathsf{neg}\left(i\right)}} \cdot n + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                    12. lower-fma.f64N/A

                      \[\leadsto 100 \cdot \color{blue}{\mathsf{fma}\left(\frac{1}{\mathsf{neg}\left(i\right)}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right)} \]
                    13. frac-2negN/A

                      \[\leadsto 100 \cdot \mathsf{fma}\left(\color{blue}{\frac{\mathsf{neg}\left(1\right)}{\mathsf{neg}\left(\left(\mathsf{neg}\left(i\right)\right)\right)}}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                    14. remove-double-negN/A

                      \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{\mathsf{neg}\left(1\right)}{\color{blue}{i}}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                    15. lower-/.f64N/A

                      \[\leadsto 100 \cdot \mathsf{fma}\left(\color{blue}{\frac{\mathsf{neg}\left(1\right)}{i}}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                    16. metadata-evalN/A

                      \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{\color{blue}{-1}}{i}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                    17. lift-/.f64N/A

                      \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{-1}{i}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\color{blue}{\frac{i}{n}}}\right) \]
                    18. associate-/r/N/A

                      \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{-1}{i}, n, \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{i} \cdot n}\right) \]
                    19. lower-*.f64N/A

                      \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{-1}{i}, n, \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{i} \cdot n}\right) \]
                  4. Applied rewrites16.3%

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

                    \[\leadsto \color{blue}{100 \cdot \frac{n + -1 \cdot n}{i}} \]
                  6. Step-by-step derivation
                    1. associate-*r/N/A

                      \[\leadsto \color{blue}{\frac{100 \cdot \left(n + -1 \cdot n\right)}{i}} \]
                    2. distribute-rgt1-inN/A

                      \[\leadsto \frac{100 \cdot \color{blue}{\left(\left(-1 + 1\right) \cdot n\right)}}{i} \]
                    3. metadata-evalN/A

                      \[\leadsto \frac{100 \cdot \left(\color{blue}{0} \cdot n\right)}{i} \]
                    4. mul0-lftN/A

                      \[\leadsto \frac{100 \cdot \color{blue}{0}}{i} \]
                    5. metadata-evalN/A

                      \[\leadsto \frac{\color{blue}{0}}{i} \]
                    6. lower-/.f6484.2

                      \[\leadsto \color{blue}{\frac{0}{i}} \]
                  7. Applied rewrites84.2%

                    \[\leadsto \color{blue}{\frac{0}{i}} \]

                  if 5.20000000000000016e-250 < n < 1.45e21

                  1. Initial program 16.0%

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

                      \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
                    2. lift-/.f64N/A

                      \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
                    3. associate-*r/N/A

                      \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
                    4. lower-/.f64N/A

                      \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
                    5. lower-*.f6416.0

                      \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
                    6. lift--.f64N/A

                      \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
                    7. lift-pow.f64N/A

                      \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
                    8. pow-to-expN/A

                      \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
                    9. lower-expm1.f64N/A

                      \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
                    10. lower-*.f64N/A

                      \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
                    11. lift-+.f64N/A

                      \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
                    12. lower-log1p.f6482.0

                      \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
                  4. Applied rewrites82.0%

                    \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
                  5. Taylor expanded in i around 0

                    \[\leadsto \frac{\color{blue}{100 \cdot i}}{\frac{i}{n}} \]
                  6. Step-by-step derivation
                    1. *-commutativeN/A

                      \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
                    2. lower-*.f6459.9

                      \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
                  7. Applied rewrites59.9%

                    \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
                  8. Step-by-step derivation
                    1. lift-/.f64N/A

                      \[\leadsto \color{blue}{\frac{i \cdot 100}{\frac{i}{n}}} \]
                    2. clear-numN/A

                      \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
                    3. associate-/r/N/A

                      \[\leadsto \color{blue}{\frac{1}{\frac{i}{n}} \cdot \left(i \cdot 100\right)} \]
                    4. lift-/.f64N/A

                      \[\leadsto \frac{1}{\color{blue}{\frac{i}{n}}} \cdot \left(i \cdot 100\right) \]
                    5. clear-numN/A

                      \[\leadsto \color{blue}{\frac{n}{i}} \cdot \left(i \cdot 100\right) \]
                    6. lower-*.f64N/A

                      \[\leadsto \color{blue}{\frac{n}{i} \cdot \left(i \cdot 100\right)} \]
                    7. lower-/.f6460.0

                      \[\leadsto \color{blue}{\frac{n}{i}} \cdot \left(i \cdot 100\right) \]
                  9. Applied rewrites60.0%

                    \[\leadsto \color{blue}{\frac{n}{i} \cdot \left(100 \cdot i\right)} \]

                  if 1.45e21 < n

                  1. Initial program 17.0%

                    \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
                  2. Add Preprocessing
                  3. Taylor expanded in i around 0

                    \[\leadsto 100 \cdot \color{blue}{\left(n + i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right)\right)} \]
                  4. Step-by-step derivation
                    1. +-commutativeN/A

                      \[\leadsto 100 \cdot \color{blue}{\left(i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n\right)} \]
                  5. Applied rewrites79.0%

                    \[\leadsto 100 \cdot \color{blue}{\mathsf{fma}\left(i \cdot n, \mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), n\right)} \]
                  6. Taylor expanded in n around inf

                    \[\leadsto 100 \cdot \left(n \cdot \color{blue}{\left(1 + i \cdot \left(\frac{1}{2} + \frac{1}{6} \cdot i\right)\right)}\right) \]
                  7. Step-by-step derivation
                    1. Applied rewrites79.1%

                      \[\leadsto 100 \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot \color{blue}{n}\right) \]
                  8. Recombined 5 regimes into one program.
                  9. Final simplification65.8%

                    \[\leadsto \begin{array}{l} \mathbf{if}\;n \leq -1.8 \cdot 10^{+56}:\\ \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(0.16666666666666666, i, 0.5\right), n\right) \cdot 100\\ \mathbf{elif}\;n \leq -8 \cdot 10^{-251}:\\ \;\;\;\;\frac{100 \cdot i}{\frac{i}{n}}\\ \mathbf{elif}\;n \leq 5.2 \cdot 10^{-250}:\\ \;\;\;\;\frac{0}{i}\\ \mathbf{elif}\;n \leq 1.45 \cdot 10^{+21}:\\ \;\;\;\;\left(100 \cdot i\right) \cdot \frac{n}{i}\\ \mathbf{else}:\\ \;\;\;\;\left(\mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot n\right) \cdot 100\\ \end{array} \]
                  10. Add Preprocessing

                  Alternative 12: 65.6% accurate, 3.1× speedup?

                  \[\begin{array}{l} \\ \begin{array}{l} t_0 := \left(100 \cdot i\right) \cdot \frac{n}{i}\\ \mathbf{if}\;n \leq -1.4 \cdot 10^{+56}:\\ \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(0.16666666666666666, i, 0.5\right), n\right) \cdot 100\\ \mathbf{elif}\;n \leq -8.2 \cdot 10^{-251}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;n \leq 5.2 \cdot 10^{-250}:\\ \;\;\;\;\frac{0}{i}\\ \mathbf{elif}\;n \leq 1.45 \cdot 10^{+21}:\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;\left(\mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot n\right) \cdot 100\\ \end{array} \end{array} \]
                  (FPCore (i n)
                   :precision binary64
                   (let* ((t_0 (* (* 100.0 i) (/ n i))))
                     (if (<= n -1.4e+56)
                       (* (fma (* n i) (fma 0.16666666666666666 i 0.5) n) 100.0)
                       (if (<= n -8.2e-251)
                         t_0
                         (if (<= n 5.2e-250)
                           (/ 0.0 i)
                           (if (<= n 1.45e+21)
                             t_0
                             (* (* (fma (fma 0.16666666666666666 i 0.5) i 1.0) n) 100.0)))))))
                  double code(double i, double n) {
                  	double t_0 = (100.0 * i) * (n / i);
                  	double tmp;
                  	if (n <= -1.4e+56) {
                  		tmp = fma((n * i), fma(0.16666666666666666, i, 0.5), n) * 100.0;
                  	} else if (n <= -8.2e-251) {
                  		tmp = t_0;
                  	} else if (n <= 5.2e-250) {
                  		tmp = 0.0 / i;
                  	} else if (n <= 1.45e+21) {
                  		tmp = t_0;
                  	} else {
                  		tmp = (fma(fma(0.16666666666666666, i, 0.5), i, 1.0) * n) * 100.0;
                  	}
                  	return tmp;
                  }
                  
                  function code(i, n)
                  	t_0 = Float64(Float64(100.0 * i) * Float64(n / i))
                  	tmp = 0.0
                  	if (n <= -1.4e+56)
                  		tmp = Float64(fma(Float64(n * i), fma(0.16666666666666666, i, 0.5), n) * 100.0);
                  	elseif (n <= -8.2e-251)
                  		tmp = t_0;
                  	elseif (n <= 5.2e-250)
                  		tmp = Float64(0.0 / i);
                  	elseif (n <= 1.45e+21)
                  		tmp = t_0;
                  	else
                  		tmp = Float64(Float64(fma(fma(0.16666666666666666, i, 0.5), i, 1.0) * n) * 100.0);
                  	end
                  	return tmp
                  end
                  
                  code[i_, n_] := Block[{t$95$0 = N[(N[(100.0 * i), $MachinePrecision] * N[(n / i), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[n, -1.4e+56], N[(N[(N[(n * i), $MachinePrecision] * N[(0.16666666666666666 * i + 0.5), $MachinePrecision] + n), $MachinePrecision] * 100.0), $MachinePrecision], If[LessEqual[n, -8.2e-251], t$95$0, If[LessEqual[n, 5.2e-250], N[(0.0 / i), $MachinePrecision], If[LessEqual[n, 1.45e+21], t$95$0, N[(N[(N[(N[(0.16666666666666666 * i + 0.5), $MachinePrecision] * i + 1.0), $MachinePrecision] * n), $MachinePrecision] * 100.0), $MachinePrecision]]]]]]
                  
                  \begin{array}{l}
                  
                  \\
                  \begin{array}{l}
                  t_0 := \left(100 \cdot i\right) \cdot \frac{n}{i}\\
                  \mathbf{if}\;n \leq -1.4 \cdot 10^{+56}:\\
                  \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(0.16666666666666666, i, 0.5\right), n\right) \cdot 100\\
                  
                  \mathbf{elif}\;n \leq -8.2 \cdot 10^{-251}:\\
                  \;\;\;\;t\_0\\
                  
                  \mathbf{elif}\;n \leq 5.2 \cdot 10^{-250}:\\
                  \;\;\;\;\frac{0}{i}\\
                  
                  \mathbf{elif}\;n \leq 1.45 \cdot 10^{+21}:\\
                  \;\;\;\;t\_0\\
                  
                  \mathbf{else}:\\
                  \;\;\;\;\left(\mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot n\right) \cdot 100\\
                  
                  
                  \end{array}
                  \end{array}
                  
                  Derivation
                  1. Split input into 4 regimes
                  2. if n < -1.40000000000000004e56

                    1. Initial program 26.5%

                      \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
                    2. Add Preprocessing
                    3. Taylor expanded in i around 0

                      \[\leadsto 100 \cdot \color{blue}{\left(n + i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right)\right)} \]
                    4. Step-by-step derivation
                      1. +-commutativeN/A

                        \[\leadsto 100 \cdot \color{blue}{\left(i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n\right)} \]
                    5. Applied rewrites58.4%

                      \[\leadsto 100 \cdot \color{blue}{\mathsf{fma}\left(i \cdot n, \mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), n\right)} \]
                    6. Taylor expanded in n around inf

                      \[\leadsto 100 \cdot \mathsf{fma}\left(i \cdot n, \frac{1}{2} + \color{blue}{\frac{1}{6} \cdot i}, n\right) \]
                    7. Step-by-step derivation
                      1. Applied rewrites58.4%

                        \[\leadsto 100 \cdot \mathsf{fma}\left(i \cdot n, \mathsf{fma}\left(0.16666666666666666, \color{blue}{i}, 0.5\right), n\right) \]

                      if -1.40000000000000004e56 < n < -8.1999999999999997e-251 or 5.20000000000000016e-250 < n < 1.45e21

                      1. Initial program 33.6%

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

                          \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
                        2. lift-/.f64N/A

                          \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
                        3. associate-*r/N/A

                          \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
                        4. lower-/.f64N/A

                          \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
                        5. lower-*.f6433.7

                          \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
                        6. lift--.f64N/A

                          \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
                        7. lift-pow.f64N/A

                          \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
                        8. pow-to-expN/A

                          \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
                        9. lower-expm1.f64N/A

                          \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
                        10. lower-*.f64N/A

                          \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
                        11. lift-+.f64N/A

                          \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
                        12. lower-log1p.f6484.9

                          \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
                      4. Applied rewrites84.9%

                        \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
                      5. Taylor expanded in i around 0

                        \[\leadsto \frac{\color{blue}{100 \cdot i}}{\frac{i}{n}} \]
                      6. Step-by-step derivation
                        1. *-commutativeN/A

                          \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
                        2. lower-*.f6458.3

                          \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
                      7. Applied rewrites58.3%

                        \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
                      8. Step-by-step derivation
                        1. lift-/.f64N/A

                          \[\leadsto \color{blue}{\frac{i \cdot 100}{\frac{i}{n}}} \]
                        2. clear-numN/A

                          \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
                        3. associate-/r/N/A

                          \[\leadsto \color{blue}{\frac{1}{\frac{i}{n}} \cdot \left(i \cdot 100\right)} \]
                        4. lift-/.f64N/A

                          \[\leadsto \frac{1}{\color{blue}{\frac{i}{n}}} \cdot \left(i \cdot 100\right) \]
                        5. clear-numN/A

                          \[\leadsto \color{blue}{\frac{n}{i}} \cdot \left(i \cdot 100\right) \]
                        6. lower-*.f64N/A

                          \[\leadsto \color{blue}{\frac{n}{i} \cdot \left(i \cdot 100\right)} \]
                        7. lower-/.f6458.2

                          \[\leadsto \color{blue}{\frac{n}{i}} \cdot \left(i \cdot 100\right) \]
                      9. Applied rewrites58.2%

                        \[\leadsto \color{blue}{\frac{n}{i} \cdot \left(100 \cdot i\right)} \]

                      if -8.1999999999999997e-251 < n < 5.20000000000000016e-250

                      1. Initial program 84.2%

                        \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
                      2. Add Preprocessing
                      3. Step-by-step derivation
                        1. lift-/.f64N/A

                          \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
                        2. lift--.f64N/A

                          \[\leadsto 100 \cdot \frac{\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n} - 1}}{\frac{i}{n}} \]
                        3. div-subN/A

                          \[\leadsto 100 \cdot \color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \frac{1}{\frac{i}{n}}\right)} \]
                        4. lift-/.f64N/A

                          \[\leadsto 100 \cdot \left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \frac{1}{\color{blue}{\frac{i}{n}}}\right) \]
                        5. clear-numN/A

                          \[\leadsto 100 \cdot \left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \color{blue}{\frac{n}{i}}\right) \]
                        6. sub-negN/A

                          \[\leadsto 100 \cdot \color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} + \left(\mathsf{neg}\left(\frac{n}{i}\right)\right)\right)} \]
                        7. +-commutativeN/A

                          \[\leadsto 100 \cdot \color{blue}{\left(\left(\mathsf{neg}\left(\frac{n}{i}\right)\right) + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right)} \]
                        8. clear-numN/A

                          \[\leadsto 100 \cdot \left(\left(\mathsf{neg}\left(\color{blue}{\frac{1}{\frac{i}{n}}}\right)\right) + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                        9. associate-/r/N/A

                          \[\leadsto 100 \cdot \left(\left(\mathsf{neg}\left(\color{blue}{\frac{1}{i} \cdot n}\right)\right) + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                        10. distribute-lft-neg-inN/A

                          \[\leadsto 100 \cdot \left(\color{blue}{\left(\mathsf{neg}\left(\frac{1}{i}\right)\right) \cdot n} + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                        11. distribute-frac-neg2N/A

                          \[\leadsto 100 \cdot \left(\color{blue}{\frac{1}{\mathsf{neg}\left(i\right)}} \cdot n + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                        12. lower-fma.f64N/A

                          \[\leadsto 100 \cdot \color{blue}{\mathsf{fma}\left(\frac{1}{\mathsf{neg}\left(i\right)}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right)} \]
                        13. frac-2negN/A

                          \[\leadsto 100 \cdot \mathsf{fma}\left(\color{blue}{\frac{\mathsf{neg}\left(1\right)}{\mathsf{neg}\left(\left(\mathsf{neg}\left(i\right)\right)\right)}}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                        14. remove-double-negN/A

                          \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{\mathsf{neg}\left(1\right)}{\color{blue}{i}}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                        15. lower-/.f64N/A

                          \[\leadsto 100 \cdot \mathsf{fma}\left(\color{blue}{\frac{\mathsf{neg}\left(1\right)}{i}}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                        16. metadata-evalN/A

                          \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{\color{blue}{-1}}{i}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                        17. lift-/.f64N/A

                          \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{-1}{i}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\color{blue}{\frac{i}{n}}}\right) \]
                        18. associate-/r/N/A

                          \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{-1}{i}, n, \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{i} \cdot n}\right) \]
                        19. lower-*.f64N/A

                          \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{-1}{i}, n, \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{i} \cdot n}\right) \]
                      4. Applied rewrites16.3%

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

                        \[\leadsto \color{blue}{100 \cdot \frac{n + -1 \cdot n}{i}} \]
                      6. Step-by-step derivation
                        1. associate-*r/N/A

                          \[\leadsto \color{blue}{\frac{100 \cdot \left(n + -1 \cdot n\right)}{i}} \]
                        2. distribute-rgt1-inN/A

                          \[\leadsto \frac{100 \cdot \color{blue}{\left(\left(-1 + 1\right) \cdot n\right)}}{i} \]
                        3. metadata-evalN/A

                          \[\leadsto \frac{100 \cdot \left(\color{blue}{0} \cdot n\right)}{i} \]
                        4. mul0-lftN/A

                          \[\leadsto \frac{100 \cdot \color{blue}{0}}{i} \]
                        5. metadata-evalN/A

                          \[\leadsto \frac{\color{blue}{0}}{i} \]
                        6. lower-/.f6484.2

                          \[\leadsto \color{blue}{\frac{0}{i}} \]
                      7. Applied rewrites84.2%

                        \[\leadsto \color{blue}{\frac{0}{i}} \]

                      if 1.45e21 < n

                      1. Initial program 17.0%

                        \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
                      2. Add Preprocessing
                      3. Taylor expanded in i around 0

                        \[\leadsto 100 \cdot \color{blue}{\left(n + i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right)\right)} \]
                      4. Step-by-step derivation
                        1. +-commutativeN/A

                          \[\leadsto 100 \cdot \color{blue}{\left(i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n\right)} \]
                      5. Applied rewrites79.0%

                        \[\leadsto 100 \cdot \color{blue}{\mathsf{fma}\left(i \cdot n, \mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), n\right)} \]
                      6. Taylor expanded in n around inf

                        \[\leadsto 100 \cdot \left(n \cdot \color{blue}{\left(1 + i \cdot \left(\frac{1}{2} + \frac{1}{6} \cdot i\right)\right)}\right) \]
                      7. Step-by-step derivation
                        1. Applied rewrites79.1%

                          \[\leadsto 100 \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot \color{blue}{n}\right) \]
                      8. Recombined 4 regimes into one program.
                      9. Final simplification65.8%

                        \[\leadsto \begin{array}{l} \mathbf{if}\;n \leq -1.4 \cdot 10^{+56}:\\ \;\;\;\;\mathsf{fma}\left(n \cdot i, \mathsf{fma}\left(0.16666666666666666, i, 0.5\right), n\right) \cdot 100\\ \mathbf{elif}\;n \leq -8.2 \cdot 10^{-251}:\\ \;\;\;\;\left(100 \cdot i\right) \cdot \frac{n}{i}\\ \mathbf{elif}\;n \leq 5.2 \cdot 10^{-250}:\\ \;\;\;\;\frac{0}{i}\\ \mathbf{elif}\;n \leq 1.45 \cdot 10^{+21}:\\ \;\;\;\;\left(100 \cdot i\right) \cdot \frac{n}{i}\\ \mathbf{else}:\\ \;\;\;\;\left(\mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot n\right) \cdot 100\\ \end{array} \]
                      10. Add Preprocessing

                      Alternative 13: 65.6% accurate, 3.1× speedup?

                      \[\begin{array}{l} \\ \begin{array}{l} t_0 := \left(100 \cdot i\right) \cdot \frac{n}{i}\\ t_1 := \left(\mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot n\right) \cdot 100\\ \mathbf{if}\;n \leq -1.4 \cdot 10^{+56}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;n \leq -8.2 \cdot 10^{-251}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;n \leq 5.2 \cdot 10^{-250}:\\ \;\;\;\;\frac{0}{i}\\ \mathbf{elif}\;n \leq 1.45 \cdot 10^{+21}:\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
                      (FPCore (i n)
                       :precision binary64
                       (let* ((t_0 (* (* 100.0 i) (/ n i)))
                              (t_1 (* (* (fma (fma 0.16666666666666666 i 0.5) i 1.0) n) 100.0)))
                         (if (<= n -1.4e+56)
                           t_1
                           (if (<= n -8.2e-251)
                             t_0
                             (if (<= n 5.2e-250) (/ 0.0 i) (if (<= n 1.45e+21) t_0 t_1))))))
                      double code(double i, double n) {
                      	double t_0 = (100.0 * i) * (n / i);
                      	double t_1 = (fma(fma(0.16666666666666666, i, 0.5), i, 1.0) * n) * 100.0;
                      	double tmp;
                      	if (n <= -1.4e+56) {
                      		tmp = t_1;
                      	} else if (n <= -8.2e-251) {
                      		tmp = t_0;
                      	} else if (n <= 5.2e-250) {
                      		tmp = 0.0 / i;
                      	} else if (n <= 1.45e+21) {
                      		tmp = t_0;
                      	} else {
                      		tmp = t_1;
                      	}
                      	return tmp;
                      }
                      
                      function code(i, n)
                      	t_0 = Float64(Float64(100.0 * i) * Float64(n / i))
                      	t_1 = Float64(Float64(fma(fma(0.16666666666666666, i, 0.5), i, 1.0) * n) * 100.0)
                      	tmp = 0.0
                      	if (n <= -1.4e+56)
                      		tmp = t_1;
                      	elseif (n <= -8.2e-251)
                      		tmp = t_0;
                      	elseif (n <= 5.2e-250)
                      		tmp = Float64(0.0 / i);
                      	elseif (n <= 1.45e+21)
                      		tmp = t_0;
                      	else
                      		tmp = t_1;
                      	end
                      	return tmp
                      end
                      
                      code[i_, n_] := Block[{t$95$0 = N[(N[(100.0 * i), $MachinePrecision] * N[(n / i), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(N[(N[(0.16666666666666666 * i + 0.5), $MachinePrecision] * i + 1.0), $MachinePrecision] * n), $MachinePrecision] * 100.0), $MachinePrecision]}, If[LessEqual[n, -1.4e+56], t$95$1, If[LessEqual[n, -8.2e-251], t$95$0, If[LessEqual[n, 5.2e-250], N[(0.0 / i), $MachinePrecision], If[LessEqual[n, 1.45e+21], t$95$0, t$95$1]]]]]]
                      
                      \begin{array}{l}
                      
                      \\
                      \begin{array}{l}
                      t_0 := \left(100 \cdot i\right) \cdot \frac{n}{i}\\
                      t_1 := \left(\mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot n\right) \cdot 100\\
                      \mathbf{if}\;n \leq -1.4 \cdot 10^{+56}:\\
                      \;\;\;\;t\_1\\
                      
                      \mathbf{elif}\;n \leq -8.2 \cdot 10^{-251}:\\
                      \;\;\;\;t\_0\\
                      
                      \mathbf{elif}\;n \leq 5.2 \cdot 10^{-250}:\\
                      \;\;\;\;\frac{0}{i}\\
                      
                      \mathbf{elif}\;n \leq 1.45 \cdot 10^{+21}:\\
                      \;\;\;\;t\_0\\
                      
                      \mathbf{else}:\\
                      \;\;\;\;t\_1\\
                      
                      
                      \end{array}
                      \end{array}
                      
                      Derivation
                      1. Split input into 3 regimes
                      2. if n < -1.40000000000000004e56 or 1.45e21 < n

                        1. Initial program 21.6%

                          \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
                        2. Add Preprocessing
                        3. Taylor expanded in i around 0

                          \[\leadsto 100 \cdot \color{blue}{\left(n + i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right)\right)} \]
                        4. Step-by-step derivation
                          1. +-commutativeN/A

                            \[\leadsto 100 \cdot \color{blue}{\left(i \cdot \left(i \cdot \left(n \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{n}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{n}\right)\right) + n\right)} \]
                        5. Applied rewrites68.9%

                          \[\leadsto 100 \cdot \color{blue}{\mathsf{fma}\left(i \cdot n, \mathsf{fma}\left(\left(\frac{0.3333333333333333}{n \cdot n} + 0.16666666666666666\right) - \frac{0.5}{n}, i, 0.5 - \frac{0.5}{n}\right), n\right)} \]
                        6. Taylor expanded in n around inf

                          \[\leadsto 100 \cdot \left(n \cdot \color{blue}{\left(1 + i \cdot \left(\frac{1}{2} + \frac{1}{6} \cdot i\right)\right)}\right) \]
                        7. Step-by-step derivation
                          1. Applied rewrites68.9%

                            \[\leadsto 100 \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot \color{blue}{n}\right) \]

                          if -1.40000000000000004e56 < n < -8.1999999999999997e-251 or 5.20000000000000016e-250 < n < 1.45e21

                          1. Initial program 33.6%

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

                              \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
                            2. lift-/.f64N/A

                              \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
                            3. associate-*r/N/A

                              \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
                            4. lower-/.f64N/A

                              \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
                            5. lower-*.f6433.7

                              \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
                            6. lift--.f64N/A

                              \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
                            7. lift-pow.f64N/A

                              \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
                            8. pow-to-expN/A

                              \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
                            9. lower-expm1.f64N/A

                              \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
                            10. lower-*.f64N/A

                              \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
                            11. lift-+.f64N/A

                              \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
                            12. lower-log1p.f6484.9

                              \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
                          4. Applied rewrites84.9%

                            \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
                          5. Taylor expanded in i around 0

                            \[\leadsto \frac{\color{blue}{100 \cdot i}}{\frac{i}{n}} \]
                          6. Step-by-step derivation
                            1. *-commutativeN/A

                              \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
                            2. lower-*.f6458.3

                              \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
                          7. Applied rewrites58.3%

                            \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
                          8. Step-by-step derivation
                            1. lift-/.f64N/A

                              \[\leadsto \color{blue}{\frac{i \cdot 100}{\frac{i}{n}}} \]
                            2. clear-numN/A

                              \[\leadsto \color{blue}{\frac{1}{\frac{\frac{i}{n}}{i \cdot 100}}} \]
                            3. associate-/r/N/A

                              \[\leadsto \color{blue}{\frac{1}{\frac{i}{n}} \cdot \left(i \cdot 100\right)} \]
                            4. lift-/.f64N/A

                              \[\leadsto \frac{1}{\color{blue}{\frac{i}{n}}} \cdot \left(i \cdot 100\right) \]
                            5. clear-numN/A

                              \[\leadsto \color{blue}{\frac{n}{i}} \cdot \left(i \cdot 100\right) \]
                            6. lower-*.f64N/A

                              \[\leadsto \color{blue}{\frac{n}{i} \cdot \left(i \cdot 100\right)} \]
                            7. lower-/.f6458.2

                              \[\leadsto \color{blue}{\frac{n}{i}} \cdot \left(i \cdot 100\right) \]
                          9. Applied rewrites58.2%

                            \[\leadsto \color{blue}{\frac{n}{i} \cdot \left(100 \cdot i\right)} \]

                          if -8.1999999999999997e-251 < n < 5.20000000000000016e-250

                          1. Initial program 84.2%

                            \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
                          2. Add Preprocessing
                          3. Step-by-step derivation
                            1. lift-/.f64N/A

                              \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
                            2. lift--.f64N/A

                              \[\leadsto 100 \cdot \frac{\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n} - 1}}{\frac{i}{n}} \]
                            3. div-subN/A

                              \[\leadsto 100 \cdot \color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \frac{1}{\frac{i}{n}}\right)} \]
                            4. lift-/.f64N/A

                              \[\leadsto 100 \cdot \left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \frac{1}{\color{blue}{\frac{i}{n}}}\right) \]
                            5. clear-numN/A

                              \[\leadsto 100 \cdot \left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \color{blue}{\frac{n}{i}}\right) \]
                            6. sub-negN/A

                              \[\leadsto 100 \cdot \color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} + \left(\mathsf{neg}\left(\frac{n}{i}\right)\right)\right)} \]
                            7. +-commutativeN/A

                              \[\leadsto 100 \cdot \color{blue}{\left(\left(\mathsf{neg}\left(\frac{n}{i}\right)\right) + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right)} \]
                            8. clear-numN/A

                              \[\leadsto 100 \cdot \left(\left(\mathsf{neg}\left(\color{blue}{\frac{1}{\frac{i}{n}}}\right)\right) + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            9. associate-/r/N/A

                              \[\leadsto 100 \cdot \left(\left(\mathsf{neg}\left(\color{blue}{\frac{1}{i} \cdot n}\right)\right) + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            10. distribute-lft-neg-inN/A

                              \[\leadsto 100 \cdot \left(\color{blue}{\left(\mathsf{neg}\left(\frac{1}{i}\right)\right) \cdot n} + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            11. distribute-frac-neg2N/A

                              \[\leadsto 100 \cdot \left(\color{blue}{\frac{1}{\mathsf{neg}\left(i\right)}} \cdot n + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            12. lower-fma.f64N/A

                              \[\leadsto 100 \cdot \color{blue}{\mathsf{fma}\left(\frac{1}{\mathsf{neg}\left(i\right)}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right)} \]
                            13. frac-2negN/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\color{blue}{\frac{\mathsf{neg}\left(1\right)}{\mathsf{neg}\left(\left(\mathsf{neg}\left(i\right)\right)\right)}}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            14. remove-double-negN/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{\mathsf{neg}\left(1\right)}{\color{blue}{i}}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            15. lower-/.f64N/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\color{blue}{\frac{\mathsf{neg}\left(1\right)}{i}}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            16. metadata-evalN/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{\color{blue}{-1}}{i}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            17. lift-/.f64N/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{-1}{i}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\color{blue}{\frac{i}{n}}}\right) \]
                            18. associate-/r/N/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{-1}{i}, n, \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{i} \cdot n}\right) \]
                            19. lower-*.f64N/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{-1}{i}, n, \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{i} \cdot n}\right) \]
                          4. Applied rewrites16.3%

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

                            \[\leadsto \color{blue}{100 \cdot \frac{n + -1 \cdot n}{i}} \]
                          6. Step-by-step derivation
                            1. associate-*r/N/A

                              \[\leadsto \color{blue}{\frac{100 \cdot \left(n + -1 \cdot n\right)}{i}} \]
                            2. distribute-rgt1-inN/A

                              \[\leadsto \frac{100 \cdot \color{blue}{\left(\left(-1 + 1\right) \cdot n\right)}}{i} \]
                            3. metadata-evalN/A

                              \[\leadsto \frac{100 \cdot \left(\color{blue}{0} \cdot n\right)}{i} \]
                            4. mul0-lftN/A

                              \[\leadsto \frac{100 \cdot \color{blue}{0}}{i} \]
                            5. metadata-evalN/A

                              \[\leadsto \frac{\color{blue}{0}}{i} \]
                            6. lower-/.f6484.2

                              \[\leadsto \color{blue}{\frac{0}{i}} \]
                          7. Applied rewrites84.2%

                            \[\leadsto \color{blue}{\frac{0}{i}} \]
                        8. Recombined 3 regimes into one program.
                        9. Final simplification65.8%

                          \[\leadsto \begin{array}{l} \mathbf{if}\;n \leq -1.4 \cdot 10^{+56}:\\ \;\;\;\;\left(\mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot n\right) \cdot 100\\ \mathbf{elif}\;n \leq -8.2 \cdot 10^{-251}:\\ \;\;\;\;\left(100 \cdot i\right) \cdot \frac{n}{i}\\ \mathbf{elif}\;n \leq 5.2 \cdot 10^{-250}:\\ \;\;\;\;\frac{0}{i}\\ \mathbf{elif}\;n \leq 1.45 \cdot 10^{+21}:\\ \;\;\;\;\left(100 \cdot i\right) \cdot \frac{n}{i}\\ \mathbf{else}:\\ \;\;\;\;\left(\mathsf{fma}\left(\mathsf{fma}\left(0.16666666666666666, i, 0.5\right), i, 1\right) \cdot n\right) \cdot 100\\ \end{array} \]
                        10. Add Preprocessing

                        Alternative 14: 59.9% accurate, 3.6× speedup?

                        \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;i \leq -7.2 \cdot 10^{+31}:\\ \;\;\;\;\frac{0}{i}\\ \mathbf{elif}\;i \leq 3.1 \cdot 10^{-201}:\\ \;\;\;\;100 \cdot n\\ \mathbf{elif}\;i \leq 7.4 \cdot 10^{+171}:\\ \;\;\;\;\frac{\left(100 \cdot i\right) \cdot n}{i}\\ \mathbf{else}:\\ \;\;\;\;\frac{0}{i}\\ \end{array} \end{array} \]
                        (FPCore (i n)
                         :precision binary64
                         (if (<= i -7.2e+31)
                           (/ 0.0 i)
                           (if (<= i 3.1e-201)
                             (* 100.0 n)
                             (if (<= i 7.4e+171) (/ (* (* 100.0 i) n) i) (/ 0.0 i)))))
                        double code(double i, double n) {
                        	double tmp;
                        	if (i <= -7.2e+31) {
                        		tmp = 0.0 / i;
                        	} else if (i <= 3.1e-201) {
                        		tmp = 100.0 * n;
                        	} else if (i <= 7.4e+171) {
                        		tmp = ((100.0 * i) * n) / i;
                        	} else {
                        		tmp = 0.0 / i;
                        	}
                        	return tmp;
                        }
                        
                        real(8) function code(i, n)
                            real(8), intent (in) :: i
                            real(8), intent (in) :: n
                            real(8) :: tmp
                            if (i <= (-7.2d+31)) then
                                tmp = 0.0d0 / i
                            else if (i <= 3.1d-201) then
                                tmp = 100.0d0 * n
                            else if (i <= 7.4d+171) then
                                tmp = ((100.0d0 * i) * n) / i
                            else
                                tmp = 0.0d0 / i
                            end if
                            code = tmp
                        end function
                        
                        public static double code(double i, double n) {
                        	double tmp;
                        	if (i <= -7.2e+31) {
                        		tmp = 0.0 / i;
                        	} else if (i <= 3.1e-201) {
                        		tmp = 100.0 * n;
                        	} else if (i <= 7.4e+171) {
                        		tmp = ((100.0 * i) * n) / i;
                        	} else {
                        		tmp = 0.0 / i;
                        	}
                        	return tmp;
                        }
                        
                        def code(i, n):
                        	tmp = 0
                        	if i <= -7.2e+31:
                        		tmp = 0.0 / i
                        	elif i <= 3.1e-201:
                        		tmp = 100.0 * n
                        	elif i <= 7.4e+171:
                        		tmp = ((100.0 * i) * n) / i
                        	else:
                        		tmp = 0.0 / i
                        	return tmp
                        
                        function code(i, n)
                        	tmp = 0.0
                        	if (i <= -7.2e+31)
                        		tmp = Float64(0.0 / i);
                        	elseif (i <= 3.1e-201)
                        		tmp = Float64(100.0 * n);
                        	elseif (i <= 7.4e+171)
                        		tmp = Float64(Float64(Float64(100.0 * i) * n) / i);
                        	else
                        		tmp = Float64(0.0 / i);
                        	end
                        	return tmp
                        end
                        
                        function tmp_2 = code(i, n)
                        	tmp = 0.0;
                        	if (i <= -7.2e+31)
                        		tmp = 0.0 / i;
                        	elseif (i <= 3.1e-201)
                        		tmp = 100.0 * n;
                        	elseif (i <= 7.4e+171)
                        		tmp = ((100.0 * i) * n) / i;
                        	else
                        		tmp = 0.0 / i;
                        	end
                        	tmp_2 = tmp;
                        end
                        
                        code[i_, n_] := If[LessEqual[i, -7.2e+31], N[(0.0 / i), $MachinePrecision], If[LessEqual[i, 3.1e-201], N[(100.0 * n), $MachinePrecision], If[LessEqual[i, 7.4e+171], N[(N[(N[(100.0 * i), $MachinePrecision] * n), $MachinePrecision] / i), $MachinePrecision], N[(0.0 / i), $MachinePrecision]]]]
                        
                        \begin{array}{l}
                        
                        \\
                        \begin{array}{l}
                        \mathbf{if}\;i \leq -7.2 \cdot 10^{+31}:\\
                        \;\;\;\;\frac{0}{i}\\
                        
                        \mathbf{elif}\;i \leq 3.1 \cdot 10^{-201}:\\
                        \;\;\;\;100 \cdot n\\
                        
                        \mathbf{elif}\;i \leq 7.4 \cdot 10^{+171}:\\
                        \;\;\;\;\frac{\left(100 \cdot i\right) \cdot n}{i}\\
                        
                        \mathbf{else}:\\
                        \;\;\;\;\frac{0}{i}\\
                        
                        
                        \end{array}
                        \end{array}
                        
                        Derivation
                        1. Split input into 3 regimes
                        2. if i < -7.19999999999999992e31 or 7.39999999999999996e171 < i

                          1. Initial program 68.2%

                            \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
                          2. Add Preprocessing
                          3. Step-by-step derivation
                            1. lift-/.f64N/A

                              \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
                            2. lift--.f64N/A

                              \[\leadsto 100 \cdot \frac{\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n} - 1}}{\frac{i}{n}} \]
                            3. div-subN/A

                              \[\leadsto 100 \cdot \color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \frac{1}{\frac{i}{n}}\right)} \]
                            4. lift-/.f64N/A

                              \[\leadsto 100 \cdot \left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \frac{1}{\color{blue}{\frac{i}{n}}}\right) \]
                            5. clear-numN/A

                              \[\leadsto 100 \cdot \left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \color{blue}{\frac{n}{i}}\right) \]
                            6. sub-negN/A

                              \[\leadsto 100 \cdot \color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} + \left(\mathsf{neg}\left(\frac{n}{i}\right)\right)\right)} \]
                            7. +-commutativeN/A

                              \[\leadsto 100 \cdot \color{blue}{\left(\left(\mathsf{neg}\left(\frac{n}{i}\right)\right) + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right)} \]
                            8. clear-numN/A

                              \[\leadsto 100 \cdot \left(\left(\mathsf{neg}\left(\color{blue}{\frac{1}{\frac{i}{n}}}\right)\right) + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            9. associate-/r/N/A

                              \[\leadsto 100 \cdot \left(\left(\mathsf{neg}\left(\color{blue}{\frac{1}{i} \cdot n}\right)\right) + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            10. distribute-lft-neg-inN/A

                              \[\leadsto 100 \cdot \left(\color{blue}{\left(\mathsf{neg}\left(\frac{1}{i}\right)\right) \cdot n} + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            11. distribute-frac-neg2N/A

                              \[\leadsto 100 \cdot \left(\color{blue}{\frac{1}{\mathsf{neg}\left(i\right)}} \cdot n + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            12. lower-fma.f64N/A

                              \[\leadsto 100 \cdot \color{blue}{\mathsf{fma}\left(\frac{1}{\mathsf{neg}\left(i\right)}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right)} \]
                            13. frac-2negN/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\color{blue}{\frac{\mathsf{neg}\left(1\right)}{\mathsf{neg}\left(\left(\mathsf{neg}\left(i\right)\right)\right)}}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            14. remove-double-negN/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{\mathsf{neg}\left(1\right)}{\color{blue}{i}}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            15. lower-/.f64N/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\color{blue}{\frac{\mathsf{neg}\left(1\right)}{i}}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            16. metadata-evalN/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{\color{blue}{-1}}{i}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            17. lift-/.f64N/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{-1}{i}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\color{blue}{\frac{i}{n}}}\right) \]
                            18. associate-/r/N/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{-1}{i}, n, \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{i} \cdot n}\right) \]
                            19. lower-*.f64N/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{-1}{i}, n, \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{i} \cdot n}\right) \]
                          4. Applied rewrites59.9%

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

                            \[\leadsto \color{blue}{100 \cdot \frac{n + -1 \cdot n}{i}} \]
                          6. Step-by-step derivation
                            1. associate-*r/N/A

                              \[\leadsto \color{blue}{\frac{100 \cdot \left(n + -1 \cdot n\right)}{i}} \]
                            2. distribute-rgt1-inN/A

                              \[\leadsto \frac{100 \cdot \color{blue}{\left(\left(-1 + 1\right) \cdot n\right)}}{i} \]
                            3. metadata-evalN/A

                              \[\leadsto \frac{100 \cdot \left(\color{blue}{0} \cdot n\right)}{i} \]
                            4. mul0-lftN/A

                              \[\leadsto \frac{100 \cdot \color{blue}{0}}{i} \]
                            5. metadata-evalN/A

                              \[\leadsto \frac{\color{blue}{0}}{i} \]
                            6. lower-/.f6436.6

                              \[\leadsto \color{blue}{\frac{0}{i}} \]
                          7. Applied rewrites36.6%

                            \[\leadsto \color{blue}{\frac{0}{i}} \]

                          if -7.19999999999999992e31 < i < 3.0999999999999999e-201

                          1. Initial program 8.8%

                            \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
                          2. Add Preprocessing
                          3. Taylor expanded in i around 0

                            \[\leadsto \color{blue}{100 \cdot n} \]
                          4. Step-by-step derivation
                            1. lower-*.f6481.9

                              \[\leadsto \color{blue}{100 \cdot n} \]
                          5. Applied rewrites81.9%

                            \[\leadsto \color{blue}{100 \cdot n} \]

                          if 3.0999999999999999e-201 < i < 7.39999999999999996e171

                          1. Initial program 26.2%

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

                              \[\leadsto \color{blue}{100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
                            2. lift-/.f64N/A

                              \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
                            3. associate-*r/N/A

                              \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
                            4. lower-/.f64N/A

                              \[\leadsto \color{blue}{\frac{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}{\frac{i}{n}}} \]
                            5. lower-*.f6426.2

                              \[\leadsto \frac{\color{blue}{100 \cdot \left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
                            6. lift--.f64N/A

                              \[\leadsto \frac{100 \cdot \color{blue}{\left({\left(1 + \frac{i}{n}\right)}^{n} - 1\right)}}{\frac{i}{n}} \]
                            7. lift-pow.f64N/A

                              \[\leadsto \frac{100 \cdot \left(\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n}} - 1\right)}{\frac{i}{n}} \]
                            8. pow-to-expN/A

                              \[\leadsto \frac{100 \cdot \left(\color{blue}{e^{\log \left(1 + \frac{i}{n}\right) \cdot n}} - 1\right)}{\frac{i}{n}} \]
                            9. lower-expm1.f64N/A

                              \[\leadsto \frac{100 \cdot \color{blue}{\mathsf{expm1}\left(\log \left(1 + \frac{i}{n}\right) \cdot n\right)}}{\frac{i}{n}} \]
                            10. lower-*.f64N/A

                              \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\log \left(1 + \frac{i}{n}\right) \cdot n}\right)}{\frac{i}{n}} \]
                            11. lift-+.f64N/A

                              \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\log \color{blue}{\left(1 + \frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
                            12. lower-log1p.f6481.9

                              \[\leadsto \frac{100 \cdot \mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{i}{n}\right)} \cdot n\right)}{\frac{i}{n}} \]
                          4. Applied rewrites81.9%

                            \[\leadsto \color{blue}{\frac{100 \cdot \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{i}{n}\right) \cdot n\right)}{\frac{i}{n}}} \]
                          5. Taylor expanded in i around 0

                            \[\leadsto \frac{\color{blue}{100 \cdot i}}{\frac{i}{n}} \]
                          6. Step-by-step derivation
                            1. *-commutativeN/A

                              \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
                            2. lower-*.f6431.9

                              \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
                          7. Applied rewrites31.9%

                            \[\leadsto \frac{\color{blue}{i \cdot 100}}{\frac{i}{n}} \]
                          8. Step-by-step derivation
                            1. lift-/.f64N/A

                              \[\leadsto \color{blue}{\frac{i \cdot 100}{\frac{i}{n}}} \]
                            2. lift-/.f64N/A

                              \[\leadsto \frac{i \cdot 100}{\color{blue}{\frac{i}{n}}} \]
                            3. associate-/r/N/A

                              \[\leadsto \color{blue}{\frac{i \cdot 100}{i} \cdot n} \]
                            4. associate-*l/N/A

                              \[\leadsto \color{blue}{\frac{\left(i \cdot 100\right) \cdot n}{i}} \]
                            5. lower-/.f64N/A

                              \[\leadsto \color{blue}{\frac{\left(i \cdot 100\right) \cdot n}{i}} \]
                            6. lower-*.f6454.7

                              \[\leadsto \frac{\color{blue}{\left(i \cdot 100\right) \cdot n}}{i} \]
                          9. Applied rewrites54.7%

                            \[\leadsto \color{blue}{\frac{\left(100 \cdot i\right) \cdot n}{i}} \]
                        3. Recombined 3 regimes into one program.
                        4. Add Preprocessing

                        Alternative 15: 59.0% accurate, 6.1× speedup?

                        \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;i \leq -7.2 \cdot 10^{+31}:\\ \;\;\;\;\frac{0}{i}\\ \mathbf{elif}\;i \leq 2 \cdot 10^{-16}:\\ \;\;\;\;100 \cdot n\\ \mathbf{else}:\\ \;\;\;\;\frac{0}{i}\\ \end{array} \end{array} \]
                        (FPCore (i n)
                         :precision binary64
                         (if (<= i -7.2e+31) (/ 0.0 i) (if (<= i 2e-16) (* 100.0 n) (/ 0.0 i))))
                        double code(double i, double n) {
                        	double tmp;
                        	if (i <= -7.2e+31) {
                        		tmp = 0.0 / i;
                        	} else if (i <= 2e-16) {
                        		tmp = 100.0 * n;
                        	} else {
                        		tmp = 0.0 / i;
                        	}
                        	return tmp;
                        }
                        
                        real(8) function code(i, n)
                            real(8), intent (in) :: i
                            real(8), intent (in) :: n
                            real(8) :: tmp
                            if (i <= (-7.2d+31)) then
                                tmp = 0.0d0 / i
                            else if (i <= 2d-16) then
                                tmp = 100.0d0 * n
                            else
                                tmp = 0.0d0 / i
                            end if
                            code = tmp
                        end function
                        
                        public static double code(double i, double n) {
                        	double tmp;
                        	if (i <= -7.2e+31) {
                        		tmp = 0.0 / i;
                        	} else if (i <= 2e-16) {
                        		tmp = 100.0 * n;
                        	} else {
                        		tmp = 0.0 / i;
                        	}
                        	return tmp;
                        }
                        
                        def code(i, n):
                        	tmp = 0
                        	if i <= -7.2e+31:
                        		tmp = 0.0 / i
                        	elif i <= 2e-16:
                        		tmp = 100.0 * n
                        	else:
                        		tmp = 0.0 / i
                        	return tmp
                        
                        function code(i, n)
                        	tmp = 0.0
                        	if (i <= -7.2e+31)
                        		tmp = Float64(0.0 / i);
                        	elseif (i <= 2e-16)
                        		tmp = Float64(100.0 * n);
                        	else
                        		tmp = Float64(0.0 / i);
                        	end
                        	return tmp
                        end
                        
                        function tmp_2 = code(i, n)
                        	tmp = 0.0;
                        	if (i <= -7.2e+31)
                        		tmp = 0.0 / i;
                        	elseif (i <= 2e-16)
                        		tmp = 100.0 * n;
                        	else
                        		tmp = 0.0 / i;
                        	end
                        	tmp_2 = tmp;
                        end
                        
                        code[i_, n_] := If[LessEqual[i, -7.2e+31], N[(0.0 / i), $MachinePrecision], If[LessEqual[i, 2e-16], N[(100.0 * n), $MachinePrecision], N[(0.0 / i), $MachinePrecision]]]
                        
                        \begin{array}{l}
                        
                        \\
                        \begin{array}{l}
                        \mathbf{if}\;i \leq -7.2 \cdot 10^{+31}:\\
                        \;\;\;\;\frac{0}{i}\\
                        
                        \mathbf{elif}\;i \leq 2 \cdot 10^{-16}:\\
                        \;\;\;\;100 \cdot n\\
                        
                        \mathbf{else}:\\
                        \;\;\;\;\frac{0}{i}\\
                        
                        
                        \end{array}
                        \end{array}
                        
                        Derivation
                        1. Split input into 2 regimes
                        2. if i < -7.19999999999999992e31 or 2e-16 < i

                          1. Initial program 56.8%

                            \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
                          2. Add Preprocessing
                          3. Step-by-step derivation
                            1. lift-/.f64N/A

                              \[\leadsto 100 \cdot \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}}} \]
                            2. lift--.f64N/A

                              \[\leadsto 100 \cdot \frac{\color{blue}{{\left(1 + \frac{i}{n}\right)}^{n} - 1}}{\frac{i}{n}} \]
                            3. div-subN/A

                              \[\leadsto 100 \cdot \color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \frac{1}{\frac{i}{n}}\right)} \]
                            4. lift-/.f64N/A

                              \[\leadsto 100 \cdot \left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \frac{1}{\color{blue}{\frac{i}{n}}}\right) \]
                            5. clear-numN/A

                              \[\leadsto 100 \cdot \left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} - \color{blue}{\frac{n}{i}}\right) \]
                            6. sub-negN/A

                              \[\leadsto 100 \cdot \color{blue}{\left(\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}} + \left(\mathsf{neg}\left(\frac{n}{i}\right)\right)\right)} \]
                            7. +-commutativeN/A

                              \[\leadsto 100 \cdot \color{blue}{\left(\left(\mathsf{neg}\left(\frac{n}{i}\right)\right) + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right)} \]
                            8. clear-numN/A

                              \[\leadsto 100 \cdot \left(\left(\mathsf{neg}\left(\color{blue}{\frac{1}{\frac{i}{n}}}\right)\right) + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            9. associate-/r/N/A

                              \[\leadsto 100 \cdot \left(\left(\mathsf{neg}\left(\color{blue}{\frac{1}{i} \cdot n}\right)\right) + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            10. distribute-lft-neg-inN/A

                              \[\leadsto 100 \cdot \left(\color{blue}{\left(\mathsf{neg}\left(\frac{1}{i}\right)\right) \cdot n} + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            11. distribute-frac-neg2N/A

                              \[\leadsto 100 \cdot \left(\color{blue}{\frac{1}{\mathsf{neg}\left(i\right)}} \cdot n + \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            12. lower-fma.f64N/A

                              \[\leadsto 100 \cdot \color{blue}{\mathsf{fma}\left(\frac{1}{\mathsf{neg}\left(i\right)}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right)} \]
                            13. frac-2negN/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\color{blue}{\frac{\mathsf{neg}\left(1\right)}{\mathsf{neg}\left(\left(\mathsf{neg}\left(i\right)\right)\right)}}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            14. remove-double-negN/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{\mathsf{neg}\left(1\right)}{\color{blue}{i}}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            15. lower-/.f64N/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\color{blue}{\frac{\mathsf{neg}\left(1\right)}{i}}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            16. metadata-evalN/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{\color{blue}{-1}}{i}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\frac{i}{n}}\right) \]
                            17. lift-/.f64N/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{-1}{i}, n, \frac{{\left(1 + \frac{i}{n}\right)}^{n}}{\color{blue}{\frac{i}{n}}}\right) \]
                            18. associate-/r/N/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{-1}{i}, n, \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{i} \cdot n}\right) \]
                            19. lower-*.f64N/A

                              \[\leadsto 100 \cdot \mathsf{fma}\left(\frac{-1}{i}, n, \color{blue}{\frac{{\left(1 + \frac{i}{n}\right)}^{n}}{i} \cdot n}\right) \]
                          4. Applied rewrites48.4%

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

                            \[\leadsto \color{blue}{100 \cdot \frac{n + -1 \cdot n}{i}} \]
                          6. Step-by-step derivation
                            1. associate-*r/N/A

                              \[\leadsto \color{blue}{\frac{100 \cdot \left(n + -1 \cdot n\right)}{i}} \]
                            2. distribute-rgt1-inN/A

                              \[\leadsto \frac{100 \cdot \color{blue}{\left(\left(-1 + 1\right) \cdot n\right)}}{i} \]
                            3. metadata-evalN/A

                              \[\leadsto \frac{100 \cdot \left(\color{blue}{0} \cdot n\right)}{i} \]
                            4. mul0-lftN/A

                              \[\leadsto \frac{100 \cdot \color{blue}{0}}{i} \]
                            5. metadata-evalN/A

                              \[\leadsto \frac{\color{blue}{0}}{i} \]
                            6. lower-/.f6427.5

                              \[\leadsto \color{blue}{\frac{0}{i}} \]
                          7. Applied rewrites27.5%

                            \[\leadsto \color{blue}{\frac{0}{i}} \]

                          if -7.19999999999999992e31 < i < 2e-16

                          1. Initial program 10.5%

                            \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
                          2. Add Preprocessing
                          3. Taylor expanded in i around 0

                            \[\leadsto \color{blue}{100 \cdot n} \]
                          4. Step-by-step derivation
                            1. lower-*.f6479.8

                              \[\leadsto \color{blue}{100 \cdot n} \]
                          5. Applied rewrites79.8%

                            \[\leadsto \color{blue}{100 \cdot n} \]
                        3. Recombined 2 regimes into one program.
                        4. Add Preprocessing

                        Alternative 16: 49.4% accurate, 24.3× speedup?

                        \[\begin{array}{l} \\ 100 \cdot n \end{array} \]
                        (FPCore (i n) :precision binary64 (* 100.0 n))
                        double code(double i, double n) {
                        	return 100.0 * n;
                        }
                        
                        real(8) function code(i, n)
                            real(8), intent (in) :: i
                            real(8), intent (in) :: n
                            code = 100.0d0 * n
                        end function
                        
                        public static double code(double i, double n) {
                        	return 100.0 * n;
                        }
                        
                        def code(i, n):
                        	return 100.0 * n
                        
                        function code(i, n)
                        	return Float64(100.0 * n)
                        end
                        
                        function tmp = code(i, n)
                        	tmp = 100.0 * n;
                        end
                        
                        code[i_, n_] := N[(100.0 * n), $MachinePrecision]
                        
                        \begin{array}{l}
                        
                        \\
                        100 \cdot n
                        \end{array}
                        
                        Derivation
                        1. Initial program 30.7%

                          \[100 \cdot \frac{{\left(1 + \frac{i}{n}\right)}^{n} - 1}{\frac{i}{n}} \]
                        2. Add Preprocessing
                        3. Taylor expanded in i around 0

                          \[\leadsto \color{blue}{100 \cdot n} \]
                        4. Step-by-step derivation
                          1. lower-*.f6447.3

                            \[\leadsto \color{blue}{100 \cdot n} \]
                        5. Applied rewrites47.3%

                          \[\leadsto \color{blue}{100 \cdot n} \]
                        6. Add Preprocessing

                        Developer Target 1: 34.0% accurate, 0.5× speedup?

                        \[\begin{array}{l} \\ \begin{array}{l} t_0 := 1 + \frac{i}{n}\\ 100 \cdot \frac{e^{n \cdot \begin{array}{l} \mathbf{if}\;t\_0 = 1:\\ \;\;\;\;\frac{i}{n}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{i}{n} \cdot \log t\_0}{\left(\frac{i}{n} + 1\right) - 1}\\ \end{array}} - 1}{\frac{i}{n}} \end{array} \end{array} \]
                        (FPCore (i n)
                         :precision binary64
                         (let* ((t_0 (+ 1.0 (/ i n))))
                           (*
                            100.0
                            (/
                             (-
                              (exp
                               (*
                                n
                                (if (== t_0 1.0)
                                  (/ i n)
                                  (/ (* (/ i n) (log t_0)) (- (+ (/ i n) 1.0) 1.0)))))
                              1.0)
                             (/ i n)))))
                        double code(double i, double n) {
                        	double t_0 = 1.0 + (i / n);
                        	double tmp;
                        	if (t_0 == 1.0) {
                        		tmp = i / n;
                        	} else {
                        		tmp = ((i / n) * log(t_0)) / (((i / n) + 1.0) - 1.0);
                        	}
                        	return 100.0 * ((exp((n * tmp)) - 1.0) / (i / n));
                        }
                        
                        real(8) function code(i, n)
                            real(8), intent (in) :: i
                            real(8), intent (in) :: n
                            real(8) :: t_0
                            real(8) :: tmp
                            t_0 = 1.0d0 + (i / n)
                            if (t_0 == 1.0d0) then
                                tmp = i / n
                            else
                                tmp = ((i / n) * log(t_0)) / (((i / n) + 1.0d0) - 1.0d0)
                            end if
                            code = 100.0d0 * ((exp((n * tmp)) - 1.0d0) / (i / n))
                        end function
                        
                        public static double code(double i, double n) {
                        	double t_0 = 1.0 + (i / n);
                        	double tmp;
                        	if (t_0 == 1.0) {
                        		tmp = i / n;
                        	} else {
                        		tmp = ((i / n) * Math.log(t_0)) / (((i / n) + 1.0) - 1.0);
                        	}
                        	return 100.0 * ((Math.exp((n * tmp)) - 1.0) / (i / n));
                        }
                        
                        def code(i, n):
                        	t_0 = 1.0 + (i / n)
                        	tmp = 0
                        	if t_0 == 1.0:
                        		tmp = i / n
                        	else:
                        		tmp = ((i / n) * math.log(t_0)) / (((i / n) + 1.0) - 1.0)
                        	return 100.0 * ((math.exp((n * tmp)) - 1.0) / (i / n))
                        
                        function code(i, n)
                        	t_0 = Float64(1.0 + Float64(i / n))
                        	tmp = 0.0
                        	if (t_0 == 1.0)
                        		tmp = Float64(i / n);
                        	else
                        		tmp = Float64(Float64(Float64(i / n) * log(t_0)) / Float64(Float64(Float64(i / n) + 1.0) - 1.0));
                        	end
                        	return Float64(100.0 * Float64(Float64(exp(Float64(n * tmp)) - 1.0) / Float64(i / n)))
                        end
                        
                        function tmp_2 = code(i, n)
                        	t_0 = 1.0 + (i / n);
                        	tmp = 0.0;
                        	if (t_0 == 1.0)
                        		tmp = i / n;
                        	else
                        		tmp = ((i / n) * log(t_0)) / (((i / n) + 1.0) - 1.0);
                        	end
                        	tmp_2 = 100.0 * ((exp((n * tmp)) - 1.0) / (i / n));
                        end
                        
                        code[i_, n_] := Block[{t$95$0 = N[(1.0 + N[(i / n), $MachinePrecision]), $MachinePrecision]}, N[(100.0 * N[(N[(N[Exp[N[(n * If[Equal[t$95$0, 1.0], N[(i / n), $MachinePrecision], N[(N[(N[(i / n), $MachinePrecision] * N[Log[t$95$0], $MachinePrecision]), $MachinePrecision] / N[(N[(N[(i / n), $MachinePrecision] + 1.0), $MachinePrecision] - 1.0), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]], $MachinePrecision] - 1.0), $MachinePrecision] / N[(i / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
                        
                        \begin{array}{l}
                        
                        \\
                        \begin{array}{l}
                        t_0 := 1 + \frac{i}{n}\\
                        100 \cdot \frac{e^{n \cdot \begin{array}{l}
                        \mathbf{if}\;t\_0 = 1:\\
                        \;\;\;\;\frac{i}{n}\\
                        
                        \mathbf{else}:\\
                        \;\;\;\;\frac{\frac{i}{n} \cdot \log t\_0}{\left(\frac{i}{n} + 1\right) - 1}\\
                        
                        
                        \end{array}} - 1}{\frac{i}{n}}
                        \end{array}
                        \end{array}
                        

                        Reproduce

                        ?
                        herbie shell --seed 2024268 
                        (FPCore (i n)
                          :name "Compound Interest"
                          :precision binary64
                        
                          :alt
                          (! :herbie-platform default (let ((lnbase (if (== (+ 1 (/ i n)) 1) (/ i n) (/ (* (/ i n) (log (+ 1 (/ i n)))) (- (+ (/ i n) 1) 1))))) (* 100 (/ (- (exp (* n lnbase)) 1) (/ i n)))))
                        
                          (* 100.0 (/ (- (pow (+ 1.0 (/ i n)) n) 1.0) (/ i n))))