Quotient of sum of exps

Percentage Accurate: 98.9% → 100.0%
Time: 10.3s
Alternatives: 18
Speedup: 2.9×

Specification

?
\[\begin{array}{l} \\ \frac{e^{a}}{e^{a} + e^{b}} \end{array} \]
(FPCore (a b) :precision binary64 (/ (exp a) (+ (exp a) (exp b))))
double code(double a, double b) {
	return exp(a) / (exp(a) + exp(b));
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    code = exp(a) / (exp(a) + exp(b))
end function
public static double code(double a, double b) {
	return Math.exp(a) / (Math.exp(a) + Math.exp(b));
}
def code(a, b):
	return math.exp(a) / (math.exp(a) + math.exp(b))
function code(a, b)
	return Float64(exp(a) / Float64(exp(a) + exp(b)))
end
function tmp = code(a, b)
	tmp = exp(a) / (exp(a) + exp(b));
end
code[a_, b_] := N[(N[Exp[a], $MachinePrecision] / N[(N[Exp[a], $MachinePrecision] + N[Exp[b], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{e^{a}}{e^{a} + e^{b}}
\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 18 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: 98.9% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \frac{e^{a}}{e^{a} + e^{b}} \end{array} \]
(FPCore (a b) :precision binary64 (/ (exp a) (+ (exp a) (exp b))))
double code(double a, double b) {
	return exp(a) / (exp(a) + exp(b));
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    code = exp(a) / (exp(a) + exp(b))
end function
public static double code(double a, double b) {
	return Math.exp(a) / (Math.exp(a) + Math.exp(b));
}
def code(a, b):
	return math.exp(a) / (math.exp(a) + math.exp(b))
function code(a, b)
	return Float64(exp(a) / Float64(exp(a) + exp(b)))
end
function tmp = code(a, b)
	tmp = exp(a) / (exp(a) + exp(b));
end
code[a_, b_] := N[(N[Exp[a], $MachinePrecision] / N[(N[Exp[a], $MachinePrecision] + N[Exp[b], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{e^{a}}{e^{a} + e^{b}}
\end{array}

Alternative 1: 100.0% accurate, 2.8× speedup?

\[\begin{array}{l} \\ \frac{1}{1 + {e}^{\left(b - a\right)}} \end{array} \]
(FPCore (a b) :precision binary64 (/ 1.0 (+ 1.0 (pow E (- b a)))))
double code(double a, double b) {
	return 1.0 / (1.0 + pow(((double) M_E), (b - a)));
}
public static double code(double a, double b) {
	return 1.0 / (1.0 + Math.pow(Math.E, (b - a)));
}
def code(a, b):
	return 1.0 / (1.0 + math.pow(math.e, (b - a)))
function code(a, b)
	return Float64(1.0 / Float64(1.0 + (exp(1) ^ Float64(b - a))))
end
function tmp = code(a, b)
	tmp = 1.0 / (1.0 + (2.71828182845904523536 ^ (b - a)));
end
code[a_, b_] := N[(1.0 / N[(1.0 + N[Power[E, N[(b - a), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{1}{1 + {e}^{\left(b - a\right)}}
\end{array}
Derivation
  1. Initial program 99.2%

    \[\frac{e^{a}}{e^{a} + e^{b}} \]
  2. Step-by-step derivation
    1. *-lft-identity99.2%

      \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
    2. associate-*l/99.2%

      \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
    3. associate-/r/99.2%

      \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
    4. remove-double-neg99.2%

      \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
    5. unsub-neg99.2%

      \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
    6. div-sub74.6%

      \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
    7. *-lft-identity74.6%

      \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
    8. associate-*l/74.6%

      \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
    9. lft-mult-inverse99.6%

      \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
    10. sub-neg99.6%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
    11. distribute-frac-neg99.6%

      \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
    12. remove-double-neg99.6%

      \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
    13. div-exp99.9%

      \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
  3. Simplified99.9%

    \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
  4. Add Preprocessing
  5. Step-by-step derivation
    1. *-un-lft-identity99.9%

      \[\leadsto \frac{1}{1 + e^{\color{blue}{1 \cdot \left(b - a\right)}}} \]
    2. exp-prod100.0%

      \[\leadsto \frac{1}{1 + \color{blue}{{\left(e^{1}\right)}^{\left(b - a\right)}}} \]
  6. Applied egg-rr100.0%

    \[\leadsto \frac{1}{1 + \color{blue}{{\left(e^{1}\right)}^{\left(b - a\right)}}} \]
  7. Step-by-step derivation
    1. exp-1-e100.0%

      \[\leadsto \frac{1}{1 + {\color{blue}{e}}^{\left(b - a\right)}} \]
  8. Simplified100.0%

    \[\leadsto \frac{1}{1 + \color{blue}{{e}^{\left(b - a\right)}}} \]
  9. Final simplification100.0%

    \[\leadsto \frac{1}{1 + {e}^{\left(b - a\right)}} \]
  10. Add Preprocessing

Alternative 2: 98.6% accurate, 1.4× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;e^{a} \leq 10^{-245}:\\ \;\;\;\;\frac{1}{1 + e^{-a}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{1 + e^{b}}\\ \end{array} \end{array} \]
(FPCore (a b)
 :precision binary64
 (if (<= (exp a) 1e-245) (/ 1.0 (+ 1.0 (exp (- a)))) (/ 1.0 (+ 1.0 (exp b)))))
double code(double a, double b) {
	double tmp;
	if (exp(a) <= 1e-245) {
		tmp = 1.0 / (1.0 + exp(-a));
	} else {
		tmp = 1.0 / (1.0 + exp(b));
	}
	return tmp;
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    real(8) :: tmp
    if (exp(a) <= 1d-245) then
        tmp = 1.0d0 / (1.0d0 + exp(-a))
    else
        tmp = 1.0d0 / (1.0d0 + exp(b))
    end if
    code = tmp
end function
public static double code(double a, double b) {
	double tmp;
	if (Math.exp(a) <= 1e-245) {
		tmp = 1.0 / (1.0 + Math.exp(-a));
	} else {
		tmp = 1.0 / (1.0 + Math.exp(b));
	}
	return tmp;
}
def code(a, b):
	tmp = 0
	if math.exp(a) <= 1e-245:
		tmp = 1.0 / (1.0 + math.exp(-a))
	else:
		tmp = 1.0 / (1.0 + math.exp(b))
	return tmp
function code(a, b)
	tmp = 0.0
	if (exp(a) <= 1e-245)
		tmp = Float64(1.0 / Float64(1.0 + exp(Float64(-a))));
	else
		tmp = Float64(1.0 / Float64(1.0 + exp(b)));
	end
	return tmp
end
function tmp_2 = code(a, b)
	tmp = 0.0;
	if (exp(a) <= 1e-245)
		tmp = 1.0 / (1.0 + exp(-a));
	else
		tmp = 1.0 / (1.0 + exp(b));
	end
	tmp_2 = tmp;
end
code[a_, b_] := If[LessEqual[N[Exp[a], $MachinePrecision], 1e-245], N[(1.0 / N[(1.0 + N[Exp[(-a)], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(1.0 / N[(1.0 + N[Exp[b], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;e^{a} \leq 10^{-245}:\\
\;\;\;\;\frac{1}{1 + e^{-a}}\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{1 + e^{b}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (exp.f64 a) < 9.9999999999999993e-246

    1. Initial program 98.5%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity98.5%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/98.5%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/98.5%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg98.5%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg98.5%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub1.5%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity1.5%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/1.5%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse98.5%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg98.5%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg98.5%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg98.5%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp99.8%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified99.8%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 99.5%

      \[\leadsto \frac{1}{\color{blue}{1 + e^{-a}}} \]
    6. Step-by-step derivation
      1. +-commutative99.5%

        \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    7. Simplified99.5%

      \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]

    if 9.9999999999999993e-246 < (exp.f64 a)

    1. Initial program 99.5%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity99.5%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/99.5%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/99.5%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg99.5%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg99.5%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub99.5%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity99.5%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/99.5%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in a around 0 97.5%

      \[\leadsto \frac{1}{\color{blue}{1 + e^{b}}} \]
    6. Step-by-step derivation
      1. +-commutative97.5%

        \[\leadsto \frac{1}{\color{blue}{e^{b} + 1}} \]
    7. Simplified97.5%

      \[\leadsto \frac{1}{\color{blue}{e^{b} + 1}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification98.0%

    \[\leadsto \begin{array}{l} \mathbf{if}\;e^{a} \leq 10^{-245}:\\ \;\;\;\;\frac{1}{1 + e^{-a}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{1 + e^{b}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 3: 98.6% accurate, 1.5× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;e^{a} \leq 10^{-245}:\\ \;\;\;\;\frac{e^{a}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{1 + e^{b}}\\ \end{array} \end{array} \]
(FPCore (a b)
 :precision binary64
 (if (<= (exp a) 1e-245) (/ (exp a) 2.0) (/ 1.0 (+ 1.0 (exp b)))))
double code(double a, double b) {
	double tmp;
	if (exp(a) <= 1e-245) {
		tmp = exp(a) / 2.0;
	} else {
		tmp = 1.0 / (1.0 + exp(b));
	}
	return tmp;
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    real(8) :: tmp
    if (exp(a) <= 1d-245) then
        tmp = exp(a) / 2.0d0
    else
        tmp = 1.0d0 / (1.0d0 + exp(b))
    end if
    code = tmp
end function
public static double code(double a, double b) {
	double tmp;
	if (Math.exp(a) <= 1e-245) {
		tmp = Math.exp(a) / 2.0;
	} else {
		tmp = 1.0 / (1.0 + Math.exp(b));
	}
	return tmp;
}
def code(a, b):
	tmp = 0
	if math.exp(a) <= 1e-245:
		tmp = math.exp(a) / 2.0
	else:
		tmp = 1.0 / (1.0 + math.exp(b))
	return tmp
function code(a, b)
	tmp = 0.0
	if (exp(a) <= 1e-245)
		tmp = Float64(exp(a) / 2.0);
	else
		tmp = Float64(1.0 / Float64(1.0 + exp(b)));
	end
	return tmp
end
function tmp_2 = code(a, b)
	tmp = 0.0;
	if (exp(a) <= 1e-245)
		tmp = exp(a) / 2.0;
	else
		tmp = 1.0 / (1.0 + exp(b));
	end
	tmp_2 = tmp;
end
code[a_, b_] := If[LessEqual[N[Exp[a], $MachinePrecision], 1e-245], N[(N[Exp[a], $MachinePrecision] / 2.0), $MachinePrecision], N[(1.0 / N[(1.0 + N[Exp[b], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;e^{a} \leq 10^{-245}:\\
\;\;\;\;\frac{e^{a}}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{1 + e^{b}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (exp.f64 a) < 9.9999999999999993e-246

    1. Initial program 98.5%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Add Preprocessing
    3. Taylor expanded in b around 0 99.5%

      \[\leadsto \color{blue}{\frac{e^{a}}{1 + e^{a}}} \]
    4. Taylor expanded in a around 0 98.8%

      \[\leadsto \frac{e^{a}}{\color{blue}{2}} \]

    if 9.9999999999999993e-246 < (exp.f64 a)

    1. Initial program 99.5%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity99.5%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/99.5%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/99.5%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg99.5%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg99.5%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub99.5%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity99.5%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/99.5%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in a around 0 97.5%

      \[\leadsto \frac{1}{\color{blue}{1 + e^{b}}} \]
    6. Step-by-step derivation
      1. +-commutative97.5%

        \[\leadsto \frac{1}{\color{blue}{e^{b} + 1}} \]
    7. Simplified97.5%

      \[\leadsto \frac{1}{\color{blue}{e^{b} + 1}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification97.8%

    \[\leadsto \begin{array}{l} \mathbf{if}\;e^{a} \leq 10^{-245}:\\ \;\;\;\;\frac{e^{a}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{1 + e^{b}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 4: 70.9% accurate, 2.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;b \leq 1.26 \cdot 10^{+168}:\\ \;\;\;\;\frac{e^{a}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{a \cdot \left(-1 + \left(\frac{b + 2}{a} - b\right)\right)}\\ \end{array} \end{array} \]
(FPCore (a b)
 :precision binary64
 (if (<= b 1.26e+168)
   (/ (exp a) 2.0)
   (/ 1.0 (* a (+ -1.0 (- (/ (+ b 2.0) a) b))))))
double code(double a, double b) {
	double tmp;
	if (b <= 1.26e+168) {
		tmp = exp(a) / 2.0;
	} else {
		tmp = 1.0 / (a * (-1.0 + (((b + 2.0) / a) - b)));
	}
	return tmp;
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    real(8) :: tmp
    if (b <= 1.26d+168) then
        tmp = exp(a) / 2.0d0
    else
        tmp = 1.0d0 / (a * ((-1.0d0) + (((b + 2.0d0) / a) - b)))
    end if
    code = tmp
end function
public static double code(double a, double b) {
	double tmp;
	if (b <= 1.26e+168) {
		tmp = Math.exp(a) / 2.0;
	} else {
		tmp = 1.0 / (a * (-1.0 + (((b + 2.0) / a) - b)));
	}
	return tmp;
}
def code(a, b):
	tmp = 0
	if b <= 1.26e+168:
		tmp = math.exp(a) / 2.0
	else:
		tmp = 1.0 / (a * (-1.0 + (((b + 2.0) / a) - b)))
	return tmp
function code(a, b)
	tmp = 0.0
	if (b <= 1.26e+168)
		tmp = Float64(exp(a) / 2.0);
	else
		tmp = Float64(1.0 / Float64(a * Float64(-1.0 + Float64(Float64(Float64(b + 2.0) / a) - b))));
	end
	return tmp
end
function tmp_2 = code(a, b)
	tmp = 0.0;
	if (b <= 1.26e+168)
		tmp = exp(a) / 2.0;
	else
		tmp = 1.0 / (a * (-1.0 + (((b + 2.0) / a) - b)));
	end
	tmp_2 = tmp;
end
code[a_, b_] := If[LessEqual[b, 1.26e+168], N[(N[Exp[a], $MachinePrecision] / 2.0), $MachinePrecision], N[(1.0 / N[(a * N[(-1.0 + N[(N[(N[(b + 2.0), $MachinePrecision] / a), $MachinePrecision] - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;b \leq 1.26 \cdot 10^{+168}:\\
\;\;\;\;\frac{e^{a}}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{a \cdot \left(-1 + \left(\frac{b + 2}{a} - b\right)\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if b < 1.26000000000000006e168

    1. Initial program 99.1%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Add Preprocessing
    3. Taylor expanded in b around 0 72.6%

      \[\leadsto \color{blue}{\frac{e^{a}}{1 + e^{a}}} \]
    4. Taylor expanded in a around 0 70.6%

      \[\leadsto \frac{e^{a}}{\color{blue}{2}} \]

    if 1.26000000000000006e168 < b

    1. Initial program 100.0%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity100.0%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/100.0%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg100.0%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg100.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub80.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity80.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/80.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 26.2%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified26.2%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 26.2%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + -1 \cdot \left(a \cdot \left(1 + b\right)\right)\right)}} \]
    9. Step-by-step derivation
      1. associate-+r+26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(2 + b\right) + -1 \cdot \left(a \cdot \left(1 + b\right)\right)}} \]
      2. +-commutative26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right)} + -1 \cdot \left(a \cdot \left(1 + b\right)\right)} \]
      3. mul-1-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a \cdot \left(1 + b\right)\right)}} \]
      4. distribute-rgt-neg-in26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{a \cdot \left(-\left(1 + b\right)\right)}} \]
      5. mul-1-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot \left(1 + b\right)\right)}} \]
      6. distribute-lft-in26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot 1 + -1 \cdot b\right)}} \]
      7. metadata-eval26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(\color{blue}{-1} + -1 \cdot b\right)} \]
      8. mul-1-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(-1 + \color{blue}{\left(-b\right)}\right)} \]
      9. unsub-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 - b\right)}} \]
    10. Simplified26.2%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right) + a \cdot \left(-1 - b\right)}} \]
    11. Taylor expanded in a around -inf 81.1%

      \[\leadsto \frac{1}{\color{blue}{-1 \cdot \left(a \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)\right)}} \]
    12. Step-by-step derivation
      1. associate-*r*81.1%

        \[\leadsto \frac{1}{\color{blue}{\left(-1 \cdot a\right) \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)}} \]
      2. neg-mul-181.1%

        \[\leadsto \frac{1}{\color{blue}{\left(-a\right)} \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)} \]
      3. mul-1-neg81.1%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \left(b + \color{blue}{\left(-\frac{2 + b}{a}\right)}\right)\right)} \]
      4. unsub-neg81.1%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \color{blue}{\left(b - \frac{2 + b}{a}\right)}\right)} \]
      5. +-commutative81.1%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \left(b - \frac{\color{blue}{b + 2}}{a}\right)\right)} \]
    13. Simplified81.1%

      \[\leadsto \frac{1}{\color{blue}{\left(-a\right) \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification72.0%

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \leq 1.26 \cdot 10^{+168}:\\ \;\;\;\;\frac{e^{a}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{a \cdot \left(-1 + \left(\frac{b + 2}{a} - b\right)\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 5: 100.0% accurate, 2.9× speedup?

\[\begin{array}{l} \\ \frac{1}{1 + e^{b - a}} \end{array} \]
(FPCore (a b) :precision binary64 (/ 1.0 (+ 1.0 (exp (- b a)))))
double code(double a, double b) {
	return 1.0 / (1.0 + exp((b - a)));
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    code = 1.0d0 / (1.0d0 + exp((b - a)))
end function
public static double code(double a, double b) {
	return 1.0 / (1.0 + Math.exp((b - a)));
}
def code(a, b):
	return 1.0 / (1.0 + math.exp((b - a)))
function code(a, b)
	return Float64(1.0 / Float64(1.0 + exp(Float64(b - a))))
end
function tmp = code(a, b)
	tmp = 1.0 / (1.0 + exp((b - a)));
end
code[a_, b_] := N[(1.0 / N[(1.0 + N[Exp[N[(b - a), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{1}{1 + e^{b - a}}
\end{array}
Derivation
  1. Initial program 99.2%

    \[\frac{e^{a}}{e^{a} + e^{b}} \]
  2. Step-by-step derivation
    1. *-lft-identity99.2%

      \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
    2. associate-*l/99.2%

      \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
    3. associate-/r/99.2%

      \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
    4. remove-double-neg99.2%

      \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
    5. unsub-neg99.2%

      \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
    6. div-sub74.6%

      \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
    7. *-lft-identity74.6%

      \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
    8. associate-*l/74.6%

      \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
    9. lft-mult-inverse99.6%

      \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
    10. sub-neg99.6%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
    11. distribute-frac-neg99.6%

      \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
    12. remove-double-neg99.6%

      \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
    13. div-exp99.9%

      \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
  3. Simplified99.9%

    \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
  4. Add Preprocessing
  5. Final simplification99.9%

    \[\leadsto \frac{1}{1 + e^{b - a}} \]
  6. Add Preprocessing

Alternative 6: 65.9% accurate, 7.3× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;b \leq -5.2 \cdot 10^{-192}:\\ \;\;\;\;\frac{1}{2 + a \cdot \left(-1 + a \cdot \left(0.5 + a \cdot -0.16666666666666666\right)\right)}\\ \mathbf{elif}\;b \leq 5 \cdot 10^{-239}:\\ \;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot \left(a + \frac{a}{b}\right)}\\ \mathbf{elif}\;b \leq 1.26 \cdot 10^{+168}:\\ \;\;\;\;\frac{1}{2 + \left(b + a \cdot \left(\left(-1 - b\right) + a \cdot \left(0.5 \cdot \left(1 + b\right) + -0.16666666666666666 \cdot \left(a \cdot \left(1 + b\right)\right)\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{a \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}\\ \end{array} \end{array} \]
(FPCore (a b)
 :precision binary64
 (if (<= b -5.2e-192)
   (/ 1.0 (+ 2.0 (* a (+ -1.0 (* a (+ 0.5 (* a -0.16666666666666666)))))))
   (if (<= b 5e-239)
     (/ 1.0 (- (+ b 2.0) (* b (+ a (/ a b)))))
     (if (<= b 1.26e+168)
       (/
        1.0
        (+
         2.0
         (+
          b
          (*
           a
           (+
            (- -1.0 b)
            (*
             a
             (+
              (* 0.5 (+ 1.0 b))
              (* -0.16666666666666666 (* a (+ 1.0 b))))))))))
       (/ -1.0 (* a (+ 1.0 (- b (/ (+ b 2.0) a)))))))))
double code(double a, double b) {
	double tmp;
	if (b <= -5.2e-192) {
		tmp = 1.0 / (2.0 + (a * (-1.0 + (a * (0.5 + (a * -0.16666666666666666))))));
	} else if (b <= 5e-239) {
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))));
	} else if (b <= 1.26e+168) {
		tmp = 1.0 / (2.0 + (b + (a * ((-1.0 - b) + (a * ((0.5 * (1.0 + b)) + (-0.16666666666666666 * (a * (1.0 + b)))))))));
	} else {
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))));
	}
	return tmp;
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    real(8) :: tmp
    if (b <= (-5.2d-192)) then
        tmp = 1.0d0 / (2.0d0 + (a * ((-1.0d0) + (a * (0.5d0 + (a * (-0.16666666666666666d0)))))))
    else if (b <= 5d-239) then
        tmp = 1.0d0 / ((b + 2.0d0) - (b * (a + (a / b))))
    else if (b <= 1.26d+168) then
        tmp = 1.0d0 / (2.0d0 + (b + (a * (((-1.0d0) - b) + (a * ((0.5d0 * (1.0d0 + b)) + ((-0.16666666666666666d0) * (a * (1.0d0 + b)))))))))
    else
        tmp = (-1.0d0) / (a * (1.0d0 + (b - ((b + 2.0d0) / a))))
    end if
    code = tmp
end function
public static double code(double a, double b) {
	double tmp;
	if (b <= -5.2e-192) {
		tmp = 1.0 / (2.0 + (a * (-1.0 + (a * (0.5 + (a * -0.16666666666666666))))));
	} else if (b <= 5e-239) {
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))));
	} else if (b <= 1.26e+168) {
		tmp = 1.0 / (2.0 + (b + (a * ((-1.0 - b) + (a * ((0.5 * (1.0 + b)) + (-0.16666666666666666 * (a * (1.0 + b)))))))));
	} else {
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))));
	}
	return tmp;
}
def code(a, b):
	tmp = 0
	if b <= -5.2e-192:
		tmp = 1.0 / (2.0 + (a * (-1.0 + (a * (0.5 + (a * -0.16666666666666666))))))
	elif b <= 5e-239:
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))))
	elif b <= 1.26e+168:
		tmp = 1.0 / (2.0 + (b + (a * ((-1.0 - b) + (a * ((0.5 * (1.0 + b)) + (-0.16666666666666666 * (a * (1.0 + b)))))))))
	else:
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))))
	return tmp
function code(a, b)
	tmp = 0.0
	if (b <= -5.2e-192)
		tmp = Float64(1.0 / Float64(2.0 + Float64(a * Float64(-1.0 + Float64(a * Float64(0.5 + Float64(a * -0.16666666666666666)))))));
	elseif (b <= 5e-239)
		tmp = Float64(1.0 / Float64(Float64(b + 2.0) - Float64(b * Float64(a + Float64(a / b)))));
	elseif (b <= 1.26e+168)
		tmp = Float64(1.0 / Float64(2.0 + Float64(b + Float64(a * Float64(Float64(-1.0 - b) + Float64(a * Float64(Float64(0.5 * Float64(1.0 + b)) + Float64(-0.16666666666666666 * Float64(a * Float64(1.0 + b))))))))));
	else
		tmp = Float64(-1.0 / Float64(a * Float64(1.0 + Float64(b - Float64(Float64(b + 2.0) / a)))));
	end
	return tmp
end
function tmp_2 = code(a, b)
	tmp = 0.0;
	if (b <= -5.2e-192)
		tmp = 1.0 / (2.0 + (a * (-1.0 + (a * (0.5 + (a * -0.16666666666666666))))));
	elseif (b <= 5e-239)
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))));
	elseif (b <= 1.26e+168)
		tmp = 1.0 / (2.0 + (b + (a * ((-1.0 - b) + (a * ((0.5 * (1.0 + b)) + (-0.16666666666666666 * (a * (1.0 + b)))))))));
	else
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))));
	end
	tmp_2 = tmp;
