Numeric.SpecFunctions:incompleteGamma from math-functions-0.1.5.2, A

Percentage Accurate: 99.9% → 99.9%
Time: 10.7s
Alternatives: 12
Speedup: 0.7×

Specification

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

\\
\left(\left(x \cdot \log y - y\right) - z\right) + \log t
\end{array}

Sampling outcomes in binary64 precision:

Local Percentage Accuracy vs ?

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

Accuracy vs Speed?

Herbie found 12 alternatives:

AlternativeAccuracySpeedup
The accuracy (vertical axis) and speed (horizontal axis) of each alternatives. Up and to the right is better. The red square shows the initial program, and each blue circle shows an alternative.The line shows the best available speed-accuracy tradeoffs.

Initial Program: 99.9% accurate, 1.0× speedup?

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

\\
\left(\left(x \cdot \log y - y\right) - z\right) + \log t
\end{array}

Alternative 1: 99.9% accurate, 0.7× speedup?

\[\begin{array}{l} \\ \mathsf{fma}\left(\log y, x, \left(\log t - z\right) - y\right) \end{array} \]
(FPCore (x y z t) :precision binary64 (fma (log y) x (- (- (log t) z) y)))
double code(double x, double y, double z, double t) {
	return fma(log(y), x, ((log(t) - z) - y));
}
function code(x, y, z, t)
	return fma(log(y), x, Float64(Float64(log(t) - z) - y))
end
code[x_, y_, z_, t_] := N[(N[Log[y], $MachinePrecision] * x + N[(N[(N[Log[t], $MachinePrecision] - z), $MachinePrecision] - y), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\mathsf{fma}\left(\log y, x, \left(\log t - z\right) - y\right)
\end{array}
Derivation
  1. Initial program 99.8%

    \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
  2. Step-by-step derivation
    1. associate-+l-N/A

      \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
    2. associate--l-N/A

      \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
    3. sub-negN/A

      \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
    4. +-lowering-+.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
    5. *-lowering-*.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
    6. log-lowering-log.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
    7. +-commutativeN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
    8. distribute-neg-inN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
    9. sub-negN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
    10. --lowering--.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
    11. neg-sub0N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
    12. associate-+l-N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
    13. neg-sub0N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
    14. +-commutativeN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
    15. unsub-negN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
    16. --lowering--.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
    17. log-lowering-log.f6499.8%

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
  3. Simplified99.8%

    \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
  4. Add Preprocessing
  5. Step-by-step derivation
    1. *-commutativeN/A

      \[\leadsto \log y \cdot x + \left(\color{blue}{\left(\log t - z\right)} - y\right) \]
    2. fma-defineN/A

      \[\leadsto \mathsf{fma}\left(\log y, \color{blue}{x}, \left(\log t - z\right) - y\right) \]
    3. fma-lowering-fma.f64N/A

      \[\leadsto \mathsf{fma.f64}\left(\log y, \color{blue}{x}, \left(\left(\log t - z\right) - y\right)\right) \]
    4. log-lowering-log.f64N/A

      \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\left(\log t - z\right) - y\right)\right) \]
    5. --lowering--.f64N/A

      \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
    6. --lowering--.f64N/A

      \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
    7. log-lowering-log.f6499.8%

      \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
  6. Applied egg-rr99.8%

    \[\leadsto \color{blue}{\mathsf{fma}\left(\log y, x, \left(\log t - z\right) - y\right)} \]
  7. Add Preprocessing

Alternative 2: 89.7% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := \log t - z\\ t_2 := \log y \cdot x\\ \mathbf{if}\;x \leq -1.6 \cdot 10^{+53}:\\ \;\;\;\;t\_2 - y\\ \mathbf{elif}\;x \leq 3700000000000:\\ \;\;\;\;t\_1 - y\\ \mathbf{else}:\\ \;\;\;\;t\_1 + t\_2\\ \end{array} \end{array} \]
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (- (log t) z)) (t_2 (* (log y) x)))
   (if (<= x -1.6e+53)
     (- t_2 y)
     (if (<= x 3700000000000.0) (- t_1 y) (+ t_1 t_2)))))
double code(double x, double y, double z, double t) {
	double t_1 = log(t) - z;
	double t_2 = log(y) * x;
	double tmp;
	if (x <= -1.6e+53) {
		tmp = t_2 - y;
	} else if (x <= 3700000000000.0) {
		tmp = t_1 - y;
	} else {
		tmp = t_1 + t_2;
	}
	return tmp;
}
real(8) function code(x, y, z, t)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: tmp
    t_1 = log(t) - z
    t_2 = log(y) * x
    if (x <= (-1.6d+53)) then
        tmp = t_2 - y
    else if (x <= 3700000000000.0d0) then
        tmp = t_1 - y
    else
        tmp = t_1 + t_2
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t) {
	double t_1 = Math.log(t) - z;
	double t_2 = Math.log(y) * x;
	double tmp;
	if (x <= -1.6e+53) {
		tmp = t_2 - y;
	} else if (x <= 3700000000000.0) {
		tmp = t_1 - y;
	} else {
		tmp = t_1 + t_2;
	}
	return tmp;
}
def code(x, y, z, t):
	t_1 = math.log(t) - z
	t_2 = math.log(y) * x
	tmp = 0
	if x <= -1.6e+53:
		tmp = t_2 - y
	elif x <= 3700000000000.0:
		tmp = t_1 - y
	else:
		tmp = t_1 + t_2
	return tmp
function code(x, y, z, t)
	t_1 = Float64(log(t) - z)
	t_2 = Float64(log(y) * x)
	tmp = 0.0
	if (x <= -1.6e+53)
		tmp = Float64(t_2 - y);
	elseif (x <= 3700000000000.0)
		tmp = Float64(t_1 - y);
	else
		tmp = Float64(t_1 + t_2);
	end
	return tmp
end
function tmp_2 = code(x, y, z, t)
	t_1 = log(t) - z;
	t_2 = log(y) * x;
	tmp = 0.0;
	if (x <= -1.6e+53)
		tmp = t_2 - y;
	elseif (x <= 3700000000000.0)
		tmp = t_1 - y;
	else
		tmp = t_1 + t_2;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(N[Log[t], $MachinePrecision] - z), $MachinePrecision]}, Block[{t$95$2 = N[(N[Log[y], $MachinePrecision] * x), $MachinePrecision]}, If[LessEqual[x, -1.6e+53], N[(t$95$2 - y), $MachinePrecision], If[LessEqual[x, 3700000000000.0], N[(t$95$1 - y), $MachinePrecision], N[(t$95$1 + t$95$2), $MachinePrecision]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := \log t - z\\
t_2 := \log y \cdot x\\
\mathbf{if}\;x \leq -1.6 \cdot 10^{+53}:\\
\;\;\;\;t\_2 - y\\

\mathbf{elif}\;x \leq 3700000000000:\\
\;\;\;\;t\_1 - y\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if x < -1.6e53

    1. Initial program 99.7%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f6499.7%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified99.7%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in y around inf

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

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(y\right)\right)\right) \]
      2. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(0 - \color{blue}{y}\right)\right) \]
      3. --lowering--.f6493.7%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(0, \color{blue}{y}\right)\right) \]
    7. Simplified93.7%

      \[\leadsto x \cdot \log y + \color{blue}{\left(0 - y\right)} \]
    8. Step-by-step derivation
      1. sub0-negN/A

        \[\leadsto x \cdot \log y + \left(\mathsf{neg}\left(y\right)\right) \]
      2. unsub-negN/A

        \[\leadsto x \cdot \log y - \color{blue}{y} \]
      3. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\left(x \cdot \log y\right), \color{blue}{y}\right) \]
      4. *-commutativeN/A

        \[\leadsto \mathsf{\_.f64}\left(\left(\log y \cdot x\right), y\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\log y, x\right), y\right) \]
      6. log-lowering-log.f6493.7%

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{log.f64}\left(y\right), x\right), y\right) \]
    9. Applied egg-rr93.7%

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

    if -1.6e53 < x < 3.7e12

    1. Initial program 100.0%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f64100.0%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in x around 0

      \[\leadsto \color{blue}{\log t - \left(y + z\right)} \]
    6. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \log t - \left(z + \color{blue}{y}\right) \]
      2. associate--r+N/A

        \[\leadsto \left(\log t - z\right) - \color{blue}{y} \]
      3. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\left(\log t - z\right), \color{blue}{y}\right) \]
      4. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right) \]
      5. log-lowering-log.f6496.5%

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right) \]
    7. Simplified96.5%

      \[\leadsto \color{blue}{\left(\log t - z\right) - y} \]

    if 3.7e12 < x

    1. Initial program 99.6%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f6499.6%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified99.6%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in y around 0

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \color{blue}{\left(\log t - z\right)}\right) \]
    6. Step-by-step derivation
      1. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\log t, \color{blue}{z}\right)\right) \]
      2. log-lowering-log.f6485.6%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right)\right) \]
    7. Simplified85.6%

      \[\leadsto x \cdot \log y + \color{blue}{\left(\log t - z\right)} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification93.6%

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq -1.6 \cdot 10^{+53}:\\ \;\;\;\;\log y \cdot x - y\\ \mathbf{elif}\;x \leq 3700000000000:\\ \;\;\;\;\left(\log t - z\right) - y\\ \mathbf{else}:\\ \;\;\;\;\left(\log t - z\right) + \log y \cdot x\\ \end{array} \]
  5. Add Preprocessing

