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

Percentage Accurate: 99.9% → 99.9%
Time: 17.3s
Alternatives: 15
Speedup: 1.0×

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

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

    \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
  2. Add Preprocessing
  3. Taylor expanded in x around 0 99.8%

    \[\leadsto \color{blue}{\left(\log t + x \cdot \log y\right) - \left(y + z\right)} \]
  4. Step-by-step derivation
    1. +-commutative99.8%

      \[\leadsto \left(\log t + x \cdot \log y\right) - \color{blue}{\left(z + y\right)} \]
    2. associate--l+99.8%

      \[\leadsto \color{blue}{\log t + \left(x \cdot \log y - \left(z + y\right)\right)} \]
    3. +-commutative99.8%

      \[\leadsto \color{blue}{\left(x \cdot \log y - \left(z + y\right)\right) + \log t} \]
    4. associate--r-99.8%

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

      \[\leadsto x \cdot \log y - \left(\color{blue}{\left(y + z\right)} - \log t\right) \]
    6. associate-+r-99.8%

      \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
    7. fma-neg99.8%

      \[\leadsto \color{blue}{\mathsf{fma}\left(x, \log y, -\left(y + \left(z - \log t\right)\right)\right)} \]
    8. associate-+r-99.8%

      \[\leadsto \mathsf{fma}\left(x, \log y, -\color{blue}{\left(\left(y + z\right) - \log t\right)}\right) \]
    9. +-commutative99.8%

      \[\leadsto \mathsf{fma}\left(x, \log y, -\left(\color{blue}{\left(z + y\right)} - \log t\right)\right) \]
    10. sub-neg99.8%

      \[\leadsto \mathsf{fma}\left(x, \log y, -\color{blue}{\left(\left(z + y\right) + \left(-\log t\right)\right)}\right) \]
    11. log-rec99.8%

      \[\leadsto \mathsf{fma}\left(x, \log y, -\left(\left(z + y\right) + \color{blue}{\log \left(\frac{1}{t}\right)}\right)\right) \]
    12. distribute-neg-in99.8%

      \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\left(-\left(z + y\right)\right) + \left(-\log \left(\frac{1}{t}\right)\right)}\right) \]
    13. +-commutative99.8%

      \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\color{blue}{\left(y + z\right)}\right) + \left(-\log \left(\frac{1}{t}\right)\right)\right) \]
    14. log-rec99.8%

      \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\left(y + z\right)\right) + \left(-\color{blue}{\left(-\log t\right)}\right)\right) \]
    15. remove-double-neg99.8%

      \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\left(y + z\right)\right) + \color{blue}{\log t}\right) \]
    16. +-commutative99.8%

      \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\log t + \left(-\left(y + z\right)\right)}\right) \]
    17. sub-neg99.8%

      \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\log t - \left(y + z\right)}\right) \]
  5. Simplified99.8%

    \[\leadsto \color{blue}{\mathsf{fma}\left(x, \log y, \log t - \left(y + z\right)\right)} \]
  6. Final simplification99.8%

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

Alternative 2: 88.6% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := \log t + x \cdot \log y\\ \mathbf{if}\;x \leq -1.65 \cdot 10^{+96}:\\ \;\;\;\;t\_1 - y\\ \mathbf{elif}\;x \leq 4.8 \cdot 10^{-15}:\\ \;\;\;\;\log t - \left(y + z\right)\\ \mathbf{else}:\\ \;\;\;\;t\_1 - z\\ \end{array} \end{array} \]
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (+ (log t) (* x (log y)))))
   (if (<= x -1.65e+96)
     (- t_1 y)
     (if (<= x 4.8e-15) (- (log t) (+ y z)) (- t_1 z)))))
double code(double x, double y, double z, double t) {
	double t_1 = log(t) + (x * log(y));
	double tmp;
	if (x <= -1.65e+96) {
		tmp = t_1 - y;
	} else if (x <= 4.8e-15) {
		tmp = log(t) - (y + z);
	} 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(t) + (x * log(y))
    if (x <= (-1.65d+96)) then
        tmp = t_1 - y
    else if (x <= 4.8d-15) then
        tmp = log(t) - (y + z)
    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(t) + (x * Math.log(y));
	double tmp;
	if (x <= -1.65e+96) {
		tmp = t_1 - y;
	} else if (x <= 4.8e-15) {
		tmp = Math.log(t) - (y + z);
	} else {
		tmp = t_1 - z;
	}
	return tmp;
}
def code(x, y, z, t):
	t_1 = math.log(t) + (x * math.log(y))
	tmp = 0
	if x <= -1.65e+96:
		tmp = t_1 - y
	elif x <= 4.8e-15:
		tmp = math.log(t) - (y + z)
	else:
		tmp = t_1 - z
	return tmp
function code(x, y, z, t)
	t_1 = Float64(log(t) + Float64(x * log(y)))
	tmp = 0.0
	if (x <= -1.65e+96)
		tmp = Float64(t_1 - y);
	elseif (x <= 4.8e-15)
		tmp = Float64(log(t) - Float64(y + z));
	else
		tmp = Float64(t_1 - z);
	end
	return tmp
end
function tmp_2 = code(x, y, z, t)
	t_1 = log(t) + (x * log(y));
	tmp = 0.0;
	if (x <= -1.65e+96)
		tmp = t_1 - y;
	elseif (x <= 4.8e-15)
		tmp = log(t) - (y + z);
	else
		tmp = t_1 - z;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(N[Log[t], $MachinePrecision] + N[(x * N[Log[y], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -1.65e+96], N[(t$95$1 - y), $MachinePrecision], If[LessEqual[x, 4.8e-15], N[(N[Log[t], $MachinePrecision] - N[(y + z), $MachinePrecision]), $MachinePrecision], N[(t$95$1 - z), $MachinePrecision]]]]
\begin{array}{l}

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

\mathbf{elif}\;x \leq 4.8 \cdot 10^{-15}:\\
\;\;\;\;\log t - \left(y + z\right)\\

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


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

    1. Initial program 99.6%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in z around 0 88.3%

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

    if -1.64999999999999992e96 < x < 4.7999999999999999e-15

    1. Initial program 100.0%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0 96.0%

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

    if 4.7999999999999999e-15 < x

    1. Initial program 99.6%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in y around 0 93.4%

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

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

Alternative 3: 88.2% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := x \cdot \log y\\ \mathbf{if}\;x \leq -3.75 \cdot 10^{+96}:\\ \;\;\;\;\left(\log t + t\_1\right) - y\\ \mathbf{elif}\;x \leq 4.8 \cdot 10^{-15}:\\ \;\;\;\;\log t - \left(y + z\right)\\ \mathbf{else}:\\ \;\;\;\;t\_1 - z\\ \end{array} \end{array} \]
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (* x (log y))))
   (if (<= x -3.75e+96)
     (- (+ (log t) t_1) y)
     (if (<= x 4.8e-15) (- (log t) (+ y z)) (- t_1 z)))))
double code(double x, double y, double z, double t) {
	double t_1 = x * log(y);
	double tmp;
	if (x <= -3.75e+96) {
		tmp = (log(t) + t_1) - y;
	} else if (x <= 4.8e-15) {
		tmp = log(t) - (y + z);
	} 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 = x * log(y)
    if (x <= (-3.75d+96)) then
        tmp = (log(t) + t_1) - y
    else if (x <= 4.8d-15) then
        tmp = log(t) - (y + z)
    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 = x * Math.log(y);
	double tmp;
	if (x <= -3.75e+96) {
		tmp = (Math.log(t) + t_1) - y;
	} else if (x <= 4.8e-15) {
		tmp = Math.log(t) - (y + z);
	} else {
		tmp = t_1 - z;
	}
	return tmp;
}
def code(x, y, z, t):
	t_1 = x * math.log(y)
	tmp = 0
	if x <= -3.75e+96:
		tmp = (math.log(t) + t_1) - y
	elif x <= 4.8e-15:
		tmp = math.log(t) - (y + z)
	else:
		tmp = t_1 - z
	return tmp
function code(x, y, z, t)
	t_1 = Float64(x * log(y))
	tmp = 0.0
	if (x <= -3.75e+96)
		tmp = Float64(Float64(log(t) + t_1) - y);
	elseif (x <= 4.8e-15)
		tmp = Float64(log(t) - Float64(y + z));
	else
		tmp = Float64(t_1 - z);
	end
	return tmp
end
function tmp_2 = code(x, y, z, t)
	t_1 = x * log(y);
	tmp = 0.0;
	if (x <= -3.75e+96)
		tmp = (log(t) + t_1) - y;
	elseif (x <= 4.8e-15)
		tmp = log(t) - (y + z);
	else
		tmp = t_1 - z;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_] := Block[{t$95$1 = N[(x * N[Log[y], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -3.75e+96], N[(N[(N[Log[t], $MachinePrecision] + t$95$1), $MachinePrecision] - y), $MachinePrecision], If[LessEqual[x, 4.8e-15], N[(N[Log[t], $MachinePrecision] - N[(y + z), $MachinePrecision]), $MachinePrecision], N[(t$95$1 - z), $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := x \cdot \log y\\
\mathbf{if}\;x \leq -3.75 \cdot 10^{+96}:\\
\;\;\;\;\left(\log t + t\_1\right) - y\\

\mathbf{elif}\;x \leq 4.8 \cdot 10^{-15}:\\
\;\;\;\;\log t - \left(y + z\right)\\

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


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

    1. Initial program 99.6%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in z around 0 88.3%

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

    if -3.7499999999999998e96 < x < 4.7999999999999999e-15

    1. Initial program 100.0%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0 96.0%

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

    if 4.7999999999999999e-15 < x

    1. Initial program 99.6%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0 99.6%

      \[\leadsto \color{blue}{\left(\log t + x \cdot \log y\right) - \left(y + z\right)} \]
    4. Step-by-step derivation
      1. +-commutative99.6%

        \[\leadsto \left(\log t + x \cdot \log y\right) - \color{blue}{\left(z + y\right)} \]
      2. associate--l+99.6%

        \[\leadsto \color{blue}{\log t + \left(x \cdot \log y - \left(z + y\right)\right)} \]
      3. +-commutative99.6%

        \[\leadsto \color{blue}{\left(x \cdot \log y - \left(z + y\right)\right) + \log t} \]
      4. associate--r-99.6%

        \[\leadsto \color{blue}{x \cdot \log y - \left(\left(z + y\right) - \log t\right)} \]
      5. +-commutative99.6%

        \[\leadsto x \cdot \log y - \left(\color{blue}{\left(y + z\right)} - \log t\right) \]
      6. associate-+r-99.6%

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      7. fma-neg99.6%

        \[\leadsto \color{blue}{\mathsf{fma}\left(x, \log y, -\left(y + \left(z - \log t\right)\right)\right)} \]
      8. associate-+r-99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\color{blue}{\left(\left(y + z\right) - \log t\right)}\right) \]
      9. +-commutative99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\left(\color{blue}{\left(z + y\right)} - \log t\right)\right) \]
      10. sub-neg99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\color{blue}{\left(\left(z + y\right) + \left(-\log t\right)\right)}\right) \]
      11. log-rec99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\left(\left(z + y\right) + \color{blue}{\log \left(\frac{1}{t}\right)}\right)\right) \]
      12. distribute-neg-in99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\left(-\left(z + y\right)\right) + \left(-\log \left(\frac{1}{t}\right)\right)}\right) \]
      13. +-commutative99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\color{blue}{\left(y + z\right)}\right) + \left(-\log \left(\frac{1}{t}\right)\right)\right) \]
      14. log-rec99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\left(y + z\right)\right) + \left(-\color{blue}{\left(-\log t\right)}\right)\right) \]
      15. remove-double-neg99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\left(y + z\right)\right) + \color{blue}{\log t}\right) \]
      16. +-commutative99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\log t + \left(-\left(y + z\right)\right)}\right) \]
      17. sub-neg99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\log t - \left(y + z\right)}\right) \]
    5. Simplified99.6%

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

      \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{-1 \cdot z}\right) \]
    7. Step-by-step derivation
      1. neg-mul-192.7%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{-z}\right) \]
    8. Simplified92.7%

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

      \[\leadsto \color{blue}{-1 \cdot \left(x \cdot \log \left(\frac{1}{y}\right)\right) - z} \]
    10. Step-by-step derivation
      1. log-rec92.7%

        \[\leadsto -1 \cdot \left(x \cdot \color{blue}{\left(-\log y\right)}\right) - z \]
      2. associate-*r*92.7%

        \[\leadsto \color{blue}{\left(-1 \cdot x\right) \cdot \left(-\log y\right)} - z \]
      3. neg-mul-192.7%

        \[\leadsto \color{blue}{\left(-x\right)} \cdot \left(-\log y\right) - z \]
      4. *-commutative92.7%

        \[\leadsto \color{blue}{\left(-\log y\right) \cdot \left(-x\right)} - z \]
    11. Simplified92.7%

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

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

