Rosa's DopplerBench

Percentage Accurate: 73.3% → 98.0%
Time: 10.7s
Alternatives: 14
Speedup: 0.9×

Specification

?
\[\begin{array}{l} \\ \frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \end{array} \]
(FPCore (u v t1) :precision binary64 (/ (* (- t1) v) (* (+ t1 u) (+ t1 u))))
double code(double u, double v, double t1) {
	return (-t1 * v) / ((t1 + u) * (t1 + u));
}
real(8) function code(u, v, t1)
    real(8), intent (in) :: u
    real(8), intent (in) :: v
    real(8), intent (in) :: t1
    code = (-t1 * v) / ((t1 + u) * (t1 + u))
end function
public static double code(double u, double v, double t1) {
	return (-t1 * v) / ((t1 + u) * (t1 + u));
}
def code(u, v, t1):
	return (-t1 * v) / ((t1 + u) * (t1 + u))
function code(u, v, t1)
	return Float64(Float64(Float64(-t1) * v) / Float64(Float64(t1 + u) * Float64(t1 + u)))
end
function tmp = code(u, v, t1)
	tmp = (-t1 * v) / ((t1 + u) * (t1 + u));
end
code[u_, v_, t1_] := N[(N[((-t1) * v), $MachinePrecision] / N[(N[(t1 + u), $MachinePrecision] * N[(t1 + u), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}
\end{array}

Sampling outcomes in binary64 precision:

Local Percentage Accuracy vs ?

The average percentage accuracy by input value. Horizontal axis shows value of an input variable; the variable is choosen in the title. Vertical axis is accuracy; higher is better. Red represent the original program, while blue represents Herbie's suggestion. These can be toggled with buttons below the plot. The line is an average while dots represent individual samples.

Accuracy vs Speed?

Herbie found 14 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: 73.3% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \end{array} \]
(FPCore (u v t1) :precision binary64 (/ (* (- t1) v) (* (+ t1 u) (+ t1 u))))
double code(double u, double v, double t1) {
	return (-t1 * v) / ((t1 + u) * (t1 + u));
}
real(8) function code(u, v, t1)
    real(8), intent (in) :: u
    real(8), intent (in) :: v
    real(8), intent (in) :: t1
    code = (-t1 * v) / ((t1 + u) * (t1 + u))
end function
public static double code(double u, double v, double t1) {
	return (-t1 * v) / ((t1 + u) * (t1 + u));
}
def code(u, v, t1):
	return (-t1 * v) / ((t1 + u) * (t1 + u))
function code(u, v, t1)
	return Float64(Float64(Float64(-t1) * v) / Float64(Float64(t1 + u) * Float64(t1 + u)))
end
function tmp = code(u, v, t1)
	tmp = (-t1 * v) / ((t1 + u) * (t1 + u));
end
code[u_, v_, t1_] := N[(N[((-t1) * v), $MachinePrecision] / N[(N[(t1 + u), $MachinePrecision] * N[(t1 + u), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)}
\end{array}

Alternative 1: 98.0% accurate, 0.9× speedup?

\[\begin{array}{l} \\ \frac{\frac{v}{\frac{t1 + u}{0 - t1}}}{t1 + u} \end{array} \]
(FPCore (u v t1)
 :precision binary64
 (/ (/ v (/ (+ t1 u) (- 0.0 t1))) (+ t1 u)))
double code(double u, double v, double t1) {
	return (v / ((t1 + u) / (0.0 - t1))) / (t1 + u);
}
real(8) function code(u, v, t1)
    real(8), intent (in) :: u
    real(8), intent (in) :: v
    real(8), intent (in) :: t1
    code = (v / ((t1 + u) / (0.0d0 - t1))) / (t1 + u)
end function
public static double code(double u, double v, double t1) {
	return (v / ((t1 + u) / (0.0 - t1))) / (t1 + u);
}
def code(u, v, t1):
	return (v / ((t1 + u) / (0.0 - t1))) / (t1 + u)
function code(u, v, t1)
	return Float64(Float64(v / Float64(Float64(t1 + u) / Float64(0.0 - t1))) / Float64(t1 + u))
end
function tmp = code(u, v, t1)
	tmp = (v / ((t1 + u) / (0.0 - t1))) / (t1 + u);
end
code[u_, v_, t1_] := N[(N[(v / N[(N[(t1 + u), $MachinePrecision] / N[(0.0 - t1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(t1 + u), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{\frac{v}{\frac{t1 + u}{0 - t1}}}{t1 + u}
\end{array}
Derivation
  1. Initial program 78.6%

    \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
  2. Add Preprocessing
  3. Taylor expanded in v around 0

    \[\leadsto \color{blue}{-1 \cdot \frac{t1 \cdot v}{{\left(t1 + u\right)}^{2}}} \]
  4. Step-by-step derivation
    1. associate-*r/N/A

      \[\leadsto \frac{-1 \cdot \left(t1 \cdot v\right)}{\color{blue}{{\left(t1 + u\right)}^{2}}} \]
    2. unpow2N/A

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

      \[\leadsto \frac{\frac{-1 \cdot \left(t1 \cdot v\right)}{t1 + u}}{\color{blue}{t1 + u}} \]
    4. /-lowering-/.f64N/A

      \[\leadsto \mathsf{/.f64}\left(\left(\frac{-1 \cdot \left(t1 \cdot v\right)}{t1 + u}\right), \color{blue}{\left(t1 + u\right)}\right) \]
    5. associate-*r*N/A

      \[\leadsto \mathsf{/.f64}\left(\left(\frac{\left(-1 \cdot t1\right) \cdot v}{t1 + u}\right), \left(t1 + u\right)\right) \]
    6. *-commutativeN/A

      \[\leadsto \mathsf{/.f64}\left(\left(\frac{v \cdot \left(-1 \cdot t1\right)}{t1 + u}\right), \left(t1 + u\right)\right) \]
    7. associate-/l*N/A

      \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{-1 \cdot t1}{t1 + u}\right), \left(\color{blue}{t1} + u\right)\right) \]
    8. mul-1-negN/A

      \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right), \left(t1 + u\right)\right) \]
    9. distribute-frac-negN/A

      \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right)\right), \left(t1 + u\right)\right) \]
    10. *-lowering-*.f64N/A

      \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right)\right), \left(\color{blue}{t1} + u\right)\right) \]
    11. distribute-frac-negN/A

      \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
    12. mul-1-negN/A

      \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{-1 \cdot t1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
    13. *-commutativeN/A

      \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{t1 \cdot -1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
    14. associate-/l*N/A

      \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(t1 \cdot \frac{-1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
    15. *-lowering-*.f64N/A

      \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \left(\frac{-1}{t1 + u}\right)\right)\right), \left(t1 + u\right)\right) \]
    16. /-lowering-/.f64N/A

      \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \left(t1 + u\right)\right)\right)\right), \left(t1 + u\right)\right) \]
    17. +-commutativeN/A

      \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \left(u + t1\right)\right)\right)\right), \left(t1 + u\right)\right) \]
    18. +-lowering-+.f64N/A

      \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \left(t1 + u\right)\right) \]
    19. +-commutativeN/A

      \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \left(u + \color{blue}{t1}\right)\right) \]
    20. +-lowering-+.f6498.7%

      \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \mathsf{+.f64}\left(u, \color{blue}{t1}\right)\right) \]
  5. Simplified98.7%

    \[\leadsto \color{blue}{\frac{v \cdot \left(t1 \cdot \frac{-1}{u + t1}\right)}{u + t1}} \]
  6. Step-by-step derivation
    1. *-commutativeN/A

      \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \left(\frac{-1}{u + t1} \cdot t1\right)\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
    2. +-commutativeN/A

      \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \left(\frac{-1}{t1 + u} \cdot t1\right)\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
    3. associate-*l/N/A

      \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{-1 \cdot t1}{t1 + u}\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
    4. neg-mul-1N/A

      \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
    5. clear-numN/A

      \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{1}{\frac{t1 + u}{\mathsf{neg}\left(t1\right)}}\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
    6. distribute-neg-frac2N/A

      \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{1}{\mathsf{neg}\left(\frac{t1 + u}{t1}\right)}\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
    7. div-invN/A

      \[\leadsto \mathsf{/.f64}\left(\left(\frac{v}{\mathsf{neg}\left(\frac{t1 + u}{t1}\right)}\right), \mathsf{+.f64}\left(\color{blue}{u}, t1\right)\right) \]
    8. remove-double-negN/A

      \[\leadsto \mathsf{/.f64}\left(\left(\frac{\mathsf{neg}\left(\left(\mathsf{neg}\left(v\right)\right)\right)}{\mathsf{neg}\left(\frac{t1 + u}{t1}\right)}\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
    9. frac-2negN/A

      \[\leadsto \mathsf{/.f64}\left(\left(\frac{\mathsf{neg}\left(v\right)}{\frac{t1 + u}{t1}}\right), \mathsf{+.f64}\left(\color{blue}{u}, t1\right)\right) \]
    10. /-lowering-/.f64N/A

      \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\left(\mathsf{neg}\left(v\right)\right), \left(\frac{t1 + u}{t1}\right)\right), \mathsf{+.f64}\left(\color{blue}{u}, t1\right)\right) \]
    11. neg-sub0N/A

      \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\left(0 - v\right), \left(\frac{t1 + u}{t1}\right)\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
    12. --lowering--.f64N/A

      \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\mathsf{\_.f64}\left(0, v\right), \left(\frac{t1 + u}{t1}\right)\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
    13. /-lowering-/.f64N/A

      \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\mathsf{\_.f64}\left(0, v\right), \mathsf{/.f64}\left(\left(t1 + u\right), t1\right)\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
    14. +-lowering-+.f6498.8%

      \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\mathsf{\_.f64}\left(0, v\right), \mathsf{/.f64}\left(\mathsf{+.f64}\left(t1, u\right), t1\right)\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
  7. Applied egg-rr98.8%

    \[\leadsto \frac{\color{blue}{\frac{0 - v}{\frac{t1 + u}{t1}}}}{u + t1} \]
  8. Final simplification98.8%

    \[\leadsto \frac{\frac{v}{\frac{t1 + u}{0 - t1}}}{t1 + u} \]
  9. Add Preprocessing

Alternative 2: 77.0% accurate, 0.6× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := \frac{1}{\frac{u \cdot -2 - t1}{v}}\\ \mathbf{if}\;t1 \leq -1.65 \cdot 10^{-73}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;t1 \leq 2.9 \cdot 10^{+55}:\\ \;\;\;\;\frac{0 - \frac{v \cdot t1}{u}}{u}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (u v t1)
 :precision binary64
 (let* ((t_1 (/ 1.0 (/ (- (* u -2.0) t1) v))))
   (if (<= t1 -1.65e-73)
     t_1
     (if (<= t1 2.9e+55) (/ (- 0.0 (/ (* v t1) u)) u) t_1))))
double code(double u, double v, double t1) {
	double t_1 = 1.0 / (((u * -2.0) - t1) / v);
	double tmp;
	if (t1 <= -1.65e-73) {
		tmp = t_1;
	} else if (t1 <= 2.9e+55) {
		tmp = (0.0 - ((v * t1) / u)) / u;
	} else {
		tmp = t_1;
	}
	return tmp;
}
real(8) function code(u, v, t1)
    real(8), intent (in) :: u
    real(8), intent (in) :: v
    real(8), intent (in) :: t1
    real(8) :: t_1
    real(8) :: tmp
    t_1 = 1.0d0 / (((u * (-2.0d0)) - t1) / v)
    if (t1 <= (-1.65d-73)) then
        tmp = t_1
    else if (t1 <= 2.9d+55) then
        tmp = (0.0d0 - ((v * t1) / u)) / u
    else
        tmp = t_1
    end if
    code = tmp
end function
public static double code(double u, double v, double t1) {
	double t_1 = 1.0 / (((u * -2.0) - t1) / v);
	double tmp;
	if (t1 <= -1.65e-73) {
		tmp = t_1;
	} else if (t1 <= 2.9e+55) {
		tmp = (0.0 - ((v * t1) / u)) / u;
	} else {
		tmp = t_1;
	}
	return tmp;
}
def code(u, v, t1):
	t_1 = 1.0 / (((u * -2.0) - t1) / v)
	tmp = 0
	if t1 <= -1.65e-73:
		tmp = t_1
	elif t1 <= 2.9e+55:
		tmp = (0.0 - ((v * t1) / u)) / u
	else:
		tmp = t_1
	return tmp
function code(u, v, t1)
	t_1 = Float64(1.0 / Float64(Float64(Float64(u * -2.0) - t1) / v))
	tmp = 0.0
	if (t1 <= -1.65e-73)
		tmp = t_1;
	elseif (t1 <= 2.9e+55)
		tmp = Float64(Float64(0.0 - Float64(Float64(v * t1) / u)) / u);
	else
		tmp = t_1;
	end
	return tmp
end
function tmp_2 = code(u, v, t1)
	t_1 = 1.0 / (((u * -2.0) - t1) / v);
	tmp = 0.0;
	if (t1 <= -1.65e-73)
		tmp = t_1;
	elseif (t1 <= 2.9e+55)
		tmp = (0.0 - ((v * t1) / u)) / u;
	else
		tmp = t_1;
	end
	tmp_2 = tmp;