Alternative 3: 89.7% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq -2.95 \cdot 10^{+51}:\\ \;\;\;\;\log y \cdot x - y\\ \mathbf{elif}\;x \leq 3800000000000:\\ \;\;\;\;\left(\log t - z\right) - y\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\log y, x, 0 - z\right)\\ \end{array} \end{array} \]
(FPCore (x y z t)
 :precision binary64
 (if (<= x -2.95e+51)
   (- (* (log y) x) y)
   (if (<= x 3800000000000.0) (- (- (log t) z) y) (fma (log y) x (- 0.0 z)))))
double code(double x, double y, double z, double t) {
	double tmp;
	if (x <= -2.95e+51) {
		tmp = (log(y) * x) - y;
	} else if (x <= 3800000000000.0) {
		tmp = (log(t) - z) - y;
	} else {
		tmp = fma(log(y), x, (0.0 - z));
	}
	return tmp;
}
function code(x, y, z, t)
	tmp = 0.0
	if (x <= -2.95e+51)
		tmp = Float64(Float64(log(y) * x) - y);
	elseif (x <= 3800000000000.0)
		tmp = Float64(Float64(log(t) - z) - y);
	else
		tmp = fma(log(y), x, Float64(0.0 - z));
	end
	return tmp
end
code[x_, y_, z_, t_] := If[LessEqual[x, -2.95e+51], N[(N[(N[Log[y], $MachinePrecision] * x), $MachinePrecision] - y), $MachinePrecision], If[LessEqual[x, 3800000000000.0], N[(N[(N[Log[t], $MachinePrecision] - z), $MachinePrecision] - y), $MachinePrecision], N[(N[Log[y], $MachinePrecision] * x + N[(0.0 - z), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;x \leq -2.95 \cdot 10^{+51}:\\
\;\;\;\;\log y \cdot x - y\\

\mathbf{elif}\;x \leq 3800000000000:\\
\;\;\;\;\left(\log t - z\right) - y\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\log y, x, 0 - z\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if x < -2.94999999999999991e51

    1. Initial program 99.7%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f6499.7%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified99.7%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in y around inf

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

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(y\right)\right)\right) \]
      2. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(0 - \color{blue}{y}\right)\right) \]
      3. --lowering--.f6493.7%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(0, \color{blue}{y}\right)\right) \]
    7. Simplified93.7%

      \[\leadsto x \cdot \log y + \color{blue}{\left(0 - y\right)} \]
    8. Step-by-step derivation
      1. sub0-negN/A

        \[\leadsto x \cdot \log y + \left(\mathsf{neg}\left(y\right)\right) \]
      2. unsub-negN/A

        \[\leadsto x \cdot \log y - \color{blue}{y} \]
      3. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\left(x \cdot \log y\right), \color{blue}{y}\right) \]
      4. *-commutativeN/A

        \[\leadsto \mathsf{\_.f64}\left(\left(\log y \cdot x\right), y\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\log y, x\right), y\right) \]
      6. log-lowering-log.f6493.7%

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{log.f64}\left(y\right), x\right), y\right) \]
    9. Applied egg-rr93.7%

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

    if -2.94999999999999991e51 < x < 3.8e12

    1. Initial program 100.0%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f64100.0%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in x around 0

      \[\leadsto \color{blue}{\log t - \left(y + z\right)} \]
    6. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \log t - \left(z + \color{blue}{y}\right) \]
      2. associate--r+N/A

        \[\leadsto \left(\log t - z\right) - \color{blue}{y} \]
      3. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\left(\log t - z\right), \color{blue}{y}\right) \]
      4. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right) \]
      5. log-lowering-log.f6496.5%

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right) \]
    7. Simplified96.5%

      \[\leadsto \color{blue}{\left(\log t - z\right) - y} \]

    if 3.8e12 < x

    1. Initial program 99.6%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f6499.6%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified99.6%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \log y \cdot x + \left(\color{blue}{\left(\log t - z\right)} - y\right) \]
      2. fma-defineN/A

        \[\leadsto \mathsf{fma}\left(\log y, \color{blue}{x}, \left(\log t - z\right) - y\right) \]
      3. fma-lowering-fma.f64N/A

        \[\leadsto \mathsf{fma.f64}\left(\log y, \color{blue}{x}, \left(\left(\log t - z\right) - y\right)\right) \]
      4. log-lowering-log.f64N/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\left(\log t - z\right) - y\right)\right) \]
      5. --lowering--.f64N/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      6. --lowering--.f64N/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      7. log-lowering-log.f6499.6%

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    6. Applied egg-rr99.6%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\log y, x, \left(\log t - z\right) - y\right)} \]
    7. Taylor expanded in z around inf

      \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \color{blue}{\left(-1 \cdot z\right)}\right) \]
    8. Step-by-step derivation
      1. mul-1-negN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(z\right)\right)\right) \]
      2. neg-sub0N/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(0 - z\right)\right) \]
      3. --lowering--.f6485.2%

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(0, z\right)\right) \]
    9. Simplified85.2%

      \[\leadsto \mathsf{fma}\left(\log y, x, \color{blue}{0 - z}\right) \]
    10. Step-by-step derivation
      1. sub0-negN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(z\right)\right)\right) \]
      2. +-lft-identityN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\left(0 + z\right)\right)\right)\right) \]
      3. flip3-+N/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\frac{{0}^{3} + {z}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right)\right) \]
      4. sqr-powN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\frac{{0}^{3} + {z}^{\left(\frac{3}{2}\right)} \cdot {z}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right)\right) \]
      5. pow-prod-downN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(z \cdot z\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right)\right) \]
      6. sqr-negN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(\left(\mathsf{neg}\left(z\right)\right) \cdot \left(\mathsf{neg}\left(z\right)\right)\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right)\right) \]
      7. sub0-negN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(\left(0 - z\right) \cdot \left(\mathsf{neg}\left(z\right)\right)\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right)\right) \]
      8. sub0-negN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(\left(0 - z\right) \cdot \left(0 - z\right)\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right)\right) \]
      9. pow-prod-downN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(0 - z\right)}^{\left(\frac{3}{2}\right)} \cdot {\left(0 - z\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right)\right) \]
      10. sqr-powN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(0 - z\right)}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right)\right) \]
      11. metadata-evalN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\frac{0 + {\left(0 - z\right)}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right)\right) \]
      12. sub0-negN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\frac{0 + {\left(\mathsf{neg}\left(z\right)\right)}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right)\right) \]
      13. cube-negN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\frac{0 + \left(\mathsf{neg}\left({z}^{3}\right)\right)}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right)\right) \]
      14. sub-negN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right)\right) \]
      15. mul0-lftN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \left(z \cdot z - 0\right)}\right)\right)\right) \]
      16. fmm-defN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \mathsf{fma}\left(z, z, \mathsf{neg}\left(0\right)\right)}\right)\right)\right) \]
      17. metadata-evalN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \mathsf{fma}\left(z, z, 0\right)}\right)\right)\right) \]
      18. mul0-lftN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \mathsf{fma}\left(z, z, 0 \cdot z\right)}\right)\right)\right) \]
      19. fma-defineN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \left(z \cdot z + 0 \cdot z\right)}\right)\right)\right) \]
      20. metadata-evalN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\frac{{0}^{3} - {z}^{3}}{0 \cdot 0 + \left(z \cdot z + 0 \cdot z\right)}\right)\right)\right) \]
      21. flip3--N/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(\left(0 - z\right)\right)\right)\right) \]
    11. Applied egg-rr85.2%

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq -2.95 \cdot 10^{+51}:\\ \;\;\;\;\log y \cdot x - y\\ \mathbf{elif}\;x \leq 3800000000000:\\ \;\;\;\;\left(\log t - z\right) - y\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\log y, x, 0 - z\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 4: 99.9% accurate, 1.0× speedup?

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

