Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, F

Percentage Accurate: 77.6% → 98.7%
Time: 9.9s
Alternatives: 12
Speedup: 7.7×

Specification

?
\[\begin{array}{l} \\ \frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \end{array} \]
(FPCore (x y) :precision binary64 (/ (exp (* x (log (/ x (+ x y))))) x))
double code(double x, double y) {
	return exp((x * log((x / (x + y))))) / x;
}
real(8) function code(x, y)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    code = exp((x * log((x / (x + y))))) / x
end function
public static double code(double x, double y) {
	return Math.exp((x * Math.log((x / (x + y))))) / x;
}
def code(x, y):
	return math.exp((x * math.log((x / (x + y))))) / x
function code(x, y)
	return Float64(exp(Float64(x * log(Float64(x / Float64(x + y))))) / x)
end
function tmp = code(x, y)
	tmp = exp((x * log((x / (x + y))))) / x;
end
code[x_, y_] := N[(N[Exp[N[(x * N[Log[N[(x / N[(x + y), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / x), $MachinePrecision]
\begin{array}{l}

\\
\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x}
\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 12 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: 77.6% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \end{array} \]
(FPCore (x y) :precision binary64 (/ (exp (* x (log (/ x (+ x y))))) x))
double code(double x, double y) {
	return exp((x * log((x / (x + y))))) / x;
}
real(8) function code(x, y)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    code = exp((x * log((x / (x + y))))) / x
end function
public static double code(double x, double y) {
	return Math.exp((x * Math.log((x / (x + y))))) / x;
}
def code(x, y):
	return math.exp((x * math.log((x / (x + y))))) / x
function code(x, y)
	return Float64(exp(Float64(x * log(Float64(x / Float64(x + y))))) / x)
end
function tmp = code(x, y)
	tmp = exp((x * log((x / (x + y))))) / x;
end
code[x_, y_] := N[(N[Exp[N[(x * N[Log[N[(x / N[(x + y), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] / x), $MachinePrecision]
\begin{array}{l}

\\
\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x}
\end{array}

Alternative 1: 98.7% accurate, 1.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{e^{-y}}{x}\\ \mathbf{if}\;x \leq -1.32 \cdot 10^{+22}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x \leq 0.00045:\\ \;\;\;\;\frac{1}{x}\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
(FPCore (x y)
 :precision binary64
 (let* ((t_0 (/ (exp (- y)) x)))
   (if (<= x -1.32e+22) t_0 (if (<= x 0.00045) (/ 1.0 x) t_0))))
double code(double x, double y) {
	double t_0 = exp(-y) / x;
	double tmp;
	if (x <= -1.32e+22) {
		tmp = t_0;
	} else if (x <= 0.00045) {
		tmp = 1.0 / x;
	} else {
		tmp = t_0;
	}
	return tmp;
}
real(8) function code(x, y)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8) :: t_0
    real(8) :: tmp
    t_0 = exp(-y) / x
    if (x <= (-1.32d+22)) then
        tmp = t_0
    else if (x <= 0.00045d0) then
        tmp = 1.0d0 / x
    else
        tmp = t_0
    end if
    code = tmp
end function
public static double code(double x, double y) {
	double t_0 = Math.exp(-y) / x;
	double tmp;
	if (x <= -1.32e+22) {
		tmp = t_0;
	} else if (x <= 0.00045) {
		tmp = 1.0 / x;
	} else {
		tmp = t_0;
	}
	return tmp;
}
def code(x, y):
	t_0 = math.exp(-y) / x
	tmp = 0
	if x <= -1.32e+22:
		tmp = t_0
	elif x <= 0.00045:
		tmp = 1.0 / x
	else:
		tmp = t_0
	return tmp
function code(x, y)
	t_0 = Float64(exp(Float64(-y)) / x)
	tmp = 0.0
	if (x <= -1.32e+22)
		tmp = t_0;
	elseif (x <= 0.00045)
		tmp = Float64(1.0 / x);
	else
		tmp = t_0;
	end
	return tmp
end
function tmp_2 = code(x, y)
	t_0 = exp(-y) / x;
	tmp = 0.0;
	if (x <= -1.32e+22)
		tmp = t_0;
	elseif (x <= 0.00045)
		tmp = 1.0 / x;
	else
		tmp = t_0;
	end
	tmp_2 = tmp;
end
code[x_, y_] := Block[{t$95$0 = N[(N[Exp[(-y)], $MachinePrecision] / x), $MachinePrecision]}, If[LessEqual[x, -1.32e+22], t$95$0, If[LessEqual[x, 0.00045], N[(1.0 / x), $MachinePrecision], t$95$0]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{e^{-y}}{x}\\
\mathbf{if}\;x \leq -1.32 \cdot 10^{+22}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x \leq 0.00045:\\
\;\;\;\;\frac{1}{x}\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if x < -1.32e22 or 4.4999999999999999e-4 < x

    1. Initial program 75.7%

      \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
    2. Add Preprocessing
    3. Taylor expanded in y around 0

      \[\leadsto \frac{e^{\color{blue}{-1 \cdot y}}}{x} \]
    4. Step-by-step derivation
      1. mul-1-negN/A

        \[\leadsto \frac{e^{\color{blue}{\mathsf{neg}\left(y\right)}}}{x} \]
      2. lower-neg.f64100.0

        \[\leadsto \frac{e^{\color{blue}{-y}}}{x} \]
    5. Applied rewrites100.0%

      \[\leadsto \frac{e^{\color{blue}{-y}}}{x} \]

    if -1.32e22 < x < 4.4999999999999999e-4

    1. Initial program 85.7%

      \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
    2. Add Preprocessing
    3. Taylor expanded in y around 0

      \[\leadsto \frac{\color{blue}{1}}{x} \]
    4. Step-by-step derivation
      1. Applied rewrites99.1%

        \[\leadsto \frac{\color{blue}{1}}{x} \]
    5. Recombined 2 regimes into one program.
    6. Add Preprocessing

    Alternative 2: 86.2% accurate, 2.4× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq -1.32 \cdot 10^{+22}:\\ \;\;\;\;\mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left(0.5, y, -1\right) \cdot x}{x}}{x}, y, \frac{1}{x}\right)\\ \mathbf{elif}\;x \leq 0.00045:\\ \;\;\;\;\frac{1}{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{--1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\left(0.16666666666666666 + \frac{0.3333333333333333}{x \cdot x}\right) - \frac{0.5}{x}, y, 0.5 - \frac{0.5}{x}\right), y, 1\right), y, 1\right) \cdot x}\\ \end{array} \end{array} \]
    (FPCore (x y)
     :precision binary64
     (if (<= x -1.32e+22)
       (fma (/ (/ (* (fma 0.5 y -1.0) x) x) x) y (/ 1.0 x))
       (if (<= x 0.00045)
         (/ 1.0 x)
         (/
          (- -1.0)
          (*
           (fma
            (fma
             (fma
              (- (+ 0.16666666666666666 (/ 0.3333333333333333 (* x x))) (/ 0.5 x))
              y
              (- 0.5 (/ 0.5 x)))
             y
             1.0)
            y
            1.0)
           x)))))
    double code(double x, double y) {
    	double tmp;
    	if (x <= -1.32e+22) {
    		tmp = fma((((fma(0.5, y, -1.0) * x) / x) / x), y, (1.0 / x));
    	} else if (x <= 0.00045) {
    		tmp = 1.0 / x;
    	} else {
    		tmp = -(-1.0) / (fma(fma(fma(((0.16666666666666666 + (0.3333333333333333 / (x * x))) - (0.5 / x)), y, (0.5 - (0.5 / x))), y, 1.0), y, 1.0) * x);
    	}
    	return tmp;
    }
    
    function code(x, y)
    	tmp = 0.0
    	if (x <= -1.32e+22)
    		tmp = fma(Float64(Float64(Float64(fma(0.5, y, -1.0) * x) / x) / x), y, Float64(1.0 / x));
    	elseif (x <= 0.00045)
    		tmp = Float64(1.0 / x);
    	else
    		tmp = Float64(Float64(-(-1.0)) / Float64(fma(fma(fma(Float64(Float64(0.16666666666666666 + Float64(0.3333333333333333 / Float64(x * x))) - Float64(0.5 / x)), y, Float64(0.5 - Float64(0.5 / x))), y, 1.0), y, 1.0) * x));
    	end
    	return tmp
    end
    
    code[x_, y_] := If[LessEqual[x, -1.32e+22], N[(N[(N[(N[(N[(0.5 * y + -1.0), $MachinePrecision] * x), $MachinePrecision] / x), $MachinePrecision] / x), $MachinePrecision] * y + N[(1.0 / x), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 0.00045], N[(1.0 / x), $MachinePrecision], N[((--1.0) / N[(N[(N[(N[(N[(N[(0.16666666666666666 + N[(0.3333333333333333 / N[(x * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(0.5 / x), $MachinePrecision]), $MachinePrecision] * y + N[(0.5 - N[(0.5 / x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y + 1.0), $MachinePrecision] * y + 1.0), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision]]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;x \leq -1.32 \cdot 10^{+22}:\\
    \;\;\;\;\mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left(0.5, y, -1\right) \cdot x}{x}}{x}, y, \frac{1}{x}\right)\\
    
    \mathbf{elif}\;x \leq 0.00045:\\
    \;\;\;\;\frac{1}{x}\\
    
    \mathbf{else}:\\
    \;\;\;\;\frac{--1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\left(0.16666666666666666 + \frac{0.3333333333333333}{x \cdot x}\right) - \frac{0.5}{x}, y, 0.5 - \frac{0.5}{x}\right), y, 1\right), y, 1\right) \cdot x}\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 3 regimes
    2. if x < -1.32e22

      1. Initial program 70.2%

        \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
      2. Add Preprocessing
      3. Taylor expanded in y around 0

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

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

          \[\leadsto \color{blue}{\mathsf{fma}\left(y \cdot \left(\frac{1}{2} \cdot \frac{1}{x} + \frac{1}{2} \cdot \frac{1}{{x}^{2}}\right) - \frac{1}{x}, y, \frac{1}{x}\right)} \]
      5. Applied rewrites67.1%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\frac{\frac{0.5}{x}}{x} + \frac{0.5}{x}, y, \frac{-1}{x}\right), y, \frac{1}{x}\right)} \]
      6. Taylor expanded in x around 0

        \[\leadsto \mathsf{fma}\left(\frac{\frac{1}{2} \cdot y + x \cdot \left(\frac{1}{2} \cdot y - 1\right)}{{x}^{2}}, y, \frac{1}{x}\right) \]
      7. Step-by-step derivation
        1. Applied rewrites76.5%

          \[\leadsto \mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left(\mathsf{fma}\left(0.5, y, -1\right), x, 0.5 \cdot y\right)}{x}}{x}, y, \frac{1}{x}\right) \]
        2. Taylor expanded in x around inf

          \[\leadsto \mathsf{fma}\left(\frac{\frac{x \cdot \left(\frac{1}{2} \cdot y - 1\right)}{x}}{x}, y, \frac{1}{x}\right) \]
        3. Step-by-step derivation
          1. Applied rewrites76.5%

            \[\leadsto \mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left(0.5, y, -1\right) \cdot x}{x}}{x}, y, \frac{1}{x}\right) \]

          if -1.32e22 < x < 4.4999999999999999e-4

          1. Initial program 85.7%

            \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
          2. Add Preprocessing
          3. Taylor expanded in y around 0

            \[\leadsto \frac{\color{blue}{1}}{x} \]
          4. Step-by-step derivation
            1. Applied rewrites99.1%

              \[\leadsto \frac{\color{blue}{1}}{x} \]

            if 4.4999999999999999e-4 < x

            1. Initial program 80.2%

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

                \[\leadsto \color{blue}{\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x}} \]
              2. clear-numN/A

                \[\leadsto \color{blue}{\frac{1}{\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
              3. frac-2negN/A

                \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(1\right)}{\mathsf{neg}\left(\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}\right)}} \]
              4. metadata-evalN/A

                \[\leadsto \frac{\color{blue}{-1}}{\mathsf{neg}\left(\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}\right)} \]
              5. lower-/.f64N/A

                \[\leadsto \color{blue}{\frac{-1}{\mathsf{neg}\left(\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}\right)}} \]
              6. div-invN/A

                \[\leadsto \frac{-1}{\mathsf{neg}\left(\color{blue}{x \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}\right)} \]
              7. distribute-lft-neg-inN/A

                \[\leadsto \frac{-1}{\color{blue}{\left(\mathsf{neg}\left(x\right)\right) \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
              8. lower-*.f64N/A

                \[\leadsto \frac{-1}{\color{blue}{\left(\mathsf{neg}\left(x\right)\right) \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
              9. lower-neg.f64N/A

                \[\leadsto \frac{-1}{\color{blue}{\left(-x\right)} \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}} \]
              10. lift-exp.f64N/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{\color{blue}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
              11. lift-*.f64N/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{e^{\color{blue}{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
              12. *-commutativeN/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{e^{\color{blue}{\log \left(\frac{x}{x + y}\right) \cdot x}}}} \]
              13. lift-log.f64N/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{e^{\color{blue}{\log \left(\frac{x}{x + y}\right)} \cdot x}}} \]
              14. exp-to-powN/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{\color{blue}{{\left(\frac{x}{x + y}\right)}^{x}}}} \]
              15. pow-flipN/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \color{blue}{{\left(\frac{x}{x + y}\right)}^{\left(\mathsf{neg}\left(x\right)\right)}}} \]
              16. neg-mul-1N/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot {\left(\frac{x}{x + y}\right)}^{\color{blue}{\left(-1 \cdot x\right)}}} \]
              17. pow-unpowN/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \color{blue}{{\left({\left(\frac{x}{x + y}\right)}^{-1}\right)}^{x}}} \]
            4. Applied rewrites80.2%

              \[\leadsto \color{blue}{\frac{-1}{\left(-x\right) \cdot {\left(\frac{y + x}{x}\right)}^{x}}} \]
            5. Taylor expanded in y around 0

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

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

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

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \color{blue}{\mathsf{fma}\left(1 + y \cdot \left(\left(\frac{1}{2} + y \cdot \left(\left(\frac{1}{6} + \frac{1}{3} \cdot \frac{1}{{x}^{2}}\right) - \frac{1}{2} \cdot \frac{1}{x}\right)\right) - \frac{1}{2} \cdot \frac{1}{x}\right), y, 1\right)}} \]
            7. Applied rewrites82.0%

              \[\leadsto \frac{-1}{\left(-x\right) \cdot \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\left(\frac{0.3333333333333333}{x \cdot x} + 0.16666666666666666\right) - \frac{0.5}{x}, y, 0.5 - \frac{0.5}{x}\right), y, 1\right), y, 1\right)}} \]
          5. Recombined 3 regimes into one program.
          6. Final simplification87.1%

            \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq -1.32 \cdot 10^{+22}:\\ \;\;\;\;\mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left(0.5, y, -1\right) \cdot x}{x}}{x}, y, \frac{1}{x}\right)\\ \mathbf{elif}\;x \leq 0.00045:\\ \;\;\;\;\frac{1}{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{--1}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\left(0.16666666666666666 + \frac{0.3333333333333333}{x \cdot x}\right) - \frac{0.5}{x}, y, 0.5 - \frac{0.5}{x}\right), y, 1\right), y, 1\right) \cdot x}\\ \end{array} \]
          7. Add Preprocessing

          Alternative 3: 84.2% accurate, 3.1× speedup?

          \[\begin{array}{l} \\ \begin{array}{l} t_0 := \mathsf{fma}\left(0.5 - \frac{0.5}{x}, y, 1\right)\\ \mathbf{if}\;x \leq -3.2 \cdot 10^{+151}:\\ \;\;\;\;\frac{-1}{\mathsf{fma}\left(t\_0, y, 1\right) \cdot \left(-x\right)}\\ \mathbf{elif}\;x \leq -1.15 \cdot 10^{+48}:\\ \;\;\;\;\frac{\frac{\left(1 - y\right) \cdot \left(x \cdot x\right)}{x}}{x \cdot x}\\ \mathbf{elif}\;x \leq 0.00045:\\ \;\;\;\;\frac{1}{x}\\ \mathbf{elif}\;x \leq 10^{+164}:\\ \;\;\;\;\frac{-1}{\mathsf{fma}\left(-y, t\_0 \cdot x, -x\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(0.5, y, -1\right), y, 1\right), x, \left(0.5 \cdot y\right) \cdot y\right)}{x}}{x}\\ \end{array} \end{array} \]
          (FPCore (x y)
           :precision binary64
           (let* ((t_0 (fma (- 0.5 (/ 0.5 x)) y 1.0)))
             (if (<= x -3.2e+151)
               (/ -1.0 (* (fma t_0 y 1.0) (- x)))
               (if (<= x -1.15e+48)
                 (/ (/ (* (- 1.0 y) (* x x)) x) (* x x))
                 (if (<= x 0.00045)
                   (/ 1.0 x)
                   (if (<= x 1e+164)
                     (/ -1.0 (fma (- y) (* t_0 x) (- x)))
                     (/
                      (/ (fma (fma (fma 0.5 y -1.0) y 1.0) x (* (* 0.5 y) y)) x)
                      x)))))))
          double code(double x, double y) {
          	double t_0 = fma((0.5 - (0.5 / x)), y, 1.0);
          	double tmp;
          	if (x <= -3.2e+151) {
          		tmp = -1.0 / (fma(t_0, y, 1.0) * -x);
          	} else if (x <= -1.15e+48) {
          		tmp = (((1.0 - y) * (x * x)) / x) / (x * x);
          	} else if (x <= 0.00045) {
          		tmp = 1.0 / x;
          	} else if (x <= 1e+164) {
          		tmp = -1.0 / fma(-y, (t_0 * x), -x);
          	} else {
          		tmp = (fma(fma(fma(0.5, y, -1.0), y, 1.0), x, ((0.5 * y) * y)) / x) / x;
          	}
          	return tmp;
          }
          
          function code(x, y)
          	t_0 = fma(Float64(0.5 - Float64(0.5 / x)), y, 1.0)
          	tmp = 0.0
          	if (x <= -3.2e+151)
          		tmp = Float64(-1.0 / Float64(fma(t_0, y, 1.0) * Float64(-x)));
          	elseif (x <= -1.15e+48)
          		tmp = Float64(Float64(Float64(Float64(1.0 - y) * Float64(x * x)) / x) / Float64(x * x));
          	elseif (x <= 0.00045)
          		tmp = Float64(1.0 / x);
          	elseif (x <= 1e+164)
          		tmp = Float64(-1.0 / fma(Float64(-y), Float64(t_0 * x), Float64(-x)));
          	else
          		tmp = Float64(Float64(fma(fma(fma(0.5, y, -1.0), y, 1.0), x, Float64(Float64(0.5 * y) * y)) / x) / x);
          	end
          	return tmp
          end
          
          code[x_, y_] := Block[{t$95$0 = N[(N[(0.5 - N[(0.5 / x), $MachinePrecision]), $MachinePrecision] * y + 1.0), $MachinePrecision]}, If[LessEqual[x, -3.2e+151], N[(-1.0 / N[(N[(t$95$0 * y + 1.0), $MachinePrecision] * (-x)), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, -1.15e+48], N[(N[(N[(N[(1.0 - y), $MachinePrecision] * N[(x * x), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision] / N[(x * x), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 0.00045], N[(1.0 / x), $MachinePrecision], If[LessEqual[x, 1e+164], N[(-1.0 / N[((-y) * N[(t$95$0 * x), $MachinePrecision] + (-x)), $MachinePrecision]), $MachinePrecision], N[(N[(N[(N[(N[(0.5 * y + -1.0), $MachinePrecision] * y + 1.0), $MachinePrecision] * x + N[(N[(0.5 * y), $MachinePrecision] * y), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision] / x), $MachinePrecision]]]]]]
          
          \begin{array}{l}
          
          \\
          \begin{array}{l}
          t_0 := \mathsf{fma}\left(0.5 - \frac{0.5}{x}, y, 1\right)\\
          \mathbf{if}\;x \leq -3.2 \cdot 10^{+151}:\\
          \;\;\;\;\frac{-1}{\mathsf{fma}\left(t\_0, y, 1\right) \cdot \left(-x\right)}\\
          
          \mathbf{elif}\;x \leq -1.15 \cdot 10^{+48}:\\
          \;\;\;\;\frac{\frac{\left(1 - y\right) \cdot \left(x \cdot x\right)}{x}}{x \cdot x}\\
          
          \mathbf{elif}\;x \leq 0.00045:\\
          \;\;\;\;\frac{1}{x}\\
          
          \mathbf{elif}\;x \leq 10^{+164}:\\
          \;\;\;\;\frac{-1}{\mathsf{fma}\left(-y, t\_0 \cdot x, -x\right)}\\
          
          \mathbf{else}:\\
          \;\;\;\;\frac{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(0.5, y, -1\right), y, 1\right), x, \left(0.5 \cdot y\right) \cdot y\right)}{x}}{x}\\
          
          
          \end{array}
          \end{array}
          
          Derivation
          1. Split input into 5 regimes
          2. if x < -3.19999999999999994e151

            1. Initial program 57.9%

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

                \[\leadsto \color{blue}{\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x}} \]
              2. clear-numN/A

                \[\leadsto \color{blue}{\frac{1}{\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
              3. frac-2negN/A

                \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(1\right)}{\mathsf{neg}\left(\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}\right)}} \]
              4. metadata-evalN/A

                \[\leadsto \frac{\color{blue}{-1}}{\mathsf{neg}\left(\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}\right)} \]
              5. lower-/.f64N/A

                \[\leadsto \color{blue}{\frac{-1}{\mathsf{neg}\left(\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}\right)}} \]
              6. div-invN/A

                \[\leadsto \frac{-1}{\mathsf{neg}\left(\color{blue}{x \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}\right)} \]
              7. distribute-lft-neg-inN/A

                \[\leadsto \frac{-1}{\color{blue}{\left(\mathsf{neg}\left(x\right)\right) \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
              8. lower-*.f64N/A

                \[\leadsto \frac{-1}{\color{blue}{\left(\mathsf{neg}\left(x\right)\right) \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
              9. lower-neg.f64N/A

                \[\leadsto \frac{-1}{\color{blue}{\left(-x\right)} \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}} \]
              10. lift-exp.f64N/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{\color{blue}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
              11. lift-*.f64N/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{e^{\color{blue}{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
              12. *-commutativeN/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{e^{\color{blue}{\log \left(\frac{x}{x + y}\right) \cdot x}}}} \]
              13. lift-log.f64N/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{e^{\color{blue}{\log \left(\frac{x}{x + y}\right)} \cdot x}}} \]
              14. exp-to-powN/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{\color{blue}{{\left(\frac{x}{x + y}\right)}^{x}}}} \]
              15. pow-flipN/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \color{blue}{{\left(\frac{x}{x + y}\right)}^{\left(\mathsf{neg}\left(x\right)\right)}}} \]
              16. neg-mul-1N/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot {\left(\frac{x}{x + y}\right)}^{\color{blue}{\left(-1 \cdot x\right)}}} \]
              17. pow-unpowN/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \color{blue}{{\left({\left(\frac{x}{x + y}\right)}^{-1}\right)}^{x}}} \]
            4. Applied rewrites57.9%

              \[\leadsto \color{blue}{\frac{-1}{\left(-x\right) \cdot {\left(\frac{y + x}{x}\right)}^{x}}} \]
            5. Taylor expanded in y around 0

              \[\leadsto \frac{-1}{\left(-x\right) \cdot \color{blue}{\left(1 + y \cdot \left(1 + y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right)\right)\right)}} \]
            6. Step-by-step derivation
              1. +-commutativeN/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \color{blue}{\left(y \cdot \left(1 + y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right)\right) + 1\right)}} \]
              2. *-commutativeN/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \left(\color{blue}{\left(1 + y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right)\right) \cdot y} + 1\right)} \]
              3. lower-fma.f64N/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \color{blue}{\mathsf{fma}\left(1 + y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right), y, 1\right)}} \]
              4. +-commutativeN/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \mathsf{fma}\left(\color{blue}{y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right) + 1}, y, 1\right)} \]
              5. *-commutativeN/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \mathsf{fma}\left(\color{blue}{\left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right) \cdot y} + 1, y, 1\right)} \]
              6. lower-fma.f64N/A

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

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}}, y, 1\right), y, 1\right)} \]
              8. associate-*r/N/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{2} - \color{blue}{\frac{\frac{1}{2} \cdot 1}{x}}, y, 1\right), y, 1\right)} \]
              9. metadata-evalN/A

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{2} - \frac{\color{blue}{\frac{1}{2}}}{x}, y, 1\right), y, 1\right)} \]
              10. lower-/.f6474.4

                \[\leadsto \frac{-1}{\left(-x\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(0.5 - \color{blue}{\frac{0.5}{x}}, y, 1\right), y, 1\right)} \]
            7. Applied rewrites74.4%

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

            if -3.19999999999999994e151 < x < -1.15e48

            1. Initial program 83.2%

              \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
            2. Add Preprocessing
            3. Taylor expanded in y around 0

              \[\leadsto \color{blue}{-1 \cdot \frac{y}{x} + \frac{1}{x}} \]
            4. Step-by-step derivation
              1. +-commutativeN/A

                \[\leadsto \color{blue}{\frac{1}{x} + -1 \cdot \frac{y}{x}} \]
              2. mul-1-negN/A

                \[\leadsto \frac{1}{x} + \color{blue}{\left(\mathsf{neg}\left(\frac{y}{x}\right)\right)} \]
              3. unsub-negN/A

                \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
              4. lower--.f64N/A

                \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
              5. lower-/.f64N/A

                \[\leadsto \color{blue}{\frac{1}{x}} - \frac{y}{x} \]
              6. lower-/.f6454.1

                \[\leadsto \frac{1}{x} - \color{blue}{\frac{y}{x}} \]
            5. Applied rewrites54.1%

              \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
            6. Step-by-step derivation
              1. Applied rewrites70.5%

                \[\leadsto \frac{x - y \cdot x}{\color{blue}{x \cdot x}} \]
              2. Applied rewrites87.1%

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

              if -1.15e48 < x < 4.4999999999999999e-4

              1. Initial program 86.0%

                \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
              2. Add Preprocessing
              3. Taylor expanded in y around 0

                \[\leadsto \frac{\color{blue}{1}}{x} \]
              4. Step-by-step derivation
                1. Applied rewrites97.4%

                  \[\leadsto \frac{\color{blue}{1}}{x} \]

                if 4.4999999999999999e-4 < x < 1e164

                1. Initial program 91.9%

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

                    \[\leadsto \color{blue}{\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x}} \]
                  2. clear-numN/A

                    \[\leadsto \color{blue}{\frac{1}{\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
                  3. frac-2negN/A

                    \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(1\right)}{\mathsf{neg}\left(\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}\right)}} \]
                  4. metadata-evalN/A

                    \[\leadsto \frac{\color{blue}{-1}}{\mathsf{neg}\left(\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}\right)} \]
                  5. lower-/.f64N/A

                    \[\leadsto \color{blue}{\frac{-1}{\mathsf{neg}\left(\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}\right)}} \]
                  6. div-invN/A

                    \[\leadsto \frac{-1}{\mathsf{neg}\left(\color{blue}{x \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}\right)} \]
                  7. distribute-lft-neg-inN/A

                    \[\leadsto \frac{-1}{\color{blue}{\left(\mathsf{neg}\left(x\right)\right) \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
                  8. lower-*.f64N/A

                    \[\leadsto \frac{-1}{\color{blue}{\left(\mathsf{neg}\left(x\right)\right) \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
                  9. lower-neg.f64N/A

                    \[\leadsto \frac{-1}{\color{blue}{\left(-x\right)} \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}} \]
                  10. lift-exp.f64N/A

                    \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{\color{blue}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
                  11. lift-*.f64N/A

                    \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{e^{\color{blue}{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
                  12. *-commutativeN/A

                    \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{e^{\color{blue}{\log \left(\frac{x}{x + y}\right) \cdot x}}}} \]
                  13. lift-log.f64N/A

                    \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{e^{\color{blue}{\log \left(\frac{x}{x + y}\right)} \cdot x}}} \]
                  14. exp-to-powN/A

                    \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{\color{blue}{{\left(\frac{x}{x + y}\right)}^{x}}}} \]
                  15. pow-flipN/A

                    \[\leadsto \frac{-1}{\left(-x\right) \cdot \color{blue}{{\left(\frac{x}{x + y}\right)}^{\left(\mathsf{neg}\left(x\right)\right)}}} \]
                  16. neg-mul-1N/A

                    \[\leadsto \frac{-1}{\left(-x\right) \cdot {\left(\frac{x}{x + y}\right)}^{\color{blue}{\left(-1 \cdot x\right)}}} \]
                  17. pow-unpowN/A

                    \[\leadsto \frac{-1}{\left(-x\right) \cdot \color{blue}{{\left({\left(\frac{x}{x + y}\right)}^{-1}\right)}^{x}}} \]
                4. Applied rewrites91.9%

                  \[\leadsto \color{blue}{\frac{-1}{\left(-x\right) \cdot {\left(\frac{y + x}{x}\right)}^{x}}} \]
                5. Taylor expanded in y around 0

                  \[\leadsto \frac{-1}{\color{blue}{-1 \cdot x + y \cdot \left(-1 \cdot x + -1 \cdot \left(x \cdot \left(y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right)\right)\right)\right)}} \]
                6. Step-by-step derivation
                  1. +-commutativeN/A

                    \[\leadsto \frac{-1}{\color{blue}{y \cdot \left(-1 \cdot x + -1 \cdot \left(x \cdot \left(y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right)\right)\right)\right) + -1 \cdot x}} \]
                  2. distribute-lft-outN/A

                    \[\leadsto \frac{-1}{y \cdot \color{blue}{\left(-1 \cdot \left(x + x \cdot \left(y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right)\right)\right)\right)} + -1 \cdot x} \]
                  3. associate-*r*N/A

                    \[\leadsto \frac{-1}{\color{blue}{\left(y \cdot -1\right) \cdot \left(x + x \cdot \left(y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right)\right)\right)} + -1 \cdot x} \]
                  4. *-commutativeN/A

                    \[\leadsto \frac{-1}{\color{blue}{\left(-1 \cdot y\right)} \cdot \left(x + x \cdot \left(y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right)\right)\right) + -1 \cdot x} \]
                  5. lower-fma.f64N/A

                    \[\leadsto \frac{-1}{\color{blue}{\mathsf{fma}\left(-1 \cdot y, x + x \cdot \left(y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right)\right), -1 \cdot x\right)}} \]
                7. Applied rewrites84.2%

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

                if 1e164 < x

                1. Initial program 65.7%

                  \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                2. Add Preprocessing
                3. Taylor expanded in y around 0

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

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

                    \[\leadsto \color{blue}{\mathsf{fma}\left(y \cdot \left(\frac{1}{2} \cdot \frac{1}{x} + \frac{1}{2} \cdot \frac{1}{{x}^{2}}\right) - \frac{1}{x}, y, \frac{1}{x}\right)} \]
                5. Applied rewrites55.8%

                  \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\frac{\frac{0.5}{x}}{x} + \frac{0.5}{x}, y, \frac{-1}{x}\right), y, \frac{1}{x}\right)} \]
                6. Taylor expanded in x around 0

                  \[\leadsto \frac{\frac{1}{2} \cdot {y}^{2} + x \cdot \left(1 + y \cdot \left(\frac{1}{2} \cdot y - 1\right)\right)}{\color{blue}{{x}^{2}}} \]
                7. Step-by-step derivation
                  1. Applied rewrites82.4%

                    \[\leadsto \frac{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(0.5, y, -1\right), y, 1\right), x, \left(0.5 \cdot y\right) \cdot y\right)}{x}}{\color{blue}{x}} \]
                8. Recombined 5 regimes into one program.
                9. Final simplification88.3%

                  \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq -3.2 \cdot 10^{+151}:\\ \;\;\;\;\frac{-1}{\mathsf{fma}\left(\mathsf{fma}\left(0.5 - \frac{0.5}{x}, y, 1\right), y, 1\right) \cdot \left(-x\right)}\\ \mathbf{elif}\;x \leq -1.15 \cdot 10^{+48}:\\ \;\;\;\;\frac{\frac{\left(1 - y\right) \cdot \left(x \cdot x\right)}{x}}{x \cdot x}\\ \mathbf{elif}\;x \leq 0.00045:\\ \;\;\;\;\frac{1}{x}\\ \mathbf{elif}\;x \leq 10^{+164}:\\ \;\;\;\;\frac{-1}{\mathsf{fma}\left(-y, \mathsf{fma}\left(0.5 - \frac{0.5}{x}, y, 1\right) \cdot x, -x\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(0.5, y, -1\right), y, 1\right), x, \left(0.5 \cdot y\right) \cdot y\right)}{x}}{x}\\ \end{array} \]
                10. Add Preprocessing

                Alternative 4: 84.7% accurate, 3.3× speedup?

                \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq -1.32 \cdot 10^{+22}:\\ \;\;\;\;\mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left(0.5, y, -1\right) \cdot x}{x}}{x}, y, \frac{1}{x}\right)\\ \mathbf{elif}\;x \leq 0.00045:\\ \;\;\;\;\frac{1}{x}\\ \mathbf{elif}\;x \leq 10^{+164}:\\ \;\;\;\;\frac{-1}{\mathsf{fma}\left(-y, \mathsf{fma}\left(0.5 - \frac{0.5}{x}, y, 1\right) \cdot x, -x\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(0.5, y, -1\right), y, 1\right), x, \left(0.5 \cdot y\right) \cdot y\right)}{x}}{x}\\ \end{array} \end{array} \]
                (FPCore (x y)
                 :precision binary64
                 (if (<= x -1.32e+22)
                   (fma (/ (/ (* (fma 0.5 y -1.0) x) x) x) y (/ 1.0 x))
                   (if (<= x 0.00045)
                     (/ 1.0 x)
                     (if (<= x 1e+164)
                       (/ -1.0 (fma (- y) (* (fma (- 0.5 (/ 0.5 x)) y 1.0) x) (- x)))
                       (/ (/ (fma (fma (fma 0.5 y -1.0) y 1.0) x (* (* 0.5 y) y)) x) x)))))
                double code(double x, double y) {
                	double tmp;
                	if (x <= -1.32e+22) {
                		tmp = fma((((fma(0.5, y, -1.0) * x) / x) / x), y, (1.0 / x));
                	} else if (x <= 0.00045) {
                		tmp = 1.0 / x;
                	} else if (x <= 1e+164) {
                		tmp = -1.0 / fma(-y, (fma((0.5 - (0.5 / x)), y, 1.0) * x), -x);
                	} else {
                		tmp = (fma(fma(fma(0.5, y, -1.0), y, 1.0), x, ((0.5 * y) * y)) / x) / x;
                	}
                	return tmp;
                }
                
                function code(x, y)
                	tmp = 0.0
                	if (x <= -1.32e+22)
                		tmp = fma(Float64(Float64(Float64(fma(0.5, y, -1.0) * x) / x) / x), y, Float64(1.0 / x));
                	elseif (x <= 0.00045)
                		tmp = Float64(1.0 / x);
                	elseif (x <= 1e+164)
                		tmp = Float64(-1.0 / fma(Float64(-y), Float64(fma(Float64(0.5 - Float64(0.5 / x)), y, 1.0) * x), Float64(-x)));
                	else
                		tmp = Float64(Float64(fma(fma(fma(0.5, y, -1.0), y, 1.0), x, Float64(Float64(0.5 * y) * y)) / x) / x);
                	end
                	return tmp
                end
                
                code[x_, y_] := If[LessEqual[x, -1.32e+22], N[(N[(N[(N[(N[(0.5 * y + -1.0), $MachinePrecision] * x), $MachinePrecision] / x), $MachinePrecision] / x), $MachinePrecision] * y + N[(1.0 / x), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 0.00045], N[(1.0 / x), $MachinePrecision], If[LessEqual[x, 1e+164], N[(-1.0 / N[((-y) * N[(N[(N[(0.5 - N[(0.5 / x), $MachinePrecision]), $MachinePrecision] * y + 1.0), $MachinePrecision] * x), $MachinePrecision] + (-x)), $MachinePrecision]), $MachinePrecision], N[(N[(N[(N[(N[(0.5 * y + -1.0), $MachinePrecision] * y + 1.0), $MachinePrecision] * x + N[(N[(0.5 * y), $MachinePrecision] * y), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision] / x), $MachinePrecision]]]]
                
                \begin{array}{l}
                
                \\
                \begin{array}{l}
                \mathbf{if}\;x \leq -1.32 \cdot 10^{+22}:\\
                \;\;\;\;\mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left(0.5, y, -1\right) \cdot x}{x}}{x}, y, \frac{1}{x}\right)\\
                
                \mathbf{elif}\;x \leq 0.00045:\\
                \;\;\;\;\frac{1}{x}\\
                
                \mathbf{elif}\;x \leq 10^{+164}:\\
                \;\;\;\;\frac{-1}{\mathsf{fma}\left(-y, \mathsf{fma}\left(0.5 - \frac{0.5}{x}, y, 1\right) \cdot x, -x\right)}\\
                
                \mathbf{else}:\\
                \;\;\;\;\frac{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(0.5, y, -1\right), y, 1\right), x, \left(0.5 \cdot y\right) \cdot y\right)}{x}}{x}\\
                
                
                \end{array}
                \end{array}
                
                Derivation
                1. Split input into 4 regimes
                2. if x < -1.32e22

                  1. Initial program 70.2%

                    \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                  2. Add Preprocessing
                  3. Taylor expanded in y around 0

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

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

                      \[\leadsto \color{blue}{\mathsf{fma}\left(y \cdot \left(\frac{1}{2} \cdot \frac{1}{x} + \frac{1}{2} \cdot \frac{1}{{x}^{2}}\right) - \frac{1}{x}, y, \frac{1}{x}\right)} \]
                  5. Applied rewrites67.1%

                    \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\frac{\frac{0.5}{x}}{x} + \frac{0.5}{x}, y, \frac{-1}{x}\right), y, \frac{1}{x}\right)} \]
                  6. Taylor expanded in x around 0

                    \[\leadsto \mathsf{fma}\left(\frac{\frac{1}{2} \cdot y + x \cdot \left(\frac{1}{2} \cdot y - 1\right)}{{x}^{2}}, y, \frac{1}{x}\right) \]
                  7. Step-by-step derivation
                    1. Applied rewrites76.5%

                      \[\leadsto \mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left(\mathsf{fma}\left(0.5, y, -1\right), x, 0.5 \cdot y\right)}{x}}{x}, y, \frac{1}{x}\right) \]
                    2. Taylor expanded in x around inf

                      \[\leadsto \mathsf{fma}\left(\frac{\frac{x \cdot \left(\frac{1}{2} \cdot y - 1\right)}{x}}{x}, y, \frac{1}{x}\right) \]
                    3. Step-by-step derivation
                      1. Applied rewrites76.5%

                        \[\leadsto \mathsf{fma}\left(\frac{\frac{\mathsf{fma}\left(0.5, y, -1\right) \cdot x}{x}}{x}, y, \frac{1}{x}\right) \]

                      if -1.32e22 < x < 4.4999999999999999e-4

                      1. Initial program 85.7%

                        \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                      2. Add Preprocessing
                      3. Taylor expanded in y around 0

                        \[\leadsto \frac{\color{blue}{1}}{x} \]
                      4. Step-by-step derivation
                        1. Applied rewrites99.1%

                          \[\leadsto \frac{\color{blue}{1}}{x} \]

                        if 4.4999999999999999e-4 < x < 1e164

                        1. Initial program 91.9%

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

                            \[\leadsto \color{blue}{\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x}} \]
                          2. clear-numN/A

                            \[\leadsto \color{blue}{\frac{1}{\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
                          3. frac-2negN/A

                            \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(1\right)}{\mathsf{neg}\left(\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}\right)}} \]
                          4. metadata-evalN/A

                            \[\leadsto \frac{\color{blue}{-1}}{\mathsf{neg}\left(\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}\right)} \]
                          5. lower-/.f64N/A

                            \[\leadsto \color{blue}{\frac{-1}{\mathsf{neg}\left(\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}\right)}} \]
                          6. div-invN/A

                            \[\leadsto \frac{-1}{\mathsf{neg}\left(\color{blue}{x \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}\right)} \]
                          7. distribute-lft-neg-inN/A

                            \[\leadsto \frac{-1}{\color{blue}{\left(\mathsf{neg}\left(x\right)\right) \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
                          8. lower-*.f64N/A

                            \[\leadsto \frac{-1}{\color{blue}{\left(\mathsf{neg}\left(x\right)\right) \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
                          9. lower-neg.f64N/A

                            \[\leadsto \frac{-1}{\color{blue}{\left(-x\right)} \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}} \]
                          10. lift-exp.f64N/A

                            \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{\color{blue}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
                          11. lift-*.f64N/A

                            \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{e^{\color{blue}{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
                          12. *-commutativeN/A

                            \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{e^{\color{blue}{\log \left(\frac{x}{x + y}\right) \cdot x}}}} \]
                          13. lift-log.f64N/A

                            \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{e^{\color{blue}{\log \left(\frac{x}{x + y}\right)} \cdot x}}} \]
                          14. exp-to-powN/A

                            \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{\color{blue}{{\left(\frac{x}{x + y}\right)}^{x}}}} \]
                          15. pow-flipN/A

                            \[\leadsto \frac{-1}{\left(-x\right) \cdot \color{blue}{{\left(\frac{x}{x + y}\right)}^{\left(\mathsf{neg}\left(x\right)\right)}}} \]
                          16. neg-mul-1N/A

                            \[\leadsto \frac{-1}{\left(-x\right) \cdot {\left(\frac{x}{x + y}\right)}^{\color{blue}{\left(-1 \cdot x\right)}}} \]
                          17. pow-unpowN/A

                            \[\leadsto \frac{-1}{\left(-x\right) \cdot \color{blue}{{\left({\left(\frac{x}{x + y}\right)}^{-1}\right)}^{x}}} \]
                        4. Applied rewrites91.9%

                          \[\leadsto \color{blue}{\frac{-1}{\left(-x\right) \cdot {\left(\frac{y + x}{x}\right)}^{x}}} \]
                        5. Taylor expanded in y around 0

                          \[\leadsto \frac{-1}{\color{blue}{-1 \cdot x + y \cdot \left(-1 \cdot x + -1 \cdot \left(x \cdot \left(y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right)\right)\right)\right)}} \]
                        6. Step-by-step derivation
                          1. +-commutativeN/A

                            \[\leadsto \frac{-1}{\color{blue}{y \cdot \left(-1 \cdot x + -1 \cdot \left(x \cdot \left(y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right)\right)\right)\right) + -1 \cdot x}} \]
                          2. distribute-lft-outN/A

                            \[\leadsto \frac{-1}{y \cdot \color{blue}{\left(-1 \cdot \left(x + x \cdot \left(y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right)\right)\right)\right)} + -1 \cdot x} \]
                          3. associate-*r*N/A

                            \[\leadsto \frac{-1}{\color{blue}{\left(y \cdot -1\right) \cdot \left(x + x \cdot \left(y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right)\right)\right)} + -1 \cdot x} \]
                          4. *-commutativeN/A

                            \[\leadsto \frac{-1}{\color{blue}{\left(-1 \cdot y\right)} \cdot \left(x + x \cdot \left(y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right)\right)\right) + -1 \cdot x} \]
                          5. lower-fma.f64N/A

                            \[\leadsto \frac{-1}{\color{blue}{\mathsf{fma}\left(-1 \cdot y, x + x \cdot \left(y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right)\right), -1 \cdot x\right)}} \]
                        7. Applied rewrites84.2%

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

                        if 1e164 < x

                        1. Initial program 65.7%

                          \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                        2. Add Preprocessing
                        3. Taylor expanded in y around 0

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

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

                            \[\leadsto \color{blue}{\mathsf{fma}\left(y \cdot \left(\frac{1}{2} \cdot \frac{1}{x} + \frac{1}{2} \cdot \frac{1}{{x}^{2}}\right) - \frac{1}{x}, y, \frac{1}{x}\right)} \]
                        5. Applied rewrites55.8%

                          \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\frac{\frac{0.5}{x}}{x} + \frac{0.5}{x}, y, \frac{-1}{x}\right), y, \frac{1}{x}\right)} \]
                        6. Taylor expanded in x around 0

                          \[\leadsto \frac{\frac{1}{2} \cdot {y}^{2} + x \cdot \left(1 + y \cdot \left(\frac{1}{2} \cdot y - 1\right)\right)}{\color{blue}{{x}^{2}}} \]
                        7. Step-by-step derivation
                          1. Applied rewrites82.4%

                            \[\leadsto \frac{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(0.5, y, -1\right), y, 1\right), x, \left(0.5 \cdot y\right) \cdot y\right)}{x}}{\color{blue}{x}} \]
                        8. Recombined 4 regimes into one program.
                        9. Add Preprocessing

                        Alternative 5: 85.1% accurate, 3.7× speedup?

                        \[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{-1}{\mathsf{fma}\left(\mathsf{fma}\left(0.5 - \frac{0.5}{x}, y, 1\right), y, 1\right) \cdot \left(-x\right)}\\ \mathbf{if}\;x \leq -3.2 \cdot 10^{+151}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x \leq -1.15 \cdot 10^{+48}:\\ \;\;\;\;\frac{\frac{\left(1 - y\right) \cdot \left(x \cdot x\right)}{x}}{x \cdot x}\\ \mathbf{elif}\;x \leq 0.00045:\\ \;\;\;\;\frac{1}{x}\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
                        (FPCore (x y)
                         :precision binary64
                         (let* ((t_0 (/ -1.0 (* (fma (fma (- 0.5 (/ 0.5 x)) y 1.0) y 1.0) (- x)))))
                           (if (<= x -3.2e+151)
                             t_0
                             (if (<= x -1.15e+48)
                               (/ (/ (* (- 1.0 y) (* x x)) x) (* x x))
                               (if (<= x 0.00045) (/ 1.0 x) t_0)))))
                        double code(double x, double y) {
                        	double t_0 = -1.0 / (fma(fma((0.5 - (0.5 / x)), y, 1.0), y, 1.0) * -x);
                        	double tmp;
                        	if (x <= -3.2e+151) {
                        		tmp = t_0;
                        	} else if (x <= -1.15e+48) {
                        		tmp = (((1.0 - y) * (x * x)) / x) / (x * x);
                        	} else if (x <= 0.00045) {
                        		tmp = 1.0 / x;
                        	} else {
                        		tmp = t_0;
                        	}
                        	return tmp;
                        }
                        
                        function code(x, y)
                        	t_0 = Float64(-1.0 / Float64(fma(fma(Float64(0.5 - Float64(0.5 / x)), y, 1.0), y, 1.0) * Float64(-x)))
                        	tmp = 0.0
                        	if (x <= -3.2e+151)
                        		tmp = t_0;
                        	elseif (x <= -1.15e+48)
                        		tmp = Float64(Float64(Float64(Float64(1.0 - y) * Float64(x * x)) / x) / Float64(x * x));
                        	elseif (x <= 0.00045)
                        		tmp = Float64(1.0 / x);
                        	else
                        		tmp = t_0;
                        	end
                        	return tmp
                        end
                        
                        code[x_, y_] := Block[{t$95$0 = N[(-1.0 / N[(N[(N[(N[(0.5 - N[(0.5 / x), $MachinePrecision]), $MachinePrecision] * y + 1.0), $MachinePrecision] * y + 1.0), $MachinePrecision] * (-x)), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -3.2e+151], t$95$0, If[LessEqual[x, -1.15e+48], N[(N[(N[(N[(1.0 - y), $MachinePrecision] * N[(x * x), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision] / N[(x * x), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 0.00045], N[(1.0 / x), $MachinePrecision], t$95$0]]]]
                        
                        \begin{array}{l}
                        
                        \\
                        \begin{array}{l}
                        t_0 := \frac{-1}{\mathsf{fma}\left(\mathsf{fma}\left(0.5 - \frac{0.5}{x}, y, 1\right), y, 1\right) \cdot \left(-x\right)}\\
                        \mathbf{if}\;x \leq -3.2 \cdot 10^{+151}:\\
                        \;\;\;\;t\_0\\
                        
                        \mathbf{elif}\;x \leq -1.15 \cdot 10^{+48}:\\
                        \;\;\;\;\frac{\frac{\left(1 - y\right) \cdot \left(x \cdot x\right)}{x}}{x \cdot x}\\
                        
                        \mathbf{elif}\;x \leq 0.00045:\\
                        \;\;\;\;\frac{1}{x}\\
                        
                        \mathbf{else}:\\
                        \;\;\;\;t\_0\\
                        
                        
                        \end{array}
                        \end{array}
                        
                        Derivation
                        1. Split input into 3 regimes
                        2. if x < -3.19999999999999994e151 or 4.4999999999999999e-4 < x

                          1. Initial program 73.4%

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

                              \[\leadsto \color{blue}{\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x}} \]
                            2. clear-numN/A

                              \[\leadsto \color{blue}{\frac{1}{\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
                            3. frac-2negN/A

                              \[\leadsto \color{blue}{\frac{\mathsf{neg}\left(1\right)}{\mathsf{neg}\left(\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}\right)}} \]
                            4. metadata-evalN/A

                              \[\leadsto \frac{\color{blue}{-1}}{\mathsf{neg}\left(\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}\right)} \]
                            5. lower-/.f64N/A

                              \[\leadsto \color{blue}{\frac{-1}{\mathsf{neg}\left(\frac{x}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}\right)}} \]
                            6. div-invN/A

                              \[\leadsto \frac{-1}{\mathsf{neg}\left(\color{blue}{x \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}\right)} \]
                            7. distribute-lft-neg-inN/A

                              \[\leadsto \frac{-1}{\color{blue}{\left(\mathsf{neg}\left(x\right)\right) \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
                            8. lower-*.f64N/A

                              \[\leadsto \frac{-1}{\color{blue}{\left(\mathsf{neg}\left(x\right)\right) \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
                            9. lower-neg.f64N/A

                              \[\leadsto \frac{-1}{\color{blue}{\left(-x\right)} \cdot \frac{1}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}} \]
                            10. lift-exp.f64N/A

                              \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{\color{blue}{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
                            11. lift-*.f64N/A

                              \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{e^{\color{blue}{x \cdot \log \left(\frac{x}{x + y}\right)}}}} \]
                            12. *-commutativeN/A

                              \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{e^{\color{blue}{\log \left(\frac{x}{x + y}\right) \cdot x}}}} \]
                            13. lift-log.f64N/A

                              \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{e^{\color{blue}{\log \left(\frac{x}{x + y}\right)} \cdot x}}} \]
                            14. exp-to-powN/A

                              \[\leadsto \frac{-1}{\left(-x\right) \cdot \frac{1}{\color{blue}{{\left(\frac{x}{x + y}\right)}^{x}}}} \]
                            15. pow-flipN/A

                              \[\leadsto \frac{-1}{\left(-x\right) \cdot \color{blue}{{\left(\frac{x}{x + y}\right)}^{\left(\mathsf{neg}\left(x\right)\right)}}} \]
                            16. neg-mul-1N/A

                              \[\leadsto \frac{-1}{\left(-x\right) \cdot {\left(\frac{x}{x + y}\right)}^{\color{blue}{\left(-1 \cdot x\right)}}} \]
                            17. pow-unpowN/A

                              \[\leadsto \frac{-1}{\left(-x\right) \cdot \color{blue}{{\left({\left(\frac{x}{x + y}\right)}^{-1}\right)}^{x}}} \]
                          4. Applied rewrites73.4%

                            \[\leadsto \color{blue}{\frac{-1}{\left(-x\right) \cdot {\left(\frac{y + x}{x}\right)}^{x}}} \]
                          5. Taylor expanded in y around 0

                            \[\leadsto \frac{-1}{\left(-x\right) \cdot \color{blue}{\left(1 + y \cdot \left(1 + y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right)\right)\right)}} \]
                          6. Step-by-step derivation
                            1. +-commutativeN/A

                              \[\leadsto \frac{-1}{\left(-x\right) \cdot \color{blue}{\left(y \cdot \left(1 + y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right)\right) + 1\right)}} \]
                            2. *-commutativeN/A

                              \[\leadsto \frac{-1}{\left(-x\right) \cdot \left(\color{blue}{\left(1 + y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right)\right) \cdot y} + 1\right)} \]
                            3. lower-fma.f64N/A

                              \[\leadsto \frac{-1}{\left(-x\right) \cdot \color{blue}{\mathsf{fma}\left(1 + y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right), y, 1\right)}} \]
                            4. +-commutativeN/A

                              \[\leadsto \frac{-1}{\left(-x\right) \cdot \mathsf{fma}\left(\color{blue}{y \cdot \left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right) + 1}, y, 1\right)} \]
                            5. *-commutativeN/A

                              \[\leadsto \frac{-1}{\left(-x\right) \cdot \mathsf{fma}\left(\color{blue}{\left(\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}\right) \cdot y} + 1, y, 1\right)} \]
                            6. lower-fma.f64N/A

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

                              \[\leadsto \frac{-1}{\left(-x\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{1}{2} - \frac{1}{2} \cdot \frac{1}{x}}, y, 1\right), y, 1\right)} \]
                            8. associate-*r/N/A

                              \[\leadsto \frac{-1}{\left(-x\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{2} - \color{blue}{\frac{\frac{1}{2} \cdot 1}{x}}, y, 1\right), y, 1\right)} \]
                            9. metadata-evalN/A

                              \[\leadsto \frac{-1}{\left(-x\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{2} - \frac{\color{blue}{\frac{1}{2}}}{x}, y, 1\right), y, 1\right)} \]
                            10. lower-/.f6476.8

                              \[\leadsto \frac{-1}{\left(-x\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(0.5 - \color{blue}{\frac{0.5}{x}}, y, 1\right), y, 1\right)} \]
                          7. Applied rewrites76.8%

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

                          if -3.19999999999999994e151 < x < -1.15e48

                          1. Initial program 83.2%

                            \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                          2. Add Preprocessing
                          3. Taylor expanded in y around 0

                            \[\leadsto \color{blue}{-1 \cdot \frac{y}{x} + \frac{1}{x}} \]
                          4. Step-by-step derivation
                            1. +-commutativeN/A

                              \[\leadsto \color{blue}{\frac{1}{x} + -1 \cdot \frac{y}{x}} \]
                            2. mul-1-negN/A

                              \[\leadsto \frac{1}{x} + \color{blue}{\left(\mathsf{neg}\left(\frac{y}{x}\right)\right)} \]
                            3. unsub-negN/A

                              \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                            4. lower--.f64N/A

                              \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                            5. lower-/.f64N/A

                              \[\leadsto \color{blue}{\frac{1}{x}} - \frac{y}{x} \]
                            6. lower-/.f6454.1

                              \[\leadsto \frac{1}{x} - \color{blue}{\frac{y}{x}} \]
                          5. Applied rewrites54.1%

                            \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                          6. Step-by-step derivation
                            1. Applied rewrites70.5%

                              \[\leadsto \frac{x - y \cdot x}{\color{blue}{x \cdot x}} \]
                            2. Applied rewrites87.1%

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

                            if -1.15e48 < x < 4.4999999999999999e-4

                            1. Initial program 86.0%

                              \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                            2. Add Preprocessing
                            3. Taylor expanded in y around 0

                              \[\leadsto \frac{\color{blue}{1}}{x} \]
                            4. Step-by-step derivation
                              1. Applied rewrites97.4%

                                \[\leadsto \frac{\color{blue}{1}}{x} \]
                            5. Recombined 3 regimes into one program.
                            6. Final simplification86.4%

                              \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq -3.2 \cdot 10^{+151}:\\ \;\;\;\;\frac{-1}{\mathsf{fma}\left(\mathsf{fma}\left(0.5 - \frac{0.5}{x}, y, 1\right), y, 1\right) \cdot \left(-x\right)}\\ \mathbf{elif}\;x \leq -1.15 \cdot 10^{+48}:\\ \;\;\;\;\frac{\frac{\left(1 - y\right) \cdot \left(x \cdot x\right)}{x}}{x \cdot x}\\ \mathbf{elif}\;x \leq 0.00045:\\ \;\;\;\;\frac{1}{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{\mathsf{fma}\left(\mathsf{fma}\left(0.5 - \frac{0.5}{x}, y, 1\right), y, 1\right) \cdot \left(-x\right)}\\ \end{array} \]
                            7. Add Preprocessing

                            Alternative 6: 82.8% accurate, 4.4× speedup?

                            \[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{\frac{x - y \cdot x}{x}}{x}\\ \mathbf{if}\;x \leq -1.32 \cdot 10^{+22}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x \leq 0.00045:\\ \;\;\;\;\frac{1}{x}\\ \mathbf{elif}\;x \leq 1.1 \cdot 10^{+157}:\\ \;\;\;\;\frac{\frac{1}{x}}{\mathsf{fma}\left(y, x, x\right)} \cdot x\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
                            (FPCore (x y)
                             :precision binary64
                             (let* ((t_0 (/ (/ (- x (* y x)) x) x)))
                               (if (<= x -1.32e+22)
                                 t_0
                                 (if (<= x 0.00045)
                                   (/ 1.0 x)
                                   (if (<= x 1.1e+157) (* (/ (/ 1.0 x) (fma y x x)) x) t_0)))))
                            double code(double x, double y) {
                            	double t_0 = ((x - (y * x)) / x) / x;
                            	double tmp;
                            	if (x <= -1.32e+22) {
                            		tmp = t_0;
                            	} else if (x <= 0.00045) {
                            		tmp = 1.0 / x;
                            	} else if (x <= 1.1e+157) {
                            		tmp = ((1.0 / x) / fma(y, x, x)) * x;
                            	} else {
                            		tmp = t_0;
                            	}
                            	return tmp;
                            }
                            
                            function code(x, y)
                            	t_0 = Float64(Float64(Float64(x - Float64(y * x)) / x) / x)
                            	tmp = 0.0
                            	if (x <= -1.32e+22)
                            		tmp = t_0;
                            	elseif (x <= 0.00045)
                            		tmp = Float64(1.0 / x);
                            	elseif (x <= 1.1e+157)
                            		tmp = Float64(Float64(Float64(1.0 / x) / fma(y, x, x)) * x);
                            	else
                            		tmp = t_0;
                            	end
                            	return tmp
                            end
                            
                            code[x_, y_] := Block[{t$95$0 = N[(N[(N[(x - N[(y * x), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision] / x), $MachinePrecision]}, If[LessEqual[x, -1.32e+22], t$95$0, If[LessEqual[x, 0.00045], N[(1.0 / x), $MachinePrecision], If[LessEqual[x, 1.1e+157], N[(N[(N[(1.0 / x), $MachinePrecision] / N[(y * x + x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision], t$95$0]]]]
                            
                            \begin{array}{l}
                            
                            \\
                            \begin{array}{l}
                            t_0 := \frac{\frac{x - y \cdot x}{x}}{x}\\
                            \mathbf{if}\;x \leq -1.32 \cdot 10^{+22}:\\
                            \;\;\;\;t\_0\\
                            
                            \mathbf{elif}\;x \leq 0.00045:\\
                            \;\;\;\;\frac{1}{x}\\
                            
                            \mathbf{elif}\;x \leq 1.1 \cdot 10^{+157}:\\
                            \;\;\;\;\frac{\frac{1}{x}}{\mathsf{fma}\left(y, x, x\right)} \cdot x\\
                            
                            \mathbf{else}:\\
                            \;\;\;\;t\_0\\
                            
                            
                            \end{array}
                            \end{array}
                            
                            Derivation
                            1. Split input into 3 regimes
                            2. if x < -1.32e22 or 1.1000000000000001e157 < x

                              1. Initial program 68.6%

                                \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                              2. Add Preprocessing
                              3. Taylor expanded in y around 0

                                \[\leadsto \color{blue}{-1 \cdot \frac{y}{x} + \frac{1}{x}} \]
                              4. Step-by-step derivation
                                1. +-commutativeN/A

                                  \[\leadsto \color{blue}{\frac{1}{x} + -1 \cdot \frac{y}{x}} \]
                                2. mul-1-negN/A

                                  \[\leadsto \frac{1}{x} + \color{blue}{\left(\mathsf{neg}\left(\frac{y}{x}\right)\right)} \]
                                3. unsub-negN/A

                                  \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                4. lower--.f64N/A

                                  \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                5. lower-/.f64N/A

                                  \[\leadsto \color{blue}{\frac{1}{x}} - \frac{y}{x} \]
                                6. lower-/.f6456.5

                                  \[\leadsto \frac{1}{x} - \color{blue}{\frac{y}{x}} \]
                              5. Applied rewrites56.5%

                                \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                              6. Step-by-step derivation
                                1. Applied rewrites74.8%

                                  \[\leadsto \frac{\frac{x - y \cdot x}{x}}{\color{blue}{x}} \]

                                if -1.32e22 < x < 4.4999999999999999e-4

                                1. Initial program 85.7%

                                  \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                                2. Add Preprocessing
                                3. Taylor expanded in y around 0

                                  \[\leadsto \frac{\color{blue}{1}}{x} \]
                                4. Step-by-step derivation
                                  1. Applied rewrites99.1%

                                    \[\leadsto \frac{\color{blue}{1}}{x} \]

                                  if 4.4999999999999999e-4 < x < 1.1000000000000001e157

                                  1. Initial program 91.9%

                                    \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in y around 0

                                    \[\leadsto \color{blue}{-1 \cdot \frac{y}{x} + \frac{1}{x}} \]
                                  4. Step-by-step derivation
                                    1. +-commutativeN/A

                                      \[\leadsto \color{blue}{\frac{1}{x} + -1 \cdot \frac{y}{x}} \]
                                    2. mul-1-negN/A

                                      \[\leadsto \frac{1}{x} + \color{blue}{\left(\mathsf{neg}\left(\frac{y}{x}\right)\right)} \]
                                    3. unsub-negN/A

                                      \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                    4. lower--.f64N/A

                                      \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                    5. lower-/.f64N/A

                                      \[\leadsto \color{blue}{\frac{1}{x}} - \frac{y}{x} \]
                                    6. lower-/.f6463.5

                                      \[\leadsto \frac{1}{x} - \color{blue}{\frac{y}{x}} \]
                                  5. Applied rewrites63.5%

                                    \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                  6. Step-by-step derivation
                                    1. Applied rewrites62.8%

                                      \[\leadsto \frac{\frac{1 - y \cdot y}{x \cdot x}}{\color{blue}{\frac{1 - \left(-y\right)}{x}}} \]
                                    2. Taylor expanded in y around 0

                                      \[\leadsto \frac{\frac{1}{x \cdot x}}{\frac{\color{blue}{1} - \left(-y\right)}{x}} \]
                                    3. Step-by-step derivation
                                      1. Applied rewrites73.6%

                                        \[\leadsto \frac{\frac{1}{x \cdot x}}{\frac{\color{blue}{1} - \left(-y\right)}{x}} \]
                                      2. Applied rewrites76.0%

                                        \[\leadsto \frac{\frac{1}{x}}{\mathsf{fma}\left(y, x, x\right)} \cdot \color{blue}{x} \]
                                    4. Recombined 3 regimes into one program.
                                    5. Add Preprocessing

                                    Alternative 7: 83.0% accurate, 6.2× speedup?

                                    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq -1.32 \cdot 10^{+22}:\\ \;\;\;\;\frac{\frac{x - y \cdot x}{x}}{x}\\ \mathbf{elif}\;x \leq 0.00045:\\ \;\;\;\;\frac{1}{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(y, x, x\right)}\\ \end{array} \end{array} \]
                                    (FPCore (x y)
                                     :precision binary64
                                     (if (<= x -1.32e+22)
                                       (/ (/ (- x (* y x)) x) x)
                                       (if (<= x 0.00045) (/ 1.0 x) (/ 1.0 (fma y x x)))))
                                    double code(double x, double y) {
                                    	double tmp;
                                    	if (x <= -1.32e+22) {
                                    		tmp = ((x - (y * x)) / x) / x;
                                    	} else if (x <= 0.00045) {
                                    		tmp = 1.0 / x;
                                    	} else {
                                    		tmp = 1.0 / fma(y, x, x);
                                    	}
                                    	return tmp;
                                    }
                                    
                                    function code(x, y)
                                    	tmp = 0.0
                                    	if (x <= -1.32e+22)
                                    		tmp = Float64(Float64(Float64(x - Float64(y * x)) / x) / x);
                                    	elseif (x <= 0.00045)
                                    		tmp = Float64(1.0 / x);
                                    	else
                                    		tmp = Float64(1.0 / fma(y, x, x));
                                    	end
                                    	return tmp
                                    end
                                    
                                    code[x_, y_] := If[LessEqual[x, -1.32e+22], N[(N[(N[(x - N[(y * x), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision] / x), $MachinePrecision], If[LessEqual[x, 0.00045], N[(1.0 / x), $MachinePrecision], N[(1.0 / N[(y * x + x), $MachinePrecision]), $MachinePrecision]]]
                                    
                                    \begin{array}{l}
                                    
                                    \\
                                    \begin{array}{l}
                                    \mathbf{if}\;x \leq -1.32 \cdot 10^{+22}:\\
                                    \;\;\;\;\frac{\frac{x - y \cdot x}{x}}{x}\\
                                    
                                    \mathbf{elif}\;x \leq 0.00045:\\
                                    \;\;\;\;\frac{1}{x}\\
                                    
                                    \mathbf{else}:\\
                                    \;\;\;\;\frac{1}{\mathsf{fma}\left(y, x, x\right)}\\
                                    
                                    
                                    \end{array}
                                    \end{array}
                                    
                                    Derivation
                                    1. Split input into 3 regimes
                                    2. if x < -1.32e22

                                      1. Initial program 70.2%

                                        \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                                      2. Add Preprocessing
                                      3. Taylor expanded in y around 0

                                        \[\leadsto \color{blue}{-1 \cdot \frac{y}{x} + \frac{1}{x}} \]
                                      4. Step-by-step derivation
                                        1. +-commutativeN/A

                                          \[\leadsto \color{blue}{\frac{1}{x} + -1 \cdot \frac{y}{x}} \]
                                        2. mul-1-negN/A

                                          \[\leadsto \frac{1}{x} + \color{blue}{\left(\mathsf{neg}\left(\frac{y}{x}\right)\right)} \]
                                        3. unsub-negN/A

                                          \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                        4. lower--.f64N/A

                                          \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                        5. lower-/.f64N/A

                                          \[\leadsto \color{blue}{\frac{1}{x}} - \frac{y}{x} \]
                                        6. lower-/.f6457.1

                                          \[\leadsto \frac{1}{x} - \color{blue}{\frac{y}{x}} \]
                                      5. Applied rewrites57.1%

                                        \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                      6. Step-by-step derivation
                                        1. Applied rewrites73.3%

                                          \[\leadsto \frac{\frac{x - y \cdot x}{x}}{\color{blue}{x}} \]

                                        if -1.32e22 < x < 4.4999999999999999e-4

                                        1. Initial program 85.7%

                                          \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                                        2. Add Preprocessing
                                        3. Taylor expanded in y around 0

                                          \[\leadsto \frac{\color{blue}{1}}{x} \]
                                        4. Step-by-step derivation
                                          1. Applied rewrites99.1%

                                            \[\leadsto \frac{\color{blue}{1}}{x} \]

                                          if 4.4999999999999999e-4 < x

                                          1. Initial program 80.2%

                                            \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                                          2. Add Preprocessing
                                          3. Taylor expanded in y around 0

                                            \[\leadsto \color{blue}{-1 \cdot \frac{y}{x} + \frac{1}{x}} \]
                                          4. Step-by-step derivation
                                            1. +-commutativeN/A

                                              \[\leadsto \color{blue}{\frac{1}{x} + -1 \cdot \frac{y}{x}} \]
                                            2. mul-1-negN/A

                                              \[\leadsto \frac{1}{x} + \color{blue}{\left(\mathsf{neg}\left(\frac{y}{x}\right)\right)} \]
                                            3. unsub-negN/A

                                              \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                            4. lower--.f64N/A

                                              \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                            5. lower-/.f64N/A

                                              \[\leadsto \color{blue}{\frac{1}{x}} - \frac{y}{x} \]
                                            6. lower-/.f6459.9

                                              \[\leadsto \frac{1}{x} - \color{blue}{\frac{y}{x}} \]
                                          5. Applied rewrites59.9%

                                            \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                          6. Step-by-step derivation
                                            1. Applied rewrites42.2%

                                              \[\leadsto \frac{\frac{1 - y \cdot y}{x \cdot x}}{\color{blue}{\frac{1 - \left(-y\right)}{x}}} \]
                                            2. Taylor expanded in y around 0

                                              \[\leadsto \frac{\frac{1}{x \cdot x}}{\frac{\color{blue}{1} - \left(-y\right)}{x}} \]
                                            3. Step-by-step derivation
                                              1. Applied rewrites50.6%

                                                \[\leadsto \frac{\frac{1}{x \cdot x}}{\frac{\color{blue}{1} - \left(-y\right)}{x}} \]
                                              2. Applied rewrites71.2%

                                                \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(y, x, x\right)}} \]
                                            4. Recombined 3 regimes into one program.
                                            5. Add Preprocessing

                                            Alternative 8: 82.7% accurate, 6.2× speedup?

                                            \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq -1.32 \cdot 10^{+22}:\\ \;\;\;\;\frac{-1}{-x} \cdot \mathsf{fma}\left(\mathsf{fma}\left(0.5, y, -1\right), y, 1\right)\\ \mathbf{elif}\;x \leq 0.00045:\\ \;\;\;\;\frac{1}{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(y, x, x\right)}\\ \end{array} \end{array} \]
                                            (FPCore (x y)
                                             :precision binary64
                                             (if (<= x -1.32e+22)
                                               (* (/ -1.0 (- x)) (fma (fma 0.5 y -1.0) y 1.0))
                                               (if (<= x 0.00045) (/ 1.0 x) (/ 1.0 (fma y x x)))))
                                            double code(double x, double y) {
                                            	double tmp;
                                            	if (x <= -1.32e+22) {
                                            		tmp = (-1.0 / -x) * fma(fma(0.5, y, -1.0), y, 1.0);
                                            	} else if (x <= 0.00045) {
                                            		tmp = 1.0 / x;
                                            	} else {
                                            		tmp = 1.0 / fma(y, x, x);
                                            	}
                                            	return tmp;
                                            }
                                            
                                            function code(x, y)
                                            	tmp = 0.0
                                            	if (x <= -1.32e+22)
                                            		tmp = Float64(Float64(-1.0 / Float64(-x)) * fma(fma(0.5, y, -1.0), y, 1.0));
                                            	elseif (x <= 0.00045)
                                            		tmp = Float64(1.0 / x);
                                            	else
                                            		tmp = Float64(1.0 / fma(y, x, x));
                                            	end
                                            	return tmp
                                            end
                                            
                                            code[x_, y_] := If[LessEqual[x, -1.32e+22], N[(N[(-1.0 / (-x)), $MachinePrecision] * N[(N[(0.5 * y + -1.0), $MachinePrecision] * y + 1.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 0.00045], N[(1.0 / x), $MachinePrecision], N[(1.0 / N[(y * x + x), $MachinePrecision]), $MachinePrecision]]]
                                            
                                            \begin{array}{l}
                                            
                                            \\
                                            \begin{array}{l}
                                            \mathbf{if}\;x \leq -1.32 \cdot 10^{+22}:\\
                                            \;\;\;\;\frac{-1}{-x} \cdot \mathsf{fma}\left(\mathsf{fma}\left(0.5, y, -1\right), y, 1\right)\\
                                            
                                            \mathbf{elif}\;x \leq 0.00045:\\
                                            \;\;\;\;\frac{1}{x}\\
                                            
                                            \mathbf{else}:\\
                                            \;\;\;\;\frac{1}{\mathsf{fma}\left(y, x, x\right)}\\
                                            
                                            
                                            \end{array}
                                            \end{array}
                                            
                                            Derivation
                                            1. Split input into 3 regimes
                                            2. if x < -1.32e22

                                              1. Initial program 70.2%

                                                \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                                              2. Add Preprocessing
                                              3. Taylor expanded in y around 0

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

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

                                                  \[\leadsto \color{blue}{\mathsf{fma}\left(y \cdot \left(\frac{1}{2} \cdot \frac{1}{x} + \frac{1}{2} \cdot \frac{1}{{x}^{2}}\right) - \frac{1}{x}, y, \frac{1}{x}\right)} \]
                                              5. Applied rewrites67.1%

                                                \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\frac{\frac{0.5}{x}}{x} + \frac{0.5}{x}, y, \frac{-1}{x}\right), y, \frac{1}{x}\right)} \]
                                              6. Taylor expanded in x around inf

                                                \[\leadsto \frac{1 + y \cdot \left(\frac{1}{2} \cdot y - 1\right)}{\color{blue}{x}} \]
                                              7. Step-by-step derivation
                                                1. Applied rewrites72.4%

                                                  \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(0.5, y, -1\right), y, 1\right)}{\color{blue}{x}} \]
                                                2. Step-by-step derivation
                                                  1. Applied rewrites72.5%

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

                                                  if -1.32e22 < x < 4.4999999999999999e-4

                                                  1. Initial program 85.7%

                                                    \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                                                  2. Add Preprocessing
                                                  3. Taylor expanded in y around 0

                                                    \[\leadsto \frac{\color{blue}{1}}{x} \]
                                                  4. Step-by-step derivation
                                                    1. Applied rewrites99.1%

                                                      \[\leadsto \frac{\color{blue}{1}}{x} \]

                                                    if 4.4999999999999999e-4 < x

                                                    1. Initial program 80.2%

                                                      \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                                                    2. Add Preprocessing
                                                    3. Taylor expanded in y around 0

                                                      \[\leadsto \color{blue}{-1 \cdot \frac{y}{x} + \frac{1}{x}} \]
                                                    4. Step-by-step derivation
                                                      1. +-commutativeN/A

                                                        \[\leadsto \color{blue}{\frac{1}{x} + -1 \cdot \frac{y}{x}} \]
                                                      2. mul-1-negN/A

                                                        \[\leadsto \frac{1}{x} + \color{blue}{\left(\mathsf{neg}\left(\frac{y}{x}\right)\right)} \]
                                                      3. unsub-negN/A

                                                        \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                                      4. lower--.f64N/A

                                                        \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                                      5. lower-/.f64N/A

                                                        \[\leadsto \color{blue}{\frac{1}{x}} - \frac{y}{x} \]
                                                      6. lower-/.f6459.9

                                                        \[\leadsto \frac{1}{x} - \color{blue}{\frac{y}{x}} \]
                                                    5. Applied rewrites59.9%

                                                      \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                                    6. Step-by-step derivation
                                                      1. Applied rewrites42.2%

                                                        \[\leadsto \frac{\frac{1 - y \cdot y}{x \cdot x}}{\color{blue}{\frac{1 - \left(-y\right)}{x}}} \]
                                                      2. Taylor expanded in y around 0

                                                        \[\leadsto \frac{\frac{1}{x \cdot x}}{\frac{\color{blue}{1} - \left(-y\right)}{x}} \]
                                                      3. Step-by-step derivation
                                                        1. Applied rewrites50.6%

                                                          \[\leadsto \frac{\frac{1}{x \cdot x}}{\frac{\color{blue}{1} - \left(-y\right)}{x}} \]
                                                        2. Applied rewrites71.2%

                                                          \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(y, x, x\right)}} \]
                                                      4. Recombined 3 regimes into one program.
                                                      5. Final simplification82.3%

                                                        \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq -1.32 \cdot 10^{+22}:\\ \;\;\;\;\frac{-1}{-x} \cdot \mathsf{fma}\left(\mathsf{fma}\left(0.5, y, -1\right), y, 1\right)\\ \mathbf{elif}\;x \leq 0.00045:\\ \;\;\;\;\frac{1}{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(y, x, x\right)}\\ \end{array} \]
                                                      6. Add Preprocessing

                                                      Alternative 9: 82.7% accurate, 7.7× speedup?

                                                      \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq -1.32 \cdot 10^{+22}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(0.5, y, -1\right), y, 1\right)}{x}\\ \mathbf{elif}\;x \leq 0.00045:\\ \;\;\;\;\frac{1}{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(y, x, x\right)}\\ \end{array} \end{array} \]
                                                      (FPCore (x y)
                                                       :precision binary64
                                                       (if (<= x -1.32e+22)
                                                         (/ (fma (fma 0.5 y -1.0) y 1.0) x)
                                                         (if (<= x 0.00045) (/ 1.0 x) (/ 1.0 (fma y x x)))))
                                                      double code(double x, double y) {
                                                      	double tmp;
                                                      	if (x <= -1.32e+22) {
                                                      		tmp = fma(fma(0.5, y, -1.0), y, 1.0) / x;
                                                      	} else if (x <= 0.00045) {
                                                      		tmp = 1.0 / x;
                                                      	} else {
                                                      		tmp = 1.0 / fma(y, x, x);
                                                      	}
                                                      	return tmp;
                                                      }
                                                      
                                                      function code(x, y)
                                                      	tmp = 0.0
                                                      	if (x <= -1.32e+22)
                                                      		tmp = Float64(fma(fma(0.5, y, -1.0), y, 1.0) / x);
                                                      	elseif (x <= 0.00045)
                                                      		tmp = Float64(1.0 / x);
                                                      	else
                                                      		tmp = Float64(1.0 / fma(y, x, x));
                                                      	end
                                                      	return tmp
                                                      end
                                                      
                                                      code[x_, y_] := If[LessEqual[x, -1.32e+22], N[(N[(N[(0.5 * y + -1.0), $MachinePrecision] * y + 1.0), $MachinePrecision] / x), $MachinePrecision], If[LessEqual[x, 0.00045], N[(1.0 / x), $MachinePrecision], N[(1.0 / N[(y * x + x), $MachinePrecision]), $MachinePrecision]]]
                                                      
                                                      \begin{array}{l}
                                                      
                                                      \\
                                                      \begin{array}{l}
                                                      \mathbf{if}\;x \leq -1.32 \cdot 10^{+22}:\\
                                                      \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(0.5, y, -1\right), y, 1\right)}{x}\\
                                                      
                                                      \mathbf{elif}\;x \leq 0.00045:\\
                                                      \;\;\;\;\frac{1}{x}\\
                                                      
                                                      \mathbf{else}:\\
                                                      \;\;\;\;\frac{1}{\mathsf{fma}\left(y, x, x\right)}\\
                                                      
                                                      
                                                      \end{array}
                                                      \end{array}
                                                      
                                                      Derivation
                                                      1. Split input into 3 regimes
                                                      2. if x < -1.32e22

                                                        1. Initial program 70.2%

                                                          \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                                                        2. Add Preprocessing
                                                        3. Taylor expanded in y around 0

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

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

                                                            \[\leadsto \color{blue}{\mathsf{fma}\left(y \cdot \left(\frac{1}{2} \cdot \frac{1}{x} + \frac{1}{2} \cdot \frac{1}{{x}^{2}}\right) - \frac{1}{x}, y, \frac{1}{x}\right)} \]
                                                        5. Applied rewrites67.1%

                                                          \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\frac{\frac{0.5}{x}}{x} + \frac{0.5}{x}, y, \frac{-1}{x}\right), y, \frac{1}{x}\right)} \]
                                                        6. Taylor expanded in x around inf

                                                          \[\leadsto \frac{1 + y \cdot \left(\frac{1}{2} \cdot y - 1\right)}{\color{blue}{x}} \]
                                                        7. Step-by-step derivation
                                                          1. Applied rewrites72.4%

                                                            \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(0.5, y, -1\right), y, 1\right)}{\color{blue}{x}} \]

                                                          if -1.32e22 < x < 4.4999999999999999e-4

                                                          1. Initial program 85.7%

                                                            \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                                                          2. Add Preprocessing
                                                          3. Taylor expanded in y around 0

                                                            \[\leadsto \frac{\color{blue}{1}}{x} \]
                                                          4. Step-by-step derivation
                                                            1. Applied rewrites99.1%

                                                              \[\leadsto \frac{\color{blue}{1}}{x} \]

                                                            if 4.4999999999999999e-4 < x

                                                            1. Initial program 80.2%

                                                              \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                                                            2. Add Preprocessing
                                                            3. Taylor expanded in y around 0

                                                              \[\leadsto \color{blue}{-1 \cdot \frac{y}{x} + \frac{1}{x}} \]
                                                            4. Step-by-step derivation
                                                              1. +-commutativeN/A

                                                                \[\leadsto \color{blue}{\frac{1}{x} + -1 \cdot \frac{y}{x}} \]
                                                              2. mul-1-negN/A

                                                                \[\leadsto \frac{1}{x} + \color{blue}{\left(\mathsf{neg}\left(\frac{y}{x}\right)\right)} \]
                                                              3. unsub-negN/A

                                                                \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                                              4. lower--.f64N/A

                                                                \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                                              5. lower-/.f64N/A

                                                                \[\leadsto \color{blue}{\frac{1}{x}} - \frac{y}{x} \]
                                                              6. lower-/.f6459.9

                                                                \[\leadsto \frac{1}{x} - \color{blue}{\frac{y}{x}} \]
                                                            5. Applied rewrites59.9%

                                                              \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                                            6. Step-by-step derivation
                                                              1. Applied rewrites42.2%

                                                                \[\leadsto \frac{\frac{1 - y \cdot y}{x \cdot x}}{\color{blue}{\frac{1 - \left(-y\right)}{x}}} \]
                                                              2. Taylor expanded in y around 0

                                                                \[\leadsto \frac{\frac{1}{x \cdot x}}{\frac{\color{blue}{1} - \left(-y\right)}{x}} \]
                                                              3. Step-by-step derivation
                                                                1. Applied rewrites50.6%

                                                                  \[\leadsto \frac{\frac{1}{x \cdot x}}{\frac{\color{blue}{1} - \left(-y\right)}{x}} \]
                                                                2. Applied rewrites71.2%

                                                                  \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(y, x, x\right)}} \]
                                                              4. Recombined 3 regimes into one program.
                                                              5. Add Preprocessing

                                                              Alternative 10: 74.7% accurate, 7.7× speedup?

                                                              \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;y \leq -1.95 \cdot 10^{+132}:\\ \;\;\;\;\frac{\left(y \cdot y\right) \cdot 0.5}{x}\\ \mathbf{elif}\;y \leq 7 \cdot 10^{+87}:\\ \;\;\;\;\frac{1}{x}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(y, x, x\right)}\\ \end{array} \end{array} \]
                                                              (FPCore (x y)
                                                               :precision binary64
                                                               (if (<= y -1.95e+132)
                                                                 (/ (* (* y y) 0.5) x)
                                                                 (if (<= y 7e+87) (/ 1.0 x) (/ 1.0 (fma y x x)))))
                                                              double code(double x, double y) {
                                                              	double tmp;
                                                              	if (y <= -1.95e+132) {
                                                              		tmp = ((y * y) * 0.5) / x;
                                                              	} else if (y <= 7e+87) {
                                                              		tmp = 1.0 / x;
                                                              	} else {
                                                              		tmp = 1.0 / fma(y, x, x);
                                                              	}
                                                              	return tmp;
                                                              }
                                                              
                                                              function code(x, y)
                                                              	tmp = 0.0
                                                              	if (y <= -1.95e+132)
                                                              		tmp = Float64(Float64(Float64(y * y) * 0.5) / x);
                                                              	elseif (y <= 7e+87)
                                                              		tmp = Float64(1.0 / x);
                                                              	else
                                                              		tmp = Float64(1.0 / fma(y, x, x));
                                                              	end
                                                              	return tmp
                                                              end
                                                              
                                                              code[x_, y_] := If[LessEqual[y, -1.95e+132], N[(N[(N[(y * y), $MachinePrecision] * 0.5), $MachinePrecision] / x), $MachinePrecision], If[LessEqual[y, 7e+87], N[(1.0 / x), $MachinePrecision], N[(1.0 / N[(y * x + x), $MachinePrecision]), $MachinePrecision]]]
                                                              
                                                              \begin{array}{l}
                                                              
                                                              \\
                                                              \begin{array}{l}
                                                              \mathbf{if}\;y \leq -1.95 \cdot 10^{+132}:\\
                                                              \;\;\;\;\frac{\left(y \cdot y\right) \cdot 0.5}{x}\\
                                                              
                                                              \mathbf{elif}\;y \leq 7 \cdot 10^{+87}:\\
                                                              \;\;\;\;\frac{1}{x}\\
                                                              
                                                              \mathbf{else}:\\
                                                              \;\;\;\;\frac{1}{\mathsf{fma}\left(y, x, x\right)}\\
                                                              
                                                              
                                                              \end{array}
                                                              \end{array}
                                                              
                                                              Derivation
                                                              1. Split input into 3 regimes
                                                              2. if y < -1.95000000000000001e132

                                                                1. Initial program 47.5%

                                                                  \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                                                                2. Add Preprocessing
                                                                3. Taylor expanded in y around 0

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

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

                                                                    \[\leadsto \color{blue}{\mathsf{fma}\left(y \cdot \left(\frac{1}{2} \cdot \frac{1}{x} + \frac{1}{2} \cdot \frac{1}{{x}^{2}}\right) - \frac{1}{x}, y, \frac{1}{x}\right)} \]
                                                                5. Applied rewrites24.8%

                                                                  \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\frac{\frac{0.5}{x}}{x} + \frac{0.5}{x}, y, \frac{-1}{x}\right), y, \frac{1}{x}\right)} \]
                                                                6. Taylor expanded in x around inf

                                                                  \[\leadsto \frac{1 + y \cdot \left(\frac{1}{2} \cdot y - 1\right)}{\color{blue}{x}} \]
                                                                7. Step-by-step derivation
                                                                  1. Applied rewrites63.6%

                                                                    \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(0.5, y, -1\right), y, 1\right)}{\color{blue}{x}} \]
                                                                  2. Taylor expanded in y around inf

                                                                    \[\leadsto \frac{\frac{1}{2} \cdot {y}^{2}}{x} \]
                                                                  3. Step-by-step derivation
                                                                    1. Applied rewrites63.6%

                                                                      \[\leadsto \frac{\left(y \cdot y\right) \cdot 0.5}{x} \]

                                                                    if -1.95000000000000001e132 < y < 6.99999999999999972e87

                                                                    1. Initial program 86.7%

                                                                      \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                                                                    2. Add Preprocessing
                                                                    3. Taylor expanded in y around 0

                                                                      \[\leadsto \frac{\color{blue}{1}}{x} \]
                                                                    4. Step-by-step derivation
                                                                      1. Applied rewrites86.8%

                                                                        \[\leadsto \frac{\color{blue}{1}}{x} \]

                                                                      if 6.99999999999999972e87 < y

                                                                      1. Initial program 62.1%

                                                                        \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                                                                      2. Add Preprocessing
                                                                      3. Taylor expanded in y around 0

                                                                        \[\leadsto \color{blue}{-1 \cdot \frac{y}{x} + \frac{1}{x}} \]
                                                                      4. Step-by-step derivation
                                                                        1. +-commutativeN/A

                                                                          \[\leadsto \color{blue}{\frac{1}{x} + -1 \cdot \frac{y}{x}} \]
                                                                        2. mul-1-negN/A

                                                                          \[\leadsto \frac{1}{x} + \color{blue}{\left(\mathsf{neg}\left(\frac{y}{x}\right)\right)} \]
                                                                        3. unsub-negN/A

                                                                          \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                                                        4. lower--.f64N/A

                                                                          \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                                                        5. lower-/.f64N/A

                                                                          \[\leadsto \color{blue}{\frac{1}{x}} - \frac{y}{x} \]
                                                                        6. lower-/.f642.5

                                                                          \[\leadsto \frac{1}{x} - \color{blue}{\frac{y}{x}} \]
                                                                      5. Applied rewrites2.5%

                                                                        \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                                                      6. Step-by-step derivation
                                                                        1. Applied rewrites20.9%

                                                                          \[\leadsto \frac{\frac{1 - y \cdot y}{x \cdot x}}{\color{blue}{\frac{1 - \left(-y\right)}{x}}} \]
                                                                        2. Taylor expanded in y around 0

                                                                          \[\leadsto \frac{\frac{1}{x \cdot x}}{\frac{\color{blue}{1} - \left(-y\right)}{x}} \]
                                                                        3. Step-by-step derivation
                                                                          1. Applied rewrites58.0%

                                                                            \[\leadsto \frac{\frac{1}{x \cdot x}}{\frac{\color{blue}{1} - \left(-y\right)}{x}} \]
                                                                          2. Applied rewrites54.7%

                                                                            \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(y, x, x\right)}} \]
                                                                        4. Recombined 3 regimes into one program.
                                                                        5. Add Preprocessing

                                                                        Alternative 11: 80.7% accurate, 7.7× speedup?

                                                                        \[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{1}{\mathsf{fma}\left(y, x, x\right)}\\ \mathbf{if}\;x \leq -1.8 \cdot 10^{+177}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x \leq 0.00045:\\ \;\;\;\;\frac{1}{x}\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
                                                                        (FPCore (x y)
                                                                         :precision binary64
                                                                         (let* ((t_0 (/ 1.0 (fma y x x))))
                                                                           (if (<= x -1.8e+177) t_0 (if (<= x 0.00045) (/ 1.0 x) t_0))))
                                                                        double code(double x, double y) {
                                                                        	double t_0 = 1.0 / fma(y, x, x);
                                                                        	double tmp;
                                                                        	if (x <= -1.8e+177) {
                                                                        		tmp = t_0;
                                                                        	} else if (x <= 0.00045) {
                                                                        		tmp = 1.0 / x;
                                                                        	} else {
                                                                        		tmp = t_0;
                                                                        	}
                                                                        	return tmp;
                                                                        }
                                                                        
                                                                        function code(x, y)
                                                                        	t_0 = Float64(1.0 / fma(y, x, x))
                                                                        	tmp = 0.0
                                                                        	if (x <= -1.8e+177)
                                                                        		tmp = t_0;
                                                                        	elseif (x <= 0.00045)
                                                                        		tmp = Float64(1.0 / x);
                                                                        	else
                                                                        		tmp = t_0;
                                                                        	end
                                                                        	return tmp
                                                                        end
                                                                        
                                                                        code[x_, y_] := Block[{t$95$0 = N[(1.0 / N[(y * x + x), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -1.8e+177], t$95$0, If[LessEqual[x, 0.00045], N[(1.0 / x), $MachinePrecision], t$95$0]]]
                                                                        
                                                                        \begin{array}{l}
                                                                        
                                                                        \\
                                                                        \begin{array}{l}
                                                                        t_0 := \frac{1}{\mathsf{fma}\left(y, x, x\right)}\\
                                                                        \mathbf{if}\;x \leq -1.8 \cdot 10^{+177}:\\
                                                                        \;\;\;\;t\_0\\
                                                                        
                                                                        \mathbf{elif}\;x \leq 0.00045:\\
                                                                        \;\;\;\;\frac{1}{x}\\
                                                                        
                                                                        \mathbf{else}:\\
                                                                        \;\;\;\;t\_0\\
                                                                        
                                                                        
                                                                        \end{array}
                                                                        \end{array}
                                                                        
                                                                        Derivation
                                                                        1. Split input into 2 regimes
                                                                        2. if x < -1.80000000000000001e177 or 4.4999999999999999e-4 < x

                                                                          1. Initial program 72.7%

                                                                            \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                                                                          2. Add Preprocessing
                                                                          3. Taylor expanded in y around 0

                                                                            \[\leadsto \color{blue}{-1 \cdot \frac{y}{x} + \frac{1}{x}} \]
                                                                          4. Step-by-step derivation
                                                                            1. +-commutativeN/A

                                                                              \[\leadsto \color{blue}{\frac{1}{x} + -1 \cdot \frac{y}{x}} \]
                                                                            2. mul-1-negN/A

                                                                              \[\leadsto \frac{1}{x} + \color{blue}{\left(\mathsf{neg}\left(\frac{y}{x}\right)\right)} \]
                                                                            3. unsub-negN/A

                                                                              \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                                                            4. lower--.f64N/A

                                                                              \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                                                            5. lower-/.f64N/A

                                                                              \[\leadsto \color{blue}{\frac{1}{x}} - \frac{y}{x} \]
                                                                            6. lower-/.f6457.0

                                                                              \[\leadsto \frac{1}{x} - \color{blue}{\frac{y}{x}} \]
                                                                          5. Applied rewrites57.0%

                                                                            \[\leadsto \color{blue}{\frac{1}{x} - \frac{y}{x}} \]
                                                                          6. Step-by-step derivation
                                                                            1. Applied rewrites36.1%

                                                                              \[\leadsto \frac{\frac{1 - y \cdot y}{x \cdot x}}{\color{blue}{\frac{1 - \left(-y\right)}{x}}} \]
                                                                            2. Taylor expanded in y around 0

                                                                              \[\leadsto \frac{\frac{1}{x \cdot x}}{\frac{\color{blue}{1} - \left(-y\right)}{x}} \]
                                                                            3. Step-by-step derivation
                                                                              1. Applied rewrites43.8%

                                                                                \[\leadsto \frac{\frac{1}{x \cdot x}}{\frac{\color{blue}{1} - \left(-y\right)}{x}} \]
                                                                              2. Applied rewrites70.5%

                                                                                \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(y, x, x\right)}} \]

                                                                              if -1.80000000000000001e177 < x < 4.4999999999999999e-4

                                                                              1. Initial program 85.8%

                                                                                \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                                                                              2. Add Preprocessing
                                                                              3. Taylor expanded in y around 0

                                                                                \[\leadsto \frac{\color{blue}{1}}{x} \]
                                                                              4. Step-by-step derivation
                                                                                1. Applied rewrites89.9%

                                                                                  \[\leadsto \frac{\color{blue}{1}}{x} \]
                                                                              5. Recombined 2 regimes into one program.
                                                                              6. Add Preprocessing

                                                                              Alternative 12: 74.7% accurate, 19.3× speedup?

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

                                                                                \[\frac{e^{x \cdot \log \left(\frac{x}{x + y}\right)}}{x} \]
                                                                              2. Add Preprocessing
                                                                              3. Taylor expanded in y around 0

                                                                                \[\leadsto \frac{\color{blue}{1}}{x} \]
                                                                              4. Step-by-step derivation
                                                                                1. Applied rewrites74.2%

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

                                                                                Developer Target 1: 77.0% accurate, 0.7× speedup?

                                                                                \[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{e^{\frac{-1}{y}}}{x}\\ t_1 := \frac{{\left(\frac{x}{y + x}\right)}^{x}}{x}\\ \mathbf{if}\;y < -3.7311844206647956 \cdot 10^{+94}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;y < 2.817959242728288 \cdot 10^{+37}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;y < 2.347387415166998 \cdot 10^{+178}:\\ \;\;\;\;\log \left(e^{t\_1}\right)\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
                                                                                (FPCore (x y)
                                                                                 :precision binary64
                                                                                 (let* ((t_0 (/ (exp (/ -1.0 y)) x)) (t_1 (/ (pow (/ x (+ y x)) x) x)))
                                                                                   (if (< y -3.7311844206647956e+94)
                                                                                     t_0
                                                                                     (if (< y 2.817959242728288e+37)
                                                                                       t_1
                                                                                       (if (< y 2.347387415166998e+178) (log (exp t_1)) t_0)))))
                                                                                double code(double x, double y) {
                                                                                	double t_0 = exp((-1.0 / y)) / x;
                                                                                	double t_1 = pow((x / (y + x)), x) / x;
                                                                                	double tmp;
                                                                                	if (y < -3.7311844206647956e+94) {
                                                                                		tmp = t_0;
                                                                                	} else if (y < 2.817959242728288e+37) {
                                                                                		tmp = t_1;
                                                                                	} else if (y < 2.347387415166998e+178) {
                                                                                		tmp = log(exp(t_1));
                                                                                	} else {
                                                                                		tmp = t_0;
                                                                                	}
                                                                                	return tmp;
                                                                                }
                                                                                
                                                                                real(8) function code(x, y)
                                                                                    real(8), intent (in) :: x
                                                                                    real(8), intent (in) :: y
                                                                                    real(8) :: t_0
                                                                                    real(8) :: t_1
                                                                                    real(8) :: tmp
                                                                                    t_0 = exp(((-1.0d0) / y)) / x
                                                                                    t_1 = ((x / (y + x)) ** x) / x
                                                                                    if (y < (-3.7311844206647956d+94)) then
                                                                                        tmp = t_0
                                                                                    else if (y < 2.817959242728288d+37) then
                                                                                        tmp = t_1
                                                                                    else if (y < 2.347387415166998d+178) then
                                                                                        tmp = log(exp(t_1))
                                                                                    else
                                                                                        tmp = t_0
                                                                                    end if
                                                                                    code = tmp
                                                                                end function
                                                                                
                                                                                public static double code(double x, double y) {
                                                                                	double t_0 = Math.exp((-1.0 / y)) / x;
                                                                                	double t_1 = Math.pow((x / (y + x)), x) / x;
                                                                                	double tmp;
                                                                                	if (y < -3.7311844206647956e+94) {
                                                                                		tmp = t_0;
                                                                                	} else if (y < 2.817959242728288e+37) {
                                                                                		tmp = t_1;
                                                                                	} else if (y < 2.347387415166998e+178) {
                                                                                		tmp = Math.log(Math.exp(t_1));
                                                                                	} else {
                                                                                		tmp = t_0;
                                                                                	}
                                                                                	return tmp;
                                                                                }
                                                                                
                                                                                def code(x, y):
                                                                                	t_0 = math.exp((-1.0 / y)) / x
                                                                                	t_1 = math.pow((x / (y + x)), x) / x
                                                                                	tmp = 0
                                                                                	if y < -3.7311844206647956e+94:
                                                                                		tmp = t_0
                                                                                	elif y < 2.817959242728288e+37:
                                                                                		tmp = t_1
                                                                                	elif y < 2.347387415166998e+178:
                                                                                		tmp = math.log(math.exp(t_1))
                                                                                	else:
                                                                                		tmp = t_0
                                                                                	return tmp
                                                                                
                                                                                function code(x, y)
                                                                                	t_0 = Float64(exp(Float64(-1.0 / y)) / x)
                                                                                	t_1 = Float64((Float64(x / Float64(y + x)) ^ x) / x)
                                                                                	tmp = 0.0
                                                                                	if (y < -3.7311844206647956e+94)
                                                                                		tmp = t_0;
                                                                                	elseif (y < 2.817959242728288e+37)
                                                                                		tmp = t_1;
                                                                                	elseif (y < 2.347387415166998e+178)
                                                                                		tmp = log(exp(t_1));
                                                                                	else
                                                                                		tmp = t_0;
                                                                                	end
                                                                                	return tmp
                                                                                end
                                                                                
                                                                                function tmp_2 = code(x, y)
                                                                                	t_0 = exp((-1.0 / y)) / x;
                                                                                	t_1 = ((x / (y + x)) ^ x) / x;
                                                                                	tmp = 0.0;
                                                                                	if (y < -3.7311844206647956e+94)
                                                                                		tmp = t_0;
                                                                                	elseif (y < 2.817959242728288e+37)
                                                                                		tmp = t_1;
                                                                                	elseif (y < 2.347387415166998e+178)
                                                                                		tmp = log(exp(t_1));
                                                                                	else
                                                                                		tmp = t_0;
                                                                                	end
                                                                                	tmp_2 = tmp;
                                                                                end
                                                                                
                                                                                code[x_, y_] := Block[{t$95$0 = N[(N[Exp[N[(-1.0 / y), $MachinePrecision]], $MachinePrecision] / x), $MachinePrecision]}, Block[{t$95$1 = N[(N[Power[N[(x / N[(y + x), $MachinePrecision]), $MachinePrecision], x], $MachinePrecision] / x), $MachinePrecision]}, If[Less[y, -3.7311844206647956e+94], t$95$0, If[Less[y, 2.817959242728288e+37], t$95$1, If[Less[y, 2.347387415166998e+178], N[Log[N[Exp[t$95$1], $MachinePrecision]], $MachinePrecision], t$95$0]]]]]
                                                                                
                                                                                \begin{array}{l}
                                                                                
                                                                                \\
                                                                                \begin{array}{l}
                                                                                t_0 := \frac{e^{\frac{-1}{y}}}{x}\\
                                                                                t_1 := \frac{{\left(\frac{x}{y + x}\right)}^{x}}{x}\\
                                                                                \mathbf{if}\;y < -3.7311844206647956 \cdot 10^{+94}:\\
                                                                                \;\;\;\;t\_0\\
                                                                                
                                                                                \mathbf{elif}\;y < 2.817959242728288 \cdot 10^{+37}:\\
                                                                                \;\;\;\;t\_1\\
                                                                                
                                                                                \mathbf{elif}\;y < 2.347387415166998 \cdot 10^{+178}:\\
                                                                                \;\;\;\;\log \left(e^{t\_1}\right)\\
                                                                                
                                                                                \mathbf{else}:\\
                                                                                \;\;\;\;t\_0\\
                                                                                
                                                                                
                                                                                \end{array}
                                                                                \end{array}
                                                                                

                                                                                Reproduce

                                                                                ?
                                                                                herbie shell --seed 2024255 
                                                                                (FPCore (x y)
                                                                                  :name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, F"
                                                                                  :precision binary64
                                                                                
                                                                                  :alt
                                                                                  (! :herbie-platform default (if (< y -37311844206647956000000000000000000000000000000000000000000000000000000000000000000000000000000) (/ (exp (/ -1 y)) x) (if (< y 28179592427282880000000000000000000000) (/ (pow (/ x (+ y x)) x) x) (if (< y 23473874151669980000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000) (log (exp (/ (pow (/ x (+ y x)) x) x))) (/ (exp (/ -1 y)) x)))))
                                                                                
                                                                                  (/ (exp (* x (log (/ x (+ x y))))) x))