end
code[a_, b_] := If[LessEqual[b, -5.2e-192], N[(1.0 / N[(2.0 + N[(a * N[(-1.0 + N[(a * N[(0.5 + N[(a * -0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 5e-239], N[(1.0 / N[(N[(b + 2.0), $MachinePrecision] - N[(b * N[(a + N[(a / b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 1.26e+168], N[(1.0 / N[(2.0 + N[(b + N[(a * N[(N[(-1.0 - b), $MachinePrecision] + N[(a * N[(N[(0.5 * N[(1.0 + b), $MachinePrecision]), $MachinePrecision] + N[(-0.16666666666666666 * N[(a * N[(1.0 + b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(-1.0 / N[(a * N[(1.0 + N[(b - N[(N[(b + 2.0), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;b \leq -5.2 \cdot 10^{-192}:\\
\;\;\;\;\frac{1}{2 + a \cdot \left(-1 + a \cdot \left(0.5 + a \cdot -0.16666666666666666\right)\right)}\\

\mathbf{elif}\;b \leq 5 \cdot 10^{-239}:\\
\;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot \left(a + \frac{a}{b}\right)}\\

\mathbf{elif}\;b \leq 1.26 \cdot 10^{+168}:\\
\;\;\;\;\frac{1}{2 + \left(b + a \cdot \left(\left(-1 - b\right) + a \cdot \left(0.5 \cdot \left(1 + b\right) + -0.16666666666666666 \cdot \left(a \cdot \left(1 + b\right)\right)\right)\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;\frac{-1}{a \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if b < -5.2000000000000003e-192

    1. Initial program 98.7%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity98.7%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/98.7%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/98.7%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg98.7%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg98.7%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub82.1%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity82.1%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/82.1%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse98.7%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg98.7%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg98.7%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg98.7%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 54.9%

      \[\leadsto \frac{1}{\color{blue}{1 + e^{-a}}} \]
    6. Step-by-step derivation
      1. +-commutative54.9%

        \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    7. Simplified54.9%

      \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 47.6%

      \[\leadsto \frac{1}{\color{blue}{2 + a \cdot \left(a \cdot \left(0.5 + -0.16666666666666666 \cdot a\right) - 1\right)}} \]

    if -5.2000000000000003e-192 < b < 5e-239

    1. Initial program 100.0%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity100.0%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/100.0%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg100.0%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg100.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub59.2%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity59.2%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/59.2%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 77.6%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative77.6%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in100.0%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified100.0%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 59.8%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + -1 \cdot \left(a \cdot \left(1 + b\right)\right)\right)}} \]
    9. Step-by-step derivation
      1. associate-+r+59.8%

        \[\leadsto \frac{1}{\color{blue}{\left(2 + b\right) + -1 \cdot \left(a \cdot \left(1 + b\right)\right)}} \]
      2. +-commutative59.8%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right)} + -1 \cdot \left(a \cdot \left(1 + b\right)\right)} \]
      3. mul-1-neg59.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a \cdot \left(1 + b\right)\right)}} \]
      4. distribute-rgt-neg-in59.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{a \cdot \left(-\left(1 + b\right)\right)}} \]
      5. mul-1-neg59.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot \left(1 + b\right)\right)}} \]
      6. distribute-lft-in59.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot 1 + -1 \cdot b\right)}} \]
      7. metadata-eval59.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(\color{blue}{-1} + -1 \cdot b\right)} \]
      8. mul-1-neg59.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(-1 + \color{blue}{\left(-b\right)}\right)} \]
      9. unsub-neg59.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 - b\right)}} \]
    10. Simplified59.8%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right) + a \cdot \left(-1 - b\right)}} \]
    11. Taylor expanded in b around inf 96.4%

      \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{b \cdot \left(-1 \cdot a + -1 \cdot \frac{a}{b}\right)}} \]
    12. Step-by-step derivation
      1. mul-1-neg96.4%

        \[\leadsto \frac{1}{\left(b + 2\right) + b \cdot \left(-1 \cdot a + \color{blue}{\left(-\frac{a}{b}\right)}\right)} \]
      2. unsub-neg96.4%

        \[\leadsto \frac{1}{\left(b + 2\right) + b \cdot \color{blue}{\left(-1 \cdot a - \frac{a}{b}\right)}} \]
      3. neg-mul-196.4%

        \[\leadsto \frac{1}{\left(b + 2\right) + b \cdot \left(\color{blue}{\left(-a\right)} - \frac{a}{b}\right)} \]
    13. Simplified96.4%

      \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{b \cdot \left(\left(-a\right) - \frac{a}{b}\right)}} \]

    if 5e-239 < b < 1.26000000000000006e168

    1. Initial program 98.9%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity98.9%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/98.9%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/98.9%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg98.9%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg98.9%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub74.5%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity74.5%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/74.5%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp99.8%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified99.8%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 75.1%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative75.1%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in75.1%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified75.1%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 66.3%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + a \cdot \left(-1 \cdot \left(1 + b\right) + a \cdot \left(-0.16666666666666666 \cdot \left(a \cdot \left(1 + b\right)\right) + 0.5 \cdot \left(1 + b\right)\right)\right)\right)}} \]

    if 1.26000000000000006e168 < b

    1. Initial program 100.0%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity100.0%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/100.0%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg100.0%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg100.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub80.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity80.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/80.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 26.2%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified26.2%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 26.2%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + -1 \cdot \left(a \cdot \left(1 + b\right)\right)\right)}} \]
    9. Step-by-step derivation
      1. associate-+r+26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(2 + b\right) + -1 \cdot \left(a \cdot \left(1 + b\right)\right)}} \]
      2. +-commutative26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right)} + -1 \cdot \left(a \cdot \left(1 + b\right)\right)} \]
      3. mul-1-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a \cdot \left(1 + b\right)\right)}} \]
      4. distribute-rgt-neg-in26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{a \cdot \left(-\left(1 + b\right)\right)}} \]
      5. mul-1-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot \left(1 + b\right)\right)}} \]
      6. distribute-lft-in26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot 1 + -1 \cdot b\right)}} \]
      7. metadata-eval26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(\color{blue}{-1} + -1 \cdot b\right)} \]
      8. mul-1-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(-1 + \color{blue}{\left(-b\right)}\right)} \]
      9. unsub-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 - b\right)}} \]
    10. Simplified26.2%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right) + a \cdot \left(-1 - b\right)}} \]
    11. Taylor expanded in a around -inf 81.1%

      \[\leadsto \frac{1}{\color{blue}{-1 \cdot \left(a \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)\right)}} \]
    12. Step-by-step derivation
      1. associate-*r*81.1%

        \[\leadsto \frac{1}{\color{blue}{\left(-1 \cdot a\right) \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)}} \]
      2. neg-mul-181.1%

        \[\leadsto \frac{1}{\color{blue}{\left(-a\right)} \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)} \]
      3. mul-1-neg81.1%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \left(b + \color{blue}{\left(-\frac{2 + b}{a}\right)}\right)\right)} \]
      4. unsub-neg81.1%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \color{blue}{\left(b - \frac{2 + b}{a}\right)}\right)} \]
      5. +-commutative81.1%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \left(b - \frac{\color{blue}{b + 2}}{a}\right)\right)} \]
    13. Simplified81.1%

      \[\leadsto \frac{1}{\color{blue}{\left(-a\right) \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification68.4%

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \leq -5.2 \cdot 10^{-192}:\\ \;\;\;\;\frac{1}{2 + a \cdot \left(-1 + a \cdot \left(0.5 + a \cdot -0.16666666666666666\right)\right)}\\ \mathbf{elif}\;b \leq 5 \cdot 10^{-239}:\\ \;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot \left(a + \frac{a}{b}\right)}\\ \mathbf{elif}\;b \leq 1.26 \cdot 10^{+168}:\\ \;\;\;\;\frac{1}{2 + \left(b + a \cdot \left(\left(-1 - b\right) + a \cdot \left(0.5 \cdot \left(1 + b\right) + -0.16666666666666666 \cdot \left(a \cdot \left(1 + b\right)\right)\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{a \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 7: 66.2% accurate, 7.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;b \leq -1.15:\\ \;\;\;\;\frac{1}{2 + a \cdot \left(a \cdot 0.5 + -1\right)}\\ \mathbf{elif}\;b \leq 1.26 \cdot 10^{+168}:\\ \;\;\;\;\frac{1}{2 + \left(b + a \cdot \left(\left(-1 - b\right) + a \cdot \left(b \cdot \left(-0.16666666666666666 \cdot \left(a + \frac{a}{b}\right)\right) + 0.5 \cdot \left(1 + b\right)\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{a \cdot \left(-1 + \left(\frac{b + 2}{a} - b\right)\right)}\\ \end{array} \end{array} \]
(FPCore (a b)
 :precision binary64
 (if (<= b -1.15)
   (/ 1.0 (+ 2.0 (* a (+ (* a 0.5) -1.0))))
   (if (<= b 1.26e+168)
     (/
      1.0
      (+
       2.0
       (+
        b
        (*
         a
         (+
          (- -1.0 b)
          (*
           a
           (+
            (* b (* -0.16666666666666666 (+ a (/ a b))))
            (* 0.5 (+ 1.0 b)))))))))
     (/ 1.0 (* a (+ -1.0 (- (/ (+ b 2.0) a) b)))))))
double code(double a, double b) {
	double tmp;
	if (b <= -1.15) {
		tmp = 1.0 / (2.0 + (a * ((a * 0.5) + -1.0)));
	} else if (b <= 1.26e+168) {
		tmp = 1.0 / (2.0 + (b + (a * ((-1.0 - b) + (a * ((b * (-0.16666666666666666 * (a + (a / b)))) + (0.5 * (1.0 + b))))))));
	} else {
		tmp = 1.0 / (a * (-1.0 + (((b + 2.0) / a) - b)));
	}
	return tmp;
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    real(8) :: tmp
    if (b <= (-1.15d0)) then
        tmp = 1.0d0 / (2.0d0 + (a * ((a * 0.5d0) + (-1.0d0))))
    else if (b <= 1.26d+168) then
        tmp = 1.0d0 / (2.0d0 + (b + (a * (((-1.0d0) - b) + (a * ((b * ((-0.16666666666666666d0) * (a + (a / b)))) + (0.5d0 * (1.0d0 + b))))))))
    else
        tmp = 1.0d0 / (a * ((-1.0d0) + (((b + 2.0d0) / a) - b)))
    end if
    code = tmp
end function
public static double code(double a, double b) {
	double tmp;
	if (b <= -1.15) {
		tmp = 1.0 / (2.0 + (a * ((a * 0.5) + -1.0)));
	} else if (b <= 1.26e+168) {
		tmp = 1.0 / (2.0 + (b + (a * ((-1.0 - b) + (a * ((b * (-0.16666666666666666 * (a + (a / b)))) + (0.5 * (1.0 + b))))))));
	} else {
		tmp = 1.0 / (a * (-1.0 + (((b + 2.0) / a) - b)));
	}
	return tmp;
}
def code(a, b):
	tmp = 0
	if b <= -1.15:
		tmp = 1.0 / (2.0 + (a * ((a * 0.5) + -1.0)))
	elif b <= 1.26e+168:
		tmp = 1.0 / (2.0 + (b + (a * ((-1.0 - b) + (a * ((b * (-0.16666666666666666 * (a + (a / b)))) + (0.5 * (1.0 + b))))))))
	else:
		tmp = 1.0 / (a * (-1.0 + (((b + 2.0) / a) - b)))
	return tmp
function code(a, b)
	tmp = 0.0
	if (b <= -1.15)
		tmp = Float64(1.0 / Float64(2.0 + Float64(a * Float64(Float64(a * 0.5) + -1.0))));
	elseif (b <= 1.26e+168)
		tmp = Float64(1.0 / Float64(2.0 + Float64(b + Float64(a * Float64(Float64(-1.0 - b) + Float64(a * Float64(Float64(b * Float64(-0.16666666666666666 * Float64(a + Float64(a / b)))) + Float64(0.5 * Float64(1.0 + b)))))))));
	else
		tmp = Float64(1.0 / Float64(a * Float64(-1.0 + Float64(Float64(Float64(b + 2.0) / a) - b))));
	end
	return tmp
end
function tmp_2 = code(a, b)
	tmp = 0.0;
	if (b <= -1.15)
		tmp = 1.0 / (2.0 + (a * ((a * 0.5) + -1.0)));
	elseif (b <= 1.26e+168)
		tmp = 1.0 / (2.0 + (b + (a * ((-1.0 - b) + (a * ((b * (-0.16666666666666666 * (a + (a / b)))) + (0.5 * (1.0 + b))))))));
	else
		tmp = 1.0 / (a * (-1.0 + (((b + 2.0) / a) - b)));
	end
	tmp_2 = tmp;
end
code[a_, b_] := If[LessEqual[b, -1.15], N[(1.0 / N[(2.0 + N[(a * N[(N[(a * 0.5), $MachinePrecision] + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 1.26e+168], N[(1.0 / N[(2.0 + N[(b + N[(a * N[(N[(-1.0 - b), $MachinePrecision] + N[(a * N[(N[(b * N[(-0.16666666666666666 * N[(a + N[(a / b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(0.5 * N[(1.0 + b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(1.0 / N[(a * N[(-1.0 + N[(N[(N[(b + 2.0), $MachinePrecision] / a), $MachinePrecision] - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;b \leq -1.15:\\
\;\;\;\;\frac{1}{2 + a \cdot \left(a \cdot 0.5 + -1\right)}\\

\mathbf{elif}\;b \leq 1.26 \cdot 10^{+168}:\\
\;\;\;\;\frac{1}{2 + \left(b + a \cdot \left(\left(-1 - b\right) + a \cdot \left(b \cdot \left(-0.16666666666666666 \cdot \left(a + \frac{a}{b}\right)\right) + 0.5 \cdot \left(1 + b\right)\right)\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{a \cdot \left(-1 + \left(\frac{b + 2}{a} - b\right)\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if b < -1.1499999999999999

    1. Initial program 97.7%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity97.7%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/97.7%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/97.7%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg97.7%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg97.7%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub97.7%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity97.7%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/97.7%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse97.7%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg97.7%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg97.7%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg97.7%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 20.6%

      \[\leadsto \frac{1}{\color{blue}{1 + e^{-a}}} \]
    6. Step-by-step derivation
      1. +-commutative20.6%

        \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    7. Simplified20.6%

      \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 20.6%

      \[\leadsto \frac{1}{\color{blue}{2 + a \cdot \left(0.5 \cdot a - 1\right)}} \]

    if -1.1499999999999999 < b < 1.26000000000000006e168

    1. Initial program 99.4%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity99.4%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/99.4%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/99.4%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg99.4%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg99.4%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub68.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity68.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/68.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp99.9%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified99.9%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 73.1%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative73.1%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in86.6%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified86.6%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 74.0%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + a \cdot \left(-1 \cdot \left(1 + b\right) + a \cdot \left(-0.16666666666666666 \cdot \left(a \cdot \left(1 + b\right)\right) + 0.5 \cdot \left(1 + b\right)\right)\right)\right)}} \]
    9. Taylor expanded in b around inf 78.2%

      \[\leadsto \frac{1}{2 + \left(b + a \cdot \left(-1 \cdot \left(1 + b\right) + a \cdot \left(\color{blue}{b \cdot \left(-0.16666666666666666 \cdot a + -0.16666666666666666 \cdot \frac{a}{b}\right)} + 0.5 \cdot \left(1 + b\right)\right)\right)\right)} \]
    10. Step-by-step derivation
      1. distribute-lft-out78.2%

        \[\leadsto \frac{1}{2 + \left(b + a \cdot \left(-1 \cdot \left(1 + b\right) + a \cdot \left(b \cdot \color{blue}{\left(-0.16666666666666666 \cdot \left(a + \frac{a}{b}\right)\right)} + 0.5 \cdot \left(1 + b\right)\right)\right)\right)} \]
    11. Simplified78.2%

      \[\leadsto \frac{1}{2 + \left(b + a \cdot \left(-1 \cdot \left(1 + b\right) + a \cdot \left(\color{blue}{b \cdot \left(-0.16666666666666666 \cdot \left(a + \frac{a}{b}\right)\right)} + 0.5 \cdot \left(1 + b\right)\right)\right)\right)} \]

    if 1.26000000000000006e168 < b

    1. Initial program 100.0%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity100.0%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/100.0%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg100.0%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg100.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub80.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity80.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/80.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 26.2%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified26.2%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 26.2%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + -1 \cdot \left(a \cdot \left(1 + b\right)\right)\right)}} \]
    9. Step-by-step derivation
      1. associate-+r+26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(2 + b\right) + -1 \cdot \left(a \cdot \left(1 + b\right)\right)}} \]
      2. +-commutative26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right)} + -1 \cdot \left(a \cdot \left(1 + b\right)\right)} \]
      3. mul-1-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a \cdot \left(1 + b\right)\right)}} \]
      4. distribute-rgt-neg-in26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{a \cdot \left(-\left(1 + b\right)\right)}} \]
      5. mul-1-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot \left(1 + b\right)\right)}} \]
      6. distribute-lft-in26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot 1 + -1 \cdot b\right)}} \]
      7. metadata-eval26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(\color{blue}{-1} + -1 \cdot b\right)} \]
      8. mul-1-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(-1 + \color{blue}{\left(-b\right)}\right)} \]
      9. unsub-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 - b\right)}} \]
    10. Simplified26.2%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right) + a \cdot \left(-1 - b\right)}} \]
    11. Taylor expanded in a around -inf 81.1%

      \[\leadsto \frac{1}{\color{blue}{-1 \cdot \left(a \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)\right)}} \]
    12. Step-by-step derivation
      1. associate-*r*81.1%

        \[\leadsto \frac{1}{\color{blue}{\left(-1 \cdot a\right) \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)}} \]
      2. neg-mul-181.1%

        \[\leadsto \frac{1}{\color{blue}{\left(-a\right)} \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)} \]
      3. mul-1-neg81.1%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \left(b + \color{blue}{\left(-\frac{2 + b}{a}\right)}\right)\right)} \]
      4. unsub-neg81.1%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \color{blue}{\left(b - \frac{2 + b}{a}\right)}\right)} \]
      5. +-commutative81.1%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \left(b - \frac{\color{blue}{b + 2}}{a}\right)\right)} \]
    13. Simplified81.1%

      \[\leadsto \frac{1}{\color{blue}{\left(-a\right) \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification68.9%

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \leq -1.15:\\ \;\;\;\;\frac{1}{2 + a \cdot \left(a \cdot 0.5 + -1\right)}\\ \mathbf{elif}\;b \leq 1.26 \cdot 10^{+168}:\\ \;\;\;\;\frac{1}{2 + \left(b + a \cdot \left(\left(-1 - b\right) + a \cdot \left(b \cdot \left(-0.16666666666666666 \cdot \left(a + \frac{a}{b}\right)\right) + 0.5 \cdot \left(1 + b\right)\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{a \cdot \left(-1 + \left(\frac{b + 2}{a} - b\right)\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 8: 65.0% accurate, 9.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := -1 + a \cdot \left(0.5 + a \cdot -0.16666666666666666\right)\\ \mathbf{if}\;b \leq -1 \cdot 10^{-191}:\\ \;\;\;\;\frac{1}{2 + a \cdot t\_0}\\ \mathbf{elif}\;b \leq 7.5 \cdot 10^{-79}:\\ \;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot \left(a + \frac{a}{b}\right)}\\ \mathbf{elif}\;b \leq 1.26 \cdot 10^{+168}:\\ \;\;\;\;\frac{1}{2 + \left(b + a \cdot \left(b \cdot t\_0\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{a \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}\\ \end{array} \end{array} \]
(FPCore (a b)
 :precision binary64
 (let* ((t_0 (+ -1.0 (* a (+ 0.5 (* a -0.16666666666666666))))))
   (if (<= b -1e-191)
     (/ 1.0 (+ 2.0 (* a t_0)))
     (if (<= b 7.5e-79)
       (/ 1.0 (- (+ b 2.0) (* b (+ a (/ a b)))))
       (if (<= b 1.26e+168)
         (/ 1.0 (+ 2.0 (+ b (* a (* b t_0)))))
         (/ -1.0 (* a (+ 1.0 (- b (/ (+ b 2.0) a))))))))))
double code(double a, double b) {
	double t_0 = -1.0 + (a * (0.5 + (a * -0.16666666666666666)));
	double tmp;
	if (b <= -1e-191) {
		tmp = 1.0 / (2.0 + (a * t_0));
	} else if (b <= 7.5e-79) {
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))));
	} else if (b <= 1.26e+168) {
		tmp = 1.0 / (2.0 + (b + (a * (b * t_0))));
	} else {
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))));
	}
	return tmp;
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    real(8) :: t_0
    real(8) :: tmp
    t_0 = (-1.0d0) + (a * (0.5d0 + (a * (-0.16666666666666666d0))))
    if (b <= (-1d-191)) then
        tmp = 1.0d0 / (2.0d0 + (a * t_0))
    else if (b <= 7.5d-79) then
        tmp = 1.0d0 / ((b + 2.0d0) - (b * (a + (a / b))))
    else if (b <= 1.26d+168) then
        tmp = 1.0d0 / (2.0d0 + (b + (a * (b * t_0))))
    else
        tmp = (-1.0d0) / (a * (1.0d0 + (b - ((b + 2.0d0) / a))))
    end if
    code = tmp
end function
public static double code(double a, double b) {
	double t_0 = -1.0 + (a * (0.5 + (a * -0.16666666666666666)));
	double tmp;
	if (b <= -1e-191) {
		tmp = 1.0 / (2.0 + (a * t_0));
	} else if (b <= 7.5e-79) {
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))));
	} else if (b <= 1.26e+168) {
		tmp = 1.0 / (2.0 + (b + (a * (b * t_0))));
	} else {
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))));
	}
	return tmp;
}
def code(a, b):
	t_0 = -1.0 + (a * (0.5 + (a * -0.16666666666666666)))
	tmp = 0
	if b <= -1e-191:
		tmp = 1.0 / (2.0 + (a * t_0))
	elif b <= 7.5e-79:
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))))
	elif b <= 1.26e+168:
		tmp = 1.0 / (2.0 + (b + (a * (b * t_0))))
	else:
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))))
	return tmp
