2nthrt (problem 3.4.6)

Percentage Accurate: 53.4% → 86.0%
Time: 1.0min
Alternatives: 21
Speedup: 1.8×

Specification

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

\\
{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}
\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 21 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: 53.4% accurate, 1.0× speedup?

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

\\
{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}
\end{array}

Alternative 1: 86.0% accurate, 0.2× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := {\log x}^{2}\\ t_1 := {x}^{\left(\frac{1}{n}\right)}\\ t_2 := {\log x}^{3}\\ \mathbf{if}\;x \leq 1.08 \cdot 10^{-244}:\\ \;\;\;\;\frac{\frac{-0.16666666666666666 \cdot \frac{t\_2}{n} + -0.5 \cdot t\_0}{n} - \log x}{n}\\ \mathbf{elif}\;x \leq 6.8 \cdot 10^{-223}:\\ \;\;\;\;e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - t\_1\\ \mathbf{elif}\;x \leq 26500000:\\ \;\;\;\;\frac{\left(\mathsf{log1p}\left(x\right) + \frac{0.5 \cdot \left({\left(\mathsf{log1p}\left(x\right)\right)}^{2} - t\_0\right) + 0.16666666666666666 \cdot \frac{{\left(\mathsf{log1p}\left(x\right)\right)}^{3} - t\_2}{n}}{n}\right) - \log x}{n}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{t\_1}{n}}{x}\\ \end{array} \end{array} \]
(FPCore (x n)
 :precision binary64
 (let* ((t_0 (pow (log x) 2.0))
        (t_1 (pow x (/ 1.0 n)))
        (t_2 (pow (log x) 3.0)))
   (if (<= x 1.08e-244)
     (/
      (- (/ (+ (* -0.16666666666666666 (/ t_2 n)) (* -0.5 t_0)) n) (log x))
      n)
     (if (<= x 6.8e-223)
       (- (exp (/ (log1p x) n)) t_1)
       (if (<= x 26500000.0)
         (/
          (-
           (+
            (log1p x)
            (/
             (+
              (* 0.5 (- (pow (log1p x) 2.0) t_0))
              (* 0.16666666666666666 (/ (- (pow (log1p x) 3.0) t_2) n)))
             n))
           (log x))
          n)
         (/ (/ t_1 n) x))))))
double code(double x, double n) {
	double t_0 = pow(log(x), 2.0);
	double t_1 = pow(x, (1.0 / n));
	double t_2 = pow(log(x), 3.0);
	double tmp;
	if (x <= 1.08e-244) {
		tmp = ((((-0.16666666666666666 * (t_2 / n)) + (-0.5 * t_0)) / n) - log(x)) / n;
	} else if (x <= 6.8e-223) {
		tmp = exp((log1p(x) / n)) - t_1;
	} else if (x <= 26500000.0) {
		tmp = ((log1p(x) + (((0.5 * (pow(log1p(x), 2.0) - t_0)) + (0.16666666666666666 * ((pow(log1p(x), 3.0) - t_2) / n))) / n)) - log(x)) / n;
	} else {
		tmp = (t_1 / n) / x;
	}
	return tmp;
}
public static double code(double x, double n) {
	double t_0 = Math.pow(Math.log(x), 2.0);
	double t_1 = Math.pow(x, (1.0 / n));
	double t_2 = Math.pow(Math.log(x), 3.0);
	double tmp;
	if (x <= 1.08e-244) {
		tmp = ((((-0.16666666666666666 * (t_2 / n)) + (-0.5 * t_0)) / n) - Math.log(x)) / n;
	} else if (x <= 6.8e-223) {
		tmp = Math.exp((Math.log1p(x) / n)) - t_1;
	} else if (x <= 26500000.0) {
		tmp = ((Math.log1p(x) + (((0.5 * (Math.pow(Math.log1p(x), 2.0) - t_0)) + (0.16666666666666666 * ((Math.pow(Math.log1p(x), 3.0) - t_2) / n))) / n)) - Math.log(x)) / n;
	} else {
		tmp = (t_1 / n) / x;
	}
	return tmp;
}
def code(x, n):
	t_0 = math.pow(math.log(x), 2.0)
	t_1 = math.pow(x, (1.0 / n))
	t_2 = math.pow(math.log(x), 3.0)
	tmp = 0
	if x <= 1.08e-244:
		tmp = ((((-0.16666666666666666 * (t_2 / n)) + (-0.5 * t_0)) / n) - math.log(x)) / n
	elif x <= 6.8e-223:
		tmp = math.exp((math.log1p(x) / n)) - t_1
	elif x <= 26500000.0:
		tmp = ((math.log1p(x) + (((0.5 * (math.pow(math.log1p(x), 2.0) - t_0)) + (0.16666666666666666 * ((math.pow(math.log1p(x), 3.0) - t_2) / n))) / n)) - math.log(x)) / n
	else:
		tmp = (t_1 / n) / x
	return tmp
function code(x, n)
	t_0 = log(x) ^ 2.0
	t_1 = x ^ Float64(1.0 / n)
	t_2 = log(x) ^ 3.0
	tmp = 0.0
	if (x <= 1.08e-244)
		tmp = Float64(Float64(Float64(Float64(Float64(-0.16666666666666666 * Float64(t_2 / n)) + Float64(-0.5 * t_0)) / n) - log(x)) / n);
	elseif (x <= 6.8e-223)
		tmp = Float64(exp(Float64(log1p(x) / n)) - t_1);
	elseif (x <= 26500000.0)
		tmp = Float64(Float64(Float64(log1p(x) + Float64(Float64(Float64(0.5 * Float64((log1p(x) ^ 2.0) - t_0)) + Float64(0.16666666666666666 * Float64(Float64((log1p(x) ^ 3.0) - t_2) / n))) / n)) - log(x)) / n);
	else
		tmp = Float64(Float64(t_1 / n) / x);
	end
	return tmp