Alternative 4: 87.2% accurate, 1.0× speedup?

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

\\
\begin{array}{l}
\mathbf{if}\;x \leq -7.5 \cdot 10^{+151}:\\
\;\;\;\;\mathsf{fma}\left(x, \log y, -z\right)\\

\mathbf{elif}\;x \leq 4.8 \cdot 10^{-15}:\\
\;\;\;\;\log t - \left(y + z\right)\\

\mathbf{else}:\\
\;\;\;\;x \cdot \log y - z\\


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

    1. Initial program 99.6%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0 99.6%

      \[\leadsto \color{blue}{\left(\log t + x \cdot \log y\right) - \left(y + z\right)} \]
    4. Step-by-step derivation
      1. +-commutative99.6%

        \[\leadsto \left(\log t + x \cdot \log y\right) - \color{blue}{\left(z + y\right)} \]
      2. associate--l+99.6%

        \[\leadsto \color{blue}{\log t + \left(x \cdot \log y - \left(z + y\right)\right)} \]
      3. +-commutative99.6%

        \[\leadsto \color{blue}{\left(x \cdot \log y - \left(z + y\right)\right) + \log t} \]
      4. associate--r-99.6%

        \[\leadsto \color{blue}{x \cdot \log y - \left(\left(z + y\right) - \log t\right)} \]
      5. +-commutative99.6%

        \[\leadsto x \cdot \log y - \left(\color{blue}{\left(y + z\right)} - \log t\right) \]
      6. associate-+r-99.6%

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      7. fma-neg99.6%

        \[\leadsto \color{blue}{\mathsf{fma}\left(x, \log y, -\left(y + \left(z - \log t\right)\right)\right)} \]
      8. associate-+r-99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\color{blue}{\left(\left(y + z\right) - \log t\right)}\right) \]
      9. +-commutative99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\left(\color{blue}{\left(z + y\right)} - \log t\right)\right) \]
      10. sub-neg99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\color{blue}{\left(\left(z + y\right) + \left(-\log t\right)\right)}\right) \]
      11. log-rec99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\left(\left(z + y\right) + \color{blue}{\log \left(\frac{1}{t}\right)}\right)\right) \]
      12. distribute-neg-in99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\left(-\left(z + y\right)\right) + \left(-\log \left(\frac{1}{t}\right)\right)}\right) \]
      13. +-commutative99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\color{blue}{\left(y + z\right)}\right) + \left(-\log \left(\frac{1}{t}\right)\right)\right) \]
      14. log-rec99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\left(y + z\right)\right) + \left(-\color{blue}{\left(-\log t\right)}\right)\right) \]
      15. remove-double-neg99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\left(y + z\right)\right) + \color{blue}{\log t}\right) \]
      16. +-commutative99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\log t + \left(-\left(y + z\right)\right)}\right) \]
      17. sub-neg99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\log t - \left(y + z\right)}\right) \]
    5. Simplified99.6%

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

      \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{-1 \cdot z}\right) \]
    7. Step-by-step derivation
      1. neg-mul-191.9%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{-z}\right) \]
    8. Simplified91.9%

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

    if -7.49999999999999977e151 < x < 4.7999999999999999e-15

    1. Initial program 100.0%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0 93.8%

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

    if 4.7999999999999999e-15 < x

    1. Initial program 99.6%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0 99.6%

      \[\leadsto \color{blue}{\left(\log t + x \cdot \log y\right) - \left(y + z\right)} \]
    4. Step-by-step derivation
      1. +-commutative99.6%

        \[\leadsto \left(\log t + x \cdot \log y\right) - \color{blue}{\left(z + y\right)} \]
      2. associate--l+99.6%

        \[\leadsto \color{blue}{\log t + \left(x \cdot \log y - \left(z + y\right)\right)} \]
      3. +-commutative99.6%

        \[\leadsto \color{blue}{\left(x \cdot \log y - \left(z + y\right)\right) + \log t} \]
      4. associate--r-99.6%

        \[\leadsto \color{blue}{x \cdot \log y - \left(\left(z + y\right) - \log t\right)} \]
      5. +-commutative99.6%

        \[\leadsto x \cdot \log y - \left(\color{blue}{\left(y + z\right)} - \log t\right) \]
      6. associate-+r-99.6%

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      7. fma-neg99.6%

        \[\leadsto \color{blue}{\mathsf{fma}\left(x, \log y, -\left(y + \left(z - \log t\right)\right)\right)} \]
      8. associate-+r-99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\color{blue}{\left(\left(y + z\right) - \log t\right)}\right) \]
      9. +-commutative99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\left(\color{blue}{\left(z + y\right)} - \log t\right)\right) \]
      10. sub-neg99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\color{blue}{\left(\left(z + y\right) + \left(-\log t\right)\right)}\right) \]
      11. log-rec99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\left(\left(z + y\right) + \color{blue}{\log \left(\frac{1}{t}\right)}\right)\right) \]
      12. distribute-neg-in99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\left(-\left(z + y\right)\right) + \left(-\log \left(\frac{1}{t}\right)\right)}\right) \]
      13. +-commutative99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\color{blue}{\left(y + z\right)}\right) + \left(-\log \left(\frac{1}{t}\right)\right)\right) \]
      14. log-rec99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\left(y + z\right)\right) + \left(-\color{blue}{\left(-\log t\right)}\right)\right) \]
      15. remove-double-neg99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\left(y + z\right)\right) + \color{blue}{\log t}\right) \]
      16. +-commutative99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\log t + \left(-\left(y + z\right)\right)}\right) \]
      17. sub-neg99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\log t - \left(y + z\right)}\right) \]
    5. Simplified99.6%

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

      \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{-1 \cdot z}\right) \]
    7. Step-by-step derivation
      1. neg-mul-192.7%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{-z}\right) \]
    8. Simplified92.7%

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

      \[\leadsto \color{blue}{-1 \cdot \left(x \cdot \log \left(\frac{1}{y}\right)\right) - z} \]
    10. Step-by-step derivation
      1. log-rec92.7%

        \[\leadsto -1 \cdot \left(x \cdot \color{blue}{\left(-\log y\right)}\right) - z \]
      2. associate-*r*92.7%

        \[\leadsto \color{blue}{\left(-1 \cdot x\right) \cdot \left(-\log y\right)} - z \]
      3. neg-mul-192.7%

        \[\leadsto \color{blue}{\left(-x\right)} \cdot \left(-\log y\right) - z \]
      4. *-commutative92.7%

        \[\leadsto \color{blue}{\left(-\log y\right) \cdot \left(-x\right)} - z \]
    11. Simplified92.7%

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

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

Alternative 5: 99.9% accurate, 1.0× speedup?

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

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

    \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
  2. Add Preprocessing
  3. Final simplification99.8%

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

Alternative 6: 59.4% accurate, 1.4× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := \log t - z\\ t_2 := \log t - y\\ t_3 := x \cdot \log y + z\\ \mathbf{if}\;x \leq -8.6 \cdot 10^{+105}:\\ \;\;\;\;t\_3\\ \mathbf{elif}\;x \leq -2.2 \cdot 10^{+30}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \leq -2.55 \cdot 10^{-70}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \leq 1.65 \cdot 10^{-236}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \leq 2.5 \cdot 10^{-194}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \leq 8.5 \cdot 10^{-111}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;x \leq 3.5 \cdot 10^{-15}:\\ \;\;\;\;t\_2\\ \mathbf{elif}\;x \leq 7000000000:\\ \;\;\;\;-z\\ \mathbf{else}:\\ \;\;\;\;t\_3\\ \end{array} \end{array} \]
(FPCore (x y z t)
 :precision binary64
 (let* ((t_1 (- (log t) z)) (t_2 (- (log t) y)) (t_3 (+ (* x (log y)) z)))
   (if (<= x -8.6e+105)
     t_3
     (if (<= x -2.2e+30)
       t_1
       (if (<= x -2.55e-70)
         t_2
         (if (<= x 1.65e-236)
           t_1
           (if (<= x 2.5e-194)
             t_2
             (if (<= x 8.5e-111)
               t_1
               (if (<= x 3.5e-15)
                 t_2
                 (if (<= x 7000000000.0) (- z) t_3))))))))))
double code(double x, double y, double z, double t) {
	double t_1 = log(t) - z;
	double t_2 = log(t) - y;
	double t_3 = (x * log(y)) + z;
	double tmp;
	if (x <= -8.6e+105) {
		tmp = t_3;
	} else if (x <= -2.2e+30) {
		tmp = t_1;
	} else if (x <= -2.55e-70) {
		tmp = t_2;
	} else if (x <= 1.65e-236) {
		tmp = t_1;
	} else if (x <= 2.5e-194) {
		tmp = t_2;
	} else if (x <= 8.5e-111) {
		tmp = t_1;
	} else if (x <= 3.5e-15) {
		tmp = t_2;
	} else if (x <= 7000000000.0) {
		tmp = -z;
	} else {
		tmp = t_3;
	}
	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) :: t_3
    real(8) :: tmp
    t_1 = log(t) - z
    t_2 = log(t) - y
    t_3 = (x * log(y)) + z
    if (x <= (-8.6d+105)) then
        tmp = t_3
    else if (x <= (-2.2d+30)) then
        tmp = t_1
    else if (x <= (-2.55d-70)) then
        tmp = t_2
    else if (x <= 1.65d-236) then
        tmp = t_1
    else if (x <= 2.5d-194) then
        tmp = t_2
    else if (x <= 8.5d-111) then
        tmp = t_1
    else if (x <= 3.5d-15) then
        tmp = t_2
    else if (x <= 7000000000.0d0) then
        tmp = -z
    else
        tmp = t_3
    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(t) - y;
	double t_3 = (x * Math.log(y)) + z;
	double tmp;
	if (x <= -8.6e+105) {
		tmp = t_3;
	} else if (x <= -2.2e+30) {
		tmp = t_1;
	} else if (x <= -2.55e-70) {
		tmp = t_2;
	} else if (x <= 1.65e-236) {
		tmp = t_1;
	} else if (x <= 2.5e-194) {
		tmp = t_2;
	} else if (x <= 8.5e-111) {
		tmp = t_1;
	} else if (x <= 3.5e-15) {
		tmp = t_2;
	} else if (x <= 7000000000.0) {
		tmp = -z;
	} else {
		tmp = t_3;
	}
	return tmp;
}
def code(x, y, z, t):
	t_1 = math.log(t) - z
	t_2 = math.log(t) - y
	t_3 = (x * math.log(y)) + z
	tmp = 0
	if x <= -8.6e+105:
		tmp = t_3
	elif x <= -2.2e+30:
		tmp = t_1
	elif x <= -2.55e-70:
		tmp = t_2
	elif x <= 1.65e-236:
		tmp = t_1
	elif x <= 2.5e-194:
		tmp = t_2
	elif x <= 8.5e-111:
		tmp = t_1
	elif x <= 3.5e-15:
		tmp = t_2
	elif x <= 7000000000.0:
		tmp = -z
	else:
		tmp = t_3
	return tmp
function code(x, y, z, t)
	t_1 = Float64(log(t) - z)
	t_2 = Float64(log(t) - y)
	t_3 = Float64(Float64(x * log(y)) + z)
	tmp = 0.0
	if (x <= -8.6e+105)
		tmp = t_3;
	elseif (x <= -2.2e+30)
		tmp = t_1;
	elseif (x <= -2.55e-70)
		tmp = t_2;
	elseif (x <= 1.65e-236)
		tmp = t_1;
	elseif (x <= 2.5e-194)
		tmp = t_2;
	elseif (x <= 8.5e-111)
		tmp = t_1;
	elseif (x <= 3.5e-15)
		tmp = t_2;
	elseif (x <= 7000000000.0)
		tmp = Float64(-z);
	else
		tmp = t_3;
	end
	return tmp