end
code[u_, v_, t1_] := Block[{t$95$1 = N[(1.0 / N[(N[(N[(u * -2.0), $MachinePrecision] - t1), $MachinePrecision] / v), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t1, -1.65e-73], t$95$1, If[LessEqual[t1, 2.9e+55], N[(N[(0.0 - N[(N[(v * t1), $MachinePrecision] / u), $MachinePrecision]), $MachinePrecision] / u), $MachinePrecision], t$95$1]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := \frac{1}{\frac{u \cdot -2 - t1}{v}}\\
\mathbf{if}\;t1 \leq -1.65 \cdot 10^{-73}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;t1 \leq 2.9 \cdot 10^{+55}:\\
\;\;\;\;\frac{0 - \frac{v \cdot t1}{u}}{u}\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if t1 < -1.65000000000000002e-73 or 2.8999999999999999e55 < t1

    1. Initial program 68.3%

      \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. times-fracN/A

        \[\leadsto \frac{\mathsf{neg}\left(t1\right)}{t1 + u} \cdot \color{blue}{\frac{v}{t1 + u}} \]
      2. clear-numN/A

        \[\leadsto \frac{1}{\frac{t1 + u}{\mathsf{neg}\left(t1\right)}} \cdot \frac{\color{blue}{v}}{t1 + u} \]
      3. frac-timesN/A

        \[\leadsto \frac{1 \cdot v}{\color{blue}{\frac{t1 + u}{\mathsf{neg}\left(t1\right)} \cdot \left(t1 + u\right)}} \]
      4. /-lowering-/.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\left(1 \cdot v\right), \color{blue}{\left(\frac{t1 + u}{\mathsf{neg}\left(t1\right)} \cdot \left(t1 + u\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \left(\color{blue}{\frac{t1 + u}{\mathsf{neg}\left(t1\right)}} \cdot \left(t1 + u\right)\right)\right) \]
      6. *-lowering-*.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\left(\frac{t1 + u}{\mathsf{neg}\left(t1\right)}\right), \color{blue}{\left(t1 + u\right)}\right)\right) \]
      7. distribute-frac-neg2N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\left(\mathsf{neg}\left(\frac{t1 + u}{t1}\right)\right), \left(\color{blue}{t1} + u\right)\right)\right) \]
      8. neg-lowering-neg.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\left(\frac{t1 + u}{t1}\right)\right), \left(\color{blue}{t1} + u\right)\right)\right) \]
      9. /-lowering-/.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\mathsf{/.f64}\left(\left(t1 + u\right), t1\right)\right), \left(t1 + u\right)\right)\right) \]
      10. +-lowering-+.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(t1, u\right), t1\right)\right), \left(t1 + u\right)\right)\right) \]
      11. +-lowering-+.f6498.1%

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(t1, u\right), t1\right)\right), \mathsf{+.f64}\left(t1, \color{blue}{u}\right)\right)\right) \]
    4. Applied egg-rr98.1%

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

      \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \color{blue}{\left(-2 \cdot u + -1 \cdot t1\right)}\right) \]
    6. Step-by-step derivation
      1. mul-1-negN/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \left(-2 \cdot u + \left(\mathsf{neg}\left(t1\right)\right)\right)\right) \]
      2. unsub-negN/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \left(-2 \cdot u - \color{blue}{t1}\right)\right) \]
      3. --lowering--.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{\_.f64}\left(\left(-2 \cdot u\right), \color{blue}{t1}\right)\right) \]
      4. *-commutativeN/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{\_.f64}\left(\left(u \cdot -2\right), t1\right)\right) \]
      5. *-lowering-*.f6485.9%

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(u, -2\right), t1\right)\right) \]
    7. Simplified85.9%

      \[\leadsto \frac{1 \cdot v}{\color{blue}{u \cdot -2 - t1}} \]
    8. Step-by-step derivation
      1. clear-numN/A

        \[\leadsto \frac{1}{\color{blue}{\frac{u \cdot -2 - t1}{1 \cdot v}}} \]
      2. /-lowering-/.f64N/A

        \[\leadsto \mathsf{/.f64}\left(1, \color{blue}{\left(\frac{u \cdot -2 - t1}{1 \cdot v}\right)}\right) \]
      3. *-lft-identityN/A

        \[\leadsto \mathsf{/.f64}\left(1, \left(\frac{u \cdot -2 - t1}{v}\right)\right) \]
      4. /-lowering-/.f64N/A

        \[\leadsto \mathsf{/.f64}\left(1, \mathsf{/.f64}\left(\left(u \cdot -2 - t1\right), \color{blue}{v}\right)\right) \]
      5. --lowering--.f64N/A

        \[\leadsto \mathsf{/.f64}\left(1, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\left(u \cdot -2\right), t1\right), v\right)\right) \]
      6. *-lowering-*.f6486.3%

        \[\leadsto \mathsf{/.f64}\left(1, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(u, -2\right), t1\right), v\right)\right) \]
    9. Applied egg-rr86.3%

      \[\leadsto \color{blue}{\frac{1}{\frac{u \cdot -2 - t1}{v}}} \]

    if -1.65000000000000002e-73 < t1 < 2.8999999999999999e55

    1. Initial program 90.3%

      \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
    2. Add Preprocessing
    3. Taylor expanded in v around 0

      \[\leadsto \color{blue}{-1 \cdot \frac{t1 \cdot v}{{\left(t1 + u\right)}^{2}}} \]
    4. Step-by-step derivation
      1. associate-*r/N/A

        \[\leadsto \frac{-1 \cdot \left(t1 \cdot v\right)}{\color{blue}{{\left(t1 + u\right)}^{2}}} \]
      2. unpow2N/A

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

        \[\leadsto \frac{\frac{-1 \cdot \left(t1 \cdot v\right)}{t1 + u}}{\color{blue}{t1 + u}} \]
      4. /-lowering-/.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\left(\frac{-1 \cdot \left(t1 \cdot v\right)}{t1 + u}\right), \color{blue}{\left(t1 + u\right)}\right) \]
      5. associate-*r*N/A

        \[\leadsto \mathsf{/.f64}\left(\left(\frac{\left(-1 \cdot t1\right) \cdot v}{t1 + u}\right), \left(t1 + u\right)\right) \]
      6. *-commutativeN/A

        \[\leadsto \mathsf{/.f64}\left(\left(\frac{v \cdot \left(-1 \cdot t1\right)}{t1 + u}\right), \left(t1 + u\right)\right) \]
      7. associate-/l*N/A

        \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{-1 \cdot t1}{t1 + u}\right), \left(\color{blue}{t1} + u\right)\right) \]
      8. mul-1-negN/A

        \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right), \left(t1 + u\right)\right) \]
      9. distribute-frac-negN/A

        \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right)\right), \left(t1 + u\right)\right) \]
      10. *-lowering-*.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right)\right), \left(\color{blue}{t1} + u\right)\right) \]
      11. distribute-frac-negN/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
      12. mul-1-negN/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{-1 \cdot t1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
      13. *-commutativeN/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{t1 \cdot -1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
      14. associate-/l*N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(t1 \cdot \frac{-1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
      15. *-lowering-*.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \left(\frac{-1}{t1 + u}\right)\right)\right), \left(t1 + u\right)\right) \]
      16. /-lowering-/.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \left(t1 + u\right)\right)\right)\right), \left(t1 + u\right)\right) \]
      17. +-commutativeN/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \left(u + t1\right)\right)\right)\right), \left(t1 + u\right)\right) \]
      18. +-lowering-+.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \left(t1 + u\right)\right) \]
      19. +-commutativeN/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \left(u + \color{blue}{t1}\right)\right) \]
      20. +-lowering-+.f6497.4%

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \mathsf{+.f64}\left(u, \color{blue}{t1}\right)\right) \]
    5. Simplified97.4%

      \[\leadsto \color{blue}{\frac{v \cdot \left(t1 \cdot \frac{-1}{u + t1}\right)}{u + t1}} \]
    6. Taylor expanded in t1 around 0

      \[\leadsto \mathsf{/.f64}\left(\color{blue}{\left(-1 \cdot \frac{t1 \cdot v}{u}\right)}, \mathsf{+.f64}\left(u, t1\right)\right) \]
    7. Step-by-step derivation
      1. associate-*r/N/A

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

        \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\left(-1 \cdot \left(t1 \cdot v\right)\right), u\right), \mathsf{+.f64}\left(\color{blue}{u}, t1\right)\right) \]
      3. mul-1-negN/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\left(\mathsf{neg}\left(t1 \cdot v\right)\right), u\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
      4. neg-sub0N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\left(0 - t1 \cdot v\right), u\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
      5. --lowering--.f64N/A

        \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\mathsf{\_.f64}\left(0, \left(t1 \cdot v\right)\right), u\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
      6. *-lowering-*.f6476.3%

        \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\mathsf{\_.f64}\left(0, \mathsf{*.f64}\left(t1, v\right)\right), u\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
    8. Simplified76.3%

      \[\leadsto \frac{\color{blue}{\frac{0 - t1 \cdot v}{u}}}{u + t1} \]
    9. Taylor expanded in u around inf

      \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\mathsf{\_.f64}\left(0, \mathsf{*.f64}\left(t1, v\right)\right), u\right), \color{blue}{u}\right) \]
    10. Step-by-step derivation
      1. Simplified80.8%

        \[\leadsto \frac{\frac{0 - t1 \cdot v}{u}}{\color{blue}{u}} \]
    11. Recombined 2 regimes into one program.
    12. Final simplification83.8%

      \[\leadsto \begin{array}{l} \mathbf{if}\;t1 \leq -1.65 \cdot 10^{-73}:\\ \;\;\;\;\frac{1}{\frac{u \cdot -2 - t1}{v}}\\ \mathbf{elif}\;t1 \leq 2.9 \cdot 10^{+55}:\\ \;\;\;\;\frac{0 - \frac{v \cdot t1}{u}}{u}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\frac{u \cdot -2 - t1}{v}}\\ \end{array} \]
    13. Add Preprocessing

    Alternative 3: 77.9% accurate, 0.6× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} t_1 := \frac{1}{\frac{u \cdot -2 - t1}{v}}\\ \mathbf{if}\;t1 \leq -1.95 \cdot 10^{-73}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;t1 \leq 0.042:\\ \;\;\;\;\frac{-1}{u \cdot \frac{u}{v \cdot t1}}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
    (FPCore (u v t1)
     :precision binary64
     (let* ((t_1 (/ 1.0 (/ (- (* u -2.0) t1) v))))
       (if (<= t1 -1.95e-73)
         t_1
         (if (<= t1 0.042) (/ -1.0 (* u (/ u (* v t1)))) t_1))))
    double code(double u, double v, double t1) {
    	double t_1 = 1.0 / (((u * -2.0) - t1) / v);
    	double tmp;
    	if (t1 <= -1.95e-73) {
    		tmp = t_1;
    	} else if (t1 <= 0.042) {
    		tmp = -1.0 / (u * (u / (v * t1)));
    	} else {
    		tmp = t_1;
    	}
    	return tmp;
    }
    
    real(8) function code(u, v, t1)
        real(8), intent (in) :: u
        real(8), intent (in) :: v
        real(8), intent (in) :: t1
        real(8) :: t_1
        real(8) :: tmp
        t_1 = 1.0d0 / (((u * (-2.0d0)) - t1) / v)
        if (t1 <= (-1.95d-73)) then
            tmp = t_1
        else if (t1 <= 0.042d0) then
            tmp = (-1.0d0) / (u * (u / (v * t1)))
        else
            tmp = t_1
        end if
        code = tmp
    end function
    
    public static double code(double u, double v, double t1) {
    	double t_1 = 1.0 / (((u * -2.0) - t1) / v);
    	double tmp;
    	if (t1 <= -1.95e-73) {
    		tmp = t_1;
    	} else if (t1 <= 0.042) {
    		tmp = -1.0 / (u * (u / (v * t1)));
    	} else {
    		tmp = t_1;
    	}
    	return tmp;
    }
    
    def code(u, v, t1):
    	t_1 = 1.0 / (((u * -2.0) - t1) / v)
    	tmp = 0
    	if t1 <= -1.95e-73:
    		tmp = t_1
    	elif t1 <= 0.042:
    		tmp = -1.0 / (u * (u / (v * t1)))
    	else:
    		tmp = t_1
    	return tmp
    
    function code(u, v, t1)
    	t_1 = Float64(1.0 / Float64(Float64(Float64(u * -2.0) - t1) / v))
    	tmp = 0.0
    	if (t1 <= -1.95e-73)
    		tmp = t_1;
    	elseif (t1 <= 0.042)
    		tmp = Float64(-1.0 / Float64(u * Float64(u / Float64(v * t1))));
    	else
    		tmp = t_1;
    	end
    	return tmp
    end
    
    function tmp_2 = code(u, v, t1)
    	t_1 = 1.0 / (((u * -2.0) - t1) / v);
    	tmp = 0.0;
    	if (t1 <= -1.95e-73)
    		tmp = t_1;
    	elseif (t1 <= 0.042)
    		tmp = -1.0 / (u * (u / (v * t1)));
    	else
    		tmp = t_1;
    	end
    	tmp_2 = tmp;
    end
    
    code[u_, v_, t1_] := Block[{t$95$1 = N[(1.0 / N[(N[(N[(u * -2.0), $MachinePrecision] - t1), $MachinePrecision] / v), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t1, -1.95e-73], t$95$1, If[LessEqual[t1, 0.042], N[(-1.0 / N[(u * N[(u / N[(v * t1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    t_1 := \frac{1}{\frac{u \cdot -2 - t1}{v}}\\
    \mathbf{if}\;t1 \leq -1.95 \cdot 10^{-73}:\\
    \;\;\;\;t\_1\\
    
    \mathbf{elif}\;t1 \leq 0.042:\\
    \;\;\;\;\frac{-1}{u \cdot \frac{u}{v \cdot t1}}\\
    
    \mathbf{else}:\\
    \;\;\;\;t\_1\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if t1 < -1.94999999999999991e-73 or 0.0420000000000000026 < t1

      1. Initial program 68.9%

        \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
      2. Add Preprocessing
      3. Step-by-step derivation
        1. times-fracN/A

          \[\leadsto \frac{\mathsf{neg}\left(t1\right)}{t1 + u} \cdot \color{blue}{\frac{v}{t1 + u}} \]
        2. clear-numN/A

          \[\leadsto \frac{1}{\frac{t1 + u}{\mathsf{neg}\left(t1\right)}} \cdot \frac{\color{blue}{v}}{t1 + u} \]
        3. frac-timesN/A

          \[\leadsto \frac{1 \cdot v}{\color{blue}{\frac{t1 + u}{\mathsf{neg}\left(t1\right)} \cdot \left(t1 + u\right)}} \]
        4. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\left(1 \cdot v\right), \color{blue}{\left(\frac{t1 + u}{\mathsf{neg}\left(t1\right)} \cdot \left(t1 + u\right)\right)}\right) \]
        5. *-lowering-*.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \left(\color{blue}{\frac{t1 + u}{\mathsf{neg}\left(t1\right)}} \cdot \left(t1 + u\right)\right)\right) \]
        6. *-lowering-*.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\left(\frac{t1 + u}{\mathsf{neg}\left(t1\right)}\right), \color{blue}{\left(t1 + u\right)}\right)\right) \]
        7. distribute-frac-neg2N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\left(\mathsf{neg}\left(\frac{t1 + u}{t1}\right)\right), \left(\color{blue}{t1} + u\right)\right)\right) \]
        8. neg-lowering-neg.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\left(\frac{t1 + u}{t1}\right)\right), \left(\color{blue}{t1} + u\right)\right)\right) \]
        9. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\mathsf{/.f64}\left(\left(t1 + u\right), t1\right)\right), \left(t1 + u\right)\right)\right) \]
        10. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(t1, u\right), t1\right)\right), \left(t1 + u\right)\right)\right) \]
        11. +-lowering-+.f6495.8%

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(t1, u\right), t1\right)\right), \mathsf{+.f64}\left(t1, \color{blue}{u}\right)\right)\right) \]
      4. Applied egg-rr95.8%

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

        \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \color{blue}{\left(-2 \cdot u + -1 \cdot t1\right)}\right) \]
      6. Step-by-step derivation
        1. mul-1-negN/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \left(-2 \cdot u + \left(\mathsf{neg}\left(t1\right)\right)\right)\right) \]
        2. unsub-negN/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \left(-2 \cdot u - \color{blue}{t1}\right)\right) \]
        3. --lowering--.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{\_.f64}\left(\left(-2 \cdot u\right), \color{blue}{t1}\right)\right) \]
        4. *-commutativeN/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{\_.f64}\left(\left(u \cdot -2\right), t1\right)\right) \]
        5. *-lowering-*.f6483.2%

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(u, -2\right), t1\right)\right) \]
      7. Simplified83.2%

        \[\leadsto \frac{1 \cdot v}{\color{blue}{u \cdot -2 - t1}} \]
      8. Step-by-step derivation
        1. clear-numN/A

          \[\leadsto \frac{1}{\color{blue}{\frac{u \cdot -2 - t1}{1 \cdot v}}} \]
        2. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \color{blue}{\left(\frac{u \cdot -2 - t1}{1 \cdot v}\right)}\right) \]
        3. *-lft-identityN/A

          \[\leadsto \mathsf{/.f64}\left(1, \left(\frac{u \cdot -2 - t1}{v}\right)\right) \]
        4. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{/.f64}\left(\left(u \cdot -2 - t1\right), \color{blue}{v}\right)\right) \]
        5. --lowering--.f64N/A

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\left(u \cdot -2\right), t1\right), v\right)\right) \]
        6. *-lowering-*.f6483.9%

          \[\leadsto \mathsf{/.f64}\left(1, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(u, -2\right), t1\right), v\right)\right) \]
      9. Applied egg-rr83.9%

        \[\leadsto \color{blue}{\frac{1}{\frac{u \cdot -2 - t1}{v}}} \]

      if -1.94999999999999991e-73 < t1 < 0.0420000000000000026

      1. Initial program 92.6%

        \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
      2. Add Preprocessing
      3. Taylor expanded in v around 0

        \[\leadsto \color{blue}{-1 \cdot \frac{t1 \cdot v}{{\left(t1 + u\right)}^{2}}} \]
      4. Step-by-step derivation
        1. associate-*r/N/A

          \[\leadsto \frac{-1 \cdot \left(t1 \cdot v\right)}{\color{blue}{{\left(t1 + u\right)}^{2}}} \]
        2. unpow2N/A

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

          \[\leadsto \frac{\frac{-1 \cdot \left(t1 \cdot v\right)}{t1 + u}}{\color{blue}{t1 + u}} \]
        4. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\left(\frac{-1 \cdot \left(t1 \cdot v\right)}{t1 + u}\right), \color{blue}{\left(t1 + u\right)}\right) \]
        5. associate-*r*N/A

          \[\leadsto \mathsf{/.f64}\left(\left(\frac{\left(-1 \cdot t1\right) \cdot v}{t1 + u}\right), \left(t1 + u\right)\right) \]
        6. *-commutativeN/A

          \[\leadsto \mathsf{/.f64}\left(\left(\frac{v \cdot \left(-1 \cdot t1\right)}{t1 + u}\right), \left(t1 + u\right)\right) \]
        7. associate-/l*N/A

          \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{-1 \cdot t1}{t1 + u}\right), \left(\color{blue}{t1} + u\right)\right) \]
        8. mul-1-negN/A

          \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right), \left(t1 + u\right)\right) \]
        9. distribute-frac-negN/A

          \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right)\right), \left(t1 + u\right)\right) \]
        10. *-lowering-*.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right)\right), \left(\color{blue}{t1} + u\right)\right) \]
        11. distribute-frac-negN/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
        12. mul-1-negN/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{-1 \cdot t1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
        13. *-commutativeN/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{t1 \cdot -1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
        14. associate-/l*N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(t1 \cdot \frac{-1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
        15. *-lowering-*.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \left(\frac{-1}{t1 + u}\right)\right)\right), \left(t1 + u\right)\right) \]
        16. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \left(t1 + u\right)\right)\right)\right), \left(t1 + u\right)\right) \]
        17. +-commutativeN/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \left(u + t1\right)\right)\right)\right), \left(t1 + u\right)\right) \]
        18. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \left(t1 + u\right)\right) \]
        19. +-commutativeN/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \left(u + \color{blue}{t1}\right)\right) \]
        20. +-lowering-+.f6497.1%

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \mathsf{+.f64}\left(u, \color{blue}{t1}\right)\right) \]
      5. Simplified97.1%

        \[\leadsto \color{blue}{\frac{v \cdot \left(t1 \cdot \frac{-1}{u + t1}\right)}{u + t1}} \]
      6. Taylor expanded in t1 around 0

        \[\leadsto \mathsf{/.f64}\left(\color{blue}{\left(-1 \cdot \frac{t1 \cdot v}{u}\right)}, \mathsf{+.f64}\left(u, t1\right)\right) \]
      7. Step-by-step derivation
        1. associate-*r/N/A

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

          \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\left(-1 \cdot \left(t1 \cdot v\right)\right), u\right), \mathsf{+.f64}\left(\color{blue}{u}, t1\right)\right) \]
        3. mul-1-negN/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\left(\mathsf{neg}\left(t1 \cdot v\right)\right), u\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
        4. neg-sub0N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\left(0 - t1 \cdot v\right), u\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
        5. --lowering--.f64N/A

          \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\mathsf{\_.f64}\left(0, \left(t1 \cdot v\right)\right), u\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
        6. *-lowering-*.f6478.4%

          \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\mathsf{\_.f64}\left(0, \mathsf{*.f64}\left(t1, v\right)\right), u\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
      8. Simplified78.4%

        \[\leadsto \frac{\color{blue}{\frac{0 - t1 \cdot v}{u}}}{u + t1} \]
      9. Step-by-step derivation
        1. clear-numN/A

          \[\leadsto \frac{1}{\color{blue}{\frac{u + t1}{\frac{0 - t1 \cdot v}{u}}}} \]
        2. frac-2negN/A

          \[\leadsto \frac{\mathsf{neg}\left(1\right)}{\color{blue}{\mathsf{neg}\left(\frac{u + t1}{\frac{0 - t1 \cdot v}{u}}\right)}} \]
        3. metadata-evalN/A

          \[\leadsto \frac{-1}{\mathsf{neg}\left(\color{blue}{\frac{u + t1}{\frac{0 - t1 \cdot v}{u}}}\right)} \]
        4. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(-1, \color{blue}{\left(\mathsf{neg}\left(\frac{u + t1}{\frac{0 - t1 \cdot v}{u}}\right)\right)}\right) \]
        5. div-invN/A

          \[\leadsto \mathsf{/.f64}\left(-1, \left(\mathsf{neg}\left(\left(u + t1\right) \cdot \frac{1}{\frac{0 - t1 \cdot v}{u}}\right)\right)\right) \]
        6. clear-numN/A

          \[\leadsto \mathsf{/.f64}\left(-1, \left(\mathsf{neg}\left(\left(u + t1\right) \cdot \frac{u}{0 - t1 \cdot v}\right)\right)\right) \]
        7. distribute-rgt-neg-inN/A

          \[\leadsto \mathsf{/.f64}\left(-1, \left(\left(u + t1\right) \cdot \color{blue}{\left(\mathsf{neg}\left(\frac{u}{0 - t1 \cdot v}\right)\right)}\right)\right) \]
        8. sub0-negN/A

          \[\leadsto \mathsf{/.f64}\left(-1, \left(\left(u + t1\right) \cdot \left(\mathsf{neg}\left(\frac{u}{\mathsf{neg}\left(t1 \cdot v\right)}\right)\right)\right)\right) \]
        9. distribute-frac-neg2N/A

          \[\leadsto \mathsf{/.f64}\left(-1, \left(\left(u + t1\right) \cdot \left(\mathsf{neg}\left(\left(\mathsf{neg}\left(\frac{u}{t1 \cdot v}\right)\right)\right)\right)\right)\right) \]
        10. remove-double-negN/A

          \[\leadsto \mathsf{/.f64}\left(-1, \left(\left(u + t1\right) \cdot \frac{u}{\color{blue}{t1 \cdot v}}\right)\right) \]
        11. *-lowering-*.f64N/A

          \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\left(u + t1\right), \color{blue}{\left(\frac{u}{t1 \cdot v}\right)}\right)\right) \]
        12. +-commutativeN/A

          \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\left(t1 + u\right), \left(\frac{\color{blue}{u}}{t1 \cdot v}\right)\right)\right) \]
        13. +-lowering-+.f64N/A

          \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\mathsf{+.f64}\left(t1, u\right), \left(\frac{\color{blue}{u}}{t1 \cdot v}\right)\right)\right) \]
        14. /-lowering-/.f64N/A

          \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\mathsf{+.f64}\left(t1, u\right), \mathsf{/.f64}\left(u, \color{blue}{\left(t1 \cdot v\right)}\right)\right)\right) \]
        15. *-commutativeN/A

          \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\mathsf{+.f64}\left(t1, u\right), \mathsf{/.f64}\left(u, \left(v \cdot \color{blue}{t1}\right)\right)\right)\right) \]
        16. *-lowering-*.f6477.7%

          \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\mathsf{+.f64}\left(t1, u\right), \mathsf{/.f64}\left(u, \mathsf{*.f64}\left(v, \color{blue}{t1}\right)\right)\right)\right) \]
      10. Applied egg-rr77.7%

        \[\leadsto \color{blue}{\frac{-1}{\left(t1 + u\right) \cdot \frac{u}{v \cdot t1}}} \]
      11. Taylor expanded in t1 around 0

        \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\color{blue}{u}, \mathsf{/.f64}\left(u, \mathsf{*.f64}\left(v, t1\right)\right)\right)\right) \]
      12. Step-by-step derivation
        1. Simplified82.8%

          \[\leadsto \frac{-1}{\color{blue}{u} \cdot \frac{u}{v \cdot t1}} \]
      13. Recombined 2 regimes into one program.
      14. Add Preprocessing

      Alternative 4: 77.2% accurate, 0.6× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} t_1 := \frac{v}{u \cdot -2 - t1}\\ \mathbf{if}\;t1 \leq -1.9 \cdot 10^{-74}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;t1 \leq 2.9 \cdot 10^{+55}:\\ \;\;\;\;\frac{-1}{u \cdot \frac{u}{v \cdot t1}}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
      (FPCore (u v t1)
       :precision binary64
       (let* ((t_1 (/ v (- (* u -2.0) t1))))
         (if (<= t1 -1.9e-74)
           t_1
           (if (<= t1 2.9e+55) (/ -1.0 (* u (/ u (* v t1)))) t_1))))
      double code(double u, double v, double t1) {
      	double t_1 = v / ((u * -2.0) - t1);
      	double tmp;
      	if (t1 <= -1.9e-74) {
      		tmp = t_1;
      	} else if (t1 <= 2.9e+55) {
      		tmp = -1.0 / (u * (u / (v * t1)));
      	} else {
      		tmp = t_1;
      	}
      	return tmp;
      }
      
      real(8) function code(u, v, t1)
          real(8), intent (in) :: u
          real(8), intent (in) :: v
          real(8), intent (in) :: t1
          real(8) :: t_1
          real(8) :: tmp
          t_1 = v / ((u * (-2.0d0)) - t1)
          if (t1 <= (-1.9d-74)) then
              tmp = t_1
          else if (t1 <= 2.9d+55) then
              tmp = (-1.0d0) / (u * (u / (v * t1)))
          else
              tmp = t_1
          end if
          code = tmp
      end function
      
      public static double code(double u, double v, double t1) {
      	double t_1 = v / ((u * -2.0) - t1);
      	double tmp;
      	if (t1 <= -1.9e-74) {
      		tmp = t_1;
      	} else if (t1 <= 2.9e+55) {
      		tmp = -1.0 / (u * (u / (v * t1)));
      	} else {
      		tmp = t_1;
      	}
      	return tmp;
      }
      
      def code(u, v, t1):
      	t_1 = v / ((u * -2.0) - t1)
      	tmp = 0
      	if t1 <= -1.9e-74:
      		tmp = t_1
      	elif t1 <= 2.9e+55:
      		tmp = -1.0 / (u * (u / (v * t1)))
      	else:
      		tmp = t_1
      	return tmp
      
      function code(u, v, t1)
      	t_1 = Float64(v / Float64(Float64(u * -2.0) - t1))
      	tmp = 0.0
      	if (t1 <= -1.9e-74)
      		tmp = t_1;
      	elseif (t1 <= 2.9e+55)
      		tmp = Float64(-1.0 / Float64(u * Float64(u / Float64(v * t1))));
      	else
      		tmp = t_1;
      	end
      	return tmp
      end
      
      function tmp_2 = code(u, v, t1)
      	t_1 = v / ((u * -2.0) - t1);
      	tmp = 0.0;
      	if (t1 <= -1.9e-74)
      		tmp = t_1;
      	elseif (t1 <= 2.9e+55)
      		tmp = -1.0 / (u * (u / (v * t1)));
      	else
      		tmp = t_1;
      	end
      	tmp_2 = tmp;
      end
      
      code[u_, v_, t1_] := Block[{t$95$1 = N[(v / N[(N[(u * -2.0), $MachinePrecision] - t1), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t1, -1.9e-74], t$95$1, If[LessEqual[t1, 2.9e+55], N[(-1.0 / N[(u * N[(u / N[(v * t1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      t_1 := \frac{v}{u \cdot -2 - t1}\\
      \mathbf{if}\;t1 \leq -1.9 \cdot 10^{-74}:\\
      \;\;\;\;t\_1\\
      
      \mathbf{elif}\;t1 \leq 2.9 \cdot 10^{+55}:\\
      \;\;\;\;\frac{-1}{u \cdot \frac{u}{v \cdot t1}}\\
      
      \mathbf{else}:\\
      \;\;\;\;t\_1\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if t1 < -1.8999999999999998e-74 or 2.8999999999999999e55 < t1

        1. Initial program 68.3%

          \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
        2. Add Preprocessing
        3. Step-by-step derivation
          1. times-fracN/A

            \[\leadsto \frac{\mathsf{neg}\left(t1\right)}{t1 + u} \cdot \color{blue}{\frac{v}{t1 + u}} \]
          2. clear-numN/A

            \[\leadsto \frac{1}{\frac{t1 + u}{\mathsf{neg}\left(t1\right)}} \cdot \frac{\color{blue}{v}}{t1 + u} \]
          3. frac-timesN/A

            \[\leadsto \frac{1 \cdot v}{\color{blue}{\frac{t1 + u}{\mathsf{neg}\left(t1\right)} \cdot \left(t1 + u\right)}} \]
          4. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\left(1 \cdot v\right), \color{blue}{\left(\frac{t1 + u}{\mathsf{neg}\left(t1\right)} \cdot \left(t1 + u\right)\right)}\right) \]
          5. *-lowering-*.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \left(\color{blue}{\frac{t1 + u}{\mathsf{neg}\left(t1\right)}} \cdot \left(t1 + u\right)\right)\right) \]
          6. *-lowering-*.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\left(\frac{t1 + u}{\mathsf{neg}\left(t1\right)}\right), \color{blue}{\left(t1 + u\right)}\right)\right) \]
          7. distribute-frac-neg2N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\left(\mathsf{neg}\left(\frac{t1 + u}{t1}\right)\right), \left(\color{blue}{t1} + u\right)\right)\right) \]
          8. neg-lowering-neg.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\left(\frac{t1 + u}{t1}\right)\right), \left(\color{blue}{t1} + u\right)\right)\right) \]
          9. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\mathsf{/.f64}\left(\left(t1 + u\right), t1\right)\right), \left(t1 + u\right)\right)\right) \]
          10. +-lowering-+.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(t1, u\right), t1\right)\right), \left(t1 + u\right)\right)\right) \]
          11. +-lowering-+.f6498.1%

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(t1, u\right), t1\right)\right), \mathsf{+.f64}\left(t1, \color{blue}{u}\right)\right)\right) \]
        4. Applied egg-rr98.1%

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

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \color{blue}{\left(-2 \cdot u + -1 \cdot t1\right)}\right) \]
        6. Step-by-step derivation
          1. mul-1-negN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \left(-2 \cdot u + \left(\mathsf{neg}\left(t1\right)\right)\right)\right) \]
          2. unsub-negN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \left(-2 \cdot u - \color{blue}{t1}\right)\right) \]
          3. --lowering--.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{\_.f64}\left(\left(-2 \cdot u\right), \color{blue}{t1}\right)\right) \]
          4. *-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{\_.f64}\left(\left(u \cdot -2\right), t1\right)\right) \]
          5. *-lowering-*.f6485.9%

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(u, -2\right), t1\right)\right) \]
        7. Simplified85.9%

          \[\leadsto \frac{1 \cdot v}{\color{blue}{u \cdot -2 - t1}} \]
        8. Step-by-step derivation
          1. *-lft-identityN/A

            \[\leadsto \frac{v}{\color{blue}{u \cdot -2} - t1} \]
          2. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(v, \color{blue}{\left(u \cdot -2 - t1\right)}\right) \]
          3. --lowering--.f64N/A

            \[\leadsto \mathsf{/.f64}\left(v, \mathsf{\_.f64}\left(\left(u \cdot -2\right), \color{blue}{t1}\right)\right) \]
          4. *-lowering-*.f6485.9%

            \[\leadsto \mathsf{/.f64}\left(v, \mathsf{\_.f64}\left(\mathsf{*.f64}\left(u, -2\right), t1\right)\right) \]
        9. Applied egg-rr85.9%

          \[\leadsto \color{blue}{\frac{v}{u \cdot -2 - t1}} \]

        if -1.8999999999999998e-74 < t1 < 2.8999999999999999e55

        1. Initial program 90.3%

          \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
        2. Add Preprocessing
        3. Taylor expanded in v around 0

          \[\leadsto \color{blue}{-1 \cdot \frac{t1 \cdot v}{{\left(t1 + u\right)}^{2}}} \]
        4. Step-by-step derivation
          1. associate-*r/N/A

            \[\leadsto \frac{-1 \cdot \left(t1 \cdot v\right)}{\color{blue}{{\left(t1 + u\right)}^{2}}} \]
          2. unpow2N/A

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

            \[\leadsto \frac{\frac{-1 \cdot \left(t1 \cdot v\right)}{t1 + u}}{\color{blue}{t1 + u}} \]
          4. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\left(\frac{-1 \cdot \left(t1 \cdot v\right)}{t1 + u}\right), \color{blue}{\left(t1 + u\right)}\right) \]
          5. associate-*r*N/A

            \[\leadsto \mathsf{/.f64}\left(\left(\frac{\left(-1 \cdot t1\right) \cdot v}{t1 + u}\right), \left(t1 + u\right)\right) \]
          6. *-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\left(\frac{v \cdot \left(-1 \cdot t1\right)}{t1 + u}\right), \left(t1 + u\right)\right) \]
          7. associate-/l*N/A

            \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{-1 \cdot t1}{t1 + u}\right), \left(\color{blue}{t1} + u\right)\right) \]
          8. mul-1-negN/A

            \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right), \left(t1 + u\right)\right) \]
          9. distribute-frac-negN/A

            \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right)\right), \left(t1 + u\right)\right) \]
          10. *-lowering-*.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right)\right), \left(\color{blue}{t1} + u\right)\right) \]
          11. distribute-frac-negN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          12. mul-1-negN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{-1 \cdot t1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          13. *-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{t1 \cdot -1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          14. associate-/l*N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(t1 \cdot \frac{-1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          15. *-lowering-*.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \left(\frac{-1}{t1 + u}\right)\right)\right), \left(t1 + u\right)\right) \]
          16. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \left(t1 + u\right)\right)\right)\right), \left(t1 + u\right)\right) \]
          17. +-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \left(u + t1\right)\right)\right)\right), \left(t1 + u\right)\right) \]
          18. +-lowering-+.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \left(t1 + u\right)\right) \]
          19. +-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \left(u + \color{blue}{t1}\right)\right) \]
          20. +-lowering-+.f6497.4%

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \mathsf{+.f64}\left(u, \color{blue}{t1}\right)\right) \]
        5. Simplified97.4%

          \[\leadsto \color{blue}{\frac{v \cdot \left(t1 \cdot \frac{-1}{u + t1}\right)}{u + t1}} \]
        6. Taylor expanded in t1 around 0

          \[\leadsto \mathsf{/.f64}\left(\color{blue}{\left(-1 \cdot \frac{t1 \cdot v}{u}\right)}, \mathsf{+.f64}\left(u, t1\right)\right) \]
        7. Step-by-step derivation
          1. associate-*r/N/A

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

            \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\left(-1 \cdot \left(t1 \cdot v\right)\right), u\right), \mathsf{+.f64}\left(\color{blue}{u}, t1\right)\right) \]
          3. mul-1-negN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\left(\mathsf{neg}\left(t1 \cdot v\right)\right), u\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
          4. neg-sub0N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\left(0 - t1 \cdot v\right), u\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
          5. --lowering--.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\mathsf{\_.f64}\left(0, \left(t1 \cdot v\right)\right), u\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
          6. *-lowering-*.f6476.3%

            \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\mathsf{\_.f64}\left(0, \mathsf{*.f64}\left(t1, v\right)\right), u\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
        8. Simplified76.3%

          \[\leadsto \frac{\color{blue}{\frac{0 - t1 \cdot v}{u}}}{u + t1} \]
        9. Step-by-step derivation
          1. clear-numN/A

            \[\leadsto \frac{1}{\color{blue}{\frac{u + t1}{\frac{0 - t1 \cdot v}{u}}}} \]
          2. frac-2negN/A

            \[\leadsto \frac{\mathsf{neg}\left(1\right)}{\color{blue}{\mathsf{neg}\left(\frac{u + t1}{\frac{0 - t1 \cdot v}{u}}\right)}} \]
          3. metadata-evalN/A

            \[\leadsto \frac{-1}{\mathsf{neg}\left(\color{blue}{\frac{u + t1}{\frac{0 - t1 \cdot v}{u}}}\right)} \]
          4. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(-1, \color{blue}{\left(\mathsf{neg}\left(\frac{u + t1}{\frac{0 - t1 \cdot v}{u}}\right)\right)}\right) \]
          5. div-invN/A

            \[\leadsto \mathsf{/.f64}\left(-1, \left(\mathsf{neg}\left(\left(u + t1\right) \cdot \frac{1}{\frac{0 - t1 \cdot v}{u}}\right)\right)\right) \]
          6. clear-numN/A

            \[\leadsto \mathsf{/.f64}\left(-1, \left(\mathsf{neg}\left(\left(u + t1\right) \cdot \frac{u}{0 - t1 \cdot v}\right)\right)\right) \]
          7. distribute-rgt-neg-inN/A

            \[\leadsto \mathsf{/.f64}\left(-1, \left(\left(u + t1\right) \cdot \color{blue}{\left(\mathsf{neg}\left(\frac{u}{0 - t1 \cdot v}\right)\right)}\right)\right) \]
          8. sub0-negN/A

            \[\leadsto \mathsf{/.f64}\left(-1, \left(\left(u + t1\right) \cdot \left(\mathsf{neg}\left(\frac{u}{\mathsf{neg}\left(t1 \cdot v\right)}\right)\right)\right)\right) \]
          9. distribute-frac-neg2N/A

            \[\leadsto \mathsf{/.f64}\left(-1, \left(\left(u + t1\right) \cdot \left(\mathsf{neg}\left(\left(\mathsf{neg}\left(\frac{u}{t1 \cdot v}\right)\right)\right)\right)\right)\right) \]
          10. remove-double-negN/A

            \[\leadsto \mathsf{/.f64}\left(-1, \left(\left(u + t1\right) \cdot \frac{u}{\color{blue}{t1 \cdot v}}\right)\right) \]
          11. *-lowering-*.f64N/A

            \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\left(u + t1\right), \color{blue}{\left(\frac{u}{t1 \cdot v}\right)}\right)\right) \]
          12. +-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\left(t1 + u\right), \left(\frac{\color{blue}{u}}{t1 \cdot v}\right)\right)\right) \]
          13. +-lowering-+.f64N/A

            \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\mathsf{+.f64}\left(t1, u\right), \left(\frac{\color{blue}{u}}{t1 \cdot v}\right)\right)\right) \]
          14. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\mathsf{+.f64}\left(t1, u\right), \mathsf{/.f64}\left(u, \color{blue}{\left(t1 \cdot v\right)}\right)\right)\right) \]
          15. *-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\mathsf{+.f64}\left(t1, u\right), \mathsf{/.f64}\left(u, \left(v \cdot \color{blue}{t1}\right)\right)\right)\right) \]
          16. *-lowering-*.f6475.6%

            \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\mathsf{+.f64}\left(t1, u\right), \mathsf{/.f64}\left(u, \mathsf{*.f64}\left(v, \color{blue}{t1}\right)\right)\right)\right) \]
        10. Applied egg-rr75.6%

          \[\leadsto \color{blue}{\frac{-1}{\left(t1 + u\right) \cdot \frac{u}{v \cdot t1}}} \]
        11. Taylor expanded in t1 around 0

          \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\color{blue}{u}, \mathsf{/.f64}\left(u, \mathsf{*.f64}\left(v, t1\right)\right)\right)\right) \]
        12. Step-by-step derivation
          1. Simplified80.1%

            \[\leadsto \frac{-1}{\color{blue}{u} \cdot \frac{u}{v \cdot t1}} \]
        13. Recombined 2 regimes into one program.
        14. Add Preprocessing

        Alternative 5: 76.8% accurate, 0.6× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} t_1 := \frac{v}{u \cdot -2 - t1}\\ \mathbf{if}\;t1 \leq -1.1 \cdot 10^{-73}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;t1 \leq 2.25 \cdot 10^{-5}:\\ \;\;\;\;\frac{v \cdot t1}{u \cdot \left(0 - u\right)}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
        (FPCore (u v t1)
         :precision binary64
         (let* ((t_1 (/ v (- (* u -2.0) t1))))
           (if (<= t1 -1.1e-73)
             t_1
             (if (<= t1 2.25e-5) (/ (* v t1) (* u (- 0.0 u))) t_1))))
        double code(double u, double v, double t1) {
        	double t_1 = v / ((u * -2.0) - t1);
        	double tmp;
        	if (t1 <= -1.1e-73) {
        		tmp = t_1;
        	} else if (t1 <= 2.25e-5) {
        		tmp = (v * t1) / (u * (0.0 - u));
        	} else {
        		tmp = t_1;
        	}
        	return tmp;
        }
        
        real(8) function code(u, v, t1)
            real(8), intent (in) :: u
            real(8), intent (in) :: v
            real(8), intent (in) :: t1
            real(8) :: t_1
            real(8) :: tmp
            t_1 = v / ((u * (-2.0d0)) - t1)
            if (t1 <= (-1.1d-73)) then
                tmp = t_1
            else if (t1 <= 2.25d-5) then
                tmp = (v * t1) / (u * (0.0d0 - u))
            else
                tmp = t_1
            end if
            code = tmp
        end function
        
        public static double code(double u, double v, double t1) {
        	double t_1 = v / ((u * -2.0) - t1);
        	double tmp;
        	if (t1 <= -1.1e-73) {
        		tmp = t_1;
        	} else if (t1 <= 2.25e-5) {
        		tmp = (v * t1) / (u * (0.0 - u));
        	} else {
        		tmp = t_1;
        	}
        	return tmp;
        }
        
        def code(u, v, t1):
        	t_1 = v / ((u * -2.0) - t1)
        	tmp = 0
        	if t1 <= -1.1e-73:
        		tmp = t_1
        	elif t1 <= 2.25e-5:
        		tmp = (v * t1) / (u * (0.0 - u))
        	else:
        		tmp = t_1
        	return tmp
        
        function code(u, v, t1)
        	t_1 = Float64(v / Float64(Float64(u * -2.0) - t1))
        	tmp = 0.0
        	if (t1 <= -1.1e-73)
        		tmp = t_1;
        	elseif (t1 <= 2.25e-5)
        		tmp = Float64(Float64(v * t1) / Float64(u * Float64(0.0 - u)));
        	else
        		tmp = t_1;
        	end
        	return tmp
        end
        
        function tmp_2 = code(u, v, t1)
        	t_1 = v / ((u * -2.0) - t1);
        	tmp = 0.0;
        	if (t1 <= -1.1e-73)
        		tmp = t_1;
        	elseif (t1 <= 2.25e-5)
        		tmp = (v * t1) / (u * (0.0 - u));
        	else
        		tmp = t_1;
        	end
        	tmp_2 = tmp;
        end
        
        code[u_, v_, t1_] := Block[{t$95$1 = N[(v / N[(N[(u * -2.0), $MachinePrecision] - t1), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t1, -1.1e-73], t$95$1, If[LessEqual[t1, 2.25e-5], N[(N[(v * t1), $MachinePrecision] / N[(u * N[(0.0 - u), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$1]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        t_1 := \frac{v}{u \cdot -2 - t1}\\
        \mathbf{if}\;t1 \leq -1.1 \cdot 10^{-73}:\\
        \;\;\;\;t\_1\\
        
        \mathbf{elif}\;t1 \leq 2.25 \cdot 10^{-5}:\\
        \;\;\;\;\frac{v \cdot t1}{u \cdot \left(0 - u\right)}\\
        
        \mathbf{else}:\\
        \;\;\;\;t\_1\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 2 regimes
        2. if t1 < -1.1e-73 or 2.25000000000000014e-5 < t1

          1. Initial program 68.9%

            \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
          2. Add Preprocessing
          3. Step-by-step derivation
            1. times-fracN/A

              \[\leadsto \frac{\mathsf{neg}\left(t1\right)}{t1 + u} \cdot \color{blue}{\frac{v}{t1 + u}} \]
            2. clear-numN/A

              \[\leadsto \frac{1}{\frac{t1 + u}{\mathsf{neg}\left(t1\right)}} \cdot \frac{\color{blue}{v}}{t1 + u} \]
            3. frac-timesN/A

              \[\leadsto \frac{1 \cdot v}{\color{blue}{\frac{t1 + u}{\mathsf{neg}\left(t1\right)} \cdot \left(t1 + u\right)}} \]
            4. /-lowering-/.f64N/A

              \[\leadsto \mathsf{/.f64}\left(\left(1 \cdot v\right), \color{blue}{\left(\frac{t1 + u}{\mathsf{neg}\left(t1\right)} \cdot \left(t1 + u\right)\right)}\right) \]
            5. *-lowering-*.f64N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \left(\color{blue}{\frac{t1 + u}{\mathsf{neg}\left(t1\right)}} \cdot \left(t1 + u\right)\right)\right) \]
            6. *-lowering-*.f64N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\left(\frac{t1 + u}{\mathsf{neg}\left(t1\right)}\right), \color{blue}{\left(t1 + u\right)}\right)\right) \]
            7. distribute-frac-neg2N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\left(\mathsf{neg}\left(\frac{t1 + u}{t1}\right)\right), \left(\color{blue}{t1} + u\right)\right)\right) \]
            8. neg-lowering-neg.f64N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\left(\frac{t1 + u}{t1}\right)\right), \left(\color{blue}{t1} + u\right)\right)\right) \]
            9. /-lowering-/.f64N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\mathsf{/.f64}\left(\left(t1 + u\right), t1\right)\right), \left(t1 + u\right)\right)\right) \]
            10. +-lowering-+.f64N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(t1, u\right), t1\right)\right), \left(t1 + u\right)\right)\right) \]
            11. +-lowering-+.f6495.8%

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(t1, u\right), t1\right)\right), \mathsf{+.f64}\left(t1, \color{blue}{u}\right)\right)\right) \]
          4. Applied egg-rr95.8%

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

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \color{blue}{\left(-2 \cdot u + -1 \cdot t1\right)}\right) \]
          6. Step-by-step derivation
            1. mul-1-negN/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \left(-2 \cdot u + \left(\mathsf{neg}\left(t1\right)\right)\right)\right) \]
            2. unsub-negN/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \left(-2 \cdot u - \color{blue}{t1}\right)\right) \]
            3. --lowering--.f64N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{\_.f64}\left(\left(-2 \cdot u\right), \color{blue}{t1}\right)\right) \]
            4. *-commutativeN/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{\_.f64}\left(\left(u \cdot -2\right), t1\right)\right) \]
            5. *-lowering-*.f6483.2%

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(u, -2\right), t1\right)\right) \]
          7. Simplified83.2%

            \[\leadsto \frac{1 \cdot v}{\color{blue}{u \cdot -2 - t1}} \]
          8. Step-by-step derivation
            1. *-lft-identityN/A

              \[\leadsto \frac{v}{\color{blue}{u \cdot -2} - t1} \]
            2. /-lowering-/.f64N/A

              \[\leadsto \mathsf{/.f64}\left(v, \color{blue}{\left(u \cdot -2 - t1\right)}\right) \]
            3. --lowering--.f64N/A

              \[\leadsto \mathsf{/.f64}\left(v, \mathsf{\_.f64}\left(\left(u \cdot -2\right), \color{blue}{t1}\right)\right) \]
            4. *-lowering-*.f6483.2%

              \[\leadsto \mathsf{/.f64}\left(v, \mathsf{\_.f64}\left(\mathsf{*.f64}\left(u, -2\right), t1\right)\right) \]
          9. Applied egg-rr83.2%

            \[\leadsto \color{blue}{\frac{v}{u \cdot -2 - t1}} \]

          if -1.1e-73 < t1 < 2.25000000000000014e-5

          1. Initial program 92.6%

            \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
          2. Add Preprocessing
          3. Taylor expanded in t1 around 0

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{neg.f64}\left(t1\right), v\right), \color{blue}{\left({u}^{2}\right)}\right) \]
          4. Step-by-step derivation
            1. unpow2N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{neg.f64}\left(t1\right), v\right), \left(u \cdot \color{blue}{u}\right)\right) \]
            2. *-lowering-*.f6480.0%

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{neg.f64}\left(t1\right), v\right), \mathsf{*.f64}\left(u, \color{blue}{u}\right)\right) \]
          5. Simplified80.0%

            \[\leadsto \frac{\left(-t1\right) \cdot v}{\color{blue}{u \cdot u}} \]
        3. Recombined 2 regimes into one program.
        4. Final simplification81.9%

          \[\leadsto \begin{array}{l} \mathbf{if}\;t1 \leq -1.1 \cdot 10^{-73}:\\ \;\;\;\;\frac{v}{u \cdot -2 - t1}\\ \mathbf{elif}\;t1 \leq 2.25 \cdot 10^{-5}:\\ \;\;\;\;\frac{v \cdot t1}{u \cdot \left(0 - u\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{v}{u \cdot -2 - t1}\\ \end{array} \]
        5. Add Preprocessing

        Alternative 6: 57.9% accurate, 0.8× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} t_1 := \frac{-1}{\frac{u}{v}}\\ \mathbf{if}\;u \leq -3 \cdot 10^{+237}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;u \leq 5.8 \cdot 10^{+153}:\\ \;\;\;\;0 - \frac{v}{t1}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
        (FPCore (u v t1)
         :precision binary64
         (let* ((t_1 (/ -1.0 (/ u v))))
           (if (<= u -3e+237) t_1 (if (<= u 5.8e+153) (- 0.0 (/ v t1)) t_1))))
        double code(double u, double v, double t1) {
        	double t_1 = -1.0 / (u / v);
        	double tmp;
        	if (u <= -3e+237) {
        		tmp = t_1;
        	} else if (u <= 5.8e+153) {
        		tmp = 0.0 - (v / t1);
        	} else {
        		tmp = t_1;
        	}
        	return tmp;
        }
        
        real(8) function code(u, v, t1)
            real(8), intent (in) :: u
            real(8), intent (in) :: v
            real(8), intent (in) :: t1
            real(8) :: t_1
            real(8) :: tmp
            t_1 = (-1.0d0) / (u / v)
            if (u <= (-3d+237)) then
                tmp = t_1
            else if (u <= 5.8d+153) then
                tmp = 0.0d0 - (v / t1)
            else
                tmp = t_1
            end if
            code = tmp
        end function
        
        public static double code(double u, double v, double t1) {
        	double t_1 = -1.0 / (u / v);
        	double tmp;
        	if (u <= -3e+237) {
        		tmp = t_1;
        	} else if (u <= 5.8e+153) {
        		tmp = 0.0 - (v / t1);
        	} else {
        		tmp = t_1;
        	}
        	return tmp;
        }
        
        def code(u, v, t1):
        	t_1 = -1.0 / (u / v)
        	tmp = 0
        	if u <= -3e+237:
        		tmp = t_1
        	elif u <= 5.8e+153:
        		tmp = 0.0 - (v / t1)
        	else:
        		tmp = t_1
        	return tmp
        
        function code(u, v, t1)
        	t_1 = Float64(-1.0 / Float64(u / v))
        	tmp = 0.0
        	if (u <= -3e+237)
        		tmp = t_1;
        	elseif (u <= 5.8e+153)
        		tmp = Float64(0.0 - Float64(v / t1));
        	else
        		tmp = t_1;
        	end
        	return tmp
        end
        
        function tmp_2 = code(u, v, t1)
        	t_1 = -1.0 / (u / v);
        	tmp = 0.0;
        	if (u <= -3e+237)
        		tmp = t_1;
        	elseif (u <= 5.8e+153)
        		tmp = 0.0 - (v / t1);
        	else
        		tmp = t_1;
        	end
        	tmp_2 = tmp;
        end
        
        code[u_, v_, t1_] := Block[{t$95$1 = N[(-1.0 / N[(u / v), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[u, -3e+237], t$95$1, If[LessEqual[u, 5.8e+153], N[(0.0 - N[(v / t1), $MachinePrecision]), $MachinePrecision], t$95$1]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        t_1 := \frac{-1}{\frac{u}{v}}\\
        \mathbf{if}\;u \leq -3 \cdot 10^{+237}:\\
        \;\;\;\;t\_1\\
        
        \mathbf{elif}\;u \leq 5.8 \cdot 10^{+153}:\\
        \;\;\;\;0 - \frac{v}{t1}\\
        
        \mathbf{else}:\\
        \;\;\;\;t\_1\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 2 regimes
        2. if u < -3e237 or 5.80000000000000004e153 < u

          1. Initial program 83.0%

            \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
          2. Add Preprocessing
          3. Taylor expanded in v around 0

            \[\leadsto \color{blue}{-1 \cdot \frac{t1 \cdot v}{{\left(t1 + u\right)}^{2}}} \]
          4. Step-by-step derivation
            1. associate-*r/N/A

              \[\leadsto \frac{-1 \cdot \left(t1 \cdot v\right)}{\color{blue}{{\left(t1 + u\right)}^{2}}} \]
            2. unpow2N/A

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

              \[\leadsto \frac{\frac{-1 \cdot \left(t1 \cdot v\right)}{t1 + u}}{\color{blue}{t1 + u}} \]
            4. /-lowering-/.f64N/A

              \[\leadsto \mathsf{/.f64}\left(\left(\frac{-1 \cdot \left(t1 \cdot v\right)}{t1 + u}\right), \color{blue}{\left(t1 + u\right)}\right) \]
            5. associate-*r*N/A

              \[\leadsto \mathsf{/.f64}\left(\left(\frac{\left(-1 \cdot t1\right) \cdot v}{t1 + u}\right), \left(t1 + u\right)\right) \]
            6. *-commutativeN/A

              \[\leadsto \mathsf{/.f64}\left(\left(\frac{v \cdot \left(-1 \cdot t1\right)}{t1 + u}\right), \left(t1 + u\right)\right) \]
            7. associate-/l*N/A

              \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{-1 \cdot t1}{t1 + u}\right), \left(\color{blue}{t1} + u\right)\right) \]
            8. mul-1-negN/A

              \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right), \left(t1 + u\right)\right) \]
            9. distribute-frac-negN/A

              \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right)\right), \left(t1 + u\right)\right) \]
            10. *-lowering-*.f64N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right)\right), \left(\color{blue}{t1} + u\right)\right) \]
            11. distribute-frac-negN/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
            12. mul-1-negN/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{-1 \cdot t1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
            13. *-commutativeN/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{t1 \cdot -1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
            14. associate-/l*N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(t1 \cdot \frac{-1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
            15. *-lowering-*.f64N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \left(\frac{-1}{t1 + u}\right)\right)\right), \left(t1 + u\right)\right) \]
            16. /-lowering-/.f64N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \left(t1 + u\right)\right)\right)\right), \left(t1 + u\right)\right) \]
            17. +-commutativeN/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \left(u + t1\right)\right)\right)\right), \left(t1 + u\right)\right) \]
            18. +-lowering-+.f64N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \left(t1 + u\right)\right) \]
            19. +-commutativeN/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \left(u + \color{blue}{t1}\right)\right) \]
            20. +-lowering-+.f6499.8%

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \mathsf{+.f64}\left(u, \color{blue}{t1}\right)\right) \]
          5. Simplified99.8%

            \[\leadsto \color{blue}{\frac{v \cdot \left(t1 \cdot \frac{-1}{u + t1}\right)}{u + t1}} \]
          6. Taylor expanded in t1 around 0

            \[\leadsto \mathsf{/.f64}\left(\color{blue}{\left(-1 \cdot \frac{t1 \cdot v}{u}\right)}, \mathsf{+.f64}\left(u, t1\right)\right) \]
          7. Step-by-step derivation
            1. associate-*r/N/A

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

              \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\left(-1 \cdot \left(t1 \cdot v\right)\right), u\right), \mathsf{+.f64}\left(\color{blue}{u}, t1\right)\right) \]
            3. mul-1-negN/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\left(\mathsf{neg}\left(t1 \cdot v\right)\right), u\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
            4. neg-sub0N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\left(0 - t1 \cdot v\right), u\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
            5. --lowering--.f64N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\mathsf{\_.f64}\left(0, \left(t1 \cdot v\right)\right), u\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
            6. *-lowering-*.f6494.1%

              \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(\mathsf{\_.f64}\left(0, \mathsf{*.f64}\left(t1, v\right)\right), u\right), \mathsf{+.f64}\left(u, t1\right)\right) \]
          8. Simplified94.1%

            \[\leadsto \frac{\color{blue}{\frac{0 - t1 \cdot v}{u}}}{u + t1} \]
          9. Step-by-step derivation
            1. clear-numN/A

              \[\leadsto \frac{1}{\color{blue}{\frac{u + t1}{\frac{0 - t1 \cdot v}{u}}}} \]
            2. frac-2negN/A

              \[\leadsto \frac{\mathsf{neg}\left(1\right)}{\color{blue}{\mathsf{neg}\left(\frac{u + t1}{\frac{0 - t1 \cdot v}{u}}\right)}} \]
            3. metadata-evalN/A

              \[\leadsto \frac{-1}{\mathsf{neg}\left(\color{blue}{\frac{u + t1}{\frac{0 - t1 \cdot v}{u}}}\right)} \]
            4. /-lowering-/.f64N/A

              \[\leadsto \mathsf{/.f64}\left(-1, \color{blue}{\left(\mathsf{neg}\left(\frac{u + t1}{\frac{0 - t1 \cdot v}{u}}\right)\right)}\right) \]
            5. div-invN/A

              \[\leadsto \mathsf{/.f64}\left(-1, \left(\mathsf{neg}\left(\left(u + t1\right) \cdot \frac{1}{\frac{0 - t1 \cdot v}{u}}\right)\right)\right) \]
            6. clear-numN/A

              \[\leadsto \mathsf{/.f64}\left(-1, \left(\mathsf{neg}\left(\left(u + t1\right) \cdot \frac{u}{0 - t1 \cdot v}\right)\right)\right) \]
            7. distribute-rgt-neg-inN/A

              \[\leadsto \mathsf{/.f64}\left(-1, \left(\left(u + t1\right) \cdot \color{blue}{\left(\mathsf{neg}\left(\frac{u}{0 - t1 \cdot v}\right)\right)}\right)\right) \]
            8. sub0-negN/A

              \[\leadsto \mathsf{/.f64}\left(-1, \left(\left(u + t1\right) \cdot \left(\mathsf{neg}\left(\frac{u}{\mathsf{neg}\left(t1 \cdot v\right)}\right)\right)\right)\right) \]
            9. distribute-frac-neg2N/A

              \[\leadsto \mathsf{/.f64}\left(-1, \left(\left(u + t1\right) \cdot \left(\mathsf{neg}\left(\left(\mathsf{neg}\left(\frac{u}{t1 \cdot v}\right)\right)\right)\right)\right)\right) \]
            10. remove-double-negN/A

              \[\leadsto \mathsf{/.f64}\left(-1, \left(\left(u + t1\right) \cdot \frac{u}{\color{blue}{t1 \cdot v}}\right)\right) \]
            11. *-lowering-*.f64N/A

              \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\left(u + t1\right), \color{blue}{\left(\frac{u}{t1 \cdot v}\right)}\right)\right) \]
            12. +-commutativeN/A

              \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\left(t1 + u\right), \left(\frac{\color{blue}{u}}{t1 \cdot v}\right)\right)\right) \]
            13. +-lowering-+.f64N/A

              \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\mathsf{+.f64}\left(t1, u\right), \left(\frac{\color{blue}{u}}{t1 \cdot v}\right)\right)\right) \]
            14. /-lowering-/.f64N/A

              \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\mathsf{+.f64}\left(t1, u\right), \mathsf{/.f64}\left(u, \color{blue}{\left(t1 \cdot v\right)}\right)\right)\right) \]
            15. *-commutativeN/A

              \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\mathsf{+.f64}\left(t1, u\right), \mathsf{/.f64}\left(u, \left(v \cdot \color{blue}{t1}\right)\right)\right)\right) \]
            16. *-lowering-*.f6494.0%

              \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{*.f64}\left(\mathsf{+.f64}\left(t1, u\right), \mathsf{/.f64}\left(u, \mathsf{*.f64}\left(v, \color{blue}{t1}\right)\right)\right)\right) \]
          10. Applied egg-rr94.0%

            \[\leadsto \color{blue}{\frac{-1}{\left(t1 + u\right) \cdot \frac{u}{v \cdot t1}}} \]
          11. Taylor expanded in t1 around inf

            \[\leadsto \mathsf{/.f64}\left(-1, \color{blue}{\left(\frac{u}{v}\right)}\right) \]
          12. Step-by-step derivation
            1. /-lowering-/.f6455.5%

              \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{/.f64}\left(u, \color{blue}{v}\right)\right) \]
          13. Simplified55.5%

            \[\leadsto \frac{-1}{\color{blue}{\frac{u}{v}}} \]

          if -3e237 < u < 5.80000000000000004e153

          1. Initial program 77.5%

            \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
          2. Add Preprocessing
          3. Taylor expanded in t1 around inf

            \[\leadsto \color{blue}{-1 \cdot \frac{v}{t1}} \]
          4. Step-by-step derivation
            1. mul-1-negN/A

              \[\leadsto \mathsf{neg}\left(\frac{v}{t1}\right) \]
            2. distribute-neg-frac2N/A

              \[\leadsto \frac{v}{\color{blue}{\mathsf{neg}\left(t1\right)}} \]
            3. mul-1-negN/A

              \[\leadsto \frac{v}{-1 \cdot \color{blue}{t1}} \]
            4. /-lowering-/.f64N/A

              \[\leadsto \mathsf{/.f64}\left(v, \color{blue}{\left(-1 \cdot t1\right)}\right) \]
            5. mul-1-negN/A

              \[\leadsto \mathsf{/.f64}\left(v, \left(\mathsf{neg}\left(t1\right)\right)\right) \]
            6. neg-sub0N/A

              \[\leadsto \mathsf{/.f64}\left(v, \left(0 - \color{blue}{t1}\right)\right) \]
            7. --lowering--.f6462.7%

              \[\leadsto \mathsf{/.f64}\left(v, \mathsf{\_.f64}\left(0, \color{blue}{t1}\right)\right) \]
          5. Simplified62.7%

            \[\leadsto \color{blue}{\frac{v}{0 - t1}} \]
          6. Step-by-step derivation
            1. neg-sub0N/A

              \[\leadsto \mathsf{/.f64}\left(v, \left(\mathsf{neg}\left(t1\right)\right)\right) \]
            2. neg-lowering-neg.f6462.7%

              \[\leadsto \mathsf{/.f64}\left(v, \mathsf{neg.f64}\left(t1\right)\right) \]
          7. Applied egg-rr62.7%

            \[\leadsto \frac{v}{\color{blue}{-t1}} \]
        3. Recombined 2 regimes into one program.
        4. Final simplification61.3%

          \[\leadsto \begin{array}{l} \mathbf{if}\;u \leq -3 \cdot 10^{+237}:\\ \;\;\;\;\frac{-1}{\frac{u}{v}}\\ \mathbf{elif}\;u \leq 5.8 \cdot 10^{+153}:\\ \;\;\;\;0 - \frac{v}{t1}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{\frac{u}{v}}\\ \end{array} \]
        5. Add Preprocessing

        Alternative 7: 57.7% accurate, 0.8× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} t_1 := \frac{v}{u} \cdot -0.5\\ \mathbf{if}\;u \leq -3 \cdot 10^{+237}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;u \leq 2.9 \cdot 10^{+154}:\\ \;\;\;\;0 - \frac{v}{t1}\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
        (FPCore (u v t1)
         :precision binary64
         (let* ((t_1 (* (/ v u) -0.5)))
           (if (<= u -3e+237) t_1 (if (<= u 2.9e+154) (- 0.0 (/ v t1)) t_1))))
        double code(double u, double v, double t1) {
        	double t_1 = (v / u) * -0.5;
        	double tmp;
        	if (u <= -3e+237) {
        		tmp = t_1;
        	} else if (u <= 2.9e+154) {
        		tmp = 0.0 - (v / t1);
        	} else {
        		tmp = t_1;
        	}
        	return tmp;
        }
        
        real(8) function code(u, v, t1)
            real(8), intent (in) :: u
            real(8), intent (in) :: v
            real(8), intent (in) :: t1
            real(8) :: t_1
            real(8) :: tmp
            t_1 = (v / u) * (-0.5d0)
            if (u <= (-3d+237)) then
                tmp = t_1
            else if (u <= 2.9d+154) then
                tmp = 0.0d0 - (v / t1)
            else
                tmp = t_1
            end if
            code = tmp
        end function
        
        public static double code(double u, double v, double t1) {
        	double t_1 = (v / u) * -0.5;
        	double tmp;
        	if (u <= -3e+237) {
        		tmp = t_1;
        	} else if (u <= 2.9e+154) {
        		tmp = 0.0 - (v / t1);
        	} else {
        		tmp = t_1;
        	}
        	return tmp;
        }
        
        def code(u, v, t1):
        	t_1 = (v / u) * -0.5
        	tmp = 0
        	if u <= -3e+237:
        		tmp = t_1
        	elif u <= 2.9e+154:
        		tmp = 0.0 - (v / t1)
        	else:
        		tmp = t_1
        	return tmp
        
        function code(u, v, t1)
        	t_1 = Float64(Float64(v / u) * -0.5)
        	tmp = 0.0
        	if (u <= -3e+237)
        		tmp = t_1;
        	elseif (u <= 2.9e+154)
        		tmp = Float64(0.0 - Float64(v / t1));
        	else
        		tmp = t_1;
        	end
        	return tmp
        end
        
        function tmp_2 = code(u, v, t1)
        	t_1 = (v / u) * -0.5;
        	tmp = 0.0;
        	if (u <= -3e+237)
        		tmp = t_1;
        	elseif (u <= 2.9e+154)
        		tmp = 0.0 - (v / t1);
        	else
        		tmp = t_1;
        	end
        	tmp_2 = tmp;
        end
        
        code[u_, v_, t1_] := Block[{t$95$1 = N[(N[(v / u), $MachinePrecision] * -0.5), $MachinePrecision]}, If[LessEqual[u, -3e+237], t$95$1, If[LessEqual[u, 2.9e+154], N[(0.0 - N[(v / t1), $MachinePrecision]), $MachinePrecision], t$95$1]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        t_1 := \frac{v}{u} \cdot -0.5\\
        \mathbf{if}\;u \leq -3 \cdot 10^{+237}:\\
        \;\;\;\;t\_1\\
        
        \mathbf{elif}\;u \leq 2.9 \cdot 10^{+154}:\\
        \;\;\;\;0 - \frac{v}{t1}\\
        
        \mathbf{else}:\\
        \;\;\;\;t\_1\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 2 regimes
        2. if u < -3e237 or 2.89999999999999979e154 < u

          1. Initial program 83.0%

            \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
          2. Add Preprocessing
          3. Taylor expanded in t1 around 0

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{neg.f64}\left(t1\right), v\right), \color{blue}{\left(2 \cdot \left(t1 \cdot u\right) + {u}^{2}\right)}\right) \]
          4. Step-by-step derivation
            1. +-commutativeN/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{neg.f64}\left(t1\right), v\right), \left({u}^{2} + \color{blue}{2 \cdot \left(t1 \cdot u\right)}\right)\right) \]
            2. unpow2N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{neg.f64}\left(t1\right), v\right), \left(u \cdot u + \color{blue}{2} \cdot \left(t1 \cdot u\right)\right)\right) \]
            3. associate-*r*N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{neg.f64}\left(t1\right), v\right), \left(u \cdot u + \left(2 \cdot t1\right) \cdot \color{blue}{u}\right)\right) \]
            4. distribute-rgt-inN/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{neg.f64}\left(t1\right), v\right), \left(u \cdot \color{blue}{\left(u + 2 \cdot t1\right)}\right)\right) \]
            5. *-lowering-*.f64N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{neg.f64}\left(t1\right), v\right), \mathsf{*.f64}\left(u, \color{blue}{\left(u + 2 \cdot t1\right)}\right)\right) \]
            6. +-lowering-+.f64N/A

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{neg.f64}\left(t1\right), v\right), \mathsf{*.f64}\left(u, \mathsf{+.f64}\left(u, \color{blue}{\left(2 \cdot t1\right)}\right)\right)\right) \]
            7. *-lowering-*.f6483.0%

              \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(\mathsf{neg.f64}\left(t1\right), v\right), \mathsf{*.f64}\left(u, \mathsf{+.f64}\left(u, \mathsf{*.f64}\left(2, \color{blue}{t1}\right)\right)\right)\right) \]
          5. Simplified83.0%

            \[\leadsto \frac{\left(-t1\right) \cdot v}{\color{blue}{u \cdot \left(u + 2 \cdot t1\right)}} \]
          6. Taylor expanded in t1 around inf

            \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{v}{u}} \]
          7. Step-by-step derivation
            1. *-commutativeN/A

              \[\leadsto \frac{v}{u} \cdot \color{blue}{\frac{-1}{2}} \]
            2. *-lowering-*.f64N/A

              \[\leadsto \mathsf{*.f64}\left(\left(\frac{v}{u}\right), \color{blue}{\frac{-1}{2}}\right) \]
            3. /-lowering-/.f6452.7%

              \[\leadsto \mathsf{*.f64}\left(\mathsf{/.f64}\left(v, u\right), \frac{-1}{2}\right) \]
          8. Simplified52.7%

            \[\leadsto \color{blue}{\frac{v}{u} \cdot -0.5} \]

          if -3e237 < u < 2.89999999999999979e154

          1. Initial program 77.5%

            \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
          2. Add Preprocessing
          3. Taylor expanded in t1 around inf

            \[\leadsto \color{blue}{-1 \cdot \frac{v}{t1}} \]
          4. Step-by-step derivation
            1. mul-1-negN/A

              \[\leadsto \mathsf{neg}\left(\frac{v}{t1}\right) \]
            2. distribute-neg-frac2N/A

              \[\leadsto \frac{v}{\color{blue}{\mathsf{neg}\left(t1\right)}} \]
            3. mul-1-negN/A

              \[\leadsto \frac{v}{-1 \cdot \color{blue}{t1}} \]
            4. /-lowering-/.f64N/A

              \[\leadsto \mathsf{/.f64}\left(v, \color{blue}{\left(-1 \cdot t1\right)}\right) \]
            5. mul-1-negN/A

              \[\leadsto \mathsf{/.f64}\left(v, \left(\mathsf{neg}\left(t1\right)\right)\right) \]
            6. neg-sub0N/A

              \[\leadsto \mathsf{/.f64}\left(v, \left(0 - \color{blue}{t1}\right)\right) \]
            7. --lowering--.f6462.7%

              \[\leadsto \mathsf{/.f64}\left(v, \mathsf{\_.f64}\left(0, \color{blue}{t1}\right)\right) \]
          5. Simplified62.7%

            \[\leadsto \color{blue}{\frac{v}{0 - t1}} \]
          6. Step-by-step derivation
            1. neg-sub0N/A

              \[\leadsto \mathsf{/.f64}\left(v, \left(\mathsf{neg}\left(t1\right)\right)\right) \]
            2. neg-lowering-neg.f6462.7%

              \[\leadsto \mathsf{/.f64}\left(v, \mathsf{neg.f64}\left(t1\right)\right) \]
          7. Applied egg-rr62.7%

            \[\leadsto \frac{v}{\color{blue}{-t1}} \]
        3. Recombined 2 regimes into one program.
        4. Final simplification60.7%

          \[\leadsto \begin{array}{l} \mathbf{if}\;u \leq -3 \cdot 10^{+237}:\\ \;\;\;\;\frac{v}{u} \cdot -0.5\\ \mathbf{elif}\;u \leq 2.9 \cdot 10^{+154}:\\ \;\;\;\;0 - \frac{v}{t1}\\ \mathbf{else}:\\ \;\;\;\;\frac{v}{u} \cdot -0.5\\ \end{array} \]
        5. Add Preprocessing

        Alternative 8: 98.0% accurate, 0.9× speedup?

        \[\begin{array}{l} \\ \frac{v \cdot \left(t1 \cdot \frac{-1}{t1 + u}\right)}{t1 + u} \end{array} \]
        (FPCore (u v t1)
         :precision binary64
         (/ (* v (* t1 (/ -1.0 (+ t1 u)))) (+ t1 u)))
        double code(double u, double v, double t1) {
        	return (v * (t1 * (-1.0 / (t1 + u)))) / (t1 + u);
        }
        
        real(8) function code(u, v, t1)
            real(8), intent (in) :: u
            real(8), intent (in) :: v
            real(8), intent (in) :: t1
            code = (v * (t1 * ((-1.0d0) / (t1 + u)))) / (t1 + u)
        end function
        
        public static double code(double u, double v, double t1) {
        	return (v * (t1 * (-1.0 / (t1 + u)))) / (t1 + u);
        }
        
        def code(u, v, t1):
        	return (v * (t1 * (-1.0 / (t1 + u)))) / (t1 + u)
        
        function code(u, v, t1)
        	return Float64(Float64(v * Float64(t1 * Float64(-1.0 / Float64(t1 + u)))) / Float64(t1 + u))
        end
        
        function tmp = code(u, v, t1)
        	tmp = (v * (t1 * (-1.0 / (t1 + u)))) / (t1 + u);
        end
        
        code[u_, v_, t1_] := N[(N[(v * N[(t1 * N[(-1.0 / N[(t1 + u), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(t1 + u), $MachinePrecision]), $MachinePrecision]
        
        \begin{array}{l}
        
        \\
        \frac{v \cdot \left(t1 \cdot \frac{-1}{t1 + u}\right)}{t1 + u}
        \end{array}
        
        Derivation
        1. Initial program 78.6%

          \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
        2. Add Preprocessing
        3. Taylor expanded in v around 0

          \[\leadsto \color{blue}{-1 \cdot \frac{t1 \cdot v}{{\left(t1 + u\right)}^{2}}} \]
        4. Step-by-step derivation
          1. associate-*r/N/A

            \[\leadsto \frac{-1 \cdot \left(t1 \cdot v\right)}{\color{blue}{{\left(t1 + u\right)}^{2}}} \]
          2. unpow2N/A

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

            \[\leadsto \frac{\frac{-1 \cdot \left(t1 \cdot v\right)}{t1 + u}}{\color{blue}{t1 + u}} \]
          4. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\left(\frac{-1 \cdot \left(t1 \cdot v\right)}{t1 + u}\right), \color{blue}{\left(t1 + u\right)}\right) \]
          5. associate-*r*N/A

            \[\leadsto \mathsf{/.f64}\left(\left(\frac{\left(-1 \cdot t1\right) \cdot v}{t1 + u}\right), \left(t1 + u\right)\right) \]
          6. *-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\left(\frac{v \cdot \left(-1 \cdot t1\right)}{t1 + u}\right), \left(t1 + u\right)\right) \]
          7. associate-/l*N/A

            \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{-1 \cdot t1}{t1 + u}\right), \left(\color{blue}{t1} + u\right)\right) \]
          8. mul-1-negN/A

            \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right), \left(t1 + u\right)\right) \]
          9. distribute-frac-negN/A

            \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right)\right), \left(t1 + u\right)\right) \]
          10. *-lowering-*.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right)\right), \left(\color{blue}{t1} + u\right)\right) \]
          11. distribute-frac-negN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          12. mul-1-negN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{-1 \cdot t1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          13. *-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{t1 \cdot -1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          14. associate-/l*N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(t1 \cdot \frac{-1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          15. *-lowering-*.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \left(\frac{-1}{t1 + u}\right)\right)\right), \left(t1 + u\right)\right) \]
          16. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \left(t1 + u\right)\right)\right)\right), \left(t1 + u\right)\right) \]
          17. +-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \left(u + t1\right)\right)\right)\right), \left(t1 + u\right)\right) \]
          18. +-lowering-+.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \left(t1 + u\right)\right) \]
          19. +-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \left(u + \color{blue}{t1}\right)\right) \]
          20. +-lowering-+.f6498.7%

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \mathsf{+.f64}\left(u, \color{blue}{t1}\right)\right) \]
        5. Simplified98.7%

          \[\leadsto \color{blue}{\frac{v \cdot \left(t1 \cdot \frac{-1}{u + t1}\right)}{u + t1}} \]
        6. Final simplification98.7%

          \[\leadsto \frac{v \cdot \left(t1 \cdot \frac{-1}{t1 + u}\right)}{t1 + u} \]
        7. Add Preprocessing

        Alternative 9: 98.1% accurate, 0.9× speedup?

        \[\begin{array}{l} \\ \frac{\frac{v}{0 - \left(t1 + u\right)}}{\frac{t1 + u}{t1}} \end{array} \]
        (FPCore (u v t1)
         :precision binary64
         (/ (/ v (- 0.0 (+ t1 u))) (/ (+ t1 u) t1)))
        double code(double u, double v, double t1) {
        	return (v / (0.0 - (t1 + u))) / ((t1 + u) / t1);
        }
        
        real(8) function code(u, v, t1)
            real(8), intent (in) :: u
            real(8), intent (in) :: v
            real(8), intent (in) :: t1
            code = (v / (0.0d0 - (t1 + u))) / ((t1 + u) / t1)
        end function
        
        public static double code(double u, double v, double t1) {
        	return (v / (0.0 - (t1 + u))) / ((t1 + u) / t1);
        }
        
        def code(u, v, t1):
        	return (v / (0.0 - (t1 + u))) / ((t1 + u) / t1)
        
        function code(u, v, t1)
        	return Float64(Float64(v / Float64(0.0 - Float64(t1 + u))) / Float64(Float64(t1 + u) / t1))
        end
        
        function tmp = code(u, v, t1)
        	tmp = (v / (0.0 - (t1 + u))) / ((t1 + u) / t1);
        end
        
        code[u_, v_, t1_] := N[(N[(v / N[(0.0 - N[(t1 + u), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(t1 + u), $MachinePrecision] / t1), $MachinePrecision]), $MachinePrecision]
        
        \begin{array}{l}
        
        \\
        \frac{\frac{v}{0 - \left(t1 + u\right)}}{\frac{t1 + u}{t1}}
        \end{array}
        
        Derivation
        1. Initial program 78.6%

          \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
        2. Add Preprocessing
        3. Step-by-step derivation
          1. *-commutativeN/A

            \[\leadsto \frac{v \cdot \left(\mathsf{neg}\left(t1\right)\right)}{\color{blue}{\left(t1 + u\right)} \cdot \left(t1 + u\right)} \]
          2. times-fracN/A

            \[\leadsto \frac{v}{t1 + u} \cdot \color{blue}{\frac{\mathsf{neg}\left(t1\right)}{t1 + u}} \]
          3. clear-numN/A

            \[\leadsto \frac{v}{t1 + u} \cdot \frac{1}{\color{blue}{\frac{t1 + u}{\mathsf{neg}\left(t1\right)}}} \]
          4. un-div-invN/A

            \[\leadsto \frac{\frac{v}{t1 + u}}{\color{blue}{\frac{t1 + u}{\mathsf{neg}\left(t1\right)}}} \]
          5. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\left(\frac{v}{t1 + u}\right), \color{blue}{\left(\frac{t1 + u}{\mathsf{neg}\left(t1\right)}\right)}\right) \]
          6. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(v, \left(t1 + u\right)\right), \left(\frac{\color{blue}{t1 + u}}{\mathsf{neg}\left(t1\right)}\right)\right) \]
          7. +-lowering-+.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(v, \mathsf{+.f64}\left(t1, u\right)\right), \left(\frac{t1 + \color{blue}{u}}{\mathsf{neg}\left(t1\right)}\right)\right) \]
          8. distribute-frac-neg2N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(v, \mathsf{+.f64}\left(t1, u\right)\right), \left(\mathsf{neg}\left(\frac{t1 + u}{t1}\right)\right)\right) \]
          9. neg-lowering-neg.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(v, \mathsf{+.f64}\left(t1, u\right)\right), \mathsf{neg.f64}\left(\left(\frac{t1 + u}{t1}\right)\right)\right) \]
          10. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(v, \mathsf{+.f64}\left(t1, u\right)\right), \mathsf{neg.f64}\left(\mathsf{/.f64}\left(\left(t1 + u\right), t1\right)\right)\right) \]
          11. +-lowering-+.f6497.0%

            \[\leadsto \mathsf{/.f64}\left(\mathsf{/.f64}\left(v, \mathsf{+.f64}\left(t1, u\right)\right), \mathsf{neg.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(t1, u\right), t1\right)\right)\right) \]
        4. Applied egg-rr97.0%

          \[\leadsto \color{blue}{\frac{\frac{v}{t1 + u}}{-\frac{t1 + u}{t1}}} \]
        5. Final simplification97.0%

          \[\leadsto \frac{\frac{v}{0 - \left(t1 + u\right)}}{\frac{t1 + u}{t1}} \]
        6. Add Preprocessing

        Alternative 10: 98.2% accurate, 0.9× speedup?

        \[\begin{array}{l} \\ \frac{v}{t1 + u} \cdot \frac{t1}{0 - \left(t1 + u\right)} \end{array} \]
        (FPCore (u v t1)
         :precision binary64
         (* (/ v (+ t1 u)) (/ t1 (- 0.0 (+ t1 u)))))
        double code(double u, double v, double t1) {
        	return (v / (t1 + u)) * (t1 / (0.0 - (t1 + u)));
        }
        
        real(8) function code(u, v, t1)
            real(8), intent (in) :: u
            real(8), intent (in) :: v
            real(8), intent (in) :: t1
            code = (v / (t1 + u)) * (t1 / (0.0d0 - (t1 + u)))
        end function
        
        public static double code(double u, double v, double t1) {
        	return (v / (t1 + u)) * (t1 / (0.0 - (t1 + u)));
        }
        
        def code(u, v, t1):
        	return (v / (t1 + u)) * (t1 / (0.0 - (t1 + u)))
        
        function code(u, v, t1)
        	return Float64(Float64(v / Float64(t1 + u)) * Float64(t1 / Float64(0.0 - Float64(t1 + u))))
        end
        
        function tmp = code(u, v, t1)
        	tmp = (v / (t1 + u)) * (t1 / (0.0 - (t1 + u)));
        end
        
        code[u_, v_, t1_] := N[(N[(v / N[(t1 + u), $MachinePrecision]), $MachinePrecision] * N[(t1 / N[(0.0 - N[(t1 + u), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
        
        \begin{array}{l}
        
        \\
        \frac{v}{t1 + u} \cdot \frac{t1}{0 - \left(t1 + u\right)}
        \end{array}
        
        Derivation
        1. Initial program 78.6%

          \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
        2. Add Preprocessing
        3. Taylor expanded in v around 0

          \[\leadsto \color{blue}{-1 \cdot \frac{t1 \cdot v}{{\left(t1 + u\right)}^{2}}} \]
        4. Step-by-step derivation
          1. associate-*r/N/A

            \[\leadsto \frac{-1 \cdot \left(t1 \cdot v\right)}{\color{blue}{{\left(t1 + u\right)}^{2}}} \]
          2. unpow2N/A

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

            \[\leadsto \frac{\frac{-1 \cdot \left(t1 \cdot v\right)}{t1 + u}}{\color{blue}{t1 + u}} \]
          4. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\left(\frac{-1 \cdot \left(t1 \cdot v\right)}{t1 + u}\right), \color{blue}{\left(t1 + u\right)}\right) \]
          5. associate-*r*N/A

            \[\leadsto \mathsf{/.f64}\left(\left(\frac{\left(-1 \cdot t1\right) \cdot v}{t1 + u}\right), \left(t1 + u\right)\right) \]
          6. *-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\left(\frac{v \cdot \left(-1 \cdot t1\right)}{t1 + u}\right), \left(t1 + u\right)\right) \]
          7. associate-/l*N/A

            \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{-1 \cdot t1}{t1 + u}\right), \left(\color{blue}{t1} + u\right)\right) \]
          8. mul-1-negN/A

            \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right), \left(t1 + u\right)\right) \]
          9. distribute-frac-negN/A

            \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right)\right), \left(t1 + u\right)\right) \]
          10. *-lowering-*.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right)\right), \left(\color{blue}{t1} + u\right)\right) \]
          11. distribute-frac-negN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          12. mul-1-negN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{-1 \cdot t1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          13. *-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{t1 \cdot -1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          14. associate-/l*N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(t1 \cdot \frac{-1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          15. *-lowering-*.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \left(\frac{-1}{t1 + u}\right)\right)\right), \left(t1 + u\right)\right) \]
          16. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \left(t1 + u\right)\right)\right)\right), \left(t1 + u\right)\right) \]
          17. +-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \left(u + t1\right)\right)\right)\right), \left(t1 + u\right)\right) \]
          18. +-lowering-+.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \left(t1 + u\right)\right) \]
          19. +-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \left(u + \color{blue}{t1}\right)\right) \]
          20. +-lowering-+.f6498.7%

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \mathsf{+.f64}\left(u, \color{blue}{t1}\right)\right) \]
        5. Simplified98.7%

          \[\leadsto \color{blue}{\frac{v \cdot \left(t1 \cdot \frac{-1}{u + t1}\right)}{u + t1}} \]
        6. Step-by-step derivation
          1. *-commutativeN/A

            \[\leadsto \frac{\left(t1 \cdot \frac{-1}{u + t1}\right) \cdot v}{\color{blue}{u} + t1} \]
          2. +-commutativeN/A

            \[\leadsto \frac{\left(t1 \cdot \frac{-1}{u + t1}\right) \cdot v}{t1 + \color{blue}{u}} \]
          3. associate-/l*N/A

            \[\leadsto \left(t1 \cdot \frac{-1}{u + t1}\right) \cdot \color{blue}{\frac{v}{t1 + u}} \]
          4. *-commutativeN/A

            \[\leadsto \frac{v}{t1 + u} \cdot \color{blue}{\left(t1 \cdot \frac{-1}{u + t1}\right)} \]
          5. *-commutativeN/A

            \[\leadsto \frac{v}{t1 + u} \cdot \left(\frac{-1}{u + t1} \cdot \color{blue}{t1}\right) \]
          6. +-commutativeN/A

            \[\leadsto \frac{v}{t1 + u} \cdot \left(\frac{-1}{t1 + u} \cdot t1\right) \]
          7. associate-*l/N/A

            \[\leadsto \frac{v}{t1 + u} \cdot \frac{-1 \cdot t1}{\color{blue}{t1 + u}} \]
          8. neg-mul-1N/A

            \[\leadsto \frac{v}{t1 + u} \cdot \frac{\mathsf{neg}\left(t1\right)}{\color{blue}{t1} + u} \]
          9. distribute-frac-negN/A

            \[\leadsto \frac{v}{t1 + u} \cdot \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right) \]
          10. distribute-rgt-neg-outN/A

            \[\leadsto \mathsf{neg}\left(\frac{v}{t1 + u} \cdot \frac{t1}{t1 + u}\right) \]
          11. neg-lowering-neg.f64N/A

            \[\leadsto \mathsf{neg.f64}\left(\left(\frac{v}{t1 + u} \cdot \frac{t1}{t1 + u}\right)\right) \]
          12. *-lowering-*.f64N/A

            \[\leadsto \mathsf{neg.f64}\left(\mathsf{*.f64}\left(\left(\frac{v}{t1 + u}\right), \left(\frac{t1}{t1 + u}\right)\right)\right) \]
          13. /-lowering-/.f64N/A

            \[\leadsto \mathsf{neg.f64}\left(\mathsf{*.f64}\left(\mathsf{/.f64}\left(v, \left(t1 + u\right)\right), \left(\frac{t1}{t1 + u}\right)\right)\right) \]
          14. +-lowering-+.f64N/A

            \[\leadsto \mathsf{neg.f64}\left(\mathsf{*.f64}\left(\mathsf{/.f64}\left(v, \mathsf{+.f64}\left(t1, u\right)\right), \left(\frac{t1}{t1 + u}\right)\right)\right) \]
          15. /-lowering-/.f64N/A

            \[\leadsto \mathsf{neg.f64}\left(\mathsf{*.f64}\left(\mathsf{/.f64}\left(v, \mathsf{+.f64}\left(t1, u\right)\right), \mathsf{/.f64}\left(t1, \left(t1 + u\right)\right)\right)\right) \]
          16. +-lowering-+.f6497.0%

            \[\leadsto \mathsf{neg.f64}\left(\mathsf{*.f64}\left(\mathsf{/.f64}\left(v, \mathsf{+.f64}\left(t1, u\right)\right), \mathsf{/.f64}\left(t1, \mathsf{+.f64}\left(t1, u\right)\right)\right)\right) \]
        7. Applied egg-rr97.0%

          \[\leadsto \color{blue}{-\frac{v}{t1 + u} \cdot \frac{t1}{t1 + u}} \]
        8. Final simplification97.0%

          \[\leadsto \frac{v}{t1 + u} \cdot \frac{t1}{0 - \left(t1 + u\right)} \]
        9. Add Preprocessing

        Alternative 11: 61.7% accurate, 1.7× speedup?

        \[\begin{array}{l} \\ \frac{v}{u \cdot -2 - t1} \end{array} \]
        (FPCore (u v t1) :precision binary64 (/ v (- (* u -2.0) t1)))
        double code(double u, double v, double t1) {
        	return v / ((u * -2.0) - t1);
        }
        
        real(8) function code(u, v, t1)
            real(8), intent (in) :: u
            real(8), intent (in) :: v
            real(8), intent (in) :: t1
            code = v / ((u * (-2.0d0)) - t1)
        end function
        
        public static double code(double u, double v, double t1) {
        	return v / ((u * -2.0) - t1);
        }
        
        def code(u, v, t1):
        	return v / ((u * -2.0) - t1)
        
        function code(u, v, t1)
        	return Float64(v / Float64(Float64(u * -2.0) - t1))
        end
        
        function tmp = code(u, v, t1)
        	tmp = v / ((u * -2.0) - t1);
        end
        
        code[u_, v_, t1_] := N[(v / N[(N[(u * -2.0), $MachinePrecision] - t1), $MachinePrecision]), $MachinePrecision]
        
        \begin{array}{l}
        
        \\
        \frac{v}{u \cdot -2 - t1}
        \end{array}
        
        Derivation
        1. Initial program 78.6%

          \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
        2. Add Preprocessing
        3. Step-by-step derivation
          1. times-fracN/A

            \[\leadsto \frac{\mathsf{neg}\left(t1\right)}{t1 + u} \cdot \color{blue}{\frac{v}{t1 + u}} \]
          2. clear-numN/A

            \[\leadsto \frac{1}{\frac{t1 + u}{\mathsf{neg}\left(t1\right)}} \cdot \frac{\color{blue}{v}}{t1 + u} \]
          3. frac-timesN/A

            \[\leadsto \frac{1 \cdot v}{\color{blue}{\frac{t1 + u}{\mathsf{neg}\left(t1\right)} \cdot \left(t1 + u\right)}} \]
          4. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\left(1 \cdot v\right), \color{blue}{\left(\frac{t1 + u}{\mathsf{neg}\left(t1\right)} \cdot \left(t1 + u\right)\right)}\right) \]
          5. *-lowering-*.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \left(\color{blue}{\frac{t1 + u}{\mathsf{neg}\left(t1\right)}} \cdot \left(t1 + u\right)\right)\right) \]
          6. *-lowering-*.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\left(\frac{t1 + u}{\mathsf{neg}\left(t1\right)}\right), \color{blue}{\left(t1 + u\right)}\right)\right) \]
          7. distribute-frac-neg2N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\left(\mathsf{neg}\left(\frac{t1 + u}{t1}\right)\right), \left(\color{blue}{t1} + u\right)\right)\right) \]
          8. neg-lowering-neg.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\left(\frac{t1 + u}{t1}\right)\right), \left(\color{blue}{t1} + u\right)\right)\right) \]
          9. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\mathsf{/.f64}\left(\left(t1 + u\right), t1\right)\right), \left(t1 + u\right)\right)\right) \]
          10. +-lowering-+.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(t1, u\right), t1\right)\right), \left(t1 + u\right)\right)\right) \]
          11. +-lowering-+.f6494.6%

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{*.f64}\left(\mathsf{neg.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(t1, u\right), t1\right)\right), \mathsf{+.f64}\left(t1, \color{blue}{u}\right)\right)\right) \]
        4. Applied egg-rr94.6%

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

          \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \color{blue}{\left(-2 \cdot u + -1 \cdot t1\right)}\right) \]
        6. Step-by-step derivation
          1. mul-1-negN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \left(-2 \cdot u + \left(\mathsf{neg}\left(t1\right)\right)\right)\right) \]
          2. unsub-negN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \left(-2 \cdot u - \color{blue}{t1}\right)\right) \]
          3. --lowering--.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{\_.f64}\left(\left(-2 \cdot u\right), \color{blue}{t1}\right)\right) \]
          4. *-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{\_.f64}\left(\left(u \cdot -2\right), t1\right)\right) \]
          5. *-lowering-*.f6463.8%

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(1, v\right), \mathsf{\_.f64}\left(\mathsf{*.f64}\left(u, -2\right), t1\right)\right) \]
        7. Simplified63.8%

          \[\leadsto \frac{1 \cdot v}{\color{blue}{u \cdot -2 - t1}} \]
        8. Step-by-step derivation
          1. *-lft-identityN/A

            \[\leadsto \frac{v}{\color{blue}{u \cdot -2} - t1} \]
          2. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(v, \color{blue}{\left(u \cdot -2 - t1\right)}\right) \]
          3. --lowering--.f64N/A

            \[\leadsto \mathsf{/.f64}\left(v, \mathsf{\_.f64}\left(\left(u \cdot -2\right), \color{blue}{t1}\right)\right) \]
          4. *-lowering-*.f6463.8%

            \[\leadsto \mathsf{/.f64}\left(v, \mathsf{\_.f64}\left(\mathsf{*.f64}\left(u, -2\right), t1\right)\right) \]
        9. Applied egg-rr63.8%

          \[\leadsto \color{blue}{\frac{v}{u \cdot -2 - t1}} \]
        10. Add Preprocessing

        Alternative 12: 61.1% accurate, 1.7× speedup?

        \[\begin{array}{l} \\ \frac{-1}{\frac{t1 + u}{v}} \end{array} \]
        (FPCore (u v t1) :precision binary64 (/ -1.0 (/ (+ t1 u) v)))
        double code(double u, double v, double t1) {
        	return -1.0 / ((t1 + u) / v);
        }
        
        real(8) function code(u, v, t1)
            real(8), intent (in) :: u
            real(8), intent (in) :: v
            real(8), intent (in) :: t1
            code = (-1.0d0) / ((t1 + u) / v)
        end function
        
        public static double code(double u, double v, double t1) {
        	return -1.0 / ((t1 + u) / v);
        }
        
        def code(u, v, t1):
        	return -1.0 / ((t1 + u) / v)
        
        function code(u, v, t1)
        	return Float64(-1.0 / Float64(Float64(t1 + u) / v))
        end
        
        function tmp = code(u, v, t1)
        	tmp = -1.0 / ((t1 + u) / v);
        end
        
        code[u_, v_, t1_] := N[(-1.0 / N[(N[(t1 + u), $MachinePrecision] / v), $MachinePrecision]), $MachinePrecision]
        
        \begin{array}{l}
        
        \\
        \frac{-1}{\frac{t1 + u}{v}}
        \end{array}
        
        Derivation
        1. Initial program 78.6%

          \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
        2. Add Preprocessing
        3. Taylor expanded in v around 0

          \[\leadsto \color{blue}{-1 \cdot \frac{t1 \cdot v}{{\left(t1 + u\right)}^{2}}} \]
        4. Step-by-step derivation
          1. associate-*r/N/A

            \[\leadsto \frac{-1 \cdot \left(t1 \cdot v\right)}{\color{blue}{{\left(t1 + u\right)}^{2}}} \]
          2. unpow2N/A

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

            \[\leadsto \frac{\frac{-1 \cdot \left(t1 \cdot v\right)}{t1 + u}}{\color{blue}{t1 + u}} \]
          4. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\left(\frac{-1 \cdot \left(t1 \cdot v\right)}{t1 + u}\right), \color{blue}{\left(t1 + u\right)}\right) \]
          5. associate-*r*N/A

            \[\leadsto \mathsf{/.f64}\left(\left(\frac{\left(-1 \cdot t1\right) \cdot v}{t1 + u}\right), \left(t1 + u\right)\right) \]
          6. *-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\left(\frac{v \cdot \left(-1 \cdot t1\right)}{t1 + u}\right), \left(t1 + u\right)\right) \]
          7. associate-/l*N/A

            \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{-1 \cdot t1}{t1 + u}\right), \left(\color{blue}{t1} + u\right)\right) \]
          8. mul-1-negN/A

            \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right), \left(t1 + u\right)\right) \]
          9. distribute-frac-negN/A

            \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right)\right), \left(t1 + u\right)\right) \]
          10. *-lowering-*.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right)\right), \left(\color{blue}{t1} + u\right)\right) \]
          11. distribute-frac-negN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          12. mul-1-negN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{-1 \cdot t1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          13. *-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{t1 \cdot -1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          14. associate-/l*N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(t1 \cdot \frac{-1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          15. *-lowering-*.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \left(\frac{-1}{t1 + u}\right)\right)\right), \left(t1 + u\right)\right) \]
          16. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \left(t1 + u\right)\right)\right)\right), \left(t1 + u\right)\right) \]
          17. +-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \left(u + t1\right)\right)\right)\right), \left(t1 + u\right)\right) \]
          18. +-lowering-+.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \left(t1 + u\right)\right) \]
          19. +-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \left(u + \color{blue}{t1}\right)\right) \]
          20. +-lowering-+.f6498.7%

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \mathsf{+.f64}\left(u, \color{blue}{t1}\right)\right) \]
        5. Simplified98.7%

          \[\leadsto \color{blue}{\frac{v \cdot \left(t1 \cdot \frac{-1}{u + t1}\right)}{u + t1}} \]
        6. Taylor expanded in t1 around inf

          \[\leadsto \mathsf{/.f64}\left(\color{blue}{\left(-1 \cdot v\right)}, \mathsf{+.f64}\left(u, t1\right)\right) \]
        7. Step-by-step derivation
          1. mul-1-negN/A

            \[\leadsto \mathsf{/.f64}\left(\left(\mathsf{neg}\left(v\right)\right), \mathsf{+.f64}\left(\color{blue}{u}, t1\right)\right) \]
          2. neg-sub0N/A

            \[\leadsto \mathsf{/.f64}\left(\left(0 - v\right), \mathsf{+.f64}\left(\color{blue}{u}, t1\right)\right) \]
          3. --lowering--.f6462.9%

            \[\leadsto \mathsf{/.f64}\left(\mathsf{\_.f64}\left(0, v\right), \mathsf{+.f64}\left(\color{blue}{u}, t1\right)\right) \]
        8. Simplified62.9%

          \[\leadsto \frac{\color{blue}{0 - v}}{u + t1} \]
        9. Step-by-step derivation
          1. clear-numN/A

            \[\leadsto \frac{1}{\color{blue}{\frac{u + t1}{0 - v}}} \]
          2. frac-2negN/A

            \[\leadsto \frac{\mathsf{neg}\left(1\right)}{\color{blue}{\mathsf{neg}\left(\frac{u + t1}{0 - v}\right)}} \]
          3. metadata-evalN/A

            \[\leadsto \frac{-1}{\mathsf{neg}\left(\color{blue}{\frac{u + t1}{0 - v}}\right)} \]
          4. sub0-negN/A

            \[\leadsto \frac{-1}{\mathsf{neg}\left(\frac{u + t1}{\mathsf{neg}\left(v\right)}\right)} \]
          5. distribute-frac-neg2N/A

            \[\leadsto \frac{-1}{\mathsf{neg}\left(\left(\mathsf{neg}\left(\frac{u + t1}{v}\right)\right)\right)} \]
          6. remove-double-negN/A

            \[\leadsto \frac{-1}{\frac{u + t1}{\color{blue}{v}}} \]
          7. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(-1, \color{blue}{\left(\frac{u + t1}{v}\right)}\right) \]
          8. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{/.f64}\left(\left(u + t1\right), \color{blue}{v}\right)\right) \]
          9. +-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{/.f64}\left(\left(t1 + u\right), v\right)\right) \]
          10. +-lowering-+.f6463.4%

            \[\leadsto \mathsf{/.f64}\left(-1, \mathsf{/.f64}\left(\mathsf{+.f64}\left(t1, u\right), v\right)\right) \]
        10. Applied egg-rr63.4%

          \[\leadsto \color{blue}{\frac{-1}{\frac{t1 + u}{v}}} \]
        11. Add Preprocessing

        Alternative 13: 61.3% accurate, 1.7× speedup?

        \[\begin{array}{l} \\ \frac{v}{0 - \left(t1 + u\right)} \end{array} \]
        (FPCore (u v t1) :precision binary64 (/ v (- 0.0 (+ t1 u))))
        double code(double u, double v, double t1) {
        	return v / (0.0 - (t1 + u));
        }
        
        real(8) function code(u, v, t1)
            real(8), intent (in) :: u
            real(8), intent (in) :: v
            real(8), intent (in) :: t1
            code = v / (0.0d0 - (t1 + u))
        end function
        
        public static double code(double u, double v, double t1) {
        	return v / (0.0 - (t1 + u));
        }
        
        def code(u, v, t1):
        	return v / (0.0 - (t1 + u))
        
        function code(u, v, t1)
        	return Float64(v / Float64(0.0 - Float64(t1 + u)))
        end
        
        function tmp = code(u, v, t1)
        	tmp = v / (0.0 - (t1 + u));
        end
        
        code[u_, v_, t1_] := N[(v / N[(0.0 - N[(t1 + u), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
        
        \begin{array}{l}
        
        \\
        \frac{v}{0 - \left(t1 + u\right)}
        \end{array}
        
        Derivation
        1. Initial program 78.6%

          \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
        2. Add Preprocessing
        3. Taylor expanded in v around 0

          \[\leadsto \color{blue}{-1 \cdot \frac{t1 \cdot v}{{\left(t1 + u\right)}^{2}}} \]
        4. Step-by-step derivation
          1. associate-*r/N/A

            \[\leadsto \frac{-1 \cdot \left(t1 \cdot v\right)}{\color{blue}{{\left(t1 + u\right)}^{2}}} \]
          2. unpow2N/A

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

            \[\leadsto \frac{\frac{-1 \cdot \left(t1 \cdot v\right)}{t1 + u}}{\color{blue}{t1 + u}} \]
          4. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\left(\frac{-1 \cdot \left(t1 \cdot v\right)}{t1 + u}\right), \color{blue}{\left(t1 + u\right)}\right) \]
          5. associate-*r*N/A

            \[\leadsto \mathsf{/.f64}\left(\left(\frac{\left(-1 \cdot t1\right) \cdot v}{t1 + u}\right), \left(t1 + u\right)\right) \]
          6. *-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\left(\frac{v \cdot \left(-1 \cdot t1\right)}{t1 + u}\right), \left(t1 + u\right)\right) \]
          7. associate-/l*N/A

            \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{-1 \cdot t1}{t1 + u}\right), \left(\color{blue}{t1} + u\right)\right) \]
          8. mul-1-negN/A

            \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right), \left(t1 + u\right)\right) \]
          9. distribute-frac-negN/A

            \[\leadsto \mathsf{/.f64}\left(\left(v \cdot \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right)\right), \left(t1 + u\right)\right) \]
          10. *-lowering-*.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\mathsf{neg}\left(\frac{t1}{t1 + u}\right)\right)\right), \left(\color{blue}{t1} + u\right)\right) \]
          11. distribute-frac-negN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{\mathsf{neg}\left(t1\right)}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          12. mul-1-negN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{-1 \cdot t1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          13. *-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(\frac{t1 \cdot -1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          14. associate-/l*N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \left(t1 \cdot \frac{-1}{t1 + u}\right)\right), \left(t1 + u\right)\right) \]
          15. *-lowering-*.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \left(\frac{-1}{t1 + u}\right)\right)\right), \left(t1 + u\right)\right) \]
          16. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \left(t1 + u\right)\right)\right)\right), \left(t1 + u\right)\right) \]
          17. +-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \left(u + t1\right)\right)\right)\right), \left(t1 + u\right)\right) \]
          18. +-lowering-+.f64N/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \left(t1 + u\right)\right) \]
          19. +-commutativeN/A

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \left(u + \color{blue}{t1}\right)\right) \]
          20. +-lowering-+.f6498.7%

            \[\leadsto \mathsf{/.f64}\left(\mathsf{*.f64}\left(v, \mathsf{*.f64}\left(t1, \mathsf{/.f64}\left(-1, \mathsf{+.f64}\left(u, t1\right)\right)\right)\right), \mathsf{+.f64}\left(u, \color{blue}{t1}\right)\right) \]
        5. Simplified98.7%

          \[\leadsto \color{blue}{\frac{v \cdot \left(t1 \cdot \frac{-1}{u + t1}\right)}{u + t1}} \]
        6. Taylor expanded in t1 around inf

          \[\leadsto \mathsf{/.f64}\left(\color{blue}{\left(-1 \cdot v\right)}, \mathsf{+.f64}\left(u, t1\right)\right) \]
        7. Step-by-step derivation
          1. mul-1-negN/A

            \[\leadsto \mathsf{/.f64}\left(\left(\mathsf{neg}\left(v\right)\right), \mathsf{+.f64}\left(\color{blue}{u}, t1\right)\right) \]
          2. neg-sub0N/A

            \[\leadsto \mathsf{/.f64}\left(\left(0 - v\right), \mathsf{+.f64}\left(\color{blue}{u}, t1\right)\right) \]
          3. --lowering--.f6462.9%

            \[\leadsto \mathsf{/.f64}\left(\mathsf{\_.f64}\left(0, v\right), \mathsf{+.f64}\left(\color{blue}{u}, t1\right)\right) \]
        8. Simplified62.9%

          \[\leadsto \frac{\color{blue}{0 - v}}{u + t1} \]
        9. Step-by-step derivation
          1. sub0-negN/A

            \[\leadsto \mathsf{/.f64}\left(\left(\mathsf{neg}\left(v\right)\right), \mathsf{+.f64}\left(\color{blue}{u}, t1\right)\right) \]
          2. neg-lowering-neg.f6462.9%

            \[\leadsto \mathsf{/.f64}\left(\mathsf{neg.f64}\left(v\right), \mathsf{+.f64}\left(\color{blue}{u}, t1\right)\right) \]
        10. Applied egg-rr62.9%

          \[\leadsto \frac{\color{blue}{-v}}{u + t1} \]
        11. Final simplification62.9%

          \[\leadsto \frac{v}{0 - \left(t1 + u\right)} \]
        12. Add Preprocessing

        Alternative 14: 53.5% accurate, 2.4× speedup?

        \[\begin{array}{l} \\ 0 - \frac{v}{t1} \end{array} \]
        (FPCore (u v t1) :precision binary64 (- 0.0 (/ v t1)))
        double code(double u, double v, double t1) {
        	return 0.0 - (v / t1);
        }
        
        real(8) function code(u, v, t1)
            real(8), intent (in) :: u
            real(8), intent (in) :: v
            real(8), intent (in) :: t1
            code = 0.0d0 - (v / t1)
        end function
        
        public static double code(double u, double v, double t1) {
        	return 0.0 - (v / t1);
        }
        
        def code(u, v, t1):
        	return 0.0 - (v / t1)
        
        function code(u, v, t1)
        	return Float64(0.0 - Float64(v / t1))
        end
        
        function tmp = code(u, v, t1)
        	tmp = 0.0 - (v / t1);
        end
        
        code[u_, v_, t1_] := N[(0.0 - N[(v / t1), $MachinePrecision]), $MachinePrecision]
        
        \begin{array}{l}
        
        \\
        0 - \frac{v}{t1}
        \end{array}
        
        Derivation
        1. Initial program 78.6%

          \[\frac{\left(-t1\right) \cdot v}{\left(t1 + u\right) \cdot \left(t1 + u\right)} \]
        2. Add Preprocessing
        3. Taylor expanded in t1 around inf

          \[\leadsto \color{blue}{-1 \cdot \frac{v}{t1}} \]
        4. Step-by-step derivation
          1. mul-1-negN/A

            \[\leadsto \mathsf{neg}\left(\frac{v}{t1}\right) \]
          2. distribute-neg-frac2N/A

            \[\leadsto \frac{v}{\color{blue}{\mathsf{neg}\left(t1\right)}} \]
          3. mul-1-negN/A

            \[\leadsto \frac{v}{-1 \cdot \color{blue}{t1}} \]
          4. /-lowering-/.f64N/A

            \[\leadsto \mathsf{/.f64}\left(v, \color{blue}{\left(-1 \cdot t1\right)}\right) \]
          5. mul-1-negN/A

            \[\leadsto \mathsf{/.f64}\left(v, \left(\mathsf{neg}\left(t1\right)\right)\right) \]
          6. neg-sub0N/A

            \[\leadsto \mathsf{/.f64}\left(v, \left(0 - \color{blue}{t1}\right)\right) \]
          7. --lowering--.f6455.1%

            \[\leadsto \mathsf{/.f64}\left(v, \mathsf{\_.f64}\left(0, \color{blue}{t1}\right)\right) \]
        5. Simplified55.1%

          \[\leadsto \color{blue}{\frac{v}{0 - t1}} \]
        6. Step-by-step derivation
          1. neg-sub0N/A

            \[\leadsto \mathsf{/.f64}\left(v, \left(\mathsf{neg}\left(t1\right)\right)\right) \]
          2. neg-lowering-neg.f6455.1%

            \[\leadsto \mathsf{/.f64}\left(v, \mathsf{neg.f64}\left(t1\right)\right) \]
        7. Applied egg-rr55.1%

          \[\leadsto \frac{v}{\color{blue}{-t1}} \]
        8. Final simplification55.1%

          \[\leadsto 0 - \frac{v}{t1} \]
        9. Add Preprocessing

        Reproduce

        ?
        herbie shell --seed 2024156 
        (FPCore (u v t1)
          :name "Rosa's DopplerBench"
          :precision binary64
          (/ (* (- t1) v) (* (+ t1 u) (+ t1 u))))