function code(a, b)
	t_0 = Float64(-1.0 + Float64(a * Float64(0.5 + Float64(a * -0.16666666666666666))))
	tmp = 0.0
	if (b <= -1e-191)
		tmp = Float64(1.0 / Float64(2.0 + Float64(a * t_0)));
	elseif (b <= 7.5e-79)
		tmp = Float64(1.0 / Float64(Float64(b + 2.0) - Float64(b * Float64(a + Float64(a / b)))));
	elseif (b <= 1.26e+168)
		tmp = Float64(1.0 / Float64(2.0 + Float64(b + Float64(a * Float64(b * t_0)))));
	else
		tmp = Float64(-1.0 / Float64(a * Float64(1.0 + Float64(b - Float64(Float64(b + 2.0) / a)))));
	end
	return tmp
end
function tmp_2 = code(a, b)
	t_0 = -1.0 + (a * (0.5 + (a * -0.16666666666666666)));
	tmp = 0.0;
	if (b <= -1e-191)
		tmp = 1.0 / (2.0 + (a * t_0));
	elseif (b <= 7.5e-79)
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))));
	elseif (b <= 1.26e+168)
		tmp = 1.0 / (2.0 + (b + (a * (b * t_0))));
	else
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))));
	end
	tmp_2 = tmp;