end
function tmp_2 = code(x, y, z, t)
	t_1 = log(t) - z;
	t_2 = log(t) - y;
	t_3 = (x * log(y)) + z;
	tmp = 0.0;
	if (x <= -8.6e+105)
		tmp = t_3;
	elseif (x <= -2.2e+30)
		tmp = t_1;
	elseif (x <= -2.55e-70)
		tmp = t_2;
	elseif (x <= 1.65e-236)
		tmp = t_1;
	elseif (x <= 2.5e-194)
		tmp = t_2;
	elseif (x <= 8.5e-111)
		tmp = t_1;
	elseif (x <= 3.5e-15)
		tmp = t_2;
	elseif (x <= 7000000000.0)
		tmp = -z;
	else
		tmp = t_3;
	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[t], $MachinePrecision] - y), $MachinePrecision]}, Block[{t$95$3 = N[(N[(x * N[Log[y], $MachinePrecision]), $MachinePrecision] + z), $MachinePrecision]}, If[LessEqual[x, -8.6e+105], t$95$3, If[LessEqual[x, -2.2e+30], t$95$1, If[LessEqual[x, -2.55e-70], t$95$2, If[LessEqual[x, 1.65e-236], t$95$1, If[LessEqual[x, 2.5e-194], t$95$2, If[LessEqual[x, 8.5e-111], t$95$1, If[LessEqual[x, 3.5e-15], t$95$2, If[LessEqual[x, 7000000000.0], (-z), t$95$3]]]]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := \log t - z\\
t_2 := \log t - y\\
t_3 := x \cdot \log y + z\\
\mathbf{if}\;x \leq -8.6 \cdot 10^{+105}:\\
\;\;\;\;t\_3\\

\mathbf{elif}\;x \leq -2.2 \cdot 10^{+30}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \leq -2.55 \cdot 10^{-70}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \leq 1.65 \cdot 10^{-236}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \leq 2.5 \cdot 10^{-194}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \leq 8.5 \cdot 10^{-111}:\\
\;\;\;\;t\_1\\

\mathbf{elif}\;x \leq 3.5 \cdot 10^{-15}:\\
\;\;\;\;t\_2\\

\mathbf{elif}\;x \leq 7000000000:\\
\;\;\;\;-z\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 4 regimes
  2. if x < -8.6000000000000003e105 or 7e9 < x

    1. Initial program 99.6%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0 99.6%

      \[\leadsto \color{blue}{\left(\log t + x \cdot \log y\right) - \left(y + z\right)} \]
    4. Step-by-step derivation
      1. +-commutative99.6%

        \[\leadsto \left(\log t + x \cdot \log y\right) - \color{blue}{\left(z + y\right)} \]
      2. associate--l+99.6%

        \[\leadsto \color{blue}{\log t + \left(x \cdot \log y - \left(z + y\right)\right)} \]
      3. +-commutative99.6%

        \[\leadsto \color{blue}{\left(x \cdot \log y - \left(z + y\right)\right) + \log t} \]
      4. associate--r-99.6%

        \[\leadsto \color{blue}{x \cdot \log y - \left(\left(z + y\right) - \log t\right)} \]
      5. +-commutative99.6%

        \[\leadsto x \cdot \log y - \left(\color{blue}{\left(y + z\right)} - \log t\right) \]
      6. associate-+r-99.6%

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      7. fma-neg99.6%

        \[\leadsto \color{blue}{\mathsf{fma}\left(x, \log y, -\left(y + \left(z - \log t\right)\right)\right)} \]
      8. associate-+r-99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\color{blue}{\left(\left(y + z\right) - \log t\right)}\right) \]
      9. +-commutative99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\left(\color{blue}{\left(z + y\right)} - \log t\right)\right) \]
      10. sub-neg99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\color{blue}{\left(\left(z + y\right) + \left(-\log t\right)\right)}\right) \]
      11. log-rec99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\left(\left(z + y\right) + \color{blue}{\log \left(\frac{1}{t}\right)}\right)\right) \]
      12. distribute-neg-in99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\left(-\left(z + y\right)\right) + \left(-\log \left(\frac{1}{t}\right)\right)}\right) \]
      13. +-commutative99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\color{blue}{\left(y + z\right)}\right) + \left(-\log \left(\frac{1}{t}\right)\right)\right) \]
      14. log-rec99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\left(y + z\right)\right) + \left(-\color{blue}{\left(-\log t\right)}\right)\right) \]
      15. remove-double-neg99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\left(y + z\right)\right) + \color{blue}{\log t}\right) \]
      16. +-commutative99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\log t + \left(-\left(y + z\right)\right)}\right) \]
      17. sub-neg99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\log t - \left(y + z\right)}\right) \]
    5. Simplified99.6%

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

      \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{-1 \cdot z}\right) \]
    7. Step-by-step derivation
      1. neg-mul-188.4%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{-z}\right) \]
    8. Simplified88.4%

      \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{-z}\right) \]
    9. Step-by-step derivation
      1. fma-undefine88.3%

        \[\leadsto \color{blue}{x \cdot \log y + \left(-z\right)} \]
      2. add-sqr-sqrt39.7%

        \[\leadsto x \cdot \log y + \color{blue}{\sqrt{-z} \cdot \sqrt{-z}} \]
      3. sqrt-unprod66.4%

        \[\leadsto x \cdot \log y + \color{blue}{\sqrt{\left(-z\right) \cdot \left(-z\right)}} \]
      4. sqr-neg66.4%

        \[\leadsto x \cdot \log y + \sqrt{\color{blue}{z \cdot z}} \]
      5. sqrt-unprod40.8%

        \[\leadsto x \cdot \log y + \color{blue}{\sqrt{z} \cdot \sqrt{z}} \]
      6. add-sqr-sqrt72.6%

        \[\leadsto x \cdot \log y + \color{blue}{z} \]
    10. Applied egg-rr72.6%

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

    if -8.6000000000000003e105 < x < -2.2e30 or -2.55000000000000013e-70 < x < 1.6500000000000001e-236 or 2.5000000000000001e-194 < x < 8.5000000000000003e-111

    1. Initial program 100.0%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in z around inf 68.5%

      \[\leadsto \color{blue}{-1 \cdot z} + \log t \]
    4. Step-by-step derivation
      1. neg-mul-168.5%

        \[\leadsto \color{blue}{\left(-z\right)} + \log t \]
    5. Simplified68.5%

      \[\leadsto \color{blue}{\left(-z\right)} + \log t \]
    6. Taylor expanded in z around 0 68.5%

      \[\leadsto \color{blue}{\log t + -1 \cdot z} \]
    7. Step-by-step derivation
      1. neg-mul-168.5%

        \[\leadsto \log t + \color{blue}{\left(-z\right)} \]
      2. sub-neg68.5%

        \[\leadsto \color{blue}{\log t - z} \]
    8. Simplified68.5%

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

    if -2.2e30 < x < -2.55000000000000013e-70 or 1.6500000000000001e-236 < x < 2.5000000000000001e-194 or 8.5000000000000003e-111 < x < 3.5000000000000001e-15

    1. Initial program 99.9%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in y around inf 79.3%

      \[\leadsto \color{blue}{-1 \cdot y} + \log t \]
    4. Step-by-step derivation
      1. mul-1-neg79.3%

        \[\leadsto \color{blue}{\left(-y\right)} + \log t \]
    5. Simplified79.3%

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

    if 3.5000000000000001e-15 < x < 7e9

    1. Initial program 100.0%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. add0100.0%

        \[\leadsto \left(\left(\color{blue}{\left(x \cdot \log y + 0\right)} - y\right) - z\right) + \log t \]
      2. flip3-+100.0%

        \[\leadsto \left(\left(\color{blue}{\frac{{\left(x \cdot \log y\right)}^{3} + {0}^{3}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)}} - y\right) - z\right) + \log t \]
      3. metadata-eval100.0%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3} + \color{blue}{0}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      4. add0100.0%

        \[\leadsto \left(\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{3}}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      5. pow2100.0%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3}}{\color{blue}{{\left(x \cdot \log y\right)}^{2}} + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      6. metadata-eval100.0%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2} + \left(\color{blue}{0} - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
    4. Applied egg-rr100.0%

      \[\leadsto \left(\left(\color{blue}{\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}} - y\right) - z\right) + \log t \]
    5. Step-by-step derivation
      1. clear-num100.0%

        \[\leadsto \left(\left(\color{blue}{\frac{1}{\frac{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}{{\left(x \cdot \log y\right)}^{3}}}} - y\right) - z\right) + \log t \]
      2. inv-pow100.0%

        \[\leadsto \left(\left(\color{blue}{{\left(\frac{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1}} - y\right) - z\right) + \log t \]
      3. sub0-neg100.0%

        \[\leadsto \left(\left({\left(\frac{{\left(x \cdot \log y\right)}^{2} + \color{blue}{\left(-\left(x \cdot \log y\right) \cdot 0\right)}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      4. mul0-rgt100.0%

        \[\leadsto \left(\left({\left(\frac{{\left(x \cdot \log y\right)}^{2} + \left(-\color{blue}{0}\right)}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      5. sub-neg100.0%

        \[\leadsto \left(\left({\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{2} - 0}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      6. --rgt-identity100.0%

        \[\leadsto \left(\left({\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{2}}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      7. clear-num100.0%

        \[\leadsto \left(\left({\color{blue}{\left(\frac{1}{\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2}}}\right)}}^{-1} - y\right) - z\right) + \log t \]
      8. pow-div100.0%

        \[\leadsto \left(\left({\left(\frac{1}{\color{blue}{{\left(x \cdot \log y\right)}^{\left(3 - 2\right)}}}\right)}^{-1} - y\right) - z\right) + \log t \]
      9. metadata-eval100.0%

        \[\leadsto \left(\left({\left(\frac{1}{{\left(x \cdot \log y\right)}^{\color{blue}{1}}}\right)}^{-1} - y\right) - z\right) + \log t \]
      10. pow1100.0%

        \[\leadsto \left(\left({\left(\frac{1}{\color{blue}{x \cdot \log y}}\right)}^{-1} - y\right) - z\right) + \log t \]
    6. Applied egg-rr100.0%

      \[\leadsto \left(\left(\color{blue}{{\left(\frac{1}{x \cdot \log y}\right)}^{-1}} - y\right) - z\right) + \log t \]
    7. Taylor expanded in z around inf 100.0%

      \[\leadsto \color{blue}{-1 \cdot z} \]
    8. Step-by-step derivation
      1. neg-mul-1100.0%

        \[\leadsto \color{blue}{-z} \]
    9. Simplified100.0%

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq -8.6 \cdot 10^{+105}:\\ \;\;\;\;x \cdot \log y + z\\ \mathbf{elif}\;x \leq -2.2 \cdot 10^{+30}:\\ \;\;\;\;\log t - z\\ \mathbf{elif}\;x \leq -2.55 \cdot 10^{-70}:\\ \;\;\;\;\log t - y\\ \mathbf{elif}\;x \leq 1.65 \cdot 10^{-236}:\\ \;\;\;\;\log t - z\\ \mathbf{elif}\;x \leq 2.5 \cdot 10^{-194}:\\ \;\;\;\;\log t - y\\ \mathbf{elif}\;x \leq 8.5 \cdot 10^{-111}:\\ \;\;\;\;\log t - z\\ \mathbf{elif}\;x \leq 3.5 \cdot 10^{-15}:\\ \;\;\;\;\log t - y\\ \mathbf{elif}\;x \leq 7000000000:\\ \;\;\;\;-z\\ \mathbf{else}:\\ \;\;\;\;x \cdot \log y + z\\ \end{array} \]
  5. Add Preprocessing

Alternative 7: 83.2% accurate, 1.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq -5.5 \cdot 10^{+153} \lor \neg \left(x \leq 2.7 \cdot 10^{+84}\right):\\ \;\;\;\;x \cdot \log y + z\\ \mathbf{else}:\\ \;\;\;\;\log t - \left(y + z\right)\\ \end{array} \end{array} \]
(FPCore (x y z t)
 :precision binary64
 (if (or (<= x -5.5e+153) (not (<= x 2.7e+84)))
   (+ (* x (log y)) z)
   (- (log t) (+ y z))))
double code(double x, double y, double z, double t) {
	double tmp;
	if ((x <= -5.5e+153) || !(x <= 2.7e+84)) {
		tmp = (x * log(y)) + z;
	} else {
		tmp = log(t) - (y + 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) :: tmp
    if ((x <= (-5.5d+153)) .or. (.not. (x <= 2.7d+84))) then
        tmp = (x * log(y)) + z
    else
        tmp = log(t) - (y + z)
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t) {
	double tmp;
	if ((x <= -5.5e+153) || !(x <= 2.7e+84)) {
		tmp = (x * Math.log(y)) + z;
	} else {
		tmp = Math.log(t) - (y + z);
	}
	return tmp;
}
def code(x, y, z, t):
	tmp = 0
	if (x <= -5.5e+153) or not (x <= 2.7e+84):
		tmp = (x * math.log(y)) + z
	else:
		tmp = math.log(t) - (y + z)
	return tmp
function code(x, y, z, t)
	tmp = 0.0
	if ((x <= -5.5e+153) || !(x <= 2.7e+84))
		tmp = Float64(Float64(x * log(y)) + z);
	else
		tmp = Float64(log(t) - Float64(y + z));
	end
	return tmp
end
function tmp_2 = code(x, y, z, t)
	tmp = 0.0;
	if ((x <= -5.5e+153) || ~((x <= 2.7e+84)))
		tmp = (x * log(y)) + z;
	else
		tmp = log(t) - (y + z);
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_] := If[Or[LessEqual[x, -5.5e+153], N[Not[LessEqual[x, 2.7e+84]], $MachinePrecision]], N[(N[(x * N[Log[y], $MachinePrecision]), $MachinePrecision] + z), $MachinePrecision], N[(N[Log[t], $MachinePrecision] - N[(y + z), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;x \leq -5.5 \cdot 10^{+153} \lor \neg \left(x \leq 2.7 \cdot 10^{+84}\right):\\
\;\;\;\;x \cdot \log y + z\\

\mathbf{else}:\\
\;\;\;\;\log t - \left(y + z\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if x < -5.5000000000000003e153 or 2.7e84 < x

    1. Initial program 99.6%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0 99.6%

      \[\leadsto \color{blue}{\left(\log t + x \cdot \log y\right) - \left(y + z\right)} \]
    4. Step-by-step derivation
      1. +-commutative99.6%

        \[\leadsto \left(\log t + x \cdot \log y\right) - \color{blue}{\left(z + y\right)} \]
      2. associate--l+99.6%

        \[\leadsto \color{blue}{\log t + \left(x \cdot \log y - \left(z + y\right)\right)} \]
      3. +-commutative99.6%

        \[\leadsto \color{blue}{\left(x \cdot \log y - \left(z + y\right)\right) + \log t} \]
      4. associate--r-99.6%

        \[\leadsto \color{blue}{x \cdot \log y - \left(\left(z + y\right) - \log t\right)} \]
      5. +-commutative99.6%

        \[\leadsto x \cdot \log y - \left(\color{blue}{\left(y + z\right)} - \log t\right) \]
      6. associate-+r-99.6%

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      7. fma-neg99.6%

        \[\leadsto \color{blue}{\mathsf{fma}\left(x, \log y, -\left(y + \left(z - \log t\right)\right)\right)} \]
      8. associate-+r-99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\color{blue}{\left(\left(y + z\right) - \log t\right)}\right) \]
      9. +-commutative99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\left(\color{blue}{\left(z + y\right)} - \log t\right)\right) \]
      10. sub-neg99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\color{blue}{\left(\left(z + y\right) + \left(-\log t\right)\right)}\right) \]
      11. log-rec99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\left(\left(z + y\right) + \color{blue}{\log \left(\frac{1}{t}\right)}\right)\right) \]
      12. distribute-neg-in99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\left(-\left(z + y\right)\right) + \left(-\log \left(\frac{1}{t}\right)\right)}\right) \]
      13. +-commutative99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\color{blue}{\left(y + z\right)}\right) + \left(-\log \left(\frac{1}{t}\right)\right)\right) \]
      14. log-rec99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\left(y + z\right)\right) + \left(-\color{blue}{\left(-\log t\right)}\right)\right) \]
      15. remove-double-neg99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\left(y + z\right)\right) + \color{blue}{\log t}\right) \]
      16. +-commutative99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\log t + \left(-\left(y + z\right)\right)}\right) \]
      17. sub-neg99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\log t - \left(y + z\right)}\right) \]
    5. Simplified99.6%

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

      \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{-1 \cdot z}\right) \]
    7. Step-by-step derivation
      1. neg-mul-196.2%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{-z}\right) \]
    8. Simplified96.2%

      \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{-z}\right) \]
    9. Step-by-step derivation
      1. fma-undefine96.2%

        \[\leadsto \color{blue}{x \cdot \log y + \left(-z\right)} \]
      2. add-sqr-sqrt41.5%

        \[\leadsto x \cdot \log y + \color{blue}{\sqrt{-z} \cdot \sqrt{-z}} \]
      3. sqrt-unprod72.5%

        \[\leadsto x \cdot \log y + \color{blue}{\sqrt{\left(-z\right) \cdot \left(-z\right)}} \]
      4. sqr-neg72.5%

        \[\leadsto x \cdot \log y + \sqrt{\color{blue}{z \cdot z}} \]
      5. sqrt-unprod47.0%

        \[\leadsto x \cdot \log y + \color{blue}{\sqrt{z} \cdot \sqrt{z}} \]
      6. add-sqr-sqrt81.8%

        \[\leadsto x \cdot \log y + \color{blue}{z} \]
    10. Applied egg-rr81.8%

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

    if -5.5000000000000003e153 < x < 2.7e84

    1. Initial program 99.9%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0 90.7%

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq -5.5 \cdot 10^{+153} \lor \neg \left(x \leq 2.7 \cdot 10^{+84}\right):\\ \;\;\;\;x \cdot \log y + z\\ \mathbf{else}:\\ \;\;\;\;\log t - \left(y + z\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 8: 87.2% accurate, 1.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq -9 \cdot 10^{+151} \lor \neg \left(x \leq 4.8 \cdot 10^{-15}\right):\\ \;\;\;\;x \cdot \log y - z\\ \mathbf{else}:\\ \;\;\;\;\log t - \left(y + z\right)\\ \end{array} \end{array} \]
(FPCore (x y z t)
 :precision binary64
 (if (or (<= x -9e+151) (not (<= x 4.8e-15)))
   (- (* x (log y)) z)
   (- (log t) (+ y z))))
