Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2, B

Percentage Accurate: 68.9% → 99.6%
Time: 9.5s
Alternatives: 12
Speedup: 6.7×

Specification

?
\[\begin{array}{l} \\ x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \end{array} \]
(FPCore (x y z)
 :precision binary64
 (+
  x
  (/
   (*
    y
    (+
     (* (+ (* z 0.0692910599291889) 0.4917317610505968) z)
     0.279195317918525))
   (+ (* (+ z 6.012459259764103) z) 3.350343815022304))))
double code(double x, double y, double z) {
	return x + ((y * ((((z * 0.0692910599291889) + 0.4917317610505968) * z) + 0.279195317918525)) / (((z + 6.012459259764103) * z) + 3.350343815022304));
}
real(8) function code(x, y, z)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    code = x + ((y * ((((z * 0.0692910599291889d0) + 0.4917317610505968d0) * z) + 0.279195317918525d0)) / (((z + 6.012459259764103d0) * z) + 3.350343815022304d0))
end function
public static double code(double x, double y, double z) {
	return x + ((y * ((((z * 0.0692910599291889) + 0.4917317610505968) * z) + 0.279195317918525)) / (((z + 6.012459259764103) * z) + 3.350343815022304));
}
def code(x, y, z):
	return x + ((y * ((((z * 0.0692910599291889) + 0.4917317610505968) * z) + 0.279195317918525)) / (((z + 6.012459259764103) * z) + 3.350343815022304))
function code(x, y, z)
	return Float64(x + Float64(Float64(y * Float64(Float64(Float64(Float64(z * 0.0692910599291889) + 0.4917317610505968) * z) + 0.279195317918525)) / Float64(Float64(Float64(z + 6.012459259764103) * z) + 3.350343815022304)))
end
function tmp = code(x, y, z)
	tmp = x + ((y * ((((z * 0.0692910599291889) + 0.4917317610505968) * z) + 0.279195317918525)) / (((z + 6.012459259764103) * z) + 3.350343815022304));