end
code[x_, n_] := Block[{t$95$0 = N[Power[N[Log[x], $MachinePrecision], 2.0], $MachinePrecision]}, Block[{t$95$1 = N[Power[x, N[(1.0 / n), $MachinePrecision]], $MachinePrecision]}, Block[{t$95$2 = N[Power[N[Log[x], $MachinePrecision], 3.0], $MachinePrecision]}, If[LessEqual[x, 1.08e-244], N[(N[(N[(N[(N[(-0.16666666666666666 * N[(t$95$2 / n), $MachinePrecision]), $MachinePrecision] + N[(-0.5 * t$95$0), $MachinePrecision]), $MachinePrecision] / n), $MachinePrecision] - N[Log[x], $MachinePrecision]), $MachinePrecision] / n), $MachinePrecision], If[LessEqual[x, 6.8e-223], N[(N[Exp[N[(N[Log[1 + x], $MachinePrecision] / n), $MachinePrecision]], $MachinePrecision] - t$95$1), $MachinePrecision], If[LessEqual[x, 26500000.0], N[(N[(N[(N[Log[1 + x], $MachinePrecision] + N[(N[(N[(0.5 * N[(N[Power[N[Log[1 + x], $MachinePrecision], 2.0], $MachinePrecision] - t$95$0), $MachinePrecision]), $MachinePrecision] + N[(0.16666666666666666 * N[(N[(N[Power[N[Log[1 + x], $MachinePrecision], 3.0], $MachinePrecision] - t$95$2), $MachinePrecision] / n), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / n), $MachinePrecision]), $MachinePrecision] - N[Log[x], $MachinePrecision]), $MachinePrecision] / n), $MachinePrecision], N[(N[(t$95$1 / n), $MachinePrecision] / x), $MachinePrecision]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := {\log x}^{2}\\
t_1 := {x}^{\left(\frac{1}{n}\right)}\\
t_2 := {\log x}^{3}\\
\mathbf{if}\;x \leq 1.08 \cdot 10^{-244}:\\
\;\;\;\;\frac{\frac{-0.16666666666666666 \cdot \frac{t\_2}{n} + -0.5 \cdot t\_0}{n} - \log x}{n}\\

\mathbf{elif}\;x \leq 6.8 \cdot 10^{-223}:\\
\;\;\;\;e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - t\_1\\

\mathbf{elif}\;x \leq 26500000:\\
\;\;\;\;\frac{\left(\mathsf{log1p}\left(x\right) + \frac{0.5 \cdot \left({\left(\mathsf{log1p}\left(x\right)\right)}^{2} - t\_0\right) + 0.16666666666666666 \cdot \frac{{\left(\mathsf{log1p}\left(x\right)\right)}^{3} - t\_2}{n}}{n}\right) - \log x}{n}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{t\_1}{n}}{x}\\


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if x < 1.07999999999999996e-244

    1. Initial program 39.7%

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

      \[\leadsto \color{blue}{1 - e^{\frac{\log x}{n}}} \]
    4. Step-by-step derivation
      1. *-rgt-identity39.7%

        \[\leadsto 1 - e^{\color{blue}{\frac{\log x}{n} \cdot 1}} \]
      2. associate-*l/39.7%

        \[\leadsto 1 - e^{\color{blue}{\frac{\log x \cdot 1}{n}}} \]
      3. associate-/l*39.7%

        \[\leadsto 1 - e^{\color{blue}{\log x \cdot \frac{1}{n}}} \]
      4. exp-to-pow39.7%

        \[\leadsto 1 - \color{blue}{{x}^{\left(\frac{1}{n}\right)}} \]
    5. Simplified39.7%

      \[\leadsto \color{blue}{1 - {x}^{\left(\frac{1}{n}\right)}} \]
    6. Taylor expanded in n around -inf 72.6%

      \[\leadsto \color{blue}{-1 \cdot \frac{-1 \cdot \frac{-0.16666666666666666 \cdot \frac{{\log x}^{3}}{n} - 0.5 \cdot {\log x}^{2}}{n} - -1 \cdot \log x}{n}} \]
    7. Step-by-step derivation
      1. mul-1-neg72.6%

        \[\leadsto \color{blue}{-\frac{-1 \cdot \frac{-0.16666666666666666 \cdot \frac{{\log x}^{3}}{n} - 0.5 \cdot {\log x}^{2}}{n} - -1 \cdot \log x}{n}} \]
    8. Simplified72.6%

      \[\leadsto \color{blue}{-\frac{-1 \cdot \left(\frac{-0.16666666666666666 \cdot \frac{{\log x}^{3}}{n} + -0.5 \cdot {\log x}^{2}}{n} - \log x\right)}{n}} \]

    if 1.07999999999999996e-244 < x < 6.7999999999999996e-223

    1. Initial program 73.0%

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

      \[\leadsto \color{blue}{e^{\frac{\log \left(1 + x\right)}{n}} - e^{\frac{\log x}{n}}} \]
    4. Step-by-step derivation
      1. log1p-define79.2%

        \[\leadsto e^{\frac{\color{blue}{\mathsf{log1p}\left(x\right)}}{n}} - e^{\frac{\log x}{n}} \]
      2. *-rgt-identity79.2%

        \[\leadsto e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - e^{\color{blue}{\frac{\log x}{n} \cdot 1}} \]
      3. associate-*l/79.2%

        \[\leadsto e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - e^{\color{blue}{\frac{\log x \cdot 1}{n}}} \]
      4. associate-/l*79.2%

        \[\leadsto e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - e^{\color{blue}{\log x \cdot \frac{1}{n}}} \]
      5. exp-to-pow79.2%

        \[\leadsto e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - \color{blue}{{x}^{\left(\frac{1}{n}\right)}} \]
    5. Simplified79.2%

      \[\leadsto \color{blue}{e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - {x}^{\left(\frac{1}{n}\right)}} \]

    if 6.7999999999999996e-223 < x < 2.65e7

    1. Initial program 36.0%

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

      \[\leadsto \color{blue}{-1 \cdot \frac{\left(-1 \cdot \log \left(1 + x\right) + -1 \cdot \frac{\left(-1 \cdot \frac{-0.16666666666666666 \cdot {\log \left(1 + x\right)}^{3} - -0.16666666666666666 \cdot {\log x}^{3}}{n} + 0.5 \cdot {\log \left(1 + x\right)}^{2}\right) - 0.5 \cdot {\log x}^{2}}{n}\right) - -1 \cdot \log x}{n}} \]
    4. Simplified87.7%

      \[\leadsto \color{blue}{\frac{\log x - \left(\mathsf{log1p}\left(x\right) + \frac{0.5 \cdot \left({\left(\mathsf{log1p}\left(x\right)\right)}^{2} - {\log x}^{2}\right) + 0.16666666666666666 \cdot \frac{{\left(\mathsf{log1p}\left(x\right)\right)}^{3} - {\log x}^{3}}{n}}{n}\right)}{-n}} \]

    if 2.65e7 < x

    1. Initial program 67.3%

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

      \[\leadsto \color{blue}{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n \cdot x}} \]
    4. Step-by-step derivation
      1. associate-/r*99.8%

        \[\leadsto \color{blue}{\frac{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n}}{x}} \]
      2. mul-1-neg99.8%

        \[\leadsto \frac{\frac{e^{\color{blue}{-\frac{\log \left(\frac{1}{x}\right)}{n}}}}{n}}{x} \]
      3. log-rec99.8%

        \[\leadsto \frac{\frac{e^{-\frac{\color{blue}{-\log x}}{n}}}{n}}{x} \]
      4. mul-1-neg99.8%

        \[\leadsto \frac{\frac{e^{-\frac{\color{blue}{-1 \cdot \log x}}{n}}}{n}}{x} \]
      5. distribute-neg-frac99.8%

        \[\leadsto \frac{\frac{e^{\color{blue}{\frac{--1 \cdot \log x}{n}}}}{n}}{x} \]
      6. mul-1-neg99.8%

        \[\leadsto \frac{\frac{e^{\frac{-\color{blue}{\left(-\log x\right)}}{n}}}{n}}{x} \]
      7. remove-double-neg99.8%

        \[\leadsto \frac{\frac{e^{\frac{\color{blue}{\log x}}{n}}}{n}}{x} \]
      8. *-rgt-identity99.8%

        \[\leadsto \frac{\frac{e^{\frac{\color{blue}{\log x \cdot 1}}{n}}}{n}}{x} \]
      9. associate-/l*99.7%

        \[\leadsto \frac{\frac{e^{\color{blue}{\log x \cdot \frac{1}{n}}}}{n}}{x} \]
      10. exp-to-pow99.8%

        \[\leadsto \frac{\frac{\color{blue}{{x}^{\left(\frac{1}{n}\right)}}}{n}}{x} \]
    5. Simplified99.8%

      \[\leadsto \color{blue}{\frac{\frac{{x}^{\left(\frac{1}{n}\right)}}{n}}{x}} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification90.9%

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq 1.08 \cdot 10^{-244}:\\ \;\;\;\;\frac{\frac{-0.16666666666666666 \cdot \frac{{\log x}^{3}}{n} + -0.5 \cdot {\log x}^{2}}{n} - \log x}{n}\\ \mathbf{elif}\;x \leq 6.8 \cdot 10^{-223}:\\ \;\;\;\;e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{elif}\;x \leq 26500000:\\ \;\;\;\;\frac{\left(\mathsf{log1p}\left(x\right) + \frac{0.5 \cdot \left({\left(\mathsf{log1p}\left(x\right)\right)}^{2} - {\log x}^{2}\right) + 0.16666666666666666 \cdot \frac{{\left(\mathsf{log1p}\left(x\right)\right)}^{3} - {\log x}^{3}}{n}}{n}\right) - \log x}{n}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{{x}^{\left(\frac{1}{n}\right)}}{n}}{x}\\ \end{array} \]
  5. Add Preprocessing

Alternative 2: 85.5% accurate, 0.4× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{\frac{-0.16666666666666666 \cdot \frac{{\log x}^{3}}{n} + -0.5 \cdot {\log x}^{2}}{n} - \log x}{n}\\ t_1 := {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{if}\;x \leq 1.08 \cdot 10^{-244}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x \leq 6.8 \cdot 10^{-223}:\\ \;\;\;\;e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - t\_1\\ \mathbf{elif}\;x \leq 1:\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{t\_1}{n}}{x}\\ \end{array} \end{array} \]
(FPCore (x n)
 :precision binary64
 (let* ((t_0
         (/
          (-
           (/
            (+
             (* -0.16666666666666666 (/ (pow (log x) 3.0) n))
             (* -0.5 (pow (log x) 2.0)))
            n)
           (log x))
          n))
        (t_1 (pow x (/ 1.0 n))))
   (if (<= x 1.08e-244)
     t_0
     (if (<= x 6.8e-223)
       (- (exp (/ (log1p x) n)) t_1)
       (if (<= x 1.0) t_0 (/ (/ t_1 n) x))))))
double code(double x, double n) {
	double t_0 = ((((-0.16666666666666666 * (pow(log(x), 3.0) / n)) + (-0.5 * pow(log(x), 2.0))) / n) - log(x)) / n;
	double t_1 = pow(x, (1.0 / n));
	double tmp;
	if (x <= 1.08e-244) {
		tmp = t_0;
	} else if (x <= 6.8e-223) {
		tmp = exp((log1p(x) / n)) - t_1;
	} else if (x <= 1.0) {
		tmp = t_0;
	} else {
		tmp = (t_1 / n) / x;
	}
	return tmp;
}
public static double code(double x, double n) {
	double t_0 = ((((-0.16666666666666666 * (Math.pow(Math.log(x), 3.0) / n)) + (-0.5 * Math.pow(Math.log(x), 2.0))) / n) - Math.log(x)) / n;
	double t_1 = Math.pow(x, (1.0 / n));
	double tmp;
	if (x <= 1.08e-244) {
		tmp = t_0;
	} else if (x <= 6.8e-223) {
		tmp = Math.exp((Math.log1p(x) / n)) - t_1;
	} else if (x <= 1.0) {
		tmp = t_0;
	} else {
		tmp = (t_1 / n) / x;
	}
	return tmp;
}
def code(x, n):
	t_0 = ((((-0.16666666666666666 * (math.pow(math.log(x), 3.0) / n)) + (-0.5 * math.pow(math.log(x), 2.0))) / n) - math.log(x)) / n
	t_1 = math.pow(x, (1.0 / n))
	tmp = 0
	if x <= 1.08e-244:
		tmp = t_0
	elif x <= 6.8e-223:
		tmp = math.exp((math.log1p(x) / n)) - t_1
	elif x <= 1.0:
		tmp = t_0
	else:
		tmp = (t_1 / n) / x
	return tmp
function code(x, n)
	t_0 = Float64(Float64(Float64(Float64(Float64(-0.16666666666666666 * Float64((log(x) ^ 3.0) / n)) + Float64(-0.5 * (log(x) ^ 2.0))) / n) - log(x)) / n)
	t_1 = x ^ Float64(1.0 / n)
	tmp = 0.0
	if (x <= 1.08e-244)
		tmp = t_0;
	elseif (x <= 6.8e-223)
		tmp = Float64(exp(Float64(log1p(x) / n)) - t_1);
	elseif (x <= 1.0)
		tmp = t_0;
	else
		tmp = Float64(Float64(t_1 / n) / x);
	end
	return tmp
end
code[x_, n_] := Block[{t$95$0 = N[(N[(N[(N[(N[(-0.16666666666666666 * N[(N[Power[N[Log[x], $MachinePrecision], 3.0], $MachinePrecision] / n), $MachinePrecision]), $MachinePrecision] + N[(-0.5 * N[Power[N[Log[x], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / n), $MachinePrecision] - N[Log[x], $MachinePrecision]), $MachinePrecision] / n), $MachinePrecision]}, Block[{t$95$1 = N[Power[x, N[(1.0 / n), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[x, 1.08e-244], t$95$0, If[LessEqual[x, 6.8e-223], N[(N[Exp[N[(N[Log[1 + x], $MachinePrecision] / n), $MachinePrecision]], $MachinePrecision] - t$95$1), $MachinePrecision], If[LessEqual[x, 1.0], t$95$0, N[(N[(t$95$1 / n), $MachinePrecision] / x), $MachinePrecision]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{\frac{-0.16666666666666666 \cdot \frac{{\log x}^{3}}{n} + -0.5 \cdot {\log x}^{2}}{n} - \log x}{n}\\
t_1 := {x}^{\left(\frac{1}{n}\right)}\\
\mathbf{if}\;x \leq 1.08 \cdot 10^{-244}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x \leq 6.8 \cdot 10^{-223}:\\
\;\;\;\;e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - t\_1\\

\mathbf{elif}\;x \leq 1:\\
\;\;\;\;t\_0\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{t\_1}{n}}{x}\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if x < 1.07999999999999996e-244 or 6.7999999999999996e-223 < x < 1

    1. Initial program 37.1%

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

      \[\leadsto \color{blue}{1 - e^{\frac{\log x}{n}}} \]
    4. Step-by-step derivation
      1. *-rgt-identity35.6%

        \[\leadsto 1 - e^{\color{blue}{\frac{\log x}{n} \cdot 1}} \]
      2. associate-*l/35.6%

        \[\leadsto 1 - e^{\color{blue}{\frac{\log x \cdot 1}{n}}} \]
      3. associate-/l*35.6%

        \[\leadsto 1 - e^{\color{blue}{\log x \cdot \frac{1}{n}}} \]
      4. exp-to-pow35.6%

        \[\leadsto 1 - \color{blue}{{x}^{\left(\frac{1}{n}\right)}} \]
    5. Simplified35.6%

      \[\leadsto \color{blue}{1 - {x}^{\left(\frac{1}{n}\right)}} \]
    6. Taylor expanded in n around -inf 84.3%

      \[\leadsto \color{blue}{-1 \cdot \frac{-1 \cdot \frac{-0.16666666666666666 \cdot \frac{{\log x}^{3}}{n} - 0.5 \cdot {\log x}^{2}}{n} - -1 \cdot \log x}{n}} \]
    7. Step-by-step derivation
      1. mul-1-neg84.3%

        \[\leadsto \color{blue}{-\frac{-1 \cdot \frac{-0.16666666666666666 \cdot \frac{{\log x}^{3}}{n} - 0.5 \cdot {\log x}^{2}}{n} - -1 \cdot \log x}{n}} \]
    8. Simplified84.3%

      \[\leadsto \color{blue}{-\frac{-1 \cdot \left(\frac{-0.16666666666666666 \cdot \frac{{\log x}^{3}}{n} + -0.5 \cdot {\log x}^{2}}{n} - \log x\right)}{n}} \]

    if 1.07999999999999996e-244 < x < 6.7999999999999996e-223

    1. Initial program 73.0%

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

      \[\leadsto \color{blue}{e^{\frac{\log \left(1 + x\right)}{n}} - e^{\frac{\log x}{n}}} \]
    4. Step-by-step derivation
      1. log1p-define79.2%

        \[\leadsto e^{\frac{\color{blue}{\mathsf{log1p}\left(x\right)}}{n}} - e^{\frac{\log x}{n}} \]
      2. *-rgt-identity79.2%

        \[\leadsto e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - e^{\color{blue}{\frac{\log x}{n} \cdot 1}} \]
      3. associate-*l/79.2%

        \[\leadsto e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - e^{\color{blue}{\frac{\log x \cdot 1}{n}}} \]
      4. associate-/l*79.2%

        \[\leadsto e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - e^{\color{blue}{\log x \cdot \frac{1}{n}}} \]
      5. exp-to-pow79.2%

        \[\leadsto e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - \color{blue}{{x}^{\left(\frac{1}{n}\right)}} \]
    5. Simplified79.2%

      \[\leadsto \color{blue}{e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - {x}^{\left(\frac{1}{n}\right)}} \]

    if 1 < x

    1. Initial program 66.2%

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

      \[\leadsto \color{blue}{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n \cdot x}} \]
    4. Step-by-step derivation
      1. associate-/r*98.9%

        \[\leadsto \color{blue}{\frac{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n}}{x}} \]
      2. mul-1-neg98.9%

        \[\leadsto \frac{\frac{e^{\color{blue}{-\frac{\log \left(\frac{1}{x}\right)}{n}}}}{n}}{x} \]
      3. log-rec98.9%

        \[\leadsto \frac{\frac{e^{-\frac{\color{blue}{-\log x}}{n}}}{n}}{x} \]
      4. mul-1-neg98.9%

        \[\leadsto \frac{\frac{e^{-\frac{\color{blue}{-1 \cdot \log x}}{n}}}{n}}{x} \]
      5. distribute-neg-frac98.9%

        \[\leadsto \frac{\frac{e^{\color{blue}{\frac{--1 \cdot \log x}{n}}}}{n}}{x} \]
      6. mul-1-neg98.9%

        \[\leadsto \frac{\frac{e^{\frac{-\color{blue}{\left(-\log x\right)}}{n}}}{n}}{x} \]
      7. remove-double-neg98.9%

        \[\leadsto \frac{\frac{e^{\frac{\color{blue}{\log x}}{n}}}{n}}{x} \]
      8. *-rgt-identity98.9%

        \[\leadsto \frac{\frac{e^{\frac{\color{blue}{\log x \cdot 1}}{n}}}{n}}{x} \]
      9. associate-/l*98.9%

        \[\leadsto \frac{\frac{e^{\color{blue}{\log x \cdot \frac{1}{n}}}}{n}}{x} \]
      10. exp-to-pow98.9%

        \[\leadsto \frac{\frac{\color{blue}{{x}^{\left(\frac{1}{n}\right)}}}{n}}{x} \]
    5. Simplified98.9%

      \[\leadsto \color{blue}{\frac{\frac{{x}^{\left(\frac{1}{n}\right)}}{n}}{x}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification90.3%

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq 1.08 \cdot 10^{-244}:\\ \;\;\;\;\frac{\frac{-0.16666666666666666 \cdot \frac{{\log x}^{3}}{n} + -0.5 \cdot {\log x}^{2}}{n} - \log x}{n}\\ \mathbf{elif}\;x \leq 6.8 \cdot 10^{-223}:\\ \;\;\;\;e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{elif}\;x \leq 1:\\ \;\;\;\;\frac{\frac{-0.16666666666666666 \cdot \frac{{\log x}^{3}}{n} + -0.5 \cdot {\log x}^{2}}{n} - \log x}{n}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{{x}^{\left(\frac{1}{n}\right)}}{n}}{x}\\ \end{array} \]
  5. Add Preprocessing

Alternative 3: 85.3% accurate, 0.4× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{if}\;\frac{1}{n} \leq -0.001:\\ \;\;\;\;\frac{{\left(\sqrt[3]{{t\_0}^{1.5}}\right)}^{2}}{x \cdot n}\\ \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{-24}:\\ \;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\ \mathbf{else}:\\ \;\;\;\;\log \left(e^{e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - t\_0}\right)\\ \end{array} \end{array} \]
(FPCore (x n)
 :precision binary64
 (let* ((t_0 (pow x (/ 1.0 n))))
   (if (<= (/ 1.0 n) -0.001)
     (/ (pow (cbrt (pow t_0 1.5)) 2.0) (* x n))
     (if (<= (/ 1.0 n) 2e-24)
       (/ (log (/ (+ x 1.0) x)) n)
       (log (exp (- (exp (/ (log1p x) n)) t_0)))))))
double code(double x, double n) {
	double t_0 = pow(x, (1.0 / n));
	double tmp;
	if ((1.0 / n) <= -0.001) {
		tmp = pow(cbrt(pow(t_0, 1.5)), 2.0) / (x * n);
	} else if ((1.0 / n) <= 2e-24) {
		tmp = log(((x + 1.0) / x)) / n;
	} else {
		tmp = log(exp((exp((log1p(x) / n)) - t_0)));
	}
	return tmp;
}
public static double code(double x, double n) {
	double t_0 = Math.pow(x, (1.0 / n));
	double tmp;
	if ((1.0 / n) <= -0.001) {
		tmp = Math.pow(Math.cbrt(Math.pow(t_0, 1.5)), 2.0) / (x * n);
	} else if ((1.0 / n) <= 2e-24) {
		tmp = Math.log(((x + 1.0) / x)) / n;
	} else {
		tmp = Math.log(Math.exp((Math.exp((Math.log1p(x) / n)) - t_0)));
	}
	return tmp;
}
function code(x, n)
	t_0 = x ^ Float64(1.0 / n)
	tmp = 0.0
	if (Float64(1.0 / n) <= -0.001)
		tmp = Float64((cbrt((t_0 ^ 1.5)) ^ 2.0) / Float64(x * n));
	elseif (Float64(1.0 / n) <= 2e-24)
		tmp = Float64(log(Float64(Float64(x + 1.0) / x)) / n);
	else
		tmp = log(exp(Float64(exp(Float64(log1p(x) / n)) - t_0)));
	end
	return tmp
end
code[x_, n_] := Block[{t$95$0 = N[Power[x, N[(1.0 / n), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[N[(1.0 / n), $MachinePrecision], -0.001], N[(N[Power[N[Power[N[Power[t$95$0, 1.5], $MachinePrecision], 1/3], $MachinePrecision], 2.0], $MachinePrecision] / N[(x * n), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(1.0 / n), $MachinePrecision], 2e-24], N[(N[Log[N[(N[(x + 1.0), $MachinePrecision] / x), $MachinePrecision]], $MachinePrecision] / n), $MachinePrecision], N[Log[N[Exp[N[(N[Exp[N[(N[Log[1 + x], $MachinePrecision] / n), $MachinePrecision]], $MachinePrecision] - t$95$0), $MachinePrecision]], $MachinePrecision]], $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := {x}^{\left(\frac{1}{n}\right)}\\
\mathbf{if}\;\frac{1}{n} \leq -0.001:\\
\;\;\;\;\frac{{\left(\sqrt[3]{{t\_0}^{1.5}}\right)}^{2}}{x \cdot n}\\

\mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{-24}:\\
\;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\

\mathbf{else}:\\
\;\;\;\;\log \left(e^{e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - t\_0}\right)\\


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

    1. Initial program 95.6%

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

      \[\leadsto \color{blue}{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n \cdot x}} \]
    4. Step-by-step derivation
      1. mul-1-neg99.8%

        \[\leadsto \frac{e^{\color{blue}{-\frac{\log \left(\frac{1}{x}\right)}{n}}}}{n \cdot x} \]
      2. log-rec99.8%

        \[\leadsto \frac{e^{-\frac{\color{blue}{-\log x}}{n}}}{n \cdot x} \]
      3. mul-1-neg99.8%

        \[\leadsto \frac{e^{-\frac{\color{blue}{-1 \cdot \log x}}{n}}}{n \cdot x} \]
      4. distribute-neg-frac99.8%

        \[\leadsto \frac{e^{\color{blue}{\frac{--1 \cdot \log x}{n}}}}{n \cdot x} \]
      5. mul-1-neg99.8%

        \[\leadsto \frac{e^{\frac{-\color{blue}{\left(-\log x\right)}}{n}}}{n \cdot x} \]
      6. remove-double-neg99.8%

        \[\leadsto \frac{e^{\frac{\color{blue}{\log x}}{n}}}{n \cdot x} \]
      7. *-commutative99.8%

        \[\leadsto \frac{e^{\frac{\log x}{n}}}{\color{blue}{x \cdot n}} \]
    5. Simplified99.8%

      \[\leadsto \color{blue}{\frac{e^{\frac{\log x}{n}}}{x \cdot n}} \]
    6. Step-by-step derivation
      1. div-inv99.8%

        \[\leadsto \frac{e^{\color{blue}{\log x \cdot \frac{1}{n}}}}{x \cdot n} \]
      2. pow-to-exp99.8%

        \[\leadsto \frac{\color{blue}{{x}^{\left(\frac{1}{n}\right)}}}{x \cdot n} \]
      3. add-sqr-sqrt99.8%

        \[\leadsto \frac{\color{blue}{\sqrt{{x}^{\left(\frac{1}{n}\right)}} \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}}}{x \cdot n} \]
      4. pow299.8%

        \[\leadsto \frac{\color{blue}{{\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{2}}}{x \cdot n} \]
    7. Applied egg-rr99.8%

      \[\leadsto \frac{\color{blue}{{\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{2}}}{x \cdot n} \]
    8. Step-by-step derivation
      1. add-cbrt-cube99.8%

        \[\leadsto \frac{{\color{blue}{\left(\sqrt[3]{\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}} \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}\right) \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}}\right)}}^{2}}{x \cdot n} \]
      2. pow1/399.8%

        \[\leadsto \frac{{\color{blue}{\left({\left(\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}} \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}\right) \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{0.3333333333333333}\right)}}^{2}}{x \cdot n} \]
      3. unpow299.8%

        \[\leadsto \frac{{\left({\left(\color{blue}{{\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{2}} \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{0.3333333333333333}\right)}^{2}}{x \cdot n} \]
      4. pow199.8%

        \[\leadsto \frac{{\left({\left(\color{blue}{{\left({\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{2}\right)}^{1}} \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{0.3333333333333333}\right)}^{2}}{x \cdot n} \]
      5. pow1/299.8%

        \[\leadsto \frac{{\left({\left({\left({\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{2}\right)}^{1} \cdot \color{blue}{{\left({x}^{\left(\frac{1}{n}\right)}\right)}^{0.5}}\right)}^{0.3333333333333333}\right)}^{2}}{x \cdot n} \]
      6. add-sqr-sqrt99.8%

        \[\leadsto \frac{{\left({\left({\left({\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{2}\right)}^{1} \cdot {\color{blue}{\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}} \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}}^{0.5}\right)}^{0.3333333333333333}\right)}^{2}}{x \cdot n} \]
      7. unpow299.8%

        \[\leadsto \frac{{\left({\left({\left({\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{2}\right)}^{1} \cdot {\color{blue}{\left({\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{2}\right)}}^{0.5}\right)}^{0.3333333333333333}\right)}^{2}}{x \cdot n} \]
      8. pow-prod-up99.8%

        \[\leadsto \frac{{\left({\color{blue}{\left({\left({\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{2}\right)}^{\left(1 + 0.5\right)}\right)}}^{0.3333333333333333}\right)}^{2}}{x \cdot n} \]
      9. unpow299.8%

        \[\leadsto \frac{{\left({\left({\color{blue}{\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}} \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}}^{\left(1 + 0.5\right)}\right)}^{0.3333333333333333}\right)}^{2}}{x \cdot n} \]
      10. add-sqr-sqrt99.8%

        \[\leadsto \frac{{\left({\left({\color{blue}{\left({x}^{\left(\frac{1}{n}\right)}\right)}}^{\left(1 + 0.5\right)}\right)}^{0.3333333333333333}\right)}^{2}}{x \cdot n} \]
      11. metadata-eval99.8%

        \[\leadsto \frac{{\left({\left({\left({x}^{\left(\frac{1}{n}\right)}\right)}^{\color{blue}{1.5}}\right)}^{0.3333333333333333}\right)}^{2}}{x \cdot n} \]
    9. Applied egg-rr99.8%

      \[\leadsto \frac{{\color{blue}{\left({\left({\left({x}^{\left(\frac{1}{n}\right)}\right)}^{1.5}\right)}^{0.3333333333333333}\right)}}^{2}}{x \cdot n} \]
    10. Step-by-step derivation
      1. unpow1/399.8%

        \[\leadsto \frac{{\color{blue}{\left(\sqrt[3]{{\left({x}^{\left(\frac{1}{n}\right)}\right)}^{1.5}}\right)}}^{2}}{x \cdot n} \]
    11. Simplified99.8%

      \[\leadsto \frac{{\color{blue}{\left(\sqrt[3]{{\left({x}^{\left(\frac{1}{n}\right)}\right)}^{1.5}}\right)}}^{2}}{x \cdot n} \]

    if -1e-3 < (/.f64 #s(literal 1 binary64) n) < 1.99999999999999985e-24

    1. Initial program 33.2%

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

      \[\leadsto \color{blue}{\frac{\log \left(1 + x\right) - \log x}{n}} \]
    4. Step-by-step derivation
      1. log1p-define77.3%

        \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n} \]
    5. Simplified77.3%

      \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) - \log x}{n}} \]
    6. Step-by-step derivation
      1. log1p-undefine77.3%

        \[\leadsto \frac{\color{blue}{\log \left(1 + x\right)} - \log x}{n} \]
      2. diff-log77.4%

        \[\leadsto \frac{\color{blue}{\log \left(\frac{1 + x}{x}\right)}}{n} \]
    7. Applied egg-rr77.4%

      \[\leadsto \frac{\color{blue}{\log \left(\frac{1 + x}{x}\right)}}{n} \]
    8. Step-by-step derivation
      1. +-commutative77.4%

        \[\leadsto \frac{\log \left(\frac{\color{blue}{x + 1}}{x}\right)}{n} \]
    9. Simplified77.4%

      \[\leadsto \frac{\color{blue}{\log \left(\frac{x + 1}{x}\right)}}{n} \]

    if 1.99999999999999985e-24 < (/.f64 #s(literal 1 binary64) n)

    1. Initial program 52.3%

      \[{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. add-log-exp52.4%

        \[\leadsto \color{blue}{\log \left(e^{{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}}\right)} \]
      2. pow-to-exp52.3%

        \[\leadsto \log \left(e^{\color{blue}{e^{\log \left(x + 1\right) \cdot \frac{1}{n}}} - {x}^{\left(\frac{1}{n}\right)}}\right) \]
      3. un-div-inv52.4%

        \[\leadsto \log \left(e^{e^{\color{blue}{\frac{\log \left(x + 1\right)}{n}}} - {x}^{\left(\frac{1}{n}\right)}}\right) \]
      4. +-commutative52.4%

        \[\leadsto \log \left(e^{e^{\frac{\log \color{blue}{\left(1 + x\right)}}{n}} - {x}^{\left(\frac{1}{n}\right)}}\right) \]
      5. log1p-define93.4%

        \[\leadsto \log \left(e^{e^{\frac{\color{blue}{\mathsf{log1p}\left(x\right)}}{n}} - {x}^{\left(\frac{1}{n}\right)}}\right) \]
    4. Applied egg-rr93.4%

      \[\leadsto \color{blue}{\log \left(e^{e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - {x}^{\left(\frac{1}{n}\right)}}\right)} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification85.7%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{1}{n} \leq -0.001:\\ \;\;\;\;\frac{{\left(\sqrt[3]{{\left({x}^{\left(\frac{1}{n}\right)}\right)}^{1.5}}\right)}^{2}}{x \cdot n}\\ \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{-24}:\\ \;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\ \mathbf{else}:\\ \;\;\;\;\log \left(e^{e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - {x}^{\left(\frac{1}{n}\right)}}\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 4: 85.4% accurate, 0.5× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{if}\;\frac{1}{n} \leq -0.001:\\ \;\;\;\;\frac{{\left(\sqrt[3]{{t\_0}^{1.5}}\right)}^{2}}{x \cdot n}\\ \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{-24}:\\ \;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\ \mathbf{else}:\\ \;\;\;\;e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - t\_0\\ \end{array} \end{array} \]
(FPCore (x n)
 :precision binary64
 (let* ((t_0 (pow x (/ 1.0 n))))
   (if (<= (/ 1.0 n) -0.001)
     (/ (pow (cbrt (pow t_0 1.5)) 2.0) (* x n))
     (if (<= (/ 1.0 n) 2e-24)
       (/ (log (/ (+ x 1.0) x)) n)
       (- (exp (/ (log1p x) n)) t_0)))))
double code(double x, double n) {
	double t_0 = pow(x, (1.0 / n));
	double tmp;
	if ((1.0 / n) <= -0.001) {
		tmp = pow(cbrt(pow(t_0, 1.5)), 2.0) / (x * n);
	} else if ((1.0 / n) <= 2e-24) {
		tmp = log(((x + 1.0) / x)) / n;
	} else {
		tmp = exp((log1p(x) / n)) - t_0;
	}
	return tmp;
}
public static double code(double x, double n) {
	double t_0 = Math.pow(x, (1.0 / n));
	double tmp;
	if ((1.0 / n) <= -0.001) {
		tmp = Math.pow(Math.cbrt(Math.pow(t_0, 1.5)), 2.0) / (x * n);
	} else if ((1.0 / n) <= 2e-24) {
		tmp = Math.log(((x + 1.0) / x)) / n;
	} else {
		tmp = Math.exp((Math.log1p(x) / n)) - t_0;
	}
	return tmp;
}
function code(x, n)
	t_0 = x ^ Float64(1.0 / n)
	tmp = 0.0
	if (Float64(1.0 / n) <= -0.001)
		tmp = Float64((cbrt((t_0 ^ 1.5)) ^ 2.0) / Float64(x * n));
	elseif (Float64(1.0 / n) <= 2e-24)
		tmp = Float64(log(Float64(Float64(x + 1.0) / x)) / n);
	else
		tmp = Float64(exp(Float64(log1p(x) / n)) - t_0);
	end
	return tmp
end
code[x_, n_] := Block[{t$95$0 = N[Power[x, N[(1.0 / n), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[N[(1.0 / n), $MachinePrecision], -0.001], N[(N[Power[N[Power[N[Power[t$95$0, 1.5], $MachinePrecision], 1/3], $MachinePrecision], 2.0], $MachinePrecision] / N[(x * n), $MachinePrecision]), $MachinePrecision], If[LessEqual[N[(1.0 / n), $MachinePrecision], 2e-24], N[(N[Log[N[(N[(x + 1.0), $MachinePrecision] / x), $MachinePrecision]], $MachinePrecision] / n), $MachinePrecision], N[(N[Exp[N[(N[Log[1 + x], $MachinePrecision] / n), $MachinePrecision]], $MachinePrecision] - t$95$0), $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := {x}^{\left(\frac{1}{n}\right)}\\
\mathbf{if}\;\frac{1}{n} \leq -0.001:\\
\;\;\;\;\frac{{\left(\sqrt[3]{{t\_0}^{1.5}}\right)}^{2}}{x \cdot n}\\

\mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{-24}:\\
\;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\

\mathbf{else}:\\
\;\;\;\;e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - t\_0\\


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

    1. Initial program 95.6%

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

      \[\leadsto \color{blue}{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n \cdot x}} \]
    4. Step-by-step derivation
      1. mul-1-neg99.8%

        \[\leadsto \frac{e^{\color{blue}{-\frac{\log \left(\frac{1}{x}\right)}{n}}}}{n \cdot x} \]
      2. log-rec99.8%

        \[\leadsto \frac{e^{-\frac{\color{blue}{-\log x}}{n}}}{n \cdot x} \]
      3. mul-1-neg99.8%

        \[\leadsto \frac{e^{-\frac{\color{blue}{-1 \cdot \log x}}{n}}}{n \cdot x} \]
      4. distribute-neg-frac99.8%

        \[\leadsto \frac{e^{\color{blue}{\frac{--1 \cdot \log x}{n}}}}{n \cdot x} \]
      5. mul-1-neg99.8%

        \[\leadsto \frac{e^{\frac{-\color{blue}{\left(-\log x\right)}}{n}}}{n \cdot x} \]
      6. remove-double-neg99.8%

        \[\leadsto \frac{e^{\frac{\color{blue}{\log x}}{n}}}{n \cdot x} \]
      7. *-commutative99.8%

        \[\leadsto \frac{e^{\frac{\log x}{n}}}{\color{blue}{x \cdot n}} \]
    5. Simplified99.8%

      \[\leadsto \color{blue}{\frac{e^{\frac{\log x}{n}}}{x \cdot n}} \]
    6. Step-by-step derivation
      1. div-inv99.8%

        \[\leadsto \frac{e^{\color{blue}{\log x \cdot \frac{1}{n}}}}{x \cdot n} \]
      2. pow-to-exp99.8%

        \[\leadsto \frac{\color{blue}{{x}^{\left(\frac{1}{n}\right)}}}{x \cdot n} \]
      3. add-sqr-sqrt99.8%

        \[\leadsto \frac{\color{blue}{\sqrt{{x}^{\left(\frac{1}{n}\right)}} \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}}}{x \cdot n} \]
      4. pow299.8%

        \[\leadsto \frac{\color{blue}{{\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{2}}}{x \cdot n} \]
    7. Applied egg-rr99.8%

      \[\leadsto \frac{\color{blue}{{\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{2}}}{x \cdot n} \]
    8. Step-by-step derivation
      1. add-cbrt-cube99.8%

        \[\leadsto \frac{{\color{blue}{\left(\sqrt[3]{\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}} \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}\right) \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}}\right)}}^{2}}{x \cdot n} \]
      2. pow1/399.8%

        \[\leadsto \frac{{\color{blue}{\left({\left(\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}} \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}\right) \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{0.3333333333333333}\right)}}^{2}}{x \cdot n} \]
      3. unpow299.8%

        \[\leadsto \frac{{\left({\left(\color{blue}{{\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{2}} \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{0.3333333333333333}\right)}^{2}}{x \cdot n} \]
      4. pow199.8%

        \[\leadsto \frac{{\left({\left(\color{blue}{{\left({\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{2}\right)}^{1}} \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{0.3333333333333333}\right)}^{2}}{x \cdot n} \]
      5. pow1/299.8%

        \[\leadsto \frac{{\left({\left({\left({\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{2}\right)}^{1} \cdot \color{blue}{{\left({x}^{\left(\frac{1}{n}\right)}\right)}^{0.5}}\right)}^{0.3333333333333333}\right)}^{2}}{x \cdot n} \]
      6. add-sqr-sqrt99.8%

        \[\leadsto \frac{{\left({\left({\left({\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{2}\right)}^{1} \cdot {\color{blue}{\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}} \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}}^{0.5}\right)}^{0.3333333333333333}\right)}^{2}}{x \cdot n} \]
      7. unpow299.8%

        \[\leadsto \frac{{\left({\left({\left({\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{2}\right)}^{1} \cdot {\color{blue}{\left({\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{2}\right)}}^{0.5}\right)}^{0.3333333333333333}\right)}^{2}}{x \cdot n} \]
      8. pow-prod-up99.8%

        \[\leadsto \frac{{\left({\color{blue}{\left({\left({\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}^{2}\right)}^{\left(1 + 0.5\right)}\right)}}^{0.3333333333333333}\right)}^{2}}{x \cdot n} \]
      9. unpow299.8%

        \[\leadsto \frac{{\left({\left({\color{blue}{\left(\sqrt{{x}^{\left(\frac{1}{n}\right)}} \cdot \sqrt{{x}^{\left(\frac{1}{n}\right)}}\right)}}^{\left(1 + 0.5\right)}\right)}^{0.3333333333333333}\right)}^{2}}{x \cdot n} \]
      10. add-sqr-sqrt99.8%

        \[\leadsto \frac{{\left({\left({\color{blue}{\left({x}^{\left(\frac{1}{n}\right)}\right)}}^{\left(1 + 0.5\right)}\right)}^{0.3333333333333333}\right)}^{2}}{x \cdot n} \]
      11. metadata-eval99.8%

        \[\leadsto \frac{{\left({\left({\left({x}^{\left(\frac{1}{n}\right)}\right)}^{\color{blue}{1.5}}\right)}^{0.3333333333333333}\right)}^{2}}{x \cdot n} \]
    9. Applied egg-rr99.8%

      \[\leadsto \frac{{\color{blue}{\left({\left({\left({x}^{\left(\frac{1}{n}\right)}\right)}^{1.5}\right)}^{0.3333333333333333}\right)}}^{2}}{x \cdot n} \]
    10. Step-by-step derivation
      1. unpow1/399.8%

        \[\leadsto \frac{{\color{blue}{\left(\sqrt[3]{{\left({x}^{\left(\frac{1}{n}\right)}\right)}^{1.5}}\right)}}^{2}}{x \cdot n} \]
    11. Simplified99.8%

      \[\leadsto \frac{{\color{blue}{\left(\sqrt[3]{{\left({x}^{\left(\frac{1}{n}\right)}\right)}^{1.5}}\right)}}^{2}}{x \cdot n} \]

    if -1e-3 < (/.f64 #s(literal 1 binary64) n) < 1.99999999999999985e-24

    1. Initial program 33.2%

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

      \[\leadsto \color{blue}{\frac{\log \left(1 + x\right) - \log x}{n}} \]
    4. Step-by-step derivation
      1. log1p-define77.3%

        \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n} \]
    5. Simplified77.3%

      \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) - \log x}{n}} \]
    6. Step-by-step derivation
      1. log1p-undefine77.3%

        \[\leadsto \frac{\color{blue}{\log \left(1 + x\right)} - \log x}{n} \]
      2. diff-log77.4%

        \[\leadsto \frac{\color{blue}{\log \left(\frac{1 + x}{x}\right)}}{n} \]
    7. Applied egg-rr77.4%

      \[\leadsto \frac{\color{blue}{\log \left(\frac{1 + x}{x}\right)}}{n} \]
    8. Step-by-step derivation
      1. +-commutative77.4%

        \[\leadsto \frac{\log \left(\frac{\color{blue}{x + 1}}{x}\right)}{n} \]
    9. Simplified77.4%

      \[\leadsto \frac{\color{blue}{\log \left(\frac{x + 1}{x}\right)}}{n} \]

    if 1.99999999999999985e-24 < (/.f64 #s(literal 1 binary64) n)

    1. Initial program 52.3%

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

      \[\leadsto \color{blue}{e^{\frac{\log \left(1 + x\right)}{n}} - e^{\frac{\log x}{n}}} \]
    4. Step-by-step derivation
      1. log1p-define93.3%

        \[\leadsto e^{\frac{\color{blue}{\mathsf{log1p}\left(x\right)}}{n}} - e^{\frac{\log x}{n}} \]
      2. *-rgt-identity93.3%

        \[\leadsto e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - e^{\color{blue}{\frac{\log x}{n} \cdot 1}} \]
      3. associate-*l/93.3%

        \[\leadsto e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - e^{\color{blue}{\frac{\log x \cdot 1}{n}}} \]
      4. associate-/l*93.3%

        \[\leadsto e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - e^{\color{blue}{\log x \cdot \frac{1}{n}}} \]
      5. exp-to-pow93.3%

        \[\leadsto e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - \color{blue}{{x}^{\left(\frac{1}{n}\right)}} \]
    5. Simplified93.3%

      \[\leadsto \color{blue}{e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - {x}^{\left(\frac{1}{n}\right)}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification85.7%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{1}{n} \leq -0.001:\\ \;\;\;\;\frac{{\left(\sqrt[3]{{\left({x}^{\left(\frac{1}{n}\right)}\right)}^{1.5}}\right)}^{2}}{x \cdot n}\\ \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{-24}:\\ \;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\ \mathbf{else}:\\ \;\;\;\;e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - {x}^{\left(\frac{1}{n}\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 5: 85.4% accurate, 0.7× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{if}\;\frac{1}{n} \leq -0.001:\\ \;\;\;\;\frac{\frac{t\_0}{n}}{x}\\ \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{-24}:\\ \;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\ \mathbf{else}:\\ \;\;\;\;e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - t\_0\\ \end{array} \end{array} \]
(FPCore (x n)
 :precision binary64
 (let* ((t_0 (pow x (/ 1.0 n))))
   (if (<= (/ 1.0 n) -0.001)
     (/ (/ t_0 n) x)
     (if (<= (/ 1.0 n) 2e-24)
       (/ (log (/ (+ x 1.0) x)) n)
       (- (exp (/ (log1p x) n)) t_0)))))
double code(double x, double n) {
	double t_0 = pow(x, (1.0 / n));
	double tmp;
	if ((1.0 / n) <= -0.001) {
		tmp = (t_0 / n) / x;
	} else if ((1.0 / n) <= 2e-24) {
		tmp = log(((x + 1.0) / x)) / n;
	} else {
		tmp = exp((log1p(x) / n)) - t_0;
	}
	return tmp;
}
public static double code(double x, double n) {
	double t_0 = Math.pow(x, (1.0 / n));
	double tmp;
	if ((1.0 / n) <= -0.001) {
		tmp = (t_0 / n) / x;
	} else if ((1.0 / n) <= 2e-24) {
		tmp = Math.log(((x + 1.0) / x)) / n;
	} else {
		tmp = Math.exp((Math.log1p(x) / n)) - t_0;
	}
	return tmp;
}
def code(x, n):
	t_0 = math.pow(x, (1.0 / n))
	tmp = 0
	if (1.0 / n) <= -0.001:
		tmp = (t_0 / n) / x
	elif (1.0 / n) <= 2e-24:
		tmp = math.log(((x + 1.0) / x)) / n
	else:
		tmp = math.exp((math.log1p(x) / n)) - t_0
	return tmp
function code(x, n)
	t_0 = x ^ Float64(1.0 / n)
	tmp = 0.0
	if (Float64(1.0 / n) <= -0.001)
		tmp = Float64(Float64(t_0 / n) / x);
	elseif (Float64(1.0 / n) <= 2e-24)
		tmp = Float64(log(Float64(Float64(x + 1.0) / x)) / n);
	else
		tmp = Float64(exp(Float64(log1p(x) / n)) - t_0);
	end
	return tmp
end
code[x_, n_] := Block[{t$95$0 = N[Power[x, N[(1.0 / n), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[N[(1.0 / n), $MachinePrecision], -0.001], N[(N[(t$95$0 / n), $MachinePrecision] / x), $MachinePrecision], If[LessEqual[N[(1.0 / n), $MachinePrecision], 2e-24], N[(N[Log[N[(N[(x + 1.0), $MachinePrecision] / x), $MachinePrecision]], $MachinePrecision] / n), $MachinePrecision], N[(N[Exp[N[(N[Log[1 + x], $MachinePrecision] / n), $MachinePrecision]], $MachinePrecision] - t$95$0), $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := {x}^{\left(\frac{1}{n}\right)}\\
\mathbf{if}\;\frac{1}{n} \leq -0.001:\\
\;\;\;\;\frac{\frac{t\_0}{n}}{x}\\

\mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{-24}:\\
\;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\

\mathbf{else}:\\
\;\;\;\;e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - t\_0\\


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

    1. Initial program 95.6%

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

      \[\leadsto \color{blue}{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n \cdot x}} \]
    4. Step-by-step derivation
      1. associate-/r*99.9%

        \[\leadsto \color{blue}{\frac{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n}}{x}} \]
      2. mul-1-neg99.9%

        \[\leadsto \frac{\frac{e^{\color{blue}{-\frac{\log \left(\frac{1}{x}\right)}{n}}}}{n}}{x} \]
      3. log-rec99.9%

        \[\leadsto \frac{\frac{e^{-\frac{\color{blue}{-\log x}}{n}}}{n}}{x} \]
      4. mul-1-neg99.9%

        \[\leadsto \frac{\frac{e^{-\frac{\color{blue}{-1 \cdot \log x}}{n}}}{n}}{x} \]
      5. distribute-neg-frac99.9%

        \[\leadsto \frac{\frac{e^{\color{blue}{\frac{--1 \cdot \log x}{n}}}}{n}}{x} \]
      6. mul-1-neg99.9%

        \[\leadsto \frac{\frac{e^{\frac{-\color{blue}{\left(-\log x\right)}}{n}}}{n}}{x} \]
      7. remove-double-neg99.9%

        \[\leadsto \frac{\frac{e^{\frac{\color{blue}{\log x}}{n}}}{n}}{x} \]
      8. *-rgt-identity99.9%

        \[\leadsto \frac{\frac{e^{\frac{\color{blue}{\log x \cdot 1}}{n}}}{n}}{x} \]
      9. associate-/l*99.8%

        \[\leadsto \frac{\frac{e^{\color{blue}{\log x \cdot \frac{1}{n}}}}{n}}{x} \]
      10. exp-to-pow99.8%

        \[\leadsto \frac{\frac{\color{blue}{{x}^{\left(\frac{1}{n}\right)}}}{n}}{x} \]
    5. Simplified99.8%

      \[\leadsto \color{blue}{\frac{\frac{{x}^{\left(\frac{1}{n}\right)}}{n}}{x}} \]

    if -1e-3 < (/.f64 #s(literal 1 binary64) n) < 1.99999999999999985e-24

    1. Initial program 33.2%

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

      \[\leadsto \color{blue}{\frac{\log \left(1 + x\right) - \log x}{n}} \]
    4. Step-by-step derivation
      1. log1p-define77.3%

        \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n} \]
    5. Simplified77.3%

      \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) - \log x}{n}} \]
    6. Step-by-step derivation
      1. log1p-undefine77.3%

        \[\leadsto \frac{\color{blue}{\log \left(1 + x\right)} - \log x}{n} \]
      2. diff-log77.4%

        \[\leadsto \frac{\color{blue}{\log \left(\frac{1 + x}{x}\right)}}{n} \]
    7. Applied egg-rr77.4%

      \[\leadsto \frac{\color{blue}{\log \left(\frac{1 + x}{x}\right)}}{n} \]
    8. Step-by-step derivation
      1. +-commutative77.4%

        \[\leadsto \frac{\log \left(\frac{\color{blue}{x + 1}}{x}\right)}{n} \]
    9. Simplified77.4%

      \[\leadsto \frac{\color{blue}{\log \left(\frac{x + 1}{x}\right)}}{n} \]

    if 1.99999999999999985e-24 < (/.f64 #s(literal 1 binary64) n)

    1. Initial program 52.3%

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

      \[\leadsto \color{blue}{e^{\frac{\log \left(1 + x\right)}{n}} - e^{\frac{\log x}{n}}} \]
    4. Step-by-step derivation
      1. log1p-define93.3%

        \[\leadsto e^{\frac{\color{blue}{\mathsf{log1p}\left(x\right)}}{n}} - e^{\frac{\log x}{n}} \]
      2. *-rgt-identity93.3%

        \[\leadsto e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - e^{\color{blue}{\frac{\log x}{n} \cdot 1}} \]
      3. associate-*l/93.3%

        \[\leadsto e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - e^{\color{blue}{\frac{\log x \cdot 1}{n}}} \]
      4. associate-/l*93.3%

        \[\leadsto e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - e^{\color{blue}{\log x \cdot \frac{1}{n}}} \]
      5. exp-to-pow93.3%

        \[\leadsto e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - \color{blue}{{x}^{\left(\frac{1}{n}\right)}} \]
    5. Simplified93.3%

      \[\leadsto \color{blue}{e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - {x}^{\left(\frac{1}{n}\right)}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification85.7%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{1}{n} \leq -0.001:\\ \;\;\;\;\frac{\frac{{x}^{\left(\frac{1}{n}\right)}}{n}}{x}\\ \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{-24}:\\ \;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\ \mathbf{else}:\\ \;\;\;\;e^{\frac{\mathsf{log1p}\left(x\right)}{n}} - {x}^{\left(\frac{1}{n}\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 6: 81.7% accurate, 0.9× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{if}\;\frac{1}{n} \leq -0.001:\\ \;\;\;\;\frac{\frac{t\_0}{n}}{x}\\ \mathbf{elif}\;\frac{1}{n} \leq 10^{-6}:\\ \;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\ \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{+114} \lor \neg \left(\frac{1}{n} \leq 10^{+170}\right) \land \frac{1}{n} \leq 2 \cdot 10^{+209}:\\ \;\;\;\;\left(\frac{x}{n} + 1\right) - t\_0\\ \mathbf{else}:\\ \;\;\;\;\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{x}{n}\right)\right)\\ \end{array} \end{array} \]
(FPCore (x n)
 :precision binary64
 (let* ((t_0 (pow x (/ 1.0 n))))
   (if (<= (/ 1.0 n) -0.001)
     (/ (/ t_0 n) x)
     (if (<= (/ 1.0 n) 1e-6)
       (/ (log (/ (+ x 1.0) x)) n)
       (if (or (<= (/ 1.0 n) 2e+114)
               (and (not (<= (/ 1.0 n) 1e+170)) (<= (/ 1.0 n) 2e+209)))
         (- (+ (/ x n) 1.0) t_0)
         (log1p (expm1 (/ x n))))))))
double code(double x, double n) {
	double t_0 = pow(x, (1.0 / n));
	double tmp;
	if ((1.0 / n) <= -0.001) {
		tmp = (t_0 / n) / x;
	} else if ((1.0 / n) <= 1e-6) {
		tmp = log(((x + 1.0) / x)) / n;
	} else if (((1.0 / n) <= 2e+114) || (!((1.0 / n) <= 1e+170) && ((1.0 / n) <= 2e+209))) {
		tmp = ((x / n) + 1.0) - t_0;
	} else {
		tmp = log1p(expm1((x / n)));
	}
	return tmp;
}
public static double code(double x, double n) {
	double t_0 = Math.pow(x, (1.0 / n));
	double tmp;
	if ((1.0 / n) <= -0.001) {
		tmp = (t_0 / n) / x;
	} else if ((1.0 / n) <= 1e-6) {
		tmp = Math.log(((x + 1.0) / x)) / n;
	} else if (((1.0 / n) <= 2e+114) || (!((1.0 / n) <= 1e+170) && ((1.0 / n) <= 2e+209))) {
		tmp = ((x / n) + 1.0) - t_0;
	} else {
		tmp = Math.log1p(Math.expm1((x / n)));
	}
	return tmp;
}
def code(x, n):
	t_0 = math.pow(x, (1.0 / n))
	tmp = 0
	if (1.0 / n) <= -0.001:
		tmp = (t_0 / n) / x
	elif (1.0 / n) <= 1e-6:
		tmp = math.log(((x + 1.0) / x)) / n
	elif ((1.0 / n) <= 2e+114) or (not ((1.0 / n) <= 1e+170) and ((1.0 / n) <= 2e+209)):
		tmp = ((x / n) + 1.0) - t_0
	else:
		tmp = math.log1p(math.expm1((x / n)))
	return tmp
function code(x, n)
	t_0 = x ^ Float64(1.0 / n)
	tmp = 0.0
	if (Float64(1.0 / n) <= -0.001)
		tmp = Float64(Float64(t_0 / n) / x);
	elseif (Float64(1.0 / n) <= 1e-6)
		tmp = Float64(log(Float64(Float64(x + 1.0) / x)) / n);
	elseif ((Float64(1.0 / n) <= 2e+114) || (!(Float64(1.0 / n) <= 1e+170) && (Float64(1.0 / n) <= 2e+209)))
		tmp = Float64(Float64(Float64(x / n) + 1.0) - t_0);
	else
		tmp = log1p(expm1(Float64(x / n)));
	end
	return tmp
end
code[x_, n_] := Block[{t$95$0 = N[Power[x, N[(1.0 / n), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[N[(1.0 / n), $MachinePrecision], -0.001], N[(N[(t$95$0 / n), $MachinePrecision] / x), $MachinePrecision], If[LessEqual[N[(1.0 / n), $MachinePrecision], 1e-6], N[(N[Log[N[(N[(x + 1.0), $MachinePrecision] / x), $MachinePrecision]], $MachinePrecision] / n), $MachinePrecision], If[Or[LessEqual[N[(1.0 / n), $MachinePrecision], 2e+114], And[N[Not[LessEqual[N[(1.0 / n), $MachinePrecision], 1e+170]], $MachinePrecision], LessEqual[N[(1.0 / n), $MachinePrecision], 2e+209]]], N[(N[(N[(x / n), $MachinePrecision] + 1.0), $MachinePrecision] - t$95$0), $MachinePrecision], N[Log[1 + N[(Exp[N[(x / n), $MachinePrecision]] - 1), $MachinePrecision]], $MachinePrecision]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := {x}^{\left(\frac{1}{n}\right)}\\
\mathbf{if}\;\frac{1}{n} \leq -0.001:\\
\;\;\;\;\frac{\frac{t\_0}{n}}{x}\\

\mathbf{elif}\;\frac{1}{n} \leq 10^{-6}:\\
\;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\

\mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{+114} \lor \neg \left(\frac{1}{n} \leq 10^{+170}\right) \land \frac{1}{n} \leq 2 \cdot 10^{+209}:\\
\;\;\;\;\left(\frac{x}{n} + 1\right) - t\_0\\

\mathbf{else}:\\
\;\;\;\;\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{x}{n}\right)\right)\\


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

    1. Initial program 95.6%

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

      \[\leadsto \color{blue}{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n \cdot x}} \]
    4. Step-by-step derivation
      1. associate-/r*99.9%

        \[\leadsto \color{blue}{\frac{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n}}{x}} \]
      2. mul-1-neg99.9%

        \[\leadsto \frac{\frac{e^{\color{blue}{-\frac{\log \left(\frac{1}{x}\right)}{n}}}}{n}}{x} \]
      3. log-rec99.9%

        \[\leadsto \frac{\frac{e^{-\frac{\color{blue}{-\log x}}{n}}}{n}}{x} \]
      4. mul-1-neg99.9%

        \[\leadsto \frac{\frac{e^{-\frac{\color{blue}{-1 \cdot \log x}}{n}}}{n}}{x} \]
      5. distribute-neg-frac99.9%

        \[\leadsto \frac{\frac{e^{\color{blue}{\frac{--1 \cdot \log x}{n}}}}{n}}{x} \]
      6. mul-1-neg99.9%

        \[\leadsto \frac{\frac{e^{\frac{-\color{blue}{\left(-\log x\right)}}{n}}}{n}}{x} \]
      7. remove-double-neg99.9%

        \[\leadsto \frac{\frac{e^{\frac{\color{blue}{\log x}}{n}}}{n}}{x} \]
      8. *-rgt-identity99.9%

        \[\leadsto \frac{\frac{e^{\frac{\color{blue}{\log x \cdot 1}}{n}}}{n}}{x} \]
      9. associate-/l*99.8%

        \[\leadsto \frac{\frac{e^{\color{blue}{\log x \cdot \frac{1}{n}}}}{n}}{x} \]
      10. exp-to-pow99.8%

        \[\leadsto \frac{\frac{\color{blue}{{x}^{\left(\frac{1}{n}\right)}}}{n}}{x} \]
    5. Simplified99.8%

      \[\leadsto \color{blue}{\frac{\frac{{x}^{\left(\frac{1}{n}\right)}}{n}}{x}} \]

    if -1e-3 < (/.f64 #s(literal 1 binary64) n) < 9.99999999999999955e-7

    1. Initial program 32.6%

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

      \[\leadsto \color{blue}{\frac{\log \left(1 + x\right) - \log x}{n}} \]
    4. Step-by-step derivation
      1. log1p-define75.9%

        \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n} \]
    5. Simplified75.9%

      \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) - \log x}{n}} \]
    6. Step-by-step derivation
      1. log1p-undefine75.9%

        \[\leadsto \frac{\color{blue}{\log \left(1 + x\right)} - \log x}{n} \]
      2. diff-log76.0%

        \[\leadsto \frac{\color{blue}{\log \left(\frac{1 + x}{x}\right)}}{n} \]
    7. Applied egg-rr76.0%

      \[\leadsto \frac{\color{blue}{\log \left(\frac{1 + x}{x}\right)}}{n} \]
    8. Step-by-step derivation
      1. +-commutative76.0%

        \[\leadsto \frac{\log \left(\frac{\color{blue}{x + 1}}{x}\right)}{n} \]
    9. Simplified76.0%

      \[\leadsto \frac{\color{blue}{\log \left(\frac{x + 1}{x}\right)}}{n} \]

    if 9.99999999999999955e-7 < (/.f64 #s(literal 1 binary64) n) < 2e114 or 1.00000000000000003e170 < (/.f64 #s(literal 1 binary64) n) < 2.0000000000000001e209

    1. Initial program 99.4%

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

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

    if 2e114 < (/.f64 #s(literal 1 binary64) n) < 1.00000000000000003e170 or 2.0000000000000001e209 < (/.f64 #s(literal 1 binary64) n)

    1. Initial program 9.9%

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

      \[\leadsto \color{blue}{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n \cdot x}} \]
    4. Step-by-step derivation
      1. mul-1-neg0.7%

        \[\leadsto \frac{e^{\color{blue}{-\frac{\log \left(\frac{1}{x}\right)}{n}}}}{n \cdot x} \]
      2. log-rec0.7%

        \[\leadsto \frac{e^{-\frac{\color{blue}{-\log x}}{n}}}{n \cdot x} \]
      3. mul-1-neg0.7%

        \[\leadsto \frac{e^{-\frac{\color{blue}{-1 \cdot \log x}}{n}}}{n \cdot x} \]
      4. distribute-neg-frac0.7%

        \[\leadsto \frac{e^{\color{blue}{\frac{--1 \cdot \log x}{n}}}}{n \cdot x} \]
      5. mul-1-neg0.7%

        \[\leadsto \frac{e^{\frac{-\color{blue}{\left(-\log x\right)}}{n}}}{n \cdot x} \]
      6. remove-double-neg0.7%

        \[\leadsto \frac{e^{\frac{\color{blue}{\log x}}{n}}}{n \cdot x} \]
      7. *-commutative0.7%

        \[\leadsto \frac{e^{\frac{\log x}{n}}}{\color{blue}{x \cdot n}} \]
    5. Simplified0.7%

      \[\leadsto \color{blue}{\frac{e^{\frac{\log x}{n}}}{x \cdot n}} \]
    6. Taylor expanded in n around inf 58.0%

      \[\leadsto \color{blue}{\frac{1}{n \cdot x}} \]
    7. Step-by-step derivation
      1. associate-/r*58.0%

        \[\leadsto \color{blue}{\frac{\frac{1}{n}}{x}} \]
    8. Simplified58.0%

      \[\leadsto \color{blue}{\frac{\frac{1}{n}}{x}} \]
    9. Step-by-step derivation
      1. log1p-expm1-u95.2%

        \[\leadsto \color{blue}{\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{\frac{1}{n}}{x}\right)\right)} \]
      2. associate-/r*95.2%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\color{blue}{\frac{1}{n \cdot x}}\right)\right) \]
      3. associate-/l/95.2%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\color{blue}{\frac{\frac{1}{x}}{n}}\right)\right) \]
      4. add-exp-log95.2%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{\frac{1}{\color{blue}{e^{\log x}}}}{n}\right)\right) \]
      5. rec-exp95.2%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{\color{blue}{e^{-\log x}}}{n}\right)\right) \]
      6. add-sqr-sqrt95.2%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{e^{\color{blue}{\sqrt{-\log x} \cdot \sqrt{-\log x}}}}{n}\right)\right) \]
      7. sqrt-unprod95.2%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{e^{\color{blue}{\sqrt{\left(-\log x\right) \cdot \left(-\log x\right)}}}}{n}\right)\right) \]
      8. sqr-neg95.2%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{e^{\sqrt{\color{blue}{\log x \cdot \log x}}}}{n}\right)\right) \]
      9. sqrt-prod0.0%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{e^{\color{blue}{\sqrt{\log x} \cdot \sqrt{\log x}}}}{n}\right)\right) \]
      10. add-sqr-sqrt95.6%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{e^{\color{blue}{\log x}}}{n}\right)\right) \]
      11. add-exp-log95.6%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{\color{blue}{x}}{n}\right)\right) \]
    10. Applied egg-rr95.6%

      \[\leadsto \color{blue}{\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{x}{n}\right)\right)} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification85.0%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{1}{n} \leq -0.001:\\ \;\;\;\;\frac{\frac{{x}^{\left(\frac{1}{n}\right)}}{n}}{x}\\ \mathbf{elif}\;\frac{1}{n} \leq 10^{-6}:\\ \;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\ \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{+114} \lor \neg \left(\frac{1}{n} \leq 10^{+170}\right) \land \frac{1}{n} \leq 2 \cdot 10^{+209}:\\ \;\;\;\;\left(\frac{x}{n} + 1\right) - {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{x}{n}\right)\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 7: 82.4% accurate, 0.9× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{if}\;\frac{1}{n} \leq -0.001:\\ \;\;\;\;\frac{\frac{t\_0}{n}}{x}\\ \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{-15}:\\ \;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\ \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{+114}:\\ \;\;\;\;{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - t\_0\\ \mathbf{else}:\\ \;\;\;\;\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{x}{n}\right)\right)\\ \end{array} \end{array} \]