\\
\left(\left(\log t - z\right) - y\right) + \log y \cdot x
\end{array}
Derivation
  1. Initial program 99.8%

    \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
  2. Step-by-step derivation
    1. associate-+l-N/A

      \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
    2. associate--l-N/A

      \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
    3. sub-negN/A

      \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
    4. +-lowering-+.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
    5. *-lowering-*.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
    6. log-lowering-log.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
    7. +-commutativeN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
    8. distribute-neg-inN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
    9. sub-negN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
    10. --lowering--.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
    11. neg-sub0N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
    12. associate-+l-N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
    13. neg-sub0N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
    14. +-commutativeN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
    15. unsub-negN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
    16. --lowering--.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
    17. log-lowering-log.f6499.8%

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
  3. Simplified99.8%

    \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
  4. Add Preprocessing
  5. Final simplification99.8%

    \[\leadsto \left(\left(\log t - z\right) - y\right) + \log y \cdot x \]
  6. Add Preprocessing

Alternative 5: 89.7% accurate, 1.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := \log y \cdot x\\ \mathbf{if}\;x \leq -2 \cdot 10^{+47}:\\ \;\;\;\;t\_1 - y\\ \mathbf{elif}\;x \leq 3800000000000:\\ \;\;\;\;\left(\log t - z\right) - y\\ \mathbf{else}:\\ \;\;\;\;t\_1 - z\\ \end{array} \end{array} \]
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (* (log y) x)))
   (if (<= x -2e+47)
     (- t_1 y)
     (if (<= x 3800000000000.0) (- (- (log t) z) y) (- t_1 z)))))
double code(double x, double y, double z, double t) {
	double t_1 = log(y) * x;
	double tmp;
	if (x <= -2e+47) {
		tmp = t_1 - y;
	} else if (x <= 3800000000000.0) {
		tmp = (log(t) - z) - y;
	} else {
		tmp = t_1 - z;
	}
	return tmp;
}
real(8) function code(x, y, z, t)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    real(8) :: t_1
    real(8) :: tmp
    t_1 = log(y) * x
    if (x <= (-2d+47)) then
        tmp = t_1 - y
    else if (x <= 3800000000000.0d0) then
        tmp = (log(t) - z) - y
    else
        tmp = t_1 - z
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t) {
	double t_1 = Math.log(y) * x;
	double tmp;
	if (x <= -2e+47) {
		tmp = t_1 - y;
	} else if (x <= 3800000000000.0) {
		tmp = (Math.log(t) - z) - y;
	} else {
		tmp = t_1 - z;
	}
	return tmp;
}
def code(x, y, z, t):
	t_1 = math.log(y) * x
	tmp = 0
	if x <= -2e+47:
		tmp = t_1 - y
	elif x <= 3800000000000.0:
		tmp = (math.log(t) - z) - y
	else:
		tmp = t_1 - z
	return tmp
function code(x, y, z, t)
	t_1 = Float64(log(y) * x)
	tmp = 0.0
	if (x <= -2e+47)
		tmp = Float64(t_1 - y);
	elseif (x <= 3800000000000.0)
		tmp = Float64(Float64(log(t) - z) - y);
	else
		tmp = Float64(t_1 - z);
	end
	return tmp
end
function tmp_2 = code(x, y, z, t)
	t_1 = log(y) * x;
	tmp = 0.0;
	if (x <= -2e+47)
		tmp = t_1 - y;
	elseif (x <= 3800000000000.0)
		tmp = (log(t) - z) - y;
	else
		tmp = t_1 - z;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(N[Log[y], $MachinePrecision] * x), $MachinePrecision]}, If[LessEqual[x, -2e+47], N[(t$95$1 - y), $MachinePrecision], If[LessEqual[x, 3800000000000.0], N[(N[(N[Log[t], $MachinePrecision] - z), $MachinePrecision] - y), $MachinePrecision], N[(t$95$1 - z), $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := \log y \cdot x\\
\mathbf{if}\;x \leq -2 \cdot 10^{+47}:\\
\;\;\;\;t\_1 - y\\

\mathbf{elif}\;x \leq 3800000000000:\\
\;\;\;\;\left(\log t - z\right) - y\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if x < -2.0000000000000001e47

    1. Initial program 99.7%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f6499.7%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified99.7%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in y around inf

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

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(y\right)\right)\right) \]
      2. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(0 - \color{blue}{y}\right)\right) \]
      3. --lowering--.f6493.7%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(0, \color{blue}{y}\right)\right) \]
    7. Simplified93.7%

      \[\leadsto x \cdot \log y + \color{blue}{\left(0 - y\right)} \]
    8. Step-by-step derivation
      1. sub0-negN/A

        \[\leadsto x \cdot \log y + \left(\mathsf{neg}\left(y\right)\right) \]
      2. unsub-negN/A

        \[\leadsto x \cdot \log y - \color{blue}{y} \]
      3. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\left(x \cdot \log y\right), \color{blue}{y}\right) \]
      4. *-commutativeN/A

        \[\leadsto \mathsf{\_.f64}\left(\left(\log y \cdot x\right), y\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\log y, x\right), y\right) \]
      6. log-lowering-log.f6493.7%

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{log.f64}\left(y\right), x\right), y\right) \]
    9. Applied egg-rr93.7%

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

    if -2.0000000000000001e47 < x < 3.8e12

    1. Initial program 100.0%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f64100.0%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in x around 0

      \[\leadsto \color{blue}{\log t - \left(y + z\right)} \]
    6. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \log t - \left(z + \color{blue}{y}\right) \]
      2. associate--r+N/A

        \[\leadsto \left(\log t - z\right) - \color{blue}{y} \]
      3. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\left(\log t - z\right), \color{blue}{y}\right) \]
      4. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right) \]
      5. log-lowering-log.f6496.5%

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right) \]
    7. Simplified96.5%

      \[\leadsto \color{blue}{\left(\log t - z\right) - y} \]

    if 3.8e12 < x

    1. Initial program 99.6%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f6499.6%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified99.6%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \log y \cdot x + \left(\color{blue}{\left(\log t - z\right)} - y\right) \]
      2. fma-defineN/A

        \[\leadsto \mathsf{fma}\left(\log y, \color{blue}{x}, \left(\log t - z\right) - y\right) \]
      3. fma-lowering-fma.f64N/A

        \[\leadsto \mathsf{fma.f64}\left(\log y, \color{blue}{x}, \left(\left(\log t - z\right) - y\right)\right) \]
      4. log-lowering-log.f64N/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\left(\log t - z\right) - y\right)\right) \]
      5. --lowering--.f64N/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      6. --lowering--.f64N/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      7. log-lowering-log.f6499.6%

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    6. Applied egg-rr99.6%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\log y, x, \left(\log t - z\right) - y\right)} \]
    7. Taylor expanded in z around inf

      \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \color{blue}{\left(-1 \cdot z\right)}\right) \]
    8. Step-by-step derivation
      1. mul-1-negN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(z\right)\right)\right) \]
      2. neg-sub0N/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(0 - z\right)\right) \]
      3. --lowering--.f6485.2%

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(0, z\right)\right) \]
    9. Simplified85.2%

      \[\leadsto \mathsf{fma}\left(\log y, x, \color{blue}{0 - z}\right) \]
    10. Step-by-step derivation
      1. sub0-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(z\right)\right) \]
      2. +-lft-identityN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\left(0 + z\right)\right)\right) \]
      3. flip3-+N/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {z}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      4. sqr-powN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {z}^{\left(\frac{3}{2}\right)} \cdot {z}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      5. pow-prod-downN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(z \cdot z\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      6. sqr-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(\left(\mathsf{neg}\left(z\right)\right) \cdot \left(\mathsf{neg}\left(z\right)\right)\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      7. sub0-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(\left(0 - z\right) \cdot \left(\mathsf{neg}\left(z\right)\right)\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      8. sub0-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(\left(0 - z\right) \cdot \left(0 - z\right)\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      9. pow-prod-downN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(0 - z\right)}^{\left(\frac{3}{2}\right)} \cdot {\left(0 - z\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      10. sqr-powN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(0 - z\right)}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      11. metadata-evalN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 + {\left(0 - z\right)}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      12. sub0-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 + {\left(\mathsf{neg}\left(z\right)\right)}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      13. cube-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 + \left(\mathsf{neg}\left({z}^{3}\right)\right)}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      14. sub-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      15. mul0-lftN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \left(z \cdot z - 0\right)}\right)\right) \]
      16. fmm-defN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \mathsf{fma}\left(z, z, \mathsf{neg}\left(0\right)\right)}\right)\right) \]
      17. metadata-evalN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \mathsf{fma}\left(z, z, 0\right)}\right)\right) \]
      18. mul0-lftN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \mathsf{fma}\left(z, z, 0 \cdot z\right)}\right)\right) \]
      19. fma-defineN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \left(z \cdot z + 0 \cdot z\right)}\right)\right) \]
      20. metadata-evalN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} - {z}^{3}}{0 \cdot 0 + \left(z \cdot z + 0 \cdot z\right)}\right)\right) \]
    11. Applied egg-rr85.2%

      \[\leadsto \color{blue}{x \cdot \log y - z} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification93.5%

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq -2 \cdot 10^{+47}:\\ \;\;\;\;\log y \cdot x - y\\ \mathbf{elif}\;x \leq 3800000000000:\\ \;\;\;\;\left(\log t - z\right) - y\\ \mathbf{else}:\\ \;\;\;\;\log y \cdot x - z\\ \end{array} \]
  5. Add Preprocessing