double code(double x, double y, double z, double t) {
	double tmp;
	if ((x <= -9e+151) || !(x <= 4.8e-15)) {
		tmp = (x * log(y)) - z;
	} else {
		tmp = log(t) - (y + 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) :: tmp
    if ((x <= (-9d+151)) .or. (.not. (x <= 4.8d-15))) then
        tmp = (x * log(y)) - z
    else
        tmp = log(t) - (y + z)
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t) {
	double tmp;
	if ((x <= -9e+151) || !(x <= 4.8e-15)) {
		tmp = (x * Math.log(y)) - z;
	} else {
		tmp = Math.log(t) - (y + z);
	}
	return tmp;
}
def code(x, y, z, t):
	tmp = 0
	if (x <= -9e+151) or not (x <= 4.8e-15):
		tmp = (x * math.log(y)) - z
	else:
		tmp = math.log(t) - (y + z)
	return tmp
function code(x, y, z, t)
	tmp = 0.0
	if ((x <= -9e+151) || !(x <= 4.8e-15))
		tmp = Float64(Float64(x * log(y)) - z);
	else
		tmp = Float64(log(t) - Float64(y + z));
	end
	return tmp
end
function tmp_2 = code(x, y, z, t)
	tmp = 0.0;
	if ((x <= -9e+151) || ~((x <= 4.8e-15)))
		tmp = (x * log(y)) - z;
	else
		tmp = log(t) - (y + z);
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_] := If[Or[LessEqual[x, -9e+151], N[Not[LessEqual[x, 4.8e-15]], $MachinePrecision]], N[(N[(x * N[Log[y], $MachinePrecision]), $MachinePrecision] - z), $MachinePrecision], N[(N[Log[t], $MachinePrecision] - N[(y + z), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;x \leq -9 \cdot 10^{+151} \lor \neg \left(x \leq 4.8 \cdot 10^{-15}\right):\\
\;\;\;\;x \cdot \log y - z\\

\mathbf{else}:\\
\;\;\;\;\log t - \left(y + z\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if x < -8.9999999999999997e151 or 4.7999999999999999e-15 < x

    1. Initial program 99.6%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0 99.6%

      \[\leadsto \color{blue}{\left(\log t + x \cdot \log y\right) - \left(y + z\right)} \]
    4. Step-by-step derivation
      1. +-commutative99.6%

        \[\leadsto \left(\log t + x \cdot \log y\right) - \color{blue}{\left(z + y\right)} \]
      2. associate--l+99.6%

        \[\leadsto \color{blue}{\log t + \left(x \cdot \log y - \left(z + y\right)\right)} \]
      3. +-commutative99.6%

        \[\leadsto \color{blue}{\left(x \cdot \log y - \left(z + y\right)\right) + \log t} \]
      4. associate--r-99.6%

        \[\leadsto \color{blue}{x \cdot \log y - \left(\left(z + y\right) - \log t\right)} \]
      5. +-commutative99.6%

        \[\leadsto x \cdot \log y - \left(\color{blue}{\left(y + z\right)} - \log t\right) \]
      6. associate-+r-99.6%

        \[\leadsto x \cdot \log y - \color{blue}{\left(y + \left(z - \log t\right)\right)} \]
      7. fma-neg99.6%

        \[\leadsto \color{blue}{\mathsf{fma}\left(x, \log y, -\left(y + \left(z - \log t\right)\right)\right)} \]
      8. associate-+r-99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\color{blue}{\left(\left(y + z\right) - \log t\right)}\right) \]
      9. +-commutative99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\left(\color{blue}{\left(z + y\right)} - \log t\right)\right) \]
      10. sub-neg99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\color{blue}{\left(\left(z + y\right) + \left(-\log t\right)\right)}\right) \]
      11. log-rec99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, -\left(\left(z + y\right) + \color{blue}{\log \left(\frac{1}{t}\right)}\right)\right) \]
      12. distribute-neg-in99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\left(-\left(z + y\right)\right) + \left(-\log \left(\frac{1}{t}\right)\right)}\right) \]
      13. +-commutative99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\color{blue}{\left(y + z\right)}\right) + \left(-\log \left(\frac{1}{t}\right)\right)\right) \]
      14. log-rec99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\left(y + z\right)\right) + \left(-\color{blue}{\left(-\log t\right)}\right)\right) \]
      15. remove-double-neg99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \left(-\left(y + z\right)\right) + \color{blue}{\log t}\right) \]
      16. +-commutative99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\log t + \left(-\left(y + z\right)\right)}\right) \]
      17. sub-neg99.6%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{\log t - \left(y + z\right)}\right) \]
    5. Simplified99.6%

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

      \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{-1 \cdot z}\right) \]
    7. Step-by-step derivation
      1. neg-mul-192.4%

        \[\leadsto \mathsf{fma}\left(x, \log y, \color{blue}{-z}\right) \]
    8. Simplified92.4%

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

      \[\leadsto \color{blue}{-1 \cdot \left(x \cdot \log \left(\frac{1}{y}\right)\right) - z} \]
    10. Step-by-step derivation
      1. log-rec92.4%

        \[\leadsto -1 \cdot \left(x \cdot \color{blue}{\left(-\log y\right)}\right) - z \]
      2. associate-*r*92.4%

        \[\leadsto \color{blue}{\left(-1 \cdot x\right) \cdot \left(-\log y\right)} - z \]
      3. neg-mul-192.4%

        \[\leadsto \color{blue}{\left(-x\right)} \cdot \left(-\log y\right) - z \]
      4. *-commutative92.4%

        \[\leadsto \color{blue}{\left(-\log y\right) \cdot \left(-x\right)} - z \]
    11. Simplified92.4%

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

    if -8.9999999999999997e151 < x < 4.7999999999999999e-15

    1. Initial program 100.0%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in x around 0 93.8%

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq -9 \cdot 10^{+151} \lor \neg \left(x \leq 4.8 \cdot 10^{-15}\right):\\ \;\;\;\;x \cdot \log y - z\\ \mathbf{else}:\\ \;\;\;\;\log t - \left(y + z\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 9: 47.3% accurate, 1.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;y \leq 3.8 \cdot 10^{-49}:\\ \;\;\;\;-z\\ \mathbf{elif}\;y \leq 2.1 \cdot 10^{-13}:\\ \;\;\;\;\log t + z\\ \mathbf{elif}\;y \leq 2 \cdot 10^{+59}:\\ \;\;\;\;-z\\ \mathbf{else}:\\ \;\;\;\;-y\\ \end{array} \end{array} \]
(FPCore (x y z t)
 :precision binary64
 (if (<= y 3.8e-49)
   (- z)
   (if (<= y 2.1e-13) (+ (log t) z) (if (<= y 2e+59) (- z) (- y)))))