end
code[a_, b_] := Block[{t$95$0 = N[(-1.0 + N[(a * N[(0.5 + N[(a * -0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -1e-191], N[(1.0 / N[(2.0 + N[(a * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 7.5e-79], N[(1.0 / N[(N[(b + 2.0), $MachinePrecision] - N[(b * N[(a + N[(a / b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 1.26e+168], N[(1.0 / N[(2.0 + N[(b + N[(a * N[(b * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(-1.0 / N[(a * N[(1.0 + N[(b - N[(N[(b + 2.0), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := -1 + a \cdot \left(0.5 + a \cdot -0.16666666666666666\right)\\
\mathbf{if}\;b \leq -1 \cdot 10^{-191}:\\
\;\;\;\;\frac{1}{2 + a \cdot t\_0}\\

\mathbf{elif}\;b \leq 7.5 \cdot 10^{-79}:\\
\;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot \left(a + \frac{a}{b}\right)}\\

\mathbf{elif}\;b \leq 1.26 \cdot 10^{+168}:\\
\;\;\;\;\frac{1}{2 + \left(b + a \cdot \left(b \cdot t\_0\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;\frac{-1}{a \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if b < -1e-191

    1. Initial program 98.7%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity98.7%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/98.7%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/98.7%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg98.7%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg98.7%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub82.1%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity82.1%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/82.1%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse98.7%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg98.7%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg98.7%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg98.7%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 54.9%

      \[\leadsto \frac{1}{\color{blue}{1 + e^{-a}}} \]
    6. Step-by-step derivation
      1. +-commutative54.9%

        \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    7. Simplified54.9%

      \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 47.6%

      \[\leadsto \frac{1}{\color{blue}{2 + a \cdot \left(a \cdot \left(0.5 + -0.16666666666666666 \cdot a\right) - 1\right)}} \]

    if -1e-191 < b < 7.49999999999999969e-79

    1. Initial program 100.0%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity100.0%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/100.0%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/99.9%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg99.9%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg99.9%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub66.3%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity66.3%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/66.3%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 87.6%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative87.6%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in100.0%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified100.0%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 65.8%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + -1 \cdot \left(a \cdot \left(1 + b\right)\right)\right)}} \]
    9. Step-by-step derivation
      1. associate-+r+65.8%

        \[\leadsto \frac{1}{\color{blue}{\left(2 + b\right) + -1 \cdot \left(a \cdot \left(1 + b\right)\right)}} \]
      2. +-commutative65.8%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right)} + -1 \cdot \left(a \cdot \left(1 + b\right)\right)} \]
      3. mul-1-neg65.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a \cdot \left(1 + b\right)\right)}} \]
      4. distribute-rgt-neg-in65.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{a \cdot \left(-\left(1 + b\right)\right)}} \]
      5. mul-1-neg65.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot \left(1 + b\right)\right)}} \]
      6. distribute-lft-in65.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot 1 + -1 \cdot b\right)}} \]
      7. metadata-eval65.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(\color{blue}{-1} + -1 \cdot b\right)} \]
      8. mul-1-neg65.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(-1 + \color{blue}{\left(-b\right)}\right)} \]
      9. unsub-neg65.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 - b\right)}} \]
    10. Simplified65.8%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right) + a \cdot \left(-1 - b\right)}} \]
    11. Taylor expanded in b around inf 93.2%

      \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{b \cdot \left(-1 \cdot a + -1 \cdot \frac{a}{b}\right)}} \]
    12. Step-by-step derivation
      1. mul-1-neg93.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + b \cdot \left(-1 \cdot a + \color{blue}{\left(-\frac{a}{b}\right)}\right)} \]
      2. unsub-neg93.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + b \cdot \color{blue}{\left(-1 \cdot a - \frac{a}{b}\right)}} \]
      3. neg-mul-193.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + b \cdot \left(\color{blue}{\left(-a\right)} - \frac{a}{b}\right)} \]
    13. Simplified93.2%

      \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{b \cdot \left(\left(-a\right) - \frac{a}{b}\right)}} \]

    if 7.49999999999999969e-79 < b < 1.26000000000000006e168

    1. Initial program 98.1%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity98.1%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/98.1%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/98.1%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg98.1%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg98.1%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub74.1%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity74.1%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/74.1%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp99.8%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified99.8%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 56.7%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative56.7%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in56.7%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified56.7%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 47.9%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + a \cdot \left(-1 \cdot \left(1 + b\right) + a \cdot \left(-0.16666666666666666 \cdot \left(a \cdot \left(1 + b\right)\right) + 0.5 \cdot \left(1 + b\right)\right)\right)\right)}} \]
    9. Taylor expanded in b around inf 47.8%

      \[\leadsto \frac{1}{2 + \left(b + \color{blue}{a \cdot \left(b \cdot \left(a \cdot \left(0.5 + -0.16666666666666666 \cdot a\right) - 1\right)\right)}\right)} \]

    if 1.26000000000000006e168 < b

    1. Initial program 100.0%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity100.0%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/100.0%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg100.0%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg100.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub80.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity80.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/80.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 26.2%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified26.2%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 26.2%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + -1 \cdot \left(a \cdot \left(1 + b\right)\right)\right)}} \]
    9. Step-by-step derivation
      1. associate-+r+26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(2 + b\right) + -1 \cdot \left(a \cdot \left(1 + b\right)\right)}} \]
      2. +-commutative26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right)} + -1 \cdot \left(a \cdot \left(1 + b\right)\right)} \]
      3. mul-1-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a \cdot \left(1 + b\right)\right)}} \]
      4. distribute-rgt-neg-in26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{a \cdot \left(-\left(1 + b\right)\right)}} \]
      5. mul-1-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot \left(1 + b\right)\right)}} \]
      6. distribute-lft-in26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot 1 + -1 \cdot b\right)}} \]
      7. metadata-eval26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(\color{blue}{-1} + -1 \cdot b\right)} \]
      8. mul-1-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(-1 + \color{blue}{\left(-b\right)}\right)} \]
      9. unsub-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 - b\right)}} \]
    10. Simplified26.2%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right) + a \cdot \left(-1 - b\right)}} \]
    11. Taylor expanded in a around -inf 81.1%

      \[\leadsto \frac{1}{\color{blue}{-1 \cdot \left(a \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)\right)}} \]
    12. Step-by-step derivation
      1. associate-*r*81.1%

        \[\leadsto \frac{1}{\color{blue}{\left(-1 \cdot a\right) \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)}} \]
      2. neg-mul-181.1%

        \[\leadsto \frac{1}{\color{blue}{\left(-a\right)} \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)} \]
      3. mul-1-neg81.1%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \left(b + \color{blue}{\left(-\frac{2 + b}{a}\right)}\right)\right)} \]
      4. unsub-neg81.1%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \color{blue}{\left(b - \frac{2 + b}{a}\right)}\right)} \]
      5. +-commutative81.1%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \left(b - \frac{\color{blue}{b + 2}}{a}\right)\right)} \]
    13. Simplified81.1%

      \[\leadsto \frac{1}{\color{blue}{\left(-a\right) \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification68.1%

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \leq -1 \cdot 10^{-191}:\\ \;\;\;\;\frac{1}{2 + a \cdot \left(-1 + a \cdot \left(0.5 + a \cdot -0.16666666666666666\right)\right)}\\ \mathbf{elif}\;b \leq 7.5 \cdot 10^{-79}:\\ \;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot \left(a + \frac{a}{b}\right)}\\ \mathbf{elif}\;b \leq 1.26 \cdot 10^{+168}:\\ \;\;\;\;\frac{1}{2 + \left(b + a \cdot \left(b \cdot \left(-1 + a \cdot \left(0.5 + a \cdot -0.16666666666666666\right)\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{a \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 9: 64.0% accurate, 9.5× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := a \cdot \left(-1 + a \cdot \left(0.5 + a \cdot -0.16666666666666666\right)\right)\\ \mathbf{if}\;b \leq -5.2 \cdot 10^{-192}:\\ \;\;\;\;\frac{1}{2 + t\_0}\\ \mathbf{elif}\;b \leq 6.4 \cdot 10^{-9}:\\ \;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot \left(a + \frac{a}{b}\right)}\\ \mathbf{elif}\;b \leq 1.26 \cdot 10^{+168}:\\ \;\;\;\;\frac{1}{b \cdot \left(1 + t\_0\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{a \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}\\ \end{array} \end{array} \]
(FPCore (a b)
 :precision binary64
 (let* ((t_0 (* a (+ -1.0 (* a (+ 0.5 (* a -0.16666666666666666)))))))
   (if (<= b -5.2e-192)
     (/ 1.0 (+ 2.0 t_0))
     (if (<= b 6.4e-9)
       (/ 1.0 (- (+ b 2.0) (* b (+ a (/ a b)))))
       (if (<= b 1.26e+168)
         (/ 1.0 (* b (+ 1.0 t_0)))
         (/ -1.0 (* a (+ 1.0 (- b (/ (+ b 2.0) a))))))))))
double code(double a, double b) {
	double t_0 = a * (-1.0 + (a * (0.5 + (a * -0.16666666666666666))));
	double tmp;
	if (b <= -5.2e-192) {
		tmp = 1.0 / (2.0 + t_0);
	} else if (b <= 6.4e-9) {
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))));
	} else if (b <= 1.26e+168) {
		tmp = 1.0 / (b * (1.0 + t_0));
	} else {
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))));
	}
	return tmp;
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    real(8) :: t_0
    real(8) :: tmp
    t_0 = a * ((-1.0d0) + (a * (0.5d0 + (a * (-0.16666666666666666d0)))))
    if (b <= (-5.2d-192)) then
        tmp = 1.0d0 / (2.0d0 + t_0)
    else if (b <= 6.4d-9) then
        tmp = 1.0d0 / ((b + 2.0d0) - (b * (a + (a / b))))
    else if (b <= 1.26d+168) then
        tmp = 1.0d0 / (b * (1.0d0 + t_0))
    else
        tmp = (-1.0d0) / (a * (1.0d0 + (b - ((b + 2.0d0) / a))))
    end if
    code = tmp
end function
public static double code(double a, double b) {
	double t_0 = a * (-1.0 + (a * (0.5 + (a * -0.16666666666666666))));
	double tmp;
	if (b <= -5.2e-192) {
		tmp = 1.0 / (2.0 + t_0);
	} else if (b <= 6.4e-9) {
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))));
	} else if (b <= 1.26e+168) {
		tmp = 1.0 / (b * (1.0 + t_0));
	} else {
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))));
	}
	return tmp;
}
def code(a, b):
	t_0 = a * (-1.0 + (a * (0.5 + (a * -0.16666666666666666))))
	tmp = 0
	if b <= -5.2e-192:
		tmp = 1.0 / (2.0 + t_0)
	elif b <= 6.4e-9:
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))))
	elif b <= 1.26e+168:
		tmp = 1.0 / (b * (1.0 + t_0))
	else:
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))))
	return tmp
function code(a, b)
	t_0 = Float64(a * Float64(-1.0 + Float64(a * Float64(0.5 + Float64(a * -0.16666666666666666)))))
	tmp = 0.0
	if (b <= -5.2e-192)
		tmp = Float64(1.0 / Float64(2.0 + t_0));
	elseif (b <= 6.4e-9)
		tmp = Float64(1.0 / Float64(Float64(b + 2.0) - Float64(b * Float64(a + Float64(a / b)))));
	elseif (b <= 1.26e+168)
		tmp = Float64(1.0 / Float64(b * Float64(1.0 + t_0)));
	else
		tmp = Float64(-1.0 / Float64(a * Float64(1.0 + Float64(b - Float64(Float64(b + 2.0) / a)))));
	end
	return tmp
end
function tmp_2 = code(a, b)
	t_0 = a * (-1.0 + (a * (0.5 + (a * -0.16666666666666666))));
	tmp = 0.0;
	if (b <= -5.2e-192)
		tmp = 1.0 / (2.0 + t_0);
	elseif (b <= 6.4e-9)
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))));
	elseif (b <= 1.26e+168)
		tmp = 1.0 / (b * (1.0 + t_0));
	else
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))));
	end
	tmp_2 = tmp;