Alternative 6: 76.9% accurate, 1.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := \log y \cdot x\\ \mathbf{if}\;x \leq -1.5 \cdot 10^{+51}:\\ \;\;\;\;t\_1 - y\\ \mathbf{elif}\;x \leq 3700000000000:\\ \;\;\;\;\left(0 - z\right) - y\\ \mathbf{else}:\\ \;\;\;\;t\_1 - z\\ \end{array} \end{array} \]
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (* (log y) x)))
   (if (<= x -1.5e+51)
     (- t_1 y)
     (if (<= x 3700000000000.0) (- (- 0.0 z) y) (- t_1 z)))))
double code(double x, double y, double z, double t) {
	double t_1 = log(y) * x;
	double tmp;
	if (x <= -1.5e+51) {
		tmp = t_1 - y;
	} else if (x <= 3700000000000.0) {
		tmp = (0.0 - z) - y;
	} else {
		tmp = t_1 - z;
	}
	return tmp;
}
real(8) function code(x, y, z, t)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    real(8) :: t_1
    real(8) :: tmp
    t_1 = log(y) * x
    if (x <= (-1.5d+51)) then
        tmp = t_1 - y
    else if (x <= 3700000000000.0d0) then
        tmp = (0.0d0 - z) - y
    else
        tmp = t_1 - z
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t) {
	double t_1 = Math.log(y) * x;
	double tmp;
	if (x <= -1.5e+51) {
		tmp = t_1 - y;
	} else if (x <= 3700000000000.0) {
		tmp = (0.0 - z) - y;
	} else {
		tmp = t_1 - z;
	}
	return tmp;
}
def code(x, y, z, t):
	t_1 = math.log(y) * x
	tmp = 0
	if x <= -1.5e+51:
		tmp = t_1 - y
	elif x <= 3700000000000.0:
		tmp = (0.0 - z) - y
	else:
		tmp = t_1 - z
	return tmp
function code(x, y, z, t)
	t_1 = Float64(log(y) * x)
	tmp = 0.0
	if (x <= -1.5e+51)
		tmp = Float64(t_1 - y);
	elseif (x <= 3700000000000.0)
		tmp = Float64(Float64(0.0 - z) - y);
	else
		tmp = Float64(t_1 - z);
	end
	return tmp
end
function tmp_2 = code(x, y, z, t)
	t_1 = log(y) * x;
	tmp = 0.0;
	if (x <= -1.5e+51)
		tmp = t_1 - y;
	elseif (x <= 3700000000000.0)
		tmp = (0.0 - z) - y;
	else
		tmp = t_1 - z;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(N[Log[y], $MachinePrecision] * x), $MachinePrecision]}, If[LessEqual[x, -1.5e+51], N[(t$95$1 - y), $MachinePrecision], If[LessEqual[x, 3700000000000.0], N[(N[(0.0 - z), $MachinePrecision] - y), $MachinePrecision], N[(t$95$1 - z), $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := \log y \cdot x\\
\mathbf{if}\;x \leq -1.5 \cdot 10^{+51}:\\
\;\;\;\;t\_1 - y\\

\mathbf{elif}\;x \leq 3700000000000:\\
\;\;\;\;\left(0 - z\right) - y\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if x < -1.5e51

    1. Initial program 99.7%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f6499.7%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified99.7%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in y around inf

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

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(y\right)\right)\right) \]
      2. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(0 - \color{blue}{y}\right)\right) \]
      3. --lowering--.f6493.7%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(0, \color{blue}{y}\right)\right) \]
    7. Simplified93.7%

      \[\leadsto x \cdot \log y + \color{blue}{\left(0 - y\right)} \]
    8. Step-by-step derivation
      1. sub0-negN/A

        \[\leadsto x \cdot \log y + \left(\mathsf{neg}\left(y\right)\right) \]
      2. unsub-negN/A

        \[\leadsto x \cdot \log y - \color{blue}{y} \]
      3. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\left(x \cdot \log y\right), \color{blue}{y}\right) \]
      4. *-commutativeN/A

        \[\leadsto \mathsf{\_.f64}\left(\left(\log y \cdot x\right), y\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\log y, x\right), y\right) \]
      6. log-lowering-log.f6493.7%

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{log.f64}\left(y\right), x\right), y\right) \]
    9. Applied egg-rr93.7%

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

    if -1.5e51 < x < 3.7e12

    1. Initial program 100.0%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f64100.0%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified100.0%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in x around 0

      \[\leadsto \color{blue}{\log t - \left(y + z\right)} \]
    6. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \log t - \left(z + \color{blue}{y}\right) \]
      2. associate--r+N/A

        \[\leadsto \left(\log t - z\right) - \color{blue}{y} \]
      3. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\left(\log t - z\right), \color{blue}{y}\right) \]
      4. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right) \]
      5. log-lowering-log.f6496.5%

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right) \]
    7. Simplified96.5%

      \[\leadsto \color{blue}{\left(\log t - z\right) - y} \]
    8. Taylor expanded in z around inf

      \[\leadsto \mathsf{\_.f64}\left(\color{blue}{\left(-1 \cdot z\right)}, y\right) \]
    9. Step-by-step derivation
      1. mul-1-negN/A

        \[\leadsto \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(z\right)\right), y\right) \]
      2. neg-sub0N/A

        \[\leadsto \mathsf{\_.f64}\left(\left(0 - z\right), y\right) \]
      3. --lowering--.f6473.0%

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(0, z\right), y\right) \]
    10. Simplified73.0%

      \[\leadsto \color{blue}{\left(0 - z\right)} - y \]

    if 3.7e12 < x

    1. Initial program 99.6%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f6499.6%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified99.6%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \log y \cdot x + \left(\color{blue}{\left(\log t - z\right)} - y\right) \]
      2. fma-defineN/A

        \[\leadsto \mathsf{fma}\left(\log y, \color{blue}{x}, \left(\log t - z\right) - y\right) \]
      3. fma-lowering-fma.f64N/A

        \[\leadsto \mathsf{fma.f64}\left(\log y, \color{blue}{x}, \left(\left(\log t - z\right) - y\right)\right) \]
      4. log-lowering-log.f64N/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\left(\log t - z\right) - y\right)\right) \]
      5. --lowering--.f64N/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      6. --lowering--.f64N/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      7. log-lowering-log.f6499.6%

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    6. Applied egg-rr99.6%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\log y, x, \left(\log t - z\right) - y\right)} \]
    7. Taylor expanded in z around inf

      \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \color{blue}{\left(-1 \cdot z\right)}\right) \]
    8. Step-by-step derivation
      1. mul-1-negN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(z\right)\right)\right) \]
      2. neg-sub0N/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(0 - z\right)\right) \]
      3. --lowering--.f6485.2%

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(0, z\right)\right) \]
    9. Simplified85.2%

      \[\leadsto \mathsf{fma}\left(\log y, x, \color{blue}{0 - z}\right) \]
    10. Step-by-step derivation
      1. sub0-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(z\right)\right) \]
      2. +-lft-identityN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\left(0 + z\right)\right)\right) \]
      3. flip3-+N/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {z}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      4. sqr-powN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {z}^{\left(\frac{3}{2}\right)} \cdot {z}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      5. pow-prod-downN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(z \cdot z\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      6. sqr-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(\left(\mathsf{neg}\left(z\right)\right) \cdot \left(\mathsf{neg}\left(z\right)\right)\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      7. sub0-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(\left(0 - z\right) \cdot \left(\mathsf{neg}\left(z\right)\right)\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      8. sub0-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(\left(0 - z\right) \cdot \left(0 - z\right)\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      9. pow-prod-downN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(0 - z\right)}^{\left(\frac{3}{2}\right)} \cdot {\left(0 - z\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      10. sqr-powN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(0 - z\right)}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      11. metadata-evalN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 + {\left(0 - z\right)}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      12. sub0-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 + {\left(\mathsf{neg}\left(z\right)\right)}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      13. cube-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 + \left(\mathsf{neg}\left({z}^{3}\right)\right)}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      14. sub-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      15. mul0-lftN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \left(z \cdot z - 0\right)}\right)\right) \]
      16. fmm-defN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \mathsf{fma}\left(z, z, \mathsf{neg}\left(0\right)\right)}\right)\right) \]
      17. metadata-evalN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \mathsf{fma}\left(z, z, 0\right)}\right)\right) \]
      18. mul0-lftN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \mathsf{fma}\left(z, z, 0 \cdot z\right)}\right)\right) \]
      19. fma-defineN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \left(z \cdot z + 0 \cdot z\right)}\right)\right) \]
      20. metadata-evalN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} - {z}^{3}}{0 \cdot 0 + \left(z \cdot z + 0 \cdot z\right)}\right)\right) \]
    11. Applied egg-rr85.2%

      \[\leadsto \color{blue}{x \cdot \log y - z} \]
  3. Recombined 3 regimes into one program.
  4. Final simplification79.5%

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq -1.5 \cdot 10^{+51}:\\ \;\;\;\;\log y \cdot x - y\\ \mathbf{elif}\;x \leq 3700000000000:\\ \;\;\;\;\left(0 - z\right) - y\\ \mathbf{else}:\\ \;\;\;\;\log y \cdot x - z\\ \end{array} \]
  5. Add Preprocessing