end
code[x_, y_, z_] := N[(x + N[(N[(y * N[(N[(N[(N[(z * 0.0692910599291889), $MachinePrecision] + 0.4917317610505968), $MachinePrecision] * z), $MachinePrecision] + 0.279195317918525), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(z + 6.012459259764103), $MachinePrecision] * z), $MachinePrecision] + 3.350343815022304), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304}
\end{array}

Sampling outcomes in binary64 precision:

Local Percentage Accuracy vs ?

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

Accuracy vs Speed?

Herbie found 12 alternatives:

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

Initial Program: 68.9% accurate, 1.0× speedup?

\[\begin{array}{l} \\ x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \end{array} \]
(FPCore (x y z)
 :precision binary64
 (+
  x
  (/
   (*
    y
    (+
     (* (+ (* z 0.0692910599291889) 0.4917317610505968) z)
     0.279195317918525))
   (+ (* (+ z 6.012459259764103) z) 3.350343815022304))))
double code(double x, double y, double z) {
	return x + ((y * ((((z * 0.0692910599291889) + 0.4917317610505968) * z) + 0.279195317918525)) / (((z + 6.012459259764103) * z) + 3.350343815022304));
}
real(8) function code(x, y, z)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    code = x + ((y * ((((z * 0.0692910599291889d0) + 0.4917317610505968d0) * z) + 0.279195317918525d0)) / (((z + 6.012459259764103d0) * z) + 3.350343815022304d0))
end function
public static double code(double x, double y, double z) {
	return x + ((y * ((((z * 0.0692910599291889) + 0.4917317610505968) * z) + 0.279195317918525)) / (((z + 6.012459259764103) * z) + 3.350343815022304));
}
def code(x, y, z):
	return x + ((y * ((((z * 0.0692910599291889) + 0.4917317610505968) * z) + 0.279195317918525)) / (((z + 6.012459259764103) * z) + 3.350343815022304))
function code(x, y, z)
	return Float64(x + Float64(Float64(y * Float64(Float64(Float64(Float64(z * 0.0692910599291889) + 0.4917317610505968) * z) + 0.279195317918525)) / Float64(Float64(Float64(z + 6.012459259764103) * z) + 3.350343815022304)))
end
function tmp = code(x, y, z)
	tmp = x + ((y * ((((z * 0.0692910599291889) + 0.4917317610505968) * z) + 0.279195317918525)) / (((z + 6.012459259764103) * z) + 3.350343815022304));
end
code[x_, y_, z_] := N[(x + N[(N[(y * N[(N[(N[(N[(z * 0.0692910599291889), $MachinePrecision] + 0.4917317610505968), $MachinePrecision] * z), $MachinePrecision] + 0.279195317918525), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(z + 6.012459259764103), $MachinePrecision] * z), $MachinePrecision] + 3.350343815022304), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304}
\end{array}

Alternative 1: 99.6% accurate, 0.4× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := 0.0692910599291889 \cdot y - x\\ t_1 := \mathsf{fma}\left(6.012459259764103 + z, z, 3.350343815022304\right)\\ \mathbf{if}\;x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \leq 5 \cdot 10^{+305}:\\ \;\;\;\;x + \mathsf{fma}\left(\frac{\mathsf{fma}\left(0.0692910599291889, z, 0.4917317610505968\right) \cdot z}{t\_1}, y, \frac{0.279195317918525}{t\_1} \cdot y\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(0.004801250986110448 \cdot y, \frac{y}{t\_0}, \left(-x\right) \cdot \frac{x}{t\_0}\right)\\ \end{array} \end{array} \]
(FPCore (x y z)
 :precision binary64
 (let* ((t_0 (- (* 0.0692910599291889 y) x))
        (t_1 (fma (+ 6.012459259764103 z) z 3.350343815022304)))
   (if (<=
        (+
         x
         (/
          (*
           y
           (+
            (* (+ (* z 0.0692910599291889) 0.4917317610505968) z)
            0.279195317918525))
          (+ (* (+ z 6.012459259764103) z) 3.350343815022304)))
        5e+305)
     (+
      x
      (fma
       (/ (* (fma 0.0692910599291889 z 0.4917317610505968) z) t_1)
       y
       (* (/ 0.279195317918525 t_1) y)))
     (fma (* 0.004801250986110448 y) (/ y t_0) (* (- x) (/ x t_0))))))
double code(double x, double y, double z) {
	double t_0 = (0.0692910599291889 * y) - x;
	double t_1 = fma((6.012459259764103 + z), z, 3.350343815022304);
	double tmp;
	if ((x + ((y * ((((z * 0.0692910599291889) + 0.4917317610505968) * z) + 0.279195317918525)) / (((z + 6.012459259764103) * z) + 3.350343815022304))) <= 5e+305) {
		tmp = x + fma(((fma(0.0692910599291889, z, 0.4917317610505968) * z) / t_1), y, ((0.279195317918525 / t_1) * y));
	} else {
		tmp = fma((0.004801250986110448 * y), (y / t_0), (-x * (x / t_0)));
	}
	return tmp;
}
function code(x, y, z)
	t_0 = Float64(Float64(0.0692910599291889 * y) - x)
	t_1 = fma(Float64(6.012459259764103 + z), z, 3.350343815022304)
	tmp = 0.0
	if (Float64(x + Float64(Float64(y * Float64(Float64(Float64(Float64(z * 0.0692910599291889) + 0.4917317610505968) * z) + 0.279195317918525)) / Float64(Float64(Float64(z + 6.012459259764103) * z) + 3.350343815022304))) <= 5e+305)
		tmp = Float64(x + fma(Float64(Float64(fma(0.0692910599291889, z, 0.4917317610505968) * z) / t_1), y, Float64(Float64(0.279195317918525 / t_1) * y)));
	else
		tmp = fma(Float64(0.004801250986110448 * y), Float64(y / t_0), Float64(Float64(-x) * Float64(x / t_0)));
	end
	return tmp
end
code[x_, y_, z_] := Block[{t$95$0 = N[(N[(0.0692910599291889 * y), $MachinePrecision] - x), $MachinePrecision]}, Block[{t$95$1 = N[(N[(6.012459259764103 + z), $MachinePrecision] * z + 3.350343815022304), $MachinePrecision]}, If[LessEqual[N[(x + N[(N[(y * N[(N[(N[(N[(z * 0.0692910599291889), $MachinePrecision] + 0.4917317610505968), $MachinePrecision] * z), $MachinePrecision] + 0.279195317918525), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(z + 6.012459259764103), $MachinePrecision] * z), $MachinePrecision] + 3.350343815022304), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 5e+305], N[(x + N[(N[(N[(N[(0.0692910599291889 * z + 0.4917317610505968), $MachinePrecision] * z), $MachinePrecision] / t$95$1), $MachinePrecision] * y + N[(N[(0.279195317918525 / t$95$1), $MachinePrecision] * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(0.004801250986110448 * y), $MachinePrecision] * N[(y / t$95$0), $MachinePrecision] + N[((-x) * N[(x / t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := 0.0692910599291889 \cdot y - x\\
t_1 := \mathsf{fma}\left(6.012459259764103 + z, z, 3.350343815022304\right)\\
\mathbf{if}\;x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \leq 5 \cdot 10^{+305}:\\
\;\;\;\;x + \mathsf{fma}\left(\frac{\mathsf{fma}\left(0.0692910599291889, z, 0.4917317610505968\right) \cdot z}{t\_1}, y, \frac{0.279195317918525}{t\_1} \cdot y\right)\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(0.004801250986110448 \cdot y, \frac{y}{t\_0}, \left(-x\right) \cdot \frac{x}{t\_0}\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (+.f64 x (/.f64 (*.f64 y (+.f64 (*.f64 (+.f64 (*.f64 z #s(literal 692910599291889/10000000000000000 binary64)) #s(literal 307332350656623/625000000000000 binary64)) z) #s(literal 11167812716741/40000000000000 binary64))) (+.f64 (*.f64 (+.f64 z #s(literal 6012459259764103/1000000000000000 binary64)) z) #s(literal 104698244219447/31250000000000 binary64)))) < 5.00000000000000009e305

    1. Initial program 94.5%

      \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto x + \color{blue}{\frac{y \cdot \left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z + \frac{11167812716741}{40000000000000}\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}}} \]
      2. lift-*.f64N/A

        \[\leadsto x + \frac{\color{blue}{y \cdot \left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z + \frac{11167812716741}{40000000000000}\right)}}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
      3. associate-/l*N/A

        \[\leadsto x + \color{blue}{y \cdot \frac{\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z + \frac{11167812716741}{40000000000000}}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}}} \]
      4. lift-+.f64N/A

        \[\leadsto x + y \cdot \frac{\color{blue}{\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z + \frac{11167812716741}{40000000000000}}}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
      5. div-addN/A

        \[\leadsto x + y \cdot \color{blue}{\left(\frac{\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} + \frac{\frac{11167812716741}{40000000000000}}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}}\right)} \]
      6. distribute-rgt-inN/A

        \[\leadsto x + \color{blue}{\left(\frac{\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \cdot y + \frac{\frac{11167812716741}{40000000000000}}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \cdot y\right)} \]
      7. lower-fma.f64N/A

        \[\leadsto x + \color{blue}{\mathsf{fma}\left(\frac{\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}}, y, \frac{\frac{11167812716741}{40000000000000}}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \cdot y\right)} \]
    4. Applied rewrites99.8%

      \[\leadsto x + \color{blue}{\mathsf{fma}\left(\frac{\mathsf{fma}\left(0.0692910599291889, z, 0.4917317610505968\right) \cdot z}{\mathsf{fma}\left(6.012459259764103 + z, z, 3.350343815022304\right)}, y, \frac{0.279195317918525}{\mathsf{fma}\left(6.012459259764103 + z, z, 3.350343815022304\right)} \cdot y\right)} \]

    if 5.00000000000000009e305 < (+.f64 x (/.f64 (*.f64 y (+.f64 (*.f64 (+.f64 (*.f64 z #s(literal 692910599291889/10000000000000000 binary64)) #s(literal 307332350656623/625000000000000 binary64)) z) #s(literal 11167812716741/40000000000000 binary64))) (+.f64 (*.f64 (+.f64 z #s(literal 6012459259764103/1000000000000000 binary64)) z) #s(literal 104698244219447/31250000000000 binary64))))

    1. Initial program 1.0%

      \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
    2. Add Preprocessing
    3. Taylor expanded in z around inf

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

        \[\leadsto \color{blue}{\frac{692910599291889}{10000000000000000} \cdot y + x} \]
      2. lower-fma.f6499.6

        \[\leadsto \color{blue}{\mathsf{fma}\left(0.0692910599291889, y, x\right)} \]
    5. Applied rewrites99.6%

      \[\leadsto \color{blue}{\mathsf{fma}\left(0.0692910599291889, y, x\right)} \]
    6. Step-by-step derivation
      1. Applied rewrites46.6%

        \[\leadsto \frac{\mathsf{fma}\left(0.004801250986110448, y \cdot y, \left(-x\right) \cdot x\right)}{\color{blue}{0.0692910599291889 \cdot y - x}} \]
      2. Step-by-step derivation
        1. Applied rewrites99.6%

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

      Alternative 2: 99.0% accurate, 0.7× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} t_0 := 0.0692910599291889 \cdot y - x\\ \mathbf{if}\;z \leq -5 \cdot 10^{+30}:\\ \;\;\;\;\mathsf{fma}\left(0.004801250986110448 \cdot y, \frac{y}{t\_0}, \left(-x\right) \cdot \frac{x}{t\_0}\right)\\ \mathbf{elif}\;z \leq 2.25 \cdot 10^{-8}:\\ \;\;\;\;x + \frac{y \cdot \left(z \cdot 0.4917317610505968 + \mathsf{fma}\left(z \cdot z, 0.0692910599291889, 0.279195317918525\right)\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(y, 0.0692910599291889 - \frac{-0.07512208616047561}{z}, x\right)\\ \end{array} \end{array} \]
      (FPCore (x y z)
       :precision binary64
       (let* ((t_0 (- (* 0.0692910599291889 y) x)))
         (if (<= z -5e+30)
           (fma (* 0.004801250986110448 y) (/ y t_0) (* (- x) (/ x t_0)))
           (if (<= z 2.25e-8)
             (+
              x
              (/
               (*
                y
                (+
                 (* z 0.4917317610505968)
                 (fma (* z z) 0.0692910599291889 0.279195317918525)))
               (+ (* (+ z 6.012459259764103) z) 3.350343815022304)))
             (fma y (- 0.0692910599291889 (/ -0.07512208616047561 z)) x)))))
      double code(double x, double y, double z) {
      	double t_0 = (0.0692910599291889 * y) - x;
      	double tmp;
      	if (z <= -5e+30) {
      		tmp = fma((0.004801250986110448 * y), (y / t_0), (-x * (x / t_0)));
      	} else if (z <= 2.25e-8) {
      		tmp = x + ((y * ((z * 0.4917317610505968) + fma((z * z), 0.0692910599291889, 0.279195317918525))) / (((z + 6.012459259764103) * z) + 3.350343815022304));
      	} else {
      		tmp = fma(y, (0.0692910599291889 - (-0.07512208616047561 / z)), x);
      	}
      	return tmp;
      }
      
      function code(x, y, z)
      	t_0 = Float64(Float64(0.0692910599291889 * y) - x)
      	tmp = 0.0
      	if (z <= -5e+30)
      		tmp = fma(Float64(0.004801250986110448 * y), Float64(y / t_0), Float64(Float64(-x) * Float64(x / t_0)));
      	elseif (z <= 2.25e-8)
      		tmp = Float64(x + Float64(Float64(y * Float64(Float64(z * 0.4917317610505968) + fma(Float64(z * z), 0.0692910599291889, 0.279195317918525))) / Float64(Float64(Float64(z + 6.012459259764103) * z) + 3.350343815022304)));
      	else
      		tmp = fma(y, Float64(0.0692910599291889 - Float64(-0.07512208616047561 / z)), x);
      	end
      	return tmp
      end
      
      code[x_, y_, z_] := Block[{t$95$0 = N[(N[(0.0692910599291889 * y), $MachinePrecision] - x), $MachinePrecision]}, If[LessEqual[z, -5e+30], N[(N[(0.004801250986110448 * y), $MachinePrecision] * N[(y / t$95$0), $MachinePrecision] + N[((-x) * N[(x / t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[z, 2.25e-8], N[(x + N[(N[(y * N[(N[(z * 0.4917317610505968), $MachinePrecision] + N[(N[(z * z), $MachinePrecision] * 0.0692910599291889 + 0.279195317918525), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(z + 6.012459259764103), $MachinePrecision] * z), $MachinePrecision] + 3.350343815022304), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(0.0692910599291889 - N[(-0.07512208616047561 / z), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision]]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      t_0 := 0.0692910599291889 \cdot y - x\\
      \mathbf{if}\;z \leq -5 \cdot 10^{+30}:\\
      \;\;\;\;\mathsf{fma}\left(0.004801250986110448 \cdot y, \frac{y}{t\_0}, \left(-x\right) \cdot \frac{x}{t\_0}\right)\\
      
      \mathbf{elif}\;z \leq 2.25 \cdot 10^{-8}:\\
      \;\;\;\;x + \frac{y \cdot \left(z \cdot 0.4917317610505968 + \mathsf{fma}\left(z \cdot z, 0.0692910599291889, 0.279195317918525\right)\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304}\\
      
      \mathbf{else}:\\
      \;\;\;\;\mathsf{fma}\left(y, 0.0692910599291889 - \frac{-0.07512208616047561}{z}, x\right)\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 3 regimes
      2. if z < -4.9999999999999998e30

        1. Initial program 32.1%

          \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
        2. Add Preprocessing
        3. Taylor expanded in z around inf

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

            \[\leadsto \color{blue}{\frac{692910599291889}{10000000000000000} \cdot y + x} \]
          2. lower-fma.f6499.6

            \[\leadsto \color{blue}{\mathsf{fma}\left(0.0692910599291889, y, x\right)} \]
        5. Applied rewrites99.6%

          \[\leadsto \color{blue}{\mathsf{fma}\left(0.0692910599291889, y, x\right)} \]
        6. Step-by-step derivation
          1. Applied rewrites54.9%

            \[\leadsto \frac{\mathsf{fma}\left(0.004801250986110448, y \cdot y, \left(-x\right) \cdot x\right)}{\color{blue}{0.0692910599291889 \cdot y - x}} \]
          2. Step-by-step derivation
            1. Applied rewrites99.8%

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

            if -4.9999999999999998e30 < z < 2.24999999999999996e-8

            1. Initial program 99.7%

              \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
            2. Add Preprocessing
            3. Step-by-step derivation
              1. lift-+.f64N/A

                \[\leadsto x + \frac{y \cdot \color{blue}{\left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z + \frac{11167812716741}{40000000000000}\right)}}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              2. lift-*.f64N/A

                \[\leadsto x + \frac{y \cdot \left(\color{blue}{\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z} + \frac{11167812716741}{40000000000000}\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              3. *-commutativeN/A

                \[\leadsto x + \frac{y \cdot \left(\color{blue}{z \cdot \left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right)} + \frac{11167812716741}{40000000000000}\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              4. lift-+.f64N/A

                \[\leadsto x + \frac{y \cdot \left(z \cdot \color{blue}{\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right)} + \frac{11167812716741}{40000000000000}\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              5. +-commutativeN/A

                \[\leadsto x + \frac{y \cdot \left(z \cdot \color{blue}{\left(\frac{307332350656623}{625000000000000} + z \cdot \frac{692910599291889}{10000000000000000}\right)} + \frac{11167812716741}{40000000000000}\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              6. distribute-lft-inN/A

                \[\leadsto x + \frac{y \cdot \left(\color{blue}{\left(z \cdot \frac{307332350656623}{625000000000000} + z \cdot \left(z \cdot \frac{692910599291889}{10000000000000000}\right)\right)} + \frac{11167812716741}{40000000000000}\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              7. associate-+l+N/A

                \[\leadsto x + \frac{y \cdot \color{blue}{\left(z \cdot \frac{307332350656623}{625000000000000} + \left(z \cdot \left(z \cdot \frac{692910599291889}{10000000000000000}\right) + \frac{11167812716741}{40000000000000}\right)\right)}}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              8. lower-+.f64N/A

                \[\leadsto x + \frac{y \cdot \color{blue}{\left(z \cdot \frac{307332350656623}{625000000000000} + \left(z \cdot \left(z \cdot \frac{692910599291889}{10000000000000000}\right) + \frac{11167812716741}{40000000000000}\right)\right)}}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              9. lower-*.f64N/A

                \[\leadsto x + \frac{y \cdot \left(\color{blue}{z \cdot \frac{307332350656623}{625000000000000}} + \left(z \cdot \left(z \cdot \frac{692910599291889}{10000000000000000}\right) + \frac{11167812716741}{40000000000000}\right)\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              10. lift-*.f64N/A

                \[\leadsto x + \frac{y \cdot \left(z \cdot \frac{307332350656623}{625000000000000} + \left(z \cdot \color{blue}{\left(z \cdot \frac{692910599291889}{10000000000000000}\right)} + \frac{11167812716741}{40000000000000}\right)\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              11. associate-*r*N/A

                \[\leadsto x + \frac{y \cdot \left(z \cdot \frac{307332350656623}{625000000000000} + \left(\color{blue}{\left(z \cdot z\right) \cdot \frac{692910599291889}{10000000000000000}} + \frac{11167812716741}{40000000000000}\right)\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              12. lower-fma.f64N/A

                \[\leadsto x + \frac{y \cdot \left(z \cdot \frac{307332350656623}{625000000000000} + \color{blue}{\mathsf{fma}\left(z \cdot z, \frac{692910599291889}{10000000000000000}, \frac{11167812716741}{40000000000000}\right)}\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              13. lower-*.f6499.7

                \[\leadsto x + \frac{y \cdot \left(z \cdot 0.4917317610505968 + \mathsf{fma}\left(\color{blue}{z \cdot z}, 0.0692910599291889, 0.279195317918525\right)\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
            4. Applied rewrites99.7%

              \[\leadsto x + \frac{y \cdot \color{blue}{\left(z \cdot 0.4917317610505968 + \mathsf{fma}\left(z \cdot z, 0.0692910599291889, 0.279195317918525\right)\right)}}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]

            if 2.24999999999999996e-8 < z

            1. Initial program 37.5%

              \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
            2. Add Preprocessing
            3. Taylor expanded in z around inf

              \[\leadsto \color{blue}{\left(x + \left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right)\right) - \frac{4166096748901211929300981260567}{10000000000000000000000000000000} \cdot \frac{y}{z}} \]
            4. Step-by-step derivation
              1. associate--l+N/A

                \[\leadsto \color{blue}{x + \left(\left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right) - \frac{4166096748901211929300981260567}{10000000000000000000000000000000} \cdot \frac{y}{z}\right)} \]
              2. +-commutativeN/A

                \[\leadsto \color{blue}{\left(\left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right) - \frac{4166096748901211929300981260567}{10000000000000000000000000000000} \cdot \frac{y}{z}\right) + x} \]
              3. fp-cancel-sub-sign-invN/A

                \[\leadsto \color{blue}{\left(\left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right) + \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)} + x \]
              4. fp-cancel-sign-sub-invN/A

                \[\leadsto \left(\color{blue}{\left(\frac{692910599291889}{10000000000000000} \cdot y - \left(\mathsf{neg}\left(\frac{307332350656623}{625000000000000}\right)\right) \cdot \frac{y}{z}\right)} + \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right) + x \]
              5. associate-+l-N/A

                \[\leadsto \color{blue}{\left(\frac{692910599291889}{10000000000000000} \cdot y - \left(\left(\mathsf{neg}\left(\frac{307332350656623}{625000000000000}\right)\right) \cdot \frac{y}{z} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right)} + x \]
              6. *-commutativeN/A

                \[\leadsto \left(\color{blue}{y \cdot \frac{692910599291889}{10000000000000000}} - \left(\left(\mathsf{neg}\left(\frac{307332350656623}{625000000000000}\right)\right) \cdot \frac{y}{z} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right) + x \]
              7. metadata-evalN/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\color{blue}{\frac{-307332350656623}{625000000000000}} \cdot \frac{y}{z} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right) + x \]
              8. associate-*r/N/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\color{blue}{\frac{\frac{-307332350656623}{625000000000000} \cdot y}{z}} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right) + x \]
              9. metadata-evalN/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\frac{\frac{-307332350656623}{625000000000000} \cdot y}{z} - \color{blue}{\frac{-4166096748901211929300981260567}{10000000000000000000000000000000}} \cdot \frac{y}{z}\right)\right) + x \]
              10. associate-*r/N/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\frac{\frac{-307332350656623}{625000000000000} \cdot y}{z} - \color{blue}{\frac{\frac{-4166096748901211929300981260567}{10000000000000000000000000000000} \cdot y}{z}}\right)\right) + x \]
              11. div-subN/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \color{blue}{\frac{\frac{-307332350656623}{625000000000000} \cdot y - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000} \cdot y}{z}}\right) + x \]
              12. distribute-rgt-out--N/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \frac{\color{blue}{y \cdot \left(\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}\right)}}{z}\right) + x \]
              13. associate-/l*N/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \color{blue}{y \cdot \frac{\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}}{z}}\right) + x \]
              14. distribute-lft-out--N/A

                \[\leadsto \color{blue}{y \cdot \left(\frac{692910599291889}{10000000000000000} - \frac{\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}}{z}\right)} + x \]
              15. lower-fma.f64N/A

                \[\leadsto \color{blue}{\mathsf{fma}\left(y, \frac{692910599291889}{10000000000000000} - \frac{\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}}{z}, x\right)} \]
            5. Applied rewrites99.6%

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

          Alternative 3: 99.0% accurate, 0.8× speedup?

          \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;z \leq -1.55 \cdot 10^{+30}:\\ \;\;\;\;\mathsf{fma}\left(0.0692910599291889, y, x\right)\\ \mathbf{elif}\;z \leq 2.25 \cdot 10^{-8}:\\ \;\;\;\;x + \frac{y \cdot \left(z \cdot 0.4917317610505968 + \mathsf{fma}\left(z \cdot z, 0.0692910599291889, 0.279195317918525\right)\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(y, 0.0692910599291889 - \frac{-0.07512208616047561}{z}, x\right)\\ \end{array} \end{array} \]
          (FPCore (x y z)
           :precision binary64
           (if (<= z -1.55e+30)
             (fma 0.0692910599291889 y x)
             (if (<= z 2.25e-8)
               (+
                x
                (/
                 (*
                  y
                  (+
                   (* z 0.4917317610505968)
                   (fma (* z z) 0.0692910599291889 0.279195317918525)))
                 (+ (* (+ z 6.012459259764103) z) 3.350343815022304)))
               (fma y (- 0.0692910599291889 (/ -0.07512208616047561 z)) x))))
          double code(double x, double y, double z) {
          	double tmp;
          	if (z <= -1.55e+30) {
          		tmp = fma(0.0692910599291889, y, x);
          	} else if (z <= 2.25e-8) {
          		tmp = x + ((y * ((z * 0.4917317610505968) + fma((z * z), 0.0692910599291889, 0.279195317918525))) / (((z + 6.012459259764103) * z) + 3.350343815022304));
          	} else {
          		tmp = fma(y, (0.0692910599291889 - (-0.07512208616047561 / z)), x);
          	}
          	return tmp;
          }
          
          function code(x, y, z)
          	tmp = 0.0
          	if (z <= -1.55e+30)
          		tmp = fma(0.0692910599291889, y, x);
          	elseif (z <= 2.25e-8)
          		tmp = Float64(x + Float64(Float64(y * Float64(Float64(z * 0.4917317610505968) + fma(Float64(z * z), 0.0692910599291889, 0.279195317918525))) / Float64(Float64(Float64(z + 6.012459259764103) * z) + 3.350343815022304)));
          	else
          		tmp = fma(y, Float64(0.0692910599291889 - Float64(-0.07512208616047561 / z)), x);
          	end
          	return tmp
          end
          
          code[x_, y_, z_] := If[LessEqual[z, -1.55e+30], N[(0.0692910599291889 * y + x), $MachinePrecision], If[LessEqual[z, 2.25e-8], N[(x + N[(N[(y * N[(N[(z * 0.4917317610505968), $MachinePrecision] + N[(N[(z * z), $MachinePrecision] * 0.0692910599291889 + 0.279195317918525), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(z + 6.012459259764103), $MachinePrecision] * z), $MachinePrecision] + 3.350343815022304), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(0.0692910599291889 - N[(-0.07512208616047561 / z), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision]]]
          
          \begin{array}{l}
          
          \\
          \begin{array}{l}
          \mathbf{if}\;z \leq -1.55 \cdot 10^{+30}:\\
          \;\;\;\;\mathsf{fma}\left(0.0692910599291889, y, x\right)\\
          
          \mathbf{elif}\;z \leq 2.25 \cdot 10^{-8}:\\
          \;\;\;\;x + \frac{y \cdot \left(z \cdot 0.4917317610505968 + \mathsf{fma}\left(z \cdot z, 0.0692910599291889, 0.279195317918525\right)\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304}\\
          
          \mathbf{else}:\\
          \;\;\;\;\mathsf{fma}\left(y, 0.0692910599291889 - \frac{-0.07512208616047561}{z}, x\right)\\
          
          
          \end{array}
          \end{array}
          
          Derivation
          1. Split input into 3 regimes
          2. if z < -1.5499999999999999e30

            1. Initial program 32.1%

              \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
            2. Add Preprocessing
            3. Taylor expanded in z around inf

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

                \[\leadsto \color{blue}{\frac{692910599291889}{10000000000000000} \cdot y + x} \]
              2. lower-fma.f6499.6

                \[\leadsto \color{blue}{\mathsf{fma}\left(0.0692910599291889, y, x\right)} \]
            5. Applied rewrites99.6%

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

            if -1.5499999999999999e30 < z < 2.24999999999999996e-8

            1. Initial program 99.7%

              \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
            2. Add Preprocessing
            3. Step-by-step derivation
              1. lift-+.f64N/A

                \[\leadsto x + \frac{y \cdot \color{blue}{\left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z + \frac{11167812716741}{40000000000000}\right)}}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              2. lift-*.f64N/A

                \[\leadsto x + \frac{y \cdot \left(\color{blue}{\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z} + \frac{11167812716741}{40000000000000}\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              3. *-commutativeN/A

                \[\leadsto x + \frac{y \cdot \left(\color{blue}{z \cdot \left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right)} + \frac{11167812716741}{40000000000000}\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              4. lift-+.f64N/A

                \[\leadsto x + \frac{y \cdot \left(z \cdot \color{blue}{\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right)} + \frac{11167812716741}{40000000000000}\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              5. +-commutativeN/A

                \[\leadsto x + \frac{y \cdot \left(z \cdot \color{blue}{\left(\frac{307332350656623}{625000000000000} + z \cdot \frac{692910599291889}{10000000000000000}\right)} + \frac{11167812716741}{40000000000000}\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              6. distribute-lft-inN/A

                \[\leadsto x + \frac{y \cdot \left(\color{blue}{\left(z \cdot \frac{307332350656623}{625000000000000} + z \cdot \left(z \cdot \frac{692910599291889}{10000000000000000}\right)\right)} + \frac{11167812716741}{40000000000000}\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              7. associate-+l+N/A

                \[\leadsto x + \frac{y \cdot \color{blue}{\left(z \cdot \frac{307332350656623}{625000000000000} + \left(z \cdot \left(z \cdot \frac{692910599291889}{10000000000000000}\right) + \frac{11167812716741}{40000000000000}\right)\right)}}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              8. lower-+.f64N/A

                \[\leadsto x + \frac{y \cdot \color{blue}{\left(z \cdot \frac{307332350656623}{625000000000000} + \left(z \cdot \left(z \cdot \frac{692910599291889}{10000000000000000}\right) + \frac{11167812716741}{40000000000000}\right)\right)}}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              9. lower-*.f64N/A

                \[\leadsto x + \frac{y \cdot \left(\color{blue}{z \cdot \frac{307332350656623}{625000000000000}} + \left(z \cdot \left(z \cdot \frac{692910599291889}{10000000000000000}\right) + \frac{11167812716741}{40000000000000}\right)\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              10. lift-*.f64N/A

                \[\leadsto x + \frac{y \cdot \left(z \cdot \frac{307332350656623}{625000000000000} + \left(z \cdot \color{blue}{\left(z \cdot \frac{692910599291889}{10000000000000000}\right)} + \frac{11167812716741}{40000000000000}\right)\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              11. associate-*r*N/A

                \[\leadsto x + \frac{y \cdot \left(z \cdot \frac{307332350656623}{625000000000000} + \left(\color{blue}{\left(z \cdot z\right) \cdot \frac{692910599291889}{10000000000000000}} + \frac{11167812716741}{40000000000000}\right)\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              12. lower-fma.f64N/A

                \[\leadsto x + \frac{y \cdot \left(z \cdot \frac{307332350656623}{625000000000000} + \color{blue}{\mathsf{fma}\left(z \cdot z, \frac{692910599291889}{10000000000000000}, \frac{11167812716741}{40000000000000}\right)}\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              13. lower-*.f6499.7

                \[\leadsto x + \frac{y \cdot \left(z \cdot 0.4917317610505968 + \mathsf{fma}\left(\color{blue}{z \cdot z}, 0.0692910599291889, 0.279195317918525\right)\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
            4. Applied rewrites99.7%

              \[\leadsto x + \frac{y \cdot \color{blue}{\left(z \cdot 0.4917317610505968 + \mathsf{fma}\left(z \cdot z, 0.0692910599291889, 0.279195317918525\right)\right)}}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]

            if 2.24999999999999996e-8 < z

            1. Initial program 37.5%

              \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
            2. Add Preprocessing
            3. Taylor expanded in z around inf

              \[\leadsto \color{blue}{\left(x + \left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right)\right) - \frac{4166096748901211929300981260567}{10000000000000000000000000000000} \cdot \frac{y}{z}} \]
            4. Step-by-step derivation
              1. associate--l+N/A

                \[\leadsto \color{blue}{x + \left(\left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right) - \frac{4166096748901211929300981260567}{10000000000000000000000000000000} \cdot \frac{y}{z}\right)} \]
              2. +-commutativeN/A

                \[\leadsto \color{blue}{\left(\left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right) - \frac{4166096748901211929300981260567}{10000000000000000000000000000000} \cdot \frac{y}{z}\right) + x} \]
              3. fp-cancel-sub-sign-invN/A

                \[\leadsto \color{blue}{\left(\left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right) + \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)} + x \]
              4. fp-cancel-sign-sub-invN/A

                \[\leadsto \left(\color{blue}{\left(\frac{692910599291889}{10000000000000000} \cdot y - \left(\mathsf{neg}\left(\frac{307332350656623}{625000000000000}\right)\right) \cdot \frac{y}{z}\right)} + \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right) + x \]
              5. associate-+l-N/A

                \[\leadsto \color{blue}{\left(\frac{692910599291889}{10000000000000000} \cdot y - \left(\left(\mathsf{neg}\left(\frac{307332350656623}{625000000000000}\right)\right) \cdot \frac{y}{z} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right)} + x \]
              6. *-commutativeN/A

                \[\leadsto \left(\color{blue}{y \cdot \frac{692910599291889}{10000000000000000}} - \left(\left(\mathsf{neg}\left(\frac{307332350656623}{625000000000000}\right)\right) \cdot \frac{y}{z} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right) + x \]
              7. metadata-evalN/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\color{blue}{\frac{-307332350656623}{625000000000000}} \cdot \frac{y}{z} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right) + x \]
              8. associate-*r/N/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\color{blue}{\frac{\frac{-307332350656623}{625000000000000} \cdot y}{z}} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right) + x \]
              9. metadata-evalN/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\frac{\frac{-307332350656623}{625000000000000} \cdot y}{z} - \color{blue}{\frac{-4166096748901211929300981260567}{10000000000000000000000000000000}} \cdot \frac{y}{z}\right)\right) + x \]
              10. associate-*r/N/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\frac{\frac{-307332350656623}{625000000000000} \cdot y}{z} - \color{blue}{\frac{\frac{-4166096748901211929300981260567}{10000000000000000000000000000000} \cdot y}{z}}\right)\right) + x \]
              11. div-subN/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \color{blue}{\frac{\frac{-307332350656623}{625000000000000} \cdot y - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000} \cdot y}{z}}\right) + x \]
              12. distribute-rgt-out--N/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \frac{\color{blue}{y \cdot \left(\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}\right)}}{z}\right) + x \]
              13. associate-/l*N/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \color{blue}{y \cdot \frac{\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}}{z}}\right) + x \]
              14. distribute-lft-out--N/A

                \[\leadsto \color{blue}{y \cdot \left(\frac{692910599291889}{10000000000000000} - \frac{\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}}{z}\right)} + x \]
              15. lower-fma.f64N/A

                \[\leadsto \color{blue}{\mathsf{fma}\left(y, \frac{692910599291889}{10000000000000000} - \frac{\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}}{z}, x\right)} \]
            5. Applied rewrites99.6%

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

          Alternative 4: 99.0% accurate, 0.9× speedup?

          \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;z \leq -5.4 \cdot 10^{+29}:\\ \;\;\;\;\mathsf{fma}\left(0.0692910599291889, y, x\right)\\ \mathbf{elif}\;z \leq 2.25 \cdot 10^{-8}:\\ \;\;\;\;x + \frac{\mathsf{fma}\left(\mathsf{fma}\left(0.0692910599291889, z, 0.4917317610505968\right), z, 0.279195317918525\right) \cdot y}{\mathsf{fma}\left(6.012459259764103 + z, z, 3.350343815022304\right)}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(y, 0.0692910599291889 - \frac{-0.07512208616047561}{z}, x\right)\\ \end{array} \end{array} \]
          (FPCore (x y z)
           :precision binary64
           (if (<= z -5.4e+29)
             (fma 0.0692910599291889 y x)
             (if (<= z 2.25e-8)
               (+
                x
                (/
                 (*
                  (fma (fma 0.0692910599291889 z 0.4917317610505968) z 0.279195317918525)
                  y)
                 (fma (+ 6.012459259764103 z) z 3.350343815022304)))
               (fma y (- 0.0692910599291889 (/ -0.07512208616047561 z)) x))))
          double code(double x, double y, double z) {
          	double tmp;
          	if (z <= -5.4e+29) {
          		tmp = fma(0.0692910599291889, y, x);
          	} else if (z <= 2.25e-8) {
          		tmp = x + ((fma(fma(0.0692910599291889, z, 0.4917317610505968), z, 0.279195317918525) * y) / fma((6.012459259764103 + z), z, 3.350343815022304));
          	} else {
          		tmp = fma(y, (0.0692910599291889 - (-0.07512208616047561 / z)), x);
          	}
          	return tmp;
          }
          
          function code(x, y, z)
          	tmp = 0.0
          	if (z <= -5.4e+29)
          		tmp = fma(0.0692910599291889, y, x);
          	elseif (z <= 2.25e-8)
          		tmp = Float64(x + Float64(Float64(fma(fma(0.0692910599291889, z, 0.4917317610505968), z, 0.279195317918525) * y) / fma(Float64(6.012459259764103 + z), z, 3.350343815022304)));
          	else
          		tmp = fma(y, Float64(0.0692910599291889 - Float64(-0.07512208616047561 / z)), x);
          	end
          	return tmp
          end
          
          code[x_, y_, z_] := If[LessEqual[z, -5.4e+29], N[(0.0692910599291889 * y + x), $MachinePrecision], If[LessEqual[z, 2.25e-8], N[(x + N[(N[(N[(N[(0.0692910599291889 * z + 0.4917317610505968), $MachinePrecision] * z + 0.279195317918525), $MachinePrecision] * y), $MachinePrecision] / N[(N[(6.012459259764103 + z), $MachinePrecision] * z + 3.350343815022304), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(0.0692910599291889 - N[(-0.07512208616047561 / z), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision]]]
          
          \begin{array}{l}
          
          \\
          \begin{array}{l}
          \mathbf{if}\;z \leq -5.4 \cdot 10^{+29}:\\
          \;\;\;\;\mathsf{fma}\left(0.0692910599291889, y, x\right)\\
          
          \mathbf{elif}\;z \leq 2.25 \cdot 10^{-8}:\\
          \;\;\;\;x + \frac{\mathsf{fma}\left(\mathsf{fma}\left(0.0692910599291889, z, 0.4917317610505968\right), z, 0.279195317918525\right) \cdot y}{\mathsf{fma}\left(6.012459259764103 + z, z, 3.350343815022304\right)}\\
          
          \mathbf{else}:\\
          \;\;\;\;\mathsf{fma}\left(y, 0.0692910599291889 - \frac{-0.07512208616047561}{z}, x\right)\\
          
          
          \end{array}
          \end{array}
          
          Derivation
          1. Split input into 3 regimes
          2. if z < -5.4e29

            1. Initial program 32.1%

              \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
            2. Add Preprocessing
            3. Taylor expanded in z around inf

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

                \[\leadsto \color{blue}{\frac{692910599291889}{10000000000000000} \cdot y + x} \]
              2. lower-fma.f6499.6

                \[\leadsto \color{blue}{\mathsf{fma}\left(0.0692910599291889, y, x\right)} \]
            5. Applied rewrites99.6%

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

            if -5.4e29 < z < 2.24999999999999996e-8

            1. Initial program 99.7%

              \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
            2. Add Preprocessing
            3. Step-by-step derivation
              1. lift-*.f64N/A

                \[\leadsto x + \frac{\color{blue}{y \cdot \left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z + \frac{11167812716741}{40000000000000}\right)}}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              2. *-commutativeN/A

                \[\leadsto x + \frac{\color{blue}{\left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z + \frac{11167812716741}{40000000000000}\right) \cdot y}}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              3. lower-*.f6499.7

                \[\leadsto x + \frac{\color{blue}{\left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right) \cdot y}}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
              4. lift-+.f64N/A

                \[\leadsto x + \frac{\color{blue}{\left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z + \frac{11167812716741}{40000000000000}\right)} \cdot y}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              5. lift-*.f64N/A

                \[\leadsto x + \frac{\left(\color{blue}{\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z} + \frac{11167812716741}{40000000000000}\right) \cdot y}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              6. lower-fma.f6499.7

                \[\leadsto x + \frac{\color{blue}{\mathsf{fma}\left(z \cdot 0.0692910599291889 + 0.4917317610505968, z, 0.279195317918525\right)} \cdot y}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
              7. lift-+.f64N/A

                \[\leadsto x + \frac{\mathsf{fma}\left(\color{blue}{z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}}, z, \frac{11167812716741}{40000000000000}\right) \cdot y}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              8. lift-*.f64N/A

                \[\leadsto x + \frac{\mathsf{fma}\left(\color{blue}{z \cdot \frac{692910599291889}{10000000000000000}} + \frac{307332350656623}{625000000000000}, z, \frac{11167812716741}{40000000000000}\right) \cdot y}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              9. *-commutativeN/A

                \[\leadsto x + \frac{\mathsf{fma}\left(\color{blue}{\frac{692910599291889}{10000000000000000} \cdot z} + \frac{307332350656623}{625000000000000}, z, \frac{11167812716741}{40000000000000}\right) \cdot y}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              10. lower-fma.f6499.7

                \[\leadsto x + \frac{\mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(0.0692910599291889, z, 0.4917317610505968\right)}, z, 0.279195317918525\right) \cdot y}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
              11. lift-+.f64N/A

                \[\leadsto x + \frac{\mathsf{fma}\left(\mathsf{fma}\left(\frac{692910599291889}{10000000000000000}, z, \frac{307332350656623}{625000000000000}\right), z, \frac{11167812716741}{40000000000000}\right) \cdot y}{\color{blue}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}}} \]
              12. lift-*.f64N/A

                \[\leadsto x + \frac{\mathsf{fma}\left(\mathsf{fma}\left(\frac{692910599291889}{10000000000000000}, z, \frac{307332350656623}{625000000000000}\right), z, \frac{11167812716741}{40000000000000}\right) \cdot y}{\color{blue}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z} + \frac{104698244219447}{31250000000000}} \]
              13. lower-fma.f6499.7

                \[\leadsto x + \frac{\mathsf{fma}\left(\mathsf{fma}\left(0.0692910599291889, z, 0.4917317610505968\right), z, 0.279195317918525\right) \cdot y}{\color{blue}{\mathsf{fma}\left(z + 6.012459259764103, z, 3.350343815022304\right)}} \]
              14. lift-+.f64N/A

                \[\leadsto x + \frac{\mathsf{fma}\left(\mathsf{fma}\left(\frac{692910599291889}{10000000000000000}, z, \frac{307332350656623}{625000000000000}\right), z, \frac{11167812716741}{40000000000000}\right) \cdot y}{\mathsf{fma}\left(\color{blue}{z + \frac{6012459259764103}{1000000000000000}}, z, \frac{104698244219447}{31250000000000}\right)} \]
              15. +-commutativeN/A

                \[\leadsto x + \frac{\mathsf{fma}\left(\mathsf{fma}\left(\frac{692910599291889}{10000000000000000}, z, \frac{307332350656623}{625000000000000}\right), z, \frac{11167812716741}{40000000000000}\right) \cdot y}{\mathsf{fma}\left(\color{blue}{\frac{6012459259764103}{1000000000000000} + z}, z, \frac{104698244219447}{31250000000000}\right)} \]
              16. lower-+.f6499.7

                \[\leadsto x + \frac{\mathsf{fma}\left(\mathsf{fma}\left(0.0692910599291889, z, 0.4917317610505968\right), z, 0.279195317918525\right) \cdot y}{\mathsf{fma}\left(\color{blue}{6.012459259764103 + z}, z, 3.350343815022304\right)} \]
            4. Applied rewrites99.7%

              \[\leadsto x + \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(0.0692910599291889, z, 0.4917317610505968\right), z, 0.279195317918525\right) \cdot y}{\mathsf{fma}\left(6.012459259764103 + z, z, 3.350343815022304\right)}} \]

            if 2.24999999999999996e-8 < z

            1. Initial program 37.5%

              \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
            2. Add Preprocessing
            3. Taylor expanded in z around inf

              \[\leadsto \color{blue}{\left(x + \left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right)\right) - \frac{4166096748901211929300981260567}{10000000000000000000000000000000} \cdot \frac{y}{z}} \]
            4. Step-by-step derivation
              1. associate--l+N/A

                \[\leadsto \color{blue}{x + \left(\left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right) - \frac{4166096748901211929300981260567}{10000000000000000000000000000000} \cdot \frac{y}{z}\right)} \]
              2. +-commutativeN/A

                \[\leadsto \color{blue}{\left(\left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right) - \frac{4166096748901211929300981260567}{10000000000000000000000000000000} \cdot \frac{y}{z}\right) + x} \]
              3. fp-cancel-sub-sign-invN/A

                \[\leadsto \color{blue}{\left(\left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right) + \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)} + x \]
              4. fp-cancel-sign-sub-invN/A

                \[\leadsto \left(\color{blue}{\left(\frac{692910599291889}{10000000000000000} \cdot y - \left(\mathsf{neg}\left(\frac{307332350656623}{625000000000000}\right)\right) \cdot \frac{y}{z}\right)} + \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right) + x \]
              5. associate-+l-N/A

                \[\leadsto \color{blue}{\left(\frac{692910599291889}{10000000000000000} \cdot y - \left(\left(\mathsf{neg}\left(\frac{307332350656623}{625000000000000}\right)\right) \cdot \frac{y}{z} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right)} + x \]
              6. *-commutativeN/A

                \[\leadsto \left(\color{blue}{y \cdot \frac{692910599291889}{10000000000000000}} - \left(\left(\mathsf{neg}\left(\frac{307332350656623}{625000000000000}\right)\right) \cdot \frac{y}{z} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right) + x \]
              7. metadata-evalN/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\color{blue}{\frac{-307332350656623}{625000000000000}} \cdot \frac{y}{z} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right) + x \]
              8. associate-*r/N/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\color{blue}{\frac{\frac{-307332350656623}{625000000000000} \cdot y}{z}} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right) + x \]
              9. metadata-evalN/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\frac{\frac{-307332350656623}{625000000000000} \cdot y}{z} - \color{blue}{\frac{-4166096748901211929300981260567}{10000000000000000000000000000000}} \cdot \frac{y}{z}\right)\right) + x \]
              10. associate-*r/N/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\frac{\frac{-307332350656623}{625000000000000} \cdot y}{z} - \color{blue}{\frac{\frac{-4166096748901211929300981260567}{10000000000000000000000000000000} \cdot y}{z}}\right)\right) + x \]
              11. div-subN/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \color{blue}{\frac{\frac{-307332350656623}{625000000000000} \cdot y - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000} \cdot y}{z}}\right) + x \]
              12. distribute-rgt-out--N/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \frac{\color{blue}{y \cdot \left(\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}\right)}}{z}\right) + x \]
              13. associate-/l*N/A

                \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \color{blue}{y \cdot \frac{\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}}{z}}\right) + x \]
              14. distribute-lft-out--N/A

                \[\leadsto \color{blue}{y \cdot \left(\frac{692910599291889}{10000000000000000} - \frac{\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}}{z}\right)} + x \]
              15. lower-fma.f64N/A

                \[\leadsto \color{blue}{\mathsf{fma}\left(y, \frac{692910599291889}{10000000000000000} - \frac{\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}}{z}, x\right)} \]
            5. Applied rewrites99.6%

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

          Alternative 5: 98.0% accurate, 1.2× speedup?

          \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;z \leq -5.4 \cdot 10^{+29}:\\ \;\;\;\;\mathsf{fma}\left(0.0692910599291889, y, x\right)\\ \mathbf{elif}\;z \leq 2.25 \cdot 10^{-8}:\\ \;\;\;\;\mathsf{fma}\left(y, 0.08333333333333323, x + \left(y \cdot \mathsf{fma}\left(0.0007936505811533442, z, -0.00277777777751721\right)\right) \cdot z\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(y, 0.0692910599291889 - \frac{-0.07512208616047561}{z}, x\right)\\ \end{array} \end{array} \]
          (FPCore (x y z)
           :precision binary64
           (if (<= z -5.4e+29)
             (fma 0.0692910599291889 y x)
             (if (<= z 2.25e-8)
               (fma
                y
                0.08333333333333323
                (+ x (* (* y (fma 0.0007936505811533442 z -0.00277777777751721)) z)))
               (fma y (- 0.0692910599291889 (/ -0.07512208616047561 z)) x))))
          double code(double x, double y, double z) {
          	double tmp;
          	if (z <= -5.4e+29) {
          		tmp = fma(0.0692910599291889, y, x);
          	} else if (z <= 2.25e-8) {
          		tmp = fma(y, 0.08333333333333323, (x + ((y * fma(0.0007936505811533442, z, -0.00277777777751721)) * z)));
          	} else {
          		tmp = fma(y, (0.0692910599291889 - (-0.07512208616047561 / z)), x);
          	}
          	return tmp;
          }
          
          function code(x, y, z)
          	tmp = 0.0
          	if (z <= -5.4e+29)
          		tmp = fma(0.0692910599291889, y, x);
          	elseif (z <= 2.25e-8)
          		tmp = fma(y, 0.08333333333333323, Float64(x + Float64(Float64(y * fma(0.0007936505811533442, z, -0.00277777777751721)) * z)));
          	else
          		tmp = fma(y, Float64(0.0692910599291889 - Float64(-0.07512208616047561 / z)), x);
          	end
          	return tmp
          end
          
          code[x_, y_, z_] := If[LessEqual[z, -5.4e+29], N[(0.0692910599291889 * y + x), $MachinePrecision], If[LessEqual[z, 2.25e-8], N[(y * 0.08333333333333323 + N[(x + N[(N[(y * N[(0.0007936505811533442 * z + -0.00277777777751721), $MachinePrecision]), $MachinePrecision] * z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(0.0692910599291889 - N[(-0.07512208616047561 / z), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision]]]
          
          \begin{array}{l}
          
          \\
          \begin{array}{l}
          \mathbf{if}\;z \leq -5.4 \cdot 10^{+29}:\\
          \;\;\;\;\mathsf{fma}\left(0.0692910599291889, y, x\right)\\
          
          \mathbf{elif}\;z \leq 2.25 \cdot 10^{-8}:\\
          \;\;\;\;\mathsf{fma}\left(y, 0.08333333333333323, x + \left(y \cdot \mathsf{fma}\left(0.0007936505811533442, z, -0.00277777777751721\right)\right) \cdot z\right)\\
          
          \mathbf{else}:\\
          \;\;\;\;\mathsf{fma}\left(y, 0.0692910599291889 - \frac{-0.07512208616047561}{z}, x\right)\\
          
          
          \end{array}
          \end{array}
          
          Derivation
          1. Split input into 3 regimes
          2. if z < -5.4e29

            1. Initial program 32.1%

              \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
            2. Add Preprocessing
            3. Taylor expanded in z around inf

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

                \[\leadsto \color{blue}{\frac{692910599291889}{10000000000000000} \cdot y + x} \]
              2. lower-fma.f6499.6

                \[\leadsto \color{blue}{\mathsf{fma}\left(0.0692910599291889, y, x\right)} \]
            5. Applied rewrites99.6%

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

            if -5.4e29 < z < 2.24999999999999996e-8

            1. Initial program 99.7%

              \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
            2. Add Preprocessing
            3. Step-by-step derivation
              1. lift-/.f64N/A

                \[\leadsto x + \color{blue}{\frac{y \cdot \left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z + \frac{11167812716741}{40000000000000}\right)}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}}} \]
              2. lift-*.f64N/A

                \[\leadsto x + \frac{\color{blue}{y \cdot \left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z + \frac{11167812716741}{40000000000000}\right)}}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              3. *-commutativeN/A

                \[\leadsto x + \frac{\color{blue}{\left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z + \frac{11167812716741}{40000000000000}\right) \cdot y}}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              4. associate-/l*N/A

                \[\leadsto x + \color{blue}{\left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z + \frac{11167812716741}{40000000000000}\right) \cdot \frac{y}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}}} \]
              5. lift-+.f64N/A

                \[\leadsto x + \color{blue}{\left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z + \frac{11167812716741}{40000000000000}\right)} \cdot \frac{y}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              6. flip-+N/A

                \[\leadsto x + \color{blue}{\frac{\left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z\right) \cdot \left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z\right) - \frac{11167812716741}{40000000000000} \cdot \frac{11167812716741}{40000000000000}}{\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z - \frac{11167812716741}{40000000000000}}} \cdot \frac{y}{\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}} \]
              7. frac-timesN/A

                \[\leadsto x + \color{blue}{\frac{\left(\left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z\right) \cdot \left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z\right) - \frac{11167812716741}{40000000000000} \cdot \frac{11167812716741}{40000000000000}\right) \cdot y}{\left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z - \frac{11167812716741}{40000000000000}\right) \cdot \left(\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}\right)}} \]
              8. lower-/.f64N/A

                \[\leadsto x + \color{blue}{\frac{\left(\left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z\right) \cdot \left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z\right) - \frac{11167812716741}{40000000000000} \cdot \frac{11167812716741}{40000000000000}\right) \cdot y}{\left(\left(z \cdot \frac{692910599291889}{10000000000000000} + \frac{307332350656623}{625000000000000}\right) \cdot z - \frac{11167812716741}{40000000000000}\right) \cdot \left(\left(z + \frac{6012459259764103}{1000000000000000}\right) \cdot z + \frac{104698244219447}{31250000000000}\right)}} \]
            4. Applied rewrites99.7%

              \[\leadsto x + \color{blue}{\frac{\left({\left(\mathsf{fma}\left(0.0692910599291889, z, 0.4917317610505968\right) \cdot z\right)}^{2} - 0.07795002554762624\right) \cdot y}{\left(\mathsf{fma}\left(0.0692910599291889, z, 0.4917317610505968\right) \cdot z - 0.279195317918525\right) \cdot \mathsf{fma}\left(6.012459259764103 + z, z, 3.350343815022304\right)}} \]
            5. Taylor expanded in z around 0

              \[\leadsto \color{blue}{x + \left(\frac{279195317918525}{3350343815022304} \cdot y + z \cdot \left(z \cdot \left(\frac{-188906347520250959478507528258}{730781489508996937534163891875} \cdot y - \left(\frac{-363683842025042856041516186987}{1403100459857275795237502183552} \cdot y + \frac{-24304825926942649962295480741151107170296249740890205887121}{262492120060226193983347556763129424308756361355250414448640000} \cdot y\right)\right) - \frac{155900051080628738716045985239}{56124018394291031809500087342080} \cdot y\right)\right)} \]
            6. Step-by-step derivation
              1. +-commutativeN/A

                \[\leadsto \color{blue}{\left(\frac{279195317918525}{3350343815022304} \cdot y + z \cdot \left(z \cdot \left(\frac{-188906347520250959478507528258}{730781489508996937534163891875} \cdot y - \left(\frac{-363683842025042856041516186987}{1403100459857275795237502183552} \cdot y + \frac{-24304825926942649962295480741151107170296249740890205887121}{262492120060226193983347556763129424308756361355250414448640000} \cdot y\right)\right) - \frac{155900051080628738716045985239}{56124018394291031809500087342080} \cdot y\right)\right) + x} \]
              2. +-commutativeN/A

                \[\leadsto \color{blue}{\left(z \cdot \left(z \cdot \left(\frac{-188906347520250959478507528258}{730781489508996937534163891875} \cdot y - \left(\frac{-363683842025042856041516186987}{1403100459857275795237502183552} \cdot y + \frac{-24304825926942649962295480741151107170296249740890205887121}{262492120060226193983347556763129424308756361355250414448640000} \cdot y\right)\right) - \frac{155900051080628738716045985239}{56124018394291031809500087342080} \cdot y\right) + \frac{279195317918525}{3350343815022304} \cdot y\right)} + x \]
              3. associate-+l+N/A

                \[\leadsto \color{blue}{z \cdot \left(z \cdot \left(\frac{-188906347520250959478507528258}{730781489508996937534163891875} \cdot y - \left(\frac{-363683842025042856041516186987}{1403100459857275795237502183552} \cdot y + \frac{-24304825926942649962295480741151107170296249740890205887121}{262492120060226193983347556763129424308756361355250414448640000} \cdot y\right)\right) - \frac{155900051080628738716045985239}{56124018394291031809500087342080} \cdot y\right) + \left(\frac{279195317918525}{3350343815022304} \cdot y + x\right)} \]
              4. *-commutativeN/A

                \[\leadsto \color{blue}{\left(z \cdot \left(\frac{-188906347520250959478507528258}{730781489508996937534163891875} \cdot y - \left(\frac{-363683842025042856041516186987}{1403100459857275795237502183552} \cdot y + \frac{-24304825926942649962295480741151107170296249740890205887121}{262492120060226193983347556763129424308756361355250414448640000} \cdot y\right)\right) - \frac{155900051080628738716045985239}{56124018394291031809500087342080} \cdot y\right) \cdot z} + \left(\frac{279195317918525}{3350343815022304} \cdot y + x\right) \]
              5. +-commutativeN/A

                \[\leadsto \left(z \cdot \left(\frac{-188906347520250959478507528258}{730781489508996937534163891875} \cdot y - \left(\frac{-363683842025042856041516186987}{1403100459857275795237502183552} \cdot y + \frac{-24304825926942649962295480741151107170296249740890205887121}{262492120060226193983347556763129424308756361355250414448640000} \cdot y\right)\right) - \frac{155900051080628738716045985239}{56124018394291031809500087342080} \cdot y\right) \cdot z + \color{blue}{\left(x + \frac{279195317918525}{3350343815022304} \cdot y\right)} \]
              6. lower-fma.f64N/A

                \[\leadsto \color{blue}{\mathsf{fma}\left(z \cdot \left(\frac{-188906347520250959478507528258}{730781489508996937534163891875} \cdot y - \left(\frac{-363683842025042856041516186987}{1403100459857275795237502183552} \cdot y + \frac{-24304825926942649962295480741151107170296249740890205887121}{262492120060226193983347556763129424308756361355250414448640000} \cdot y\right)\right) - \frac{155900051080628738716045985239}{56124018394291031809500087342080} \cdot y, z, x + \frac{279195317918525}{3350343815022304} \cdot y\right)} \]
            7. Applied rewrites99.4%

              \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(y \cdot 0.0007936505811533442, z, -0.00277777777751721 \cdot y\right), z, \mathsf{fma}\left(0.08333333333333323, y, x\right)\right)} \]
            8. Step-by-step derivation
              1. Applied rewrites99.4%

                \[\leadsto \mathsf{fma}\left(y, \color{blue}{0.08333333333333323}, x + \left(y \cdot \mathsf{fma}\left(0.0007936505811533442, z, -0.00277777777751721\right)\right) \cdot z\right) \]

              if 2.24999999999999996e-8 < z

              1. Initial program 37.5%

                \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
              2. Add Preprocessing
              3. Taylor expanded in z around inf

                \[\leadsto \color{blue}{\left(x + \left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right)\right) - \frac{4166096748901211929300981260567}{10000000000000000000000000000000} \cdot \frac{y}{z}} \]
              4. Step-by-step derivation
                1. associate--l+N/A

                  \[\leadsto \color{blue}{x + \left(\left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right) - \frac{4166096748901211929300981260567}{10000000000000000000000000000000} \cdot \frac{y}{z}\right)} \]
                2. +-commutativeN/A

                  \[\leadsto \color{blue}{\left(\left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right) - \frac{4166096748901211929300981260567}{10000000000000000000000000000000} \cdot \frac{y}{z}\right) + x} \]
                3. fp-cancel-sub-sign-invN/A

                  \[\leadsto \color{blue}{\left(\left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right) + \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)} + x \]
                4. fp-cancel-sign-sub-invN/A

                  \[\leadsto \left(\color{blue}{\left(\frac{692910599291889}{10000000000000000} \cdot y - \left(\mathsf{neg}\left(\frac{307332350656623}{625000000000000}\right)\right) \cdot \frac{y}{z}\right)} + \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right) + x \]
                5. associate-+l-N/A

                  \[\leadsto \color{blue}{\left(\frac{692910599291889}{10000000000000000} \cdot y - \left(\left(\mathsf{neg}\left(\frac{307332350656623}{625000000000000}\right)\right) \cdot \frac{y}{z} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right)} + x \]
                6. *-commutativeN/A

                  \[\leadsto \left(\color{blue}{y \cdot \frac{692910599291889}{10000000000000000}} - \left(\left(\mathsf{neg}\left(\frac{307332350656623}{625000000000000}\right)\right) \cdot \frac{y}{z} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right) + x \]
                7. metadata-evalN/A

                  \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\color{blue}{\frac{-307332350656623}{625000000000000}} \cdot \frac{y}{z} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right) + x \]
                8. associate-*r/N/A

                  \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\color{blue}{\frac{\frac{-307332350656623}{625000000000000} \cdot y}{z}} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right) + x \]
                9. metadata-evalN/A

                  \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\frac{\frac{-307332350656623}{625000000000000} \cdot y}{z} - \color{blue}{\frac{-4166096748901211929300981260567}{10000000000000000000000000000000}} \cdot \frac{y}{z}\right)\right) + x \]
                10. associate-*r/N/A

                  \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\frac{\frac{-307332350656623}{625000000000000} \cdot y}{z} - \color{blue}{\frac{\frac{-4166096748901211929300981260567}{10000000000000000000000000000000} \cdot y}{z}}\right)\right) + x \]
                11. div-subN/A

                  \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \color{blue}{\frac{\frac{-307332350656623}{625000000000000} \cdot y - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000} \cdot y}{z}}\right) + x \]
                12. distribute-rgt-out--N/A

                  \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \frac{\color{blue}{y \cdot \left(\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}\right)}}{z}\right) + x \]
                13. associate-/l*N/A

                  \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \color{blue}{y \cdot \frac{\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}}{z}}\right) + x \]
                14. distribute-lft-out--N/A

                  \[\leadsto \color{blue}{y \cdot \left(\frac{692910599291889}{10000000000000000} - \frac{\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}}{z}\right)} + x \]
                15. lower-fma.f64N/A

                  \[\leadsto \color{blue}{\mathsf{fma}\left(y, \frac{692910599291889}{10000000000000000} - \frac{\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}}{z}, x\right)} \]
              5. Applied rewrites99.6%

                \[\leadsto \color{blue}{\mathsf{fma}\left(y, 0.0692910599291889 - \frac{-0.07512208616047561}{z}, x\right)} \]
            9. Recombined 3 regimes into one program.
            10. Add Preprocessing

            Alternative 6: 98.1% accurate, 1.4× speedup?

            \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;z \leq -5.4 \cdot 10^{+29}:\\ \;\;\;\;\mathsf{fma}\left(0.0692910599291889, y, x\right)\\ \mathbf{elif}\;z \leq 2.25 \cdot 10^{-8}:\\ \;\;\;\;\mathsf{fma}\left(y, \mathsf{fma}\left(-0.00277777777751721, z, 0.08333333333333323\right), x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(y, 0.0692910599291889 - \frac{-0.07512208616047561}{z}, x\right)\\ \end{array} \end{array} \]
            (FPCore (x y z)
             :precision binary64
             (if (<= z -5.4e+29)
               (fma 0.0692910599291889 y x)
               (if (<= z 2.25e-8)
                 (fma y (fma -0.00277777777751721 z 0.08333333333333323) x)
                 (fma y (- 0.0692910599291889 (/ -0.07512208616047561 z)) x))))
            double code(double x, double y, double z) {
            	double tmp;
            	if (z <= -5.4e+29) {
            		tmp = fma(0.0692910599291889, y, x);
            	} else if (z <= 2.25e-8) {
            		tmp = fma(y, fma(-0.00277777777751721, z, 0.08333333333333323), x);
            	} else {
            		tmp = fma(y, (0.0692910599291889 - (-0.07512208616047561 / z)), x);
            	}
            	return tmp;
            }
            
            function code(x, y, z)
            	tmp = 0.0
            	if (z <= -5.4e+29)
            		tmp = fma(0.0692910599291889, y, x);
            	elseif (z <= 2.25e-8)
            		tmp = fma(y, fma(-0.00277777777751721, z, 0.08333333333333323), x);
            	else
            		tmp = fma(y, Float64(0.0692910599291889 - Float64(-0.07512208616047561 / z)), x);
            	end
            	return tmp
            end
            
            code[x_, y_, z_] := If[LessEqual[z, -5.4e+29], N[(0.0692910599291889 * y + x), $MachinePrecision], If[LessEqual[z, 2.25e-8], N[(y * N[(-0.00277777777751721 * z + 0.08333333333333323), $MachinePrecision] + x), $MachinePrecision], N[(y * N[(0.0692910599291889 - N[(-0.07512208616047561 / z), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision]]]
            
            \begin{array}{l}
            
            \\
            \begin{array}{l}
            \mathbf{if}\;z \leq -5.4 \cdot 10^{+29}:\\
            \;\;\;\;\mathsf{fma}\left(0.0692910599291889, y, x\right)\\
            
            \mathbf{elif}\;z \leq 2.25 \cdot 10^{-8}:\\
            \;\;\;\;\mathsf{fma}\left(y, \mathsf{fma}\left(-0.00277777777751721, z, 0.08333333333333323\right), x\right)\\
            
            \mathbf{else}:\\
            \;\;\;\;\mathsf{fma}\left(y, 0.0692910599291889 - \frac{-0.07512208616047561}{z}, x\right)\\
            
            
            \end{array}
            \end{array}
            
            Derivation
            1. Split input into 3 regimes
            2. if z < -5.4e29

              1. Initial program 32.1%

                \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
              2. Add Preprocessing
              3. Taylor expanded in z around inf

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

                  \[\leadsto \color{blue}{\frac{692910599291889}{10000000000000000} \cdot y + x} \]
                2. lower-fma.f6499.6

                  \[\leadsto \color{blue}{\mathsf{fma}\left(0.0692910599291889, y, x\right)} \]
              5. Applied rewrites99.6%

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

              if -5.4e29 < z < 2.24999999999999996e-8

              1. Initial program 99.7%

                \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
              2. Add Preprocessing
              3. Taylor expanded in z around 0

                \[\leadsto \color{blue}{x + \left(\frac{279195317918525}{3350343815022304} \cdot y + z \cdot \left(\frac{307332350656623}{2093964884388940} \cdot y - \frac{1678650474502018223880473708075}{11224803678858206361900017468416} \cdot y\right)\right)} \]
              4. Step-by-step derivation
                1. +-commutativeN/A

                  \[\leadsto \color{blue}{\left(\frac{279195317918525}{3350343815022304} \cdot y + z \cdot \left(\frac{307332350656623}{2093964884388940} \cdot y - \frac{1678650474502018223880473708075}{11224803678858206361900017468416} \cdot y\right)\right) + x} \]
                2. +-commutativeN/A

                  \[\leadsto \color{blue}{\left(z \cdot \left(\frac{307332350656623}{2093964884388940} \cdot y - \frac{1678650474502018223880473708075}{11224803678858206361900017468416} \cdot y\right) + \frac{279195317918525}{3350343815022304} \cdot y\right)} + x \]
                3. *-commutativeN/A

                  \[\leadsto \left(\color{blue}{\left(\frac{307332350656623}{2093964884388940} \cdot y - \frac{1678650474502018223880473708075}{11224803678858206361900017468416} \cdot y\right) \cdot z} + \frac{279195317918525}{3350343815022304} \cdot y\right) + x \]
                4. distribute-rgt-out--N/A

                  \[\leadsto \left(\color{blue}{\left(y \cdot \left(\frac{307332350656623}{2093964884388940} - \frac{1678650474502018223880473708075}{11224803678858206361900017468416}\right)\right)} \cdot z + \frac{279195317918525}{3350343815022304} \cdot y\right) + x \]
                5. associate-*l*N/A

                  \[\leadsto \left(\color{blue}{y \cdot \left(\left(\frac{307332350656623}{2093964884388940} - \frac{1678650474502018223880473708075}{11224803678858206361900017468416}\right) \cdot z\right)} + \frac{279195317918525}{3350343815022304} \cdot y\right) + x \]
                6. *-commutativeN/A

                  \[\leadsto \left(y \cdot \left(\left(\frac{307332350656623}{2093964884388940} - \frac{1678650474502018223880473708075}{11224803678858206361900017468416}\right) \cdot z\right) + \color{blue}{y \cdot \frac{279195317918525}{3350343815022304}}\right) + x \]
                7. distribute-lft-outN/A

                  \[\leadsto \color{blue}{y \cdot \left(\left(\frac{307332350656623}{2093964884388940} - \frac{1678650474502018223880473708075}{11224803678858206361900017468416}\right) \cdot z + \frac{279195317918525}{3350343815022304}\right)} + x \]
                8. lower-fma.f64N/A

                  \[\leadsto \color{blue}{\mathsf{fma}\left(y, \left(\frac{307332350656623}{2093964884388940} - \frac{1678650474502018223880473708075}{11224803678858206361900017468416}\right) \cdot z + \frac{279195317918525}{3350343815022304}, x\right)} \]
                9. lower-fma.f64N/A

                  \[\leadsto \mathsf{fma}\left(y, \color{blue}{\mathsf{fma}\left(\frac{307332350656623}{2093964884388940} - \frac{1678650474502018223880473708075}{11224803678858206361900017468416}, z, \frac{279195317918525}{3350343815022304}\right)}, x\right) \]
                10. metadata-eval99.4

                  \[\leadsto \mathsf{fma}\left(y, \mathsf{fma}\left(\color{blue}{-0.00277777777751721}, z, 0.08333333333333323\right), x\right) \]
              5. Applied rewrites99.4%

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

              if 2.24999999999999996e-8 < z

              1. Initial program 37.5%

                \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
              2. Add Preprocessing
              3. Taylor expanded in z around inf

                \[\leadsto \color{blue}{\left(x + \left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right)\right) - \frac{4166096748901211929300981260567}{10000000000000000000000000000000} \cdot \frac{y}{z}} \]
              4. Step-by-step derivation
                1. associate--l+N/A

                  \[\leadsto \color{blue}{x + \left(\left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right) - \frac{4166096748901211929300981260567}{10000000000000000000000000000000} \cdot \frac{y}{z}\right)} \]
                2. +-commutativeN/A

                  \[\leadsto \color{blue}{\left(\left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right) - \frac{4166096748901211929300981260567}{10000000000000000000000000000000} \cdot \frac{y}{z}\right) + x} \]
                3. fp-cancel-sub-sign-invN/A

                  \[\leadsto \color{blue}{\left(\left(\frac{692910599291889}{10000000000000000} \cdot y + \frac{307332350656623}{625000000000000} \cdot \frac{y}{z}\right) + \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)} + x \]
                4. fp-cancel-sign-sub-invN/A

                  \[\leadsto \left(\color{blue}{\left(\frac{692910599291889}{10000000000000000} \cdot y - \left(\mathsf{neg}\left(\frac{307332350656623}{625000000000000}\right)\right) \cdot \frac{y}{z}\right)} + \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right) + x \]
                5. associate-+l-N/A

                  \[\leadsto \color{blue}{\left(\frac{692910599291889}{10000000000000000} \cdot y - \left(\left(\mathsf{neg}\left(\frac{307332350656623}{625000000000000}\right)\right) \cdot \frac{y}{z} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right)} + x \]
                6. *-commutativeN/A

                  \[\leadsto \left(\color{blue}{y \cdot \frac{692910599291889}{10000000000000000}} - \left(\left(\mathsf{neg}\left(\frac{307332350656623}{625000000000000}\right)\right) \cdot \frac{y}{z} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right) + x \]
                7. metadata-evalN/A

                  \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\color{blue}{\frac{-307332350656623}{625000000000000}} \cdot \frac{y}{z} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right) + x \]
                8. associate-*r/N/A

                  \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\color{blue}{\frac{\frac{-307332350656623}{625000000000000} \cdot y}{z}} - \left(\mathsf{neg}\left(\frac{4166096748901211929300981260567}{10000000000000000000000000000000}\right)\right) \cdot \frac{y}{z}\right)\right) + x \]
                9. metadata-evalN/A

                  \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\frac{\frac{-307332350656623}{625000000000000} \cdot y}{z} - \color{blue}{\frac{-4166096748901211929300981260567}{10000000000000000000000000000000}} \cdot \frac{y}{z}\right)\right) + x \]
                10. associate-*r/N/A

                  \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \left(\frac{\frac{-307332350656623}{625000000000000} \cdot y}{z} - \color{blue}{\frac{\frac{-4166096748901211929300981260567}{10000000000000000000000000000000} \cdot y}{z}}\right)\right) + x \]
                11. div-subN/A

                  \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \color{blue}{\frac{\frac{-307332350656623}{625000000000000} \cdot y - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000} \cdot y}{z}}\right) + x \]
                12. distribute-rgt-out--N/A

                  \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \frac{\color{blue}{y \cdot \left(\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}\right)}}{z}\right) + x \]
                13. associate-/l*N/A

                  \[\leadsto \left(y \cdot \frac{692910599291889}{10000000000000000} - \color{blue}{y \cdot \frac{\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}}{z}}\right) + x \]
                14. distribute-lft-out--N/A

                  \[\leadsto \color{blue}{y \cdot \left(\frac{692910599291889}{10000000000000000} - \frac{\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}}{z}\right)} + x \]
                15. lower-fma.f64N/A

                  \[\leadsto \color{blue}{\mathsf{fma}\left(y, \frac{692910599291889}{10000000000000000} - \frac{\frac{-307332350656623}{625000000000000} - \frac{-4166096748901211929300981260567}{10000000000000000000000000000000}}{z}, x\right)} \]
              5. Applied rewrites99.6%

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

            Alternative 7: 98.0% accurate, 1.9× speedup?

            \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;z \leq -5.4 \cdot 10^{+29} \lor \neg \left(z \leq 2.25 \cdot 10^{-8}\right):\\ \;\;\;\;\mathsf{fma}\left(0.0692910599291889, y, x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(y, \mathsf{fma}\left(-0.00277777777751721, z, 0.08333333333333323\right), x\right)\\ \end{array} \end{array} \]
            (FPCore (x y z)
             :precision binary64
             (if (or (<= z -5.4e+29) (not (<= z 2.25e-8)))
               (fma 0.0692910599291889 y x)
               (fma y (fma -0.00277777777751721 z 0.08333333333333323) x)))
            double code(double x, double y, double z) {
            	double tmp;
            	if ((z <= -5.4e+29) || !(z <= 2.25e-8)) {
            		tmp = fma(0.0692910599291889, y, x);
            	} else {
            		tmp = fma(y, fma(-0.00277777777751721, z, 0.08333333333333323), x);
            	}
            	return tmp;
            }
            
            function code(x, y, z)
            	tmp = 0.0
            	if ((z <= -5.4e+29) || !(z <= 2.25e-8))
            		tmp = fma(0.0692910599291889, y, x);
            	else
            		tmp = fma(y, fma(-0.00277777777751721, z, 0.08333333333333323), x);
            	end
            	return tmp
            end
            
            code[x_, y_, z_] := If[Or[LessEqual[z, -5.4e+29], N[Not[LessEqual[z, 2.25e-8]], $MachinePrecision]], N[(0.0692910599291889 * y + x), $MachinePrecision], N[(y * N[(-0.00277777777751721 * z + 0.08333333333333323), $MachinePrecision] + x), $MachinePrecision]]
            
            \begin{array}{l}
            
            \\
            \begin{array}{l}
            \mathbf{if}\;z \leq -5.4 \cdot 10^{+29} \lor \neg \left(z \leq 2.25 \cdot 10^{-8}\right):\\
            \;\;\;\;\mathsf{fma}\left(0.0692910599291889, y, x\right)\\
            
            \mathbf{else}:\\
            \;\;\;\;\mathsf{fma}\left(y, \mathsf{fma}\left(-0.00277777777751721, z, 0.08333333333333323\right), x\right)\\
            
            
            \end{array}
            \end{array}
            
            Derivation
            1. Split input into 2 regimes
            2. if z < -5.4e29 or 2.24999999999999996e-8 < z

              1. Initial program 34.7%

                \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
              2. Add Preprocessing
              3. Taylor expanded in z around inf

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

                  \[\leadsto \color{blue}{\frac{692910599291889}{10000000000000000} \cdot y + x} \]
                2. lower-fma.f6499.5

                  \[\leadsto \color{blue}{\mathsf{fma}\left(0.0692910599291889, y, x\right)} \]
              5. Applied rewrites99.5%

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

              if -5.4e29 < z < 2.24999999999999996e-8

              1. Initial program 99.7%

                \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
              2. Add Preprocessing
              3. Taylor expanded in z around 0

                \[\leadsto \color{blue}{x + \left(\frac{279195317918525}{3350343815022304} \cdot y + z \cdot \left(\frac{307332350656623}{2093964884388940} \cdot y - \frac{1678650474502018223880473708075}{11224803678858206361900017468416} \cdot y\right)\right)} \]
              4. Step-by-step derivation
                1. +-commutativeN/A

                  \[\leadsto \color{blue}{\left(\frac{279195317918525}{3350343815022304} \cdot y + z \cdot \left(\frac{307332350656623}{2093964884388940} \cdot y - \frac{1678650474502018223880473708075}{11224803678858206361900017468416} \cdot y\right)\right) + x} \]
                2. +-commutativeN/A

                  \[\leadsto \color{blue}{\left(z \cdot \left(\frac{307332350656623}{2093964884388940} \cdot y - \frac{1678650474502018223880473708075}{11224803678858206361900017468416} \cdot y\right) + \frac{279195317918525}{3350343815022304} \cdot y\right)} + x \]
                3. *-commutativeN/A

                  \[\leadsto \left(\color{blue}{\left(\frac{307332350656623}{2093964884388940} \cdot y - \frac{1678650474502018223880473708075}{11224803678858206361900017468416} \cdot y\right) \cdot z} + \frac{279195317918525}{3350343815022304} \cdot y\right) + x \]
                4. distribute-rgt-out--N/A

                  \[\leadsto \left(\color{blue}{\left(y \cdot \left(\frac{307332350656623}{2093964884388940} - \frac{1678650474502018223880473708075}{11224803678858206361900017468416}\right)\right)} \cdot z + \frac{279195317918525}{3350343815022304} \cdot y\right) + x \]
                5. associate-*l*N/A

                  \[\leadsto \left(\color{blue}{y \cdot \left(\left(\frac{307332350656623}{2093964884388940} - \frac{1678650474502018223880473708075}{11224803678858206361900017468416}\right) \cdot z\right)} + \frac{279195317918525}{3350343815022304} \cdot y\right) + x \]
                6. *-commutativeN/A

                  \[\leadsto \left(y \cdot \left(\left(\frac{307332350656623}{2093964884388940} - \frac{1678650474502018223880473708075}{11224803678858206361900017468416}\right) \cdot z\right) + \color{blue}{y \cdot \frac{279195317918525}{3350343815022304}}\right) + x \]
                7. distribute-lft-outN/A

                  \[\leadsto \color{blue}{y \cdot \left(\left(\frac{307332350656623}{2093964884388940} - \frac{1678650474502018223880473708075}{11224803678858206361900017468416}\right) \cdot z + \frac{279195317918525}{3350343815022304}\right)} + x \]
                8. lower-fma.f64N/A

                  \[\leadsto \color{blue}{\mathsf{fma}\left(y, \left(\frac{307332350656623}{2093964884388940} - \frac{1678650474502018223880473708075}{11224803678858206361900017468416}\right) \cdot z + \frac{279195317918525}{3350343815022304}, x\right)} \]
                9. lower-fma.f64N/A

                  \[\leadsto \mathsf{fma}\left(y, \color{blue}{\mathsf{fma}\left(\frac{307332350656623}{2093964884388940} - \frac{1678650474502018223880473708075}{11224803678858206361900017468416}, z, \frac{279195317918525}{3350343815022304}\right)}, x\right) \]
                10. metadata-eval99.4

                  \[\leadsto \mathsf{fma}\left(y, \mathsf{fma}\left(\color{blue}{-0.00277777777751721}, z, 0.08333333333333323\right), x\right) \]
              5. Applied rewrites99.4%

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

              \[\leadsto \begin{array}{l} \mathbf{if}\;z \leq -5.4 \cdot 10^{+29} \lor \neg \left(z \leq 2.25 \cdot 10^{-8}\right):\\ \;\;\;\;\mathsf{fma}\left(0.0692910599291889, y, x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(y, \mathsf{fma}\left(-0.00277777777751721, z, 0.08333333333333323\right), x\right)\\ \end{array} \]
            5. Add Preprocessing

            Alternative 8: 61.1% accurate, 2.0× speedup?

            \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq -1.25 \cdot 10^{-103}:\\ \;\;\;\;1 \cdot x\\ \mathbf{elif}\;x \leq 5.2 \cdot 10^{-140}:\\ \;\;\;\;0.0692910599291889 \cdot y\\ \mathbf{elif}\;x \leq 8.2 \cdot 10^{-30}:\\ \;\;\;\;0.08333333333333323 \cdot y\\ \mathbf{else}:\\ \;\;\;\;1 \cdot x\\ \end{array} \end{array} \]
            (FPCore (x y z)
             :precision binary64
             (if (<= x -1.25e-103)
               (* 1.0 x)
               (if (<= x 5.2e-140)
                 (* 0.0692910599291889 y)
                 (if (<= x 8.2e-30) (* 0.08333333333333323 y) (* 1.0 x)))))
            double code(double x, double y, double z) {
            	double tmp;
            	if (x <= -1.25e-103) {
            		tmp = 1.0 * x;
            	} else if (x <= 5.2e-140) {
            		tmp = 0.0692910599291889 * y;
            	} else if (x <= 8.2e-30) {
            		tmp = 0.08333333333333323 * y;
            	} else {
            		tmp = 1.0 * x;
            	}
            	return tmp;
            }
            
            real(8) function code(x, y, z)
                real(8), intent (in) :: x
                real(8), intent (in) :: y
                real(8), intent (in) :: z
                real(8) :: tmp
                if (x <= (-1.25d-103)) then
                    tmp = 1.0d0 * x
                else if (x <= 5.2d-140) then
                    tmp = 0.0692910599291889d0 * y
                else if (x <= 8.2d-30) then
                    tmp = 0.08333333333333323d0 * y
                else
                    tmp = 1.0d0 * x
                end if
                code = tmp
            end function
            
            public static double code(double x, double y, double z) {
            	double tmp;
            	if (x <= -1.25e-103) {
            		tmp = 1.0 * x;
            	} else if (x <= 5.2e-140) {
            		tmp = 0.0692910599291889 * y;
            	} else if (x <= 8.2e-30) {
            		tmp = 0.08333333333333323 * y;
            	} else {
            		tmp = 1.0 * x;
            	}
            	return tmp;
            }
            
            def code(x, y, z):
            	tmp = 0
            	if x <= -1.25e-103:
            		tmp = 1.0 * x
            	elif x <= 5.2e-140:
            		tmp = 0.0692910599291889 * y
            	elif x <= 8.2e-30:
            		tmp = 0.08333333333333323 * y
            	else:
            		tmp = 1.0 * x
            	return tmp
            
            function code(x, y, z)
            	tmp = 0.0
            	if (x <= -1.25e-103)
            		tmp = Float64(1.0 * x);
            	elseif (x <= 5.2e-140)
            		tmp = Float64(0.0692910599291889 * y);
            	elseif (x <= 8.2e-30)
            		tmp = Float64(0.08333333333333323 * y);
            	else
            		tmp = Float64(1.0 * x);
            	end
            	return tmp
            end
            
            function tmp_2 = code(x, y, z)
            	tmp = 0.0;
            	if (x <= -1.25e-103)
            		tmp = 1.0 * x;
            	elseif (x <= 5.2e-140)
            		tmp = 0.0692910599291889 * y;
            	elseif (x <= 8.2e-30)
            		tmp = 0.08333333333333323 * y;
            	else
            		tmp = 1.0 * x;
            	end
            	tmp_2 = tmp;
            end
            
            code[x_, y_, z_] := If[LessEqual[x, -1.25e-103], N[(1.0 * x), $MachinePrecision], If[LessEqual[x, 5.2e-140], N[(0.0692910599291889 * y), $MachinePrecision], If[LessEqual[x, 8.2e-30], N[(0.08333333333333323 * y), $MachinePrecision], N[(1.0 * x), $MachinePrecision]]]]
            
            \begin{array}{l}
            
            \\
            \begin{array}{l}
            \mathbf{if}\;x \leq -1.25 \cdot 10^{-103}:\\
            \;\;\;\;1 \cdot x\\
            
            \mathbf{elif}\;x \leq 5.2 \cdot 10^{-140}:\\
            \;\;\;\;0.0692910599291889 \cdot y\\
            
            \mathbf{elif}\;x \leq 8.2 \cdot 10^{-30}:\\
            \;\;\;\;0.08333333333333323 \cdot y\\
            
            \mathbf{else}:\\
            \;\;\;\;1 \cdot x\\
            
            
            \end{array}
            \end{array}
            
            Derivation
            1. Split input into 3 regimes
            2. if x < -1.24999999999999992e-103 or 8.2000000000000007e-30 < x

              1. Initial program 69.8%

                \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
              2. Add Preprocessing
              3. Taylor expanded in z around inf

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

                  \[\leadsto \color{blue}{\frac{692910599291889}{10000000000000000} \cdot y + x} \]
                2. lower-fma.f6490.3

                  \[\leadsto \color{blue}{\mathsf{fma}\left(0.0692910599291889, y, x\right)} \]
              5. Applied rewrites90.3%

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

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

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

                  \[\leadsto 1 \cdot x \]
                3. Step-by-step derivation
                  1. Applied rewrites73.8%

                    \[\leadsto 1 \cdot x \]

                  if -1.24999999999999992e-103 < x < 5.1999999999999996e-140

                  1. Initial program 56.8%

                    \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
                  2. Add Preprocessing
                  3. Taylor expanded in z around inf

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

                      \[\leadsto \color{blue}{\frac{692910599291889}{10000000000000000} \cdot y + x} \]
                    2. lower-fma.f6476.2

                      \[\leadsto \color{blue}{\mathsf{fma}\left(0.0692910599291889, y, x\right)} \]
                  5. Applied rewrites76.2%

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

                    \[\leadsto \frac{692910599291889}{10000000000000000} \cdot \color{blue}{y} \]
                  7. Step-by-step derivation
                    1. Applied rewrites56.0%

                      \[\leadsto 0.0692910599291889 \cdot \color{blue}{y} \]

                    if 5.1999999999999996e-140 < x < 8.2000000000000007e-30

                    1. Initial program 77.8%

                      \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
                    2. Add Preprocessing
                    3. Taylor expanded in z around 0

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

                        \[\leadsto \color{blue}{\frac{279195317918525}{3350343815022304} \cdot y + x} \]
                      2. lower-fma.f6476.0

                        \[\leadsto \color{blue}{\mathsf{fma}\left(0.08333333333333323, y, x\right)} \]
                    5. Applied rewrites76.0%

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

                      \[\leadsto \frac{279195317918525}{3350343815022304} \cdot \color{blue}{y} \]
                    7. Step-by-step derivation
                      1. Applied rewrites67.6%

                        \[\leadsto 0.08333333333333323 \cdot \color{blue}{y} \]
                    8. Recombined 3 regimes into one program.
                    9. Add Preprocessing

                    Alternative 9: 98.0% accurate, 2.5× speedup?

                    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;z \leq -5.4 \cdot 10^{+29} \lor \neg \left(z \leq 2.25 \cdot 10^{-8}\right):\\ \;\;\;\;\mathsf{fma}\left(0.0692910599291889, y, x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(0.08333333333333323, y, x\right)\\ \end{array} \end{array} \]
                    (FPCore (x y z)
                     :precision binary64
                     (if (or (<= z -5.4e+29) (not (<= z 2.25e-8)))
                       (fma 0.0692910599291889 y x)
                       (fma 0.08333333333333323 y x)))
                    double code(double x, double y, double z) {
                    	double tmp;
                    	if ((z <= -5.4e+29) || !(z <= 2.25e-8)) {
                    		tmp = fma(0.0692910599291889, y, x);
                    	} else {
                    		tmp = fma(0.08333333333333323, y, x);
                    	}
                    	return tmp;
                    }
                    
                    function code(x, y, z)
                    	tmp = 0.0
                    	if ((z <= -5.4e+29) || !(z <= 2.25e-8))
                    		tmp = fma(0.0692910599291889, y, x);
                    	else
                    		tmp = fma(0.08333333333333323, y, x);
                    	end
                    	return tmp
                    end
                    
                    code[x_, y_, z_] := If[Or[LessEqual[z, -5.4e+29], N[Not[LessEqual[z, 2.25e-8]], $MachinePrecision]], N[(0.0692910599291889 * y + x), $MachinePrecision], N[(0.08333333333333323 * y + x), $MachinePrecision]]
                    
                    \begin{array}{l}
                    
                    \\
                    \begin{array}{l}
                    \mathbf{if}\;z \leq -5.4 \cdot 10^{+29} \lor \neg \left(z \leq 2.25 \cdot 10^{-8}\right):\\
                    \;\;\;\;\mathsf{fma}\left(0.0692910599291889, y, x\right)\\
                    
                    \mathbf{else}:\\
                    \;\;\;\;\mathsf{fma}\left(0.08333333333333323, y, x\right)\\
                    
                    
                    \end{array}
                    \end{array}
                    
                    Derivation
                    1. Split input into 2 regimes
                    2. if z < -5.4e29 or 2.24999999999999996e-8 < z

                      1. Initial program 34.7%

                        \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
                      2. Add Preprocessing
                      3. Taylor expanded in z around inf

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

                          \[\leadsto \color{blue}{\frac{692910599291889}{10000000000000000} \cdot y + x} \]
                        2. lower-fma.f6499.5

                          \[\leadsto \color{blue}{\mathsf{fma}\left(0.0692910599291889, y, x\right)} \]
                      5. Applied rewrites99.5%

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

                      if -5.4e29 < z < 2.24999999999999996e-8

                      1. Initial program 99.7%

                        \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
                      2. Add Preprocessing
                      3. Taylor expanded in z around 0

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

                          \[\leadsto \color{blue}{\frac{279195317918525}{3350343815022304} \cdot y + x} \]
                        2. lower-fma.f6498.8

                          \[\leadsto \color{blue}{\mathsf{fma}\left(0.08333333333333323, y, x\right)} \]
                      5. Applied rewrites98.8%

                        \[\leadsto \color{blue}{\mathsf{fma}\left(0.08333333333333323, y, x\right)} \]
                    3. Recombined 2 regimes into one program.
                    4. Final simplification99.2%

                      \[\leadsto \begin{array}{l} \mathbf{if}\;z \leq -5.4 \cdot 10^{+29} \lor \neg \left(z \leq 2.25 \cdot 10^{-8}\right):\\ \;\;\;\;\mathsf{fma}\left(0.0692910599291889, y, x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(0.08333333333333323, y, x\right)\\ \end{array} \]
                    5. Add Preprocessing

                    Alternative 10: 61.0% accurate, 2.6× speedup?

                    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq -1.25 \cdot 10^{-103} \lor \neg \left(x \leq 1.2 \cdot 10^{-25}\right):\\ \;\;\;\;1 \cdot x\\ \mathbf{else}:\\ \;\;\;\;0.0692910599291889 \cdot y\\ \end{array} \end{array} \]
                    (FPCore (x y z)
                     :precision binary64
                     (if (or (<= x -1.25e-103) (not (<= x 1.2e-25)))
                       (* 1.0 x)
                       (* 0.0692910599291889 y)))
                    double code(double x, double y, double z) {
                    	double tmp;
                    	if ((x <= -1.25e-103) || !(x <= 1.2e-25)) {
                    		tmp = 1.0 * x;
                    	} else {
                    		tmp = 0.0692910599291889 * y;
                    	}
                    	return tmp;
                    }
                    
                    real(8) function code(x, y, z)
                        real(8), intent (in) :: x
                        real(8), intent (in) :: y
                        real(8), intent (in) :: z
                        real(8) :: tmp
                        if ((x <= (-1.25d-103)) .or. (.not. (x <= 1.2d-25))) then
                            tmp = 1.0d0 * x
                        else
                            tmp = 0.0692910599291889d0 * y
                        end if
                        code = tmp
                    end function
                    
                    public static double code(double x, double y, double z) {
                    	double tmp;
                    	if ((x <= -1.25e-103) || !(x <= 1.2e-25)) {
                    		tmp = 1.0 * x;
                    	} else {
                    		tmp = 0.0692910599291889 * y;
                    	}
                    	return tmp;
                    }
                    
                    def code(x, y, z):
                    	tmp = 0
                    	if (x <= -1.25e-103) or not (x <= 1.2e-25):
                    		tmp = 1.0 * x
                    	else:
                    		tmp = 0.0692910599291889 * y
                    	return tmp
                    
                    function code(x, y, z)
                    	tmp = 0.0
                    	if ((x <= -1.25e-103) || !(x <= 1.2e-25))
                    		tmp = Float64(1.0 * x);
                    	else
                    		tmp = Float64(0.0692910599291889 * y);
                    	end
                    	return tmp
                    end
                    
                    function tmp_2 = code(x, y, z)
                    	tmp = 0.0;
                    	if ((x <= -1.25e-103) || ~((x <= 1.2e-25)))
                    		tmp = 1.0 * x;
                    	else
                    		tmp = 0.0692910599291889 * y;
                    	end
                    	tmp_2 = tmp;
                    end
                    
                    code[x_, y_, z_] := If[Or[LessEqual[x, -1.25e-103], N[Not[LessEqual[x, 1.2e-25]], $MachinePrecision]], N[(1.0 * x), $MachinePrecision], N[(0.0692910599291889 * y), $MachinePrecision]]
                    
                    \begin{array}{l}
                    
                    \\
                    \begin{array}{l}
                    \mathbf{if}\;x \leq -1.25 \cdot 10^{-103} \lor \neg \left(x \leq 1.2 \cdot 10^{-25}\right):\\
                    \;\;\;\;1 \cdot x\\
                    
                    \mathbf{else}:\\
                    \;\;\;\;0.0692910599291889 \cdot y\\
                    
                    
                    \end{array}
                    \end{array}
                    
                    Derivation
                    1. Split input into 2 regimes
                    2. if x < -1.24999999999999992e-103 or 1.20000000000000005e-25 < x

                      1. Initial program 69.8%

                        \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
                      2. Add Preprocessing
                      3. Taylor expanded in z around inf

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

                          \[\leadsto \color{blue}{\frac{692910599291889}{10000000000000000} \cdot y + x} \]
                        2. lower-fma.f6490.3

                          \[\leadsto \color{blue}{\mathsf{fma}\left(0.0692910599291889, y, x\right)} \]
                      5. Applied rewrites90.3%

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

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

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

                          \[\leadsto 1 \cdot x \]
                        3. Step-by-step derivation
                          1. Applied rewrites73.8%

                            \[\leadsto 1 \cdot x \]

                          if -1.24999999999999992e-103 < x < 1.20000000000000005e-25

                          1. Initial program 62.6%

                            \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
                          2. Add Preprocessing
                          3. Taylor expanded in z around inf

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

                              \[\leadsto \color{blue}{\frac{692910599291889}{10000000000000000} \cdot y + x} \]
                            2. lower-fma.f6469.5

                              \[\leadsto \color{blue}{\mathsf{fma}\left(0.0692910599291889, y, x\right)} \]
                          5. Applied rewrites69.5%

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

                            \[\leadsto \frac{692910599291889}{10000000000000000} \cdot \color{blue}{y} \]
                          7. Step-by-step derivation
                            1. Applied rewrites52.6%

                              \[\leadsto 0.0692910599291889 \cdot \color{blue}{y} \]
                          8. Recombined 2 regimes into one program.
                          9. Final simplification66.9%

                            \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq -1.25 \cdot 10^{-103} \lor \neg \left(x \leq 1.2 \cdot 10^{-25}\right):\\ \;\;\;\;1 \cdot x\\ \mathbf{else}:\\ \;\;\;\;0.0692910599291889 \cdot y\\ \end{array} \]
                          10. Add Preprocessing

                          Alternative 11: 79.1% accurate, 6.7× speedup?

                          \[\begin{array}{l} \\ \mathsf{fma}\left(0.0692910599291889, y, x\right) \end{array} \]
                          (FPCore (x y z) :precision binary64 (fma 0.0692910599291889 y x))
                          double code(double x, double y, double z) {
                          	return fma(0.0692910599291889, y, x);
                          }
                          
                          function code(x, y, z)
                          	return fma(0.0692910599291889, y, x)
                          end
                          
                          code[x_, y_, z_] := N[(0.0692910599291889 * y + x), $MachinePrecision]
                          
                          \begin{array}{l}
                          
                          \\
                          \mathsf{fma}\left(0.0692910599291889, y, x\right)
                          \end{array}
                          
                          Derivation
                          1. Initial program 67.5%

                            \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
                          2. Add Preprocessing
                          3. Taylor expanded in z around inf

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

                              \[\leadsto \color{blue}{\frac{692910599291889}{10000000000000000} \cdot y + x} \]
                            2. lower-fma.f6483.5

                              \[\leadsto \color{blue}{\mathsf{fma}\left(0.0692910599291889, y, x\right)} \]
                          5. Applied rewrites83.5%

                            \[\leadsto \color{blue}{\mathsf{fma}\left(0.0692910599291889, y, x\right)} \]
                          6. Add Preprocessing

                          Alternative 12: 30.5% accurate, 7.8× speedup?

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

                            \[x + \frac{y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304} \]
                          2. Add Preprocessing
                          3. Taylor expanded in z around inf

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

                              \[\leadsto \color{blue}{\frac{692910599291889}{10000000000000000} \cdot y + x} \]
                            2. lower-fma.f6483.5

                              \[\leadsto \color{blue}{\mathsf{fma}\left(0.0692910599291889, y, x\right)} \]
                          5. Applied rewrites83.5%

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

                            \[\leadsto \frac{692910599291889}{10000000000000000} \cdot \color{blue}{y} \]
                          7. Step-by-step derivation
                            1. Applied rewrites28.7%

                              \[\leadsto 0.0692910599291889 \cdot \color{blue}{y} \]
                            2. Add Preprocessing

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

                            \[\begin{array}{l} \\ \begin{array}{l} t_0 := \left(\frac{0.07512208616047561}{z} + 0.0692910599291889\right) \cdot y - \left(\frac{0.40462203869992125 \cdot y}{z \cdot z} - x\right)\\ \mathbf{if}\;z < -8120153.652456675:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;z < 6.576118972787377 \cdot 10^{+20}:\\ \;\;\;\;x + \left(y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)\right) \cdot \frac{1}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304}\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
                            (FPCore (x y z)
                             :precision binary64
                             (let* ((t_0
                                     (-
                                      (* (+ (/ 0.07512208616047561 z) 0.0692910599291889) y)
                                      (- (/ (* 0.40462203869992125 y) (* z z)) x))))
                               (if (< z -8120153.652456675)
                                 t_0
                                 (if (< z 6.576118972787377e+20)
                                   (+
                                    x
                                    (*
                                     (*
                                      y
                                      (+
                                       (* (+ (* z 0.0692910599291889) 0.4917317610505968) z)
                                       0.279195317918525))
                                     (/ 1.0 (+ (* (+ z 6.012459259764103) z) 3.350343815022304))))
                                   t_0))))
                            double code(double x, double y, double z) {
                            	double t_0 = (((0.07512208616047561 / z) + 0.0692910599291889) * y) - (((0.40462203869992125 * y) / (z * z)) - x);
                            	double tmp;
                            	if (z < -8120153.652456675) {
                            		tmp = t_0;
                            	} else if (z < 6.576118972787377e+20) {
                            		tmp = x + ((y * ((((z * 0.0692910599291889) + 0.4917317610505968) * z) + 0.279195317918525)) * (1.0 / (((z + 6.012459259764103) * z) + 3.350343815022304)));
                            	} else {
                            		tmp = t_0;
                            	}
                            	return tmp;
                            }
                            
                            real(8) function code(x, y, z)
                                real(8), intent (in) :: x
                                real(8), intent (in) :: y
                                real(8), intent (in) :: z
                                real(8) :: t_0
                                real(8) :: tmp
                                t_0 = (((0.07512208616047561d0 / z) + 0.0692910599291889d0) * y) - (((0.40462203869992125d0 * y) / (z * z)) - x)
                                if (z < (-8120153.652456675d0)) then
                                    tmp = t_0
                                else if (z < 6.576118972787377d+20) then
                                    tmp = x + ((y * ((((z * 0.0692910599291889d0) + 0.4917317610505968d0) * z) + 0.279195317918525d0)) * (1.0d0 / (((z + 6.012459259764103d0) * z) + 3.350343815022304d0)))
                                else
                                    tmp = t_0
                                end if
                                code = tmp
                            end function
                            
                            public static double code(double x, double y, double z) {
                            	double t_0 = (((0.07512208616047561 / z) + 0.0692910599291889) * y) - (((0.40462203869992125 * y) / (z * z)) - x);
                            	double tmp;
                            	if (z < -8120153.652456675) {
                            		tmp = t_0;
                            	} else if (z < 6.576118972787377e+20) {
                            		tmp = x + ((y * ((((z * 0.0692910599291889) + 0.4917317610505968) * z) + 0.279195317918525)) * (1.0 / (((z + 6.012459259764103) * z) + 3.350343815022304)));
                            	} else {
                            		tmp = t_0;
                            	}
                            	return tmp;
                            }
                            
                            def code(x, y, z):
                            	t_0 = (((0.07512208616047561 / z) + 0.0692910599291889) * y) - (((0.40462203869992125 * y) / (z * z)) - x)
                            	tmp = 0
                            	if z < -8120153.652456675:
                            		tmp = t_0
                            	elif z < 6.576118972787377e+20:
                            		tmp = x + ((y * ((((z * 0.0692910599291889) + 0.4917317610505968) * z) + 0.279195317918525)) * (1.0 / (((z + 6.012459259764103) * z) + 3.350343815022304)))
                            	else:
                            		tmp = t_0
                            	return tmp
                            
                            function code(x, y, z)
                            	t_0 = Float64(Float64(Float64(Float64(0.07512208616047561 / z) + 0.0692910599291889) * y) - Float64(Float64(Float64(0.40462203869992125 * y) / Float64(z * z)) - x))
                            	tmp = 0.0
                            	if (z < -8120153.652456675)
                            		tmp = t_0;
                            	elseif (z < 6.576118972787377e+20)
                            		tmp = Float64(x + Float64(Float64(y * Float64(Float64(Float64(Float64(z * 0.0692910599291889) + 0.4917317610505968) * z) + 0.279195317918525)) * Float64(1.0 / Float64(Float64(Float64(z + 6.012459259764103) * z) + 3.350343815022304))));
                            	else
                            		tmp = t_0;
                            	end
                            	return tmp
                            end
                            
                            function tmp_2 = code(x, y, z)
                            	t_0 = (((0.07512208616047561 / z) + 0.0692910599291889) * y) - (((0.40462203869992125 * y) / (z * z)) - x);
                            	tmp = 0.0;
                            	if (z < -8120153.652456675)
                            		tmp = t_0;
                            	elseif (z < 6.576118972787377e+20)
                            		tmp = x + ((y * ((((z * 0.0692910599291889) + 0.4917317610505968) * z) + 0.279195317918525)) * (1.0 / (((z + 6.012459259764103) * z) + 3.350343815022304)));
                            	else
                            		tmp = t_0;
                            	end
                            	tmp_2 = tmp;
                            end
                            
                            code[x_, y_, z_] := Block[{t$95$0 = N[(N[(N[(N[(0.07512208616047561 / z), $MachinePrecision] + 0.0692910599291889), $MachinePrecision] * y), $MachinePrecision] - N[(N[(N[(0.40462203869992125 * y), $MachinePrecision] / N[(z * z), $MachinePrecision]), $MachinePrecision] - x), $MachinePrecision]), $MachinePrecision]}, If[Less[z, -8120153.652456675], t$95$0, If[Less[z, 6.576118972787377e+20], N[(x + N[(N[(y * N[(N[(N[(N[(z * 0.0692910599291889), $MachinePrecision] + 0.4917317610505968), $MachinePrecision] * z), $MachinePrecision] + 0.279195317918525), $MachinePrecision]), $MachinePrecision] * N[(1.0 / N[(N[(N[(z + 6.012459259764103), $MachinePrecision] * z), $MachinePrecision] + 3.350343815022304), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]
                            
                            \begin{array}{l}
                            
                            \\
                            \begin{array}{l}
                            t_0 := \left(\frac{0.07512208616047561}{z} + 0.0692910599291889\right) \cdot y - \left(\frac{0.40462203869992125 \cdot y}{z \cdot z} - x\right)\\
                            \mathbf{if}\;z < -8120153.652456675:\\
                            \;\;\;\;t\_0\\
                            
                            \mathbf{elif}\;z < 6.576118972787377 \cdot 10^{+20}:\\
                            \;\;\;\;x + \left(y \cdot \left(\left(z \cdot 0.0692910599291889 + 0.4917317610505968\right) \cdot z + 0.279195317918525\right)\right) \cdot \frac{1}{\left(z + 6.012459259764103\right) \cdot z + 3.350343815022304}\\
                            
                            \mathbf{else}:\\
                            \;\;\;\;t\_0\\
                            
                            
                            \end{array}
                            \end{array}
                            

                            Reproduce

                            ?
                            herbie shell --seed 2024337 
                            (FPCore (x y z)
                              :name "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2, B"
                              :precision binary64
                            
                              :alt
                              (! :herbie-platform default (if (< z -324806146098267/40000000) (- (* (+ (/ 7512208616047561/100000000000000000 z) 692910599291889/10000000000000000) y) (- (/ (* 323697630959937/800000000000000 y) (* z z)) x)) (if (< z 657611897278737700000) (+ x (* (* y (+ (* (+ (* z 692910599291889/10000000000000000) 307332350656623/625000000000000) z) 11167812716741/40000000000000)) (/ 1 (+ (* (+ z 6012459259764103/1000000000000000) z) 104698244219447/31250000000000)))) (- (* (+ (/ 7512208616047561/100000000000000000 z) 692910599291889/10000000000000000) y) (- (/ (* 323697630959937/800000000000000 y) (* z z)) x)))))
                            
                              (+ x (/ (* y (+ (* (+ (* z 0.0692910599291889) 0.4917317610505968) z) 0.279195317918525)) (+ (* (+ z 6.012459259764103) z) 3.350343815022304))))