end
code[a_, b_] := Block[{t$95$0 = N[(a * N[(-1.0 + N[(a * N[(0.5 + N[(a * -0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -5.2e-192], N[(1.0 / N[(2.0 + t$95$0), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 6.4e-9], N[(1.0 / N[(N[(b + 2.0), $MachinePrecision] - N[(b * N[(a + N[(a / b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 1.26e+168], N[(1.0 / N[(b * N[(1.0 + t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(-1.0 / N[(a * N[(1.0 + N[(b - N[(N[(b + 2.0), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := a \cdot \left(-1 + a \cdot \left(0.5 + a \cdot -0.16666666666666666\right)\right)\\
\mathbf{if}\;b \leq -5.2 \cdot 10^{-192}:\\
\;\;\;\;\frac{1}{2 + t\_0}\\

\mathbf{elif}\;b \leq 6.4 \cdot 10^{-9}:\\
\;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot \left(a + \frac{a}{b}\right)}\\

\mathbf{elif}\;b \leq 1.26 \cdot 10^{+168}:\\
\;\;\;\;\frac{1}{b \cdot \left(1 + t\_0\right)}\\

\mathbf{else}:\\
\;\;\;\;\frac{-1}{a \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if b < -5.2000000000000003e-192

    1. Initial program 98.7%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity98.7%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/98.7%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/98.7%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg98.7%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg98.7%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub82.1%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity82.1%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/82.1%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse98.7%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg98.7%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg98.7%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg98.7%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 54.9%

      \[\leadsto \frac{1}{\color{blue}{1 + e^{-a}}} \]
    6. Step-by-step derivation
      1. +-commutative54.9%

        \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    7. Simplified54.9%

      \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 47.6%

      \[\leadsto \frac{1}{\color{blue}{2 + a \cdot \left(a \cdot \left(0.5 + -0.16666666666666666 \cdot a\right) - 1\right)}} \]

    if -5.2000000000000003e-192 < b < 6.40000000000000023e-9

    1. Initial program 99.0%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity99.0%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/99.0%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/99.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg99.0%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg99.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub69.1%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity69.1%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/69.1%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp99.9%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified99.9%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 89.7%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative89.7%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in100.0%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified100.0%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 68.1%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + -1 \cdot \left(a \cdot \left(1 + b\right)\right)\right)}} \]
    9. Step-by-step derivation
      1. associate-+r+68.1%

        \[\leadsto \frac{1}{\color{blue}{\left(2 + b\right) + -1 \cdot \left(a \cdot \left(1 + b\right)\right)}} \]
      2. +-commutative68.1%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right)} + -1 \cdot \left(a \cdot \left(1 + b\right)\right)} \]
      3. mul-1-neg68.1%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a \cdot \left(1 + b\right)\right)}} \]
      4. distribute-rgt-neg-in68.1%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{a \cdot \left(-\left(1 + b\right)\right)}} \]
      5. mul-1-neg68.1%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot \left(1 + b\right)\right)}} \]
      6. distribute-lft-in68.1%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot 1 + -1 \cdot b\right)}} \]
      7. metadata-eval68.1%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(\color{blue}{-1} + -1 \cdot b\right)} \]
      8. mul-1-neg68.1%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(-1 + \color{blue}{\left(-b\right)}\right)} \]
      9. unsub-neg68.1%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 - b\right)}} \]
    10. Simplified68.1%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right) + a \cdot \left(-1 - b\right)}} \]
    11. Taylor expanded in b around inf 91.6%

      \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{b \cdot \left(-1 \cdot a + -1 \cdot \frac{a}{b}\right)}} \]
    12. Step-by-step derivation
      1. mul-1-neg91.6%

        \[\leadsto \frac{1}{\left(b + 2\right) + b \cdot \left(-1 \cdot a + \color{blue}{\left(-\frac{a}{b}\right)}\right)} \]
      2. unsub-neg91.6%

        \[\leadsto \frac{1}{\left(b + 2\right) + b \cdot \color{blue}{\left(-1 \cdot a - \frac{a}{b}\right)}} \]
      3. neg-mul-191.6%

        \[\leadsto \frac{1}{\left(b + 2\right) + b \cdot \left(\color{blue}{\left(-a\right)} - \frac{a}{b}\right)} \]
    13. Simplified91.6%

      \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{b \cdot \left(\left(-a\right) - \frac{a}{b}\right)}} \]

    if 6.40000000000000023e-9 < b < 1.26000000000000006e168

    1. Initial program 100.0%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity100.0%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/100.0%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg100.0%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg100.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub69.4%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity69.4%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/69.4%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 35.0%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative35.0%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in35.0%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified35.0%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 29.9%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + a \cdot \left(-1 \cdot \left(1 + b\right) + a \cdot \left(-0.16666666666666666 \cdot \left(a \cdot \left(1 + b\right)\right) + 0.5 \cdot \left(1 + b\right)\right)\right)\right)}} \]
    9. Taylor expanded in b around inf 28.2%

      \[\leadsto \color{blue}{\frac{1}{b \cdot \left(1 + a \cdot \left(a \cdot \left(0.5 + -0.16666666666666666 \cdot a\right) - 1\right)\right)}} \]

    if 1.26000000000000006e168 < b

    1. Initial program 100.0%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity100.0%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/100.0%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg100.0%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg100.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub80.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity80.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/80.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 26.2%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified26.2%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 26.2%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + -1 \cdot \left(a \cdot \left(1 + b\right)\right)\right)}} \]
    9. Step-by-step derivation
      1. associate-+r+26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(2 + b\right) + -1 \cdot \left(a \cdot \left(1 + b\right)\right)}} \]
      2. +-commutative26.2%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right)} + -1 \cdot \left(a \cdot \left(1 + b\right)\right)} \]
      3. mul-1-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a \cdot \left(1 + b\right)\right)}} \]
      4. distribute-rgt-neg-in26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{a \cdot \left(-\left(1 + b\right)\right)}} \]
      5. mul-1-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot \left(1 + b\right)\right)}} \]
      6. distribute-lft-in26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot 1 + -1 \cdot b\right)}} \]
      7. metadata-eval26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(\color{blue}{-1} + -1 \cdot b\right)} \]
      8. mul-1-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(-1 + \color{blue}{\left(-b\right)}\right)} \]
      9. unsub-neg26.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 - b\right)}} \]
    10. Simplified26.2%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right) + a \cdot \left(-1 - b\right)}} \]
    11. Taylor expanded in a around -inf 81.1%

      \[\leadsto \frac{1}{\color{blue}{-1 \cdot \left(a \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)\right)}} \]
    12. Step-by-step derivation
      1. associate-*r*81.1%

        \[\leadsto \frac{1}{\color{blue}{\left(-1 \cdot a\right) \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)}} \]
      2. neg-mul-181.1%

        \[\leadsto \frac{1}{\color{blue}{\left(-a\right)} \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)} \]
      3. mul-1-neg81.1%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \left(b + \color{blue}{\left(-\frac{2 + b}{a}\right)}\right)\right)} \]
      4. unsub-neg81.1%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \color{blue}{\left(b - \frac{2 + b}{a}\right)}\right)} \]
      5. +-commutative81.1%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \left(b - \frac{\color{blue}{b + 2}}{a}\right)\right)} \]
    13. Simplified81.1%

      \[\leadsto \frac{1}{\color{blue}{\left(-a\right) \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}} \]
  3. Recombined 4 regimes into one program.
  4. Final simplification67.9%

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \leq -5.2 \cdot 10^{-192}:\\ \;\;\;\;\frac{1}{2 + a \cdot \left(-1 + a \cdot \left(0.5 + a \cdot -0.16666666666666666\right)\right)}\\ \mathbf{elif}\;b \leq 6.4 \cdot 10^{-9}:\\ \;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot \left(a + \frac{a}{b}\right)}\\ \mathbf{elif}\;b \leq 1.26 \cdot 10^{+168}:\\ \;\;\;\;\frac{1}{b \cdot \left(1 + a \cdot \left(-1 + a \cdot \left(0.5 + a \cdot -0.16666666666666666\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{a \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 10: 66.8% accurate, 10.2× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{1}{2 + a \cdot \left(-1 + a \cdot \left(0.5 + a \cdot -0.16666666666666666\right)\right)}\\ \mathbf{if}\;b \leq -5.2 \cdot 10^{-192}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;b \leq 1.7 \cdot 10^{-237}:\\ \;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot \left(a + \frac{a}{b}\right)}\\ \mathbf{elif}\;b \leq 7.6 \cdot 10^{+76}:\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{a \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}\\ \end{array} \end{array} \]
(FPCore (a b)
 :precision binary64
 (let* ((t_0
         (/
          1.0
          (+ 2.0 (* a (+ -1.0 (* a (+ 0.5 (* a -0.16666666666666666)))))))))
   (if (<= b -5.2e-192)
     t_0
     (if (<= b 1.7e-237)
       (/ 1.0 (- (+ b 2.0) (* b (+ a (/ a b)))))
       (if (<= b 7.6e+76) t_0 (/ -1.0 (* a (+ 1.0 (- b (/ (+ b 2.0) a))))))))))
double code(double a, double b) {
	double t_0 = 1.0 / (2.0 + (a * (-1.0 + (a * (0.5 + (a * -0.16666666666666666))))));
	double tmp;
	if (b <= -5.2e-192) {
		tmp = t_0;
	} else if (b <= 1.7e-237) {
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))));
	} else if (b <= 7.6e+76) {
		tmp = t_0;
	} else {
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))));
	}
	return tmp;
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    real(8) :: t_0
    real(8) :: tmp
    t_0 = 1.0d0 / (2.0d0 + (a * ((-1.0d0) + (a * (0.5d0 + (a * (-0.16666666666666666d0)))))))
    if (b <= (-5.2d-192)) then
        tmp = t_0
    else if (b <= 1.7d-237) then
        tmp = 1.0d0 / ((b + 2.0d0) - (b * (a + (a / b))))
    else if (b <= 7.6d+76) then
        tmp = t_0
    else
        tmp = (-1.0d0) / (a * (1.0d0 + (b - ((b + 2.0d0) / a))))
    end if
    code = tmp
end function
public static double code(double a, double b) {
	double t_0 = 1.0 / (2.0 + (a * (-1.0 + (a * (0.5 + (a * -0.16666666666666666))))));
	double tmp;
	if (b <= -5.2e-192) {
		tmp = t_0;
	} else if (b <= 1.7e-237) {
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))));
	} else if (b <= 7.6e+76) {
		tmp = t_0;
	} else {
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))));
	}
	return tmp;
}
def code(a, b):
	t_0 = 1.0 / (2.0 + (a * (-1.0 + (a * (0.5 + (a * -0.16666666666666666))))))
	tmp = 0
	if b <= -5.2e-192:
		tmp = t_0
	elif b <= 1.7e-237:
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))))
	elif b <= 7.6e+76:
		tmp = t_0
	else:
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))))
	return tmp
function code(a, b)
	t_0 = Float64(1.0 / Float64(2.0 + Float64(a * Float64(-1.0 + Float64(a * Float64(0.5 + Float64(a * -0.16666666666666666)))))))
	tmp = 0.0
	if (b <= -5.2e-192)
		tmp = t_0;
	elseif (b <= 1.7e-237)
		tmp = Float64(1.0 / Float64(Float64(b + 2.0) - Float64(b * Float64(a + Float64(a / b)))));
	elseif (b <= 7.6e+76)
		tmp = t_0;
	else
		tmp = Float64(-1.0 / Float64(a * Float64(1.0 + Float64(b - Float64(Float64(b + 2.0) / a)))));
	end
	return tmp
end
function tmp_2 = code(a, b)
	t_0 = 1.0 / (2.0 + (a * (-1.0 + (a * (0.5 + (a * -0.16666666666666666))))));
	tmp = 0.0;
	if (b <= -5.2e-192)
		tmp = t_0;
	elseif (b <= 1.7e-237)
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))));
	elseif (b <= 7.6e+76)
		tmp = t_0;
	else
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))));
	end
	tmp_2 = tmp;