Alternative 7: 73.3% accurate, 1.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;y \leq 2.95 \cdot 10^{-220}:\\ \;\;\;\;\log t - z\\ \mathbf{elif}\;y \leq 9 \cdot 10^{+122}:\\ \;\;\;\;\log y \cdot x - z\\ \mathbf{else}:\\ \;\;\;\;\left(0 - z\right) - y\\ \end{array} \end{array} \]
(FPCore (x y z t)
 :precision binary64
 (if (<= y 2.95e-220)
   (- (log t) z)
   (if (<= y 9e+122) (- (* (log y) x) z) (- (- 0.0 z) y))))
double code(double x, double y, double z, double t) {
	double tmp;
	if (y <= 2.95e-220) {
		tmp = log(t) - z;
	} else if (y <= 9e+122) {
		tmp = (log(y) * x) - z;
	} else {
		tmp = (0.0 - z) - y;
	}
	return tmp;
}
real(8) function code(x, y, z, t)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    real(8) :: tmp
    if (y <= 2.95d-220) then
        tmp = log(t) - z
    else if (y <= 9d+122) then
        tmp = (log(y) * x) - z
    else
        tmp = (0.0d0 - z) - y
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t) {
	double tmp;
	if (y <= 2.95e-220) {
		tmp = Math.log(t) - z;
	} else if (y <= 9e+122) {
		tmp = (Math.log(y) * x) - z;
	} else {
		tmp = (0.0 - z) - y;
	}
	return tmp;
}
def code(x, y, z, t):
	tmp = 0
	if y <= 2.95e-220:
		tmp = math.log(t) - z
	elif y <= 9e+122:
		tmp = (math.log(y) * x) - z
	else:
		tmp = (0.0 - z) - y
	return tmp
function code(x, y, z, t)
	tmp = 0.0
	if (y <= 2.95e-220)
		tmp = Float64(log(t) - z);
	elseif (y <= 9e+122)
		tmp = Float64(Float64(log(y) * x) - z);
	else
		tmp = Float64(Float64(0.0 - z) - y);
	end
	return tmp
end
function tmp_2 = code(x, y, z, t)
	tmp = 0.0;
	if (y <= 2.95e-220)
		tmp = log(t) - z;
	elseif (y <= 9e+122)
		tmp = (log(y) * x) - z;
	else
		tmp = (0.0 - z) - y;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_] := If[LessEqual[y, 2.95e-220], N[(N[Log[t], $MachinePrecision] - z), $MachinePrecision], If[LessEqual[y, 9e+122], N[(N[(N[Log[y], $MachinePrecision] * x), $MachinePrecision] - z), $MachinePrecision], N[(N[(0.0 - z), $MachinePrecision] - y), $MachinePrecision]]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;y \leq 2.95 \cdot 10^{-220}:\\
\;\;\;\;\log t - z\\

\mathbf{elif}\;y \leq 9 \cdot 10^{+122}:\\
\;\;\;\;\log y \cdot x - z\\

\mathbf{else}:\\
\;\;\;\;\left(0 - z\right) - y\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if y < 2.9499999999999998e-220

    1. Initial program 99.7%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f6499.7%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified99.7%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in x around 0

      \[\leadsto \color{blue}{\log t - \left(y + z\right)} \]
    6. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \log t - \left(z + \color{blue}{y}\right) \]
      2. associate--r+N/A

        \[\leadsto \left(\log t - z\right) - \color{blue}{y} \]
      3. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\left(\log t - z\right), \color{blue}{y}\right) \]
      4. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right) \]
      5. log-lowering-log.f6467.7%

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right) \]
    7. Simplified67.7%

      \[\leadsto \color{blue}{\left(\log t - z\right) - y} \]
    8. Taylor expanded in y around 0

      \[\leadsto \color{blue}{\log t - z} \]
    9. Step-by-step derivation
      1. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\log t, \color{blue}{z}\right) \]
      2. log-lowering-log.f6467.7%

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right) \]
    10. Simplified67.7%

      \[\leadsto \color{blue}{\log t - z} \]

    if 2.9499999999999998e-220 < y < 8.99999999999999995e122

    1. Initial program 99.8%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f6499.8%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified99.8%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Step-by-step derivation
      1. *-commutativeN/A

        \[\leadsto \log y \cdot x + \left(\color{blue}{\left(\log t - z\right)} - y\right) \]
      2. fma-defineN/A

        \[\leadsto \mathsf{fma}\left(\log y, \color{blue}{x}, \left(\log t - z\right) - y\right) \]
      3. fma-lowering-fma.f64N/A

        \[\leadsto \mathsf{fma.f64}\left(\log y, \color{blue}{x}, \left(\left(\log t - z\right) - y\right)\right) \]
      4. log-lowering-log.f64N/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\left(\log t - z\right) - y\right)\right) \]
      5. --lowering--.f64N/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      6. --lowering--.f64N/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      7. log-lowering-log.f6499.8%

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    6. Applied egg-rr99.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(\log y, x, \left(\log t - z\right) - y\right)} \]
    7. Taylor expanded in z around inf

      \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \color{blue}{\left(-1 \cdot z\right)}\right) \]
    8. Step-by-step derivation
      1. mul-1-negN/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(\mathsf{neg}\left(z\right)\right)\right) \]
      2. neg-sub0N/A

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \left(0 - z\right)\right) \]
      3. --lowering--.f6474.3%

        \[\leadsto \mathsf{fma.f64}\left(\mathsf{log.f64}\left(y\right), x, \mathsf{\_.f64}\left(0, z\right)\right) \]
    9. Simplified74.3%

      \[\leadsto \mathsf{fma}\left(\log y, x, \color{blue}{0 - z}\right) \]
    10. Step-by-step derivation
      1. sub0-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(z\right)\right) \]
      2. +-lft-identityN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\left(0 + z\right)\right)\right) \]
      3. flip3-+N/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {z}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      4. sqr-powN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {z}^{\left(\frac{3}{2}\right)} \cdot {z}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      5. pow-prod-downN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(z \cdot z\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      6. sqr-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(\left(\mathsf{neg}\left(z\right)\right) \cdot \left(\mathsf{neg}\left(z\right)\right)\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      7. sub0-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(\left(0 - z\right) \cdot \left(\mathsf{neg}\left(z\right)\right)\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      8. sub0-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(\left(0 - z\right) \cdot \left(0 - z\right)\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      9. pow-prod-downN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(0 - z\right)}^{\left(\frac{3}{2}\right)} \cdot {\left(0 - z\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      10. sqr-powN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} + {\left(0 - z\right)}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      11. metadata-evalN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 + {\left(0 - z\right)}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      12. sub0-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 + {\left(\mathsf{neg}\left(z\right)\right)}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      13. cube-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 + \left(\mathsf{neg}\left({z}^{3}\right)\right)}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      14. sub-negN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \left(z \cdot z - 0 \cdot z\right)}\right)\right) \]
      15. mul0-lftN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \left(z \cdot z - 0\right)}\right)\right) \]
      16. fmm-defN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \mathsf{fma}\left(z, z, \mathsf{neg}\left(0\right)\right)}\right)\right) \]
      17. metadata-evalN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \mathsf{fma}\left(z, z, 0\right)}\right)\right) \]
      18. mul0-lftN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \mathsf{fma}\left(z, z, 0 \cdot z\right)}\right)\right) \]
      19. fma-defineN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{0 - {z}^{3}}{0 \cdot 0 + \left(z \cdot z + 0 \cdot z\right)}\right)\right) \]
      20. metadata-evalN/A

        \[\leadsto \log y \cdot x + \left(\mathsf{neg}\left(\frac{{0}^{3} - {z}^{3}}{0 \cdot 0 + \left(z \cdot z + 0 \cdot z\right)}\right)\right) \]
    11. Applied egg-rr74.3%

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

    if 8.99999999999999995e122 < y

    1. Initial program 99.9%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f6499.9%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified99.9%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in x around 0

      \[\leadsto \color{blue}{\log t - \left(y + z\right)} \]
    6. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \log t - \left(z + \color{blue}{y}\right) \]
      2. associate--r+N/A

        \[\leadsto \left(\log t - z\right) - \color{blue}{y} \]
      3. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\left(\log t - z\right), \color{blue}{y}\right) \]
      4. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right) \]
      5. log-lowering-log.f6487.3%

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right) \]
    7. Simplified87.3%

      \[\leadsto \color{blue}{\left(\log t - z\right) - y} \]
    8. Taylor expanded in z around inf

      \[\leadsto \mathsf{\_.f64}\left(\color{blue}{\left(-1 \cdot z\right)}, y\right) \]
    9. Step-by-step derivation
      1. mul-1-negN/A

        \[\leadsto \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(z\right)\right), y\right) \]
      2. neg-sub0N/A

        \[\leadsto \mathsf{\_.f64}\left(\left(0 - z\right), y\right) \]
      3. --lowering--.f6487.3%

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(0, z\right), y\right) \]
    10. Simplified87.3%

      \[\leadsto \color{blue}{\left(0 - z\right)} - y \]
  3. Recombined 3 regimes into one program.
  4. Final simplification77.4%

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \leq 2.95 \cdot 10^{-220}:\\ \;\;\;\;\log t - z\\ \mathbf{elif}\;y \leq 9 \cdot 10^{+122}:\\ \;\;\;\;\log y \cdot x - z\\ \mathbf{else}:\\ \;\;\;\;\left(0 - z\right) - y\\ \end{array} \]
  5. Add Preprocessing

