Harley's example

Percentage Accurate: 90.4% → 95.8%
Time: 2.5min
Alternatives: 9
Speedup: 835.0×

Specification

?
\[0 < c\_p \land 0 < c\_n\]
\[\begin{array}{l} \\ \begin{array}{l} t_1 := \frac{1}{1 + e^{-t}}\\ t_2 := \frac{1}{1 + e^{-s}}\\ \frac{{t\_2}^{c\_p} \cdot {\left(1 - t\_2\right)}^{c\_n}}{{t\_1}^{c\_p} \cdot {\left(1 - t\_1\right)}^{c\_n}} \end{array} \end{array} \]
(FPCore (c_p c_n t s)
 :precision binary64
 (let* ((t_1 (/ 1.0 (+ 1.0 (exp (- t))))) (t_2 (/ 1.0 (+ 1.0 (exp (- s))))))
   (/
    (* (pow t_2 c_p) (pow (- 1.0 t_2) c_n))
    (* (pow t_1 c_p) (pow (- 1.0 t_1) c_n)))))
double code(double c_p, double c_n, double t, double s) {
	double t_1 = 1.0 / (1.0 + exp(-t));
	double t_2 = 1.0 / (1.0 + exp(-s));
	return (pow(t_2, c_p) * pow((1.0 - t_2), c_n)) / (pow(t_1, c_p) * pow((1.0 - t_1), c_n));
}
real(8) function code(c_p, c_n, t, s)
    real(8), intent (in) :: c_p
    real(8), intent (in) :: c_n
    real(8), intent (in) :: t
    real(8), intent (in) :: s
    real(8) :: t_1
    real(8) :: t_2
    t_1 = 1.0d0 / (1.0d0 + exp(-t))
    t_2 = 1.0d0 / (1.0d0 + exp(-s))
    code = ((t_2 ** c_p) * ((1.0d0 - t_2) ** c_n)) / ((t_1 ** c_p) * ((1.0d0 - t_1) ** c_n))
end function
public static double code(double c_p, double c_n, double t, double s) {
	double t_1 = 1.0 / (1.0 + Math.exp(-t));
	double t_2 = 1.0 / (1.0 + Math.exp(-s));
	return (Math.pow(t_2, c_p) * Math.pow((1.0 - t_2), c_n)) / (Math.pow(t_1, c_p) * Math.pow((1.0 - t_1), c_n));
}
def code(c_p, c_n, t, s):
	t_1 = 1.0 / (1.0 + math.exp(-t))
	t_2 = 1.0 / (1.0 + math.exp(-s))
	return (math.pow(t_2, c_p) * math.pow((1.0 - t_2), c_n)) / (math.pow(t_1, c_p) * math.pow((1.0 - t_1), c_n))
function code(c_p, c_n, t, s)
	t_1 = Float64(1.0 / Float64(1.0 + exp(Float64(-t))))
	t_2 = Float64(1.0 / Float64(1.0 + exp(Float64(-s))))
	return Float64(Float64((t_2 ^ c_p) * (Float64(1.0 - t_2) ^ c_n)) / Float64((t_1 ^ c_p) * (Float64(1.0 - t_1) ^ c_n)))
end
function tmp = code(c_p, c_n, t, s)
	t_1 = 1.0 / (1.0 + exp(-t));
	t_2 = 1.0 / (1.0 + exp(-s));
	tmp = ((t_2 ^ c_p) * ((1.0 - t_2) ^ c_n)) / ((t_1 ^ c_p) * ((1.0 - t_1) ^ c_n));