(FPCore (x n)
 :precision binary64
 (let* ((t_0 (pow x (/ 1.0 n))))
   (if (<= (/ 1.0 n) -0.001)
     (/ (/ t_0 n) x)
     (if (<= (/ 1.0 n) 2e-15)
       (/ (log (/ (+ x 1.0) x)) n)
       (if (<= (/ 1.0 n) 2e+114)
         (- (pow (+ x 1.0) (/ 1.0 n)) t_0)
         (log1p (expm1 (/ x n))))))))
double code(double x, double n) {
	double t_0 = pow(x, (1.0 / n));
	double tmp;
	if ((1.0 / n) <= -0.001) {
		tmp = (t_0 / n) / x;
	} else if ((1.0 / n) <= 2e-15) {
		tmp = log(((x + 1.0) / x)) / n;
	} else if ((1.0 / n) <= 2e+114) {
		tmp = pow((x + 1.0), (1.0 / n)) - t_0;
	} else {
		tmp = log1p(expm1((x / n)));
	}
	return tmp;
}
public static double code(double x, double n) {
	double t_0 = Math.pow(x, (1.0 / n));
	double tmp;
	if ((1.0 / n) <= -0.001) {
		tmp = (t_0 / n) / x;
	} else if ((1.0 / n) <= 2e-15) {
		tmp = Math.log(((x + 1.0) / x)) / n;
	} else if ((1.0 / n) <= 2e+114) {
		tmp = Math.pow((x + 1.0), (1.0 / n)) - t_0;
	} else {
		tmp = Math.log1p(Math.expm1((x / n)));
	}
	return tmp;
}
def code(x, n):
	t_0 = math.pow(x, (1.0 / n))
	tmp = 0
	if (1.0 / n) <= -0.001:
		tmp = (t_0 / n) / x
	elif (1.0 / n) <= 2e-15:
		tmp = math.log(((x + 1.0) / x)) / n
	elif (1.0 / n) <= 2e+114:
		tmp = math.pow((x + 1.0), (1.0 / n)) - t_0
	else:
		tmp = math.log1p(math.expm1((x / n)))
	return tmp