Alternative 8: 71.3% accurate, 1.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := \log y \cdot x\\ \mathbf{if}\;x \leq -4.8 \cdot 10^{+169}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \leq 1.25 \cdot 10^{+129}:\\ \;\;\;\;\left(0 - z\right) - y\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (* (log y) x)))
   (if (<= x -4.8e+169) t_1 (if (<= x 1.25e+129) (- (- 0.0 z) y) t_1))))
double code(double x, double y, double z, double t) {
	double t_1 = log(y) * x;
	double tmp;
	if (x <= -4.8e+169) {
		tmp = t_1;
	} else if (x <= 1.25e+129) {
		tmp = (0.0 - z) - y;
	} else {
		tmp = t_1;
	}
	return tmp;
}
real(8) function code(x, y, z, t)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    real(8) :: t_1
    real(8) :: tmp
    t_1 = log(y) * x
    if (x <= (-4.8d+169)) then
        tmp = t_1
    else if (x <= 1.25d+129) then
        tmp = (0.0d0 - z) - y
    else
        tmp = t_1
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t) {
	double t_1 = Math.log(y) * x;
	double tmp;
	if (x <= -4.8e+169) {
		tmp = t_1;
	} else if (x <= 1.25e+129) {
		tmp = (0.0 - z) - y;
	} else {
		tmp = t_1;
	}
	return tmp;
}
def code(x, y, z, t):
	t_1 = math.log(y) * x
	tmp = 0
	if x <= -4.8e+169:
		tmp = t_1
	elif x <= 1.25e+129:
		tmp = (0.0 - z) - y
	else:
		tmp = t_1
	return tmp
function code(x, y, z, t)
	t_1 = Float64(log(y) * x)
	tmp = 0.0
	if (x <= -4.8e+169)
		tmp = t_1;
	elseif (x <= 1.25e+129)
		tmp = Float64(Float64(0.0 - z) - y);
	else
		tmp = t_1;
	end
	return tmp
end
function tmp_2 = code(x, y, z, t)
	t_1 = log(y) * x;
	tmp = 0.0;
	if (x <= -4.8e+169)
		tmp = t_1;
	elseif (x <= 1.25e+129)
		tmp = (0.0 - z) - y;
	else
		tmp = t_1;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(N[Log[y], $MachinePrecision] * x), $MachinePrecision]}, If[LessEqual[x, -4.8e+169], t$95$1, If[LessEqual[x, 1.25e+129], N[(N[(0.0 - z), $MachinePrecision] - y), $MachinePrecision], t$95$1]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := \log y \cdot x\\
\mathbf{if}\;x \leq -4.8 \cdot 10^{+169}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \leq 1.25 \cdot 10^{+129}:\\
\;\;\;\;\left(0 - z\right) - y\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if x < -4.7999999999999997e169 or 1.2500000000000001e129 < x

    1. Initial program 99.6%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f6499.6%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified99.6%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in x around inf

      \[\leadsto \color{blue}{x \cdot \log y} \]
    6. Step-by-step derivation
      1. *-lowering-*.f64N/A

        \[\leadsto \mathsf{*.f64}\left(x, \color{blue}{\log y}\right) \]
      2. log-lowering-log.f6477.5%

        \[\leadsto \mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right) \]
    7. Simplified77.5%

      \[\leadsto \color{blue}{x \cdot \log y} \]

    if -4.7999999999999997e169 < x < 1.2500000000000001e129

    1. Initial program 99.9%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f6499.9%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified99.9%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in x around 0

      \[\leadsto \color{blue}{\log t - \left(y + z\right)} \]
    6. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \log t - \left(z + \color{blue}{y}\right) \]
      2. associate--r+N/A

        \[\leadsto \left(\log t - z\right) - \color{blue}{y} \]
      3. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\left(\log t - z\right), \color{blue}{y}\right) \]
      4. --lowering--.f64N/A

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right) \]
      5. log-lowering-log.f6490.4%

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right) \]
    7. Simplified90.4%

      \[\leadsto \color{blue}{\left(\log t - z\right) - y} \]
    8. Taylor expanded in z around inf

      \[\leadsto \mathsf{\_.f64}\left(\color{blue}{\left(-1 \cdot z\right)}, y\right) \]
    9. Step-by-step derivation
      1. mul-1-negN/A

        \[\leadsto \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(z\right)\right), y\right) \]
      2. neg-sub0N/A

        \[\leadsto \mathsf{\_.f64}\left(\left(0 - z\right), y\right) \]
      3. --lowering--.f6471.1%

        \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(0, z\right), y\right) \]
    10. Simplified71.1%

      \[\leadsto \color{blue}{\left(0 - z\right)} - y \]
  3. Recombined 2 regimes into one program.
  4. Final simplification72.8%

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq -4.8 \cdot 10^{+169}:\\ \;\;\;\;\log y \cdot x\\ \mathbf{elif}\;x \leq 1.25 \cdot 10^{+129}:\\ \;\;\;\;\left(0 - z\right) - y\\ \mathbf{else}:\\ \;\;\;\;\log y \cdot x\\ \end{array} \]
  5. Add Preprocessing

Alternative 9: 47.5% accurate, 26.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;y \leq 9.6 \cdot 10^{+101}:\\ \;\;\;\;0 - z\\ \mathbf{else}:\\ \;\;\;\;0 - y\\ \end{array} \end{array} \]
(FPCore (x y z t) :precision binary64 (if (<= y 9.6e+101) (- 0.0 z) (- 0.0 y)))
double code(double x, double y, double z, double t) {
	double tmp;
	if (y <= 9.6e+101) {
		tmp = 0.0 - z;
	} else {
		tmp = 0.0 - y;
	}
	return tmp;
}
real(8) function code(x, y, z, t)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    real(8) :: tmp
    if (y <= 9.6d+101) then
        tmp = 0.0d0 - z
    else
        tmp = 0.0d0 - y
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t) {
	double tmp;
	if (y <= 9.6e+101) {
		tmp = 0.0 - z;
	} else {
		tmp = 0.0 - y;
	}
	return tmp;
}
def code(x, y, z, t):
	tmp = 0
	if y <= 9.6e+101:
		tmp = 0.0 - z
	else:
		tmp = 0.0 - y
	return tmp