end
code[c$95$p_, c$95$n_, t_, s_] := Block[{t$95$1 = N[(1.0 / N[(1.0 + N[Exp[(-t)], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(1.0 / N[(1.0 + N[Exp[(-s)], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, N[(N[(N[Power[t$95$2, c$95$p], $MachinePrecision] * N[Power[N[(1.0 - t$95$2), $MachinePrecision], c$95$n], $MachinePrecision]), $MachinePrecision] / N[(N[Power[t$95$1, c$95$p], $MachinePrecision] * N[Power[N[(1.0 - t$95$1), $MachinePrecision], c$95$n], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := \frac{1}{1 + e^{-t}}\\
t_2 := \frac{1}{1 + e^{-s}}\\
\frac{{t\_2}^{c\_p} \cdot {\left(1 - t\_2\right)}^{c\_n}}{{t\_1}^{c\_p} \cdot {\left(1 - t\_1\right)}^{c\_n}}
\end{array}
\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 9 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: 90.4% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := \frac{1}{1 + e^{-t}}\\ t_2 := \frac{1}{1 + e^{-s}}\\ \frac{{t\_2}^{c\_p} \cdot {\left(1 - t\_2\right)}^{c\_n}}{{t\_1}^{c\_p} \cdot {\left(1 - t\_1\right)}^{c\_n}} \end{array} \end{array} \]
(FPCore (c_p c_n t s)
 :precision binary64
 (let* ((t_1 (/ 1.0 (+ 1.0 (exp (- t))))) (t_2 (/ 1.0 (+ 1.0 (exp (- s))))))
   (/
    (* (pow t_2 c_p) (pow (- 1.0 t_2) c_n))
    (* (pow t_1 c_p) (pow (- 1.0 t_1) c_n)))))
double code(double c_p, double c_n, double t, double s) {
	double t_1 = 1.0 / (1.0 + exp(-t));
	double t_2 = 1.0 / (1.0 + exp(-s));
	return (pow(t_2, c_p) * pow((1.0 - t_2), c_n)) / (pow(t_1, c_p) * pow((1.0 - t_1), c_n));
}
real(8) function code(c_p, c_n, t, s)
    real(8), intent (in) :: c_p
    real(8), intent (in) :: c_n
    real(8), intent (in) :: t
    real(8), intent (in) :: s
    real(8) :: t_1
    real(8) :: t_2
    t_1 = 1.0d0 / (1.0d0 + exp(-t))
    t_2 = 1.0d0 / (1.0d0 + exp(-s))
    code = ((t_2 ** c_p) * ((1.0d0 - t_2) ** c_n)) / ((t_1 ** c_p) * ((1.0d0 - t_1) ** c_n))
end function
public static double code(double c_p, double c_n, double t, double s) {
	double t_1 = 1.0 / (1.0 + Math.exp(-t));
	double t_2 = 1.0 / (1.0 + Math.exp(-s));
	return (Math.pow(t_2, c_p) * Math.pow((1.0 - t_2), c_n)) / (Math.pow(t_1, c_p) * Math.pow((1.0 - t_1), c_n));
}
def code(c_p, c_n, t, s):
	t_1 = 1.0 / (1.0 + math.exp(-t))
	t_2 = 1.0 / (1.0 + math.exp(-s))
	return (math.pow(t_2, c_p) * math.pow((1.0 - t_2), c_n)) / (math.pow(t_1, c_p) * math.pow((1.0 - t_1), c_n))
function code(c_p, c_n, t, s)
	t_1 = Float64(1.0 / Float64(1.0 + exp(Float64(-t))))
	t_2 = Float64(1.0 / Float64(1.0 + exp(Float64(-s))))
	return Float64(Float64((t_2 ^ c_p) * (Float64(1.0 - t_2) ^ c_n)) / Float64((t_1 ^ c_p) * (Float64(1.0 - t_1) ^ c_n)))
end
function tmp = code(c_p, c_n, t, s)
	t_1 = 1.0 / (1.0 + exp(-t));
	t_2 = 1.0 / (1.0 + exp(-s));
	tmp = ((t_2 ^ c_p) * ((1.0 - t_2) ^ c_n)) / ((t_1 ^ c_p) * ((1.0 - t_1) ^ c_n));
end
code[c$95$p_, c$95$n_, t_, s_] := Block[{t$95$1 = N[(1.0 / N[(1.0 + N[Exp[(-t)], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(1.0 / N[(1.0 + N[Exp[(-s)], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, N[(N[(N[Power[t$95$2, c$95$p], $MachinePrecision] * N[Power[N[(1.0 - t$95$2), $MachinePrecision], c$95$n], $MachinePrecision]), $MachinePrecision] / N[(N[Power[t$95$1, c$95$p], $MachinePrecision] * N[Power[N[(1.0 - t$95$1), $MachinePrecision], c$95$n], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := \frac{1}{1 + e^{-t}}\\
t_2 := \frac{1}{1 + e^{-s}}\\
\frac{{t\_2}^{c\_p} \cdot {\left(1 - t\_2\right)}^{c\_n}}{{t\_1}^{c\_p} \cdot {\left(1 - t\_1\right)}^{c\_n}}
\end{array}
\end{array}

Alternative 1: 95.8% accurate, 3.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;0 - s \leq 100000000:\\ \;\;\;\;{\left(\frac{1}{0.5 + \frac{0.5}{e^{t}}}\right)}^{\left(0 - c\_p\right)}\\ \mathbf{else}:\\ \;\;\;\;{\left(\frac{1}{1 + e^{0 - s}}\right)}^{c\_p}\\ \end{array} \end{array} \]
(FPCore (c_p c_n t s)
 :precision binary64
 (if (<= (- 0.0 s) 100000000.0)
   (pow (/ 1.0 (+ 0.5 (/ 0.5 (exp t)))) (- 0.0 c_p))
   (pow (/ 1.0 (+ 1.0 (exp (- 0.0 s)))) c_p)))
double code(double c_p, double c_n, double t, double s) {
	double tmp;
	if ((0.0 - s) <= 100000000.0) {
		tmp = pow((1.0 / (0.5 + (0.5 / exp(t)))), (0.0 - c_p));
	} else {
		tmp = pow((1.0 / (1.0 + exp((0.0 - s)))), c_p);
	}
	return tmp;
}
real(8) function code(c_p, c_n, t, s)
    real(8), intent (in) :: c_p
    real(8), intent (in) :: c_n
    real(8), intent (in) :: t
    real(8), intent (in) :: s
    real(8) :: tmp
    if ((0.0d0 - s) <= 100000000.0d0) then
        tmp = (1.0d0 / (0.5d0 + (0.5d0 / exp(t)))) ** (0.0d0 - c_p)
    else
        tmp = (1.0d0 / (1.0d0 + exp((0.0d0 - s)))) ** c_p
    end if
    code = tmp
end function
public static double code(double c_p, double c_n, double t, double s) {
	double tmp;
	if ((0.0 - s) <= 100000000.0) {
		tmp = Math.pow((1.0 / (0.5 + (0.5 / Math.exp(t)))), (0.0 - c_p));
	} else {
		tmp = Math.pow((1.0 / (1.0 + Math.exp((0.0 - s)))), c_p);
	}
	return tmp;
}
def code(c_p, c_n, t, s):
	tmp = 0
	if (0.0 - s) <= 100000000.0:
		tmp = math.pow((1.0 / (0.5 + (0.5 / math.exp(t)))), (0.0 - c_p))
	else:
		tmp = math.pow((1.0 / (1.0 + math.exp((0.0 - s)))), c_p)
	return tmp
function code(c_p, c_n, t, s)
	tmp = 0.0
	if (Float64(0.0 - s) <= 100000000.0)
		tmp = Float64(1.0 / Float64(0.5 + Float64(0.5 / exp(t)))) ^ Float64(0.0 - c_p);
	else
		tmp = Float64(1.0 / Float64(1.0 + exp(Float64(0.0 - s)))) ^ c_p;
	end
	return tmp
end
function tmp_2 = code(c_p, c_n, t, s)
	tmp = 0.0;
	if ((0.0 - s) <= 100000000.0)
		tmp = (1.0 / (0.5 + (0.5 / exp(t)))) ^ (0.0 - c_p);
	else
		tmp = (1.0 / (1.0 + exp((0.0 - s)))) ^ c_p;
	end
	tmp_2 = tmp;
end
code[c$95$p_, c$95$n_, t_, s_] := If[LessEqual[N[(0.0 - s), $MachinePrecision], 100000000.0], N[Power[N[(1.0 / N[(0.5 + N[(0.5 / N[Exp[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(0.0 - c$95$p), $MachinePrecision]], $MachinePrecision], N[Power[N[(1.0 / N[(1.0 + N[Exp[N[(0.0 - s), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], c$95$p], $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;0 - s \leq 100000000:\\
\;\;\;\;{\left(\frac{1}{0.5 + \frac{0.5}{e^{t}}}\right)}^{\left(0 - c\_p\right)}\\

\mathbf{else}:\\
\;\;\;\;{\left(\frac{1}{1 + e^{0 - s}}\right)}^{c\_p}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (neg.f64 s) < 1e8

    1. Initial program 93.7%

      \[\frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-s}}\right)}^{c\_n}}{{\left(\frac{1}{1 + e^{-t}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-t}}\right)}^{c\_n}} \]
    2. Add Preprocessing
    3. Taylor expanded in c_n around 0

      \[\leadsto \color{blue}{\frac{{\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_p}}{{\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}}} \]
    4. Step-by-step derivation
      1. /-lowering-/.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_p}\right), \color{blue}{\left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)}\right) \]
      2. pow-lowering-pow.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right), c\_p\right), \left({\color{blue}{\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}}^{c\_p}\right)\right) \]
      3. /-lowering-/.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{\mathsf{neg}\left(s\right)}\right)\right), c\_p\right), \left({\left(\frac{\color{blue}{1}}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
      4. neg-mul-1N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{-1 \cdot s}\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
      5. +-lowering-+.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(e^{-1 \cdot s}\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
      6. exp-lowering-exp.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(-1 \cdot s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
      7. neg-mul-1N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(\mathsf{neg}\left(s\right)\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
      8. neg-sub0N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(0 - s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
      9. --lowering--.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
      10. pow-lowering-pow.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right), \color{blue}{c\_p}\right)\right) \]
      11. /-lowering-/.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{\mathsf{neg}\left(t\right)}\right)\right), c\_p\right)\right) \]
      12. +-lowering-+.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(e^{\mathsf{neg}\left(t\right)}\right)\right)\right), c\_p\right)\right) \]
      13. exp-negN/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(\frac{1}{e^{t}}\right)\right)\right), c\_p\right)\right) \]
      14. /-lowering-/.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \left(e^{t}\right)\right)\right)\right), c\_p\right)\right) \]
      15. exp-lowering-exp.f6495.0%

        \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right), c\_p\right)\right) \]
    5. Simplified95.0%

      \[\leadsto \color{blue}{\frac{{\left(\frac{1}{1 + e^{0 - s}}\right)}^{c\_p}}{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}} \]
    6. Taylor expanded in s around 0

      \[\leadsto \mathsf{/.f64}\left(\color{blue}{\left({\frac{1}{2}}^{c\_p}\right)}, \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right), c\_p\right)\right) \]
    7. Step-by-step derivation
      1. pow-lowering-pow.f6496.1%

        \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\frac{1}{2}, c\_p\right), \mathsf{pow.f64}\left(\color{blue}{\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)}, c\_p\right)\right) \]
    8. Simplified96.1%

      \[\leadsto \frac{\color{blue}{{0.5}^{c\_p}}}{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}} \]
    9. Step-by-step derivation
      1. clear-numN/A

        \[\leadsto \frac{1}{\color{blue}{\frac{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}{{\frac{1}{2}}^{c\_p}}}} \]
      2. /-lowering-/.f64N/A

        \[\leadsto \mathsf{/.f64}\left(1, \color{blue}{\left(\frac{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}{{\frac{1}{2}}^{c\_p}}\right)}\right) \]
      3. div-invN/A

        \[\leadsto \mathsf{/.f64}\left(1, \left({\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p} \cdot \color{blue}{\frac{1}{{\frac{1}{2}}^{c\_p}}}\right)\right) \]
      4. inv-powN/A

        \[\leadsto \mathsf{/.f64}\left(1, \left({\left({\left(1 + \frac{1}{e^{t}}\right)}^{-1}\right)}^{c\_p} \cdot \frac{1}{{\frac{1}{2}}^{c\_p}}\right)\right) \]
      5. pow-powN/A

        \[\leadsto \mathsf{/.f64}\left(1, \left({\left(1 + \frac{1}{e^{t}}\right)}^{\left(-1 \cdot c\_p\right)} \cdot \frac{\color{blue}{1}}{{\frac{1}{2}}^{c\_p}}\right)\right) \]
      6. neg-mul-1N/A

        \[\leadsto \mathsf{/.f64}\left(1, \left({\left(1 + \frac{1}{e^{t}}\right)}^{\left(\mathsf{neg}\left(c\_p\right)\right)} \cdot \frac{1}{{\frac{1}{2}}^{c\_p}}\right)\right) \]
      7. pow-flipN/A

        \[\leadsto \mathsf{/.f64}\left(1, \left({\left(1 + \frac{1}{e^{t}}\right)}^{\left(\mathsf{neg}\left(c\_p\right)\right)} \cdot {\frac{1}{2}}^{\color{blue}{\left(\mathsf{neg}\left(c\_p\right)\right)}}\right)\right) \]
      8. pow-prod-downN/A

        \[\leadsto \mathsf{/.f64}\left(1, \left({\left(\left(1 + \frac{1}{e^{t}}\right) \cdot \frac{1}{2}\right)}^{\color{blue}{\left(\mathsf{neg}\left(c\_p\right)\right)}}\right)\right) \]
      9. pow-lowering-pow.f64N/A

        \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\left(\left(1 + \frac{1}{e^{t}}\right) \cdot \frac{1}{2}\right), \color{blue}{\left(\mathsf{neg}\left(c\_p\right)\right)}\right)\right) \]
      10. *-lowering-*.f64N/A

        \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\left(1 + \frac{1}{e^{t}}\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(\color{blue}{c\_p}\right)\right)\right)\right) \]
      11. +-lowering-+.f64N/A

        \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \left(\frac{1}{e^{t}}\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
      12. rec-expN/A

        \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \left(e^{\mathsf{neg}\left(t\right)}\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
      13. exp-lowering-exp.f64N/A

        \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(\mathsf{neg}\left(t\right)\right)\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
      14. neg-sub0N/A

        \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(0 - t\right)\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
      15. --lowering--.f64N/A

        \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, t\right)\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
      16. neg-sub0N/A

        \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, t\right)\right)\right), \frac{1}{2}\right), \left(0 - \color{blue}{c\_p}\right)\right)\right) \]
      17. --lowering--.f6498.5%

        \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, t\right)\right)\right), \frac{1}{2}\right), \mathsf{\_.f64}\left(0, \color{blue}{c\_p}\right)\right)\right) \]
    10. Applied egg-rr98.5%

      \[\leadsto \color{blue}{\frac{1}{{\left(\left(1 + e^{0 - t}\right) \cdot 0.5\right)}^{\left(0 - c\_p\right)}}} \]
    11. Step-by-step derivation
      1. pow-flipN/A

        \[\leadsto {\left(\left(1 + e^{0 - t}\right) \cdot \frac{1}{2}\right)}^{\color{blue}{\left(\mathsf{neg}\left(\left(0 - c\_p\right)\right)\right)}} \]
      2. neg-mul-1N/A

        \[\leadsto {\left(\left(1 + e^{0 - t}\right) \cdot \frac{1}{2}\right)}^{\left(-1 \cdot \color{blue}{\left(0 - c\_p\right)}\right)} \]
      3. pow-unpowN/A

        \[\leadsto {\left({\left(\left(1 + e^{0 - t}\right) \cdot \frac{1}{2}\right)}^{-1}\right)}^{\color{blue}{\left(0 - c\_p\right)}} \]
      4. pow-lowering-pow.f64N/A

        \[\leadsto \mathsf{pow.f64}\left(\left({\left(\left(1 + e^{0 - t}\right) \cdot \frac{1}{2}\right)}^{-1}\right), \color{blue}{\left(0 - c\_p\right)}\right) \]
      5. unpow-1N/A

        \[\leadsto \mathsf{pow.f64}\left(\left(\frac{1}{\left(1 + e^{0 - t}\right) \cdot \frac{1}{2}}\right), \left(\color{blue}{0} - c\_p\right)\right) \]
      6. /-lowering-/.f64N/A

        \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(\left(1 + e^{0 - t}\right) \cdot \frac{1}{2}\right)\right), \left(\color{blue}{0} - c\_p\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(\left(e^{0 - t} + 1\right) \cdot \frac{1}{2}\right)\right), \left(0 - c\_p\right)\right) \]
      8. distribute-rgt1-inN/A

        \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(\frac{1}{2} + e^{0 - t} \cdot \frac{1}{2}\right)\right), \left(0 - c\_p\right)\right) \]
      9. +-lowering-+.f64N/A

        \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(\frac{1}{2}, \left(e^{0 - t} \cdot \frac{1}{2}\right)\right)\right), \left(0 - c\_p\right)\right) \]
      10. exp-diffN/A

        \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{e^{0}}{e^{t}} \cdot \frac{1}{2}\right)\right)\right), \left(0 - c\_p\right)\right) \]
      11. 1-expN/A

        \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{e^{t}} \cdot \frac{1}{2}\right)\right)\right), \left(0 - c\_p\right)\right) \]
      12. associate-*l/N/A

        \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{e^{t}}\right)\right)\right), \left(0 - c\_p\right)\right) \]
      13. metadata-evalN/A

        \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{e^{t}}\right)\right)\right), \left(0 - c\_p\right)\right) \]
      14. /-lowering-/.f64N/A

        \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \left(e^{t}\right)\right)\right)\right), \left(0 - c\_p\right)\right) \]
      15. exp-lowering-exp.f64N/A

        \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{exp.f64}\left(t\right)\right)\right)\right), \left(0 - c\_p\right)\right) \]
      16. --lowering--.f6498.5%

        \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{exp.f64}\left(t\right)\right)\right)\right), \mathsf{\_.f64}\left(0, \color{blue}{c\_p}\right)\right) \]
    12. Applied egg-rr98.5%

      \[\leadsto \color{blue}{{\left(\frac{1}{0.5 + \frac{0.5}{e^{t}}}\right)}^{\left(0 - c\_p\right)}} \]

    if 1e8 < (neg.f64 s)

    1. Initial program 50.0%

      \[\frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-s}}\right)}^{c\_n}}{{\left(\frac{1}{1 + e^{-t}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-t}}\right)}^{c\_n}} \]
    2. Add Preprocessing
    3. Taylor expanded in c_p around 0

      \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{neg.f64}\left(s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{\_.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{neg.f64}\left(s\right)\right)\right)\right)\right), c\_n\right)\right), \mathsf{*.f64}\left(\color{blue}{1}, \mathsf{pow.f64}\left(\mathsf{\_.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{neg.f64}\left(t\right)\right)\right)\right)\right), c\_n\right)\right)\right) \]
    4. Step-by-step derivation
      1. Simplified66.7%

        \[\leadsto \frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-s}}\right)}^{c\_n}}{\color{blue}{1} \cdot {\left(1 - \frac{1}{1 + e^{-t}}\right)}^{c\_n}} \]
      2. Taylor expanded in c_n around 0

        \[\leadsto \color{blue}{{\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_p}} \]
      3. Step-by-step derivation
        1. neg-mul-1N/A

          \[\leadsto {\left(\frac{1}{1 + e^{-1 \cdot s}}\right)}^{c\_p} \]
        2. neg-mul-1N/A

          \[\leadsto {\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_p} \]
        3. rec-expN/A

          \[\leadsto {\left(\frac{1}{1 + \frac{1}{e^{s}}}\right)}^{c\_p} \]
        4. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{pow.f64}\left(\left(\frac{1}{1 + \frac{1}{e^{s}}}\right), \color{blue}{c\_p}\right) \]
        5. /-lowering-/.f64N/A

          \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + \frac{1}{e^{s}}\right)\right), c\_p\right) \]
        6. +-lowering-+.f64N/A

          \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(\frac{1}{e^{s}}\right)\right)\right), c\_p\right) \]
        7. rec-expN/A

          \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(e^{\mathsf{neg}\left(s\right)}\right)\right)\right), c\_p\right) \]
        8. neg-mul-1N/A

          \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(e^{-1 \cdot s}\right)\right)\right), c\_p\right) \]
        9. exp-lowering-exp.f64N/A

          \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(-1 \cdot s\right)\right)\right)\right), c\_p\right) \]
        10. neg-mul-1N/A

          \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(\mathsf{neg}\left(s\right)\right)\right)\right)\right), c\_p\right) \]
        11. neg-sub0N/A

          \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(0 - s\right)\right)\right)\right), c\_p\right) \]
        12. --lowering--.f64100.0%

          \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right) \]
      4. Simplified100.0%

        \[\leadsto \color{blue}{{\left(\frac{1}{1 + e^{0 - s}}\right)}^{c\_p}} \]
    5. Recombined 2 regimes into one program.
    6. Final simplification98.6%

      \[\leadsto \begin{array}{l} \mathbf{if}\;0 - s \leq 100000000:\\ \;\;\;\;{\left(\frac{1}{0.5 + \frac{0.5}{e^{t}}}\right)}^{\left(0 - c\_p\right)}\\ \mathbf{else}:\\ \;\;\;\;{\left(\frac{1}{1 + e^{0 - s}}\right)}^{c\_p}\\ \end{array} \]
    7. Add Preprocessing

    Alternative 2: 97.7% accurate, 1.3× speedup?

    \[\begin{array}{l} \\ e^{c\_n \cdot \log \left(\frac{1 + \frac{1}{-1 + \frac{-1}{e^{s}}}}{1 + \frac{1}{-1 + \frac{-1}{e^{t}}}}\right) + c\_p \cdot \left(\log \left(\frac{2}{1 + e^{0 - s}}\right) + t \cdot \left(t \cdot \left(0.125 + -0.005208333333333333 \cdot \left(t \cdot t\right)\right) + -0.5\right)\right)} \end{array} \]
    (FPCore (c_p c_n t s)
     :precision binary64
     (exp
      (+
       (*
        c_n
        (log
         (/
          (+ 1.0 (/ 1.0 (+ -1.0 (/ -1.0 (exp s)))))
          (+ 1.0 (/ 1.0 (+ -1.0 (/ -1.0 (exp t))))))))
       (*
        c_p
        (+
         (log (/ 2.0 (+ 1.0 (exp (- 0.0 s)))))
         (* t (+ (* t (+ 0.125 (* -0.005208333333333333 (* t t)))) -0.5)))))))
    double code(double c_p, double c_n, double t, double s) {
    	return exp(((c_n * log(((1.0 + (1.0 / (-1.0 + (-1.0 / exp(s))))) / (1.0 + (1.0 / (-1.0 + (-1.0 / exp(t)))))))) + (c_p * (log((2.0 / (1.0 + exp((0.0 - s))))) + (t * ((t * (0.125 + (-0.005208333333333333 * (t * t)))) + -0.5))))));
    }
    
    real(8) function code(c_p, c_n, t, s)
        real(8), intent (in) :: c_p
        real(8), intent (in) :: c_n
        real(8), intent (in) :: t
        real(8), intent (in) :: s
        code = exp(((c_n * log(((1.0d0 + (1.0d0 / ((-1.0d0) + ((-1.0d0) / exp(s))))) / (1.0d0 + (1.0d0 / ((-1.0d0) + ((-1.0d0) / exp(t)))))))) + (c_p * (log((2.0d0 / (1.0d0 + exp((0.0d0 - s))))) + (t * ((t * (0.125d0 + ((-0.005208333333333333d0) * (t * t)))) + (-0.5d0)))))))
    end function
    
    public static double code(double c_p, double c_n, double t, double s) {
    	return Math.exp(((c_n * Math.log(((1.0 + (1.0 / (-1.0 + (-1.0 / Math.exp(s))))) / (1.0 + (1.0 / (-1.0 + (-1.0 / Math.exp(t)))))))) + (c_p * (Math.log((2.0 / (1.0 + Math.exp((0.0 - s))))) + (t * ((t * (0.125 + (-0.005208333333333333 * (t * t)))) + -0.5))))));
    }
    
    def code(c_p, c_n, t, s):
    	return math.exp(((c_n * math.log(((1.0 + (1.0 / (-1.0 + (-1.0 / math.exp(s))))) / (1.0 + (1.0 / (-1.0 + (-1.0 / math.exp(t)))))))) + (c_p * (math.log((2.0 / (1.0 + math.exp((0.0 - s))))) + (t * ((t * (0.125 + (-0.005208333333333333 * (t * t)))) + -0.5))))))
    
    function code(c_p, c_n, t, s)
    	return exp(Float64(Float64(c_n * log(Float64(Float64(1.0 + Float64(1.0 / Float64(-1.0 + Float64(-1.0 / exp(s))))) / Float64(1.0 + Float64(1.0 / Float64(-1.0 + Float64(-1.0 / exp(t)))))))) + Float64(c_p * Float64(log(Float64(2.0 / Float64(1.0 + exp(Float64(0.0 - s))))) + Float64(t * Float64(Float64(t * Float64(0.125 + Float64(-0.005208333333333333 * Float64(t * t)))) + -0.5))))))
    end
    
    function tmp = code(c_p, c_n, t, s)
    	tmp = exp(((c_n * log(((1.0 + (1.0 / (-1.0 + (-1.0 / exp(s))))) / (1.0 + (1.0 / (-1.0 + (-1.0 / exp(t)))))))) + (c_p * (log((2.0 / (1.0 + exp((0.0 - s))))) + (t * ((t * (0.125 + (-0.005208333333333333 * (t * t)))) + -0.5))))));
    end
    
    code[c$95$p_, c$95$n_, t_, s_] := N[Exp[N[(N[(c$95$n * N[Log[N[(N[(1.0 + N[(1.0 / N[(-1.0 + N[(-1.0 / N[Exp[s], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(1.0 + N[(1.0 / N[(-1.0 + N[(-1.0 / N[Exp[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] + N[(c$95$p * N[(N[Log[N[(2.0 / N[(1.0 + N[Exp[N[(0.0 - s), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision] + N[(t * N[(N[(t * N[(0.125 + N[(-0.005208333333333333 * N[(t * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + -0.5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
    
    \begin{array}{l}
    
    \\
    e^{c\_n \cdot \log \left(\frac{1 + \frac{1}{-1 + \frac{-1}{e^{s}}}}{1 + \frac{1}{-1 + \frac{-1}{e^{t}}}}\right) + c\_p \cdot \left(\log \left(\frac{2}{1 + e^{0 - s}}\right) + t \cdot \left(t \cdot \left(0.125 + -0.005208333333333333 \cdot \left(t \cdot t\right)\right) + -0.5\right)\right)}
    \end{array}
    
    Derivation
    1. Initial program 92.6%

      \[\frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-s}}\right)}^{c\_n}}{{\left(\frac{1}{1 + e^{-t}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-t}}\right)}^{c\_n}} \]
    2. Add Preprocessing
    3. Applied egg-rr97.3%

      \[\leadsto \color{blue}{e^{c\_n \cdot \log \left(\frac{1 + \frac{1}{-1 + \frac{-1}{e^{s}}}}{1 + \frac{1}{-1 + \frac{-1}{e^{t}}}}\right) + c\_p \cdot \log \left(\frac{\frac{1}{1 - \frac{-1}{e^{s}}}}{\frac{1}{1 + e^{0 - t}}}\right)}} \]
    4. Taylor expanded in t around 0

      \[\leadsto \mathsf{exp.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_n, \mathsf{log.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(s\right)\right)\right)\right)\right), \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)\right)\right)\right)\right), \mathsf{*.f64}\left(c\_p, \color{blue}{\left(\log \left(\frac{2}{1 + \frac{1}{e^{s}}}\right) + t \cdot \left(t \cdot \left(\frac{1}{8} + \frac{-1}{192} \cdot {t}^{2}\right) - \frac{1}{2}\right)\right)}\right)\right)\right) \]
    5. Step-by-step derivation
      1. +-lowering-+.f64N/A

        \[\leadsto \mathsf{exp.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_n, \mathsf{log.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(s\right)\right)\right)\right)\right), \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)\right)\right)\right)\right), \mathsf{*.f64}\left(c\_p, \mathsf{+.f64}\left(\log \left(\frac{2}{1 + \frac{1}{e^{s}}}\right), \left(t \cdot \left(t \cdot \left(\frac{1}{8} + \frac{-1}{192} \cdot {t}^{2}\right) - \frac{1}{2}\right)\right)\right)\right)\right)\right) \]
      2. log-lowering-log.f64N/A

        \[\leadsto \mathsf{exp.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_n, \mathsf{log.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(s\right)\right)\right)\right)\right), \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)\right)\right)\right)\right), \mathsf{*.f64}\left(c\_p, \mathsf{+.f64}\left(\mathsf{log.f64}\left(\left(\frac{2}{1 + \frac{1}{e^{s}}}\right)\right), \left(t \cdot \left(t \cdot \left(\frac{1}{8} + \frac{-1}{192} \cdot {t}^{2}\right) - \frac{1}{2}\right)\right)\right)\right)\right)\right) \]
      3. /-lowering-/.f64N/A

        \[\leadsto \mathsf{exp.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_n, \mathsf{log.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(s\right)\right)\right)\right)\right), \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)\right)\right)\right)\right), \mathsf{*.f64}\left(c\_p, \mathsf{+.f64}\left(\mathsf{log.f64}\left(\mathsf{/.f64}\left(2, \left(1 + \frac{1}{e^{s}}\right)\right)\right), \left(t \cdot \left(t \cdot \left(\frac{1}{8} + \frac{-1}{192} \cdot {t}^{2}\right) - \frac{1}{2}\right)\right)\right)\right)\right)\right) \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{exp.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_n, \mathsf{log.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(s\right)\right)\right)\right)\right), \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)\right)\right)\right)\right), \mathsf{*.f64}\left(c\_p, \mathsf{+.f64}\left(\mathsf{log.f64}\left(\mathsf{/.f64}\left(2, \mathsf{+.f64}\left(1, \left(\frac{1}{e^{s}}\right)\right)\right)\right), \left(t \cdot \left(t \cdot \left(\frac{1}{8} + \frac{-1}{192} \cdot {t}^{2}\right) - \frac{1}{2}\right)\right)\right)\right)\right)\right) \]
      5. rec-expN/A

        \[\leadsto \mathsf{exp.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_n, \mathsf{log.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(s\right)\right)\right)\right)\right), \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)\right)\right)\right)\right), \mathsf{*.f64}\left(c\_p, \mathsf{+.f64}\left(\mathsf{log.f64}\left(\mathsf{/.f64}\left(2, \mathsf{+.f64}\left(1, \left(e^{\mathsf{neg}\left(s\right)}\right)\right)\right)\right), \left(t \cdot \left(t \cdot \left(\frac{1}{8} + \frac{-1}{192} \cdot {t}^{2}\right) - \frac{1}{2}\right)\right)\right)\right)\right)\right) \]
      6. neg-mul-1N/A

        \[\leadsto \mathsf{exp.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_n, \mathsf{log.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(s\right)\right)\right)\right)\right), \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)\right)\right)\right)\right), \mathsf{*.f64}\left(c\_p, \mathsf{+.f64}\left(\mathsf{log.f64}\left(\mathsf{/.f64}\left(2, \mathsf{+.f64}\left(1, \left(e^{-1 \cdot s}\right)\right)\right)\right), \left(t \cdot \left(t \cdot \left(\frac{1}{8} + \frac{-1}{192} \cdot {t}^{2}\right) - \frac{1}{2}\right)\right)\right)\right)\right)\right) \]
      7. exp-lowering-exp.f64N/A

        \[\leadsto \mathsf{exp.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_n, \mathsf{log.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(s\right)\right)\right)\right)\right), \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)\right)\right)\right)\right), \mathsf{*.f64}\left(c\_p, \mathsf{+.f64}\left(\mathsf{log.f64}\left(\mathsf{/.f64}\left(2, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(-1 \cdot s\right)\right)\right)\right)\right), \left(t \cdot \left(t \cdot \left(\frac{1}{8} + \frac{-1}{192} \cdot {t}^{2}\right) - \frac{1}{2}\right)\right)\right)\right)\right)\right) \]
      8. neg-mul-1N/A

        \[\leadsto \mathsf{exp.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_n, \mathsf{log.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(s\right)\right)\right)\right)\right), \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)\right)\right)\right)\right), \mathsf{*.f64}\left(c\_p, \mathsf{+.f64}\left(\mathsf{log.f64}\left(\mathsf{/.f64}\left(2, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(\mathsf{neg}\left(s\right)\right)\right)\right)\right)\right), \left(t \cdot \left(t \cdot \left(\frac{1}{8} + \frac{-1}{192} \cdot {t}^{2}\right) - \frac{1}{2}\right)\right)\right)\right)\right)\right) \]
      9. neg-sub0N/A

        \[\leadsto \mathsf{exp.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_n, \mathsf{log.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(s\right)\right)\right)\right)\right), \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)\right)\right)\right)\right), \mathsf{*.f64}\left(c\_p, \mathsf{+.f64}\left(\mathsf{log.f64}\left(\mathsf{/.f64}\left(2, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(0 - s\right)\right)\right)\right)\right), \left(t \cdot \left(t \cdot \left(\frac{1}{8} + \frac{-1}{192} \cdot {t}^{2}\right) - \frac{1}{2}\right)\right)\right)\right)\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{exp.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_n, \mathsf{log.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(s\right)\right)\right)\right)\right), \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)\right)\right)\right)\right), \mathsf{*.f64}\left(c\_p, \mathsf{+.f64}\left(\mathsf{log.f64}\left(\mathsf{/.f64}\left(2, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right)\right), \left(t \cdot \left(t \cdot \left(\frac{1}{8} + \frac{-1}{192} \cdot {t}^{2}\right) - \frac{1}{2}\right)\right)\right)\right)\right)\right) \]
      11. *-lowering-*.f64N/A

        \[\leadsto \mathsf{exp.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_n, \mathsf{log.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(s\right)\right)\right)\right)\right), \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)\right)\right)\right)\right), \mathsf{*.f64}\left(c\_p, \mathsf{+.f64}\left(\mathsf{log.f64}\left(\mathsf{/.f64}\left(2, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right)\right), \mathsf{*.f64}\left(t, \left(t \cdot \left(\frac{1}{8} + \frac{-1}{192} \cdot {t}^{2}\right) - \frac{1}{2}\right)\right)\right)\right)\right)\right) \]
      12. sub-negN/A

        \[\leadsto \mathsf{exp.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_n, \mathsf{log.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(s\right)\right)\right)\right)\right), \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)\right)\right)\right)\right), \mathsf{*.f64}\left(c\_p, \mathsf{+.f64}\left(\mathsf{log.f64}\left(\mathsf{/.f64}\left(2, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right)\right), \mathsf{*.f64}\left(t, \left(t \cdot \left(\frac{1}{8} + \frac{-1}{192} \cdot {t}^{2}\right) + \left(\mathsf{neg}\left(\frac{1}{2}\right)\right)\right)\right)\right)\right)\right)\right) \]
      13. metadata-evalN/A

        \[\leadsto \mathsf{exp.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_n, \mathsf{log.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(s\right)\right)\right)\right)\right), \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)\right)\right)\right)\right), \mathsf{*.f64}\left(c\_p, \mathsf{+.f64}\left(\mathsf{log.f64}\left(\mathsf{/.f64}\left(2, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right)\right), \mathsf{*.f64}\left(t, \left(t \cdot \left(\frac{1}{8} + \frac{-1}{192} \cdot {t}^{2}\right) + \frac{-1}{2}\right)\right)\right)\right)\right)\right) \]
      14. +-lowering-+.f64N/A

        \[\leadsto \mathsf{exp.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_n, \mathsf{log.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(s\right)\right)\right)\right)\right), \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(-1, \mathsf{/.f64}\left(-1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)\right)\right)\right)\right), \mathsf{*.f64}\left(c\_p, \mathsf{+.f64}\left(\mathsf{log.f64}\left(\mathsf{/.f64}\left(2, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right)\right), \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\left(t \cdot \left(\frac{1}{8} + \frac{-1}{192} \cdot {t}^{2}\right)\right), \frac{-1}{2}\right)\right)\right)\right)\right)\right) \]
    6. Simplified98.1%

      \[\leadsto e^{c\_n \cdot \log \left(\frac{1 + \frac{1}{-1 + \frac{-1}{e^{s}}}}{1 + \frac{1}{-1 + \frac{-1}{e^{t}}}}\right) + c\_p \cdot \color{blue}{\left(\log \left(\frac{2}{1 + e^{0 - s}}\right) + t \cdot \left(t \cdot \left(0.125 + -0.005208333333333333 \cdot \left(t \cdot t\right)\right) + -0.5\right)\right)}} \]
    7. Add Preprocessing

    Alternative 3: 95.8% accurate, 3.9× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;s \leq -750000000:\\ \;\;\;\;{\left(\frac{1}{1 + e^{0 - s}}\right)}^{c\_p}\\ \mathbf{else}:\\ \;\;\;\;{\left(0.5 + \frac{0.5}{e^{t}}\right)}^{c\_p}\\ \end{array} \end{array} \]
    (FPCore (c_p c_n t s)
     :precision binary64
     (if (<= s -750000000.0)
       (pow (/ 1.0 (+ 1.0 (exp (- 0.0 s)))) c_p)
       (pow (+ 0.5 (/ 0.5 (exp t))) c_p)))
    double code(double c_p, double c_n, double t, double s) {
    	double tmp;
    	if (s <= -750000000.0) {
    		tmp = pow((1.0 / (1.0 + exp((0.0 - s)))), c_p);
    	} else {
    		tmp = pow((0.5 + (0.5 / exp(t))), c_p);
    	}
    	return tmp;
    }
    
    real(8) function code(c_p, c_n, t, s)
        real(8), intent (in) :: c_p
        real(8), intent (in) :: c_n
        real(8), intent (in) :: t
        real(8), intent (in) :: s
        real(8) :: tmp
        if (s <= (-750000000.0d0)) then
            tmp = (1.0d0 / (1.0d0 + exp((0.0d0 - s)))) ** c_p
        else
            tmp = (0.5d0 + (0.5d0 / exp(t))) ** c_p
        end if
        code = tmp
    end function
    
    public static double code(double c_p, double c_n, double t, double s) {
    	double tmp;
    	if (s <= -750000000.0) {
    		tmp = Math.pow((1.0 / (1.0 + Math.exp((0.0 - s)))), c_p);
    	} else {
    		tmp = Math.pow((0.5 + (0.5 / Math.exp(t))), c_p);
    	}
    	return tmp;
    }
    
    def code(c_p, c_n, t, s):
    	tmp = 0
    	if s <= -750000000.0:
    		tmp = math.pow((1.0 / (1.0 + math.exp((0.0 - s)))), c_p)
    	else:
    		tmp = math.pow((0.5 + (0.5 / math.exp(t))), c_p)
    	return tmp
    
    function code(c_p, c_n, t, s)
    	tmp = 0.0
    	if (s <= -750000000.0)
    		tmp = Float64(1.0 / Float64(1.0 + exp(Float64(0.0 - s)))) ^ c_p;
    	else
    		tmp = Float64(0.5 + Float64(0.5 / exp(t))) ^ c_p;
    	end
    	return tmp
    end
    
    function tmp_2 = code(c_p, c_n, t, s)
    	tmp = 0.0;
    	if (s <= -750000000.0)
    		tmp = (1.0 / (1.0 + exp((0.0 - s)))) ^ c_p;
    	else
    		tmp = (0.5 + (0.5 / exp(t))) ^ c_p;
    	end
    	tmp_2 = tmp;
    end
    
    code[c$95$p_, c$95$n_, t_, s_] := If[LessEqual[s, -750000000.0], N[Power[N[(1.0 / N[(1.0 + N[Exp[N[(0.0 - s), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], c$95$p], $MachinePrecision], N[Power[N[(0.5 + N[(0.5 / N[Exp[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], c$95$p], $MachinePrecision]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;s \leq -750000000:\\
    \;\;\;\;{\left(\frac{1}{1 + e^{0 - s}}\right)}^{c\_p}\\
    
    \mathbf{else}:\\
    \;\;\;\;{\left(0.5 + \frac{0.5}{e^{t}}\right)}^{c\_p}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if s < -7.5e8

      1. Initial program 50.0%

        \[\frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-s}}\right)}^{c\_n}}{{\left(\frac{1}{1 + e^{-t}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-t}}\right)}^{c\_n}} \]
      2. Add Preprocessing
      3. Taylor expanded in c_p around 0

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{neg.f64}\left(s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{\_.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{neg.f64}\left(s\right)\right)\right)\right)\right), c\_n\right)\right), \mathsf{*.f64}\left(\color{blue}{1}, \mathsf{pow.f64}\left(\mathsf{\_.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{neg.f64}\left(t\right)\right)\right)\right)\right), c\_n\right)\right)\right) \]
      4. Step-by-step derivation
        1. Simplified66.7%

          \[\leadsto \frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-s}}\right)}^{c\_n}}{\color{blue}{1} \cdot {\left(1 - \frac{1}{1 + e^{-t}}\right)}^{c\_n}} \]
        2. Taylor expanded in c_n around 0

          \[\leadsto \color{blue}{{\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_p}} \]
        3. Step-by-step derivation
          1. neg-mul-1N/A

            \[\leadsto {\left(\frac{1}{1 + e^{-1 \cdot s}}\right)}^{c\_p} \]
          2. neg-mul-1N/A

            \[\leadsto {\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_p} \]
          3. rec-expN/A

            \[\leadsto {\left(\frac{1}{1 + \frac{1}{e^{s}}}\right)}^{c\_p} \]
          4. pow-lowering-pow.f64N/A

            \[\leadsto \mathsf{pow.f64}\left(\left(\frac{1}{1 + \frac{1}{e^{s}}}\right), \color{blue}{c\_p}\right) \]
          5. /-lowering-/.f64N/A

            \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + \frac{1}{e^{s}}\right)\right), c\_p\right) \]
          6. +-lowering-+.f64N/A

            \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(\frac{1}{e^{s}}\right)\right)\right), c\_p\right) \]
          7. rec-expN/A

            \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(e^{\mathsf{neg}\left(s\right)}\right)\right)\right), c\_p\right) \]
          8. neg-mul-1N/A

            \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(e^{-1 \cdot s}\right)\right)\right), c\_p\right) \]
          9. exp-lowering-exp.f64N/A

            \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(-1 \cdot s\right)\right)\right)\right), c\_p\right) \]
          10. neg-mul-1N/A

            \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(\mathsf{neg}\left(s\right)\right)\right)\right)\right), c\_p\right) \]
          11. neg-sub0N/A

            \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(0 - s\right)\right)\right)\right), c\_p\right) \]
          12. --lowering--.f64100.0%

            \[\leadsto \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right) \]
        4. Simplified100.0%

          \[\leadsto \color{blue}{{\left(\frac{1}{1 + e^{0 - s}}\right)}^{c\_p}} \]

        if -7.5e8 < s

        1. Initial program 93.7%

          \[\frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-s}}\right)}^{c\_n}}{{\left(\frac{1}{1 + e^{-t}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-t}}\right)}^{c\_n}} \]
        2. Add Preprocessing
        3. Taylor expanded in c_n around 0

          \[\leadsto \color{blue}{\frac{{\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_p}}{{\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}}} \]
        4. Step-by-step derivation
          1. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_p}\right), \color{blue}{\left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)}\right) \]
          2. pow-lowering-pow.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right), c\_p\right), \left({\color{blue}{\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}}^{c\_p}\right)\right) \]
          3. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{\mathsf{neg}\left(s\right)}\right)\right), c\_p\right), \left({\left(\frac{\color{blue}{1}}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
          4. neg-mul-1N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{-1 \cdot s}\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
          5. +-lowering-+.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(e^{-1 \cdot s}\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
          6. exp-lowering-exp.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(-1 \cdot s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
          7. neg-mul-1N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(\mathsf{neg}\left(s\right)\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
          8. neg-sub0N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(0 - s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
          9. --lowering--.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
          10. pow-lowering-pow.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right), \color{blue}{c\_p}\right)\right) \]
          11. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{\mathsf{neg}\left(t\right)}\right)\right), c\_p\right)\right) \]
          12. +-lowering-+.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(e^{\mathsf{neg}\left(t\right)}\right)\right)\right), c\_p\right)\right) \]
          13. exp-negN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(\frac{1}{e^{t}}\right)\right)\right), c\_p\right)\right) \]
          14. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \left(e^{t}\right)\right)\right)\right), c\_p\right)\right) \]
          15. exp-lowering-exp.f6495.0%

            \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right), c\_p\right)\right) \]
        5. Simplified95.0%

          \[\leadsto \color{blue}{\frac{{\left(\frac{1}{1 + e^{0 - s}}\right)}^{c\_p}}{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}} \]
        6. Taylor expanded in s around 0

          \[\leadsto \mathsf{/.f64}\left(\color{blue}{\left({\frac{1}{2}}^{c\_p}\right)}, \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right), c\_p\right)\right) \]
        7. Step-by-step derivation
          1. pow-lowering-pow.f6496.1%

            \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\frac{1}{2}, c\_p\right), \mathsf{pow.f64}\left(\color{blue}{\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)}, c\_p\right)\right) \]
        8. Simplified96.1%

          \[\leadsto \frac{\color{blue}{{0.5}^{c\_p}}}{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}} \]
        9. Step-by-step derivation
          1. clear-numN/A

            \[\leadsto \frac{1}{\color{blue}{\frac{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}{{\frac{1}{2}}^{c\_p}}}} \]
          2. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(1, \color{blue}{\left(\frac{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}{{\frac{1}{2}}^{c\_p}}\right)}\right) \]
          3. div-invN/A

            \[\leadsto \mathsf{/.f64}\left(1, \left({\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p} \cdot \color{blue}{\frac{1}{{\frac{1}{2}}^{c\_p}}}\right)\right) \]
          4. inv-powN/A

            \[\leadsto \mathsf{/.f64}\left(1, \left({\left({\left(1 + \frac{1}{e^{t}}\right)}^{-1}\right)}^{c\_p} \cdot \frac{1}{{\frac{1}{2}}^{c\_p}}\right)\right) \]
          5. pow-powN/A

            \[\leadsto \mathsf{/.f64}\left(1, \left({\left(1 + \frac{1}{e^{t}}\right)}^{\left(-1 \cdot c\_p\right)} \cdot \frac{\color{blue}{1}}{{\frac{1}{2}}^{c\_p}}\right)\right) \]
          6. neg-mul-1N/A

            \[\leadsto \mathsf{/.f64}\left(1, \left({\left(1 + \frac{1}{e^{t}}\right)}^{\left(\mathsf{neg}\left(c\_p\right)\right)} \cdot \frac{1}{{\frac{1}{2}}^{c\_p}}\right)\right) \]
          7. pow-flipN/A

            \[\leadsto \mathsf{/.f64}\left(1, \left({\left(1 + \frac{1}{e^{t}}\right)}^{\left(\mathsf{neg}\left(c\_p\right)\right)} \cdot {\frac{1}{2}}^{\color{blue}{\left(\mathsf{neg}\left(c\_p\right)\right)}}\right)\right) \]
          8. pow-prod-downN/A

            \[\leadsto \mathsf{/.f64}\left(1, \left({\left(\left(1 + \frac{1}{e^{t}}\right) \cdot \frac{1}{2}\right)}^{\color{blue}{\left(\mathsf{neg}\left(c\_p\right)\right)}}\right)\right) \]
          9. pow-lowering-pow.f64N/A

            \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\left(\left(1 + \frac{1}{e^{t}}\right) \cdot \frac{1}{2}\right), \color{blue}{\left(\mathsf{neg}\left(c\_p\right)\right)}\right)\right) \]
          10. *-lowering-*.f64N/A

            \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\left(1 + \frac{1}{e^{t}}\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(\color{blue}{c\_p}\right)\right)\right)\right) \]
          11. +-lowering-+.f64N/A

            \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \left(\frac{1}{e^{t}}\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
          12. rec-expN/A

            \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \left(e^{\mathsf{neg}\left(t\right)}\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
          13. exp-lowering-exp.f64N/A

            \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(\mathsf{neg}\left(t\right)\right)\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
          14. neg-sub0N/A

            \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(0 - t\right)\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
          15. --lowering--.f64N/A

            \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, t\right)\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
          16. neg-sub0N/A

            \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, t\right)\right)\right), \frac{1}{2}\right), \left(0 - \color{blue}{c\_p}\right)\right)\right) \]
          17. --lowering--.f6498.5%

            \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, t\right)\right)\right), \frac{1}{2}\right), \mathsf{\_.f64}\left(0, \color{blue}{c\_p}\right)\right)\right) \]
        10. Applied egg-rr98.5%

          \[\leadsto \color{blue}{\frac{1}{{\left(\left(1 + e^{0 - t}\right) \cdot 0.5\right)}^{\left(0 - c\_p\right)}}} \]
        11. Step-by-step derivation
          1. pow-subN/A

            \[\leadsto \frac{1}{\frac{{\left(\left(1 + e^{0 - t}\right) \cdot \frac{1}{2}\right)}^{0}}{\color{blue}{{\left(\left(1 + e^{0 - t}\right) \cdot \frac{1}{2}\right)}^{c\_p}}}} \]
          2. metadata-evalN/A

            \[\leadsto \frac{1}{\frac{1}{{\color{blue}{\left(\left(1 + e^{0 - t}\right) \cdot \frac{1}{2}\right)}}^{c\_p}}} \]
          3. remove-double-divN/A

            \[\leadsto {\left(\left(1 + e^{0 - t}\right) \cdot \frac{1}{2}\right)}^{\color{blue}{c\_p}} \]
          4. pow-lowering-pow.f64N/A

            \[\leadsto \mathsf{pow.f64}\left(\left(\left(1 + e^{0 - t}\right) \cdot \frac{1}{2}\right), \color{blue}{c\_p}\right) \]
          5. +-commutativeN/A

            \[\leadsto \mathsf{pow.f64}\left(\left(\left(e^{0 - t} + 1\right) \cdot \frac{1}{2}\right), c\_p\right) \]
          6. distribute-rgt1-inN/A

            \[\leadsto \mathsf{pow.f64}\left(\left(\frac{1}{2} + e^{0 - t} \cdot \frac{1}{2}\right), c\_p\right) \]
          7. +-lowering-+.f64N/A

            \[\leadsto \mathsf{pow.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(e^{0 - t} \cdot \frac{1}{2}\right)\right), c\_p\right) \]
          8. exp-diffN/A

            \[\leadsto \mathsf{pow.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{e^{0}}{e^{t}} \cdot \frac{1}{2}\right)\right), c\_p\right) \]
          9. 1-expN/A

            \[\leadsto \mathsf{pow.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{e^{t}} \cdot \frac{1}{2}\right)\right), c\_p\right) \]
          10. associate-*l/N/A

            \[\leadsto \mathsf{pow.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{e^{t}}\right)\right), c\_p\right) \]
          11. metadata-evalN/A

            \[\leadsto \mathsf{pow.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{e^{t}}\right)\right), c\_p\right) \]
          12. /-lowering-/.f64N/A

            \[\leadsto \mathsf{pow.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \left(e^{t}\right)\right)\right), c\_p\right) \]
          13. exp-lowering-exp.f6498.5%

            \[\leadsto \mathsf{pow.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{exp.f64}\left(t\right)\right)\right), c\_p\right) \]
        12. Applied egg-rr98.5%

          \[\leadsto \color{blue}{{\left(0.5 + \frac{0.5}{e^{t}}\right)}^{c\_p}} \]
      5. Recombined 2 regimes into one program.
      6. Add Preprocessing

      Alternative 4: 93.5% accurate, 4.1× speedup?

      \[\begin{array}{l} \\ {\left(0.5 + \frac{0.5}{e^{t}}\right)}^{c\_p} \end{array} \]
      (FPCore (c_p c_n t s) :precision binary64 (pow (+ 0.5 (/ 0.5 (exp t))) c_p))
      double code(double c_p, double c_n, double t, double s) {
      	return pow((0.5 + (0.5 / exp(t))), c_p);
      }
      
      real(8) function code(c_p, c_n, t, s)
          real(8), intent (in) :: c_p
          real(8), intent (in) :: c_n
          real(8), intent (in) :: t
          real(8), intent (in) :: s
          code = (0.5d0 + (0.5d0 / exp(t))) ** c_p
      end function
      
      public static double code(double c_p, double c_n, double t, double s) {
      	return Math.pow((0.5 + (0.5 / Math.exp(t))), c_p);
      }
      
      def code(c_p, c_n, t, s):
      	return math.pow((0.5 + (0.5 / math.exp(t))), c_p)
      
      function code(c_p, c_n, t, s)
      	return Float64(0.5 + Float64(0.5 / exp(t))) ^ c_p
      end
      
      function tmp = code(c_p, c_n, t, s)
      	tmp = (0.5 + (0.5 / exp(t))) ^ c_p;
      end
      
      code[c$95$p_, c$95$n_, t_, s_] := N[Power[N[(0.5 + N[(0.5 / N[Exp[t], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], c$95$p], $MachinePrecision]
      
      \begin{array}{l}
      
      \\
      {\left(0.5 + \frac{0.5}{e^{t}}\right)}^{c\_p}
      \end{array}
      
      Derivation
      1. Initial program 92.6%

        \[\frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-s}}\right)}^{c\_n}}{{\left(\frac{1}{1 + e^{-t}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-t}}\right)}^{c\_n}} \]
      2. Add Preprocessing
      3. Taylor expanded in c_n around 0

        \[\leadsto \color{blue}{\frac{{\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_p}}{{\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}}} \]
      4. Step-by-step derivation
        1. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_p}\right), \color{blue}{\left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)}\right) \]
        2. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right), c\_p\right), \left({\color{blue}{\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}}^{c\_p}\right)\right) \]
        3. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{\mathsf{neg}\left(s\right)}\right)\right), c\_p\right), \left({\left(\frac{\color{blue}{1}}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        4. neg-mul-1N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{-1 \cdot s}\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        5. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(e^{-1 \cdot s}\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        6. exp-lowering-exp.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(-1 \cdot s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        7. neg-mul-1N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(\mathsf{neg}\left(s\right)\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        8. neg-sub0N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(0 - s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        9. --lowering--.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        10. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right), \color{blue}{c\_p}\right)\right) \]
        11. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{\mathsf{neg}\left(t\right)}\right)\right), c\_p\right)\right) \]
        12. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(e^{\mathsf{neg}\left(t\right)}\right)\right)\right), c\_p\right)\right) \]
        13. exp-negN/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(\frac{1}{e^{t}}\right)\right)\right), c\_p\right)\right) \]
        14. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \left(e^{t}\right)\right)\right)\right), c\_p\right)\right) \]
        15. exp-lowering-exp.f6494.3%

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right), c\_p\right)\right) \]
      5. Simplified94.3%

        \[\leadsto \color{blue}{\frac{{\left(\frac{1}{1 + e^{0 - s}}\right)}^{c\_p}}{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}} \]
      6. Taylor expanded in s around 0

        \[\leadsto \mathsf{/.f64}\left(\color{blue}{\left({\frac{1}{2}}^{c\_p}\right)}, \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right), c\_p\right)\right) \]
      7. Step-by-step derivation
        1. pow-lowering-pow.f6493.9%

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\frac{1}{2}, c\_p\right), \mathsf{pow.f64}\left(\color{blue}{\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)}, c\_p\right)\right) \]
      8. Simplified93.9%

        \[\leadsto \frac{\color{blue}{{0.5}^{c\_p}}}{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}} \]
      9. Step-by-step derivation
        1. clear-numN/A

          \[\leadsto \frac{1}{\color{blue}{\frac{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}{{\frac{1}{2}}^{c\_p}}}} \]
        2. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \color{blue}{\left(\frac{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}{{\frac{1}{2}}^{c\_p}}\right)}\right) \]
        3. div-invN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p} \cdot \color{blue}{\frac{1}{{\frac{1}{2}}^{c\_p}}}\right)\right) \]
        4. inv-powN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left({\left(1 + \frac{1}{e^{t}}\right)}^{-1}\right)}^{c\_p} \cdot \frac{1}{{\frac{1}{2}}^{c\_p}}\right)\right) \]
        5. pow-powN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(1 + \frac{1}{e^{t}}\right)}^{\left(-1 \cdot c\_p\right)} \cdot \frac{\color{blue}{1}}{{\frac{1}{2}}^{c\_p}}\right)\right) \]
        6. neg-mul-1N/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(1 + \frac{1}{e^{t}}\right)}^{\left(\mathsf{neg}\left(c\_p\right)\right)} \cdot \frac{1}{{\frac{1}{2}}^{c\_p}}\right)\right) \]
        7. pow-flipN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(1 + \frac{1}{e^{t}}\right)}^{\left(\mathsf{neg}\left(c\_p\right)\right)} \cdot {\frac{1}{2}}^{\color{blue}{\left(\mathsf{neg}\left(c\_p\right)\right)}}\right)\right) \]
        8. pow-prod-downN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(\left(1 + \frac{1}{e^{t}}\right) \cdot \frac{1}{2}\right)}^{\color{blue}{\left(\mathsf{neg}\left(c\_p\right)\right)}}\right)\right) \]
        9. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\left(\left(1 + \frac{1}{e^{t}}\right) \cdot \frac{1}{2}\right), \color{blue}{\left(\mathsf{neg}\left(c\_p\right)\right)}\right)\right) \]
        10. *-lowering-*.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\left(1 + \frac{1}{e^{t}}\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(\color{blue}{c\_p}\right)\right)\right)\right) \]
        11. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \left(\frac{1}{e^{t}}\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        12. rec-expN/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \left(e^{\mathsf{neg}\left(t\right)}\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        13. exp-lowering-exp.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(\mathsf{neg}\left(t\right)\right)\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        14. neg-sub0N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(0 - t\right)\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        15. --lowering--.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, t\right)\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        16. neg-sub0N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, t\right)\right)\right), \frac{1}{2}\right), \left(0 - \color{blue}{c\_p}\right)\right)\right) \]
        17. --lowering--.f6496.3%

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, t\right)\right)\right), \frac{1}{2}\right), \mathsf{\_.f64}\left(0, \color{blue}{c\_p}\right)\right)\right) \]
      10. Applied egg-rr96.3%

        \[\leadsto \color{blue}{\frac{1}{{\left(\left(1 + e^{0 - t}\right) \cdot 0.5\right)}^{\left(0 - c\_p\right)}}} \]
      11. Step-by-step derivation
        1. pow-subN/A

          \[\leadsto \frac{1}{\frac{{\left(\left(1 + e^{0 - t}\right) \cdot \frac{1}{2}\right)}^{0}}{\color{blue}{{\left(\left(1 + e^{0 - t}\right) \cdot \frac{1}{2}\right)}^{c\_p}}}} \]
        2. metadata-evalN/A

          \[\leadsto \frac{1}{\frac{1}{{\color{blue}{\left(\left(1 + e^{0 - t}\right) \cdot \frac{1}{2}\right)}}^{c\_p}}} \]
        3. remove-double-divN/A

          \[\leadsto {\left(\left(1 + e^{0 - t}\right) \cdot \frac{1}{2}\right)}^{\color{blue}{c\_p}} \]
        4. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{pow.f64}\left(\left(\left(1 + e^{0 - t}\right) \cdot \frac{1}{2}\right), \color{blue}{c\_p}\right) \]
        5. +-commutativeN/A

          \[\leadsto \mathsf{pow.f64}\left(\left(\left(e^{0 - t} + 1\right) \cdot \frac{1}{2}\right), c\_p\right) \]
        6. distribute-rgt1-inN/A

          \[\leadsto \mathsf{pow.f64}\left(\left(\frac{1}{2} + e^{0 - t} \cdot \frac{1}{2}\right), c\_p\right) \]
        7. +-lowering-+.f64N/A

          \[\leadsto \mathsf{pow.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(e^{0 - t} \cdot \frac{1}{2}\right)\right), c\_p\right) \]
        8. exp-diffN/A

          \[\leadsto \mathsf{pow.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{e^{0}}{e^{t}} \cdot \frac{1}{2}\right)\right), c\_p\right) \]
        9. 1-expN/A

          \[\leadsto \mathsf{pow.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1}{e^{t}} \cdot \frac{1}{2}\right)\right), c\_p\right) \]
        10. associate-*l/N/A

          \[\leadsto \mathsf{pow.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{1 \cdot \frac{1}{2}}{e^{t}}\right)\right), c\_p\right) \]
        11. metadata-evalN/A

          \[\leadsto \mathsf{pow.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \left(\frac{\frac{1}{2}}{e^{t}}\right)\right), c\_p\right) \]
        12. /-lowering-/.f64N/A

          \[\leadsto \mathsf{pow.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \left(e^{t}\right)\right)\right), c\_p\right) \]
        13. exp-lowering-exp.f6496.3%

          \[\leadsto \mathsf{pow.f64}\left(\mathsf{+.f64}\left(\frac{1}{2}, \mathsf{/.f64}\left(\frac{1}{2}, \mathsf{exp.f64}\left(t\right)\right)\right), c\_p\right) \]
      12. Applied egg-rr96.3%

        \[\leadsto \color{blue}{{\left(0.5 + \frac{0.5}{e^{t}}\right)}^{c\_p}} \]
      13. Add Preprocessing

      Alternative 5: 93.9% accurate, 22.6× speedup?

      \[\begin{array}{l} \\ \frac{1}{1 + t \cdot \left(c\_p \cdot 0.5 + t \cdot \left(\left(c\_p \cdot -0.125 + c\_p \cdot \left(c\_p \cdot 0.125\right)\right) + t \cdot \left(c\_p \cdot \left(c\_p \cdot -0.0625\right) + c\_p \cdot \left(\left(c\_p \cdot c\_p\right) \cdot 0.020833333333333332\right)\right)\right)\right)} \end{array} \]
      (FPCore (c_p c_n t s)
       :precision binary64
       (/
        1.0
        (+
         1.0
         (*
          t
          (+
           (* c_p 0.5)
           (*
            t
            (+
             (+ (* c_p -0.125) (* c_p (* c_p 0.125)))
             (*
              t
              (+
               (* c_p (* c_p -0.0625))
               (* c_p (* (* c_p c_p) 0.020833333333333332)))))))))))
      double code(double c_p, double c_n, double t, double s) {
      	return 1.0 / (1.0 + (t * ((c_p * 0.5) + (t * (((c_p * -0.125) + (c_p * (c_p * 0.125))) + (t * ((c_p * (c_p * -0.0625)) + (c_p * ((c_p * c_p) * 0.020833333333333332)))))))));
      }
      
      real(8) function code(c_p, c_n, t, s)
          real(8), intent (in) :: c_p
          real(8), intent (in) :: c_n
          real(8), intent (in) :: t
          real(8), intent (in) :: s
          code = 1.0d0 / (1.0d0 + (t * ((c_p * 0.5d0) + (t * (((c_p * (-0.125d0)) + (c_p * (c_p * 0.125d0))) + (t * ((c_p * (c_p * (-0.0625d0))) + (c_p * ((c_p * c_p) * 0.020833333333333332d0)))))))))
      end function
      
      public static double code(double c_p, double c_n, double t, double s) {
      	return 1.0 / (1.0 + (t * ((c_p * 0.5) + (t * (((c_p * -0.125) + (c_p * (c_p * 0.125))) + (t * ((c_p * (c_p * -0.0625)) + (c_p * ((c_p * c_p) * 0.020833333333333332)))))))));
      }
      
      def code(c_p, c_n, t, s):
      	return 1.0 / (1.0 + (t * ((c_p * 0.5) + (t * (((c_p * -0.125) + (c_p * (c_p * 0.125))) + (t * ((c_p * (c_p * -0.0625)) + (c_p * ((c_p * c_p) * 0.020833333333333332)))))))))
      
      function code(c_p, c_n, t, s)
      	return Float64(1.0 / Float64(1.0 + Float64(t * Float64(Float64(c_p * 0.5) + Float64(t * Float64(Float64(Float64(c_p * -0.125) + Float64(c_p * Float64(c_p * 0.125))) + Float64(t * Float64(Float64(c_p * Float64(c_p * -0.0625)) + Float64(c_p * Float64(Float64(c_p * c_p) * 0.020833333333333332))))))))))
      end
      
      function tmp = code(c_p, c_n, t, s)
      	tmp = 1.0 / (1.0 + (t * ((c_p * 0.5) + (t * (((c_p * -0.125) + (c_p * (c_p * 0.125))) + (t * ((c_p * (c_p * -0.0625)) + (c_p * ((c_p * c_p) * 0.020833333333333332)))))))));
      end
      
      code[c$95$p_, c$95$n_, t_, s_] := N[(1.0 / N[(1.0 + N[(t * N[(N[(c$95$p * 0.5), $MachinePrecision] + N[(t * N[(N[(N[(c$95$p * -0.125), $MachinePrecision] + N[(c$95$p * N[(c$95$p * 0.125), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(t * N[(N[(c$95$p * N[(c$95$p * -0.0625), $MachinePrecision]), $MachinePrecision] + N[(c$95$p * N[(N[(c$95$p * c$95$p), $MachinePrecision] * 0.020833333333333332), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
      
      \begin{array}{l}
      
      \\
      \frac{1}{1 + t \cdot \left(c\_p \cdot 0.5 + t \cdot \left(\left(c\_p \cdot -0.125 + c\_p \cdot \left(c\_p \cdot 0.125\right)\right) + t \cdot \left(c\_p \cdot \left(c\_p \cdot -0.0625\right) + c\_p \cdot \left(\left(c\_p \cdot c\_p\right) \cdot 0.020833333333333332\right)\right)\right)\right)}
      \end{array}
      
      Derivation
      1. Initial program 92.6%

        \[\frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-s}}\right)}^{c\_n}}{{\left(\frac{1}{1 + e^{-t}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-t}}\right)}^{c\_n}} \]
      2. Add Preprocessing
      3. Taylor expanded in c_n around 0

        \[\leadsto \color{blue}{\frac{{\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_p}}{{\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}}} \]
      4. Step-by-step derivation
        1. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_p}\right), \color{blue}{\left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)}\right) \]
        2. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right), c\_p\right), \left({\color{blue}{\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}}^{c\_p}\right)\right) \]
        3. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{\mathsf{neg}\left(s\right)}\right)\right), c\_p\right), \left({\left(\frac{\color{blue}{1}}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        4. neg-mul-1N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{-1 \cdot s}\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        5. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(e^{-1 \cdot s}\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        6. exp-lowering-exp.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(-1 \cdot s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        7. neg-mul-1N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(\mathsf{neg}\left(s\right)\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        8. neg-sub0N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(0 - s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        9. --lowering--.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        10. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right), \color{blue}{c\_p}\right)\right) \]
        11. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{\mathsf{neg}\left(t\right)}\right)\right), c\_p\right)\right) \]
        12. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(e^{\mathsf{neg}\left(t\right)}\right)\right)\right), c\_p\right)\right) \]
        13. exp-negN/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(\frac{1}{e^{t}}\right)\right)\right), c\_p\right)\right) \]
        14. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \left(e^{t}\right)\right)\right)\right), c\_p\right)\right) \]
        15. exp-lowering-exp.f6494.3%

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right), c\_p\right)\right) \]
      5. Simplified94.3%

        \[\leadsto \color{blue}{\frac{{\left(\frac{1}{1 + e^{0 - s}}\right)}^{c\_p}}{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}} \]
      6. Taylor expanded in s around 0

        \[\leadsto \mathsf{/.f64}\left(\color{blue}{\left({\frac{1}{2}}^{c\_p}\right)}, \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right), c\_p\right)\right) \]
      7. Step-by-step derivation
        1. pow-lowering-pow.f6493.9%

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\frac{1}{2}, c\_p\right), \mathsf{pow.f64}\left(\color{blue}{\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)}, c\_p\right)\right) \]
      8. Simplified93.9%

        \[\leadsto \frac{\color{blue}{{0.5}^{c\_p}}}{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}} \]
      9. Step-by-step derivation
        1. clear-numN/A

          \[\leadsto \frac{1}{\color{blue}{\frac{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}{{\frac{1}{2}}^{c\_p}}}} \]
        2. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \color{blue}{\left(\frac{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}{{\frac{1}{2}}^{c\_p}}\right)}\right) \]
        3. div-invN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p} \cdot \color{blue}{\frac{1}{{\frac{1}{2}}^{c\_p}}}\right)\right) \]
        4. inv-powN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left({\left(1 + \frac{1}{e^{t}}\right)}^{-1}\right)}^{c\_p} \cdot \frac{1}{{\frac{1}{2}}^{c\_p}}\right)\right) \]
        5. pow-powN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(1 + \frac{1}{e^{t}}\right)}^{\left(-1 \cdot c\_p\right)} \cdot \frac{\color{blue}{1}}{{\frac{1}{2}}^{c\_p}}\right)\right) \]
        6. neg-mul-1N/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(1 + \frac{1}{e^{t}}\right)}^{\left(\mathsf{neg}\left(c\_p\right)\right)} \cdot \frac{1}{{\frac{1}{2}}^{c\_p}}\right)\right) \]
        7. pow-flipN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(1 + \frac{1}{e^{t}}\right)}^{\left(\mathsf{neg}\left(c\_p\right)\right)} \cdot {\frac{1}{2}}^{\color{blue}{\left(\mathsf{neg}\left(c\_p\right)\right)}}\right)\right) \]
        8. pow-prod-downN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(\left(1 + \frac{1}{e^{t}}\right) \cdot \frac{1}{2}\right)}^{\color{blue}{\left(\mathsf{neg}\left(c\_p\right)\right)}}\right)\right) \]
        9. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\left(\left(1 + \frac{1}{e^{t}}\right) \cdot \frac{1}{2}\right), \color{blue}{\left(\mathsf{neg}\left(c\_p\right)\right)}\right)\right) \]
        10. *-lowering-*.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\left(1 + \frac{1}{e^{t}}\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(\color{blue}{c\_p}\right)\right)\right)\right) \]
        11. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \left(\frac{1}{e^{t}}\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        12. rec-expN/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \left(e^{\mathsf{neg}\left(t\right)}\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        13. exp-lowering-exp.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(\mathsf{neg}\left(t\right)\right)\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        14. neg-sub0N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(0 - t\right)\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        15. --lowering--.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, t\right)\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        16. neg-sub0N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, t\right)\right)\right), \frac{1}{2}\right), \left(0 - \color{blue}{c\_p}\right)\right)\right) \]
        17. --lowering--.f6496.3%

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, t\right)\right)\right), \frac{1}{2}\right), \mathsf{\_.f64}\left(0, \color{blue}{c\_p}\right)\right)\right) \]
      10. Applied egg-rr96.3%

        \[\leadsto \color{blue}{\frac{1}{{\left(\left(1 + e^{0 - t}\right) \cdot 0.5\right)}^{\left(0 - c\_p\right)}}} \]
      11. Taylor expanded in t around 0

        \[\leadsto \mathsf{/.f64}\left(1, \color{blue}{\left(1 + t \cdot \left(\frac{1}{2} \cdot c\_p + t \cdot \left(\frac{-1}{8} \cdot c\_p + \left(\frac{1}{8} \cdot {c\_p}^{2} + t \cdot \left(\frac{-1}{16} \cdot {c\_p}^{2} + \frac{1}{48} \cdot {c\_p}^{3}\right)\right)\right)\right)\right)}\right) \]
      12. Step-by-step derivation
        1. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \color{blue}{\left(t \cdot \left(\frac{1}{2} \cdot c\_p + t \cdot \left(\frac{-1}{8} \cdot c\_p + \left(\frac{1}{8} \cdot {c\_p}^{2} + t \cdot \left(\frac{-1}{16} \cdot {c\_p}^{2} + \frac{1}{48} \cdot {c\_p}^{3}\right)\right)\right)\right)\right)}\right)\right) \]
        2. *-lowering-*.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \color{blue}{\left(\frac{1}{2} \cdot c\_p + t \cdot \left(\frac{-1}{8} \cdot c\_p + \left(\frac{1}{8} \cdot {c\_p}^{2} + t \cdot \left(\frac{-1}{16} \cdot {c\_p}^{2} + \frac{1}{48} \cdot {c\_p}^{3}\right)\right)\right)\right)}\right)\right)\right) \]
        3. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\left(\frac{1}{2} \cdot c\_p\right), \color{blue}{\left(t \cdot \left(\frac{-1}{8} \cdot c\_p + \left(\frac{1}{8} \cdot {c\_p}^{2} + t \cdot \left(\frac{-1}{16} \cdot {c\_p}^{2} + \frac{1}{48} \cdot {c\_p}^{3}\right)\right)\right)\right)}\right)\right)\right)\right) \]
        4. *-commutativeN/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\left(c\_p \cdot \frac{1}{2}\right), \left(\color{blue}{t} \cdot \left(\frac{-1}{8} \cdot c\_p + \left(\frac{1}{8} \cdot {c\_p}^{2} + t \cdot \left(\frac{-1}{16} \cdot {c\_p}^{2} + \frac{1}{48} \cdot {c\_p}^{3}\right)\right)\right)\right)\right)\right)\right)\right) \]
        5. *-lowering-*.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_p, \frac{1}{2}\right), \left(\color{blue}{t} \cdot \left(\frac{-1}{8} \cdot c\_p + \left(\frac{1}{8} \cdot {c\_p}^{2} + t \cdot \left(\frac{-1}{16} \cdot {c\_p}^{2} + \frac{1}{48} \cdot {c\_p}^{3}\right)\right)\right)\right)\right)\right)\right)\right) \]
        6. *-lowering-*.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_p, \frac{1}{2}\right), \mathsf{*.f64}\left(t, \color{blue}{\left(\frac{-1}{8} \cdot c\_p + \left(\frac{1}{8} \cdot {c\_p}^{2} + t \cdot \left(\frac{-1}{16} \cdot {c\_p}^{2} + \frac{1}{48} \cdot {c\_p}^{3}\right)\right)\right)}\right)\right)\right)\right)\right) \]
        7. associate-+r+N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_p, \frac{1}{2}\right), \mathsf{*.f64}\left(t, \left(\left(\frac{-1}{8} \cdot c\_p + \frac{1}{8} \cdot {c\_p}^{2}\right) + \color{blue}{t \cdot \left(\frac{-1}{16} \cdot {c\_p}^{2} + \frac{1}{48} \cdot {c\_p}^{3}\right)}\right)\right)\right)\right)\right)\right) \]
        8. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_p, \frac{1}{2}\right), \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\left(\frac{-1}{8} \cdot c\_p + \frac{1}{8} \cdot {c\_p}^{2}\right), \color{blue}{\left(t \cdot \left(\frac{-1}{16} \cdot {c\_p}^{2} + \frac{1}{48} \cdot {c\_p}^{3}\right)\right)}\right)\right)\right)\right)\right)\right) \]
      13. Simplified96.2%

        \[\leadsto \frac{1}{\color{blue}{1 + t \cdot \left(c\_p \cdot 0.5 + t \cdot \left(\left(c\_p \cdot -0.125 + \left(0.125 \cdot c\_p\right) \cdot c\_p\right) + t \cdot \left(c\_p \cdot \left(c\_p \cdot -0.0625\right) + c\_p \cdot \left(\left(c\_p \cdot c\_p\right) \cdot 0.020833333333333332\right)\right)\right)\right)}} \]
      14. Final simplification96.2%

        \[\leadsto \frac{1}{1 + t \cdot \left(c\_p \cdot 0.5 + t \cdot \left(\left(c\_p \cdot -0.125 + c\_p \cdot \left(c\_p \cdot 0.125\right)\right) + t \cdot \left(c\_p \cdot \left(c\_p \cdot -0.0625\right) + c\_p \cdot \left(\left(c\_p \cdot c\_p\right) \cdot 0.020833333333333332\right)\right)\right)\right)} \]
      15. Add Preprocessing

      Alternative 6: 94.0% accurate, 39.8× speedup?

      \[\begin{array}{l} \\ \frac{1}{1 + t \cdot \left(c\_p \cdot 0.5 + t \cdot \left(c\_p \cdot -0.125 + c\_p \cdot \left(c\_p \cdot 0.125\right)\right)\right)} \end{array} \]
      (FPCore (c_p c_n t s)
       :precision binary64
       (/
        1.0
        (+
         1.0
         (* t (+ (* c_p 0.5) (* t (+ (* c_p -0.125) (* c_p (* c_p 0.125)))))))))
      double code(double c_p, double c_n, double t, double s) {
      	return 1.0 / (1.0 + (t * ((c_p * 0.5) + (t * ((c_p * -0.125) + (c_p * (c_p * 0.125)))))));
      }
      
      real(8) function code(c_p, c_n, t, s)
          real(8), intent (in) :: c_p
          real(8), intent (in) :: c_n
          real(8), intent (in) :: t
          real(8), intent (in) :: s
          code = 1.0d0 / (1.0d0 + (t * ((c_p * 0.5d0) + (t * ((c_p * (-0.125d0)) + (c_p * (c_p * 0.125d0)))))))
      end function
      
      public static double code(double c_p, double c_n, double t, double s) {
      	return 1.0 / (1.0 + (t * ((c_p * 0.5) + (t * ((c_p * -0.125) + (c_p * (c_p * 0.125)))))));
      }
      
      def code(c_p, c_n, t, s):
      	return 1.0 / (1.0 + (t * ((c_p * 0.5) + (t * ((c_p * -0.125) + (c_p * (c_p * 0.125)))))))
      
      function code(c_p, c_n, t, s)
      	return Float64(1.0 / Float64(1.0 + Float64(t * Float64(Float64(c_p * 0.5) + Float64(t * Float64(Float64(c_p * -0.125) + Float64(c_p * Float64(c_p * 0.125))))))))
      end
      
      function tmp = code(c_p, c_n, t, s)
      	tmp = 1.0 / (1.0 + (t * ((c_p * 0.5) + (t * ((c_p * -0.125) + (c_p * (c_p * 0.125)))))));
      end
      
      code[c$95$p_, c$95$n_, t_, s_] := N[(1.0 / N[(1.0 + N[(t * N[(N[(c$95$p * 0.5), $MachinePrecision] + N[(t * N[(N[(c$95$p * -0.125), $MachinePrecision] + N[(c$95$p * N[(c$95$p * 0.125), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
      
      \begin{array}{l}
      
      \\
      \frac{1}{1 + t \cdot \left(c\_p \cdot 0.5 + t \cdot \left(c\_p \cdot -0.125 + c\_p \cdot \left(c\_p \cdot 0.125\right)\right)\right)}
      \end{array}
      
      Derivation
      1. Initial program 92.6%

        \[\frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-s}}\right)}^{c\_n}}{{\left(\frac{1}{1 + e^{-t}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-t}}\right)}^{c\_n}} \]
      2. Add Preprocessing
      3. Taylor expanded in c_n around 0

        \[\leadsto \color{blue}{\frac{{\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_p}}{{\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}}} \]
      4. Step-by-step derivation
        1. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_p}\right), \color{blue}{\left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)}\right) \]
        2. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right), c\_p\right), \left({\color{blue}{\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}}^{c\_p}\right)\right) \]
        3. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{\mathsf{neg}\left(s\right)}\right)\right), c\_p\right), \left({\left(\frac{\color{blue}{1}}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        4. neg-mul-1N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{-1 \cdot s}\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        5. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(e^{-1 \cdot s}\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        6. exp-lowering-exp.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(-1 \cdot s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        7. neg-mul-1N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(\mathsf{neg}\left(s\right)\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        8. neg-sub0N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(0 - s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        9. --lowering--.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        10. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right), \color{blue}{c\_p}\right)\right) \]
        11. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{\mathsf{neg}\left(t\right)}\right)\right), c\_p\right)\right) \]
        12. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(e^{\mathsf{neg}\left(t\right)}\right)\right)\right), c\_p\right)\right) \]
        13. exp-negN/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(\frac{1}{e^{t}}\right)\right)\right), c\_p\right)\right) \]
        14. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \left(e^{t}\right)\right)\right)\right), c\_p\right)\right) \]
        15. exp-lowering-exp.f6494.3%

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right), c\_p\right)\right) \]
      5. Simplified94.3%

        \[\leadsto \color{blue}{\frac{{\left(\frac{1}{1 + e^{0 - s}}\right)}^{c\_p}}{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}} \]
      6. Taylor expanded in s around 0

        \[\leadsto \mathsf{/.f64}\left(\color{blue}{\left({\frac{1}{2}}^{c\_p}\right)}, \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right), c\_p\right)\right) \]
      7. Step-by-step derivation
        1. pow-lowering-pow.f6493.9%

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\frac{1}{2}, c\_p\right), \mathsf{pow.f64}\left(\color{blue}{\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)}, c\_p\right)\right) \]
      8. Simplified93.9%

        \[\leadsto \frac{\color{blue}{{0.5}^{c\_p}}}{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}} \]
      9. Step-by-step derivation
        1. clear-numN/A

          \[\leadsto \frac{1}{\color{blue}{\frac{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}{{\frac{1}{2}}^{c\_p}}}} \]
        2. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \color{blue}{\left(\frac{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}{{\frac{1}{2}}^{c\_p}}\right)}\right) \]
        3. div-invN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p} \cdot \color{blue}{\frac{1}{{\frac{1}{2}}^{c\_p}}}\right)\right) \]
        4. inv-powN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left({\left(1 + \frac{1}{e^{t}}\right)}^{-1}\right)}^{c\_p} \cdot \frac{1}{{\frac{1}{2}}^{c\_p}}\right)\right) \]
        5. pow-powN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(1 + \frac{1}{e^{t}}\right)}^{\left(-1 \cdot c\_p\right)} \cdot \frac{\color{blue}{1}}{{\frac{1}{2}}^{c\_p}}\right)\right) \]
        6. neg-mul-1N/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(1 + \frac{1}{e^{t}}\right)}^{\left(\mathsf{neg}\left(c\_p\right)\right)} \cdot \frac{1}{{\frac{1}{2}}^{c\_p}}\right)\right) \]
        7. pow-flipN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(1 + \frac{1}{e^{t}}\right)}^{\left(\mathsf{neg}\left(c\_p\right)\right)} \cdot {\frac{1}{2}}^{\color{blue}{\left(\mathsf{neg}\left(c\_p\right)\right)}}\right)\right) \]
        8. pow-prod-downN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(\left(1 + \frac{1}{e^{t}}\right) \cdot \frac{1}{2}\right)}^{\color{blue}{\left(\mathsf{neg}\left(c\_p\right)\right)}}\right)\right) \]
        9. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\left(\left(1 + \frac{1}{e^{t}}\right) \cdot \frac{1}{2}\right), \color{blue}{\left(\mathsf{neg}\left(c\_p\right)\right)}\right)\right) \]
        10. *-lowering-*.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\left(1 + \frac{1}{e^{t}}\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(\color{blue}{c\_p}\right)\right)\right)\right) \]
        11. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \left(\frac{1}{e^{t}}\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        12. rec-expN/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \left(e^{\mathsf{neg}\left(t\right)}\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        13. exp-lowering-exp.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(\mathsf{neg}\left(t\right)\right)\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        14. neg-sub0N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(0 - t\right)\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        15. --lowering--.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, t\right)\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        16. neg-sub0N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, t\right)\right)\right), \frac{1}{2}\right), \left(0 - \color{blue}{c\_p}\right)\right)\right) \]
        17. --lowering--.f6496.3%

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, t\right)\right)\right), \frac{1}{2}\right), \mathsf{\_.f64}\left(0, \color{blue}{c\_p}\right)\right)\right) \]
      10. Applied egg-rr96.3%

        \[\leadsto \color{blue}{\frac{1}{{\left(\left(1 + e^{0 - t}\right) \cdot 0.5\right)}^{\left(0 - c\_p\right)}}} \]
      11. Taylor expanded in t around 0

        \[\leadsto \mathsf{/.f64}\left(1, \color{blue}{\left(1 + t \cdot \left(\frac{1}{2} \cdot c\_p + t \cdot \left(\frac{-1}{8} \cdot c\_p + \frac{1}{8} \cdot {c\_p}^{2}\right)\right)\right)}\right) \]
      12. Step-by-step derivation
        1. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \color{blue}{\left(t \cdot \left(\frac{1}{2} \cdot c\_p + t \cdot \left(\frac{-1}{8} \cdot c\_p + \frac{1}{8} \cdot {c\_p}^{2}\right)\right)\right)}\right)\right) \]
        2. *-lowering-*.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \color{blue}{\left(\frac{1}{2} \cdot c\_p + t \cdot \left(\frac{-1}{8} \cdot c\_p + \frac{1}{8} \cdot {c\_p}^{2}\right)\right)}\right)\right)\right) \]
        3. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\left(\frac{1}{2} \cdot c\_p\right), \color{blue}{\left(t \cdot \left(\frac{-1}{8} \cdot c\_p + \frac{1}{8} \cdot {c\_p}^{2}\right)\right)}\right)\right)\right)\right) \]
        4. *-commutativeN/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\left(c\_p \cdot \frac{1}{2}\right), \left(\color{blue}{t} \cdot \left(\frac{-1}{8} \cdot c\_p + \frac{1}{8} \cdot {c\_p}^{2}\right)\right)\right)\right)\right)\right) \]
        5. *-lowering-*.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_p, \frac{1}{2}\right), \left(\color{blue}{t} \cdot \left(\frac{-1}{8} \cdot c\_p + \frac{1}{8} \cdot {c\_p}^{2}\right)\right)\right)\right)\right)\right) \]
        6. *-lowering-*.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_p, \frac{1}{2}\right), \mathsf{*.f64}\left(t, \color{blue}{\left(\frac{-1}{8} \cdot c\_p + \frac{1}{8} \cdot {c\_p}^{2}\right)}\right)\right)\right)\right)\right) \]
        7. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_p, \frac{1}{2}\right), \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\left(\frac{-1}{8} \cdot c\_p\right), \color{blue}{\left(\frac{1}{8} \cdot {c\_p}^{2}\right)}\right)\right)\right)\right)\right)\right) \]
        8. *-commutativeN/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_p, \frac{1}{2}\right), \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\left(c\_p \cdot \frac{-1}{8}\right), \left(\color{blue}{\frac{1}{8}} \cdot {c\_p}^{2}\right)\right)\right)\right)\right)\right)\right) \]
        9. *-lowering-*.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_p, \frac{1}{2}\right), \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_p, \frac{-1}{8}\right), \left(\color{blue}{\frac{1}{8}} \cdot {c\_p}^{2}\right)\right)\right)\right)\right)\right)\right) \]
        10. unpow2N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_p, \frac{1}{2}\right), \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_p, \frac{-1}{8}\right), \left(\frac{1}{8} \cdot \left(c\_p \cdot \color{blue}{c\_p}\right)\right)\right)\right)\right)\right)\right)\right) \]
        11. associate-*r*N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_p, \frac{1}{2}\right), \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_p, \frac{-1}{8}\right), \left(\left(\frac{1}{8} \cdot c\_p\right) \cdot \color{blue}{c\_p}\right)\right)\right)\right)\right)\right)\right) \]
        12. *-lowering-*.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_p, \frac{1}{2}\right), \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_p, \frac{-1}{8}\right), \mathsf{*.f64}\left(\left(\frac{1}{8} \cdot c\_p\right), \color{blue}{c\_p}\right)\right)\right)\right)\right)\right)\right) \]
        13. *-lowering-*.f6496.1%

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_p, \frac{1}{2}\right), \mathsf{*.f64}\left(t, \mathsf{+.f64}\left(\mathsf{*.f64}\left(c\_p, \frac{-1}{8}\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(\frac{1}{8}, c\_p\right), c\_p\right)\right)\right)\right)\right)\right)\right) \]
      13. Simplified96.1%

        \[\leadsto \frac{1}{\color{blue}{1 + t \cdot \left(c\_p \cdot 0.5 + t \cdot \left(c\_p \cdot -0.125 + \left(0.125 \cdot c\_p\right) \cdot c\_p\right)\right)}} \]
      14. Final simplification96.1%

        \[\leadsto \frac{1}{1 + t \cdot \left(c\_p \cdot 0.5 + t \cdot \left(c\_p \cdot -0.125 + c\_p \cdot \left(c\_p \cdot 0.125\right)\right)\right)} \]
      15. Add Preprocessing

      Alternative 7: 93.8% accurate, 92.8× speedup?

      \[\begin{array}{l} \\ \frac{1}{1 + t \cdot \left(c\_p \cdot 0.5\right)} \end{array} \]
      (FPCore (c_p c_n t s) :precision binary64 (/ 1.0 (+ 1.0 (* t (* c_p 0.5)))))
      double code(double c_p, double c_n, double t, double s) {
      	return 1.0 / (1.0 + (t * (c_p * 0.5)));
      }
      
      real(8) function code(c_p, c_n, t, s)
          real(8), intent (in) :: c_p
          real(8), intent (in) :: c_n
          real(8), intent (in) :: t
          real(8), intent (in) :: s
          code = 1.0d0 / (1.0d0 + (t * (c_p * 0.5d0)))
      end function
      
      public static double code(double c_p, double c_n, double t, double s) {
      	return 1.0 / (1.0 + (t * (c_p * 0.5)));
      }
      
      def code(c_p, c_n, t, s):
      	return 1.0 / (1.0 + (t * (c_p * 0.5)))
      
      function code(c_p, c_n, t, s)
      	return Float64(1.0 / Float64(1.0 + Float64(t * Float64(c_p * 0.5))))
      end
      
      function tmp = code(c_p, c_n, t, s)
      	tmp = 1.0 / (1.0 + (t * (c_p * 0.5)));
      end
      
      code[c$95$p_, c$95$n_, t_, s_] := N[(1.0 / N[(1.0 + N[(t * N[(c$95$p * 0.5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
      
      \begin{array}{l}
      
      \\
      \frac{1}{1 + t \cdot \left(c\_p \cdot 0.5\right)}
      \end{array}
      
      Derivation
      1. Initial program 92.6%

        \[\frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-s}}\right)}^{c\_n}}{{\left(\frac{1}{1 + e^{-t}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-t}}\right)}^{c\_n}} \]
      2. Add Preprocessing
      3. Taylor expanded in c_n around 0

        \[\leadsto \color{blue}{\frac{{\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_p}}{{\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}}} \]
      4. Step-by-step derivation
        1. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_p}\right), \color{blue}{\left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)}\right) \]
        2. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right), c\_p\right), \left({\color{blue}{\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}}^{c\_p}\right)\right) \]
        3. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{\mathsf{neg}\left(s\right)}\right)\right), c\_p\right), \left({\left(\frac{\color{blue}{1}}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        4. neg-mul-1N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{-1 \cdot s}\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        5. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(e^{-1 \cdot s}\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        6. exp-lowering-exp.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(-1 \cdot s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        7. neg-mul-1N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(\mathsf{neg}\left(s\right)\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        8. neg-sub0N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(0 - s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        9. --lowering--.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        10. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right), \color{blue}{c\_p}\right)\right) \]
        11. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{\mathsf{neg}\left(t\right)}\right)\right), c\_p\right)\right) \]
        12. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(e^{\mathsf{neg}\left(t\right)}\right)\right)\right), c\_p\right)\right) \]
        13. exp-negN/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(\frac{1}{e^{t}}\right)\right)\right), c\_p\right)\right) \]
        14. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \left(e^{t}\right)\right)\right)\right), c\_p\right)\right) \]
        15. exp-lowering-exp.f6494.3%

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right), c\_p\right)\right) \]
      5. Simplified94.3%

        \[\leadsto \color{blue}{\frac{{\left(\frac{1}{1 + e^{0 - s}}\right)}^{c\_p}}{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}} \]
      6. Taylor expanded in s around 0

        \[\leadsto \mathsf{/.f64}\left(\color{blue}{\left({\frac{1}{2}}^{c\_p}\right)}, \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right), c\_p\right)\right) \]
      7. Step-by-step derivation
        1. pow-lowering-pow.f6493.9%

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\frac{1}{2}, c\_p\right), \mathsf{pow.f64}\left(\color{blue}{\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)}, c\_p\right)\right) \]
      8. Simplified93.9%

        \[\leadsto \frac{\color{blue}{{0.5}^{c\_p}}}{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}} \]
      9. Step-by-step derivation
        1. clear-numN/A

          \[\leadsto \frac{1}{\color{blue}{\frac{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}{{\frac{1}{2}}^{c\_p}}}} \]
        2. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \color{blue}{\left(\frac{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}{{\frac{1}{2}}^{c\_p}}\right)}\right) \]
        3. div-invN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p} \cdot \color{blue}{\frac{1}{{\frac{1}{2}}^{c\_p}}}\right)\right) \]
        4. inv-powN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left({\left(1 + \frac{1}{e^{t}}\right)}^{-1}\right)}^{c\_p} \cdot \frac{1}{{\frac{1}{2}}^{c\_p}}\right)\right) \]
        5. pow-powN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(1 + \frac{1}{e^{t}}\right)}^{\left(-1 \cdot c\_p\right)} \cdot \frac{\color{blue}{1}}{{\frac{1}{2}}^{c\_p}}\right)\right) \]
        6. neg-mul-1N/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(1 + \frac{1}{e^{t}}\right)}^{\left(\mathsf{neg}\left(c\_p\right)\right)} \cdot \frac{1}{{\frac{1}{2}}^{c\_p}}\right)\right) \]
        7. pow-flipN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(1 + \frac{1}{e^{t}}\right)}^{\left(\mathsf{neg}\left(c\_p\right)\right)} \cdot {\frac{1}{2}}^{\color{blue}{\left(\mathsf{neg}\left(c\_p\right)\right)}}\right)\right) \]
        8. pow-prod-downN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left({\left(\left(1 + \frac{1}{e^{t}}\right) \cdot \frac{1}{2}\right)}^{\color{blue}{\left(\mathsf{neg}\left(c\_p\right)\right)}}\right)\right) \]
        9. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\left(\left(1 + \frac{1}{e^{t}}\right) \cdot \frac{1}{2}\right), \color{blue}{\left(\mathsf{neg}\left(c\_p\right)\right)}\right)\right) \]
        10. *-lowering-*.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\left(1 + \frac{1}{e^{t}}\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(\color{blue}{c\_p}\right)\right)\right)\right) \]
        11. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \left(\frac{1}{e^{t}}\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        12. rec-expN/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \left(e^{\mathsf{neg}\left(t\right)}\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        13. exp-lowering-exp.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(\mathsf{neg}\left(t\right)\right)\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        14. neg-sub0N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(0 - t\right)\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        15. --lowering--.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, t\right)\right)\right), \frac{1}{2}\right), \left(\mathsf{neg}\left(c\_p\right)\right)\right)\right) \]
        16. neg-sub0N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, t\right)\right)\right), \frac{1}{2}\right), \left(0 - \color{blue}{c\_p}\right)\right)\right) \]
        17. --lowering--.f6496.3%

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{pow.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, t\right)\right)\right), \frac{1}{2}\right), \mathsf{\_.f64}\left(0, \color{blue}{c\_p}\right)\right)\right) \]
      10. Applied egg-rr96.3%

        \[\leadsto \color{blue}{\frac{1}{{\left(\left(1 + e^{0 - t}\right) \cdot 0.5\right)}^{\left(0 - c\_p\right)}}} \]
      11. Taylor expanded in t around 0

        \[\leadsto \mathsf{/.f64}\left(1, \color{blue}{\left(1 + \frac{1}{2} \cdot \left(c\_p \cdot t\right)\right)}\right) \]
      12. Step-by-step derivation
        1. associate-*r*N/A

          \[\leadsto \mathsf{/.f64}\left(1, \left(1 + \left(\frac{1}{2} \cdot c\_p\right) \cdot \color{blue}{t}\right)\right) \]
        2. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \color{blue}{\left(\left(\frac{1}{2} \cdot c\_p\right) \cdot t\right)}\right)\right) \]
        3. *-commutativeN/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(t \cdot \color{blue}{\left(\frac{1}{2} \cdot c\_p\right)}\right)\right)\right) \]
        4. *-lowering-*.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \color{blue}{\left(\frac{1}{2} \cdot c\_p\right)}\right)\right)\right) \]
        5. *-commutativeN/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \left(c\_p \cdot \color{blue}{\frac{1}{2}}\right)\right)\right)\right) \]
        6. *-lowering-*.f6496.1%

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{*.f64}\left(c\_p, \color{blue}{\frac{1}{2}}\right)\right)\right)\right) \]
      13. Simplified96.1%

        \[\leadsto \frac{1}{\color{blue}{1 + t \cdot \left(c\_p \cdot 0.5\right)}} \]
      14. Add Preprocessing

      Alternative 8: 93.8% accurate, 119.3× speedup?

      \[\begin{array}{l} \\ 1 + t \cdot \left(c\_p \cdot -0.5\right) \end{array} \]
      (FPCore (c_p c_n t s) :precision binary64 (+ 1.0 (* t (* c_p -0.5))))
      double code(double c_p, double c_n, double t, double s) {
      	return 1.0 + (t * (c_p * -0.5));
      }
      
      real(8) function code(c_p, c_n, t, s)
          real(8), intent (in) :: c_p
          real(8), intent (in) :: c_n
          real(8), intent (in) :: t
          real(8), intent (in) :: s
          code = 1.0d0 + (t * (c_p * (-0.5d0)))
      end function
      
      public static double code(double c_p, double c_n, double t, double s) {
      	return 1.0 + (t * (c_p * -0.5));
      }
      
      def code(c_p, c_n, t, s):
      	return 1.0 + (t * (c_p * -0.5))
      
      function code(c_p, c_n, t, s)
      	return Float64(1.0 + Float64(t * Float64(c_p * -0.5)))
      end
      
      function tmp = code(c_p, c_n, t, s)
      	tmp = 1.0 + (t * (c_p * -0.5));
      end
      
      code[c$95$p_, c$95$n_, t_, s_] := N[(1.0 + N[(t * N[(c$95$p * -0.5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
      
      \begin{array}{l}
      
      \\
      1 + t \cdot \left(c\_p \cdot -0.5\right)
      \end{array}
      
      Derivation
      1. Initial program 92.6%

        \[\frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-s}}\right)}^{c\_n}}{{\left(\frac{1}{1 + e^{-t}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-t}}\right)}^{c\_n}} \]
      2. Add Preprocessing
      3. Taylor expanded in c_n around 0

        \[\leadsto \color{blue}{\frac{{\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_p}}{{\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}}} \]
      4. Step-by-step derivation
        1. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_p}\right), \color{blue}{\left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)}\right) \]
        2. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right), c\_p\right), \left({\color{blue}{\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}}^{c\_p}\right)\right) \]
        3. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{\mathsf{neg}\left(s\right)}\right)\right), c\_p\right), \left({\left(\frac{\color{blue}{1}}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        4. neg-mul-1N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{-1 \cdot s}\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        5. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(e^{-1 \cdot s}\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        6. exp-lowering-exp.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(-1 \cdot s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        7. neg-mul-1N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(\mathsf{neg}\left(s\right)\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        8. neg-sub0N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(0 - s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        9. --lowering--.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \left({\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_p}\right)\right) \]
        10. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\left(\frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right), \color{blue}{c\_p}\right)\right) \]
        11. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \left(1 + e^{\mathsf{neg}\left(t\right)}\right)\right), c\_p\right)\right) \]
        12. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(e^{\mathsf{neg}\left(t\right)}\right)\right)\right), c\_p\right)\right) \]
        13. exp-negN/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \left(\frac{1}{e^{t}}\right)\right)\right), c\_p\right)\right) \]
        14. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \left(e^{t}\right)\right)\right)\right), c\_p\right)\right) \]
        15. exp-lowering-exp.f6494.3%

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right), c\_p\right), \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right), c\_p\right)\right) \]
      5. Simplified94.3%

        \[\leadsto \color{blue}{\frac{{\left(\frac{1}{1 + e^{0 - s}}\right)}^{c\_p}}{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}}} \]
      6. Taylor expanded in s around 0

        \[\leadsto \mathsf{/.f64}\left(\color{blue}{\left({\frac{1}{2}}^{c\_p}\right)}, \mathsf{pow.f64}\left(\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right), c\_p\right)\right) \]
      7. Step-by-step derivation
        1. pow-lowering-pow.f6493.9%

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\frac{1}{2}, c\_p\right), \mathsf{pow.f64}\left(\color{blue}{\mathsf{/.f64}\left(1, \mathsf{+.f64}\left(1, \mathsf{/.f64}\left(1, \mathsf{exp.f64}\left(t\right)\right)\right)\right)}, c\_p\right)\right) \]
      8. Simplified93.9%

        \[\leadsto \frac{\color{blue}{{0.5}^{c\_p}}}{{\left(\frac{1}{1 + \frac{1}{e^{t}}}\right)}^{c\_p}} \]
      9. Taylor expanded in t around 0

        \[\leadsto \color{blue}{1 + \frac{-1}{2} \cdot \left(c\_p \cdot t\right)} \]
      10. Step-by-step derivation
        1. associate-*r*N/A

          \[\leadsto 1 + \left(\frac{-1}{2} \cdot c\_p\right) \cdot \color{blue}{t} \]
        2. +-lowering-+.f64N/A

          \[\leadsto \mathsf{+.f64}\left(1, \color{blue}{\left(\left(\frac{-1}{2} \cdot c\_p\right) \cdot t\right)}\right) \]
        3. associate-*r*N/A

          \[\leadsto \mathsf{+.f64}\left(1, \left(\frac{-1}{2} \cdot \color{blue}{\left(c\_p \cdot t\right)}\right)\right) \]
        4. *-commutativeN/A

          \[\leadsto \mathsf{+.f64}\left(1, \left(\left(c\_p \cdot t\right) \cdot \color{blue}{\frac{-1}{2}}\right)\right) \]
        5. *-commutativeN/A

          \[\leadsto \mathsf{+.f64}\left(1, \left(\left(t \cdot c\_p\right) \cdot \frac{-1}{2}\right)\right) \]
        6. associate-*r*N/A

          \[\leadsto \mathsf{+.f64}\left(1, \left(t \cdot \color{blue}{\left(c\_p \cdot \frac{-1}{2}\right)}\right)\right) \]
        7. *-commutativeN/A

          \[\leadsto \mathsf{+.f64}\left(1, \left(t \cdot \left(\frac{-1}{2} \cdot \color{blue}{c\_p}\right)\right)\right) \]
        8. *-lowering-*.f64N/A

          \[\leadsto \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \color{blue}{\left(\frac{-1}{2} \cdot c\_p\right)}\right)\right) \]
        9. *-commutativeN/A

          \[\leadsto \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \left(c\_p \cdot \color{blue}{\frac{-1}{2}}\right)\right)\right) \]
        10. *-lowering-*.f6496.1%

          \[\leadsto \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(t, \mathsf{*.f64}\left(c\_p, \color{blue}{\frac{-1}{2}}\right)\right)\right) \]
      11. Simplified96.1%

        \[\leadsto \color{blue}{1 + t \cdot \left(c\_p \cdot -0.5\right)} \]
      12. Add Preprocessing

      Alternative 9: 93.8% accurate, 835.0× speedup?

      \[\begin{array}{l} \\ 1 \end{array} \]
      (FPCore (c_p c_n t s) :precision binary64 1.0)
      double code(double c_p, double c_n, double t, double s) {
      	return 1.0;
      }
      
      real(8) function code(c_p, c_n, t, s)
          real(8), intent (in) :: c_p
          real(8), intent (in) :: c_n
          real(8), intent (in) :: t
          real(8), intent (in) :: s
          code = 1.0d0
      end function
      
      public static double code(double c_p, double c_n, double t, double s) {
      	return 1.0;
      }
      
      def code(c_p, c_n, t, s):
      	return 1.0
      
      function code(c_p, c_n, t, s)
      	return 1.0
      end
      
      function tmp = code(c_p, c_n, t, s)
      	tmp = 1.0;
      end
      
      code[c$95$p_, c$95$n_, t_, s_] := 1.0
      
      \begin{array}{l}
      
      \\
      1
      \end{array}
      
      Derivation
      1. Initial program 92.6%

        \[\frac{{\left(\frac{1}{1 + e^{-s}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-s}}\right)}^{c\_n}}{{\left(\frac{1}{1 + e^{-t}}\right)}^{c\_p} \cdot {\left(1 - \frac{1}{1 + e^{-t}}\right)}^{c\_n}} \]
      2. Add Preprocessing
      3. Taylor expanded in c_p around 0

        \[\leadsto \color{blue}{\frac{{\left(1 - \frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_n}}{{\left(1 - \frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_n}}} \]
      4. Step-by-step derivation
        1. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\left({\left(1 - \frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)}^{c\_n}\right), \color{blue}{\left({\left(1 - \frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_n}\right)}\right) \]
        2. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\left(1 - \frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right), c\_n\right), \left({\color{blue}{\left(1 - \frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}}^{c\_n}\right)\right) \]
        3. sub-negN/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\left(1 + \left(\mathsf{neg}\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)\right)\right), c\_n\right), \left({\left(\color{blue}{1} - \frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_n}\right)\right) \]
        4. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{+.f64}\left(1, \left(\mathsf{neg}\left(\frac{1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)\right)\right), c\_n\right), \left({\left(\color{blue}{1} - \frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_n}\right)\right) \]
        5. distribute-neg-fracN/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{+.f64}\left(1, \left(\frac{\mathsf{neg}\left(1\right)}{1 + e^{\mathsf{neg}\left(s\right)}}\right)\right), c\_n\right), \left({\left(1 - \frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_n}\right)\right) \]
        6. metadata-evalN/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{+.f64}\left(1, \left(\frac{-1}{1 + e^{\mathsf{neg}\left(s\right)}}\right)\right), c\_n\right), \left({\left(1 - \frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_n}\right)\right) \]
        7. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(-1, \left(1 + e^{\mathsf{neg}\left(s\right)}\right)\right)\right), c\_n\right), \left({\left(1 - \frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_n}\right)\right) \]
        8. neg-mul-1N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(-1, \left(1 + e^{-1 \cdot s}\right)\right)\right), c\_n\right), \left({\left(1 - \frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_n}\right)\right) \]
        9. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(1, \left(e^{-1 \cdot s}\right)\right)\right)\right), c\_n\right), \left({\left(1 - \frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_n}\right)\right) \]
        10. exp-lowering-exp.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(-1 \cdot s\right)\right)\right)\right)\right), c\_n\right), \left({\left(1 - \frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_n}\right)\right) \]
        11. neg-mul-1N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(\mathsf{neg}\left(s\right)\right)\right)\right)\right)\right), c\_n\right), \left({\left(1 - \frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_n}\right)\right) \]
        12. neg-sub0N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\left(0 - s\right)\right)\right)\right)\right), c\_n\right), \left({\left(1 - \frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_n}\right)\right) \]
        13. --lowering--.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right)\right), c\_n\right), \left({\left(1 - \frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right)}^{c\_n}\right)\right) \]
        14. pow-lowering-pow.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{pow.f64}\left(\mathsf{+.f64}\left(1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(1, \mathsf{exp.f64}\left(\mathsf{\_.f64}\left(0, s\right)\right)\right)\right)\right), c\_n\right), \mathsf{pow.f64}\left(\left(1 - \frac{1}{1 + e^{\mathsf{neg}\left(t\right)}}\right), \color{blue}{c\_n}\right)\right) \]
      5. Simplified95.5%

        \[\leadsto \color{blue}{\frac{{\left(1 + \frac{-1}{1 + e^{0 - s}}\right)}^{c\_n}}{{\left(1 + \frac{-1}{1 + \frac{1}{e^{t}}}\right)}^{c\_n}}} \]
      6. Taylor expanded in c_n around 0

        \[\leadsto \color{blue}{1} \]
      7. Step-by-step derivation
        1. Simplified96.0%

          \[\leadsto \color{blue}{1} \]
        2. Add Preprocessing

        Developer Target 1: 96.2% accurate, 1.3× speedup?

        \[\begin{array}{l} \\ {\left(\frac{1 + e^{-t}}{1 + e^{-s}}\right)}^{c\_p} \cdot {\left(\frac{1 + e^{t}}{1 + e^{s}}\right)}^{c\_n} \end{array} \]
        (FPCore (c_p c_n t s)
         :precision binary64
         (*
          (pow (/ (+ 1.0 (exp (- t))) (+ 1.0 (exp (- s)))) c_p)
          (pow (/ (+ 1.0 (exp t)) (+ 1.0 (exp s))) c_n)))
        double code(double c_p, double c_n, double t, double s) {
        	return pow(((1.0 + exp(-t)) / (1.0 + exp(-s))), c_p) * pow(((1.0 + exp(t)) / (1.0 + exp(s))), c_n);
        }
        
        real(8) function code(c_p, c_n, t, s)
            real(8), intent (in) :: c_p
            real(8), intent (in) :: c_n
            real(8), intent (in) :: t
            real(8), intent (in) :: s
            code = (((1.0d0 + exp(-t)) / (1.0d0 + exp(-s))) ** c_p) * (((1.0d0 + exp(t)) / (1.0d0 + exp(s))) ** c_n)
        end function
        
        public static double code(double c_p, double c_n, double t, double s) {
        	return Math.pow(((1.0 + Math.exp(-t)) / (1.0 + Math.exp(-s))), c_p) * Math.pow(((1.0 + Math.exp(t)) / (1.0 + Math.exp(s))), c_n);
        }
        
        def code(c_p, c_n, t, s):
        	return math.pow(((1.0 + math.exp(-t)) / (1.0 + math.exp(-s))), c_p) * math.pow(((1.0 + math.exp(t)) / (1.0 + math.exp(s))), c_n)
        
        function code(c_p, c_n, t, s)
        	return Float64((Float64(Float64(1.0 + exp(Float64(-t))) / Float64(1.0 + exp(Float64(-s)))) ^ c_p) * (Float64(Float64(1.0 + exp(t)) / Float64(1.0 + exp(s))) ^ c_n))
        end
        
        function tmp = code(c_p, c_n, t, s)
        	tmp = (((1.0 + exp(-t)) / (1.0 + exp(-s))) ^ c_p) * (((1.0 + exp(t)) / (1.0 + exp(s))) ^ c_n);
        end
        
        code[c$95$p_, c$95$n_, t_, s_] := N[(N[Power[N[(N[(1.0 + N[Exp[(-t)], $MachinePrecision]), $MachinePrecision] / N[(1.0 + N[Exp[(-s)], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], c$95$p], $MachinePrecision] * N[Power[N[(N[(1.0 + N[Exp[t], $MachinePrecision]), $MachinePrecision] / N[(1.0 + N[Exp[s], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], c$95$n], $MachinePrecision]), $MachinePrecision]
        
        \begin{array}{l}
        
        \\
        {\left(\frac{1 + e^{-t}}{1 + e^{-s}}\right)}^{c\_p} \cdot {\left(\frac{1 + e^{t}}{1 + e^{s}}\right)}^{c\_n}
        \end{array}
        

        Reproduce

        ?
        herbie shell --seed 2024159 
        (FPCore (c_p c_n t s)
          :name "Harley's example"
          :precision binary64
          :pre (and (< 0.0 c_p) (< 0.0 c_n))
        
          :alt
          (! :herbie-platform default (* (pow (/ (+ 1 (exp (- t))) (+ 1 (exp (- s)))) c_p) (pow (/ (+ 1 (exp t)) (+ 1 (exp s))) c_n)))
        
          (/ (* (pow (/ 1.0 (+ 1.0 (exp (- s)))) c_p) (pow (- 1.0 (/ 1.0 (+ 1.0 (exp (- s))))) c_n)) (* (pow (/ 1.0 (+ 1.0 (exp (- t)))) c_p) (pow (- 1.0 (/ 1.0 (+ 1.0 (exp (- t))))) c_n))))