function code(x, n)
	t_0 = x ^ Float64(1.0 / n)
	tmp = 0.0
	if (Float64(1.0 / n) <= -0.001)
		tmp = Float64(Float64(t_0 / n) / x);
	elseif (Float64(1.0 / n) <= 2e-15)
		tmp = Float64(log(Float64(Float64(x + 1.0) / x)) / n);
	elseif (Float64(1.0 / n) <= 2e+114)
		tmp = Float64((Float64(x + 1.0) ^ Float64(1.0 / n)) - t_0);
	else
		tmp = log1p(expm1(Float64(x / n)));
	end
	return tmp
end
code[x_, n_] := Block[{t$95$0 = N[Power[x, N[(1.0 / n), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[N[(1.0 / n), $MachinePrecision], -0.001], N[(N[(t$95$0 / n), $MachinePrecision] / x), $MachinePrecision], If[LessEqual[N[(1.0 / n), $MachinePrecision], 2e-15], N[(N[Log[N[(N[(x + 1.0), $MachinePrecision] / x), $MachinePrecision]], $MachinePrecision] / n), $MachinePrecision], If[LessEqual[N[(1.0 / n), $MachinePrecision], 2e+114], N[(N[Power[N[(x + 1.0), $MachinePrecision], N[(1.0 / n), $MachinePrecision]], $MachinePrecision] - t$95$0), $MachinePrecision], N[Log[1 + N[(Exp[N[(x / n), $MachinePrecision]] - 1), $MachinePrecision]], $MachinePrecision]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := {x}^{\left(\frac{1}{n}\right)}\\
\mathbf{if}\;\frac{1}{n} \leq -0.001:\\
\;\;\;\;\frac{\frac{t\_0}{n}}{x}\\

\mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{-15}:\\
\;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\

\mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{+114}:\\
\;\;\;\;{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - t\_0\\

\mathbf{else}:\\
\;\;\;\;\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{x}{n}\right)\right)\\


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

    1. Initial program 95.6%

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

      \[\leadsto \color{blue}{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n \cdot x}} \]
    4. Step-by-step derivation
      1. associate-/r*99.9%

        \[\leadsto \color{blue}{\frac{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n}}{x}} \]
      2. mul-1-neg99.9%

        \[\leadsto \frac{\frac{e^{\color{blue}{-\frac{\log \left(\frac{1}{x}\right)}{n}}}}{n}}{x} \]
      3. log-rec99.9%

        \[\leadsto \frac{\frac{e^{-\frac{\color{blue}{-\log x}}{n}}}{n}}{x} \]
      4. mul-1-neg99.9%

        \[\leadsto \frac{\frac{e^{-\frac{\color{blue}{-1 \cdot \log x}}{n}}}{n}}{x} \]
      5. distribute-neg-frac99.9%

        \[\leadsto \frac{\frac{e^{\color{blue}{\frac{--1 \cdot \log x}{n}}}}{n}}{x} \]
      6. mul-1-neg99.9%

        \[\leadsto \frac{\frac{e^{\frac{-\color{blue}{\left(-\log x\right)}}{n}}}{n}}{x} \]
      7. remove-double-neg99.9%

        \[\leadsto \frac{\frac{e^{\frac{\color{blue}{\log x}}{n}}}{n}}{x} \]
      8. *-rgt-identity99.9%

        \[\leadsto \frac{\frac{e^{\frac{\color{blue}{\log x \cdot 1}}{n}}}{n}}{x} \]
      9. associate-/l*99.8%

        \[\leadsto \frac{\frac{e^{\color{blue}{\log x \cdot \frac{1}{n}}}}{n}}{x} \]
      10. exp-to-pow99.8%

        \[\leadsto \frac{\frac{\color{blue}{{x}^{\left(\frac{1}{n}\right)}}}{n}}{x} \]
    5. Simplified99.8%

      \[\leadsto \color{blue}{\frac{\frac{{x}^{\left(\frac{1}{n}\right)}}{n}}{x}} \]

    if -1e-3 < (/.f64 #s(literal 1 binary64) n) < 2.0000000000000002e-15

    1. Initial program 33.0%

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

      \[\leadsto \color{blue}{\frac{\log \left(1 + x\right) - \log x}{n}} \]
    4. Step-by-step derivation
      1. log1p-define76.9%

        \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n} \]
    5. Simplified76.9%

      \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) - \log x}{n}} \]
    6. Step-by-step derivation
      1. log1p-undefine76.9%

        \[\leadsto \frac{\color{blue}{\log \left(1 + x\right)} - \log x}{n} \]
      2. diff-log77.0%

        \[\leadsto \frac{\color{blue}{\log \left(\frac{1 + x}{x}\right)}}{n} \]
    7. Applied egg-rr77.0%

      \[\leadsto \frac{\color{blue}{\log \left(\frac{1 + x}{x}\right)}}{n} \]
    8. Step-by-step derivation
      1. +-commutative77.0%

        \[\leadsto \frac{\log \left(\frac{\color{blue}{x + 1}}{x}\right)}{n} \]
    9. Simplified77.0%

      \[\leadsto \frac{\color{blue}{\log \left(\frac{x + 1}{x}\right)}}{n} \]

    if 2.0000000000000002e-15 < (/.f64 #s(literal 1 binary64) n) < 2e114

    1. Initial program 88.9%

      \[{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)} \]
    2. Add Preprocessing

    if 2e114 < (/.f64 #s(literal 1 binary64) n)

    1. Initial program 27.8%

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

      \[\leadsto \color{blue}{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n \cdot x}} \]
    4. Step-by-step derivation
      1. mul-1-neg0.6%

        \[\leadsto \frac{e^{\color{blue}{-\frac{\log \left(\frac{1}{x}\right)}{n}}}}{n \cdot x} \]
      2. log-rec0.6%

        \[\leadsto \frac{e^{-\frac{\color{blue}{-\log x}}{n}}}{n \cdot x} \]
      3. mul-1-neg0.6%

        \[\leadsto \frac{e^{-\frac{\color{blue}{-1 \cdot \log x}}{n}}}{n \cdot x} \]
      4. distribute-neg-frac0.6%

        \[\leadsto \frac{e^{\color{blue}{\frac{--1 \cdot \log x}{n}}}}{n \cdot x} \]
      5. mul-1-neg0.6%

        \[\leadsto \frac{e^{\frac{-\color{blue}{\left(-\log x\right)}}{n}}}{n \cdot x} \]
      6. remove-double-neg0.6%

        \[\leadsto \frac{e^{\frac{\color{blue}{\log x}}{n}}}{n \cdot x} \]
      7. *-commutative0.6%

        \[\leadsto \frac{e^{\frac{\log x}{n}}}{\color{blue}{x \cdot n}} \]
    5. Simplified0.6%

      \[\leadsto \color{blue}{\frac{e^{\frac{\log x}{n}}}{x \cdot n}} \]
    6. Taylor expanded in n around inf 47.0%

      \[\leadsto \color{blue}{\frac{1}{n \cdot x}} \]
    7. Step-by-step derivation
      1. associate-/r*47.0%

        \[\leadsto \color{blue}{\frac{\frac{1}{n}}{x}} \]
    8. Simplified47.0%

      \[\leadsto \color{blue}{\frac{\frac{1}{n}}{x}} \]
    9. Step-by-step derivation
      1. log1p-expm1-u76.8%

        \[\leadsto \color{blue}{\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{\frac{1}{n}}{x}\right)\right)} \]
      2. associate-/r*76.8%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\color{blue}{\frac{1}{n \cdot x}}\right)\right) \]
      3. associate-/l/76.8%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\color{blue}{\frac{\frac{1}{x}}{n}}\right)\right) \]
      4. add-exp-log76.8%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{\frac{1}{\color{blue}{e^{\log x}}}}{n}\right)\right) \]
      5. rec-exp76.8%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{\color{blue}{e^{-\log x}}}{n}\right)\right) \]
      6. add-sqr-sqrt76.8%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{e^{\color{blue}{\sqrt{-\log x} \cdot \sqrt{-\log x}}}}{n}\right)\right) \]
      7. sqrt-unprod76.8%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{e^{\color{blue}{\sqrt{\left(-\log x\right) \cdot \left(-\log x\right)}}}}{n}\right)\right) \]
      8. sqr-neg76.8%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{e^{\sqrt{\color{blue}{\log x \cdot \log x}}}}{n}\right)\right) \]
      9. sqrt-prod0.0%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{e^{\color{blue}{\sqrt{\log x} \cdot \sqrt{\log x}}}}{n}\right)\right) \]
      10. add-sqr-sqrt78.1%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{e^{\color{blue}{\log x}}}{n}\right)\right) \]
      11. add-exp-log78.1%

        \[\leadsto \mathsf{log1p}\left(\mathsf{expm1}\left(\frac{\color{blue}{x}}{n}\right)\right) \]
    10. Applied egg-rr78.1%

      \[\leadsto \color{blue}{\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{x}{n}\right)\right)} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification83.5%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{1}{n} \leq -0.001:\\ \;\;\;\;\frac{\frac{{x}^{\left(\frac{1}{n}\right)}}{n}}{x}\\ \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{-15}:\\ \;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\ \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{+114}:\\ \;\;\;\;{\left(x + 1\right)}^{\left(\frac{1}{n}\right)} - {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{log1p}\left(\mathsf{expm1}\left(\frac{x}{n}\right)\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 8: 67.1% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := 1 - {x}^{\left(\frac{1}{n}\right)}\\ t_1 := \frac{\log \left(\frac{x + 1}{x}\right)}{n}\\ \mathbf{if}\;\frac{1}{n} \leq -2 \cdot 10^{+267}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;\frac{1}{n} \leq -1.8 \cdot 10^{+163}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;\frac{1}{n} \leq 10^{-6}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{+209}:\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{-0.5 + \frac{0.3333333333333333}{x}}{x} + 1}{x \cdot n}\\ \end{array} \end{array} \]
(FPCore (x n)
 :precision binary64
 (let* ((t_0 (- 1.0 (pow x (/ 1.0 n)))) (t_1 (/ (log (/ (+ x 1.0) x)) n)))
   (if (<= (/ 1.0 n) -2e+267)
     t_1
     (if (<= (/ 1.0 n) -1.8e+163)
       t_0
       (if (<= (/ 1.0 n) 1e-6)
         t_1
         (if (<= (/ 1.0 n) 2e+209)
           t_0
           (/ (+ (/ (+ -0.5 (/ 0.3333333333333333 x)) x) 1.0) (* x n))))))))