function code(x, y, z, t)
	tmp = 0.0
	if (y <= 9.6e+101)
		tmp = Float64(0.0 - z);
	else
		tmp = Float64(0.0 - y);
	end
	return tmp
end
function tmp_2 = code(x, y, z, t)
	tmp = 0.0;
	if (y <= 9.6e+101)
		tmp = 0.0 - z;
	else
		tmp = 0.0 - y;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_] := If[LessEqual[y, 9.6e+101], N[(0.0 - z), $MachinePrecision], N[(0.0 - y), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;y \leq 9.6 \cdot 10^{+101}:\\
\;\;\;\;0 - z\\

\mathbf{else}:\\
\;\;\;\;0 - y\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if y < 9.59999999999999953e101

    1. Initial program 99.8%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f6499.8%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified99.8%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in z around inf

      \[\leadsto \color{blue}{-1 \cdot z} \]
    6. Step-by-step derivation
      1. mul-1-negN/A

        \[\leadsto \mathsf{neg}\left(z\right) \]
      2. neg-sub0N/A

        \[\leadsto 0 - \color{blue}{z} \]
      3. --lowering--.f6436.6%

        \[\leadsto \mathsf{\_.f64}\left(0, \color{blue}{z}\right) \]
    7. Simplified36.6%

      \[\leadsto \color{blue}{0 - z} \]

    if 9.59999999999999953e101 < y

    1. Initial program 99.9%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Step-by-step derivation
      1. associate-+l-N/A

        \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
      2. associate--l-N/A

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      3. sub-negN/A

        \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
      4. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
      5. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
      6. log-lowering-log.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
      7. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
      8. distribute-neg-inN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
      9. sub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
      10. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
      11. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
      12. associate-+l-N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
      13. neg-sub0N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
      14. +-commutativeN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
      15. unsub-negN/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
      16. --lowering--.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
      17. log-lowering-log.f6499.9%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
    3. Simplified99.9%

      \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
    4. Add Preprocessing
    5. Taylor expanded in y around inf

      \[\leadsto \color{blue}{-1 \cdot y} \]
    6. Step-by-step derivation
      1. mul-1-negN/A

        \[\leadsto \mathsf{neg}\left(y\right) \]
      2. neg-sub0N/A

        \[\leadsto 0 - \color{blue}{y} \]
      3. --lowering--.f6469.6%

        \[\leadsto \mathsf{\_.f64}\left(0, \color{blue}{y}\right) \]
    7. Simplified69.6%

      \[\leadsto \color{blue}{0 - y} \]
    8. Step-by-step derivation
      1. sub0-negN/A

        \[\leadsto \mathsf{neg}\left(y\right) \]
      2. neg-lowering-neg.f6469.6%

        \[\leadsto \mathsf{neg.f64}\left(y\right) \]
    9. Applied egg-rr69.6%

      \[\leadsto \color{blue}{-y} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification48.6%

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \leq 9.6 \cdot 10^{+101}:\\ \;\;\;\;0 - z\\ \mathbf{else}:\\ \;\;\;\;0 - y\\ \end{array} \]
  5. Add Preprocessing

Alternative 10: 57.9% accurate, 41.8× speedup?

\[\begin{array}{l} \\ \left(0 - z\right) - y \end{array} \]
(FPCore (x y z t) :precision binary64 (- (- 0.0 z) y))
double code(double x, double y, double z, double t) {
	return (0.0 - z) - y;
}
real(8) function code(x, y, z, t)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    code = (0.0d0 - z) - y
end function
public static double code(double x, double y, double z, double t) {
	return (0.0 - z) - y;
}
def code(x, y, z, t):
	return (0.0 - z) - y
function code(x, y, z, t)
	return Float64(Float64(0.0 - z) - y)
end
function tmp = code(x, y, z, t)
	tmp = (0.0 - z) - y;
end
code[x_, y_, z_, t_] := N[(N[(0.0 - z), $MachinePrecision] - y), $MachinePrecision]
\begin{array}{l}

\\
\left(0 - z\right) - y
\end{array}
Derivation
  1. Initial program 99.8%

    \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
  2. Step-by-step derivation
    1. associate-+l-N/A

      \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
    2. associate--l-N/A

      \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
    3. sub-negN/A

      \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
    4. +-lowering-+.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
    5. *-lowering-*.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
    6. log-lowering-log.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
    7. +-commutativeN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
    8. distribute-neg-inN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
    9. sub-negN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
    10. --lowering--.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
    11. neg-sub0N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
    12. associate-+l-N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
    13. neg-sub0N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
    14. +-commutativeN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
    15. unsub-negN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
    16. --lowering--.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
    17. log-lowering-log.f6499.8%

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
  3. Simplified99.8%

    \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
  4. Add Preprocessing
  5. Taylor expanded in x around 0

    \[\leadsto \color{blue}{\log t - \left(y + z\right)} \]
  6. Step-by-step derivation
    1. +-commutativeN/A

      \[\leadsto \log t - \left(z + \color{blue}{y}\right) \]
    2. associate--r+N/A

      \[\leadsto \left(\log t - z\right) - \color{blue}{y} \]
    3. --lowering--.f64N/A

      \[\leadsto \mathsf{\_.f64}\left(\left(\log t - z\right), \color{blue}{y}\right) \]
    4. --lowering--.f64N/A

      \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right) \]
    5. log-lowering-log.f6471.2%

      \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right) \]
  7. Simplified71.2%

    \[\leadsto \color{blue}{\left(\log t - z\right) - y} \]
  8. Taylor expanded in z around inf

    \[\leadsto \mathsf{\_.f64}\left(\color{blue}{\left(-1 \cdot z\right)}, y\right) \]
  9. Step-by-step derivation
    1. mul-1-negN/A

      \[\leadsto \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(z\right)\right), y\right) \]
    2. neg-sub0N/A

      \[\leadsto \mathsf{\_.f64}\left(\left(0 - z\right), y\right) \]
    3. --lowering--.f6457.1%

      \[\leadsto \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(0, z\right), y\right) \]
  10. Simplified57.1%

    \[\leadsto \color{blue}{\left(0 - z\right)} - y \]
  11. Add Preprocessing

Alternative 11: 30.0% accurate, 69.7× speedup?

\[\begin{array}{l} \\ 0 - y \end{array} \]
(FPCore (x y z t) :precision binary64 (- 0.0 y))
double code(double x, double y, double z, double t) {
	return 0.0 - y;
}
real(8) function code(x, y, z, t)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    code = 0.0d0 - y
end function
public static double code(double x, double y, double z, double t) {
	return 0.0 - y;
}
def code(x, y, z, t):
	return 0.0 - y
function code(x, y, z, t)
	return Float64(0.0 - y)
end
function tmp = code(x, y, z, t)
	tmp = 0.0 - y;
end
code[x_, y_, z_, t_] := N[(0.0 - y), $MachinePrecision]
\begin{array}{l}

\\
0 - y
\end{array}
Derivation
  1. Initial program 99.8%

    \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
  2. Step-by-step derivation
    1. associate-+l-N/A

      \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
    2. associate--l-N/A

      \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
    3. sub-negN/A

      \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
    4. +-lowering-+.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
    5. *-lowering-*.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
    6. log-lowering-log.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
    7. +-commutativeN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
    8. distribute-neg-inN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
    9. sub-negN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
    10. --lowering--.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
    11. neg-sub0N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
    12. associate-+l-N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
    13. neg-sub0N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
    14. +-commutativeN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
    15. unsub-negN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
    16. --lowering--.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
    17. log-lowering-log.f6499.8%

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
  3. Simplified99.8%

    \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
  4. Add Preprocessing
  5. Taylor expanded in y around inf

    \[\leadsto \color{blue}{-1 \cdot y} \]
  6. Step-by-step derivation
    1. mul-1-negN/A

      \[\leadsto \mathsf{neg}\left(y\right) \]
    2. neg-sub0N/A

      \[\leadsto 0 - \color{blue}{y} \]
    3. --lowering--.f6431.0%

      \[\leadsto \mathsf{\_.f64}\left(0, \color{blue}{y}\right) \]
  7. Simplified31.0%

    \[\leadsto \color{blue}{0 - y} \]
  8. Step-by-step derivation
    1. sub0-negN/A

      \[\leadsto \mathsf{neg}\left(y\right) \]
    2. neg-lowering-neg.f6431.0%

      \[\leadsto \mathsf{neg.f64}\left(y\right) \]
  9. Applied egg-rr31.0%

    \[\leadsto \color{blue}{-y} \]
  10. Final simplification31.0%

    \[\leadsto 0 - y \]
  11. Add Preprocessing