end
code[a_, b_] := Block[{t$95$0 = N[(1.0 / N[(2.0 + N[(a * N[(-1.0 + N[(a * N[(0.5 + N[(a * -0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[b, -5.2e-192], t$95$0, If[LessEqual[b, 1.7e-237], N[(1.0 / N[(N[(b + 2.0), $MachinePrecision] - N[(b * N[(a + N[(a / b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 7.6e+76], t$95$0, N[(-1.0 / N[(a * N[(1.0 + N[(b - N[(N[(b + 2.0), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{1}{2 + a \cdot \left(-1 + a \cdot \left(0.5 + a \cdot -0.16666666666666666\right)\right)}\\
\mathbf{if}\;b \leq -5.2 \cdot 10^{-192}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;b \leq 1.7 \cdot 10^{-237}:\\
\;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot \left(a + \frac{a}{b}\right)}\\

\mathbf{elif}\;b \leq 7.6 \cdot 10^{+76}:\\
\;\;\;\;t\_0\\

\mathbf{else}:\\
\;\;\;\;\frac{-1}{a \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if b < -5.2000000000000003e-192 or 1.7000000000000001e-237 < b < 7.60000000000000049e76

    1. Initial program 98.7%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity98.7%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/98.7%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/98.7%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg98.7%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg98.7%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub78.3%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity78.3%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/78.3%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse99.4%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg99.4%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg99.4%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg99.4%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp99.9%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified99.9%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 68.8%

      \[\leadsto \frac{1}{\color{blue}{1 + e^{-a}}} \]
    6. Step-by-step derivation
      1. +-commutative68.8%

        \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    7. Simplified68.8%

      \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 60.2%

      \[\leadsto \frac{1}{\color{blue}{2 + a \cdot \left(a \cdot \left(0.5 + -0.16666666666666666 \cdot a\right) - 1\right)}} \]

    if -5.2000000000000003e-192 < b < 1.7000000000000001e-237

    1. Initial program 100.0%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity100.0%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/100.0%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg100.0%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg100.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub59.2%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity59.2%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/59.2%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 77.6%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative77.6%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in100.0%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified100.0%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 59.8%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + -1 \cdot \left(a \cdot \left(1 + b\right)\right)\right)}} \]
    9. Step-by-step derivation
      1. associate-+r+59.8%

        \[\leadsto \frac{1}{\color{blue}{\left(2 + b\right) + -1 \cdot \left(a \cdot \left(1 + b\right)\right)}} \]
      2. +-commutative59.8%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right)} + -1 \cdot \left(a \cdot \left(1 + b\right)\right)} \]
      3. mul-1-neg59.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a \cdot \left(1 + b\right)\right)}} \]
      4. distribute-rgt-neg-in59.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{a \cdot \left(-\left(1 + b\right)\right)}} \]
      5. mul-1-neg59.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot \left(1 + b\right)\right)}} \]
      6. distribute-lft-in59.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot 1 + -1 \cdot b\right)}} \]
      7. metadata-eval59.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(\color{blue}{-1} + -1 \cdot b\right)} \]
      8. mul-1-neg59.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(-1 + \color{blue}{\left(-b\right)}\right)} \]
      9. unsub-neg59.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 - b\right)}} \]
    10. Simplified59.8%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right) + a \cdot \left(-1 - b\right)}} \]
    11. Taylor expanded in b around inf 96.4%

      \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{b \cdot \left(-1 \cdot a + -1 \cdot \frac{a}{b}\right)}} \]
    12. Step-by-step derivation
      1. mul-1-neg96.4%

        \[\leadsto \frac{1}{\left(b + 2\right) + b \cdot \left(-1 \cdot a + \color{blue}{\left(-\frac{a}{b}\right)}\right)} \]
      2. unsub-neg96.4%

        \[\leadsto \frac{1}{\left(b + 2\right) + b \cdot \color{blue}{\left(-1 \cdot a - \frac{a}{b}\right)}} \]
      3. neg-mul-196.4%

        \[\leadsto \frac{1}{\left(b + 2\right) + b \cdot \left(\color{blue}{\left(-a\right)} - \frac{a}{b}\right)} \]
    13. Simplified96.4%

      \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{b \cdot \left(\left(-a\right) - \frac{a}{b}\right)}} \]

    if 7.60000000000000049e76 < b

    1. Initial program 100.0%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity100.0%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/100.0%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg100.0%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg100.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub78.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity78.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/78.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 27.3%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative27.3%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in27.3%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified27.3%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 21.7%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + -1 \cdot \left(a \cdot \left(1 + b\right)\right)\right)}} \]
    9. Step-by-step derivation
      1. associate-+r+21.7%

        \[\leadsto \frac{1}{\color{blue}{\left(2 + b\right) + -1 \cdot \left(a \cdot \left(1 + b\right)\right)}} \]
      2. +-commutative21.7%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right)} + -1 \cdot \left(a \cdot \left(1 + b\right)\right)} \]
      3. mul-1-neg21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a \cdot \left(1 + b\right)\right)}} \]
      4. distribute-rgt-neg-in21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{a \cdot \left(-\left(1 + b\right)\right)}} \]
      5. mul-1-neg21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot \left(1 + b\right)\right)}} \]
      6. distribute-lft-in21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot 1 + -1 \cdot b\right)}} \]
      7. metadata-eval21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(\color{blue}{-1} + -1 \cdot b\right)} \]
      8. mul-1-neg21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(-1 + \color{blue}{\left(-b\right)}\right)} \]
      9. unsub-neg21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 - b\right)}} \]
    10. Simplified21.7%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right) + a \cdot \left(-1 - b\right)}} \]
    11. Taylor expanded in a around -inf 62.0%

      \[\leadsto \frac{1}{\color{blue}{-1 \cdot \left(a \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)\right)}} \]
    12. Step-by-step derivation
      1. associate-*r*62.0%

        \[\leadsto \frac{1}{\color{blue}{\left(-1 \cdot a\right) \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)}} \]
      2. neg-mul-162.0%

        \[\leadsto \frac{1}{\color{blue}{\left(-a\right)} \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)} \]
      3. mul-1-neg62.0%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \left(b + \color{blue}{\left(-\frac{2 + b}{a}\right)}\right)\right)} \]
      4. unsub-neg62.0%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \color{blue}{\left(b - \frac{2 + b}{a}\right)}\right)} \]
      5. +-commutative62.0%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \left(b - \frac{\color{blue}{b + 2}}{a}\right)\right)} \]
    13. Simplified62.0%

      \[\leadsto \frac{1}{\color{blue}{\left(-a\right) \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification67.5%

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \leq -5.2 \cdot 10^{-192}:\\ \;\;\;\;\frac{1}{2 + a \cdot \left(-1 + a \cdot \left(0.5 + a \cdot -0.16666666666666666\right)\right)}\\ \mathbf{elif}\;b \leq 1.7 \cdot 10^{-237}:\\ \;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot \left(a + \frac{a}{b}\right)}\\ \mathbf{elif}\;b \leq 7.6 \cdot 10^{+76}:\\ \;\;\;\;\frac{1}{2 + a \cdot \left(-1 + a \cdot \left(0.5 + a \cdot -0.16666666666666666\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{a \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 11: 63.8% accurate, 13.2× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;b \leq -5.2 \cdot 10^{-192}:\\ \;\;\;\;\frac{1}{2 + a \cdot \left(a \cdot 0.5 + -1\right)}\\ \mathbf{elif}\;b \leq 10^{-13}:\\ \;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot \left(a + \frac{a}{b}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{a \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}\\ \end{array} \end{array} \]
(FPCore (a b)
 :precision binary64
 (if (<= b -5.2e-192)
   (/ 1.0 (+ 2.0 (* a (+ (* a 0.5) -1.0))))
   (if (<= b 1e-13)
     (/ 1.0 (- (+ b 2.0) (* b (+ a (/ a b)))))
     (/ -1.0 (* a (+ 1.0 (- b (/ (+ b 2.0) a))))))))
double code(double a, double b) {
	double tmp;
	if (b <= -5.2e-192) {
		tmp = 1.0 / (2.0 + (a * ((a * 0.5) + -1.0)));
	} else if (b <= 1e-13) {
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))));
	} else {
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))));
	}
	return tmp;
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    real(8) :: tmp
    if (b <= (-5.2d-192)) then
        tmp = 1.0d0 / (2.0d0 + (a * ((a * 0.5d0) + (-1.0d0))))
    else if (b <= 1d-13) then
        tmp = 1.0d0 / ((b + 2.0d0) - (b * (a + (a / b))))
    else
        tmp = (-1.0d0) / (a * (1.0d0 + (b - ((b + 2.0d0) / a))))
    end if
    code = tmp
end function
public static double code(double a, double b) {
	double tmp;
	if (b <= -5.2e-192) {
		tmp = 1.0 / (2.0 + (a * ((a * 0.5) + -1.0)));
	} else if (b <= 1e-13) {
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))));
	} else {
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))));
	}
	return tmp;
}
def code(a, b):
	tmp = 0
	if b <= -5.2e-192:
		tmp = 1.0 / (2.0 + (a * ((a * 0.5) + -1.0)))
	elif b <= 1e-13:
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))))
	else:
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))))
	return tmp
function code(a, b)
	tmp = 0.0
	if (b <= -5.2e-192)
		tmp = Float64(1.0 / Float64(2.0 + Float64(a * Float64(Float64(a * 0.5) + -1.0))));
	elseif (b <= 1e-13)
		tmp = Float64(1.0 / Float64(Float64(b + 2.0) - Float64(b * Float64(a + Float64(a / b)))));
	else
		tmp = Float64(-1.0 / Float64(a * Float64(1.0 + Float64(b - Float64(Float64(b + 2.0) / a)))));
	end
	return tmp
end
function tmp_2 = code(a, b)
	tmp = 0.0;
	if (b <= -5.2e-192)
		tmp = 1.0 / (2.0 + (a * ((a * 0.5) + -1.0)));
	elseif (b <= 1e-13)
		tmp = 1.0 / ((b + 2.0) - (b * (a + (a / b))));
	else
		tmp = -1.0 / (a * (1.0 + (b - ((b + 2.0) / a))));
	end
	tmp_2 = tmp;