double code(double x, double n) {
	double t_0 = 1.0 - pow(x, (1.0 / n));
	double t_1 = log(((x + 1.0) / x)) / n;
	double tmp;
	if ((1.0 / n) <= -2e+267) {
		tmp = t_1;
	} else if ((1.0 / n) <= -1.8e+163) {
		tmp = t_0;
	} else if ((1.0 / n) <= 1e-6) {
		tmp = t_1;
	} else if ((1.0 / n) <= 2e+209) {
		tmp = t_0;
	} else {
		tmp = (((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / (x * n);
	}
	return tmp;
}
real(8) function code(x, n)
    real(8), intent (in) :: x
    real(8), intent (in) :: n
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: tmp
    t_0 = 1.0d0 - (x ** (1.0d0 / n))
    t_1 = log(((x + 1.0d0) / x)) / n
    if ((1.0d0 / n) <= (-2d+267)) then
        tmp = t_1
    else if ((1.0d0 / n) <= (-1.8d+163)) then
        tmp = t_0
    else if ((1.0d0 / n) <= 1d-6) then
        tmp = t_1
    else if ((1.0d0 / n) <= 2d+209) then
        tmp = t_0
    else
        tmp = ((((-0.5d0) + (0.3333333333333333d0 / x)) / x) + 1.0d0) / (x * n)
    end if
    code = tmp
end function
public static double code(double x, double n) {
	double t_0 = 1.0 - Math.pow(x, (1.0 / n));
	double t_1 = Math.log(((x + 1.0) / x)) / n;
	double tmp;
	if ((1.0 / n) <= -2e+267) {
		tmp = t_1;
	} else if ((1.0 / n) <= -1.8e+163) {
		tmp = t_0;
	} else if ((1.0 / n) <= 1e-6) {
		tmp = t_1;
	} else if ((1.0 / n) <= 2e+209) {
		tmp = t_0;
	} else {
		tmp = (((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / (x * n);
	}
	return tmp;
}
def code(x, n):
	t_0 = 1.0 - math.pow(x, (1.0 / n))
	t_1 = math.log(((x + 1.0) / x)) / n
	tmp = 0
	if (1.0 / n) <= -2e+267:
		tmp = t_1
	elif (1.0 / n) <= -1.8e+163:
		tmp = t_0
	elif (1.0 / n) <= 1e-6:
		tmp = t_1
	elif (1.0 / n) <= 2e+209:
		tmp = t_0
	else:
		tmp = (((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / (x * n)
	return tmp
function code(x, n)
	t_0 = Float64(1.0 - (x ^ Float64(1.0 / n)))
	t_1 = Float64(log(Float64(Float64(x + 1.0) / x)) / n)
	tmp = 0.0
	if (Float64(1.0 / n) <= -2e+267)
		tmp = t_1;
	elseif (Float64(1.0 / n) <= -1.8e+163)
		tmp = t_0;
	elseif (Float64(1.0 / n) <= 1e-6)
		tmp = t_1;
	elseif (Float64(1.0 / n) <= 2e+209)
		tmp = t_0;
	else
		tmp = Float64(Float64(Float64(Float64(-0.5 + Float64(0.3333333333333333 / x)) / x) + 1.0) / Float64(x * n));
	end
	return tmp
end
function tmp_2 = code(x, n)
	t_0 = 1.0 - (x ^ (1.0 / n));
	t_1 = log(((x + 1.0) / x)) / n;
	tmp = 0.0;
	if ((1.0 / n) <= -2e+267)
		tmp = t_1;
	elseif ((1.0 / n) <= -1.8e+163)
		tmp = t_0;
	elseif ((1.0 / n) <= 1e-6)
		tmp = t_1;
	elseif ((1.0 / n) <= 2e+209)
		tmp = t_0;
	else
		tmp = (((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / (x * n);
	end
	tmp_2 = tmp;
end
code[x_, n_] := Block[{t$95$0 = N[(1.0 - N[Power[x, N[(1.0 / n), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[Log[N[(N[(x + 1.0), $MachinePrecision] / x), $MachinePrecision]], $MachinePrecision] / n), $MachinePrecision]}, If[LessEqual[N[(1.0 / n), $MachinePrecision], -2e+267], t$95$1, If[LessEqual[N[(1.0 / n), $MachinePrecision], -1.8e+163], t$95$0, If[LessEqual[N[(1.0 / n), $MachinePrecision], 1e-6], t$95$1, If[LessEqual[N[(1.0 / n), $MachinePrecision], 2e+209], t$95$0, N[(N[(N[(N[(-0.5 + N[(0.3333333333333333 / x), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision] + 1.0), $MachinePrecision] / N[(x * n), $MachinePrecision]), $MachinePrecision]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := 1 - {x}^{\left(\frac{1}{n}\right)}\\
t_1 := \frac{\log \left(\frac{x + 1}{x}\right)}{n}\\
\mathbf{if}\;\frac{1}{n} \leq -2 \cdot 10^{+267}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;\frac{1}{n} \leq -1.8 \cdot 10^{+163}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;\frac{1}{n} \leq 10^{-6}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{+209}:\\
\;\;\;\;t\_0\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{-0.5 + \frac{0.3333333333333333}{x}}{x} + 1}{x \cdot n}\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if (/.f64 #s(literal 1 binary64) n) < -1.9999999999999999e267 or -1.79999999999999989e163 < (/.f64 #s(literal 1 binary64) n) < 9.99999999999999955e-7

    1. Initial program 45.2%

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

      \[\leadsto \color{blue}{\frac{\log \left(1 + x\right) - \log x}{n}} \]
    4. Step-by-step derivation
      1. log1p-define72.0%

        \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n} \]
    5. Simplified72.0%

      \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) - \log x}{n}} \]
    6. Step-by-step derivation
      1. log1p-undefine72.0%

        \[\leadsto \frac{\color{blue}{\log \left(1 + x\right)} - \log x}{n} \]
      2. diff-log72.1%

        \[\leadsto \frac{\color{blue}{\log \left(\frac{1 + x}{x}\right)}}{n} \]
    7. Applied egg-rr72.1%

      \[\leadsto \frac{\color{blue}{\log \left(\frac{1 + x}{x}\right)}}{n} \]
    8. Step-by-step derivation
      1. +-commutative72.1%

        \[\leadsto \frac{\log \left(\frac{\color{blue}{x + 1}}{x}\right)}{n} \]
    9. Simplified72.1%

      \[\leadsto \frac{\color{blue}{\log \left(\frac{x + 1}{x}\right)}}{n} \]

    if -1.9999999999999999e267 < (/.f64 #s(literal 1 binary64) n) < -1.79999999999999989e163 or 9.99999999999999955e-7 < (/.f64 #s(literal 1 binary64) n) < 2.0000000000000001e209

    1. Initial program 86.7%

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

      \[\leadsto \color{blue}{1 - e^{\frac{\log x}{n}}} \]
    4. Step-by-step derivation
      1. *-rgt-identity68.1%

        \[\leadsto 1 - e^{\color{blue}{\frac{\log x}{n} \cdot 1}} \]
      2. associate-*l/68.1%

        \[\leadsto 1 - e^{\color{blue}{\frac{\log x \cdot 1}{n}}} \]
      3. associate-/l*68.1%

        \[\leadsto 1 - e^{\color{blue}{\log x \cdot \frac{1}{n}}} \]
      4. exp-to-pow68.1%

        \[\leadsto 1 - \color{blue}{{x}^{\left(\frac{1}{n}\right)}} \]
    5. Simplified68.1%

      \[\leadsto \color{blue}{1 - {x}^{\left(\frac{1}{n}\right)}} \]

    if 2.0000000000000001e209 < (/.f64 #s(literal 1 binary64) n)

    1. Initial program 6.4%

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

      \[\leadsto \color{blue}{\frac{\left(\log \left(1 + x\right) + 0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n}\right) - \left(\log x + 0.5 \cdot \frac{{\log x}^{2}}{n}\right)}{n}} \]
    4. Step-by-step derivation
      1. associate--l+0.1%

        \[\leadsto \frac{\color{blue}{\log \left(1 + x\right) + \left(0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n} - \left(\log x + 0.5 \cdot \frac{{\log x}^{2}}{n}\right)\right)}}{n} \]
      2. log1p-define0.1%

        \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} + \left(0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n} - \left(\log x + 0.5 \cdot \frac{{\log x}^{2}}{n}\right)\right)}{n} \]
      3. +-commutative0.1%

        \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \left(0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n} - \color{blue}{\left(0.5 \cdot \frac{{\log x}^{2}}{n} + \log x\right)}\right)}{n} \]
      4. associate--r+0.1%

        \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \color{blue}{\left(\left(0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n} - 0.5 \cdot \frac{{\log x}^{2}}{n}\right) - \log x\right)}}{n} \]
      5. distribute-lft-out--0.1%

        \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \left(\color{blue}{0.5 \cdot \left(\frac{{\log \left(1 + x\right)}^{2}}{n} - \frac{{\log x}^{2}}{n}\right)} - \log x\right)}{n} \]
      6. div-sub0.1%

        \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \left(0.5 \cdot \color{blue}{\frac{{\log \left(1 + x\right)}^{2} - {\log x}^{2}}{n}} - \log x\right)}{n} \]
      7. log1p-define0.1%

        \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \left(0.5 \cdot \frac{{\color{blue}{\left(\mathsf{log1p}\left(x\right)\right)}}^{2} - {\log x}^{2}}{n} - \log x\right)}{n} \]
    5. Simplified0.1%

      \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) + \left(0.5 \cdot \frac{{\left(\mathsf{log1p}\left(x\right)\right)}^{2} - {\log x}^{2}}{n} - \log x\right)}{n}} \]
    6. Taylor expanded in x around inf 0.0%

      \[\leadsto \frac{\color{blue}{\frac{\left(1 + \left(-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n} + \left(0.5 \cdot \frac{\frac{1}{n} + \frac{\log \left(\frac{1}{x}\right)}{n}}{x} + \left(0.5 \cdot \frac{-0.6666666666666666 \cdot \frac{\log \left(\frac{1}{x}\right)}{n} - \frac{1}{n}}{{x}^{2}} + \frac{0.3333333333333333}{{x}^{2}}\right)\right)\right)\right) - 0.5 \cdot \frac{1}{x}}{x}}}{n} \]
    7. Taylor expanded in n around inf 91.9%

      \[\leadsto \color{blue}{\frac{\left(1 + 0.3333333333333333 \cdot \frac{1}{{x}^{2}}\right) - 0.5 \cdot \frac{1}{x}}{n \cdot x}} \]
    8. Step-by-step derivation
      1. associate--l+91.9%

        \[\leadsto \frac{\color{blue}{1 + \left(0.3333333333333333 \cdot \frac{1}{{x}^{2}} - 0.5 \cdot \frac{1}{x}\right)}}{n \cdot x} \]
      2. associate-*r/91.9%

        \[\leadsto \frac{1 + \left(\color{blue}{\frac{0.3333333333333333 \cdot 1}{{x}^{2}}} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
      3. metadata-eval91.9%

        \[\leadsto \frac{1 + \left(\frac{\color{blue}{0.3333333333333333}}{{x}^{2}} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
      4. unpow291.9%

        \[\leadsto \frac{1 + \left(\frac{0.3333333333333333}{\color{blue}{x \cdot x}} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
      5. associate-/r*91.9%

        \[\leadsto \frac{1 + \left(\color{blue}{\frac{\frac{0.3333333333333333}{x}}{x}} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
      6. metadata-eval91.9%

        \[\leadsto \frac{1 + \left(\frac{\frac{\color{blue}{0.3333333333333333 \cdot 1}}{x}}{x} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
      7. associate-*r/91.9%

        \[\leadsto \frac{1 + \left(\frac{\color{blue}{0.3333333333333333 \cdot \frac{1}{x}}}{x} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
      8. associate-*r/91.9%

        \[\leadsto \frac{1 + \left(\frac{0.3333333333333333 \cdot \frac{1}{x}}{x} - \color{blue}{\frac{0.5 \cdot 1}{x}}\right)}{n \cdot x} \]
      9. metadata-eval91.9%

        \[\leadsto \frac{1 + \left(\frac{0.3333333333333333 \cdot \frac{1}{x}}{x} - \frac{\color{blue}{0.5}}{x}\right)}{n \cdot x} \]
      10. div-sub91.9%

        \[\leadsto \frac{1 + \color{blue}{\frac{0.3333333333333333 \cdot \frac{1}{x} - 0.5}{x}}}{n \cdot x} \]
      11. sub-neg91.9%

        \[\leadsto \frac{1 + \frac{\color{blue}{0.3333333333333333 \cdot \frac{1}{x} + \left(-0.5\right)}}{x}}{n \cdot x} \]
      12. associate-*r/91.9%

        \[\leadsto \frac{1 + \frac{\color{blue}{\frac{0.3333333333333333 \cdot 1}{x}} + \left(-0.5\right)}{x}}{n \cdot x} \]
      13. metadata-eval91.9%

        \[\leadsto \frac{1 + \frac{\frac{\color{blue}{0.3333333333333333}}{x} + \left(-0.5\right)}{x}}{n \cdot x} \]
      14. metadata-eval91.9%

        \[\leadsto \frac{1 + \frac{\frac{0.3333333333333333}{x} + \color{blue}{-0.5}}{x}}{n \cdot x} \]
      15. *-commutative91.9%

        \[\leadsto \frac{1 + \frac{\frac{0.3333333333333333}{x} + -0.5}{x}}{\color{blue}{x \cdot n}} \]
    9. Simplified91.9%

      \[\leadsto \color{blue}{\frac{1 + \frac{\frac{0.3333333333333333}{x} + -0.5}{x}}{x \cdot n}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification72.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{1}{n} \leq -2 \cdot 10^{+267}:\\ \;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\ \mathbf{elif}\;\frac{1}{n} \leq -1.8 \cdot 10^{+163}:\\ \;\;\;\;1 - {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{elif}\;\frac{1}{n} \leq 10^{-6}:\\ \;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\ \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{+209}:\\ \;\;\;\;1 - {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{-0.5 + \frac{0.3333333333333333}{x}}{x} + 1}{x \cdot n}\\ \end{array} \]
  5. Add Preprocessing

Alternative 9: 81.3% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{if}\;\frac{1}{n} \leq -0.001:\\ \;\;\;\;\frac{\frac{t\_0}{n}}{x}\\ \mathbf{elif}\;\frac{1}{n} \leq 10^{-6}:\\ \;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\ \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{+209}:\\ \;\;\;\;\left(\frac{x}{n} + 1\right) - t\_0\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{-0.5 + \frac{0.3333333333333333}{x}}{x} + 1}{x \cdot n}\\ \end{array} \end{array} \]
(FPCore (x n)
 :precision binary64
 (let* ((t_0 (pow x (/ 1.0 n))))
   (if (<= (/ 1.0 n) -0.001)
     (/ (/ t_0 n) x)
     (if (<= (/ 1.0 n) 1e-6)
       (/ (log (/ (+ x 1.0) x)) n)
       (if (<= (/ 1.0 n) 2e+209)
         (- (+ (/ x n) 1.0) t_0)
         (/ (+ (/ (+ -0.5 (/ 0.3333333333333333 x)) x) 1.0) (* x n)))))))
double code(double x, double n) {
	double t_0 = pow(x, (1.0 / n));
	double tmp;
	if ((1.0 / n) <= -0.001) {
		tmp = (t_0 / n) / x;
	} else if ((1.0 / n) <= 1e-6) {
		tmp = log(((x + 1.0) / x)) / n;
	} else if ((1.0 / n) <= 2e+209) {
		tmp = ((x / n) + 1.0) - t_0;
	} else {
		tmp = (((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / (x * n);
	}
	return tmp;
}
real(8) function code(x, n)
    real(8), intent (in) :: x
    real(8), intent (in) :: n
    real(8) :: t_0
    real(8) :: tmp
    t_0 = x ** (1.0d0 / n)
    if ((1.0d0 / n) <= (-0.001d0)) then
        tmp = (t_0 / n) / x
    else if ((1.0d0 / n) <= 1d-6) then
        tmp = log(((x + 1.0d0) / x)) / n
    else if ((1.0d0 / n) <= 2d+209) then
        tmp = ((x / n) + 1.0d0) - t_0
    else
        tmp = ((((-0.5d0) + (0.3333333333333333d0 / x)) / x) + 1.0d0) / (x * n)
    end if
    code = tmp
end function
public static double code(double x, double n) {
	double t_0 = Math.pow(x, (1.0 / n));
	double tmp;
	if ((1.0 / n) <= -0.001) {
		tmp = (t_0 / n) / x;
	} else if ((1.0 / n) <= 1e-6) {
		tmp = Math.log(((x + 1.0) / x)) / n;
	} else if ((1.0 / n) <= 2e+209) {
		tmp = ((x / n) + 1.0) - t_0;
	} else {
		tmp = (((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / (x * n);
	}
	return tmp;
}
def code(x, n):
	t_0 = math.pow(x, (1.0 / n))
	tmp = 0
	if (1.0 / n) <= -0.001:
		tmp = (t_0 / n) / x
	elif (1.0 / n) <= 1e-6:
		tmp = math.log(((x + 1.0) / x)) / n
	elif (1.0 / n) <= 2e+209:
		tmp = ((x / n) + 1.0) - t_0
	else:
		tmp = (((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / (x * n)
	return tmp
function code(x, n)
	t_0 = x ^ Float64(1.0 / n)
	tmp = 0.0
	if (Float64(1.0 / n) <= -0.001)
		tmp = Float64(Float64(t_0 / n) / x);
	elseif (Float64(1.0 / n) <= 1e-6)
		tmp = Float64(log(Float64(Float64(x + 1.0) / x)) / n);
	elseif (Float64(1.0 / n) <= 2e+209)
		tmp = Float64(Float64(Float64(x / n) + 1.0) - t_0);
	else
		tmp = Float64(Float64(Float64(Float64(-0.5 + Float64(0.3333333333333333 / x)) / x) + 1.0) / Float64(x * n));
	end
	return tmp
end
function tmp_2 = code(x, n)
	t_0 = x ^ (1.0 / n);
	tmp = 0.0;
	if ((1.0 / n) <= -0.001)
		tmp = (t_0 / n) / x;
	elseif ((1.0 / n) <= 1e-6)
		tmp = log(((x + 1.0) / x)) / n;
	elseif ((1.0 / n) <= 2e+209)
		tmp = ((x / n) + 1.0) - t_0;
	else
		tmp = (((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / (x * n);
	end
	tmp_2 = tmp;
end
code[x_, n_] := Block[{t$95$0 = N[Power[x, N[(1.0 / n), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[N[(1.0 / n), $MachinePrecision], -0.001], N[(N[(t$95$0 / n), $MachinePrecision] / x), $MachinePrecision], If[LessEqual[N[(1.0 / n), $MachinePrecision], 1e-6], N[(N[Log[N[(N[(x + 1.0), $MachinePrecision] / x), $MachinePrecision]], $MachinePrecision] / n), $MachinePrecision], If[LessEqual[N[(1.0 / n), $MachinePrecision], 2e+209], N[(N[(N[(x / n), $MachinePrecision] + 1.0), $MachinePrecision] - t$95$0), $MachinePrecision], N[(N[(N[(N[(-0.5 + N[(0.3333333333333333 / x), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision] + 1.0), $MachinePrecision] / N[(x * n), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := {x}^{\left(\frac{1}{n}\right)}\\
\mathbf{if}\;\frac{1}{n} \leq -0.001:\\
\;\;\;\;\frac{\frac{t\_0}{n}}{x}\\

\mathbf{elif}\;\frac{1}{n} \leq 10^{-6}:\\
\;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\

\mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{+209}:\\
\;\;\;\;\left(\frac{x}{n} + 1\right) - t\_0\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{-0.5 + \frac{0.3333333333333333}{x}}{x} + 1}{x \cdot n}\\


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

    1. Initial program 95.6%

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

      \[\leadsto \color{blue}{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n \cdot x}} \]
    4. Step-by-step derivation
      1. associate-/r*99.9%

        \[\leadsto \color{blue}{\frac{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n}}{x}} \]
      2. mul-1-neg99.9%

        \[\leadsto \frac{\frac{e^{\color{blue}{-\frac{\log \left(\frac{1}{x}\right)}{n}}}}{n}}{x} \]
      3. log-rec99.9%

        \[\leadsto \frac{\frac{e^{-\frac{\color{blue}{-\log x}}{n}}}{n}}{x} \]
      4. mul-1-neg99.9%

        \[\leadsto \frac{\frac{e^{-\frac{\color{blue}{-1 \cdot \log x}}{n}}}{n}}{x} \]
      5. distribute-neg-frac99.9%

        \[\leadsto \frac{\frac{e^{\color{blue}{\frac{--1 \cdot \log x}{n}}}}{n}}{x} \]
      6. mul-1-neg99.9%

        \[\leadsto \frac{\frac{e^{\frac{-\color{blue}{\left(-\log x\right)}}{n}}}{n}}{x} \]
      7. remove-double-neg99.9%

        \[\leadsto \frac{\frac{e^{\frac{\color{blue}{\log x}}{n}}}{n}}{x} \]
      8. *-rgt-identity99.9%

        \[\leadsto \frac{\frac{e^{\frac{\color{blue}{\log x \cdot 1}}{n}}}{n}}{x} \]
      9. associate-/l*99.8%

        \[\leadsto \frac{\frac{e^{\color{blue}{\log x \cdot \frac{1}{n}}}}{n}}{x} \]
      10. exp-to-pow99.8%

        \[\leadsto \frac{\frac{\color{blue}{{x}^{\left(\frac{1}{n}\right)}}}{n}}{x} \]
    5. Simplified99.8%

      \[\leadsto \color{blue}{\frac{\frac{{x}^{\left(\frac{1}{n}\right)}}{n}}{x}} \]

    if -1e-3 < (/.f64 #s(literal 1 binary64) n) < 9.99999999999999955e-7

    1. Initial program 32.6%

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

      \[\leadsto \color{blue}{\frac{\log \left(1 + x\right) - \log x}{n}} \]
    4. Step-by-step derivation
      1. log1p-define75.9%

        \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n} \]
    5. Simplified75.9%

      \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) - \log x}{n}} \]
    6. Step-by-step derivation
      1. log1p-undefine75.9%

        \[\leadsto \frac{\color{blue}{\log \left(1 + x\right)} - \log x}{n} \]
      2. diff-log76.0%

        \[\leadsto \frac{\color{blue}{\log \left(\frac{1 + x}{x}\right)}}{n} \]
    7. Applied egg-rr76.0%

      \[\leadsto \frac{\color{blue}{\log \left(\frac{1 + x}{x}\right)}}{n} \]
    8. Step-by-step derivation
      1. +-commutative76.0%

        \[\leadsto \frac{\log \left(\frac{\color{blue}{x + 1}}{x}\right)}{n} \]
    9. Simplified76.0%

      \[\leadsto \frac{\color{blue}{\log \left(\frac{x + 1}{x}\right)}}{n} \]

    if 9.99999999999999955e-7 < (/.f64 #s(literal 1 binary64) n) < 2.0000000000000001e209

    1. Initial program 76.2%

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

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

    if 2.0000000000000001e209 < (/.f64 #s(literal 1 binary64) n)

    1. Initial program 6.4%

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

      \[\leadsto \color{blue}{\frac{\left(\log \left(1 + x\right) + 0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n}\right) - \left(\log x + 0.5 \cdot \frac{{\log x}^{2}}{n}\right)}{n}} \]
    4. Step-by-step derivation
      1. associate--l+0.1%

        \[\leadsto \frac{\color{blue}{\log \left(1 + x\right) + \left(0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n} - \left(\log x + 0.5 \cdot \frac{{\log x}^{2}}{n}\right)\right)}}{n} \]
      2. log1p-define0.1%

        \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} + \left(0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n} - \left(\log x + 0.5 \cdot \frac{{\log x}^{2}}{n}\right)\right)}{n} \]
      3. +-commutative0.1%

        \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \left(0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n} - \color{blue}{\left(0.5 \cdot \frac{{\log x}^{2}}{n} + \log x\right)}\right)}{n} \]
      4. associate--r+0.1%

        \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \color{blue}{\left(\left(0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n} - 0.5 \cdot \frac{{\log x}^{2}}{n}\right) - \log x\right)}}{n} \]
      5. distribute-lft-out--0.1%

        \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \left(\color{blue}{0.5 \cdot \left(\frac{{\log \left(1 + x\right)}^{2}}{n} - \frac{{\log x}^{2}}{n}\right)} - \log x\right)}{n} \]
      6. div-sub0.1%

        \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \left(0.5 \cdot \color{blue}{\frac{{\log \left(1 + x\right)}^{2} - {\log x}^{2}}{n}} - \log x\right)}{n} \]
      7. log1p-define0.1%

        \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \left(0.5 \cdot \frac{{\color{blue}{\left(\mathsf{log1p}\left(x\right)\right)}}^{2} - {\log x}^{2}}{n} - \log x\right)}{n} \]
    5. Simplified0.1%

      \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) + \left(0.5 \cdot \frac{{\left(\mathsf{log1p}\left(x\right)\right)}^{2} - {\log x}^{2}}{n} - \log x\right)}{n}} \]
    6. Taylor expanded in x around inf 0.0%

      \[\leadsto \frac{\color{blue}{\frac{\left(1 + \left(-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n} + \left(0.5 \cdot \frac{\frac{1}{n} + \frac{\log \left(\frac{1}{x}\right)}{n}}{x} + \left(0.5 \cdot \frac{-0.6666666666666666 \cdot \frac{\log \left(\frac{1}{x}\right)}{n} - \frac{1}{n}}{{x}^{2}} + \frac{0.3333333333333333}{{x}^{2}}\right)\right)\right)\right) - 0.5 \cdot \frac{1}{x}}{x}}}{n} \]
    7. Taylor expanded in n around inf 91.9%

      \[\leadsto \color{blue}{\frac{\left(1 + 0.3333333333333333 \cdot \frac{1}{{x}^{2}}\right) - 0.5 \cdot \frac{1}{x}}{n \cdot x}} \]
    8. Step-by-step derivation
      1. associate--l+91.9%

        \[\leadsto \frac{\color{blue}{1 + \left(0.3333333333333333 \cdot \frac{1}{{x}^{2}} - 0.5 \cdot \frac{1}{x}\right)}}{n \cdot x} \]
      2. associate-*r/91.9%

        \[\leadsto \frac{1 + \left(\color{blue}{\frac{0.3333333333333333 \cdot 1}{{x}^{2}}} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
      3. metadata-eval91.9%

        \[\leadsto \frac{1 + \left(\frac{\color{blue}{0.3333333333333333}}{{x}^{2}} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
      4. unpow291.9%

        \[\leadsto \frac{1 + \left(\frac{0.3333333333333333}{\color{blue}{x \cdot x}} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
      5. associate-/r*91.9%

        \[\leadsto \frac{1 + \left(\color{blue}{\frac{\frac{0.3333333333333333}{x}}{x}} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
      6. metadata-eval91.9%

        \[\leadsto \frac{1 + \left(\frac{\frac{\color{blue}{0.3333333333333333 \cdot 1}}{x}}{x} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
      7. associate-*r/91.9%

        \[\leadsto \frac{1 + \left(\frac{\color{blue}{0.3333333333333333 \cdot \frac{1}{x}}}{x} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
      8. associate-*r/91.9%

        \[\leadsto \frac{1 + \left(\frac{0.3333333333333333 \cdot \frac{1}{x}}{x} - \color{blue}{\frac{0.5 \cdot 1}{x}}\right)}{n \cdot x} \]
      9. metadata-eval91.9%

        \[\leadsto \frac{1 + \left(\frac{0.3333333333333333 \cdot \frac{1}{x}}{x} - \frac{\color{blue}{0.5}}{x}\right)}{n \cdot x} \]
      10. div-sub91.9%

        \[\leadsto \frac{1 + \color{blue}{\frac{0.3333333333333333 \cdot \frac{1}{x} - 0.5}{x}}}{n \cdot x} \]
      11. sub-neg91.9%

        \[\leadsto \frac{1 + \frac{\color{blue}{0.3333333333333333 \cdot \frac{1}{x} + \left(-0.5\right)}}{x}}{n \cdot x} \]
      12. associate-*r/91.9%

        \[\leadsto \frac{1 + \frac{\color{blue}{\frac{0.3333333333333333 \cdot 1}{x}} + \left(-0.5\right)}{x}}{n \cdot x} \]
      13. metadata-eval91.9%

        \[\leadsto \frac{1 + \frac{\frac{\color{blue}{0.3333333333333333}}{x} + \left(-0.5\right)}{x}}{n \cdot x} \]
      14. metadata-eval91.9%

        \[\leadsto \frac{1 + \frac{\frac{0.3333333333333333}{x} + \color{blue}{-0.5}}{x}}{n \cdot x} \]
      15. *-commutative91.9%

        \[\leadsto \frac{1 + \frac{\frac{0.3333333333333333}{x} + -0.5}{x}}{\color{blue}{x \cdot n}} \]
    9. Simplified91.9%

      \[\leadsto \color{blue}{\frac{1 + \frac{\frac{0.3333333333333333}{x} + -0.5}{x}}{x \cdot n}} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification81.9%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{1}{n} \leq -0.001:\\ \;\;\;\;\frac{\frac{{x}^{\left(\frac{1}{n}\right)}}{n}}{x}\\ \mathbf{elif}\;\frac{1}{n} \leq 10^{-6}:\\ \;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\ \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{+209}:\\ \;\;\;\;\left(\frac{x}{n} + 1\right) - {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{-0.5 + \frac{0.3333333333333333}{x}}{x} + 1}{x \cdot n}\\ \end{array} \]
  5. Add Preprocessing

Alternative 10: 55.5% accurate, 1.6× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq 9.5 \cdot 10^{-245}:\\ \;\;\;\;\log x \cdot \frac{-1}{n}\\ \mathbf{elif}\;x \leq 6.8 \cdot 10^{-223}:\\ \;\;\;\;1 - {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{elif}\;x \leq 1.85 \cdot 10^{-191}:\\ \;\;\;\;\frac{\log x}{-n}\\ \mathbf{elif}\;x \leq 1.3 \cdot 10^{-144} \lor \neg \left(x \leq 0.00036\right):\\ \;\;\;\;\frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{x - \log x}{n}\\ \end{array} \end{array} \]
(FPCore (x n)
 :precision binary64
 (if (<= x 9.5e-245)
   (* (log x) (/ -1.0 n))
   (if (<= x 6.8e-223)
     (- 1.0 (pow x (/ 1.0 n)))
     (if (<= x 1.85e-191)
       (/ (log x) (- n))
       (if (or (<= x 1.3e-144) (not (<= x 0.00036)))
         (/
          (+ (/ 1.0 n) (/ (+ (/ 0.3333333333333333 (* x n)) (/ -0.5 n)) x))
          x)
         (/ (- x (log x)) n))))))
double code(double x, double n) {
	double tmp;
	if (x <= 9.5e-245) {
		tmp = log(x) * (-1.0 / n);
	} else if (x <= 6.8e-223) {
		tmp = 1.0 - pow(x, (1.0 / n));
	} else if (x <= 1.85e-191) {
		tmp = log(x) / -n;
	} else if ((x <= 1.3e-144) || !(x <= 0.00036)) {
		tmp = ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x;
	} else {
		tmp = (x - log(x)) / n;
	}
	return tmp;
}
real(8) function code(x, n)
    real(8), intent (in) :: x
    real(8), intent (in) :: n
    real(8) :: tmp
    if (x <= 9.5d-245) then
        tmp = log(x) * ((-1.0d0) / n)
    else if (x <= 6.8d-223) then
        tmp = 1.0d0 - (x ** (1.0d0 / n))
    else if (x <= 1.85d-191) then
        tmp = log(x) / -n
    else if ((x <= 1.3d-144) .or. (.not. (x <= 0.00036d0))) then
        tmp = ((1.0d0 / n) + (((0.3333333333333333d0 / (x * n)) + ((-0.5d0) / n)) / x)) / x
    else
        tmp = (x - log(x)) / n
    end if
    code = tmp
end function
public static double code(double x, double n) {
	double tmp;
	if (x <= 9.5e-245) {
		tmp = Math.log(x) * (-1.0 / n);
	} else if (x <= 6.8e-223) {
		tmp = 1.0 - Math.pow(x, (1.0 / n));
	} else if (x <= 1.85e-191) {
		tmp = Math.log(x) / -n;
	} else if ((x <= 1.3e-144) || !(x <= 0.00036)) {
		tmp = ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x;
	} else {
		tmp = (x - Math.log(x)) / n;
	}
	return tmp;
}
def code(x, n):
	tmp = 0
	if x <= 9.5e-245:
		tmp = math.log(x) * (-1.0 / n)
	elif x <= 6.8e-223:
		tmp = 1.0 - math.pow(x, (1.0 / n))
	elif x <= 1.85e-191:
		tmp = math.log(x) / -n
	elif (x <= 1.3e-144) or not (x <= 0.00036):
		tmp = ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x
	else:
		tmp = (x - math.log(x)) / n
	return tmp
function code(x, n)
	tmp = 0.0
	if (x <= 9.5e-245)
		tmp = Float64(log(x) * Float64(-1.0 / n));
	elseif (x <= 6.8e-223)
		tmp = Float64(1.0 - (x ^ Float64(1.0 / n)));
	elseif (x <= 1.85e-191)
		tmp = Float64(log(x) / Float64(-n));
	elseif ((x <= 1.3e-144) || !(x <= 0.00036))
		tmp = Float64(Float64(Float64(1.0 / n) + Float64(Float64(Float64(0.3333333333333333 / Float64(x * n)) + Float64(-0.5 / n)) / x)) / x);
	else
		tmp = Float64(Float64(x - log(x)) / n);
	end
	return tmp
end
function tmp_2 = code(x, n)
	tmp = 0.0;
	if (x <= 9.5e-245)
		tmp = log(x) * (-1.0 / n);
	elseif (x <= 6.8e-223)
		tmp = 1.0 - (x ^ (1.0 / n));
	elseif (x <= 1.85e-191)
		tmp = log(x) / -n;
	elseif ((x <= 1.3e-144) || ~((x <= 0.00036)))
		tmp = ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x;
	else
		tmp = (x - log(x)) / n;
	end
	tmp_2 = tmp;
end
code[x_, n_] := If[LessEqual[x, 9.5e-245], N[(N[Log[x], $MachinePrecision] * N[(-1.0 / n), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 6.8e-223], N[(1.0 - N[Power[x, N[(1.0 / n), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 1.85e-191], N[(N[Log[x], $MachinePrecision] / (-n)), $MachinePrecision], If[Or[LessEqual[x, 1.3e-144], N[Not[LessEqual[x, 0.00036]], $MachinePrecision]], N[(N[(N[(1.0 / n), $MachinePrecision] + N[(N[(N[(0.3333333333333333 / N[(x * n), $MachinePrecision]), $MachinePrecision] + N[(-0.5 / n), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision], N[(N[(x - N[Log[x], $MachinePrecision]), $MachinePrecision] / n), $MachinePrecision]]]]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;x \leq 9.5 \cdot 10^{-245}:\\
\;\;\;\;\log x \cdot \frac{-1}{n}\\

\mathbf{elif}\;x \leq 6.8 \cdot 10^{-223}:\\
\;\;\;\;1 - {x}^{\left(\frac{1}{n}\right)}\\

\mathbf{elif}\;x \leq 1.85 \cdot 10^{-191}:\\
\;\;\;\;\frac{\log x}{-n}\\

\mathbf{elif}\;x \leq 1.3 \cdot 10^{-144} \lor \neg \left(x \leq 0.00036\right):\\
\;\;\;\;\frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x}\\

\mathbf{else}:\\
\;\;\;\;\frac{x - \log x}{n}\\


\end{array}
\end{array}
Derivation
  1. Split input into 5 regimes
  2. if x < 9.5000000000000002e-245

    1. Initial program 39.7%

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

      \[\leadsto \color{blue}{\frac{\log \left(1 + x\right) - \log x}{n}} \]
    4. Step-by-step derivation
      1. log1p-define60.7%

        \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n} \]
    5. Simplified60.7%

      \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) - \log x}{n}} \]
    6. Taylor expanded in x around 0 60.7%

      \[\leadsto \frac{\color{blue}{-1 \cdot \log x}}{n} \]
    7. Step-by-step derivation
      1. neg-mul-160.7%

        \[\leadsto \frac{\color{blue}{-\log x}}{n} \]
    8. Simplified60.7%

      \[\leadsto \frac{\color{blue}{-\log x}}{n} \]
    9. Step-by-step derivation
      1. frac-2neg60.7%

        \[\leadsto \color{blue}{\frac{-\left(-\log x\right)}{-n}} \]
      2. div-inv60.7%

        \[\leadsto \color{blue}{\left(-\left(-\log x\right)\right) \cdot \frac{1}{-n}} \]
      3. remove-double-neg60.7%

        \[\leadsto \color{blue}{\log x} \cdot \frac{1}{-n} \]
      4. distribute-neg-frac260.7%

        \[\leadsto \log x \cdot \color{blue}{\left(-\frac{1}{n}\right)} \]
      5. distribute-neg-frac60.7%

        \[\leadsto \log x \cdot \color{blue}{\frac{-1}{n}} \]
      6. metadata-eval60.7%

        \[\leadsto \log x \cdot \frac{\color{blue}{-1}}{n} \]
    10. Applied egg-rr60.7%

      \[\leadsto \color{blue}{\log x \cdot \frac{-1}{n}} \]

    if 9.5000000000000002e-245 < x < 6.7999999999999996e-223

    1. Initial program 73.0%

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

      \[\leadsto \color{blue}{1 - e^{\frac{\log x}{n}}} \]
    4. Step-by-step derivation
      1. *-rgt-identity73.0%

        \[\leadsto 1 - e^{\color{blue}{\frac{\log x}{n} \cdot 1}} \]
      2. associate-*l/73.0%

        \[\leadsto 1 - e^{\color{blue}{\frac{\log x \cdot 1}{n}}} \]
      3. associate-/l*73.0%

        \[\leadsto 1 - e^{\color{blue}{\log x \cdot \frac{1}{n}}} \]
      4. exp-to-pow73.0%

        \[\leadsto 1 - \color{blue}{{x}^{\left(\frac{1}{n}\right)}} \]
    5. Simplified73.0%

      \[\leadsto \color{blue}{1 - {x}^{\left(\frac{1}{n}\right)}} \]

    if 6.7999999999999996e-223 < x < 1.8499999999999998e-191

    1. Initial program 34.3%

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

      \[\leadsto \color{blue}{1 - e^{\frac{\log x}{n}}} \]
    4. Step-by-step derivation
      1. *-rgt-identity34.3%

        \[\leadsto 1 - e^{\color{blue}{\frac{\log x}{n} \cdot 1}} \]
      2. associate-*l/34.3%

        \[\leadsto 1 - e^{\color{blue}{\frac{\log x \cdot 1}{n}}} \]
      3. associate-/l*34.3%

        \[\leadsto 1 - e^{\color{blue}{\log x \cdot \frac{1}{n}}} \]
      4. exp-to-pow34.3%

        \[\leadsto 1 - \color{blue}{{x}^{\left(\frac{1}{n}\right)}} \]
    5. Simplified34.3%

      \[\leadsto \color{blue}{1 - {x}^{\left(\frac{1}{n}\right)}} \]
    6. Taylor expanded in n around inf 63.4%

      \[\leadsto \color{blue}{-1 \cdot \frac{\log x}{n}} \]
    7. Step-by-step derivation
      1. mul-1-neg63.4%

        \[\leadsto \color{blue}{-\frac{\log x}{n}} \]
      2. distribute-neg-frac263.4%

        \[\leadsto \color{blue}{\frac{\log x}{-n}} \]
    8. Simplified63.4%

      \[\leadsto \color{blue}{\frac{\log x}{-n}} \]

    if 1.8499999999999998e-191 < x < 1.3e-144 or 3.60000000000000023e-4 < x

    1. Initial program 65.5%

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

      \[\leadsto \color{blue}{\frac{\log \left(1 + x\right) - \log x}{n}} \]
    4. Step-by-step derivation
      1. log1p-define58.5%

        \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n} \]
    5. Simplified58.5%

      \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) - \log x}{n}} \]
    6. Taylor expanded in x around inf 57.9%

      \[\leadsto \color{blue}{\frac{\left(\frac{0.3333333333333333}{n \cdot {x}^{2}} + \frac{1}{n}\right) - \frac{0.5}{n \cdot x}}{x}} \]
    7. Step-by-step derivation
      1. Simplified66.7%

        \[\leadsto \color{blue}{\frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x}} \]

      if 1.3e-144 < x < 3.60000000000000023e-4

      1. Initial program 27.0%

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

        \[\leadsto \color{blue}{\frac{\log \left(1 + x\right) - \log x}{n}} \]
      4. Step-by-step derivation
        1. log1p-define65.9%

          \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n} \]
      5. Simplified65.9%

        \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) - \log x}{n}} \]
      6. Taylor expanded in x around 0 65.5%

        \[\leadsto \frac{\color{blue}{x - \log x}}{n} \]
    8. Recombined 5 regimes into one program.
    9. Final simplification66.1%

      \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq 9.5 \cdot 10^{-245}:\\ \;\;\;\;\log x \cdot \frac{-1}{n}\\ \mathbf{elif}\;x \leq 6.8 \cdot 10^{-223}:\\ \;\;\;\;1 - {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{elif}\;x \leq 1.85 \cdot 10^{-191}:\\ \;\;\;\;\frac{\log x}{-n}\\ \mathbf{elif}\;x \leq 1.3 \cdot 10^{-144} \lor \neg \left(x \leq 0.00036\right):\\ \;\;\;\;\frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{x - \log x}{n}\\ \end{array} \]
    10. Add Preprocessing

    Alternative 11: 81.2% accurate, 1.7× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} t_0 := {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{if}\;\frac{1}{n} \leq -0.001:\\ \;\;\;\;\frac{\frac{t\_0}{n}}{x}\\ \mathbf{elif}\;\frac{1}{n} \leq 10^{-6}:\\ \;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\ \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{+209}:\\ \;\;\;\;1 - t\_0\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{-0.5 + \frac{0.3333333333333333}{x}}{x} + 1}{x \cdot n}\\ \end{array} \end{array} \]
    (FPCore (x n)
     :precision binary64
     (let* ((t_0 (pow x (/ 1.0 n))))
       (if (<= (/ 1.0 n) -0.001)
         (/ (/ t_0 n) x)
         (if (<= (/ 1.0 n) 1e-6)
           (/ (log (/ (+ x 1.0) x)) n)
           (if (<= (/ 1.0 n) 2e+209)
             (- 1.0 t_0)
             (/ (+ (/ (+ -0.5 (/ 0.3333333333333333 x)) x) 1.0) (* x n)))))))
    double code(double x, double n) {
    	double t_0 = pow(x, (1.0 / n));
    	double tmp;
    	if ((1.0 / n) <= -0.001) {
    		tmp = (t_0 / n) / x;
    	} else if ((1.0 / n) <= 1e-6) {
    		tmp = log(((x + 1.0) / x)) / n;
    	} else if ((1.0 / n) <= 2e+209) {
    		tmp = 1.0 - t_0;
    	} else {
    		tmp = (((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / (x * n);
    	}
    	return tmp;
    }
    
    real(8) function code(x, n)
        real(8), intent (in) :: x
        real(8), intent (in) :: n
        real(8) :: t_0
        real(8) :: tmp
        t_0 = x ** (1.0d0 / n)
        if ((1.0d0 / n) <= (-0.001d0)) then
            tmp = (t_0 / n) / x
        else if ((1.0d0 / n) <= 1d-6) then
            tmp = log(((x + 1.0d0) / x)) / n
        else if ((1.0d0 / n) <= 2d+209) then
            tmp = 1.0d0 - t_0
        else
            tmp = ((((-0.5d0) + (0.3333333333333333d0 / x)) / x) + 1.0d0) / (x * n)
        end if
        code = tmp
    end function
    
    public static double code(double x, double n) {
    	double t_0 = Math.pow(x, (1.0 / n));
    	double tmp;
    	if ((1.0 / n) <= -0.001) {
    		tmp = (t_0 / n) / x;
    	} else if ((1.0 / n) <= 1e-6) {
    		tmp = Math.log(((x + 1.0) / x)) / n;
    	} else if ((1.0 / n) <= 2e+209) {
    		tmp = 1.0 - t_0;
    	} else {
    		tmp = (((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / (x * n);
    	}
    	return tmp;
    }
    
    def code(x, n):
    	t_0 = math.pow(x, (1.0 / n))
    	tmp = 0
    	if (1.0 / n) <= -0.001:
    		tmp = (t_0 / n) / x
    	elif (1.0 / n) <= 1e-6:
    		tmp = math.log(((x + 1.0) / x)) / n
    	elif (1.0 / n) <= 2e+209:
    		tmp = 1.0 - t_0
    	else:
    		tmp = (((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / (x * n)
    	return tmp
    
    function code(x, n)
    	t_0 = x ^ Float64(1.0 / n)
    	tmp = 0.0
    	if (Float64(1.0 / n) <= -0.001)
    		tmp = Float64(Float64(t_0 / n) / x);
    	elseif (Float64(1.0 / n) <= 1e-6)
    		tmp = Float64(log(Float64(Float64(x + 1.0) / x)) / n);
    	elseif (Float64(1.0 / n) <= 2e+209)
    		tmp = Float64(1.0 - t_0);
    	else
    		tmp = Float64(Float64(Float64(Float64(-0.5 + Float64(0.3333333333333333 / x)) / x) + 1.0) / Float64(x * n));
    	end
    	return tmp
    end
    
    function tmp_2 = code(x, n)
    	t_0 = x ^ (1.0 / n);
    	tmp = 0.0;
    	if ((1.0 / n) <= -0.001)
    		tmp = (t_0 / n) / x;
    	elseif ((1.0 / n) <= 1e-6)
    		tmp = log(((x + 1.0) / x)) / n;
    	elseif ((1.0 / n) <= 2e+209)
    		tmp = 1.0 - t_0;
    	else
    		tmp = (((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / (x * n);
    	end
    	tmp_2 = tmp;
    end
    
    code[x_, n_] := Block[{t$95$0 = N[Power[x, N[(1.0 / n), $MachinePrecision]], $MachinePrecision]}, If[LessEqual[N[(1.0 / n), $MachinePrecision], -0.001], N[(N[(t$95$0 / n), $MachinePrecision] / x), $MachinePrecision], If[LessEqual[N[(1.0 / n), $MachinePrecision], 1e-6], N[(N[Log[N[(N[(x + 1.0), $MachinePrecision] / x), $MachinePrecision]], $MachinePrecision] / n), $MachinePrecision], If[LessEqual[N[(1.0 / n), $MachinePrecision], 2e+209], N[(1.0 - t$95$0), $MachinePrecision], N[(N[(N[(N[(-0.5 + N[(0.3333333333333333 / x), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision] + 1.0), $MachinePrecision] / N[(x * n), $MachinePrecision]), $MachinePrecision]]]]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    t_0 := {x}^{\left(\frac{1}{n}\right)}\\
    \mathbf{if}\;\frac{1}{n} \leq -0.001:\\
    \;\;\;\;\frac{\frac{t\_0}{n}}{x}\\
    
    \mathbf{elif}\;\frac{1}{n} \leq 10^{-6}:\\
    \;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\
    
    \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{+209}:\\
    \;\;\;\;1 - t\_0\\
    
    \mathbf{else}:\\
    \;\;\;\;\frac{\frac{-0.5 + \frac{0.3333333333333333}{x}}{x} + 1}{x \cdot n}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 4 regimes
    2. if (/.f64 #s(literal 1 binary64) n) < -1e-3

      1. Initial program 95.6%

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

        \[\leadsto \color{blue}{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n \cdot x}} \]
      4. Step-by-step derivation
        1. associate-/r*99.9%

          \[\leadsto \color{blue}{\frac{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n}}{x}} \]
        2. mul-1-neg99.9%

          \[\leadsto \frac{\frac{e^{\color{blue}{-\frac{\log \left(\frac{1}{x}\right)}{n}}}}{n}}{x} \]
        3. log-rec99.9%

          \[\leadsto \frac{\frac{e^{-\frac{\color{blue}{-\log x}}{n}}}{n}}{x} \]
        4. mul-1-neg99.9%

          \[\leadsto \frac{\frac{e^{-\frac{\color{blue}{-1 \cdot \log x}}{n}}}{n}}{x} \]
        5. distribute-neg-frac99.9%

          \[\leadsto \frac{\frac{e^{\color{blue}{\frac{--1 \cdot \log x}{n}}}}{n}}{x} \]
        6. mul-1-neg99.9%

          \[\leadsto \frac{\frac{e^{\frac{-\color{blue}{\left(-\log x\right)}}{n}}}{n}}{x} \]
        7. remove-double-neg99.9%

          \[\leadsto \frac{\frac{e^{\frac{\color{blue}{\log x}}{n}}}{n}}{x} \]
        8. *-rgt-identity99.9%

          \[\leadsto \frac{\frac{e^{\frac{\color{blue}{\log x \cdot 1}}{n}}}{n}}{x} \]
        9. associate-/l*99.8%

          \[\leadsto \frac{\frac{e^{\color{blue}{\log x \cdot \frac{1}{n}}}}{n}}{x} \]
        10. exp-to-pow99.8%

          \[\leadsto \frac{\frac{\color{blue}{{x}^{\left(\frac{1}{n}\right)}}}{n}}{x} \]
      5. Simplified99.8%

        \[\leadsto \color{blue}{\frac{\frac{{x}^{\left(\frac{1}{n}\right)}}{n}}{x}} \]

      if -1e-3 < (/.f64 #s(literal 1 binary64) n) < 9.99999999999999955e-7

      1. Initial program 32.6%

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

        \[\leadsto \color{blue}{\frac{\log \left(1 + x\right) - \log x}{n}} \]
      4. Step-by-step derivation
        1. log1p-define75.9%

          \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n} \]
      5. Simplified75.9%

        \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) - \log x}{n}} \]
      6. Step-by-step derivation
        1. log1p-undefine75.9%

          \[\leadsto \frac{\color{blue}{\log \left(1 + x\right)} - \log x}{n} \]
        2. diff-log76.0%

          \[\leadsto \frac{\color{blue}{\log \left(\frac{1 + x}{x}\right)}}{n} \]
      7. Applied egg-rr76.0%

        \[\leadsto \frac{\color{blue}{\log \left(\frac{1 + x}{x}\right)}}{n} \]
      8. Step-by-step derivation
        1. +-commutative76.0%

          \[\leadsto \frac{\log \left(\frac{\color{blue}{x + 1}}{x}\right)}{n} \]
      9. Simplified76.0%

        \[\leadsto \frac{\color{blue}{\log \left(\frac{x + 1}{x}\right)}}{n} \]

      if 9.99999999999999955e-7 < (/.f64 #s(literal 1 binary64) n) < 2.0000000000000001e209

      1. Initial program 76.2%

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

        \[\leadsto \color{blue}{1 - e^{\frac{\log x}{n}}} \]
      4. Step-by-step derivation
        1. *-rgt-identity69.5%

          \[\leadsto 1 - e^{\color{blue}{\frac{\log x}{n} \cdot 1}} \]
        2. associate-*l/69.5%

          \[\leadsto 1 - e^{\color{blue}{\frac{\log x \cdot 1}{n}}} \]
        3. associate-/l*69.5%

          \[\leadsto 1 - e^{\color{blue}{\log x \cdot \frac{1}{n}}} \]
        4. exp-to-pow69.5%

          \[\leadsto 1 - \color{blue}{{x}^{\left(\frac{1}{n}\right)}} \]
      5. Simplified69.5%

        \[\leadsto \color{blue}{1 - {x}^{\left(\frac{1}{n}\right)}} \]

      if 2.0000000000000001e209 < (/.f64 #s(literal 1 binary64) n)

      1. Initial program 6.4%

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

        \[\leadsto \color{blue}{\frac{\left(\log \left(1 + x\right) + 0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n}\right) - \left(\log x + 0.5 \cdot \frac{{\log x}^{2}}{n}\right)}{n}} \]
      4. Step-by-step derivation
        1. associate--l+0.1%

          \[\leadsto \frac{\color{blue}{\log \left(1 + x\right) + \left(0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n} - \left(\log x + 0.5 \cdot \frac{{\log x}^{2}}{n}\right)\right)}}{n} \]
        2. log1p-define0.1%

          \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} + \left(0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n} - \left(\log x + 0.5 \cdot \frac{{\log x}^{2}}{n}\right)\right)}{n} \]
        3. +-commutative0.1%

          \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \left(0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n} - \color{blue}{\left(0.5 \cdot \frac{{\log x}^{2}}{n} + \log x\right)}\right)}{n} \]
        4. associate--r+0.1%

          \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \color{blue}{\left(\left(0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n} - 0.5 \cdot \frac{{\log x}^{2}}{n}\right) - \log x\right)}}{n} \]
        5. distribute-lft-out--0.1%

          \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \left(\color{blue}{0.5 \cdot \left(\frac{{\log \left(1 + x\right)}^{2}}{n} - \frac{{\log x}^{2}}{n}\right)} - \log x\right)}{n} \]
        6. div-sub0.1%

          \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \left(0.5 \cdot \color{blue}{\frac{{\log \left(1 + x\right)}^{2} - {\log x}^{2}}{n}} - \log x\right)}{n} \]
        7. log1p-define0.1%

          \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \left(0.5 \cdot \frac{{\color{blue}{\left(\mathsf{log1p}\left(x\right)\right)}}^{2} - {\log x}^{2}}{n} - \log x\right)}{n} \]
      5. Simplified0.1%

        \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) + \left(0.5 \cdot \frac{{\left(\mathsf{log1p}\left(x\right)\right)}^{2} - {\log x}^{2}}{n} - \log x\right)}{n}} \]
      6. Taylor expanded in x around inf 0.0%

        \[\leadsto \frac{\color{blue}{\frac{\left(1 + \left(-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n} + \left(0.5 \cdot \frac{\frac{1}{n} + \frac{\log \left(\frac{1}{x}\right)}{n}}{x} + \left(0.5 \cdot \frac{-0.6666666666666666 \cdot \frac{\log \left(\frac{1}{x}\right)}{n} - \frac{1}{n}}{{x}^{2}} + \frac{0.3333333333333333}{{x}^{2}}\right)\right)\right)\right) - 0.5 \cdot \frac{1}{x}}{x}}}{n} \]
      7. Taylor expanded in n around inf 91.9%

        \[\leadsto \color{blue}{\frac{\left(1 + 0.3333333333333333 \cdot \frac{1}{{x}^{2}}\right) - 0.5 \cdot \frac{1}{x}}{n \cdot x}} \]
      8. Step-by-step derivation
        1. associate--l+91.9%

          \[\leadsto \frac{\color{blue}{1 + \left(0.3333333333333333 \cdot \frac{1}{{x}^{2}} - 0.5 \cdot \frac{1}{x}\right)}}{n \cdot x} \]
        2. associate-*r/91.9%

          \[\leadsto \frac{1 + \left(\color{blue}{\frac{0.3333333333333333 \cdot 1}{{x}^{2}}} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
        3. metadata-eval91.9%

          \[\leadsto \frac{1 + \left(\frac{\color{blue}{0.3333333333333333}}{{x}^{2}} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
        4. unpow291.9%

          \[\leadsto \frac{1 + \left(\frac{0.3333333333333333}{\color{blue}{x \cdot x}} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
        5. associate-/r*91.9%

          \[\leadsto \frac{1 + \left(\color{blue}{\frac{\frac{0.3333333333333333}{x}}{x}} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
        6. metadata-eval91.9%

          \[\leadsto \frac{1 + \left(\frac{\frac{\color{blue}{0.3333333333333333 \cdot 1}}{x}}{x} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
        7. associate-*r/91.9%

          \[\leadsto \frac{1 + \left(\frac{\color{blue}{0.3333333333333333 \cdot \frac{1}{x}}}{x} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
        8. associate-*r/91.9%

          \[\leadsto \frac{1 + \left(\frac{0.3333333333333333 \cdot \frac{1}{x}}{x} - \color{blue}{\frac{0.5 \cdot 1}{x}}\right)}{n \cdot x} \]
        9. metadata-eval91.9%

          \[\leadsto \frac{1 + \left(\frac{0.3333333333333333 \cdot \frac{1}{x}}{x} - \frac{\color{blue}{0.5}}{x}\right)}{n \cdot x} \]
        10. div-sub91.9%

          \[\leadsto \frac{1 + \color{blue}{\frac{0.3333333333333333 \cdot \frac{1}{x} - 0.5}{x}}}{n \cdot x} \]
        11. sub-neg91.9%

          \[\leadsto \frac{1 + \frac{\color{blue}{0.3333333333333333 \cdot \frac{1}{x} + \left(-0.5\right)}}{x}}{n \cdot x} \]
        12. associate-*r/91.9%

          \[\leadsto \frac{1 + \frac{\color{blue}{\frac{0.3333333333333333 \cdot 1}{x}} + \left(-0.5\right)}{x}}{n \cdot x} \]
        13. metadata-eval91.9%

          \[\leadsto \frac{1 + \frac{\frac{\color{blue}{0.3333333333333333}}{x} + \left(-0.5\right)}{x}}{n \cdot x} \]
        14. metadata-eval91.9%

          \[\leadsto \frac{1 + \frac{\frac{0.3333333333333333}{x} + \color{blue}{-0.5}}{x}}{n \cdot x} \]
        15. *-commutative91.9%

          \[\leadsto \frac{1 + \frac{\frac{0.3333333333333333}{x} + -0.5}{x}}{\color{blue}{x \cdot n}} \]
      9. Simplified91.9%

        \[\leadsto \color{blue}{\frac{1 + \frac{\frac{0.3333333333333333}{x} + -0.5}{x}}{x \cdot n}} \]
    3. Recombined 4 regimes into one program.
    4. Final simplification81.9%

      \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{1}{n} \leq -0.001:\\ \;\;\;\;\frac{\frac{{x}^{\left(\frac{1}{n}\right)}}{n}}{x}\\ \mathbf{elif}\;\frac{1}{n} \leq 10^{-6}:\\ \;\;\;\;\frac{\log \left(\frac{x + 1}{x}\right)}{n}\\ \mathbf{elif}\;\frac{1}{n} \leq 2 \cdot 10^{+209}:\\ \;\;\;\;1 - {x}^{\left(\frac{1}{n}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{-0.5 + \frac{0.3333333333333333}{x}}{x} + 1}{x \cdot n}\\ \end{array} \]
    5. Add Preprocessing

    Alternative 12: 55.3% accurate, 1.8× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq 2.05 \cdot 10^{-191}:\\ \;\;\;\;\frac{\log x}{-n}\\ \mathbf{elif}\;x \leq 1.3 \cdot 10^{-144} \lor \neg \left(x \leq 0.00036\right):\\ \;\;\;\;\frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x}\\ \mathbf{else}:\\ \;\;\;\;\log x \cdot \frac{-1}{n}\\ \end{array} \end{array} \]
    (FPCore (x n)
     :precision binary64
     (if (<= x 2.05e-191)
       (/ (log x) (- n))
       (if (or (<= x 1.3e-144) (not (<= x 0.00036)))
         (/ (+ (/ 1.0 n) (/ (+ (/ 0.3333333333333333 (* x n)) (/ -0.5 n)) x)) x)
         (* (log x) (/ -1.0 n)))))
    double code(double x, double n) {
    	double tmp;
    	if (x <= 2.05e-191) {
    		tmp = log(x) / -n;
    	} else if ((x <= 1.3e-144) || !(x <= 0.00036)) {
    		tmp = ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x;
    	} else {
    		tmp = log(x) * (-1.0 / n);
    	}
    	return tmp;
    }
    
    real(8) function code(x, n)
        real(8), intent (in) :: x
        real(8), intent (in) :: n
        real(8) :: tmp
        if (x <= 2.05d-191) then
            tmp = log(x) / -n
        else if ((x <= 1.3d-144) .or. (.not. (x <= 0.00036d0))) then
            tmp = ((1.0d0 / n) + (((0.3333333333333333d0 / (x * n)) + ((-0.5d0) / n)) / x)) / x
        else
            tmp = log(x) * ((-1.0d0) / n)
        end if
        code = tmp
    end function
    
    public static double code(double x, double n) {
    	double tmp;
    	if (x <= 2.05e-191) {
    		tmp = Math.log(x) / -n;
    	} else if ((x <= 1.3e-144) || !(x <= 0.00036)) {
    		tmp = ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x;
    	} else {
    		tmp = Math.log(x) * (-1.0 / n);
    	}
    	return tmp;
    }
    
    def code(x, n):
    	tmp = 0
    	if x <= 2.05e-191:
    		tmp = math.log(x) / -n
    	elif (x <= 1.3e-144) or not (x <= 0.00036):
    		tmp = ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x
    	else:
    		tmp = math.log(x) * (-1.0 / n)
    	return tmp
    
    function code(x, n)
    	tmp = 0.0
    	if (x <= 2.05e-191)
    		tmp = Float64(log(x) / Float64(-n));
    	elseif ((x <= 1.3e-144) || !(x <= 0.00036))
    		tmp = Float64(Float64(Float64(1.0 / n) + Float64(Float64(Float64(0.3333333333333333 / Float64(x * n)) + Float64(-0.5 / n)) / x)) / x);
    	else
    		tmp = Float64(log(x) * Float64(-1.0 / n));
    	end
    	return tmp
    end
    
    function tmp_2 = code(x, n)
    	tmp = 0.0;
    	if (x <= 2.05e-191)
    		tmp = log(x) / -n;
    	elseif ((x <= 1.3e-144) || ~((x <= 0.00036)))
    		tmp = ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x;
    	else
    		tmp = log(x) * (-1.0 / n);
    	end
    	tmp_2 = tmp;
    end
    
    code[x_, n_] := If[LessEqual[x, 2.05e-191], N[(N[Log[x], $MachinePrecision] / (-n)), $MachinePrecision], If[Or[LessEqual[x, 1.3e-144], N[Not[LessEqual[x, 0.00036]], $MachinePrecision]], N[(N[(N[(1.0 / n), $MachinePrecision] + N[(N[(N[(0.3333333333333333 / N[(x * n), $MachinePrecision]), $MachinePrecision] + N[(-0.5 / n), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision], N[(N[Log[x], $MachinePrecision] * N[(-1.0 / n), $MachinePrecision]), $MachinePrecision]]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;x \leq 2.05 \cdot 10^{-191}:\\
    \;\;\;\;\frac{\log x}{-n}\\
    
    \mathbf{elif}\;x \leq 1.3 \cdot 10^{-144} \lor \neg \left(x \leq 0.00036\right):\\
    \;\;\;\;\frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x}\\
    
    \mathbf{else}:\\
    \;\;\;\;\log x \cdot \frac{-1}{n}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 3 regimes
    2. if x < 2.0500000000000001e-191

      1. Initial program 48.6%

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

        \[\leadsto \color{blue}{1 - e^{\frac{\log x}{n}}} \]
      4. Step-by-step derivation
        1. *-rgt-identity48.6%

          \[\leadsto 1 - e^{\color{blue}{\frac{\log x}{n} \cdot 1}} \]
        2. associate-*l/48.6%

          \[\leadsto 1 - e^{\color{blue}{\frac{\log x \cdot 1}{n}}} \]
        3. associate-/l*48.6%

          \[\leadsto 1 - e^{\color{blue}{\log x \cdot \frac{1}{n}}} \]
        4. exp-to-pow48.6%

          \[\leadsto 1 - \color{blue}{{x}^{\left(\frac{1}{n}\right)}} \]
      5. Simplified48.6%

        \[\leadsto \color{blue}{1 - {x}^{\left(\frac{1}{n}\right)}} \]
      6. Taylor expanded in n around inf 51.0%

        \[\leadsto \color{blue}{-1 \cdot \frac{\log x}{n}} \]
      7. Step-by-step derivation
        1. mul-1-neg51.0%

          \[\leadsto \color{blue}{-\frac{\log x}{n}} \]
        2. distribute-neg-frac251.0%

          \[\leadsto \color{blue}{\frac{\log x}{-n}} \]
      8. Simplified51.0%

        \[\leadsto \color{blue}{\frac{\log x}{-n}} \]

      if 2.0500000000000001e-191 < x < 1.3e-144 or 3.60000000000000023e-4 < x

      1. Initial program 65.5%

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

        \[\leadsto \color{blue}{\frac{\log \left(1 + x\right) - \log x}{n}} \]
      4. Step-by-step derivation
        1. log1p-define58.5%

          \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n} \]
      5. Simplified58.5%

        \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) - \log x}{n}} \]
      6. Taylor expanded in x around inf 57.9%

        \[\leadsto \color{blue}{\frac{\left(\frac{0.3333333333333333}{n \cdot {x}^{2}} + \frac{1}{n}\right) - \frac{0.5}{n \cdot x}}{x}} \]
      7. Step-by-step derivation
        1. Simplified66.7%

          \[\leadsto \color{blue}{\frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x}} \]

        if 1.3e-144 < x < 3.60000000000000023e-4

        1. Initial program 27.0%

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

          \[\leadsto \color{blue}{\frac{\log \left(1 + x\right) - \log x}{n}} \]
        4. Step-by-step derivation
          1. log1p-define65.9%

            \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n} \]
        5. Simplified65.9%

          \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) - \log x}{n}} \]
        6. Taylor expanded in x around 0 63.8%

          \[\leadsto \frac{\color{blue}{-1 \cdot \log x}}{n} \]
        7. Step-by-step derivation
          1. neg-mul-163.8%

            \[\leadsto \frac{\color{blue}{-\log x}}{n} \]
        8. Simplified63.8%

          \[\leadsto \frac{\color{blue}{-\log x}}{n} \]
        9. Step-by-step derivation
          1. frac-2neg63.8%

            \[\leadsto \color{blue}{\frac{-\left(-\log x\right)}{-n}} \]
          2. div-inv63.8%

            \[\leadsto \color{blue}{\left(-\left(-\log x\right)\right) \cdot \frac{1}{-n}} \]
          3. remove-double-neg63.8%

            \[\leadsto \color{blue}{\log x} \cdot \frac{1}{-n} \]
          4. distribute-neg-frac263.8%

            \[\leadsto \log x \cdot \color{blue}{\left(-\frac{1}{n}\right)} \]
          5. distribute-neg-frac63.8%

            \[\leadsto \log x \cdot \color{blue}{\frac{-1}{n}} \]
          6. metadata-eval63.8%

            \[\leadsto \log x \cdot \frac{\color{blue}{-1}}{n} \]
        10. Applied egg-rr63.8%

          \[\leadsto \color{blue}{\log x \cdot \frac{-1}{n}} \]
      8. Recombined 3 regimes into one program.
      9. Final simplification62.8%

        \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq 2.05 \cdot 10^{-191}:\\ \;\;\;\;\frac{\log x}{-n}\\ \mathbf{elif}\;x \leq 1.3 \cdot 10^{-144} \lor \neg \left(x \leq 0.00036\right):\\ \;\;\;\;\frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x}\\ \mathbf{else}:\\ \;\;\;\;\log x \cdot \frac{-1}{n}\\ \end{array} \]
      10. Add Preprocessing

      Alternative 13: 55.4% accurate, 1.8× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq 2.05 \cdot 10^{-191}:\\ \;\;\;\;\frac{\log x}{-n}\\ \mathbf{elif}\;x \leq 1.45 \cdot 10^{-144} \lor \neg \left(x \leq 0.00036\right):\\ \;\;\;\;\frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{x - \log x}{n}\\ \end{array} \end{array} \]
      (FPCore (x n)
       :precision binary64
       (if (<= x 2.05e-191)
         (/ (log x) (- n))
         (if (or (<= x 1.45e-144) (not (<= x 0.00036)))
           (/ (+ (/ 1.0 n) (/ (+ (/ 0.3333333333333333 (* x n)) (/ -0.5 n)) x)) x)
           (/ (- x (log x)) n))))
      double code(double x, double n) {
      	double tmp;
      	if (x <= 2.05e-191) {
      		tmp = log(x) / -n;
      	} else if ((x <= 1.45e-144) || !(x <= 0.00036)) {
      		tmp = ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x;
      	} else {
      		tmp = (x - log(x)) / n;
      	}
      	return tmp;
      }
      
      real(8) function code(x, n)
          real(8), intent (in) :: x
          real(8), intent (in) :: n
          real(8) :: tmp
          if (x <= 2.05d-191) then
              tmp = log(x) / -n
          else if ((x <= 1.45d-144) .or. (.not. (x <= 0.00036d0))) then
              tmp = ((1.0d0 / n) + (((0.3333333333333333d0 / (x * n)) + ((-0.5d0) / n)) / x)) / x
          else
              tmp = (x - log(x)) / n
          end if
          code = tmp
      end function
      
      public static double code(double x, double n) {
      	double tmp;
      	if (x <= 2.05e-191) {
      		tmp = Math.log(x) / -n;
      	} else if ((x <= 1.45e-144) || !(x <= 0.00036)) {
      		tmp = ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x;
      	} else {
      		tmp = (x - Math.log(x)) / n;
      	}
      	return tmp;
      }
      
      def code(x, n):
      	tmp = 0
      	if x <= 2.05e-191:
      		tmp = math.log(x) / -n
      	elif (x <= 1.45e-144) or not (x <= 0.00036):
      		tmp = ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x
      	else:
      		tmp = (x - math.log(x)) / n
      	return tmp
      
      function code(x, n)
      	tmp = 0.0
      	if (x <= 2.05e-191)
      		tmp = Float64(log(x) / Float64(-n));
      	elseif ((x <= 1.45e-144) || !(x <= 0.00036))
      		tmp = Float64(Float64(Float64(1.0 / n) + Float64(Float64(Float64(0.3333333333333333 / Float64(x * n)) + Float64(-0.5 / n)) / x)) / x);
      	else
      		tmp = Float64(Float64(x - log(x)) / n);
      	end
      	return tmp
      end
      
      function tmp_2 = code(x, n)
      	tmp = 0.0;
      	if (x <= 2.05e-191)
      		tmp = log(x) / -n;
      	elseif ((x <= 1.45e-144) || ~((x <= 0.00036)))
      		tmp = ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x;
      	else
      		tmp = (x - log(x)) / n;
      	end
      	tmp_2 = tmp;
      end
      
      code[x_, n_] := If[LessEqual[x, 2.05e-191], N[(N[Log[x], $MachinePrecision] / (-n)), $MachinePrecision], If[Or[LessEqual[x, 1.45e-144], N[Not[LessEqual[x, 0.00036]], $MachinePrecision]], N[(N[(N[(1.0 / n), $MachinePrecision] + N[(N[(N[(0.3333333333333333 / N[(x * n), $MachinePrecision]), $MachinePrecision] + N[(-0.5 / n), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision], N[(N[(x - N[Log[x], $MachinePrecision]), $MachinePrecision] / n), $MachinePrecision]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      \mathbf{if}\;x \leq 2.05 \cdot 10^{-191}:\\
      \;\;\;\;\frac{\log x}{-n}\\
      
      \mathbf{elif}\;x \leq 1.45 \cdot 10^{-144} \lor \neg \left(x \leq 0.00036\right):\\
      \;\;\;\;\frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x}\\
      
      \mathbf{else}:\\
      \;\;\;\;\frac{x - \log x}{n}\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 3 regimes
      2. if x < 2.0500000000000001e-191

        1. Initial program 48.6%

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

          \[\leadsto \color{blue}{1 - e^{\frac{\log x}{n}}} \]
        4. Step-by-step derivation
          1. *-rgt-identity48.6%

            \[\leadsto 1 - e^{\color{blue}{\frac{\log x}{n} \cdot 1}} \]
          2. associate-*l/48.6%

            \[\leadsto 1 - e^{\color{blue}{\frac{\log x \cdot 1}{n}}} \]
          3. associate-/l*48.6%

            \[\leadsto 1 - e^{\color{blue}{\log x \cdot \frac{1}{n}}} \]
          4. exp-to-pow48.6%

            \[\leadsto 1 - \color{blue}{{x}^{\left(\frac{1}{n}\right)}} \]
        5. Simplified48.6%

          \[\leadsto \color{blue}{1 - {x}^{\left(\frac{1}{n}\right)}} \]
        6. Taylor expanded in n around inf 51.0%

          \[\leadsto \color{blue}{-1 \cdot \frac{\log x}{n}} \]
        7. Step-by-step derivation
          1. mul-1-neg51.0%

            \[\leadsto \color{blue}{-\frac{\log x}{n}} \]
          2. distribute-neg-frac251.0%

            \[\leadsto \color{blue}{\frac{\log x}{-n}} \]
        8. Simplified51.0%

          \[\leadsto \color{blue}{\frac{\log x}{-n}} \]

        if 2.0500000000000001e-191 < x < 1.4500000000000001e-144 or 3.60000000000000023e-4 < x

        1. Initial program 65.5%

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

          \[\leadsto \color{blue}{\frac{\log \left(1 + x\right) - \log x}{n}} \]
        4. Step-by-step derivation
          1. log1p-define58.5%

            \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n} \]
        5. Simplified58.5%

          \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) - \log x}{n}} \]
        6. Taylor expanded in x around inf 57.9%

          \[\leadsto \color{blue}{\frac{\left(\frac{0.3333333333333333}{n \cdot {x}^{2}} + \frac{1}{n}\right) - \frac{0.5}{n \cdot x}}{x}} \]
        7. Step-by-step derivation
          1. Simplified66.7%

            \[\leadsto \color{blue}{\frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x}} \]

          if 1.4500000000000001e-144 < x < 3.60000000000000023e-4

          1. Initial program 27.0%

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

            \[\leadsto \color{blue}{\frac{\log \left(1 + x\right) - \log x}{n}} \]
          4. Step-by-step derivation
            1. log1p-define65.9%

              \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n} \]
          5. Simplified65.9%

            \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) - \log x}{n}} \]
          6. Taylor expanded in x around 0 65.5%

            \[\leadsto \frac{\color{blue}{x - \log x}}{n} \]
        8. Recombined 3 regimes into one program.
        9. Final simplification63.2%

          \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq 2.05 \cdot 10^{-191}:\\ \;\;\;\;\frac{\log x}{-n}\\ \mathbf{elif}\;x \leq 1.45 \cdot 10^{-144} \lor \neg \left(x \leq 0.00036\right):\\ \;\;\;\;\frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{x - \log x}{n}\\ \end{array} \]
        10. Add Preprocessing

        Alternative 14: 55.3% accurate, 1.8× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq 2.05 \cdot 10^{-191} \lor \neg \left(x \leq 1.3 \cdot 10^{-144}\right) \land x \leq 0.00036:\\ \;\;\;\;\frac{\log x}{-n}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x}\\ \end{array} \end{array} \]
        (FPCore (x n)
         :precision binary64
         (if (or (<= x 2.05e-191) (and (not (<= x 1.3e-144)) (<= x 0.00036)))
           (/ (log x) (- n))
           (/ (+ (/ 1.0 n) (/ (+ (/ 0.3333333333333333 (* x n)) (/ -0.5 n)) x)) x)))
        double code(double x, double n) {
        	double tmp;
        	if ((x <= 2.05e-191) || (!(x <= 1.3e-144) && (x <= 0.00036))) {
        		tmp = log(x) / -n;
        	} else {
        		tmp = ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x;
        	}
        	return tmp;
        }
        
        real(8) function code(x, n)
            real(8), intent (in) :: x
            real(8), intent (in) :: n
            real(8) :: tmp
            if ((x <= 2.05d-191) .or. (.not. (x <= 1.3d-144)) .and. (x <= 0.00036d0)) then
                tmp = log(x) / -n
            else
                tmp = ((1.0d0 / n) + (((0.3333333333333333d0 / (x * n)) + ((-0.5d0) / n)) / x)) / x
            end if
            code = tmp
        end function
        
        public static double code(double x, double n) {
        	double tmp;
        	if ((x <= 2.05e-191) || (!(x <= 1.3e-144) && (x <= 0.00036))) {
        		tmp = Math.log(x) / -n;
        	} else {
        		tmp = ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x;
        	}
        	return tmp;
        }
        
        def code(x, n):
        	tmp = 0
        	if (x <= 2.05e-191) or (not (x <= 1.3e-144) and (x <= 0.00036)):
        		tmp = math.log(x) / -n
        	else:
        		tmp = ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x
        	return tmp
        
        function code(x, n)
        	tmp = 0.0
        	if ((x <= 2.05e-191) || (!(x <= 1.3e-144) && (x <= 0.00036)))
        		tmp = Float64(log(x) / Float64(-n));
        	else
        		tmp = Float64(Float64(Float64(1.0 / n) + Float64(Float64(Float64(0.3333333333333333 / Float64(x * n)) + Float64(-0.5 / n)) / x)) / x);
        	end
        	return tmp
        end
        
        function tmp_2 = code(x, n)
        	tmp = 0.0;
        	if ((x <= 2.05e-191) || (~((x <= 1.3e-144)) && (x <= 0.00036)))
        		tmp = log(x) / -n;
        	else
        		tmp = ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x;
        	end
        	tmp_2 = tmp;
        end
        
        code[x_, n_] := If[Or[LessEqual[x, 2.05e-191], And[N[Not[LessEqual[x, 1.3e-144]], $MachinePrecision], LessEqual[x, 0.00036]]], N[(N[Log[x], $MachinePrecision] / (-n)), $MachinePrecision], N[(N[(N[(1.0 / n), $MachinePrecision] + N[(N[(N[(0.3333333333333333 / N[(x * n), $MachinePrecision]), $MachinePrecision] + N[(-0.5 / n), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        \mathbf{if}\;x \leq 2.05 \cdot 10^{-191} \lor \neg \left(x \leq 1.3 \cdot 10^{-144}\right) \land x \leq 0.00036:\\
        \;\;\;\;\frac{\log x}{-n}\\
        
        \mathbf{else}:\\
        \;\;\;\;\frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x}\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 2 regimes
        2. if x < 2.0500000000000001e-191 or 1.3e-144 < x < 3.60000000000000023e-4

          1. Initial program 36.4%

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

            \[\leadsto \color{blue}{1 - e^{\frac{\log x}{n}}} \]
          4. Step-by-step derivation
            1. *-rgt-identity36.4%

              \[\leadsto 1 - e^{\color{blue}{\frac{\log x}{n} \cdot 1}} \]
            2. associate-*l/36.4%

              \[\leadsto 1 - e^{\color{blue}{\frac{\log x \cdot 1}{n}}} \]
            3. associate-/l*36.4%

              \[\leadsto 1 - e^{\color{blue}{\log x \cdot \frac{1}{n}}} \]
            4. exp-to-pow36.4%

              \[\leadsto 1 - \color{blue}{{x}^{\left(\frac{1}{n}\right)}} \]
          5. Simplified36.4%

            \[\leadsto \color{blue}{1 - {x}^{\left(\frac{1}{n}\right)}} \]
          6. Taylor expanded in n around inf 58.3%

            \[\leadsto \color{blue}{-1 \cdot \frac{\log x}{n}} \]
          7. Step-by-step derivation
            1. mul-1-neg58.3%

              \[\leadsto \color{blue}{-\frac{\log x}{n}} \]
            2. distribute-neg-frac258.3%

              \[\leadsto \color{blue}{\frac{\log x}{-n}} \]
          8. Simplified58.3%

            \[\leadsto \color{blue}{\frac{\log x}{-n}} \]

          if 2.0500000000000001e-191 < x < 1.3e-144 or 3.60000000000000023e-4 < x

          1. Initial program 65.5%

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

            \[\leadsto \color{blue}{\frac{\log \left(1 + x\right) - \log x}{n}} \]
          4. Step-by-step derivation
            1. log1p-define58.5%

              \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n} \]
          5. Simplified58.5%

            \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) - \log x}{n}} \]
          6. Taylor expanded in x around inf 57.9%

            \[\leadsto \color{blue}{\frac{\left(\frac{0.3333333333333333}{n \cdot {x}^{2}} + \frac{1}{n}\right) - \frac{0.5}{n \cdot x}}{x}} \]
          7. Step-by-step derivation
            1. Simplified66.7%

              \[\leadsto \color{blue}{\frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x}} \]
          8. Recombined 2 regimes into one program.
          9. Final simplification62.8%

            \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq 2.05 \cdot 10^{-191} \lor \neg \left(x \leq 1.3 \cdot 10^{-144}\right) \land x \leq 0.00036:\\ \;\;\;\;\frac{\log x}{-n}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x}\\ \end{array} \]
          10. Add Preprocessing

          Alternative 15: 46.7% accurate, 12.4× speedup?

          \[\begin{array}{l} \\ \frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x} \end{array} \]
          (FPCore (x n)
           :precision binary64
           (/ (+ (/ 1.0 n) (/ (+ (/ 0.3333333333333333 (* x n)) (/ -0.5 n)) x)) x))
          double code(double x, double n) {
          	return ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x;
          }
          
          real(8) function code(x, n)
              real(8), intent (in) :: x
              real(8), intent (in) :: n
              code = ((1.0d0 / n) + (((0.3333333333333333d0 / (x * n)) + ((-0.5d0) / n)) / x)) / x
          end function
          
          public static double code(double x, double n) {
          	return ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x;
          }
          
          def code(x, n):
          	return ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x
          
          function code(x, n)
          	return Float64(Float64(Float64(1.0 / n) + Float64(Float64(Float64(0.3333333333333333 / Float64(x * n)) + Float64(-0.5 / n)) / x)) / x)
          end
          
          function tmp = code(x, n)
          	tmp = ((1.0 / n) + (((0.3333333333333333 / (x * n)) + (-0.5 / n)) / x)) / x;
          end
          
          code[x_, n_] := N[(N[(N[(1.0 / n), $MachinePrecision] + N[(N[(N[(0.3333333333333333 / N[(x * n), $MachinePrecision]), $MachinePrecision] + N[(-0.5 / n), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]
          
          \begin{array}{l}
          
          \\
          \frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x}
          \end{array}
          
          Derivation
          1. Initial program 51.8%

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

            \[\leadsto \color{blue}{\frac{\log \left(1 + x\right) - \log x}{n}} \]
          4. Step-by-step derivation
            1. log1p-define58.9%

              \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n} \]
          5. Simplified58.9%

            \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) - \log x}{n}} \]
          6. Taylor expanded in x around inf 35.1%

            \[\leadsto \color{blue}{\frac{\left(\frac{0.3333333333333333}{n \cdot {x}^{2}} + \frac{1}{n}\right) - \frac{0.5}{n \cdot x}}{x}} \]
          7. Step-by-step derivation
            1. Simplified46.6%

              \[\leadsto \color{blue}{\frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x}} \]
            2. Final simplification46.6%

              \[\leadsto \frac{\frac{1}{n} + \frac{\frac{0.3333333333333333}{x \cdot n} + \frac{-0.5}{n}}{x}}{x} \]
            3. Add Preprocessing

            Alternative 16: 46.3% accurate, 16.2× speedup?

            \[\begin{array}{l} \\ \frac{\frac{-0.5 + \frac{0.3333333333333333}{x}}{x} + 1}{x \cdot n} \end{array} \]
            (FPCore (x n)
             :precision binary64
             (/ (+ (/ (+ -0.5 (/ 0.3333333333333333 x)) x) 1.0) (* x n)))
            double code(double x, double n) {
            	return (((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / (x * n);
            }
            
            real(8) function code(x, n)
                real(8), intent (in) :: x
                real(8), intent (in) :: n
                code = ((((-0.5d0) + (0.3333333333333333d0 / x)) / x) + 1.0d0) / (x * n)
            end function
            
            public static double code(double x, double n) {
            	return (((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / (x * n);
            }
            
            def code(x, n):
            	return (((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / (x * n)
            
            function code(x, n)
            	return Float64(Float64(Float64(Float64(-0.5 + Float64(0.3333333333333333 / x)) / x) + 1.0) / Float64(x * n))
            end
            
            function tmp = code(x, n)
            	tmp = (((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / (x * n);
            end
            
            code[x_, n_] := N[(N[(N[(N[(-0.5 + N[(0.3333333333333333 / x), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision] + 1.0), $MachinePrecision] / N[(x * n), $MachinePrecision]), $MachinePrecision]
            
            \begin{array}{l}
            
            \\
            \frac{\frac{-0.5 + \frac{0.3333333333333333}{x}}{x} + 1}{x \cdot n}
            \end{array}
            
            Derivation
            1. Initial program 51.8%

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

              \[\leadsto \color{blue}{\frac{\left(\log \left(1 + x\right) + 0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n}\right) - \left(\log x + 0.5 \cdot \frac{{\log x}^{2}}{n}\right)}{n}} \]
            4. Step-by-step derivation
              1. associate--l+52.9%

                \[\leadsto \frac{\color{blue}{\log \left(1 + x\right) + \left(0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n} - \left(\log x + 0.5 \cdot \frac{{\log x}^{2}}{n}\right)\right)}}{n} \]
              2. log1p-define52.9%

                \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} + \left(0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n} - \left(\log x + 0.5 \cdot \frac{{\log x}^{2}}{n}\right)\right)}{n} \]
              3. +-commutative52.9%

                \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \left(0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n} - \color{blue}{\left(0.5 \cdot \frac{{\log x}^{2}}{n} + \log x\right)}\right)}{n} \]
              4. associate--r+64.4%

                \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \color{blue}{\left(\left(0.5 \cdot \frac{{\log \left(1 + x\right)}^{2}}{n} - 0.5 \cdot \frac{{\log x}^{2}}{n}\right) - \log x\right)}}{n} \]
              5. distribute-lft-out--64.4%

                \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \left(\color{blue}{0.5 \cdot \left(\frac{{\log \left(1 + x\right)}^{2}}{n} - \frac{{\log x}^{2}}{n}\right)} - \log x\right)}{n} \]
              6. div-sub64.4%

                \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \left(0.5 \cdot \color{blue}{\frac{{\log \left(1 + x\right)}^{2} - {\log x}^{2}}{n}} - \log x\right)}{n} \]
              7. log1p-define64.4%

                \[\leadsto \frac{\mathsf{log1p}\left(x\right) + \left(0.5 \cdot \frac{{\color{blue}{\left(\mathsf{log1p}\left(x\right)\right)}}^{2} - {\log x}^{2}}{n} - \log x\right)}{n} \]
            5. Simplified64.4%

              \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) + \left(0.5 \cdot \frac{{\left(\mathsf{log1p}\left(x\right)\right)}^{2} - {\log x}^{2}}{n} - \log x\right)}{n}} \]
            6. Taylor expanded in x around inf 34.5%

              \[\leadsto \frac{\color{blue}{\frac{\left(1 + \left(-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n} + \left(0.5 \cdot \frac{\frac{1}{n} + \frac{\log \left(\frac{1}{x}\right)}{n}}{x} + \left(0.5 \cdot \frac{-0.6666666666666666 \cdot \frac{\log \left(\frac{1}{x}\right)}{n} - \frac{1}{n}}{{x}^{2}} + \frac{0.3333333333333333}{{x}^{2}}\right)\right)\right)\right) - 0.5 \cdot \frac{1}{x}}{x}}}{n} \]
            7. Taylor expanded in n around inf 46.2%

              \[\leadsto \color{blue}{\frac{\left(1 + 0.3333333333333333 \cdot \frac{1}{{x}^{2}}\right) - 0.5 \cdot \frac{1}{x}}{n \cdot x}} \]
            8. Step-by-step derivation
              1. associate--l+46.2%

                \[\leadsto \frac{\color{blue}{1 + \left(0.3333333333333333 \cdot \frac{1}{{x}^{2}} - 0.5 \cdot \frac{1}{x}\right)}}{n \cdot x} \]
              2. associate-*r/46.2%

                \[\leadsto \frac{1 + \left(\color{blue}{\frac{0.3333333333333333 \cdot 1}{{x}^{2}}} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
              3. metadata-eval46.2%

                \[\leadsto \frac{1 + \left(\frac{\color{blue}{0.3333333333333333}}{{x}^{2}} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
              4. unpow246.2%

                \[\leadsto \frac{1 + \left(\frac{0.3333333333333333}{\color{blue}{x \cdot x}} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
              5. associate-/r*46.2%

                \[\leadsto \frac{1 + \left(\color{blue}{\frac{\frac{0.3333333333333333}{x}}{x}} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
              6. metadata-eval46.2%

                \[\leadsto \frac{1 + \left(\frac{\frac{\color{blue}{0.3333333333333333 \cdot 1}}{x}}{x} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
              7. associate-*r/46.2%

                \[\leadsto \frac{1 + \left(\frac{\color{blue}{0.3333333333333333 \cdot \frac{1}{x}}}{x} - 0.5 \cdot \frac{1}{x}\right)}{n \cdot x} \]
              8. associate-*r/46.2%

                \[\leadsto \frac{1 + \left(\frac{0.3333333333333333 \cdot \frac{1}{x}}{x} - \color{blue}{\frac{0.5 \cdot 1}{x}}\right)}{n \cdot x} \]
              9. metadata-eval46.2%

                \[\leadsto \frac{1 + \left(\frac{0.3333333333333333 \cdot \frac{1}{x}}{x} - \frac{\color{blue}{0.5}}{x}\right)}{n \cdot x} \]
              10. div-sub46.2%

                \[\leadsto \frac{1 + \color{blue}{\frac{0.3333333333333333 \cdot \frac{1}{x} - 0.5}{x}}}{n \cdot x} \]
              11. sub-neg46.2%

                \[\leadsto \frac{1 + \frac{\color{blue}{0.3333333333333333 \cdot \frac{1}{x} + \left(-0.5\right)}}{x}}{n \cdot x} \]
              12. associate-*r/46.2%

                \[\leadsto \frac{1 + \frac{\color{blue}{\frac{0.3333333333333333 \cdot 1}{x}} + \left(-0.5\right)}{x}}{n \cdot x} \]
              13. metadata-eval46.2%

                \[\leadsto \frac{1 + \frac{\frac{\color{blue}{0.3333333333333333}}{x} + \left(-0.5\right)}{x}}{n \cdot x} \]
              14. metadata-eval46.2%

                \[\leadsto \frac{1 + \frac{\frac{0.3333333333333333}{x} + \color{blue}{-0.5}}{x}}{n \cdot x} \]
              15. *-commutative46.2%

                \[\leadsto \frac{1 + \frac{\frac{0.3333333333333333}{x} + -0.5}{x}}{\color{blue}{x \cdot n}} \]
            9. Simplified46.2%

              \[\leadsto \color{blue}{\frac{1 + \frac{\frac{0.3333333333333333}{x} + -0.5}{x}}{x \cdot n}} \]
            10. Final simplification46.2%

              \[\leadsto \frac{\frac{-0.5 + \frac{0.3333333333333333}{x}}{x} + 1}{x \cdot n} \]
            11. Add Preprocessing

            Alternative 17: 46.7% accurate, 16.2× speedup?

            \[\begin{array}{l} \\ \frac{\frac{\frac{-0.5 + \frac{0.3333333333333333}{x}}{x} + 1}{x}}{n} \end{array} \]
            (FPCore (x n)
             :precision binary64
             (/ (/ (+ (/ (+ -0.5 (/ 0.3333333333333333 x)) x) 1.0) x) n))
            double code(double x, double n) {
            	return ((((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / x) / n;
            }
            
            real(8) function code(x, n)
                real(8), intent (in) :: x
                real(8), intent (in) :: n
                code = (((((-0.5d0) + (0.3333333333333333d0 / x)) / x) + 1.0d0) / x) / n
            end function
            
            public static double code(double x, double n) {
            	return ((((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / x) / n;
            }
            
            def code(x, n):
            	return ((((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / x) / n
            
            function code(x, n)
            	return Float64(Float64(Float64(Float64(Float64(-0.5 + Float64(0.3333333333333333 / x)) / x) + 1.0) / x) / n)
            end
            
            function tmp = code(x, n)
            	tmp = ((((-0.5 + (0.3333333333333333 / x)) / x) + 1.0) / x) / n;
            end
            
            code[x_, n_] := N[(N[(N[(N[(N[(-0.5 + N[(0.3333333333333333 / x), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision] + 1.0), $MachinePrecision] / x), $MachinePrecision] / n), $MachinePrecision]
            
            \begin{array}{l}
            
            \\
            \frac{\frac{\frac{-0.5 + \frac{0.3333333333333333}{x}}{x} + 1}{x}}{n}
            \end{array}
            
            Derivation
            1. Initial program 51.8%

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

              \[\leadsto \color{blue}{\frac{\log \left(1 + x\right) - \log x}{n}} \]
            4. Step-by-step derivation
              1. log1p-define58.9%

                \[\leadsto \frac{\color{blue}{\mathsf{log1p}\left(x\right)} - \log x}{n} \]
            5. Simplified58.9%

              \[\leadsto \color{blue}{\frac{\mathsf{log1p}\left(x\right) - \log x}{n}} \]
            6. Taylor expanded in x around inf 46.5%

              \[\leadsto \frac{\color{blue}{\frac{\left(1 + \frac{0.3333333333333333}{{x}^{2}}\right) - 0.5 \cdot \frac{1}{x}}{x}}}{n} \]
            7. Step-by-step derivation
              1. Simplified46.5%

                \[\leadsto \frac{\color{blue}{\frac{1 + \frac{\frac{0.3333333333333333}{x} + -0.5}{x}}{x}}}{n} \]
              2. Final simplification46.5%

                \[\leadsto \frac{\frac{\frac{-0.5 + \frac{0.3333333333333333}{x}}{x} + 1}{x}}{n} \]
              3. Add Preprocessing

              Alternative 18: 4.6% accurate, 42.2× speedup?

              \[\begin{array}{l} \\ x \cdot \frac{1}{n} \end{array} \]
              (FPCore (x n) :precision binary64 (* x (/ 1.0 n)))
              double code(double x, double n) {
              	return x * (1.0 / n);
              }
              
              real(8) function code(x, n)
                  real(8), intent (in) :: x
                  real(8), intent (in) :: n
                  code = x * (1.0d0 / n)
              end function
              
              public static double code(double x, double n) {
              	return x * (1.0 / n);
              }
              
              def code(x, n):
              	return x * (1.0 / n)
              
              function code(x, n)
              	return Float64(x * Float64(1.0 / n))
              end
              
              function tmp = code(x, n)
              	tmp = x * (1.0 / n);
              end
              
              code[x_, n_] := N[(x * N[(1.0 / n), $MachinePrecision]), $MachinePrecision]
              
              \begin{array}{l}
              
              \\
              x \cdot \frac{1}{n}
              \end{array}
              
              Derivation
              1. Initial program 51.8%

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

                \[\leadsto \color{blue}{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n \cdot x}} \]
              4. Step-by-step derivation
                1. mul-1-neg55.3%

                  \[\leadsto \frac{e^{\color{blue}{-\frac{\log \left(\frac{1}{x}\right)}{n}}}}{n \cdot x} \]
                2. log-rec55.3%

                  \[\leadsto \frac{e^{-\frac{\color{blue}{-\log x}}{n}}}{n \cdot x} \]
                3. mul-1-neg55.3%

                  \[\leadsto \frac{e^{-\frac{\color{blue}{-1 \cdot \log x}}{n}}}{n \cdot x} \]
                4. distribute-neg-frac55.3%

                  \[\leadsto \frac{e^{\color{blue}{\frac{--1 \cdot \log x}{n}}}}{n \cdot x} \]
                5. mul-1-neg55.3%

                  \[\leadsto \frac{e^{\frac{-\color{blue}{\left(-\log x\right)}}{n}}}{n \cdot x} \]
                6. remove-double-neg55.3%

                  \[\leadsto \frac{e^{\frac{\color{blue}{\log x}}{n}}}{n \cdot x} \]
                7. *-commutative55.3%

                  \[\leadsto \frac{e^{\frac{\log x}{n}}}{\color{blue}{x \cdot n}} \]
              5. Simplified55.3%

                \[\leadsto \color{blue}{\frac{e^{\frac{\log x}{n}}}{x \cdot n}} \]
              6. Taylor expanded in n around inf 42.6%

                \[\leadsto \color{blue}{\frac{1}{n \cdot x}} \]
              7. Step-by-step derivation
                1. associate-/r*42.9%

                  \[\leadsto \color{blue}{\frac{\frac{1}{n}}{x}} \]
              8. Simplified42.9%

                \[\leadsto \color{blue}{\frac{\frac{1}{n}}{x}} \]
              9. Step-by-step derivation
                1. div-inv42.9%

                  \[\leadsto \color{blue}{\frac{1}{n} \cdot \frac{1}{x}} \]
                2. add-exp-log42.0%

                  \[\leadsto \frac{1}{n} \cdot \frac{1}{\color{blue}{e^{\log x}}} \]
                3. rec-exp42.0%

                  \[\leadsto \frac{1}{n} \cdot \color{blue}{e^{-\log x}} \]
                4. add-sqr-sqrt13.8%

                  \[\leadsto \frac{1}{n} \cdot e^{\color{blue}{\sqrt{-\log x} \cdot \sqrt{-\log x}}} \]
                5. sqrt-unprod15.2%

                  \[\leadsto \frac{1}{n} \cdot e^{\color{blue}{\sqrt{\left(-\log x\right) \cdot \left(-\log x\right)}}} \]
                6. sqr-neg15.2%

                  \[\leadsto \frac{1}{n} \cdot e^{\sqrt{\color{blue}{\log x \cdot \log x}}} \]
                7. sqrt-prod1.4%

                  \[\leadsto \frac{1}{n} \cdot e^{\color{blue}{\sqrt{\log x} \cdot \sqrt{\log x}}} \]
                8. add-sqr-sqrt4.9%

                  \[\leadsto \frac{1}{n} \cdot e^{\color{blue}{\log x}} \]
                9. add-exp-log4.9%

                  \[\leadsto \frac{1}{n} \cdot \color{blue}{x} \]
              10. Applied egg-rr4.9%

                \[\leadsto \color{blue}{\frac{1}{n} \cdot x} \]
              11. Final simplification4.9%

                \[\leadsto x \cdot \frac{1}{n} \]
              12. Add Preprocessing

              Alternative 19: 40.7% accurate, 42.2× speedup?

              \[\begin{array}{l} \\ \frac{1}{x \cdot n} \end{array} \]
              (FPCore (x n) :precision binary64 (/ 1.0 (* x n)))
              double code(double x, double n) {
              	return 1.0 / (x * n);
              }
              
              real(8) function code(x, n)
                  real(8), intent (in) :: x
                  real(8), intent (in) :: n
                  code = 1.0d0 / (x * n)
              end function
              
              public static double code(double x, double n) {
              	return 1.0 / (x * n);
              }
              
              def code(x, n):
              	return 1.0 / (x * n)
              
              function code(x, n)
              	return Float64(1.0 / Float64(x * n))
              end
              
              function tmp = code(x, n)
              	tmp = 1.0 / (x * n);
              end
              
              code[x_, n_] := N[(1.0 / N[(x * n), $MachinePrecision]), $MachinePrecision]
              
              \begin{array}{l}
              
              \\
              \frac{1}{x \cdot n}
              \end{array}
              
              Derivation
              1. Initial program 51.8%

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

                \[\leadsto \color{blue}{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n \cdot x}} \]
              4. Step-by-step derivation
                1. mul-1-neg55.3%

                  \[\leadsto \frac{e^{\color{blue}{-\frac{\log \left(\frac{1}{x}\right)}{n}}}}{n \cdot x} \]
                2. log-rec55.3%

                  \[\leadsto \frac{e^{-\frac{\color{blue}{-\log x}}{n}}}{n \cdot x} \]
                3. mul-1-neg55.3%

                  \[\leadsto \frac{e^{-\frac{\color{blue}{-1 \cdot \log x}}{n}}}{n \cdot x} \]
                4. distribute-neg-frac55.3%

                  \[\leadsto \frac{e^{\color{blue}{\frac{--1 \cdot \log x}{n}}}}{n \cdot x} \]
                5. mul-1-neg55.3%

                  \[\leadsto \frac{e^{\frac{-\color{blue}{\left(-\log x\right)}}{n}}}{n \cdot x} \]
                6. remove-double-neg55.3%

                  \[\leadsto \frac{e^{\frac{\color{blue}{\log x}}{n}}}{n \cdot x} \]
                7. *-commutative55.3%

                  \[\leadsto \frac{e^{\frac{\log x}{n}}}{\color{blue}{x \cdot n}} \]
              5. Simplified55.3%

                \[\leadsto \color{blue}{\frac{e^{\frac{\log x}{n}}}{x \cdot n}} \]
              6. Taylor expanded in n around inf 42.6%

                \[\leadsto \frac{\color{blue}{1}}{x \cdot n} \]
              7. Final simplification42.6%

                \[\leadsto \frac{1}{x \cdot n} \]
              8. Add Preprocessing

              Alternative 20: 41.1% accurate, 42.2× speedup?

              \[\begin{array}{l} \\ \frac{\frac{1}{n}}{x} \end{array} \]
              (FPCore (x n) :precision binary64 (/ (/ 1.0 n) x))
              double code(double x, double n) {
              	return (1.0 / n) / x;
              }
              
              real(8) function code(x, n)
                  real(8), intent (in) :: x
                  real(8), intent (in) :: n
                  code = (1.0d0 / n) / x
              end function
              
              public static double code(double x, double n) {
              	return (1.0 / n) / x;
              }
              
              def code(x, n):
              	return (1.0 / n) / x
              
              function code(x, n)
              	return Float64(Float64(1.0 / n) / x)
              end
              
              function tmp = code(x, n)
              	tmp = (1.0 / n) / x;
              end
              
              code[x_, n_] := N[(N[(1.0 / n), $MachinePrecision] / x), $MachinePrecision]
              
              \begin{array}{l}
              
              \\
              \frac{\frac{1}{n}}{x}
              \end{array}
              
              Derivation
              1. Initial program 51.8%

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

                \[\leadsto \color{blue}{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n \cdot x}} \]
              4. Step-by-step derivation
                1. mul-1-neg55.3%

                  \[\leadsto \frac{e^{\color{blue}{-\frac{\log \left(\frac{1}{x}\right)}{n}}}}{n \cdot x} \]
                2. log-rec55.3%

                  \[\leadsto \frac{e^{-\frac{\color{blue}{-\log x}}{n}}}{n \cdot x} \]
                3. mul-1-neg55.3%

                  \[\leadsto \frac{e^{-\frac{\color{blue}{-1 \cdot \log x}}{n}}}{n \cdot x} \]
                4. distribute-neg-frac55.3%

                  \[\leadsto \frac{e^{\color{blue}{\frac{--1 \cdot \log x}{n}}}}{n \cdot x} \]
                5. mul-1-neg55.3%

                  \[\leadsto \frac{e^{\frac{-\color{blue}{\left(-\log x\right)}}{n}}}{n \cdot x} \]
                6. remove-double-neg55.3%

                  \[\leadsto \frac{e^{\frac{\color{blue}{\log x}}{n}}}{n \cdot x} \]
                7. *-commutative55.3%

                  \[\leadsto \frac{e^{\frac{\log x}{n}}}{\color{blue}{x \cdot n}} \]
              5. Simplified55.3%

                \[\leadsto \color{blue}{\frac{e^{\frac{\log x}{n}}}{x \cdot n}} \]
              6. Taylor expanded in n around inf 42.6%

                \[\leadsto \color{blue}{\frac{1}{n \cdot x}} \]
              7. Step-by-step derivation
                1. associate-/r*42.9%

                  \[\leadsto \color{blue}{\frac{\frac{1}{n}}{x}} \]
              8. Simplified42.9%

                \[\leadsto \color{blue}{\frac{\frac{1}{n}}{x}} \]
              9. Final simplification42.9%

                \[\leadsto \frac{\frac{1}{n}}{x} \]
              10. Add Preprocessing

              Alternative 21: 4.5% accurate, 70.3× speedup?

              \[\begin{array}{l} \\ \frac{x}{n} \end{array} \]
              (FPCore (x n) :precision binary64 (/ x n))
              double code(double x, double n) {
              	return x / n;
              }
              
              real(8) function code(x, n)
                  real(8), intent (in) :: x
                  real(8), intent (in) :: n
                  code = x / n
              end function
              
              public static double code(double x, double n) {
              	return x / n;
              }
              
              def code(x, n):
              	return x / n
              
              function code(x, n)
              	return Float64(x / n)
              end
              
              function tmp = code(x, n)
              	tmp = x / n;
              end
              
              code[x_, n_] := N[(x / n), $MachinePrecision]
              
              \begin{array}{l}
              
              \\
              \frac{x}{n}
              \end{array}
              
              Derivation
              1. Initial program 51.8%

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

                \[\leadsto \color{blue}{\frac{e^{-1 \cdot \frac{\log \left(\frac{1}{x}\right)}{n}}}{n \cdot x}} \]
              4. Step-by-step derivation
                1. mul-1-neg55.3%

                  \[\leadsto \frac{e^{\color{blue}{-\frac{\log \left(\frac{1}{x}\right)}{n}}}}{n \cdot x} \]
                2. log-rec55.3%

                  \[\leadsto \frac{e^{-\frac{\color{blue}{-\log x}}{n}}}{n \cdot x} \]
                3. mul-1-neg55.3%

                  \[\leadsto \frac{e^{-\frac{\color{blue}{-1 \cdot \log x}}{n}}}{n \cdot x} \]
                4. distribute-neg-frac55.3%

                  \[\leadsto \frac{e^{\color{blue}{\frac{--1 \cdot \log x}{n}}}}{n \cdot x} \]
                5. mul-1-neg55.3%

                  \[\leadsto \frac{e^{\frac{-\color{blue}{\left(-\log x\right)}}{n}}}{n \cdot x} \]
                6. remove-double-neg55.3%

                  \[\leadsto \frac{e^{\frac{\color{blue}{\log x}}{n}}}{n \cdot x} \]
                7. *-commutative55.3%

                  \[\leadsto \frac{e^{\frac{\log x}{n}}}{\color{blue}{x \cdot n}} \]
              5. Simplified55.3%

                \[\leadsto \color{blue}{\frac{e^{\frac{\log x}{n}}}{x \cdot n}} \]
              6. Taylor expanded in n around inf 42.6%

                \[\leadsto \color{blue}{\frac{1}{n \cdot x}} \]
              7. Step-by-step derivation
                1. associate-/r*42.9%

                  \[\leadsto \color{blue}{\frac{\frac{1}{n}}{x}} \]
              8. Simplified42.9%

                \[\leadsto \color{blue}{\frac{\frac{1}{n}}{x}} \]
              9. Step-by-step derivation
                1. div-inv42.9%

                  \[\leadsto \color{blue}{\frac{1}{n} \cdot \frac{1}{x}} \]
                2. *-commutative42.9%

                  \[\leadsto \color{blue}{\frac{1}{x} \cdot \frac{1}{n}} \]
                3. add-exp-log42.0%

                  \[\leadsto \frac{1}{\color{blue}{e^{\log x}}} \cdot \frac{1}{n} \]
                4. rec-exp42.0%

                  \[\leadsto \color{blue}{e^{-\log x}} \cdot \frac{1}{n} \]
                5. add-sqr-sqrt13.8%

                  \[\leadsto e^{\color{blue}{\sqrt{-\log x} \cdot \sqrt{-\log x}}} \cdot \frac{1}{n} \]
                6. sqrt-unprod15.2%

                  \[\leadsto e^{\color{blue}{\sqrt{\left(-\log x\right) \cdot \left(-\log x\right)}}} \cdot \frac{1}{n} \]
                7. sqr-neg15.2%

                  \[\leadsto e^{\sqrt{\color{blue}{\log x \cdot \log x}}} \cdot \frac{1}{n} \]
                8. sqrt-prod1.4%

                  \[\leadsto e^{\color{blue}{\sqrt{\log x} \cdot \sqrt{\log x}}} \cdot \frac{1}{n} \]
                9. add-sqr-sqrt4.9%

                  \[\leadsto e^{\color{blue}{\log x}} \cdot \frac{1}{n} \]
                10. add-exp-log4.9%

                  \[\leadsto \color{blue}{x} \cdot \frac{1}{n} \]
              10. Applied egg-rr4.9%

                \[\leadsto \color{blue}{x \cdot \frac{1}{n}} \]
              11. Step-by-step derivation
                1. associate-*r/4.5%

                  \[\leadsto \color{blue}{\frac{x \cdot 1}{n}} \]
                2. *-rgt-identity4.5%

                  \[\leadsto \frac{\color{blue}{x}}{n} \]
              12. Simplified4.5%

                \[\leadsto \color{blue}{\frac{x}{n}} \]
              13. Final simplification4.5%

                \[\leadsto \frac{x}{n} \]
              14. Add Preprocessing

              Reproduce

              ?
              herbie shell --seed 2024080 
              (FPCore (x n)
                :name "2nthrt (problem 3.4.6)"
                :precision binary64
                (- (pow (+ x 1.0) (/ 1.0 n)) (pow x (/ 1.0 n))))