Alternative 12: 2.3% accurate, 209.0× speedup?

\[\begin{array}{l} \\ y \end{array} \]
(FPCore (x y z t) :precision binary64 y)
double code(double x, double y, double z, double t) {
	return y;
}
real(8) function code(x, y, z, t)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    code = y
end function
public static double code(double x, double y, double z, double t) {
	return y;
}
def code(x, y, z, t):
	return y
function code(x, y, z, t)
	return y
end
function tmp = code(x, y, z, t)
	tmp = y;
end
code[x_, y_, z_, t_] := y
\begin{array}{l}

\\
y
\end{array}
Derivation
  1. Initial program 99.8%

    \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
  2. Step-by-step derivation
    1. associate-+l-N/A

      \[\leadsto \left(x \cdot \log y - y\right) - \color{blue}{\left(z - \log t\right)} \]
    2. associate--l-N/A

      \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
    3. sub-negN/A

      \[\leadsto x \cdot \log y + \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)} \]
    4. +-lowering-+.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\left(x \cdot \log y\right), \color{blue}{\left(\mathsf{neg}\left(\left(y + \left(z - \log t\right)\right)\right)\right)}\right) \]
    5. *-lowering-*.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \log y\right), \left(\mathsf{neg}\left(\color{blue}{\left(y + \left(z - \log t\right)\right)}\right)\right)\right) \]
    6. log-lowering-log.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(y + \color{blue}{\left(z - \log t\right)}\right)\right)\right)\right) \]
    7. +-commutativeN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\mathsf{neg}\left(\left(\left(z - \log t\right) + y\right)\right)\right)\right) \]
    8. distribute-neg-inN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) + \color{blue}{\left(\mathsf{neg}\left(y\right)\right)}\right)\right) \]
    9. sub-negN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right) - \color{blue}{y}\right)\right) \]
    10. --lowering--.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\mathsf{neg}\left(\left(z - \log t\right)\right)\right), \color{blue}{y}\right)\right) \]
    11. neg-sub0N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(0 - \left(z - \log t\right)\right), y\right)\right) \]
    12. associate-+l-N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(0 - z\right) + \log t\right), y\right)\right) \]
    13. neg-sub0N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\left(\mathsf{neg}\left(z\right)\right) + \log t\right), y\right)\right) \]
    14. +-commutativeN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t + \left(\mathsf{neg}\left(z\right)\right)\right), y\right)\right) \]
    15. unsub-negN/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\left(\log t - z\right), y\right)\right) \]
    16. --lowering--.f64N/A

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\log t, z\right), y\right)\right) \]
    17. log-lowering-log.f6499.8%

      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(x, \mathsf{log.f64}\left(y\right)\right), \mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{log.f64}\left(t\right), z\right), y\right)\right) \]
  3. Simplified99.8%

    \[\leadsto \color{blue}{x \cdot \log y + \left(\left(\log t - z\right) - y\right)} \]
  4. Add Preprocessing
  5. Taylor expanded in y around inf

    \[\leadsto \color{blue}{-1 \cdot y} \]
  6. Step-by-step derivation
    1. mul-1-negN/A

      \[\leadsto \mathsf{neg}\left(y\right) \]
    2. neg-sub0N/A

      \[\leadsto 0 - \color{blue}{y} \]
    3. --lowering--.f6431.0%

      \[\leadsto \mathsf{\_.f64}\left(0, \color{blue}{y}\right) \]
  7. Simplified31.0%

    \[\leadsto \color{blue}{0 - y} \]
  8. Step-by-step derivation
    1. flip3--N/A

      \[\leadsto \frac{{0}^{3} - {y}^{3}}{\color{blue}{0 \cdot 0 + \left(y \cdot y + 0 \cdot y\right)}} \]
    2. metadata-evalN/A

      \[\leadsto \frac{0 - {y}^{3}}{\color{blue}{0} \cdot 0 + \left(y \cdot y + 0 \cdot y\right)} \]
    3. sub-negN/A

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

      \[\leadsto \frac{{0}^{3} + \left(\mathsf{neg}\left({y}^{3}\right)\right)}{\color{blue}{0} \cdot 0 + \left(y \cdot y + 0 \cdot y\right)} \]
    5. cube-negN/A

      \[\leadsto \frac{{0}^{3} + {\left(\mathsf{neg}\left(y\right)\right)}^{3}}{0 \cdot \color{blue}{0} + \left(y \cdot y + 0 \cdot y\right)} \]
    6. sub0-negN/A

      \[\leadsto \frac{{0}^{3} + {\left(0 - y\right)}^{3}}{0 \cdot 0 + \left(y \cdot y + 0 \cdot y\right)} \]
    7. sqr-powN/A

      \[\leadsto \frac{{0}^{3} + {\left(0 - y\right)}^{\left(\frac{3}{2}\right)} \cdot {\left(0 - y\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot \color{blue}{0} + \left(y \cdot y + 0 \cdot y\right)} \]
    8. pow-prod-downN/A

      \[\leadsto \frac{{0}^{3} + {\left(\left(0 - y\right) \cdot \left(0 - y\right)\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot \color{blue}{0} + \left(y \cdot y + 0 \cdot y\right)} \]
    9. sub0-negN/A

      \[\leadsto \frac{{0}^{3} + {\left(\left(\mathsf{neg}\left(y\right)\right) \cdot \left(0 - y\right)\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(y \cdot y + 0 \cdot y\right)} \]
    10. sub0-negN/A

      \[\leadsto \frac{{0}^{3} + {\left(\left(\mathsf{neg}\left(y\right)\right) \cdot \left(\mathsf{neg}\left(y\right)\right)\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(y \cdot y + 0 \cdot y\right)} \]
    11. sqr-negN/A

      \[\leadsto \frac{{0}^{3} + {\left(y \cdot y\right)}^{\left(\frac{3}{2}\right)}}{0 \cdot 0 + \left(y \cdot y + 0 \cdot y\right)} \]
    12. pow-prod-downN/A

      \[\leadsto \frac{{0}^{3} + {y}^{\left(\frac{3}{2}\right)} \cdot {y}^{\left(\frac{3}{2}\right)}}{0 \cdot \color{blue}{0} + \left(y \cdot y + 0 \cdot y\right)} \]
    13. sqr-powN/A

      \[\leadsto \frac{{0}^{3} + {y}^{3}}{0 \cdot \color{blue}{0} + \left(y \cdot y + 0 \cdot y\right)} \]
    14. fma-defineN/A

      \[\leadsto \frac{{0}^{3} + {y}^{3}}{0 \cdot 0 + \mathsf{fma}\left(y, \color{blue}{y}, 0 \cdot y\right)} \]
    15. mul0-lftN/A

      \[\leadsto \frac{{0}^{3} + {y}^{3}}{0 \cdot 0 + \mathsf{fma}\left(y, y, 0\right)} \]
    16. metadata-evalN/A

      \[\leadsto \frac{{0}^{3} + {y}^{3}}{0 \cdot 0 + \mathsf{fma}\left(y, y, \mathsf{neg}\left(0\right)\right)} \]
    17. fmm-defN/A

      \[\leadsto \frac{{0}^{3} + {y}^{3}}{0 \cdot 0 + \left(y \cdot y - \color{blue}{0}\right)} \]
    18. mul0-lftN/A

      \[\leadsto \frac{{0}^{3} + {y}^{3}}{0 \cdot 0 + \left(y \cdot y - 0 \cdot \color{blue}{y}\right)} \]
    19. flip3-+N/A

      \[\leadsto 0 + \color{blue}{y} \]
    20. +-lft-identity2.2%

      \[\leadsto y \]
  9. Applied egg-rr2.2%

    \[\leadsto \color{blue}{y} \]
  10. Add Preprocessing

Reproduce

?
herbie shell --seed 2024152 
(FPCore (x y z t)
  :name "Numeric.SpecFunctions:incompleteGamma from math-functions-0.1.5.2, A"
  :precision binary64
  (+ (- (- (* x (log y)) y) z) (log t)))