double code(double x, double y, double z, double t) {
	double tmp;
	if (y <= 3.8e-49) {
		tmp = -z;
	} else if (y <= 2.1e-13) {
		tmp = log(t) + z;
	} else if (y <= 2e+59) {
		tmp = -z;
	} else {
		tmp = -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 <= 3.8d-49) then
        tmp = -z
    else if (y <= 2.1d-13) then
        tmp = log(t) + z
    else if (y <= 2d+59) then
        tmp = -z
    else
        tmp = -y
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t) {
	double tmp;
	if (y <= 3.8e-49) {
		tmp = -z;
	} else if (y <= 2.1e-13) {
		tmp = Math.log(t) + z;
	} else if (y <= 2e+59) {
		tmp = -z;
	} else {
		tmp = -y;
	}
	return tmp;
}
def code(x, y, z, t):
	tmp = 0
	if y <= 3.8e-49:
		tmp = -z
	elif y <= 2.1e-13:
		tmp = math.log(t) + z
	elif y <= 2e+59:
		tmp = -z
	else:
		tmp = -y
	return tmp
function code(x, y, z, t)
	tmp = 0.0
	if (y <= 3.8e-49)
		tmp = Float64(-z);
	elseif (y <= 2.1e-13)
		tmp = Float64(log(t) + z);
	elseif (y <= 2e+59)
		tmp = Float64(-z);
	else
		tmp = Float64(-y);
	end
	return tmp