end
code[a_, b_] := If[LessEqual[b, -5.2e-192], N[(1.0 / N[(2.0 + N[(a * N[(N[(a * 0.5), $MachinePrecision] + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[b, 1e-13], N[(1.0 / N[(N[(b + 2.0), $MachinePrecision] - N[(b * N[(a + N[(a / b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(-1.0 / N[(a * N[(1.0 + N[(b - N[(N[(b + 2.0), $MachinePrecision] / a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;b \leq -5.2 \cdot 10^{-192}:\\
\;\;\;\;\frac{1}{2 + a \cdot \left(a \cdot 0.5 + -1\right)}\\

\mathbf{elif}\;b \leq 10^{-13}:\\
\;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot \left(a + \frac{a}{b}\right)}\\

\mathbf{else}:\\
\;\;\;\;\frac{-1}{a \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if b < -5.2000000000000003e-192

    1. Initial program 98.7%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity98.7%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/98.7%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/98.7%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg98.7%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg98.7%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub82.1%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity82.1%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/82.1%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse98.7%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg98.7%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg98.7%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg98.7%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 54.9%

      \[\leadsto \frac{1}{\color{blue}{1 + e^{-a}}} \]
    6. Step-by-step derivation
      1. +-commutative54.9%

        \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    7. Simplified54.9%

      \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 42.7%

      \[\leadsto \frac{1}{\color{blue}{2 + a \cdot \left(0.5 \cdot a - 1\right)}} \]

    if -5.2000000000000003e-192 < b < 1e-13

    1. Initial program 100.0%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity100.0%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/100.0%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg100.0%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg100.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub69.2%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity69.2%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/69.2%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 89.4%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative89.4%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in100.0%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified100.0%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 69.1%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + -1 \cdot \left(a \cdot \left(1 + b\right)\right)\right)}} \]
    9. Step-by-step derivation
      1. associate-+r+69.1%

        \[\leadsto \frac{1}{\color{blue}{\left(2 + b\right) + -1 \cdot \left(a \cdot \left(1 + b\right)\right)}} \]
      2. +-commutative69.1%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right)} + -1 \cdot \left(a \cdot \left(1 + b\right)\right)} \]
      3. mul-1-neg69.1%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a \cdot \left(1 + b\right)\right)}} \]
      4. distribute-rgt-neg-in69.1%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{a \cdot \left(-\left(1 + b\right)\right)}} \]
      5. mul-1-neg69.1%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot \left(1 + b\right)\right)}} \]
      6. distribute-lft-in69.1%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot 1 + -1 \cdot b\right)}} \]
      7. metadata-eval69.1%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(\color{blue}{-1} + -1 \cdot b\right)} \]
      8. mul-1-neg69.1%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(-1 + \color{blue}{\left(-b\right)}\right)} \]
      9. unsub-neg69.1%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 - b\right)}} \]
    10. Simplified69.1%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right) + a \cdot \left(-1 - b\right)}} \]
    11. Taylor expanded in b around inf 93.2%

      \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{b \cdot \left(-1 \cdot a + -1 \cdot \frac{a}{b}\right)}} \]
    12. Step-by-step derivation
      1. mul-1-neg93.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + b \cdot \left(-1 \cdot a + \color{blue}{\left(-\frac{a}{b}\right)}\right)} \]
      2. unsub-neg93.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + b \cdot \color{blue}{\left(-1 \cdot a - \frac{a}{b}\right)}} \]
      3. neg-mul-193.2%

        \[\leadsto \frac{1}{\left(b + 2\right) + b \cdot \left(\color{blue}{\left(-a\right)} - \frac{a}{b}\right)} \]
    13. Simplified93.2%

      \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{b \cdot \left(\left(-a\right) - \frac{a}{b}\right)}} \]

    if 1e-13 < b

    1. Initial program 98.6%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity98.6%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/98.6%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/98.6%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg98.6%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg98.6%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub74.3%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity74.3%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/74.3%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp99.8%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified99.8%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 33.5%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative33.5%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in33.5%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified33.5%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 19.6%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + -1 \cdot \left(a \cdot \left(1 + b\right)\right)\right)}} \]
    9. Step-by-step derivation
      1. associate-+r+19.6%

        \[\leadsto \frac{1}{\color{blue}{\left(2 + b\right) + -1 \cdot \left(a \cdot \left(1 + b\right)\right)}} \]
      2. +-commutative19.6%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right)} + -1 \cdot \left(a \cdot \left(1 + b\right)\right)} \]
      3. mul-1-neg19.6%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a \cdot \left(1 + b\right)\right)}} \]
      4. distribute-rgt-neg-in19.6%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{a \cdot \left(-\left(1 + b\right)\right)}} \]
      5. mul-1-neg19.6%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot \left(1 + b\right)\right)}} \]
      6. distribute-lft-in19.6%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot 1 + -1 \cdot b\right)}} \]
      7. metadata-eval19.6%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(\color{blue}{-1} + -1 \cdot b\right)} \]
      8. mul-1-neg19.6%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(-1 + \color{blue}{\left(-b\right)}\right)} \]
      9. unsub-neg19.6%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 - b\right)}} \]
    10. Simplified19.6%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right) + a \cdot \left(-1 - b\right)}} \]
    11. Taylor expanded in a around -inf 46.8%

      \[\leadsto \frac{1}{\color{blue}{-1 \cdot \left(a \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)\right)}} \]
    12. Step-by-step derivation
      1. associate-*r*46.8%

        \[\leadsto \frac{1}{\color{blue}{\left(-1 \cdot a\right) \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)}} \]
      2. neg-mul-146.8%

        \[\leadsto \frac{1}{\color{blue}{\left(-a\right)} \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)} \]
      3. mul-1-neg46.8%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \left(b + \color{blue}{\left(-\frac{2 + b}{a}\right)}\right)\right)} \]
      4. unsub-neg46.8%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \color{blue}{\left(b - \frac{2 + b}{a}\right)}\right)} \]
      5. +-commutative46.8%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \left(b - \frac{\color{blue}{b + 2}}{a}\right)\right)} \]
    13. Simplified46.8%

      \[\leadsto \frac{1}{\color{blue}{\left(-a\right) \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification64.4%

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \leq -5.2 \cdot 10^{-192}:\\ \;\;\;\;\frac{1}{2 + a \cdot \left(a \cdot 0.5 + -1\right)}\\ \mathbf{elif}\;b \leq 10^{-13}:\\ \;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot \left(a + \frac{a}{b}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{a \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 12: 62.7% accurate, 16.9× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;b \leq 7.6 \cdot 10^{+76}:\\ \;\;\;\;\frac{1}{2 + a \cdot \left(a \cdot 0.5 + -1\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{a \cdot \left(-1 + \left(\frac{b + 2}{a} - b\right)\right)}\\ \end{array} \end{array} \]
(FPCore (a b)
 :precision binary64
 (if (<= b 7.6e+76)
   (/ 1.0 (+ 2.0 (* a (+ (* a 0.5) -1.0))))
   (/ 1.0 (* a (+ -1.0 (- (/ (+ b 2.0) a) b))))))
double code(double a, double b) {
	double tmp;
	if (b <= 7.6e+76) {
		tmp = 1.0 / (2.0 + (a * ((a * 0.5) + -1.0)));
	} else {
		tmp = 1.0 / (a * (-1.0 + (((b + 2.0) / a) - b)));
	}
	return tmp;
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    real(8) :: tmp
    if (b <= 7.6d+76) then
        tmp = 1.0d0 / (2.0d0 + (a * ((a * 0.5d0) + (-1.0d0))))
    else
        tmp = 1.0d0 / (a * ((-1.0d0) + (((b + 2.0d0) / a) - b)))
    end if
    code = tmp
end function
public static double code(double a, double b) {
	double tmp;
	if (b <= 7.6e+76) {
		tmp = 1.0 / (2.0 + (a * ((a * 0.5) + -1.0)));
	} else {
		tmp = 1.0 / (a * (-1.0 + (((b + 2.0) / a) - b)));
	}
	return tmp;
}
def code(a, b):
	tmp = 0
	if b <= 7.6e+76:
		tmp = 1.0 / (2.0 + (a * ((a * 0.5) + -1.0)))
	else:
		tmp = 1.0 / (a * (-1.0 + (((b + 2.0) / a) - b)))
	return tmp
function code(a, b)
	tmp = 0.0
	if (b <= 7.6e+76)
		tmp = Float64(1.0 / Float64(2.0 + Float64(a * Float64(Float64(a * 0.5) + -1.0))));
	else
		tmp = Float64(1.0 / Float64(a * Float64(-1.0 + Float64(Float64(Float64(b + 2.0) / a) - b))));
	end
	return tmp
end
function tmp_2 = code(a, b)
	tmp = 0.0;
	if (b <= 7.6e+76)
		tmp = 1.0 / (2.0 + (a * ((a * 0.5) + -1.0)));
	else
		tmp = 1.0 / (a * (-1.0 + (((b + 2.0) / a) - b)));
	end
	tmp_2 = tmp;
end
code[a_, b_] := If[LessEqual[b, 7.6e+76], N[(1.0 / N[(2.0 + N[(a * N[(N[(a * 0.5), $MachinePrecision] + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(1.0 / N[(a * N[(-1.0 + N[(N[(N[(b + 2.0), $MachinePrecision] / a), $MachinePrecision] - b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;b \leq 7.6 \cdot 10^{+76}:\\
\;\;\;\;\frac{1}{2 + a \cdot \left(a \cdot 0.5 + -1\right)}\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{a \cdot \left(-1 + \left(\frac{b + 2}{a} - b\right)\right)}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if b < 7.60000000000000049e76

    1. Initial program 99.0%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity99.0%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/99.0%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/99.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg99.0%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg99.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub73.8%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity73.8%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/73.8%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse99.5%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg99.5%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg99.5%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg99.5%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp99.9%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified99.9%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 76.3%

      \[\leadsto \frac{1}{\color{blue}{1 + e^{-a}}} \]
    6. Step-by-step derivation
      1. +-commutative76.3%

        \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    7. Simplified76.3%

      \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 62.6%

      \[\leadsto \frac{1}{\color{blue}{2 + a \cdot \left(0.5 \cdot a - 1\right)}} \]

    if 7.60000000000000049e76 < b

    1. Initial program 100.0%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity100.0%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/100.0%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg100.0%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg100.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub78.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity78.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/78.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 27.3%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative27.3%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in27.3%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified27.3%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 21.7%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + -1 \cdot \left(a \cdot \left(1 + b\right)\right)\right)}} \]
    9. Step-by-step derivation
      1. associate-+r+21.7%

        \[\leadsto \frac{1}{\color{blue}{\left(2 + b\right) + -1 \cdot \left(a \cdot \left(1 + b\right)\right)}} \]
      2. +-commutative21.7%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right)} + -1 \cdot \left(a \cdot \left(1 + b\right)\right)} \]
      3. mul-1-neg21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a \cdot \left(1 + b\right)\right)}} \]
      4. distribute-rgt-neg-in21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{a \cdot \left(-\left(1 + b\right)\right)}} \]
      5. mul-1-neg21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot \left(1 + b\right)\right)}} \]
      6. distribute-lft-in21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot 1 + -1 \cdot b\right)}} \]
      7. metadata-eval21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(\color{blue}{-1} + -1 \cdot b\right)} \]
      8. mul-1-neg21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(-1 + \color{blue}{\left(-b\right)}\right)} \]
      9. unsub-neg21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 - b\right)}} \]
    10. Simplified21.7%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right) + a \cdot \left(-1 - b\right)}} \]
    11. Taylor expanded in a around -inf 62.0%

      \[\leadsto \frac{1}{\color{blue}{-1 \cdot \left(a \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)\right)}} \]
    12. Step-by-step derivation
      1. associate-*r*62.0%

        \[\leadsto \frac{1}{\color{blue}{\left(-1 \cdot a\right) \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)}} \]
      2. neg-mul-162.0%

        \[\leadsto \frac{1}{\color{blue}{\left(-a\right)} \cdot \left(1 + \left(b + -1 \cdot \frac{2 + b}{a}\right)\right)} \]
      3. mul-1-neg62.0%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \left(b + \color{blue}{\left(-\frac{2 + b}{a}\right)}\right)\right)} \]
      4. unsub-neg62.0%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \color{blue}{\left(b - \frac{2 + b}{a}\right)}\right)} \]
      5. +-commutative62.0%

        \[\leadsto \frac{1}{\left(-a\right) \cdot \left(1 + \left(b - \frac{\color{blue}{b + 2}}{a}\right)\right)} \]
    13. Simplified62.0%

      \[\leadsto \frac{1}{\color{blue}{\left(-a\right) \cdot \left(1 + \left(b - \frac{b + 2}{a}\right)\right)}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification62.5%

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \leq 7.6 \cdot 10^{+76}:\\ \;\;\;\;\frac{1}{2 + a \cdot \left(a \cdot 0.5 + -1\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{a \cdot \left(-1 + \left(\frac{b + 2}{a} - b\right)\right)}\\ \end{array} \]
  5. Add Preprocessing

Alternative 13: 55.2% accurate, 19.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;b \leq 3.5 \cdot 10^{+78}:\\ \;\;\;\;\frac{1}{2 + a \cdot \left(a \cdot 0.5 + -1\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot a}\\ \end{array} \end{array} \]
(FPCore (a b)
 :precision binary64
 (if (<= b 3.5e+78)
   (/ 1.0 (+ 2.0 (* a (+ (* a 0.5) -1.0))))
   (/ 1.0 (- (+ b 2.0) (* b a)))))
double code(double a, double b) {
	double tmp;
	if (b <= 3.5e+78) {
		tmp = 1.0 / (2.0 + (a * ((a * 0.5) + -1.0)));
	} else {
		tmp = 1.0 / ((b + 2.0) - (b * a));
	}
	return tmp;
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    real(8) :: tmp
    if (b <= 3.5d+78) then
        tmp = 1.0d0 / (2.0d0 + (a * ((a * 0.5d0) + (-1.0d0))))
    else
        tmp = 1.0d0 / ((b + 2.0d0) - (b * a))
    end if
    code = tmp
end function
public static double code(double a, double b) {
	double tmp;
	if (b <= 3.5e+78) {
		tmp = 1.0 / (2.0 + (a * ((a * 0.5) + -1.0)));
	} else {
		tmp = 1.0 / ((b + 2.0) - (b * a));
	}
	return tmp;
}
def code(a, b):
	tmp = 0
	if b <= 3.5e+78:
		tmp = 1.0 / (2.0 + (a * ((a * 0.5) + -1.0)))
	else:
		tmp = 1.0 / ((b + 2.0) - (b * a))
	return tmp
function code(a, b)
	tmp = 0.0
	if (b <= 3.5e+78)
		tmp = Float64(1.0 / Float64(2.0 + Float64(a * Float64(Float64(a * 0.5) + -1.0))));
	else
		tmp = Float64(1.0 / Float64(Float64(b + 2.0) - Float64(b * a)));
	end
	return tmp
end
function tmp_2 = code(a, b)
	tmp = 0.0;
	if (b <= 3.5e+78)
		tmp = 1.0 / (2.0 + (a * ((a * 0.5) + -1.0)));
	else
		tmp = 1.0 / ((b + 2.0) - (b * a));
	end
	tmp_2 = tmp;
end
code[a_, b_] := If[LessEqual[b, 3.5e+78], N[(1.0 / N[(2.0 + N[(a * N[(N[(a * 0.5), $MachinePrecision] + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(1.0 / N[(N[(b + 2.0), $MachinePrecision] - N[(b * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;b \leq 3.5 \cdot 10^{+78}:\\
\;\;\;\;\frac{1}{2 + a \cdot \left(a \cdot 0.5 + -1\right)}\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot a}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if b < 3.5000000000000001e78

    1. Initial program 99.0%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity99.0%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/99.0%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/99.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg99.0%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg99.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub73.8%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity73.8%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/73.8%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse99.5%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg99.5%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg99.5%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg99.5%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp99.9%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified99.9%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 76.3%

      \[\leadsto \frac{1}{\color{blue}{1 + e^{-a}}} \]
    6. Step-by-step derivation
      1. +-commutative76.3%

        \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    7. Simplified76.3%

      \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 62.6%

      \[\leadsto \frac{1}{\color{blue}{2 + a \cdot \left(0.5 \cdot a - 1\right)}} \]

    if 3.5000000000000001e78 < b

    1. Initial program 100.0%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity100.0%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/100.0%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/100.0%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg100.0%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg100.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub78.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity78.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/78.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 27.3%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative27.3%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in27.3%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified27.3%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 21.7%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + -1 \cdot \left(a \cdot \left(1 + b\right)\right)\right)}} \]
    9. Step-by-step derivation
      1. associate-+r+21.7%

        \[\leadsto \frac{1}{\color{blue}{\left(2 + b\right) + -1 \cdot \left(a \cdot \left(1 + b\right)\right)}} \]
      2. +-commutative21.7%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right)} + -1 \cdot \left(a \cdot \left(1 + b\right)\right)} \]
      3. mul-1-neg21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a \cdot \left(1 + b\right)\right)}} \]
      4. distribute-rgt-neg-in21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{a \cdot \left(-\left(1 + b\right)\right)}} \]
      5. mul-1-neg21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot \left(1 + b\right)\right)}} \]
      6. distribute-lft-in21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot 1 + -1 \cdot b\right)}} \]
      7. metadata-eval21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(\color{blue}{-1} + -1 \cdot b\right)} \]
      8. mul-1-neg21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(-1 + \color{blue}{\left(-b\right)}\right)} \]
      9. unsub-neg21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 - b\right)}} \]
    10. Simplified21.7%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right) + a \cdot \left(-1 - b\right)}} \]
    11. Taylor expanded in b around inf 21.7%

      \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{-1 \cdot \left(a \cdot b\right)}} \]
    12. Step-by-step derivation
      1. associate-*r*21.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-1 \cdot a\right) \cdot b}} \]
      2. neg-mul-121.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a\right)} \cdot b} \]
    13. Simplified21.7%

      \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a\right) \cdot b}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification54.6%

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \leq 3.5 \cdot 10^{+78}:\\ \;\;\;\;\frac{1}{2 + a \cdot \left(a \cdot 0.5 + -1\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot a}\\ \end{array} \]
  5. Add Preprocessing

Alternative 14: 46.0% accurate, 21.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;b \leq 2.7 \cdot 10^{-15}:\\ \;\;\;\;\frac{1}{2 - a}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot a}\\ \end{array} \end{array} \]
(FPCore (a b)
 :precision binary64
 (if (<= b 2.7e-15) (/ 1.0 (- 2.0 a)) (/ 1.0 (- (+ b 2.0) (* b a)))))
double code(double a, double b) {
	double tmp;
	if (b <= 2.7e-15) {
		tmp = 1.0 / (2.0 - a);
	} else {
		tmp = 1.0 / ((b + 2.0) - (b * a));
	}
	return tmp;
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    real(8) :: tmp
    if (b <= 2.7d-15) then
        tmp = 1.0d0 / (2.0d0 - a)
    else
        tmp = 1.0d0 / ((b + 2.0d0) - (b * a))
    end if
    code = tmp
end function
public static double code(double a, double b) {
	double tmp;
	if (b <= 2.7e-15) {
		tmp = 1.0 / (2.0 - a);
	} else {
		tmp = 1.0 / ((b + 2.0) - (b * a));
	}
	return tmp;
}
def code(a, b):
	tmp = 0
	if b <= 2.7e-15:
		tmp = 1.0 / (2.0 - a)
	else:
		tmp = 1.0 / ((b + 2.0) - (b * a))
	return tmp
function code(a, b)
	tmp = 0.0
	if (b <= 2.7e-15)
		tmp = Float64(1.0 / Float64(2.0 - a));
	else
		tmp = Float64(1.0 / Float64(Float64(b + 2.0) - Float64(b * a)));
	end
	return tmp
end
function tmp_2 = code(a, b)
	tmp = 0.0;
	if (b <= 2.7e-15)
		tmp = 1.0 / (2.0 - a);
	else
		tmp = 1.0 / ((b + 2.0) - (b * a));
	end
	tmp_2 = tmp;
end
code[a_, b_] := If[LessEqual[b, 2.7e-15], N[(1.0 / N[(2.0 - a), $MachinePrecision]), $MachinePrecision], N[(1.0 / N[(N[(b + 2.0), $MachinePrecision] - N[(b * a), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;b \leq 2.7 \cdot 10^{-15}:\\
\;\;\;\;\frac{1}{2 - a}\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot a}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if b < 2.70000000000000009e-15

    1. Initial program 99.4%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity99.4%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/99.4%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/99.4%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg99.4%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg99.4%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub74.7%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity74.7%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/74.7%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse99.4%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg99.4%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg99.4%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg99.4%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 80.7%

      \[\leadsto \frac{1}{\color{blue}{1 + e^{-a}}} \]
    6. Step-by-step derivation
      1. +-commutative80.7%

        \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    7. Simplified80.7%

      \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 55.6%

      \[\leadsto \frac{1}{\color{blue}{2 + -1 \cdot a}} \]
    9. Step-by-step derivation
      1. neg-mul-155.6%

        \[\leadsto \frac{1}{2 + \color{blue}{\left(-a\right)}} \]
      2. unsub-neg55.6%

        \[\leadsto \frac{1}{\color{blue}{2 - a}} \]
    10. Simplified55.6%

      \[\leadsto \frac{1}{\color{blue}{2 - a}} \]

    if 2.70000000000000009e-15 < b

    1. Initial program 98.6%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity98.6%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/98.6%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/98.6%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg98.6%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg98.6%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub74.3%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity74.3%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/74.3%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp99.8%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified99.8%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 33.5%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative33.5%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in33.5%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified33.5%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 19.6%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + -1 \cdot \left(a \cdot \left(1 + b\right)\right)\right)}} \]
    9. Step-by-step derivation
      1. associate-+r+19.6%

        \[\leadsto \frac{1}{\color{blue}{\left(2 + b\right) + -1 \cdot \left(a \cdot \left(1 + b\right)\right)}} \]
      2. +-commutative19.6%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right)} + -1 \cdot \left(a \cdot \left(1 + b\right)\right)} \]
      3. mul-1-neg19.6%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a \cdot \left(1 + b\right)\right)}} \]
      4. distribute-rgt-neg-in19.6%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{a \cdot \left(-\left(1 + b\right)\right)}} \]
      5. mul-1-neg19.6%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot \left(1 + b\right)\right)}} \]
      6. distribute-lft-in19.6%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot 1 + -1 \cdot b\right)}} \]
      7. metadata-eval19.6%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(\color{blue}{-1} + -1 \cdot b\right)} \]
      8. mul-1-neg19.6%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(-1 + \color{blue}{\left(-b\right)}\right)} \]
      9. unsub-neg19.6%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 - b\right)}} \]
    10. Simplified19.6%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right) + a \cdot \left(-1 - b\right)}} \]
    11. Taylor expanded in b around inf 19.8%

      \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{-1 \cdot \left(a \cdot b\right)}} \]
    12. Step-by-step derivation
      1. associate-*r*19.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-1 \cdot a\right) \cdot b}} \]
      2. neg-mul-119.8%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a\right)} \cdot b} \]
    13. Simplified19.8%

      \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a\right) \cdot b}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification45.3%

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \leq 2.7 \cdot 10^{-15}:\\ \;\;\;\;\frac{1}{2 - a}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\left(b + 2\right) - b \cdot a}\\ \end{array} \]
  5. Add Preprocessing

Alternative 15: 45.6% accurate, 25.4× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;a \leq -4.2 \cdot 10^{-5}:\\ \;\;\;\;\frac{-1}{a \cdot \left(1 + b\right)}\\ \mathbf{else}:\\ \;\;\;\;0.5 + a \cdot 0.25\\ \end{array} \end{array} \]
(FPCore (a b)
 :precision binary64
 (if (<= a -4.2e-5) (/ -1.0 (* a (+ 1.0 b))) (+ 0.5 (* a 0.25))))