end
function tmp_2 = code(x, y, z, t)
	tmp = 0.0;
	if (y <= 3.8e-49)
		tmp = -z;
	elseif (y <= 2.1e-13)
		tmp = log(t) + z;
	elseif (y <= 2e+59)
		tmp = -z;
	else
		tmp = -y;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_] := If[LessEqual[y, 3.8e-49], (-z), If[LessEqual[y, 2.1e-13], N[(N[Log[t], $MachinePrecision] + z), $MachinePrecision], If[LessEqual[y, 2e+59], (-z), (-y)]]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;y \leq 3.8 \cdot 10^{-49}:\\
\;\;\;\;-z\\

\mathbf{elif}\;y \leq 2.1 \cdot 10^{-13}:\\
\;\;\;\;\log t + z\\

\mathbf{elif}\;y \leq 2 \cdot 10^{+59}:\\
\;\;\;\;-z\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if y < 3.7999999999999997e-49 or 2.09999999999999989e-13 < y < 1.99999999999999994e59

    1. Initial program 99.8%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. add099.8%

        \[\leadsto \left(\left(\color{blue}{\left(x \cdot \log y + 0\right)} - y\right) - z\right) + \log t \]
      2. flip3-+37.8%

        \[\leadsto \left(\left(\color{blue}{\frac{{\left(x \cdot \log y\right)}^{3} + {0}^{3}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)}} - y\right) - z\right) + \log t \]
      3. metadata-eval37.8%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3} + \color{blue}{0}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      4. add037.8%

        \[\leadsto \left(\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{3}}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      5. pow237.8%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3}}{\color{blue}{{\left(x \cdot \log y\right)}^{2}} + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      6. metadata-eval37.8%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2} + \left(\color{blue}{0} - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
    4. Applied egg-rr37.8%

      \[\leadsto \left(\left(\color{blue}{\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}} - y\right) - z\right) + \log t \]
    5. Step-by-step derivation
      1. clear-num37.8%

        \[\leadsto \left(\left(\color{blue}{\frac{1}{\frac{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}{{\left(x \cdot \log y\right)}^{3}}}} - y\right) - z\right) + \log t \]
      2. inv-pow37.8%

        \[\leadsto \left(\left(\color{blue}{{\left(\frac{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1}} - y\right) - z\right) + \log t \]
      3. sub0-neg37.8%

        \[\leadsto \left(\left({\left(\frac{{\left(x \cdot \log y\right)}^{2} + \color{blue}{\left(-\left(x \cdot \log y\right) \cdot 0\right)}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      4. mul0-rgt37.8%

        \[\leadsto \left(\left({\left(\frac{{\left(x \cdot \log y\right)}^{2} + \left(-\color{blue}{0}\right)}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      5. sub-neg37.8%

        \[\leadsto \left(\left({\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{2} - 0}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      6. --rgt-identity37.8%

        \[\leadsto \left(\left({\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{2}}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      7. clear-num37.8%

        \[\leadsto \left(\left({\color{blue}{\left(\frac{1}{\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2}}}\right)}}^{-1} - y\right) - z\right) + \log t \]
      8. pow-div99.7%

        \[\leadsto \left(\left({\left(\frac{1}{\color{blue}{{\left(x \cdot \log y\right)}^{\left(3 - 2\right)}}}\right)}^{-1} - y\right) - z\right) + \log t \]
      9. metadata-eval99.7%

        \[\leadsto \left(\left({\left(\frac{1}{{\left(x \cdot \log y\right)}^{\color{blue}{1}}}\right)}^{-1} - y\right) - z\right) + \log t \]
      10. pow199.7%

        \[\leadsto \left(\left({\left(\frac{1}{\color{blue}{x \cdot \log y}}\right)}^{-1} - y\right) - z\right) + \log t \]
    6. Applied egg-rr99.7%

      \[\leadsto \left(\left(\color{blue}{{\left(\frac{1}{x \cdot \log y}\right)}^{-1}} - y\right) - z\right) + \log t \]
    7. Taylor expanded in z around inf 41.1%

      \[\leadsto \color{blue}{-1 \cdot z} \]
    8. Step-by-step derivation
      1. neg-mul-141.1%

        \[\leadsto \color{blue}{-z} \]
    9. Simplified41.1%

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

    if 3.7999999999999997e-49 < y < 2.09999999999999989e-13

    1. Initial program 100.0%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in z around inf 60.3%

      \[\leadsto \color{blue}{-1 \cdot z} + \log t \]
    4. Step-by-step derivation
      1. neg-mul-160.3%

        \[\leadsto \color{blue}{\left(-z\right)} + \log t \]
    5. Simplified60.3%

      \[\leadsto \color{blue}{\left(-z\right)} + \log t \]
    6. Step-by-step derivation
      1. *-un-lft-identity60.3%

        \[\leadsto \color{blue}{1 \cdot \left(\left(-z\right) + \log t\right)} \]
      2. add-sqr-sqrt48.3%

        \[\leadsto 1 \cdot \left(\color{blue}{\sqrt{-z} \cdot \sqrt{-z}} + \log t\right) \]
      3. sqrt-unprod55.3%

        \[\leadsto 1 \cdot \left(\color{blue}{\sqrt{\left(-z\right) \cdot \left(-z\right)}} + \log t\right) \]
      4. sqr-neg55.3%

        \[\leadsto 1 \cdot \left(\sqrt{\color{blue}{z \cdot z}} + \log t\right) \]
      5. sqrt-unprod12.4%

        \[\leadsto 1 \cdot \left(\color{blue}{\sqrt{z} \cdot \sqrt{z}} + \log t\right) \]
      6. add-sqr-sqrt47.5%

        \[\leadsto 1 \cdot \left(\color{blue}{z} + \log t\right) \]
    7. Applied egg-rr47.5%

      \[\leadsto \color{blue}{1 \cdot \left(z + \log t\right)} \]
    8. Step-by-step derivation
      1. *-lft-identity47.5%

        \[\leadsto \color{blue}{z + \log t} \]
      2. +-commutative47.5%

        \[\leadsto \color{blue}{\log t + z} \]
    9. Simplified47.5%

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

    if 1.99999999999999994e59 < y

    1. Initial program 99.8%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. add099.8%

        \[\leadsto \left(\left(\color{blue}{\left(x \cdot \log y + 0\right)} - y\right) - z\right) + \log t \]
      2. flip3-+40.9%

        \[\leadsto \left(\left(\color{blue}{\frac{{\left(x \cdot \log y\right)}^{3} + {0}^{3}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)}} - y\right) - z\right) + \log t \]
      3. metadata-eval40.9%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3} + \color{blue}{0}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      4. add040.9%

        \[\leadsto \left(\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{3}}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      5. pow240.9%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3}}{\color{blue}{{\left(x \cdot \log y\right)}^{2}} + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      6. metadata-eval40.9%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2} + \left(\color{blue}{0} - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
    4. Applied egg-rr40.9%

      \[\leadsto \left(\left(\color{blue}{\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}} - y\right) - z\right) + \log t \]
    5. Step-by-step derivation
      1. clear-num40.9%

        \[\leadsto \left(\left(\color{blue}{\frac{1}{\frac{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}{{\left(x \cdot \log y\right)}^{3}}}} - y\right) - z\right) + \log t \]
      2. inv-pow40.9%

        \[\leadsto \left(\left(\color{blue}{{\left(\frac{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1}} - y\right) - z\right) + \log t \]
      3. sub0-neg40.9%

        \[\leadsto \left(\left({\left(\frac{{\left(x \cdot \log y\right)}^{2} + \color{blue}{\left(-\left(x \cdot \log y\right) \cdot 0\right)}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      4. mul0-rgt40.9%

        \[\leadsto \left(\left({\left(\frac{{\left(x \cdot \log y\right)}^{2} + \left(-\color{blue}{0}\right)}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      5. sub-neg40.9%

        \[\leadsto \left(\left({\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{2} - 0}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      6. --rgt-identity40.9%

        \[\leadsto \left(\left({\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{2}}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      7. clear-num40.9%

        \[\leadsto \left(\left({\color{blue}{\left(\frac{1}{\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2}}}\right)}}^{-1} - y\right) - z\right) + \log t \]
      8. pow-div99.8%

        \[\leadsto \left(\left({\left(\frac{1}{\color{blue}{{\left(x \cdot \log y\right)}^{\left(3 - 2\right)}}}\right)}^{-1} - y\right) - z\right) + \log t \]
      9. metadata-eval99.8%

        \[\leadsto \left(\left({\left(\frac{1}{{\left(x \cdot \log y\right)}^{\color{blue}{1}}}\right)}^{-1} - y\right) - z\right) + \log t \]
      10. pow199.8%

        \[\leadsto \left(\left({\left(\frac{1}{\color{blue}{x \cdot \log y}}\right)}^{-1} - y\right) - z\right) + \log t \]
    6. Applied egg-rr99.8%

      \[\leadsto \left(\left(\color{blue}{{\left(\frac{1}{x \cdot \log y}\right)}^{-1}} - y\right) - z\right) + \log t \]
    7. Taylor expanded in y around inf 61.6%

      \[\leadsto \color{blue}{-1 \cdot y} \]
    8. Step-by-step derivation
      1. neg-mul-161.6%

        \[\leadsto \color{blue}{-y} \]
    9. Simplified61.6%

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \leq 3.8 \cdot 10^{-49}:\\ \;\;\;\;-z\\ \mathbf{elif}\;y \leq 2.1 \cdot 10^{-13}:\\ \;\;\;\;\log t + z\\ \mathbf{elif}\;y \leq 2 \cdot 10^{+59}:\\ \;\;\;\;-z\\ \mathbf{else}:\\ \;\;\;\;-y\\ \end{array} \]
  5. Add Preprocessing

Alternative 10: 47.4% accurate, 1.9× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;y \leq 1.8 \cdot 10^{-49}:\\ \;\;\;\;-z\\ \mathbf{elif}\;y \leq 6.2 \cdot 10^{-13}:\\ \;\;\;\;\log t\\ \mathbf{elif}\;y \leq 1.02 \cdot 10^{+57}:\\ \;\;\;\;-z\\ \mathbf{else}:\\ \;\;\;\;-y\\ \end{array} \end{array} \]
(FPCore (x y z t)
 :precision binary64
 (if (<= y 1.8e-49)
   (- z)
   (if (<= y 6.2e-13) (log t) (if (<= y 1.02e+57) (- z) (- y)))))
double code(double x, double y, double z, double t) {
	double tmp;
	if (y <= 1.8e-49) {
		tmp = -z;
	} else if (y <= 6.2e-13) {
		tmp = log(t);
	} else if (y <= 1.02e+57) {
		tmp = -z;
	} else {
		tmp = -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 <= 1.8d-49) then
        tmp = -z
    else if (y <= 6.2d-13) then
        tmp = log(t)
    else if (y <= 1.02d+57) then
        tmp = -z
    else
        tmp = -y
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t) {
	double tmp;
	if (y <= 1.8e-49) {
		tmp = -z;
	} else if (y <= 6.2e-13) {
		tmp = Math.log(t);
	} else if (y <= 1.02e+57) {
		tmp = -z;
	} else {
		tmp = -y;
	}
	return tmp;
}
def code(x, y, z, t):
	tmp = 0
	if y <= 1.8e-49:
		tmp = -z
	elif y <= 6.2e-13:
		tmp = math.log(t)
	elif y <= 1.02e+57:
		tmp = -z
	else:
		tmp = -y
	return tmp
function code(x, y, z, t)
	tmp = 0.0
	if (y <= 1.8e-49)
		tmp = Float64(-z);
	elseif (y <= 6.2e-13)
		tmp = log(t);
	elseif (y <= 1.02e+57)
		tmp = Float64(-z);
	else
		tmp = Float64(-y);
	end
	return tmp
end
function tmp_2 = code(x, y, z, t)
	tmp = 0.0;
	if (y <= 1.8e-49)
		tmp = -z;
	elseif (y <= 6.2e-13)
		tmp = log(t);
	elseif (y <= 1.02e+57)
		tmp = -z;
	else
		tmp = -y;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_] := If[LessEqual[y, 1.8e-49], (-z), If[LessEqual[y, 6.2e-13], N[Log[t], $MachinePrecision], If[LessEqual[y, 1.02e+57], (-z), (-y)]]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;y \leq 1.8 \cdot 10^{-49}:\\
\;\;\;\;-z\\

\mathbf{elif}\;y \leq 6.2 \cdot 10^{-13}:\\
\;\;\;\;\log t\\

\mathbf{elif}\;y \leq 1.02 \cdot 10^{+57}:\\
\;\;\;\;-z\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if y < 1.79999999999999985e-49 or 6.1999999999999998e-13 < y < 1.02e57

    1. Initial program 99.8%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. add099.8%

        \[\leadsto \left(\left(\color{blue}{\left(x \cdot \log y + 0\right)} - y\right) - z\right) + \log t \]
      2. flip3-+37.8%

        \[\leadsto \left(\left(\color{blue}{\frac{{\left(x \cdot \log y\right)}^{3} + {0}^{3}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)}} - y\right) - z\right) + \log t \]
      3. metadata-eval37.8%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3} + \color{blue}{0}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      4. add037.8%

        \[\leadsto \left(\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{3}}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      5. pow237.8%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3}}{\color{blue}{{\left(x \cdot \log y\right)}^{2}} + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      6. metadata-eval37.8%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2} + \left(\color{blue}{0} - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
    4. Applied egg-rr37.8%

      \[\leadsto \left(\left(\color{blue}{\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}} - y\right) - z\right) + \log t \]
    5. Step-by-step derivation
      1. clear-num37.8%

        \[\leadsto \left(\left(\color{blue}{\frac{1}{\frac{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}{{\left(x \cdot \log y\right)}^{3}}}} - y\right) - z\right) + \log t \]
      2. inv-pow37.8%

        \[\leadsto \left(\left(\color{blue}{{\left(\frac{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1}} - y\right) - z\right) + \log t \]
      3. sub0-neg37.8%

        \[\leadsto \left(\left({\left(\frac{{\left(x \cdot \log y\right)}^{2} + \color{blue}{\left(-\left(x \cdot \log y\right) \cdot 0\right)}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      4. mul0-rgt37.8%

        \[\leadsto \left(\left({\left(\frac{{\left(x \cdot \log y\right)}^{2} + \left(-\color{blue}{0}\right)}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      5. sub-neg37.8%

        \[\leadsto \left(\left({\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{2} - 0}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      6. --rgt-identity37.8%

        \[\leadsto \left(\left({\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{2}}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      7. clear-num37.8%

        \[\leadsto \left(\left({\color{blue}{\left(\frac{1}{\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2}}}\right)}}^{-1} - y\right) - z\right) + \log t \]
      8. pow-div99.7%

        \[\leadsto \left(\left({\left(\frac{1}{\color{blue}{{\left(x \cdot \log y\right)}^{\left(3 - 2\right)}}}\right)}^{-1} - y\right) - z\right) + \log t \]
      9. metadata-eval99.7%

        \[\leadsto \left(\left({\left(\frac{1}{{\left(x \cdot \log y\right)}^{\color{blue}{1}}}\right)}^{-1} - y\right) - z\right) + \log t \]
      10. pow199.7%

        \[\leadsto \left(\left({\left(\frac{1}{\color{blue}{x \cdot \log y}}\right)}^{-1} - y\right) - z\right) + \log t \]
    6. Applied egg-rr99.7%

      \[\leadsto \left(\left(\color{blue}{{\left(\frac{1}{x \cdot \log y}\right)}^{-1}} - y\right) - z\right) + \log t \]
    7. Taylor expanded in z around inf 41.1%

      \[\leadsto \color{blue}{-1 \cdot z} \]
    8. Step-by-step derivation
      1. neg-mul-141.1%

        \[\leadsto \color{blue}{-z} \]
    9. Simplified41.1%

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

    if 1.79999999999999985e-49 < y < 6.1999999999999998e-13

    1. Initial program 100.0%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in z around inf 60.3%

      \[\leadsto \color{blue}{-1 \cdot z} + \log t \]
    4. Step-by-step derivation
      1. neg-mul-160.3%

        \[\leadsto \color{blue}{\left(-z\right)} + \log t \]
    5. Simplified60.3%

      \[\leadsto \color{blue}{\left(-z\right)} + \log t \]
    6. Taylor expanded in z around 0 47.4%

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

    if 1.02e57 < y

    1. Initial program 99.8%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. add099.8%

        \[\leadsto \left(\left(\color{blue}{\left(x \cdot \log y + 0\right)} - y\right) - z\right) + \log t \]
      2. flip3-+40.9%

        \[\leadsto \left(\left(\color{blue}{\frac{{\left(x \cdot \log y\right)}^{3} + {0}^{3}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)}} - y\right) - z\right) + \log t \]
      3. metadata-eval40.9%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3} + \color{blue}{0}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      4. add040.9%

        \[\leadsto \left(\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{3}}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      5. pow240.9%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3}}{\color{blue}{{\left(x \cdot \log y\right)}^{2}} + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      6. metadata-eval40.9%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2} + \left(\color{blue}{0} - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
    4. Applied egg-rr40.9%

      \[\leadsto \left(\left(\color{blue}{\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}} - y\right) - z\right) + \log t \]
    5. Step-by-step derivation
      1. clear-num40.9%

        \[\leadsto \left(\left(\color{blue}{\frac{1}{\frac{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}{{\left(x \cdot \log y\right)}^{3}}}} - y\right) - z\right) + \log t \]
      2. inv-pow40.9%

        \[\leadsto \left(\left(\color{blue}{{\left(\frac{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1}} - y\right) - z\right) + \log t \]
      3. sub0-neg40.9%

        \[\leadsto \left(\left({\left(\frac{{\left(x \cdot \log y\right)}^{2} + \color{blue}{\left(-\left(x \cdot \log y\right) \cdot 0\right)}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      4. mul0-rgt40.9%

        \[\leadsto \left(\left({\left(\frac{{\left(x \cdot \log y\right)}^{2} + \left(-\color{blue}{0}\right)}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      5. sub-neg40.9%

        \[\leadsto \left(\left({\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{2} - 0}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      6. --rgt-identity40.9%

        \[\leadsto \left(\left({\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{2}}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      7. clear-num40.9%

        \[\leadsto \left(\left({\color{blue}{\left(\frac{1}{\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2}}}\right)}}^{-1} - y\right) - z\right) + \log t \]
      8. pow-div99.8%

        \[\leadsto \left(\left({\left(\frac{1}{\color{blue}{{\left(x \cdot \log y\right)}^{\left(3 - 2\right)}}}\right)}^{-1} - y\right) - z\right) + \log t \]
      9. metadata-eval99.8%

        \[\leadsto \left(\left({\left(\frac{1}{{\left(x \cdot \log y\right)}^{\color{blue}{1}}}\right)}^{-1} - y\right) - z\right) + \log t \]
      10. pow199.8%

        \[\leadsto \left(\left({\left(\frac{1}{\color{blue}{x \cdot \log y}}\right)}^{-1} - y\right) - z\right) + \log t \]
    6. Applied egg-rr99.8%

      \[\leadsto \left(\left(\color{blue}{{\left(\frac{1}{x \cdot \log y}\right)}^{-1}} - y\right) - z\right) + \log t \]
    7. Taylor expanded in y around inf 61.6%

      \[\leadsto \color{blue}{-1 \cdot y} \]
    8. Step-by-step derivation
      1. neg-mul-161.6%

        \[\leadsto \color{blue}{-y} \]
    9. Simplified61.6%

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \leq 1.8 \cdot 10^{-49}:\\ \;\;\;\;-z\\ \mathbf{elif}\;y \leq 6.2 \cdot 10^{-13}:\\ \;\;\;\;\log t\\ \mathbf{elif}\;y \leq 1.02 \cdot 10^{+57}:\\ \;\;\;\;-z\\ \mathbf{else}:\\ \;\;\;\;-y\\ \end{array} \]
  5. Add Preprocessing

Alternative 11: 60.0% accurate, 1.9× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;y \leq 5.3 \cdot 10^{+57}:\\ \;\;\;\;\log t + \left(y - z\right)\\ \mathbf{else}:\\ \;\;\;\;\log t - y\\ \end{array} \end{array} \]
(FPCore (x y z t)
 :precision binary64
 (if (<= y 5.3e+57) (+ (log t) (- y z)) (- (log t) y)))
double code(double x, double y, double z, double t) {
	double tmp;
	if (y <= 5.3e+57) {
		tmp = log(t) + (y - z);
	} else {
		tmp = log(t) - 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 <= 5.3d+57) then
        tmp = log(t) + (y - z)
    else
        tmp = log(t) - y
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t) {
	double tmp;
	if (y <= 5.3e+57) {
		tmp = Math.log(t) + (y - z);
	} else {
		tmp = Math.log(t) - y;
	}
	return tmp;
}
def code(x, y, z, t):
	tmp = 0
	if y <= 5.3e+57:
		tmp = math.log(t) + (y - z)
	else:
		tmp = math.log(t) - y
	return tmp
function code(x, y, z, t)
	tmp = 0.0
	if (y <= 5.3e+57)
		tmp = Float64(log(t) + Float64(y - z));
	else
		tmp = Float64(log(t) - y);
	end
	return tmp
end
function tmp_2 = code(x, y, z, t)
	tmp = 0.0;
	if (y <= 5.3e+57)
		tmp = log(t) + (y - z);
	else
		tmp = log(t) - y;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_] := If[LessEqual[y, 5.3e+57], N[(N[Log[t], $MachinePrecision] + N[(y - z), $MachinePrecision]), $MachinePrecision], N[(N[Log[t], $MachinePrecision] - y), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;y \leq 5.3 \cdot 10^{+57}:\\
\;\;\;\;\log t + \left(y - z\right)\\

\mathbf{else}:\\
\;\;\;\;\log t - y\\


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

    1. Initial program 99.8%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. +-commutative99.8%

        \[\leadsto \color{blue}{\log t + \left(\left(x \cdot \log y - y\right) - z\right)} \]
      2. add-log-exp25.0%

        \[\leadsto \log t + \color{blue}{\log \left(e^{\left(x \cdot \log y - y\right) - z}\right)} \]
      3. sum-log25.0%

        \[\leadsto \color{blue}{\log \left(t \cdot e^{\left(x \cdot \log y - y\right) - z}\right)} \]
      4. sub-neg25.0%

        \[\leadsto \log \left(t \cdot e^{\color{blue}{\left(x \cdot \log y - y\right) + \left(-z\right)}}\right) \]
      5. sub-neg25.0%

        \[\leadsto \log \left(t \cdot e^{\color{blue}{\left(x \cdot \log y + \left(-y\right)\right)} + \left(-z\right)}\right) \]
      6. associate-+r+25.0%

        \[\leadsto \log \left(t \cdot e^{\color{blue}{x \cdot \log y + \left(\left(-y\right) + \left(-z\right)\right)}}\right) \]
      7. sub-neg25.0%

        \[\leadsto \log \left(t \cdot e^{x \cdot \log y + \color{blue}{\left(\left(-y\right) - z\right)}}\right) \]
      8. exp-sum23.6%

        \[\leadsto \log \left(t \cdot \color{blue}{\left(e^{x \cdot \log y} \cdot e^{\left(-y\right) - z}\right)}\right) \]
      9. *-commutative23.6%

        \[\leadsto \log \left(t \cdot \left(e^{\color{blue}{\log y \cdot x}} \cdot e^{\left(-y\right) - z}\right)\right) \]
      10. exp-to-pow23.6%

        \[\leadsto \log \left(t \cdot \left(\color{blue}{{y}^{x}} \cdot e^{\left(-y\right) - z}\right)\right) \]
      11. add-sqr-sqrt0.0%

        \[\leadsto \log \left(t \cdot \left({y}^{x} \cdot e^{\color{blue}{\sqrt{-y} \cdot \sqrt{-y}} - z}\right)\right) \]
      12. sqrt-unprod23.7%

        \[\leadsto \log \left(t \cdot \left({y}^{x} \cdot e^{\color{blue}{\sqrt{\left(-y\right) \cdot \left(-y\right)}} - z}\right)\right) \]
      13. sqr-neg23.7%

        \[\leadsto \log \left(t \cdot \left({y}^{x} \cdot e^{\sqrt{\color{blue}{y \cdot y}} - z}\right)\right) \]
      14. sqrt-unprod23.7%

        \[\leadsto \log \left(t \cdot \left({y}^{x} \cdot e^{\color{blue}{\sqrt{y} \cdot \sqrt{y}} - z}\right)\right) \]
      15. add-sqr-sqrt23.7%

        \[\leadsto \log \left(t \cdot \left({y}^{x} \cdot e^{\color{blue}{y} - z}\right)\right) \]
    4. Applied egg-rr23.7%

      \[\leadsto \color{blue}{\log \left(t \cdot \left({y}^{x} \cdot e^{y - z}\right)\right)} \]
    5. Taylor expanded in x around 0 23.9%

      \[\leadsto \color{blue}{\log \left(t \cdot e^{y - z}\right)} \]
    6. Step-by-step derivation
      1. log-prod23.9%

        \[\leadsto \color{blue}{\log t + \log \left(e^{y - z}\right)} \]
      2. rem-log-exp57.4%

        \[\leadsto \log t + \color{blue}{\left(y - z\right)} \]
    7. Simplified57.4%

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

    if 5.29999999999999986e57 < y

    1. Initial program 99.8%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in y around inf 61.6%

      \[\leadsto \color{blue}{-1 \cdot y} + \log t \]
    4. Step-by-step derivation
      1. mul-1-neg61.6%

        \[\leadsto \color{blue}{\left(-y\right)} + \log t \]
    5. Simplified61.6%

      \[\leadsto \color{blue}{\left(-y\right)} + \log t \]
  3. Recombined 2 regimes into one program.
  4. Final simplification59.1%

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

Alternative 12: 58.7% accurate, 1.9× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;y \leq 2.35 \cdot 10^{+122}:\\ \;\;\;\;\log t - z\\ \mathbf{else}:\\ \;\;\;\;-y\\ \end{array} \end{array} \]
(FPCore (x y z t)
 :precision binary64
 (if (<= y 2.35e+122) (- (log t) z) (- y)))
double code(double x, double y, double z, double t) {
	double tmp;
	if (y <= 2.35e+122) {
		tmp = log(t) - z;
	} else {
		tmp = -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.35d+122) then
        tmp = log(t) - z
    else
        tmp = -y
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t) {
	double tmp;
	if (y <= 2.35e+122) {
		tmp = Math.log(t) - z;
	} else {
		tmp = -y;
	}
	return tmp;
}
def code(x, y, z, t):
	tmp = 0
	if y <= 2.35e+122:
		tmp = math.log(t) - z
	else:
		tmp = -y
	return tmp
function code(x, y, z, t)
	tmp = 0.0
	if (y <= 2.35e+122)
		tmp = Float64(log(t) - z);
	else
		tmp = Float64(-y);
	end
	return tmp
end
function tmp_2 = code(x, y, z, t)
	tmp = 0.0;
	if (y <= 2.35e+122)
		tmp = log(t) - z;
	else
		tmp = -y;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_] := If[LessEqual[y, 2.35e+122], N[(N[Log[t], $MachinePrecision] - z), $MachinePrecision], (-y)]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;y \leq 2.35 \cdot 10^{+122}:\\
\;\;\;\;\log t - z\\

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


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

    1. Initial program 99.8%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Taylor expanded in z around inf 53.4%

      \[\leadsto \color{blue}{-1 \cdot z} + \log t \]
    4. Step-by-step derivation
      1. neg-mul-153.4%

        \[\leadsto \color{blue}{\left(-z\right)} + \log t \]
    5. Simplified53.4%

      \[\leadsto \color{blue}{\left(-z\right)} + \log t \]
    6. Taylor expanded in z around 0 53.4%

      \[\leadsto \color{blue}{\log t + -1 \cdot z} \]
    7. Step-by-step derivation
      1. neg-mul-153.4%

        \[\leadsto \log t + \color{blue}{\left(-z\right)} \]
      2. sub-neg53.4%

        \[\leadsto \color{blue}{\log t - z} \]
    8. Simplified53.4%

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

    if 2.35000000000000012e122 < y

    1. Initial program 99.8%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. add099.8%

        \[\leadsto \left(\left(\color{blue}{\left(x \cdot \log y + 0\right)} - y\right) - z\right) + \log t \]
      2. flip3-+44.5%

        \[\leadsto \left(\left(\color{blue}{\frac{{\left(x \cdot \log y\right)}^{3} + {0}^{3}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)}} - y\right) - z\right) + \log t \]
      3. metadata-eval44.5%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3} + \color{blue}{0}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      4. add044.5%

        \[\leadsto \left(\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{3}}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      5. pow244.5%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3}}{\color{blue}{{\left(x \cdot \log y\right)}^{2}} + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      6. metadata-eval44.5%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2} + \left(\color{blue}{0} - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
    4. Applied egg-rr44.5%

      \[\leadsto \left(\left(\color{blue}{\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}} - y\right) - z\right) + \log t \]
    5. Step-by-step derivation
      1. clear-num44.5%

        \[\leadsto \left(\left(\color{blue}{\frac{1}{\frac{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}{{\left(x \cdot \log y\right)}^{3}}}} - y\right) - z\right) + \log t \]
      2. inv-pow44.5%

        \[\leadsto \left(\left(\color{blue}{{\left(\frac{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1}} - y\right) - z\right) + \log t \]
      3. sub0-neg44.5%

        \[\leadsto \left(\left({\left(\frac{{\left(x \cdot \log y\right)}^{2} + \color{blue}{\left(-\left(x \cdot \log y\right) \cdot 0\right)}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      4. mul0-rgt44.5%

        \[\leadsto \left(\left({\left(\frac{{\left(x \cdot \log y\right)}^{2} + \left(-\color{blue}{0}\right)}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      5. sub-neg44.5%

        \[\leadsto \left(\left({\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{2} - 0}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      6. --rgt-identity44.5%

        \[\leadsto \left(\left({\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{2}}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      7. clear-num44.5%

        \[\leadsto \left(\left({\color{blue}{\left(\frac{1}{\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2}}}\right)}}^{-1} - y\right) - z\right) + \log t \]
      8. pow-div99.8%

        \[\leadsto \left(\left({\left(\frac{1}{\color{blue}{{\left(x \cdot \log y\right)}^{\left(3 - 2\right)}}}\right)}^{-1} - y\right) - z\right) + \log t \]
      9. metadata-eval99.8%

        \[\leadsto \left(\left({\left(\frac{1}{{\left(x \cdot \log y\right)}^{\color{blue}{1}}}\right)}^{-1} - y\right) - z\right) + \log t \]
      10. pow199.8%

        \[\leadsto \left(\left({\left(\frac{1}{\color{blue}{x \cdot \log y}}\right)}^{-1} - y\right) - z\right) + \log t \]
    6. Applied egg-rr99.8%

      \[\leadsto \left(\left(\color{blue}{{\left(\frac{1}{x \cdot \log y}\right)}^{-1}} - y\right) - z\right) + \log t \]
    7. Taylor expanded in y around inf 72.4%

      \[\leadsto \color{blue}{-1 \cdot y} \]
    8. Step-by-step derivation
      1. neg-mul-172.4%

        \[\leadsto \color{blue}{-y} \]
    9. Simplified72.4%

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \leq 2.35 \cdot 10^{+122}:\\ \;\;\;\;\log t - z\\ \mathbf{else}:\\ \;\;\;\;-y\\ \end{array} \]
  5. Add Preprocessing

Alternative 13: 48.2% accurate, 29.8× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;y \leq 2.15 \cdot 10^{+57}:\\ \;\;\;\;-z\\ \mathbf{else}:\\ \;\;\;\;-y\\ \end{array} \end{array} \]
(FPCore (x y z t) :precision binary64 (if (<= y 2.15e+57) (- z) (- y)))
double code(double x, double y, double z, double t) {
	double tmp;
	if (y <= 2.15e+57) {
		tmp = -z;
	} else {
		tmp = -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.15d+57) then
        tmp = -z
    else
        tmp = -y
    end if
    code = tmp
end function
public static double code(double x, double y, double z, double t) {
	double tmp;
	if (y <= 2.15e+57) {
		tmp = -z;
	} else {
		tmp = -y;
	}
	return tmp;
}
def code(x, y, z, t):
	tmp = 0
	if y <= 2.15e+57:
		tmp = -z
	else:
		tmp = -y
	return tmp
function code(x, y, z, t)
	tmp = 0.0
	if (y <= 2.15e+57)
		tmp = Float64(-z);
	else
		tmp = Float64(-y);
	end
	return tmp
end
function tmp_2 = code(x, y, z, t)
	tmp = 0.0;
	if (y <= 2.15e+57)
		tmp = -z;
	else
		tmp = -y;
	end
	tmp_2 = tmp;
end
code[x_, y_, z_, t_] := If[LessEqual[y, 2.15e+57], (-z), (-y)]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;y \leq 2.15 \cdot 10^{+57}:\\
\;\;\;\;-z\\

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


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

    1. Initial program 99.8%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. add099.8%

        \[\leadsto \left(\left(\color{blue}{\left(x \cdot \log y + 0\right)} - y\right) - z\right) + \log t \]
      2. flip3-+38.9%

        \[\leadsto \left(\left(\color{blue}{\frac{{\left(x \cdot \log y\right)}^{3} + {0}^{3}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)}} - y\right) - z\right) + \log t \]
      3. metadata-eval38.9%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3} + \color{blue}{0}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      4. add038.9%

        \[\leadsto \left(\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{3}}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      5. pow238.9%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3}}{\color{blue}{{\left(x \cdot \log y\right)}^{2}} + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      6. metadata-eval38.9%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2} + \left(\color{blue}{0} - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
    4. Applied egg-rr38.9%

      \[\leadsto \left(\left(\color{blue}{\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}} - y\right) - z\right) + \log t \]
    5. Step-by-step derivation
      1. clear-num38.9%

        \[\leadsto \left(\left(\color{blue}{\frac{1}{\frac{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}{{\left(x \cdot \log y\right)}^{3}}}} - y\right) - z\right) + \log t \]
      2. inv-pow38.9%

        \[\leadsto \left(\left(\color{blue}{{\left(\frac{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1}} - y\right) - z\right) + \log t \]
      3. sub0-neg38.9%

        \[\leadsto \left(\left({\left(\frac{{\left(x \cdot \log y\right)}^{2} + \color{blue}{\left(-\left(x \cdot \log y\right) \cdot 0\right)}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      4. mul0-rgt38.9%

        \[\leadsto \left(\left({\left(\frac{{\left(x \cdot \log y\right)}^{2} + \left(-\color{blue}{0}\right)}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      5. sub-neg38.9%

        \[\leadsto \left(\left({\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{2} - 0}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      6. --rgt-identity38.9%

        \[\leadsto \left(\left({\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{2}}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      7. clear-num38.9%

        \[\leadsto \left(\left({\color{blue}{\left(\frac{1}{\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2}}}\right)}}^{-1} - y\right) - z\right) + \log t \]
      8. pow-div99.7%

        \[\leadsto \left(\left({\left(\frac{1}{\color{blue}{{\left(x \cdot \log y\right)}^{\left(3 - 2\right)}}}\right)}^{-1} - y\right) - z\right) + \log t \]
      9. metadata-eval99.7%

        \[\leadsto \left(\left({\left(\frac{1}{{\left(x \cdot \log y\right)}^{\color{blue}{1}}}\right)}^{-1} - y\right) - z\right) + \log t \]
      10. pow199.7%

        \[\leadsto \left(\left({\left(\frac{1}{\color{blue}{x \cdot \log y}}\right)}^{-1} - y\right) - z\right) + \log t \]
    6. Applied egg-rr99.7%

      \[\leadsto \left(\left(\color{blue}{{\left(\frac{1}{x \cdot \log y}\right)}^{-1}} - y\right) - z\right) + \log t \]
    7. Taylor expanded in z around inf 38.1%

      \[\leadsto \color{blue}{-1 \cdot z} \]
    8. Step-by-step derivation
      1. neg-mul-138.1%

        \[\leadsto \color{blue}{-z} \]
    9. Simplified38.1%

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

    if 2.15000000000000016e57 < y

    1. Initial program 99.8%

      \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. add099.8%

        \[\leadsto \left(\left(\color{blue}{\left(x \cdot \log y + 0\right)} - y\right) - z\right) + \log t \]
      2. flip3-+40.9%

        \[\leadsto \left(\left(\color{blue}{\frac{{\left(x \cdot \log y\right)}^{3} + {0}^{3}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)}} - y\right) - z\right) + \log t \]
      3. metadata-eval40.9%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3} + \color{blue}{0}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      4. add040.9%

        \[\leadsto \left(\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{3}}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      5. pow240.9%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3}}{\color{blue}{{\left(x \cdot \log y\right)}^{2}} + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
      6. metadata-eval40.9%

        \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2} + \left(\color{blue}{0} - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
    4. Applied egg-rr40.9%

      \[\leadsto \left(\left(\color{blue}{\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}} - y\right) - z\right) + \log t \]
    5. Step-by-step derivation
      1. clear-num40.9%

        \[\leadsto \left(\left(\color{blue}{\frac{1}{\frac{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}{{\left(x \cdot \log y\right)}^{3}}}} - y\right) - z\right) + \log t \]
      2. inv-pow40.9%

        \[\leadsto \left(\left(\color{blue}{{\left(\frac{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1}} - y\right) - z\right) + \log t \]
      3. sub0-neg40.9%

        \[\leadsto \left(\left({\left(\frac{{\left(x \cdot \log y\right)}^{2} + \color{blue}{\left(-\left(x \cdot \log y\right) \cdot 0\right)}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      4. mul0-rgt40.9%

        \[\leadsto \left(\left({\left(\frac{{\left(x \cdot \log y\right)}^{2} + \left(-\color{blue}{0}\right)}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      5. sub-neg40.9%

        \[\leadsto \left(\left({\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{2} - 0}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      6. --rgt-identity40.9%

        \[\leadsto \left(\left({\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{2}}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
      7. clear-num40.9%

        \[\leadsto \left(\left({\color{blue}{\left(\frac{1}{\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2}}}\right)}}^{-1} - y\right) - z\right) + \log t \]
      8. pow-div99.8%

        \[\leadsto \left(\left({\left(\frac{1}{\color{blue}{{\left(x \cdot \log y\right)}^{\left(3 - 2\right)}}}\right)}^{-1} - y\right) - z\right) + \log t \]
      9. metadata-eval99.8%

        \[\leadsto \left(\left({\left(\frac{1}{{\left(x \cdot \log y\right)}^{\color{blue}{1}}}\right)}^{-1} - y\right) - z\right) + \log t \]
      10. pow199.8%

        \[\leadsto \left(\left({\left(\frac{1}{\color{blue}{x \cdot \log y}}\right)}^{-1} - y\right) - z\right) + \log t \]
    6. Applied egg-rr99.8%

      \[\leadsto \left(\left(\color{blue}{{\left(\frac{1}{x \cdot \log y}\right)}^{-1}} - y\right) - z\right) + \log t \]
    7. Taylor expanded in y around inf 61.6%

      \[\leadsto \color{blue}{-1 \cdot y} \]
    8. Step-by-step derivation
      1. neg-mul-161.6%

        \[\leadsto \color{blue}{-y} \]
    9. Simplified61.6%

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

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

Alternative 14: 30.3% accurate, 104.5× 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 Float64(-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. Add Preprocessing
  3. Step-by-step derivation
    1. add099.8%

      \[\leadsto \left(\left(\color{blue}{\left(x \cdot \log y + 0\right)} - y\right) - z\right) + \log t \]
    2. flip3-+39.7%

      \[\leadsto \left(\left(\color{blue}{\frac{{\left(x \cdot \log y\right)}^{3} + {0}^{3}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)}} - y\right) - z\right) + \log t \]
    3. metadata-eval39.7%

      \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3} + \color{blue}{0}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
    4. add039.7%

      \[\leadsto \left(\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{3}}}{\left(x \cdot \log y\right) \cdot \left(x \cdot \log y\right) + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
    5. pow239.7%

      \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3}}{\color{blue}{{\left(x \cdot \log y\right)}^{2}} + \left(0 \cdot 0 - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
    6. metadata-eval39.7%

      \[\leadsto \left(\left(\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2} + \left(\color{blue}{0} - \left(x \cdot \log y\right) \cdot 0\right)} - y\right) - z\right) + \log t \]
  4. Applied egg-rr39.7%

    \[\leadsto \left(\left(\color{blue}{\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}} - y\right) - z\right) + \log t \]
  5. Step-by-step derivation
    1. clear-num39.7%

      \[\leadsto \left(\left(\color{blue}{\frac{1}{\frac{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}{{\left(x \cdot \log y\right)}^{3}}}} - y\right) - z\right) + \log t \]
    2. inv-pow39.7%

      \[\leadsto \left(\left(\color{blue}{{\left(\frac{{\left(x \cdot \log y\right)}^{2} + \left(0 - \left(x \cdot \log y\right) \cdot 0\right)}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1}} - y\right) - z\right) + \log t \]
    3. sub0-neg39.7%

      \[\leadsto \left(\left({\left(\frac{{\left(x \cdot \log y\right)}^{2} + \color{blue}{\left(-\left(x \cdot \log y\right) \cdot 0\right)}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
    4. mul0-rgt39.7%

      \[\leadsto \left(\left({\left(\frac{{\left(x \cdot \log y\right)}^{2} + \left(-\color{blue}{0}\right)}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
    5. sub-neg39.7%

      \[\leadsto \left(\left({\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{2} - 0}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
    6. --rgt-identity39.7%

      \[\leadsto \left(\left({\left(\frac{\color{blue}{{\left(x \cdot \log y\right)}^{2}}}{{\left(x \cdot \log y\right)}^{3}}\right)}^{-1} - y\right) - z\right) + \log t \]
    7. clear-num39.7%

      \[\leadsto \left(\left({\color{blue}{\left(\frac{1}{\frac{{\left(x \cdot \log y\right)}^{3}}{{\left(x \cdot \log y\right)}^{2}}}\right)}}^{-1} - y\right) - z\right) + \log t \]
    8. pow-div99.8%

      \[\leadsto \left(\left({\left(\frac{1}{\color{blue}{{\left(x \cdot \log y\right)}^{\left(3 - 2\right)}}}\right)}^{-1} - y\right) - z\right) + \log t \]
    9. metadata-eval99.8%

      \[\leadsto \left(\left({\left(\frac{1}{{\left(x \cdot \log y\right)}^{\color{blue}{1}}}\right)}^{-1} - y\right) - z\right) + \log t \]
    10. pow199.8%

      \[\leadsto \left(\left({\left(\frac{1}{\color{blue}{x \cdot \log y}}\right)}^{-1} - y\right) - z\right) + \log t \]
  6. Applied egg-rr99.8%

    \[\leadsto \left(\left(\color{blue}{{\left(\frac{1}{x \cdot \log y}\right)}^{-1}} - y\right) - z\right) + \log t \]
  7. Taylor expanded in y around inf 27.8%

    \[\leadsto \color{blue}{-1 \cdot y} \]
  8. Step-by-step derivation
    1. neg-mul-127.8%

      \[\leadsto \color{blue}{-y} \]
  9. Simplified27.8%

    \[\leadsto \color{blue}{-y} \]
  10. Final simplification27.8%

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

Alternative 15: 2.3% accurate, 209.0× speedup?

\[\begin{array}{l} \\ z \end{array} \]
(FPCore (x y z t) :precision binary64 z)
double code(double x, double y, double z, double t) {
	return z;
}
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 = z
end function
public static double code(double x, double y, double z, double t) {
	return z;
}
def code(x, y, z, t):
	return z
function code(x, y, z, t)
	return z
end
function tmp = code(x, y, z, t)
	tmp = z;
end
code[x_, y_, z_, t_] := z
\begin{array}{l}

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

    \[\left(\left(x \cdot \log y - y\right) - z\right) + \log t \]
  2. Add Preprocessing
  3. Step-by-step derivation
    1. +-commutative99.8%

      \[\leadsto \color{blue}{\log t + \left(\left(x \cdot \log y - y\right) - z\right)} \]
    2. add-log-exp17.4%

      \[\leadsto \log t + \color{blue}{\log \left(e^{\left(x \cdot \log y - y\right) - z}\right)} \]
    3. sum-log17.4%

      \[\leadsto \color{blue}{\log \left(t \cdot e^{\left(x \cdot \log y - y\right) - z}\right)} \]
    4. sub-neg17.4%

      \[\leadsto \log \left(t \cdot e^{\color{blue}{\left(x \cdot \log y - y\right) + \left(-z\right)}}\right) \]
    5. sub-neg17.4%

      \[\leadsto \log \left(t \cdot e^{\color{blue}{\left(x \cdot \log y + \left(-y\right)\right)} + \left(-z\right)}\right) \]
    6. associate-+r+17.4%

      \[\leadsto \log \left(t \cdot e^{\color{blue}{x \cdot \log y + \left(\left(-y\right) + \left(-z\right)\right)}}\right) \]
    7. sub-neg17.4%

      \[\leadsto \log \left(t \cdot e^{x \cdot \log y + \color{blue}{\left(\left(-y\right) - z\right)}}\right) \]
    8. exp-sum16.1%

      \[\leadsto \log \left(t \cdot \color{blue}{\left(e^{x \cdot \log y} \cdot e^{\left(-y\right) - z}\right)}\right) \]
    9. *-commutative16.1%

      \[\leadsto \log \left(t \cdot \left(e^{\color{blue}{\log y \cdot x}} \cdot e^{\left(-y\right) - z}\right)\right) \]
    10. exp-to-pow16.1%

      \[\leadsto \log \left(t \cdot \left(\color{blue}{{y}^{x}} \cdot e^{\left(-y\right) - z}\right)\right) \]
    11. add-sqr-sqrt0.0%

      \[\leadsto \log \left(t \cdot \left({y}^{x} \cdot e^{\color{blue}{\sqrt{-y} \cdot \sqrt{-y}} - z}\right)\right) \]
    12. sqrt-unprod14.6%

      \[\leadsto \log \left(t \cdot \left({y}^{x} \cdot e^{\color{blue}{\sqrt{\left(-y\right) \cdot \left(-y\right)}} - z}\right)\right) \]
    13. sqr-neg14.6%

      \[\leadsto \log \left(t \cdot \left({y}^{x} \cdot e^{\sqrt{\color{blue}{y \cdot y}} - z}\right)\right) \]
    14. sqrt-unprod14.6%

      \[\leadsto \log \left(t \cdot \left({y}^{x} \cdot e^{\color{blue}{\sqrt{y} \cdot \sqrt{y}} - z}\right)\right) \]
    15. add-sqr-sqrt14.6%

      \[\leadsto \log \left(t \cdot \left({y}^{x} \cdot e^{\color{blue}{y} - z}\right)\right) \]
  4. Applied egg-rr14.6%

    \[\leadsto \color{blue}{\log \left(t \cdot \left({y}^{x} \cdot e^{y - z}\right)\right)} \]
  5. Taylor expanded in x around 0 14.8%

    \[\leadsto \color{blue}{\log \left(t \cdot e^{y - z}\right)} \]
  6. Step-by-step derivation
    1. log-prod14.8%

      \[\leadsto \color{blue}{\log t + \log \left(e^{y - z}\right)} \]
    2. add-log-exp40.0%

      \[\leadsto \log t + \color{blue}{\left(y - z\right)} \]
    3. sub-neg40.0%

      \[\leadsto \log t + \color{blue}{\left(y + \left(-z\right)\right)} \]
    4. add-sqr-sqrt21.9%

      \[\leadsto \log t + \left(y + \color{blue}{\sqrt{-z} \cdot \sqrt{-z}}\right) \]
    5. sqrt-unprod16.7%

      \[\leadsto \log t + \left(y + \color{blue}{\sqrt{\left(-z\right) \cdot \left(-z\right)}}\right) \]
    6. sqr-neg16.7%

      \[\leadsto \log t + \left(y + \sqrt{\color{blue}{z \cdot z}}\right) \]
    7. sqrt-unprod5.0%

      \[\leadsto \log t + \left(y + \color{blue}{\sqrt{z} \cdot \sqrt{z}}\right) \]
    8. add-sqr-sqrt12.5%

      \[\leadsto \log t + \left(y + \color{blue}{z}\right) \]
  7. Applied egg-rr12.5%

    \[\leadsto \color{blue}{\log t + \left(y + z\right)} \]
  8. Step-by-step derivation
    1. associate-+r+12.5%

      \[\leadsto \color{blue}{\left(\log t + y\right) + z} \]
    2. +-commutative12.5%

      \[\leadsto \color{blue}{\left(y + \log t\right)} + z \]
  9. Simplified12.5%

    \[\leadsto \color{blue}{\left(y + \log t\right) + z} \]
  10. Taylor expanded in z around inf 2.4%

    \[\leadsto \color{blue}{z} \]
  11. Final simplification2.4%

    \[\leadsto z \]
  12. Add Preprocessing

Reproduce

?
herbie shell --seed 2024034 
(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)))