double code(double a, double b) {
	double tmp;
	if (a <= -4.2e-5) {
		tmp = -1.0 / (a * (1.0 + b));
	} else {
		tmp = 0.5 + (a * 0.25);
	}
	return tmp;
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    real(8) :: tmp
    if (a <= (-4.2d-5)) then
        tmp = (-1.0d0) / (a * (1.0d0 + b))
    else
        tmp = 0.5d0 + (a * 0.25d0)
    end if
    code = tmp
end function
public static double code(double a, double b) {
	double tmp;
	if (a <= -4.2e-5) {
		tmp = -1.0 / (a * (1.0 + b));
	} else {
		tmp = 0.5 + (a * 0.25);
	}
	return tmp;
}
def code(a, b):
	tmp = 0
	if a <= -4.2e-5:
		tmp = -1.0 / (a * (1.0 + b))
	else:
		tmp = 0.5 + (a * 0.25)
	return tmp
function code(a, b)
	tmp = 0.0
	if (a <= -4.2e-5)
		tmp = Float64(-1.0 / Float64(a * Float64(1.0 + b)));
	else
		tmp = Float64(0.5 + Float64(a * 0.25));
	end
	return tmp
end
function tmp_2 = code(a, b)
	tmp = 0.0;
	if (a <= -4.2e-5)
		tmp = -1.0 / (a * (1.0 + b));
	else
		tmp = 0.5 + (a * 0.25);
	end
	tmp_2 = tmp;
end
code[a_, b_] := If[LessEqual[a, -4.2e-5], N[(-1.0 / N[(a * N[(1.0 + b), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(0.5 + N[(a * 0.25), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;a \leq -4.2 \cdot 10^{-5}:\\
\;\;\;\;\frac{-1}{a \cdot \left(1 + b\right)}\\

\mathbf{else}:\\
\;\;\;\;0.5 + a \cdot 0.25\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if a < -4.19999999999999977e-5

    1. Initial program 98.5%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity98.5%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/98.5%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/98.5%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg98.5%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg98.5%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub3.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity3.0%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/3.0%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse98.5%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg98.5%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg98.5%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg98.5%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp99.8%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified99.8%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 60.7%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(e^{-a} + b \cdot e^{-a}\right)}} \]
    6. Step-by-step derivation
      1. +-commutative60.7%

        \[\leadsto \frac{1}{\color{blue}{\left(e^{-a} + b \cdot e^{-a}\right) + 1}} \]
      2. distribute-rgt1-in98.6%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a}} + 1} \]
    7. Simplified98.6%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 1\right) \cdot e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 18.7%

      \[\leadsto \frac{1}{\color{blue}{2 + \left(b + -1 \cdot \left(a \cdot \left(1 + b\right)\right)\right)}} \]
    9. Step-by-step derivation
      1. associate-+r+18.7%

        \[\leadsto \frac{1}{\color{blue}{\left(2 + b\right) + -1 \cdot \left(a \cdot \left(1 + b\right)\right)}} \]
      2. +-commutative18.7%

        \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right)} + -1 \cdot \left(a \cdot \left(1 + b\right)\right)} \]
      3. mul-1-neg18.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{\left(-a \cdot \left(1 + b\right)\right)}} \]
      4. distribute-rgt-neg-in18.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + \color{blue}{a \cdot \left(-\left(1 + b\right)\right)}} \]
      5. mul-1-neg18.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot \left(1 + b\right)\right)}} \]
      6. distribute-lft-in18.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 \cdot 1 + -1 \cdot b\right)}} \]
      7. metadata-eval18.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(\color{blue}{-1} + -1 \cdot b\right)} \]
      8. mul-1-neg18.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \left(-1 + \color{blue}{\left(-b\right)}\right)} \]
      9. unsub-neg18.7%

        \[\leadsto \frac{1}{\left(b + 2\right) + a \cdot \color{blue}{\left(-1 - b\right)}} \]
    10. Simplified18.7%

      \[\leadsto \frac{1}{\color{blue}{\left(b + 2\right) + a \cdot \left(-1 - b\right)}} \]
    11. Taylor expanded in a around inf 18.7%

      \[\leadsto \color{blue}{\frac{-1}{a \cdot \left(1 + b\right)}} \]

    if -4.19999999999999977e-5 < a

    1. Initial program 99.5%

      \[\frac{e^{a}}{e^{a} + e^{b}} \]
    2. Step-by-step derivation
      1. *-lft-identity99.5%

        \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
      2. associate-*l/99.5%

        \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
      3. associate-/r/99.4%

        \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
      4. remove-double-neg99.4%

        \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
      5. unsub-neg99.4%

        \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
      6. div-sub99.5%

        \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
      7. *-lft-identity99.5%

        \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      8. associate-*l/99.5%

        \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
      9. lft-mult-inverse100.0%

        \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
      10. sub-neg100.0%

        \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
      11. distribute-frac-neg100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
      12. remove-double-neg100.0%

        \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
      13. div-exp100.0%

        \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
    4. Add Preprocessing
    5. Taylor expanded in b around 0 55.1%

      \[\leadsto \frac{1}{\color{blue}{1 + e^{-a}}} \]
    6. Step-by-step derivation
      1. +-commutative55.1%

        \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    7. Simplified55.1%

      \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
    8. Taylor expanded in a around 0 54.2%

      \[\leadsto \color{blue}{0.5 + 0.25 \cdot a} \]
    9. Step-by-step derivation
      1. *-commutative54.2%

        \[\leadsto 0.5 + \color{blue}{a \cdot 0.25} \]
    10. Simplified54.2%

      \[\leadsto \color{blue}{0.5 + a \cdot 0.25} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification45.0%

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \leq -4.2 \cdot 10^{-5}:\\ \;\;\;\;\frac{-1}{a \cdot \left(1 + b\right)}\\ \mathbf{else}:\\ \;\;\;\;0.5 + a \cdot 0.25\\ \end{array} \]
  5. Add Preprocessing

Alternative 16: 40.3% accurate, 61.0× speedup?

\[\begin{array}{l} \\ 0.5 + a \cdot 0.25 \end{array} \]
(FPCore (a b) :precision binary64 (+ 0.5 (* a 0.25)))
double code(double a, double b) {
	return 0.5 + (a * 0.25);
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    code = 0.5d0 + (a * 0.25d0)
end function
public static double code(double a, double b) {
	return 0.5 + (a * 0.25);
}
def code(a, b):
	return 0.5 + (a * 0.25)
function code(a, b)
	return Float64(0.5 + Float64(a * 0.25))
end
function tmp = code(a, b)
	tmp = 0.5 + (a * 0.25);
end
code[a_, b_] := N[(0.5 + N[(a * 0.25), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
0.5 + a \cdot 0.25
\end{array}
Derivation
  1. Initial program 99.2%

    \[\frac{e^{a}}{e^{a} + e^{b}} \]
  2. Step-by-step derivation
    1. *-lft-identity99.2%

      \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
    2. associate-*l/99.2%

      \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
    3. associate-/r/99.2%

      \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
    4. remove-double-neg99.2%

      \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
    5. unsub-neg99.2%

      \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
    6. div-sub74.6%

      \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
    7. *-lft-identity74.6%

      \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
    8. associate-*l/74.6%

      \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
    9. lft-mult-inverse99.6%

      \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
    10. sub-neg99.6%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
    11. distribute-frac-neg99.6%

      \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
    12. remove-double-neg99.6%

      \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
    13. div-exp99.9%

      \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
  3. Simplified99.9%

    \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
  4. Add Preprocessing
  5. Taylor expanded in b around 0 66.1%

    \[\leadsto \frac{1}{\color{blue}{1 + e^{-a}}} \]
  6. Step-by-step derivation
    1. +-commutative66.1%

      \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
  7. Simplified66.1%

    \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
  8. Taylor expanded in a around 0 40.8%

    \[\leadsto \color{blue}{0.5 + 0.25 \cdot a} \]
  9. Step-by-step derivation
    1. *-commutative40.8%

      \[\leadsto 0.5 + \color{blue}{a \cdot 0.25} \]
  10. Simplified40.8%

    \[\leadsto \color{blue}{0.5 + a \cdot 0.25} \]
  11. Final simplification40.8%

    \[\leadsto 0.5 + a \cdot 0.25 \]
  12. Add Preprocessing

Alternative 17: 41.0% accurate, 61.0× speedup?

\[\begin{array}{l} \\ \frac{1}{2 - a} \end{array} \]
(FPCore (a b) :precision binary64 (/ 1.0 (- 2.0 a)))
double code(double a, double b) {
	return 1.0 / (2.0 - a);
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    code = 1.0d0 / (2.0d0 - a)
end function
public static double code(double a, double b) {
	return 1.0 / (2.0 - a);
}
def code(a, b):
	return 1.0 / (2.0 - a)
function code(a, b)
	return Float64(1.0 / Float64(2.0 - a))
end
function tmp = code(a, b)
	tmp = 1.0 / (2.0 - a);
end
code[a_, b_] := N[(1.0 / N[(2.0 - a), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{1}{2 - a}
\end{array}
Derivation
  1. Initial program 99.2%

    \[\frac{e^{a}}{e^{a} + e^{b}} \]
  2. Step-by-step derivation
    1. *-lft-identity99.2%

      \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
    2. associate-*l/99.2%

      \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
    3. associate-/r/99.2%

      \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
    4. remove-double-neg99.2%

      \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
    5. unsub-neg99.2%

      \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
    6. div-sub74.6%

      \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
    7. *-lft-identity74.6%

      \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
    8. associate-*l/74.6%

      \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
    9. lft-mult-inverse99.6%

      \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
    10. sub-neg99.6%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
    11. distribute-frac-neg99.6%

      \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
    12. remove-double-neg99.6%

      \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
    13. div-exp99.9%

      \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
  3. Simplified99.9%

    \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
  4. Add Preprocessing
  5. Taylor expanded in b around 0 66.1%

    \[\leadsto \frac{1}{\color{blue}{1 + e^{-a}}} \]
  6. Step-by-step derivation
    1. +-commutative66.1%

      \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
  7. Simplified66.1%

    \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
  8. Taylor expanded in a around 0 41.1%

    \[\leadsto \frac{1}{\color{blue}{2 + -1 \cdot a}} \]
  9. Step-by-step derivation
    1. neg-mul-141.1%

      \[\leadsto \frac{1}{2 + \color{blue}{\left(-a\right)}} \]
    2. unsub-neg41.1%

      \[\leadsto \frac{1}{\color{blue}{2 - a}} \]
  10. Simplified41.1%

    \[\leadsto \frac{1}{\color{blue}{2 - a}} \]
  11. Final simplification41.1%

    \[\leadsto \frac{1}{2 - a} \]
  12. Add Preprocessing

Alternative 18: 40.1% accurate, 305.0× speedup?

\[\begin{array}{l} \\ 0.5 \end{array} \]
(FPCore (a b) :precision binary64 0.5)
double code(double a, double b) {
	return 0.5;
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    code = 0.5d0
end function
public static double code(double a, double b) {
	return 0.5;
}
def code(a, b):
	return 0.5
function code(a, b)
	return 0.5
end
function tmp = code(a, b)
	tmp = 0.5;
end
code[a_, b_] := 0.5
\begin{array}{l}

\\
0.5
\end{array}
Derivation
  1. Initial program 99.2%

    \[\frac{e^{a}}{e^{a} + e^{b}} \]
  2. Step-by-step derivation
    1. *-lft-identity99.2%

      \[\leadsto \frac{\color{blue}{1 \cdot e^{a}}}{e^{a} + e^{b}} \]
    2. associate-*l/99.2%

      \[\leadsto \color{blue}{\frac{1}{e^{a} + e^{b}} \cdot e^{a}} \]
    3. associate-/r/99.2%

      \[\leadsto \color{blue}{\frac{1}{\frac{e^{a} + e^{b}}{e^{a}}}} \]
    4. remove-double-neg99.2%

      \[\leadsto \frac{1}{\frac{e^{a} + \color{blue}{\left(-\left(-e^{b}\right)\right)}}{e^{a}}} \]
    5. unsub-neg99.2%

      \[\leadsto \frac{1}{\frac{\color{blue}{e^{a} - \left(-e^{b}\right)}}{e^{a}}} \]
    6. div-sub74.6%

      \[\leadsto \frac{1}{\color{blue}{\frac{e^{a}}{e^{a}} - \frac{-e^{b}}{e^{a}}}} \]
    7. *-lft-identity74.6%

      \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot e^{a}}}{e^{a}} - \frac{-e^{b}}{e^{a}}} \]
    8. associate-*l/74.6%

      \[\leadsto \frac{1}{\color{blue}{\frac{1}{e^{a}} \cdot e^{a}} - \frac{-e^{b}}{e^{a}}} \]
    9. lft-mult-inverse99.6%

      \[\leadsto \frac{1}{\color{blue}{1} - \frac{-e^{b}}{e^{a}}} \]
    10. sub-neg99.6%

      \[\leadsto \frac{1}{\color{blue}{1 + \left(-\frac{-e^{b}}{e^{a}}\right)}} \]
    11. distribute-frac-neg99.6%

      \[\leadsto \frac{1}{1 + \color{blue}{\frac{-\left(-e^{b}\right)}{e^{a}}}} \]
    12. remove-double-neg99.6%

      \[\leadsto \frac{1}{1 + \frac{\color{blue}{e^{b}}}{e^{a}}} \]
    13. div-exp99.9%

      \[\leadsto \frac{1}{1 + \color{blue}{e^{b - a}}} \]
  3. Simplified99.9%

    \[\leadsto \color{blue}{\frac{1}{1 + e^{b - a}}} \]
  4. Add Preprocessing
  5. Taylor expanded in b around 0 66.1%

    \[\leadsto \frac{1}{\color{blue}{1 + e^{-a}}} \]
  6. Step-by-step derivation
    1. +-commutative66.1%

      \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
  7. Simplified66.1%

    \[\leadsto \frac{1}{\color{blue}{e^{-a} + 1}} \]
  8. Taylor expanded in a around 0 39.8%

    \[\leadsto \color{blue}{0.5} \]
  9. Final simplification39.8%

    \[\leadsto 0.5 \]
  10. Add Preprocessing

Developer target: 100.0% accurate, 2.9× speedup?

\[\begin{array}{l} \\ \frac{1}{1 + e^{b - a}} \end{array} \]
(FPCore (a b) :precision binary64 (/ 1.0 (+ 1.0 (exp (- b a)))))
double code(double a, double b) {
	return 1.0 / (1.0 + exp((b - a)));
}
real(8) function code(a, b)
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    code = 1.0d0 / (1.0d0 + exp((b - a)))
end function
public static double code(double a, double b) {
	return 1.0 / (1.0 + Math.exp((b - a)));
}
def code(a, b):
	return 1.0 / (1.0 + math.exp((b - a)))
function code(a, b)
	return Float64(1.0 / Float64(1.0 + exp(Float64(b - a))))
end
function tmp = code(a, b)
	tmp = 1.0 / (1.0 + exp((b - a)));
end
code[a_, b_] := N[(1.0 / N[(1.0 + N[Exp[N[(b - a), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{1}{1 + e^{b - a}}
\end{array}

Reproduce

?
herbie shell --seed 2024073 
(FPCore (a b)
  :name "Quotient of sum of exps"
  :precision binary64

  :alt
  (/ 1.0 (+ 1.0 (exp (- b a))))

  (/ (exp a) (+ (exp a) (exp b))))