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

Percentage Accurate: 59.2% → 98.9%
Time: 5.5s
Alternatives: 14
Speedup: 8.8×

Specification

?
\[\begin{array}{l} \\ x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \end{array} \]
(FPCore (x y z t a b)
 :precision binary64
 (+
  x
  (/
   (*
    y
    (+ (* (+ (* (+ (* (+ (* z 3.13060547623) 11.1667541262) z) t) z) a) z) b))
   (+
    (* (+ (* (+ (* (+ z 15.234687407) z) 31.4690115749) z) 11.9400905721) z)
    0.607771387771))))
double code(double x, double y, double z, double t, double a, double b) {
	return x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771));
}
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y, z, t, a, b)
use fmin_fmax_functions
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    code = x + ((y * ((((((((z * 3.13060547623d0) + 11.1667541262d0) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407d0) * z) + 31.4690115749d0) * z) + 11.9400905721d0) * z) + 0.607771387771d0))
end function
public static double code(double x, double y, double z, double t, double a, double b) {
	return x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771));
}
def code(x, y, z, t, a, b):
	return x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771))
function code(x, y, z, t, a, b)
	return Float64(x + Float64(Float64(y * Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / Float64(Float64(Float64(Float64(Float64(Float64(Float64(z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771)))
end
function tmp = code(x, y, z, t, a, b)
	tmp = x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771));
end
code[x_, y_, z_, t_, a_, b_] := N[(x + N[(N[(y * N[(N[(N[(N[(N[(N[(N[(N[(z * 3.13060547623), $MachinePrecision] + 11.1667541262), $MachinePrecision] * z), $MachinePrecision] + t), $MachinePrecision] * z), $MachinePrecision] + a), $MachinePrecision] * z), $MachinePrecision] + b), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(N[(N[(N[(N[(z + 15.234687407), $MachinePrecision] * z), $MachinePrecision] + 31.4690115749), $MachinePrecision] * z), $MachinePrecision] + 11.9400905721), $MachinePrecision] * z), $MachinePrecision] + 0.607771387771), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771}
\end{array}

Local Percentage Accuracy vs ?

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

Accuracy vs Speed?

Herbie found 14 alternatives:

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

Initial Program: 59.2% accurate, 1.0× speedup?

\[\begin{array}{l} \\ x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \end{array} \]
(FPCore (x y z t a b)
 :precision binary64
 (+
  x
  (/
   (*
    y
    (+ (* (+ (* (+ (* (+ (* z 3.13060547623) 11.1667541262) z) t) z) a) z) b))
   (+
    (* (+ (* (+ (* (+ z 15.234687407) z) 31.4690115749) z) 11.9400905721) z)
    0.607771387771))))
double code(double x, double y, double z, double t, double a, double b) {
	return x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771));
}
module fmin_fmax_functions
    implicit none
    private
    public fmax
    public fmin

    interface fmax
        module procedure fmax88
        module procedure fmax44
        module procedure fmax84
        module procedure fmax48
    end interface
    interface fmin
        module procedure fmin88
        module procedure fmin44
        module procedure fmin84
        module procedure fmin48
    end interface
contains
    real(8) function fmax88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(4) function fmax44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, max(x, y), y /= y), x /= x)
    end function
    real(8) function fmax84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, max(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmax48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), max(dble(x), y), y /= y), x /= x)
    end function
    real(8) function fmin88(x, y) result (res)
        real(8), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(4) function fmin44(x, y) result (res)
        real(4), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(y, merge(x, min(x, y), y /= y), x /= x)
    end function
    real(8) function fmin84(x, y) result(res)
        real(8), intent (in) :: x
        real(4), intent (in) :: y
        res = merge(dble(y), merge(x, min(x, dble(y)), y /= y), x /= x)
    end function
    real(8) function fmin48(x, y) result(res)
        real(4), intent (in) :: x
        real(8), intent (in) :: y
        res = merge(y, merge(dble(x), min(dble(x), y), y /= y), x /= x)
    end function
end module

real(8) function code(x, y, z, t, a, b)
use fmin_fmax_functions
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    real(8), intent (in) :: t
    real(8), intent (in) :: a
    real(8), intent (in) :: b
    code = x + ((y * ((((((((z * 3.13060547623d0) + 11.1667541262d0) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407d0) * z) + 31.4690115749d0) * z) + 11.9400905721d0) * z) + 0.607771387771d0))
end function
public static double code(double x, double y, double z, double t, double a, double b) {
	return x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771));
}
def code(x, y, z, t, a, b):
	return x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771))
function code(x, y, z, t, a, b)
	return Float64(x + Float64(Float64(y * Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / Float64(Float64(Float64(Float64(Float64(Float64(Float64(z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771)))
end
function tmp = code(x, y, z, t, a, b)
	tmp = x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771));
end
code[x_, y_, z_, t_, a_, b_] := N[(x + N[(N[(y * N[(N[(N[(N[(N[(N[(N[(N[(z * 3.13060547623), $MachinePrecision] + 11.1667541262), $MachinePrecision] * z), $MachinePrecision] + t), $MachinePrecision] * z), $MachinePrecision] + a), $MachinePrecision] * z), $MachinePrecision] + b), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(N[(N[(N[(N[(z + 15.234687407), $MachinePrecision] * z), $MachinePrecision] + 31.4690115749), $MachinePrecision] * z), $MachinePrecision] + 11.9400905721), $MachinePrecision] * z), $MachinePrecision] + 0.607771387771), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771}
\end{array}

Alternative 1: 98.9% accurate, 0.4× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_1 := \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)\\ \mathbf{if}\;x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \leq \infty:\\ \;\;\;\;\mathsf{fma}\left(y, z \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(3.13060547623, z, 11.1667541262\right), z, t\right), z, a\right)}{t\_1}, \mathsf{fma}\left(b, \frac{y}{t\_1}, x\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}, y, x\right)\\ \end{array} \end{array} \]
(FPCore (x y z t a b)
 :precision binary64
 (let* ((t_1
         (fma
          (fma (fma (- z -15.234687407) z 31.4690115749) z 11.9400905721)
          z
          0.607771387771)))
   (if (<=
        (+
         x
         (/
          (*
           y
           (+
            (* (+ (* (+ (* (+ (* z 3.13060547623) 11.1667541262) z) t) z) a) z)
            b))
          (+
           (*
            (+ (* (+ (* (+ z 15.234687407) z) 31.4690115749) z) 11.9400905721)
            z)
           0.607771387771)))
        INFINITY)
     (fma
      y
      (* z (/ (fma (fma (fma 3.13060547623 z 11.1667541262) z t) z a) t_1))
      (fma b (/ y t_1) x))
     (fma
      (+
       3.13060547623
       (*
        -1.0
        (/ (+ 36.52704169880642 (* -1.0 (/ (+ 457.9610022158428 t) z))) z)))
      y
      x))))
double code(double x, double y, double z, double t, double a, double b) {
	double t_1 = fma(fma(fma((z - -15.234687407), z, 31.4690115749), z, 11.9400905721), z, 0.607771387771);
	double tmp;
	if ((x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771))) <= ((double) INFINITY)) {
		tmp = fma(y, (z * (fma(fma(fma(3.13060547623, z, 11.1667541262), z, t), z, a) / t_1)), fma(b, (y / t_1), x));
	} else {
		tmp = fma((3.13060547623 + (-1.0 * ((36.52704169880642 + (-1.0 * ((457.9610022158428 + t) / z))) / z))), y, x);
	}
	return tmp;
}
function code(x, y, z, t, a, b)
	t_1 = fma(fma(fma(Float64(z - -15.234687407), z, 31.4690115749), z, 11.9400905721), z, 0.607771387771)
	tmp = 0.0
	if (Float64(x + Float64(Float64(y * Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / Float64(Float64(Float64(Float64(Float64(Float64(Float64(z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771))) <= Inf)
		tmp = fma(y, Float64(z * Float64(fma(fma(fma(3.13060547623, z, 11.1667541262), z, t), z, a) / t_1)), fma(b, Float64(y / t_1), x));
	else
		tmp = fma(Float64(3.13060547623 + Float64(-1.0 * Float64(Float64(36.52704169880642 + Float64(-1.0 * Float64(Float64(457.9610022158428 + t) / z))) / z))), y, x);
	end
	return tmp
end
code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(N[(N[(z - -15.234687407), $MachinePrecision] * z + 31.4690115749), $MachinePrecision] * z + 11.9400905721), $MachinePrecision] * z + 0.607771387771), $MachinePrecision]}, If[LessEqual[N[(x + N[(N[(y * N[(N[(N[(N[(N[(N[(N[(N[(z * 3.13060547623), $MachinePrecision] + 11.1667541262), $MachinePrecision] * z), $MachinePrecision] + t), $MachinePrecision] * z), $MachinePrecision] + a), $MachinePrecision] * z), $MachinePrecision] + b), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(N[(N[(N[(N[(z + 15.234687407), $MachinePrecision] * z), $MachinePrecision] + 31.4690115749), $MachinePrecision] * z), $MachinePrecision] + 11.9400905721), $MachinePrecision] * z), $MachinePrecision] + 0.607771387771), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], Infinity], N[(y * N[(z * N[(N[(N[(N[(3.13060547623 * z + 11.1667541262), $MachinePrecision] * z + t), $MachinePrecision] * z + a), $MachinePrecision] / t$95$1), $MachinePrecision]), $MachinePrecision] + N[(b * N[(y / t$95$1), $MachinePrecision] + x), $MachinePrecision]), $MachinePrecision], N[(N[(3.13060547623 + N[(-1.0 * N[(N[(36.52704169880642 + N[(-1.0 * N[(N[(457.9610022158428 + t), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y + x), $MachinePrecision]]]
\begin{array}{l}

\\
\begin{array}{l}
t_1 := \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)\\
\mathbf{if}\;x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \leq \infty:\\
\;\;\;\;\mathsf{fma}\left(y, z \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(3.13060547623, z, 11.1667541262\right), z, t\right), z, a\right)}{t\_1}, \mathsf{fma}\left(b, \frac{y}{t\_1}, x\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}, y, x\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (+.f64 x (/.f64 (*.f64 y (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 z #s(literal 313060547623/100000000000 binary64)) #s(literal 55833770631/5000000000 binary64)) z) t) z) a) z) b)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 z #s(literal 15234687407/1000000000 binary64)) z) #s(literal 314690115749/10000000000 binary64)) z) #s(literal 119400905721/10000000000 binary64)) z) #s(literal 607771387771/1000000000000 binary64)))) < +inf.0

    1. Initial program 59.2%

      \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
    2. Applied rewrites63.5%

      \[\leadsto \color{blue}{\mathsf{fma}\left(y, z \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(3.13060547623, z, 11.1667541262\right), z, t\right), z, a\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, \mathsf{fma}\left(b, \frac{y}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, x\right)\right)} \]

    if +inf.0 < (+.f64 x (/.f64 (*.f64 y (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 z #s(literal 313060547623/100000000000 binary64)) #s(literal 55833770631/5000000000 binary64)) z) t) z) a) z) b)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 z #s(literal 15234687407/1000000000 binary64)) z) #s(literal 314690115749/10000000000 binary64)) z) #s(literal 119400905721/10000000000 binary64)) z) #s(literal 607771387771/1000000000000 binary64))))

    1. Initial program 59.2%

      \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
    2. Taylor expanded in z around 0

      \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
    3. Step-by-step derivation
      1. Applied rewrites64.7%

        \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
      2. Step-by-step derivation
        1. lift-+.f64N/A

          \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
        2. +-commutativeN/A

          \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
        3. lift-/.f64N/A

          \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
        4. lift-*.f64N/A

          \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
        5. associate-/l*N/A

          \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
        6. *-commutativeN/A

          \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
        7. lower-fma.f64N/A

          \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
      3. Applied rewrites65.6%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
      4. Taylor expanded in z around -inf

        \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}}, y, x\right) \]
      5. Step-by-step derivation
        1. lower-+.f64N/A

          \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + \color{blue}{-1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}}, y, x\right) \]
        2. lower-*.f64N/A

          \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \color{blue}{\frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}}, y, x\right) \]
        3. lower-/.f64N/A

          \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{\color{blue}{z}}, y, x\right) \]
        4. lower-+.f64N/A

          \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}, y, x\right) \]
        5. lower-*.f64N/A

          \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}, y, x\right) \]
        6. lower-/.f64N/A

          \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}, y, x\right) \]
        7. lower-+.f6455.4

          \[\leadsto \mathsf{fma}\left(3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}, y, x\right) \]
      6. Applied rewrites55.4%

        \[\leadsto \mathsf{fma}\left(\color{blue}{3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}}, y, x\right) \]
    4. Recombined 2 regimes into one program.
    5. Add Preprocessing

    Alternative 2: 98.3% accurate, 0.5× speedup?

    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \leq \infty:\\ \;\;\;\;\mathsf{fma}\left(\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(3.13060547623, z, 11.1667541262\right), z, t\right), z, a\right), z, b\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}, y, x\right)\\ \end{array} \end{array} \]
    (FPCore (x y z t a b)
     :precision binary64
     (if (<=
          (+
           x
           (/
            (*
             y
             (+
              (* (+ (* (+ (* (+ (* z 3.13060547623) 11.1667541262) z) t) z) a) z)
              b))
            (+
             (*
              (+ (* (+ (* (+ z 15.234687407) z) 31.4690115749) z) 11.9400905721)
              z)
             0.607771387771)))
          INFINITY)
       (fma
        (/
         (fma (fma (fma (fma 3.13060547623 z 11.1667541262) z t) z a) z b)
         (fma
          (fma (fma (- z -15.234687407) z 31.4690115749) z 11.9400905721)
          z
          0.607771387771))
        y
        x)
       (fma
        (+
         3.13060547623
         (*
          -1.0
          (/ (+ 36.52704169880642 (* -1.0 (/ (+ 457.9610022158428 t) z))) z)))
        y
        x)))
    double code(double x, double y, double z, double t, double a, double b) {
    	double tmp;
    	if ((x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771))) <= ((double) INFINITY)) {
    		tmp = fma((fma(fma(fma(fma(3.13060547623, z, 11.1667541262), z, t), z, a), z, b) / fma(fma(fma((z - -15.234687407), z, 31.4690115749), z, 11.9400905721), z, 0.607771387771)), y, x);
    	} else {
    		tmp = fma((3.13060547623 + (-1.0 * ((36.52704169880642 + (-1.0 * ((457.9610022158428 + t) / z))) / z))), y, x);
    	}
    	return tmp;
    }
    
    function code(x, y, z, t, a, b)
    	tmp = 0.0
    	if (Float64(x + Float64(Float64(y * Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / Float64(Float64(Float64(Float64(Float64(Float64(Float64(z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771))) <= Inf)
    		tmp = fma(Float64(fma(fma(fma(fma(3.13060547623, z, 11.1667541262), z, t), z, a), z, b) / fma(fma(fma(Float64(z - -15.234687407), z, 31.4690115749), z, 11.9400905721), z, 0.607771387771)), y, x);
    	else
    		tmp = fma(Float64(3.13060547623 + Float64(-1.0 * Float64(Float64(36.52704169880642 + Float64(-1.0 * Float64(Float64(457.9610022158428 + t) / z))) / z))), y, x);
    	end
    	return tmp
    end
    
    code[x_, y_, z_, t_, a_, b_] := If[LessEqual[N[(x + N[(N[(y * N[(N[(N[(N[(N[(N[(N[(N[(z * 3.13060547623), $MachinePrecision] + 11.1667541262), $MachinePrecision] * z), $MachinePrecision] + t), $MachinePrecision] * z), $MachinePrecision] + a), $MachinePrecision] * z), $MachinePrecision] + b), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(N[(N[(N[(N[(z + 15.234687407), $MachinePrecision] * z), $MachinePrecision] + 31.4690115749), $MachinePrecision] * z), $MachinePrecision] + 11.9400905721), $MachinePrecision] * z), $MachinePrecision] + 0.607771387771), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], Infinity], N[(N[(N[(N[(N[(N[(3.13060547623 * z + 11.1667541262), $MachinePrecision] * z + t), $MachinePrecision] * z + a), $MachinePrecision] * z + b), $MachinePrecision] / N[(N[(N[(N[(z - -15.234687407), $MachinePrecision] * z + 31.4690115749), $MachinePrecision] * z + 11.9400905721), $MachinePrecision] * z + 0.607771387771), $MachinePrecision]), $MachinePrecision] * y + x), $MachinePrecision], N[(N[(3.13060547623 + N[(-1.0 * N[(N[(36.52704169880642 + N[(-1.0 * N[(N[(457.9610022158428 + t), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y + x), $MachinePrecision]]
    
    \begin{array}{l}
    
    \\
    \begin{array}{l}
    \mathbf{if}\;x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \leq \infty:\\
    \;\;\;\;\mathsf{fma}\left(\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(3.13060547623, z, 11.1667541262\right), z, t\right), z, a\right), z, b\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)\\
    
    \mathbf{else}:\\
    \;\;\;\;\mathsf{fma}\left(3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}, y, x\right)\\
    
    
    \end{array}
    \end{array}
    
    Derivation
    1. Split input into 2 regimes
    2. if (+.f64 x (/.f64 (*.f64 y (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 z #s(literal 313060547623/100000000000 binary64)) #s(literal 55833770631/5000000000 binary64)) z) t) z) a) z) b)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 z #s(literal 15234687407/1000000000 binary64)) z) #s(literal 314690115749/10000000000 binary64)) z) #s(literal 119400905721/10000000000 binary64)) z) #s(literal 607771387771/1000000000000 binary64)))) < +inf.0

      1. Initial program 59.2%

        \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
      2. Applied rewrites61.2%

        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(3.13060547623, z, 11.1667541262\right), z, t\right), z, a\right), z, b\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]

      if +inf.0 < (+.f64 x (/.f64 (*.f64 y (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 z #s(literal 313060547623/100000000000 binary64)) #s(literal 55833770631/5000000000 binary64)) z) t) z) a) z) b)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 z #s(literal 15234687407/1000000000 binary64)) z) #s(literal 314690115749/10000000000 binary64)) z) #s(literal 119400905721/10000000000 binary64)) z) #s(literal 607771387771/1000000000000 binary64))))

      1. Initial program 59.2%

        \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
      2. Taylor expanded in z around 0

        \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
      3. Step-by-step derivation
        1. Applied rewrites64.7%

          \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
        2. Step-by-step derivation
          1. lift-+.f64N/A

            \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
          2. +-commutativeN/A

            \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
          3. lift-/.f64N/A

            \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
          4. lift-*.f64N/A

            \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
          5. associate-/l*N/A

            \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
          6. *-commutativeN/A

            \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
          7. lower-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
        3. Applied rewrites65.6%

          \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
        4. Taylor expanded in z around -inf

          \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}}, y, x\right) \]
        5. Step-by-step derivation
          1. lower-+.f64N/A

            \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + \color{blue}{-1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}}, y, x\right) \]
          2. lower-*.f64N/A

            \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \color{blue}{\frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}}, y, x\right) \]
          3. lower-/.f64N/A

            \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{\color{blue}{z}}, y, x\right) \]
          4. lower-+.f64N/A

            \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}, y, x\right) \]
          5. lower-*.f64N/A

            \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}, y, x\right) \]
          6. lower-/.f64N/A

            \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}, y, x\right) \]
          7. lower-+.f6455.4

            \[\leadsto \mathsf{fma}\left(3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}, y, x\right) \]
        6. Applied rewrites55.4%

          \[\leadsto \mathsf{fma}\left(\color{blue}{3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}}, y, x\right) \]
      4. Recombined 2 regimes into one program.
      5. Add Preprocessing

      Alternative 3: 97.3% accurate, 1.2× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} t_1 := \mathsf{fma}\left(3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}, y, x\right)\\ \mathbf{if}\;z \leq -3.95 \cdot 10^{+18}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;z \leq 3.2 \cdot 10^{+44}:\\ \;\;\;\;\mathsf{fma}\left(\frac{\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
      (FPCore (x y z t a b)
       :precision binary64
       (let* ((t_1
               (fma
                (+
                 3.13060547623
                 (*
                  -1.0
                  (/
                   (+ 36.52704169880642 (* -1.0 (/ (+ 457.9610022158428 t) z)))
                   z)))
                y
                x)))
         (if (<= z -3.95e+18)
           t_1
           (if (<= z 3.2e+44)
             (fma
              (/
               (fma (fma t z a) z b)
               (fma
                (fma (fma (- z -15.234687407) z 31.4690115749) z 11.9400905721)
                z
                0.607771387771))
              y
              x)
             t_1))))
      double code(double x, double y, double z, double t, double a, double b) {
      	double t_1 = fma((3.13060547623 + (-1.0 * ((36.52704169880642 + (-1.0 * ((457.9610022158428 + t) / z))) / z))), y, x);
      	double tmp;
      	if (z <= -3.95e+18) {
      		tmp = t_1;
      	} else if (z <= 3.2e+44) {
      		tmp = fma((fma(fma(t, z, a), z, b) / fma(fma(fma((z - -15.234687407), z, 31.4690115749), z, 11.9400905721), z, 0.607771387771)), y, x);
      	} else {
      		tmp = t_1;
      	}
      	return tmp;
      }
      
      function code(x, y, z, t, a, b)
      	t_1 = fma(Float64(3.13060547623 + Float64(-1.0 * Float64(Float64(36.52704169880642 + Float64(-1.0 * Float64(Float64(457.9610022158428 + t) / z))) / z))), y, x)
      	tmp = 0.0
      	if (z <= -3.95e+18)
      		tmp = t_1;
      	elseif (z <= 3.2e+44)
      		tmp = fma(Float64(fma(fma(t, z, a), z, b) / fma(fma(fma(Float64(z - -15.234687407), z, 31.4690115749), z, 11.9400905721), z, 0.607771387771)), y, x);
      	else
      		tmp = t_1;
      	end
      	return tmp
      end
      
      code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(3.13060547623 + N[(-1.0 * N[(N[(36.52704169880642 + N[(-1.0 * N[(N[(457.9610022158428 + t), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y + x), $MachinePrecision]}, If[LessEqual[z, -3.95e+18], t$95$1, If[LessEqual[z, 3.2e+44], N[(N[(N[(N[(t * z + a), $MachinePrecision] * z + b), $MachinePrecision] / N[(N[(N[(N[(z - -15.234687407), $MachinePrecision] * z + 31.4690115749), $MachinePrecision] * z + 11.9400905721), $MachinePrecision] * z + 0.607771387771), $MachinePrecision]), $MachinePrecision] * y + x), $MachinePrecision], t$95$1]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      t_1 := \mathsf{fma}\left(3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}, y, x\right)\\
      \mathbf{if}\;z \leq -3.95 \cdot 10^{+18}:\\
      \;\;\;\;t\_1\\
      
      \mathbf{elif}\;z \leq 3.2 \cdot 10^{+44}:\\
      \;\;\;\;\mathsf{fma}\left(\frac{\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;t\_1\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if z < -3.95e18 or 3.20000000000000004e44 < z

        1. Initial program 59.2%

          \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
        2. Taylor expanded in z around 0

          \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
        3. Step-by-step derivation
          1. Applied rewrites64.7%

            \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
          2. Step-by-step derivation
            1. lift-+.f64N/A

              \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
            2. +-commutativeN/A

              \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
            3. lift-/.f64N/A

              \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
            4. lift-*.f64N/A

              \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
            5. associate-/l*N/A

              \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
            6. *-commutativeN/A

              \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
            7. lower-fma.f64N/A

              \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
          3. Applied rewrites65.6%

            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
          4. Taylor expanded in z around -inf

            \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}}, y, x\right) \]
          5. Step-by-step derivation
            1. lower-+.f64N/A

              \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + \color{blue}{-1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}}, y, x\right) \]
            2. lower-*.f64N/A

              \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \color{blue}{\frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}}, y, x\right) \]
            3. lower-/.f64N/A

              \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{\color{blue}{z}}, y, x\right) \]
            4. lower-+.f64N/A

              \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}, y, x\right) \]
            5. lower-*.f64N/A

              \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}, y, x\right) \]
            6. lower-/.f64N/A

              \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}, y, x\right) \]
            7. lower-+.f6455.4

              \[\leadsto \mathsf{fma}\left(3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}, y, x\right) \]
          6. Applied rewrites55.4%

            \[\leadsto \mathsf{fma}\left(\color{blue}{3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}}, y, x\right) \]

          if -3.95e18 < z < 3.20000000000000004e44

          1. Initial program 59.2%

            \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
          2. Taylor expanded in z around 0

            \[\leadsto x + \frac{y \cdot \left(\left(\color{blue}{t} \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
          3. Step-by-step derivation
            1. Applied rewrites62.8%

              \[\leadsto x + \frac{y \cdot \left(\left(\color{blue}{t} \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
            2. Step-by-step derivation
              1. lift-+.f64N/A

                \[\leadsto \color{blue}{x + \frac{y \cdot \left(\left(t \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
              2. +-commutativeN/A

                \[\leadsto \color{blue}{\frac{y \cdot \left(\left(t \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
              3. lift-/.f64N/A

                \[\leadsto \color{blue}{\frac{y \cdot \left(\left(t \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
              4. lift-*.f64N/A

                \[\leadsto \frac{\color{blue}{y \cdot \left(\left(t \cdot z + a\right) \cdot z + b\right)}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
              5. associate-/l*N/A

                \[\leadsto \color{blue}{y \cdot \frac{\left(t \cdot z + a\right) \cdot z + b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
              6. *-commutativeN/A

                \[\leadsto \color{blue}{\frac{\left(t \cdot z + a\right) \cdot z + b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
              7. lower-fma.f64N/A

                \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\left(t \cdot z + a\right) \cdot z + b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
            3. Applied rewrites64.1%

              \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
          4. Recombined 2 regimes into one program.
          5. Add Preprocessing

          Alternative 4: 96.2% accurate, 1.4× speedup?

          \[\begin{array}{l} \\ \begin{array}{l} t_1 := \mathsf{fma}\left(3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}, y, x\right)\\ \mathbf{if}\;z \leq -2.16 \cdot 10^{+17}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;z \leq 260000:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), \frac{y}{\mathsf{fma}\left(\mathsf{fma}\left(31.4690115749, z, 11.9400905721\right), z, 0.607771387771\right)}, x\right)\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
          (FPCore (x y z t a b)
           :precision binary64
           (let* ((t_1
                   (fma
                    (+
                     3.13060547623
                     (*
                      -1.0
                      (/
                       (+ 36.52704169880642 (* -1.0 (/ (+ 457.9610022158428 t) z)))
                       z)))
                    y
                    x)))
             (if (<= z -2.16e+17)
               t_1
               (if (<= z 260000.0)
                 (fma
                  (fma (fma t z a) z b)
                  (/ y (fma (fma 31.4690115749 z 11.9400905721) z 0.607771387771))
                  x)
                 t_1))))
          double code(double x, double y, double z, double t, double a, double b) {
          	double t_1 = fma((3.13060547623 + (-1.0 * ((36.52704169880642 + (-1.0 * ((457.9610022158428 + t) / z))) / z))), y, x);
          	double tmp;
          	if (z <= -2.16e+17) {
          		tmp = t_1;
          	} else if (z <= 260000.0) {
          		tmp = fma(fma(fma(t, z, a), z, b), (y / fma(fma(31.4690115749, z, 11.9400905721), z, 0.607771387771)), x);
          	} else {
          		tmp = t_1;
          	}
          	return tmp;
          }
          
          function code(x, y, z, t, a, b)
          	t_1 = fma(Float64(3.13060547623 + Float64(-1.0 * Float64(Float64(36.52704169880642 + Float64(-1.0 * Float64(Float64(457.9610022158428 + t) / z))) / z))), y, x)
          	tmp = 0.0
          	if (z <= -2.16e+17)
          		tmp = t_1;
          	elseif (z <= 260000.0)
          		tmp = fma(fma(fma(t, z, a), z, b), Float64(y / fma(fma(31.4690115749, z, 11.9400905721), z, 0.607771387771)), x);
          	else
          		tmp = t_1;
          	end
          	return tmp
          end
          
          code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(3.13060547623 + N[(-1.0 * N[(N[(36.52704169880642 + N[(-1.0 * N[(N[(457.9610022158428 + t), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y + x), $MachinePrecision]}, If[LessEqual[z, -2.16e+17], t$95$1, If[LessEqual[z, 260000.0], N[(N[(N[(t * z + a), $MachinePrecision] * z + b), $MachinePrecision] * N[(y / N[(N[(31.4690115749 * z + 11.9400905721), $MachinePrecision] * z + 0.607771387771), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision], t$95$1]]]
          
          \begin{array}{l}
          
          \\
          \begin{array}{l}
          t_1 := \mathsf{fma}\left(3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}, y, x\right)\\
          \mathbf{if}\;z \leq -2.16 \cdot 10^{+17}:\\
          \;\;\;\;t\_1\\
          
          \mathbf{elif}\;z \leq 260000:\\
          \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), \frac{y}{\mathsf{fma}\left(\mathsf{fma}\left(31.4690115749, z, 11.9400905721\right), z, 0.607771387771\right)}, x\right)\\
          
          \mathbf{else}:\\
          \;\;\;\;t\_1\\
          
          
          \end{array}
          \end{array}
          
          Derivation
          1. Split input into 2 regimes
          2. if z < -2.16e17 or 2.6e5 < z

            1. Initial program 59.2%

              \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
            2. Taylor expanded in z around 0

              \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
            3. Step-by-step derivation
              1. Applied rewrites64.7%

                \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
              2. Step-by-step derivation
                1. lift-+.f64N/A

                  \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
                2. +-commutativeN/A

                  \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
                3. lift-/.f64N/A

                  \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                4. lift-*.f64N/A

                  \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
                5. associate-/l*N/A

                  \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                6. *-commutativeN/A

                  \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
                7. lower-fma.f64N/A

                  \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
              3. Applied rewrites65.6%

                \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
              4. Taylor expanded in z around -inf

                \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}}, y, x\right) \]
              5. Step-by-step derivation
                1. lower-+.f64N/A

                  \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + \color{blue}{-1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}}, y, x\right) \]
                2. lower-*.f64N/A

                  \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \color{blue}{\frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}}, y, x\right) \]
                3. lower-/.f64N/A

                  \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{\color{blue}{z}}, y, x\right) \]
                4. lower-+.f64N/A

                  \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}, y, x\right) \]
                5. lower-*.f64N/A

                  \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}, y, x\right) \]
                6. lower-/.f64N/A

                  \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}, y, x\right) \]
                7. lower-+.f6455.4

                  \[\leadsto \mathsf{fma}\left(3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}, y, x\right) \]
              6. Applied rewrites55.4%

                \[\leadsto \mathsf{fma}\left(\color{blue}{3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}}, y, x\right) \]

              if -2.16e17 < z < 2.6e5

              1. Initial program 59.2%

                \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
              2. Taylor expanded in z around 0

                \[\leadsto x + \frac{y \cdot \left(\left(\color{blue}{t} \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
              3. Step-by-step derivation
                1. Applied rewrites62.8%

                  \[\leadsto x + \frac{y \cdot \left(\left(\color{blue}{t} \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                2. Applied rewrites63.8%

                  \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), \frac{y}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, x\right)} \]
                3. Taylor expanded in z around 0

                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), \frac{y}{\mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{314690115749}{10000000000}}, z, \frac{119400905721}{10000000000}\right), z, \frac{607771387771}{1000000000000}\right)}, x\right) \]
                4. Step-by-step derivation
                  1. Applied rewrites61.0%

                    \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), \frac{y}{\mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{31.4690115749}, z, 11.9400905721\right), z, 0.607771387771\right)}, x\right) \]
                5. Recombined 2 regimes into one program.
                6. Add Preprocessing

                Alternative 5: 96.0% accurate, 1.5× speedup?

                \[\begin{array}{l} \\ \begin{array}{l} t_1 := \mathsf{fma}\left(3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}, y, x\right)\\ \mathbf{if}\;z \leq -4100000000:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;z \leq 185000:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), \frac{y}{\mathsf{fma}\left(11.9400905721, z, 0.607771387771\right)}, x\right)\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
                (FPCore (x y z t a b)
                 :precision binary64
                 (let* ((t_1
                         (fma
                          (+
                           3.13060547623
                           (*
                            -1.0
                            (/
                             (+ 36.52704169880642 (* -1.0 (/ (+ 457.9610022158428 t) z)))
                             z)))
                          y
                          x)))
                   (if (<= z -4100000000.0)
                     t_1
                     (if (<= z 185000.0)
                       (fma (fma (fma t z a) z b) (/ y (fma 11.9400905721 z 0.607771387771)) x)
                       t_1))))
                double code(double x, double y, double z, double t, double a, double b) {
                	double t_1 = fma((3.13060547623 + (-1.0 * ((36.52704169880642 + (-1.0 * ((457.9610022158428 + t) / z))) / z))), y, x);
                	double tmp;
                	if (z <= -4100000000.0) {
                		tmp = t_1;
                	} else if (z <= 185000.0) {
                		tmp = fma(fma(fma(t, z, a), z, b), (y / fma(11.9400905721, z, 0.607771387771)), x);
                	} else {
                		tmp = t_1;
                	}
                	return tmp;
                }
                
                function code(x, y, z, t, a, b)
                	t_1 = fma(Float64(3.13060547623 + Float64(-1.0 * Float64(Float64(36.52704169880642 + Float64(-1.0 * Float64(Float64(457.9610022158428 + t) / z))) / z))), y, x)
                	tmp = 0.0
                	if (z <= -4100000000.0)
                		tmp = t_1;
                	elseif (z <= 185000.0)
                		tmp = fma(fma(fma(t, z, a), z, b), Float64(y / fma(11.9400905721, z, 0.607771387771)), x);
                	else
                		tmp = t_1;
                	end
                	return tmp
                end
                
                code[x_, y_, z_, t_, a_, b_] := Block[{t$95$1 = N[(N[(3.13060547623 + N[(-1.0 * N[(N[(36.52704169880642 + N[(-1.0 * N[(N[(457.9610022158428 + t), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y + x), $MachinePrecision]}, If[LessEqual[z, -4100000000.0], t$95$1, If[LessEqual[z, 185000.0], N[(N[(N[(t * z + a), $MachinePrecision] * z + b), $MachinePrecision] * N[(y / N[(11.9400905721 * z + 0.607771387771), $MachinePrecision]), $MachinePrecision] + x), $MachinePrecision], t$95$1]]]
                
                \begin{array}{l}
                
                \\
                \begin{array}{l}
                t_1 := \mathsf{fma}\left(3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}, y, x\right)\\
                \mathbf{if}\;z \leq -4100000000:\\
                \;\;\;\;t\_1\\
                
                \mathbf{elif}\;z \leq 185000:\\
                \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), \frac{y}{\mathsf{fma}\left(11.9400905721, z, 0.607771387771\right)}, x\right)\\
                
                \mathbf{else}:\\
                \;\;\;\;t\_1\\
                
                
                \end{array}
                \end{array}
                
                Derivation
                1. Split input into 2 regimes
                2. if z < -4.1e9 or 185000 < z

                  1. Initial program 59.2%

                    \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                  2. Taylor expanded in z around 0

                    \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                  3. Step-by-step derivation
                    1. Applied rewrites64.7%

                      \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                    2. Step-by-step derivation
                      1. lift-+.f64N/A

                        \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
                      2. +-commutativeN/A

                        \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
                      3. lift-/.f64N/A

                        \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                      4. lift-*.f64N/A

                        \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
                      5. associate-/l*N/A

                        \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                      6. *-commutativeN/A

                        \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
                      7. lower-fma.f64N/A

                        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
                    3. Applied rewrites65.6%

                      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
                    4. Taylor expanded in z around -inf

                      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}}, y, x\right) \]
                    5. Step-by-step derivation
                      1. lower-+.f64N/A

                        \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + \color{blue}{-1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}}, y, x\right) \]
                      2. lower-*.f64N/A

                        \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \color{blue}{\frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}}, y, x\right) \]
                      3. lower-/.f64N/A

                        \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{\color{blue}{z}}, y, x\right) \]
                      4. lower-+.f64N/A

                        \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}, y, x\right) \]
                      5. lower-*.f64N/A

                        \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}, y, x\right) \]
                      6. lower-/.f64N/A

                        \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} + -1 \cdot \frac{\frac{3652704169880641883561}{100000000000000000000} + -1 \cdot \frac{\frac{45796100221584283915100827016327}{100000000000000000000000000000} + t}{z}}{z}, y, x\right) \]
                      7. lower-+.f6455.4

                        \[\leadsto \mathsf{fma}\left(3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}, y, x\right) \]
                    6. Applied rewrites55.4%

                      \[\leadsto \mathsf{fma}\left(\color{blue}{3.13060547623 + -1 \cdot \frac{36.52704169880642 + -1 \cdot \frac{457.9610022158428 + t}{z}}{z}}, y, x\right) \]

                    if -4.1e9 < z < 185000

                    1. Initial program 59.2%

                      \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                    2. Taylor expanded in z around 0

                      \[\leadsto x + \frac{y \cdot \left(\left(\color{blue}{t} \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                    3. Step-by-step derivation
                      1. Applied rewrites62.8%

                        \[\leadsto x + \frac{y \cdot \left(\left(\color{blue}{t} \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                      2. Applied rewrites63.8%

                        \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), \frac{y}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, x\right)} \]
                      3. Taylor expanded in z around 0

                        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), \frac{y}{\mathsf{fma}\left(\color{blue}{\frac{119400905721}{10000000000}}, z, \frac{607771387771}{1000000000000}\right)}, x\right) \]
                      4. Step-by-step derivation
                        1. Applied rewrites59.2%

                          \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), \frac{y}{\mathsf{fma}\left(\color{blue}{11.9400905721}, z, 0.607771387771\right)}, x\right) \]
                      5. Recombined 2 regimes into one program.
                      6. Add Preprocessing

                      Alternative 6: 92.8% accurate, 1.7× speedup?

                      \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;z \leq -7.5 \cdot 10^{+18}:\\ \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\ \mathbf{elif}\;z \leq 1060000:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), 1.6453555072203998 \cdot y, x\right)\\ \mathbf{else}:\\ \;\;\;\;x + \left(\mathsf{fma}\left(3.13060547623, y, 11.1667541262 \cdot \frac{y}{z}\right) - 47.69379582500642 \cdot \frac{y}{z}\right)\\ \end{array} \end{array} \]
                      (FPCore (x y z t a b)
                       :precision binary64
                       (if (<= z -7.5e+18)
                         (fma 3.13060547623 y x)
                         (if (<= z 1060000.0)
                           (fma (fma (fma t z a) z b) (* 1.6453555072203998 y) x)
                           (+
                            x
                            (-
                             (fma 3.13060547623 y (* 11.1667541262 (/ y z)))
                             (* 47.69379582500642 (/ y z)))))))
                      double code(double x, double y, double z, double t, double a, double b) {
                      	double tmp;
                      	if (z <= -7.5e+18) {
                      		tmp = fma(3.13060547623, y, x);
                      	} else if (z <= 1060000.0) {
                      		tmp = fma(fma(fma(t, z, a), z, b), (1.6453555072203998 * y), x);
                      	} else {
                      		tmp = x + (fma(3.13060547623, y, (11.1667541262 * (y / z))) - (47.69379582500642 * (y / z)));
                      	}
                      	return tmp;
                      }
                      
                      function code(x, y, z, t, a, b)
                      	tmp = 0.0
                      	if (z <= -7.5e+18)
                      		tmp = fma(3.13060547623, y, x);
                      	elseif (z <= 1060000.0)
                      		tmp = fma(fma(fma(t, z, a), z, b), Float64(1.6453555072203998 * y), x);
                      	else
                      		tmp = Float64(x + Float64(fma(3.13060547623, y, Float64(11.1667541262 * Float64(y / z))) - Float64(47.69379582500642 * Float64(y / z))));
                      	end
                      	return tmp
                      end
                      
                      code[x_, y_, z_, t_, a_, b_] := If[LessEqual[z, -7.5e+18], N[(3.13060547623 * y + x), $MachinePrecision], If[LessEqual[z, 1060000.0], N[(N[(N[(t * z + a), $MachinePrecision] * z + b), $MachinePrecision] * N[(1.6453555072203998 * y), $MachinePrecision] + x), $MachinePrecision], N[(x + N[(N[(3.13060547623 * y + N[(11.1667541262 * N[(y / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(47.69379582500642 * N[(y / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
                      
                      \begin{array}{l}
                      
                      \\
                      \begin{array}{l}
                      \mathbf{if}\;z \leq -7.5 \cdot 10^{+18}:\\
                      \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\
                      
                      \mathbf{elif}\;z \leq 1060000:\\
                      \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), 1.6453555072203998 \cdot y, x\right)\\
                      
                      \mathbf{else}:\\
                      \;\;\;\;x + \left(\mathsf{fma}\left(3.13060547623, y, 11.1667541262 \cdot \frac{y}{z}\right) - 47.69379582500642 \cdot \frac{y}{z}\right)\\
                      
                      
                      \end{array}
                      \end{array}
                      
                      Derivation
                      1. Split input into 3 regimes
                      2. if z < -7.5e18

                        1. Initial program 59.2%

                          \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                        2. Taylor expanded in z around 0

                          \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                        3. Step-by-step derivation
                          1. Applied rewrites64.7%

                            \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                          2. Step-by-step derivation
                            1. lift-+.f64N/A

                              \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
                            2. +-commutativeN/A

                              \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
                            3. lift-/.f64N/A

                              \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                            4. lift-*.f64N/A

                              \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
                            5. associate-/l*N/A

                              \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                            6. *-commutativeN/A

                              \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
                            7. lower-fma.f64N/A

                              \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
                          3. Applied rewrites65.6%

                            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
                          4. Taylor expanded in z around inf

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

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

                            if -7.5e18 < z < 1.06e6

                            1. Initial program 59.2%

                              \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                            2. Taylor expanded in z around 0

                              \[\leadsto x + \frac{y \cdot \left(\left(\color{blue}{t} \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                            3. Step-by-step derivation
                              1. Applied rewrites62.8%

                                \[\leadsto x + \frac{y \cdot \left(\left(\color{blue}{t} \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                              2. Applied rewrites63.8%

                                \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), \frac{y}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, x\right)} \]
                              3. Taylor expanded in z around 0

                                \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), \color{blue}{\frac{1000000000000}{607771387771} \cdot y}, x\right) \]
                              4. Step-by-step derivation
                                1. lower-*.f6457.8

                                  \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), 1.6453555072203998 \cdot \color{blue}{y}, x\right) \]
                              5. Applied rewrites57.8%

                                \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), \color{blue}{1.6453555072203998 \cdot y}, x\right) \]

                              if 1.06e6 < z

                              1. Initial program 59.2%

                                \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                              2. Taylor expanded in z around inf

                                \[\leadsto x + \color{blue}{\left(\left(\frac{313060547623}{100000000000} \cdot y + \frac{55833770631}{5000000000} \cdot \frac{y}{z}\right) - \frac{4769379582500641883561}{100000000000000000000} \cdot \frac{y}{z}\right)} \]
                              3. Step-by-step derivation
                                1. lower--.f64N/A

                                  \[\leadsto x + \left(\left(\frac{313060547623}{100000000000} \cdot y + \frac{55833770631}{5000000000} \cdot \frac{y}{z}\right) - \color{blue}{\frac{4769379582500641883561}{100000000000000000000} \cdot \frac{y}{z}}\right) \]
                                2. lower-fma.f64N/A

                                  \[\leadsto x + \left(\mathsf{fma}\left(\frac{313060547623}{100000000000}, y, \frac{55833770631}{5000000000} \cdot \frac{y}{z}\right) - \color{blue}{\frac{4769379582500641883561}{100000000000000000000}} \cdot \frac{y}{z}\right) \]
                                3. lower-*.f64N/A

                                  \[\leadsto x + \left(\mathsf{fma}\left(\frac{313060547623}{100000000000}, y, \frac{55833770631}{5000000000} \cdot \frac{y}{z}\right) - \frac{4769379582500641883561}{100000000000000000000} \cdot \frac{y}{z}\right) \]
                                4. lower-/.f64N/A

                                  \[\leadsto x + \left(\mathsf{fma}\left(\frac{313060547623}{100000000000}, y, \frac{55833770631}{5000000000} \cdot \frac{y}{z}\right) - \frac{4769379582500641883561}{100000000000000000000} \cdot \frac{y}{z}\right) \]
                                5. lower-*.f64N/A

                                  \[\leadsto x + \left(\mathsf{fma}\left(\frac{313060547623}{100000000000}, y, \frac{55833770631}{5000000000} \cdot \frac{y}{z}\right) - \frac{4769379582500641883561}{100000000000000000000} \cdot \color{blue}{\frac{y}{z}}\right) \]
                                6. lower-/.f6456.0

                                  \[\leadsto x + \left(\mathsf{fma}\left(3.13060547623, y, 11.1667541262 \cdot \frac{y}{z}\right) - 47.69379582500642 \cdot \frac{y}{\color{blue}{z}}\right) \]
                              4. Applied rewrites56.0%

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

                            Alternative 7: 92.8% accurate, 2.0× speedup?

                            \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;z \leq -7.5 \cdot 10^{+18}:\\ \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\ \mathbf{elif}\;z \leq 1060000:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), 1.6453555072203998 \cdot y, x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(3.13060547623 - 36.52704169880642 \cdot \frac{1}{z}, y, x\right)\\ \end{array} \end{array} \]
                            (FPCore (x y z t a b)
                             :precision binary64
                             (if (<= z -7.5e+18)
                               (fma 3.13060547623 y x)
                               (if (<= z 1060000.0)
                                 (fma (fma (fma t z a) z b) (* 1.6453555072203998 y) x)
                                 (fma (- 3.13060547623 (* 36.52704169880642 (/ 1.0 z))) y x))))
                            double code(double x, double y, double z, double t, double a, double b) {
                            	double tmp;
                            	if (z <= -7.5e+18) {
                            		tmp = fma(3.13060547623, y, x);
                            	} else if (z <= 1060000.0) {
                            		tmp = fma(fma(fma(t, z, a), z, b), (1.6453555072203998 * y), x);
                            	} else {
                            		tmp = fma((3.13060547623 - (36.52704169880642 * (1.0 / z))), y, x);
                            	}
                            	return tmp;
                            }
                            
                            function code(x, y, z, t, a, b)
                            	tmp = 0.0
                            	if (z <= -7.5e+18)
                            		tmp = fma(3.13060547623, y, x);
                            	elseif (z <= 1060000.0)
                            		tmp = fma(fma(fma(t, z, a), z, b), Float64(1.6453555072203998 * y), x);
                            	else
                            		tmp = fma(Float64(3.13060547623 - Float64(36.52704169880642 * Float64(1.0 / z))), y, x);
                            	end
                            	return tmp
                            end
                            
                            code[x_, y_, z_, t_, a_, b_] := If[LessEqual[z, -7.5e+18], N[(3.13060547623 * y + x), $MachinePrecision], If[LessEqual[z, 1060000.0], N[(N[(N[(t * z + a), $MachinePrecision] * z + b), $MachinePrecision] * N[(1.6453555072203998 * y), $MachinePrecision] + x), $MachinePrecision], N[(N[(3.13060547623 - N[(36.52704169880642 * N[(1.0 / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y + x), $MachinePrecision]]]
                            
                            \begin{array}{l}
                            
                            \\
                            \begin{array}{l}
                            \mathbf{if}\;z \leq -7.5 \cdot 10^{+18}:\\
                            \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\
                            
                            \mathbf{elif}\;z \leq 1060000:\\
                            \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), 1.6453555072203998 \cdot y, x\right)\\
                            
                            \mathbf{else}:\\
                            \;\;\;\;\mathsf{fma}\left(3.13060547623 - 36.52704169880642 \cdot \frac{1}{z}, y, x\right)\\
                            
                            
                            \end{array}
                            \end{array}
                            
                            Derivation
                            1. Split input into 3 regimes
                            2. if z < -7.5e18

                              1. Initial program 59.2%

                                \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                              2. Taylor expanded in z around 0

                                \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                              3. Step-by-step derivation
                                1. Applied rewrites64.7%

                                  \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                2. Step-by-step derivation
                                  1. lift-+.f64N/A

                                    \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
                                  2. +-commutativeN/A

                                    \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
                                  3. lift-/.f64N/A

                                    \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                  4. lift-*.f64N/A

                                    \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
                                  5. associate-/l*N/A

                                    \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                  6. *-commutativeN/A

                                    \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
                                  7. lower-fma.f64N/A

                                    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
                                3. Applied rewrites65.6%

                                  \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
                                4. Taylor expanded in z around inf

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

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

                                  if -7.5e18 < z < 1.06e6

                                  1. Initial program 59.2%

                                    \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                  2. Taylor expanded in z around 0

                                    \[\leadsto x + \frac{y \cdot \left(\left(\color{blue}{t} \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                                  3. Step-by-step derivation
                                    1. Applied rewrites62.8%

                                      \[\leadsto x + \frac{y \cdot \left(\left(\color{blue}{t} \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                    2. Applied rewrites63.8%

                                      \[\leadsto \color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), \frac{y}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, x\right)} \]
                                    3. Taylor expanded in z around 0

                                      \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), \color{blue}{\frac{1000000000000}{607771387771} \cdot y}, x\right) \]
                                    4. Step-by-step derivation
                                      1. lower-*.f6457.8

                                        \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), 1.6453555072203998 \cdot \color{blue}{y}, x\right) \]
                                    5. Applied rewrites57.8%

                                      \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(t, z, a\right), z, b\right), \color{blue}{1.6453555072203998 \cdot y}, x\right) \]

                                    if 1.06e6 < z

                                    1. Initial program 59.2%

                                      \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                    2. Taylor expanded in z around 0

                                      \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                                    3. Step-by-step derivation
                                      1. Applied rewrites64.7%

                                        \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                      2. Step-by-step derivation
                                        1. lift-+.f64N/A

                                          \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
                                        2. +-commutativeN/A

                                          \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
                                        3. lift-/.f64N/A

                                          \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                        4. lift-*.f64N/A

                                          \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
                                        5. associate-/l*N/A

                                          \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                        6. *-commutativeN/A

                                          \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
                                        7. lower-fma.f64N/A

                                          \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
                                      3. Applied rewrites65.6%

                                        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
                                      4. Taylor expanded in z around inf

                                        \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{313060547623}{100000000000} - \frac{3652704169880641883561}{100000000000000000000} \cdot \frac{1}{z}}, y, x\right) \]
                                      5. Step-by-step derivation
                                        1. lower--.f64N/A

                                          \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} - \color{blue}{\frac{3652704169880641883561}{100000000000000000000} \cdot \frac{1}{z}}, y, x\right) \]
                                        2. lower-*.f64N/A

                                          \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} - \frac{3652704169880641883561}{100000000000000000000} \cdot \color{blue}{\frac{1}{z}}, y, x\right) \]
                                        3. lower-/.f6458.5

                                          \[\leadsto \mathsf{fma}\left(3.13060547623 - 36.52704169880642 \cdot \frac{1}{\color{blue}{z}}, y, x\right) \]
                                      6. Applied rewrites58.5%

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

                                    Alternative 8: 89.8% accurate, 2.3× speedup?

                                    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;z \leq -1.6 \cdot 10^{+15}:\\ \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\ \mathbf{elif}\;z \leq 1060000:\\ \;\;\;\;x + \frac{y \cdot \left(a \cdot z + b\right)}{0.607771387771}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(3.13060547623 - 36.52704169880642 \cdot \frac{1}{z}, y, x\right)\\ \end{array} \end{array} \]
                                    (FPCore (x y z t a b)
                                     :precision binary64
                                     (if (<= z -1.6e+15)
                                       (fma 3.13060547623 y x)
                                       (if (<= z 1060000.0)
                                         (+ x (/ (* y (+ (* a z) b)) 0.607771387771))
                                         (fma (- 3.13060547623 (* 36.52704169880642 (/ 1.0 z))) y x))))
                                    double code(double x, double y, double z, double t, double a, double b) {
                                    	double tmp;
                                    	if (z <= -1.6e+15) {
                                    		tmp = fma(3.13060547623, y, x);
                                    	} else if (z <= 1060000.0) {
                                    		tmp = x + ((y * ((a * z) + b)) / 0.607771387771);
                                    	} else {
                                    		tmp = fma((3.13060547623 - (36.52704169880642 * (1.0 / z))), y, x);
                                    	}
                                    	return tmp;
                                    }
                                    
                                    function code(x, y, z, t, a, b)
                                    	tmp = 0.0
                                    	if (z <= -1.6e+15)
                                    		tmp = fma(3.13060547623, y, x);
                                    	elseif (z <= 1060000.0)
                                    		tmp = Float64(x + Float64(Float64(y * Float64(Float64(a * z) + b)) / 0.607771387771));
                                    	else
                                    		tmp = fma(Float64(3.13060547623 - Float64(36.52704169880642 * Float64(1.0 / z))), y, x);
                                    	end
                                    	return tmp
                                    end
                                    
                                    code[x_, y_, z_, t_, a_, b_] := If[LessEqual[z, -1.6e+15], N[(3.13060547623 * y + x), $MachinePrecision], If[LessEqual[z, 1060000.0], N[(x + N[(N[(y * N[(N[(a * z), $MachinePrecision] + b), $MachinePrecision]), $MachinePrecision] / 0.607771387771), $MachinePrecision]), $MachinePrecision], N[(N[(3.13060547623 - N[(36.52704169880642 * N[(1.0 / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y + x), $MachinePrecision]]]
                                    
                                    \begin{array}{l}
                                    
                                    \\
                                    \begin{array}{l}
                                    \mathbf{if}\;z \leq -1.6 \cdot 10^{+15}:\\
                                    \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\
                                    
                                    \mathbf{elif}\;z \leq 1060000:\\
                                    \;\;\;\;x + \frac{y \cdot \left(a \cdot z + b\right)}{0.607771387771}\\
                                    
                                    \mathbf{else}:\\
                                    \;\;\;\;\mathsf{fma}\left(3.13060547623 - 36.52704169880642 \cdot \frac{1}{z}, y, x\right)\\
                                    
                                    
                                    \end{array}
                                    \end{array}
                                    
                                    Derivation
                                    1. Split input into 3 regimes
                                    2. if z < -1.6e15

                                      1. Initial program 59.2%

                                        \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                      2. Taylor expanded in z around 0

                                        \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                                      3. Step-by-step derivation
                                        1. Applied rewrites64.7%

                                          \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                        2. Step-by-step derivation
                                          1. lift-+.f64N/A

                                            \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
                                          2. +-commutativeN/A

                                            \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
                                          3. lift-/.f64N/A

                                            \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                          4. lift-*.f64N/A

                                            \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
                                          5. associate-/l*N/A

                                            \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                          6. *-commutativeN/A

                                            \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
                                          7. lower-fma.f64N/A

                                            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
                                        3. Applied rewrites65.6%

                                          \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
                                        4. Taylor expanded in z around inf

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

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

                                          if -1.6e15 < z < 1.06e6

                                          1. Initial program 59.2%

                                            \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                          2. Taylor expanded in z around 0

                                            \[\leadsto x + \frac{y \cdot \left(\left(\color{blue}{t} \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                                          3. Step-by-step derivation
                                            1. Applied rewrites62.8%

                                              \[\leadsto x + \frac{y \cdot \left(\left(\color{blue}{t} \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                            2. Taylor expanded in z around 0

                                              \[\leadsto x + \frac{y \cdot \left(\left(t \cdot z + a\right) \cdot z + b\right)}{\color{blue}{\frac{607771387771}{1000000000000}}} \]
                                            3. Step-by-step derivation
                                              1. Applied rewrites57.8%

                                                \[\leadsto x + \frac{y \cdot \left(\left(t \cdot z + a\right) \cdot z + b\right)}{\color{blue}{0.607771387771}} \]
                                              2. Taylor expanded in z around 0

                                                \[\leadsto x + \frac{y \cdot \left(\color{blue}{a} \cdot z + b\right)}{\frac{607771387771}{1000000000000}} \]
                                              3. Step-by-step derivation
                                                1. Applied rewrites60.1%

                                                  \[\leadsto x + \frac{y \cdot \left(\color{blue}{a} \cdot z + b\right)}{0.607771387771} \]

                                                if 1.06e6 < z

                                                1. Initial program 59.2%

                                                  \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                2. Taylor expanded in z around 0

                                                  \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                                                3. Step-by-step derivation
                                                  1. Applied rewrites64.7%

                                                    \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                  2. Step-by-step derivation
                                                    1. lift-+.f64N/A

                                                      \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
                                                    2. +-commutativeN/A

                                                      \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
                                                    3. lift-/.f64N/A

                                                      \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                    4. lift-*.f64N/A

                                                      \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
                                                    5. associate-/l*N/A

                                                      \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                    6. *-commutativeN/A

                                                      \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
                                                    7. lower-fma.f64N/A

                                                      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
                                                  3. Applied rewrites65.6%

                                                    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
                                                  4. Taylor expanded in z around inf

                                                    \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{313060547623}{100000000000} - \frac{3652704169880641883561}{100000000000000000000} \cdot \frac{1}{z}}, y, x\right) \]
                                                  5. Step-by-step derivation
                                                    1. lower--.f64N/A

                                                      \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} - \color{blue}{\frac{3652704169880641883561}{100000000000000000000} \cdot \frac{1}{z}}, y, x\right) \]
                                                    2. lower-*.f64N/A

                                                      \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} - \frac{3652704169880641883561}{100000000000000000000} \cdot \color{blue}{\frac{1}{z}}, y, x\right) \]
                                                    3. lower-/.f6458.5

                                                      \[\leadsto \mathsf{fma}\left(3.13060547623 - 36.52704169880642 \cdot \frac{1}{\color{blue}{z}}, y, x\right) \]
                                                  6. Applied rewrites58.5%

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

                                                Alternative 9: 83.1% accurate, 2.3× speedup?

                                                \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;z \leq -5.5 \cdot 10^{+20}:\\ \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\ \mathbf{elif}\;z \leq 1.75:\\ \;\;\;\;x + \frac{y \cdot b}{11.9400905721 \cdot z + 0.607771387771}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(3.13060547623 - 36.52704169880642 \cdot \frac{1}{z}, y, x\right)\\ \end{array} \end{array} \]
                                                (FPCore (x y z t a b)
                                                 :precision binary64
                                                 (if (<= z -5.5e+20)
                                                   (fma 3.13060547623 y x)
                                                   (if (<= z 1.75)
                                                     (+ x (/ (* y b) (+ (* 11.9400905721 z) 0.607771387771)))
                                                     (fma (- 3.13060547623 (* 36.52704169880642 (/ 1.0 z))) y x))))
                                                double code(double x, double y, double z, double t, double a, double b) {
                                                	double tmp;
                                                	if (z <= -5.5e+20) {
                                                		tmp = fma(3.13060547623, y, x);
                                                	} else if (z <= 1.75) {
                                                		tmp = x + ((y * b) / ((11.9400905721 * z) + 0.607771387771));
                                                	} else {
                                                		tmp = fma((3.13060547623 - (36.52704169880642 * (1.0 / z))), y, x);
                                                	}
                                                	return tmp;
                                                }
                                                
                                                function code(x, y, z, t, a, b)
                                                	tmp = 0.0
                                                	if (z <= -5.5e+20)
                                                		tmp = fma(3.13060547623, y, x);
                                                	elseif (z <= 1.75)
                                                		tmp = Float64(x + Float64(Float64(y * b) / Float64(Float64(11.9400905721 * z) + 0.607771387771)));
                                                	else
                                                		tmp = fma(Float64(3.13060547623 - Float64(36.52704169880642 * Float64(1.0 / z))), y, x);
                                                	end
                                                	return tmp
                                                end
                                                
                                                code[x_, y_, z_, t_, a_, b_] := If[LessEqual[z, -5.5e+20], N[(3.13060547623 * y + x), $MachinePrecision], If[LessEqual[z, 1.75], N[(x + N[(N[(y * b), $MachinePrecision] / N[(N[(11.9400905721 * z), $MachinePrecision] + 0.607771387771), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(3.13060547623 - N[(36.52704169880642 * N[(1.0 / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y + x), $MachinePrecision]]]
                                                
                                                \begin{array}{l}
                                                
                                                \\
                                                \begin{array}{l}
                                                \mathbf{if}\;z \leq -5.5 \cdot 10^{+20}:\\
                                                \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\
                                                
                                                \mathbf{elif}\;z \leq 1.75:\\
                                                \;\;\;\;x + \frac{y \cdot b}{11.9400905721 \cdot z + 0.607771387771}\\
                                                
                                                \mathbf{else}:\\
                                                \;\;\;\;\mathsf{fma}\left(3.13060547623 - 36.52704169880642 \cdot \frac{1}{z}, y, x\right)\\
                                                
                                                
                                                \end{array}
                                                \end{array}
                                                
                                                Derivation
                                                1. Split input into 3 regimes
                                                2. if z < -5.5e20

                                                  1. Initial program 59.2%

                                                    \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                  2. Taylor expanded in z around 0

                                                    \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                                                  3. Step-by-step derivation
                                                    1. Applied rewrites64.7%

                                                      \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                    2. Step-by-step derivation
                                                      1. lift-+.f64N/A

                                                        \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
                                                      2. +-commutativeN/A

                                                        \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
                                                      3. lift-/.f64N/A

                                                        \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                      4. lift-*.f64N/A

                                                        \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
                                                      5. associate-/l*N/A

                                                        \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                      6. *-commutativeN/A

                                                        \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
                                                      7. lower-fma.f64N/A

                                                        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
                                                    3. Applied rewrites65.6%

                                                      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
                                                    4. Taylor expanded in z around inf

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

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

                                                      if -5.5e20 < z < 1.75

                                                      1. Initial program 59.2%

                                                        \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                      2. Taylor expanded in z around 0

                                                        \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                                                      3. Step-by-step derivation
                                                        1. Applied rewrites64.7%

                                                          \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                        2. Taylor expanded in z around 0

                                                          \[\leadsto x + \frac{y \cdot b}{\color{blue}{\frac{119400905721}{10000000000}} \cdot z + \frac{607771387771}{1000000000000}} \]
                                                        3. Step-by-step derivation
                                                          1. Applied rewrites63.3%

                                                            \[\leadsto x + \frac{y \cdot b}{\color{blue}{11.9400905721} \cdot z + 0.607771387771} \]

                                                          if 1.75 < z

                                                          1. Initial program 59.2%

                                                            \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                          2. Taylor expanded in z around 0

                                                            \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                                                          3. Step-by-step derivation
                                                            1. Applied rewrites64.7%

                                                              \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                            2. Step-by-step derivation
                                                              1. lift-+.f64N/A

                                                                \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
                                                              2. +-commutativeN/A

                                                                \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
                                                              3. lift-/.f64N/A

                                                                \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                              4. lift-*.f64N/A

                                                                \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
                                                              5. associate-/l*N/A

                                                                \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                              6. *-commutativeN/A

                                                                \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
                                                              7. lower-fma.f64N/A

                                                                \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
                                                            3. Applied rewrites65.6%

                                                              \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
                                                            4. Taylor expanded in z around inf

                                                              \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{313060547623}{100000000000} - \frac{3652704169880641883561}{100000000000000000000} \cdot \frac{1}{z}}, y, x\right) \]
                                                            5. Step-by-step derivation
                                                              1. lower--.f64N/A

                                                                \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} - \color{blue}{\frac{3652704169880641883561}{100000000000000000000} \cdot \frac{1}{z}}, y, x\right) \]
                                                              2. lower-*.f64N/A

                                                                \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} - \frac{3652704169880641883561}{100000000000000000000} \cdot \color{blue}{\frac{1}{z}}, y, x\right) \]
                                                              3. lower-/.f6458.5

                                                                \[\leadsto \mathsf{fma}\left(3.13060547623 - 36.52704169880642 \cdot \frac{1}{\color{blue}{z}}, y, x\right) \]
                                                            6. Applied rewrites58.5%

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

                                                          Alternative 10: 83.1% accurate, 2.3× speedup?

                                                          \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;z \leq -5.5 \cdot 10^{+20}:\\ \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\ \mathbf{elif}\;z \leq 1.75:\\ \;\;\;\;\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(11.9400905721, z, 0.607771387771\right)}, y, x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(3.13060547623 - 36.52704169880642 \cdot \frac{1}{z}, y, x\right)\\ \end{array} \end{array} \]
                                                          (FPCore (x y z t a b)
                                                           :precision binary64
                                                           (if (<= z -5.5e+20)
                                                             (fma 3.13060547623 y x)
                                                             (if (<= z 1.75)
                                                               (fma (/ b (fma 11.9400905721 z 0.607771387771)) y x)
                                                               (fma (- 3.13060547623 (* 36.52704169880642 (/ 1.0 z))) y x))))
                                                          double code(double x, double y, double z, double t, double a, double b) {
                                                          	double tmp;
                                                          	if (z <= -5.5e+20) {
                                                          		tmp = fma(3.13060547623, y, x);
                                                          	} else if (z <= 1.75) {
                                                          		tmp = fma((b / fma(11.9400905721, z, 0.607771387771)), y, x);
                                                          	} else {
                                                          		tmp = fma((3.13060547623 - (36.52704169880642 * (1.0 / z))), y, x);
                                                          	}
                                                          	return tmp;
                                                          }
                                                          
                                                          function code(x, y, z, t, a, b)
                                                          	tmp = 0.0
                                                          	if (z <= -5.5e+20)
                                                          		tmp = fma(3.13060547623, y, x);
                                                          	elseif (z <= 1.75)
                                                          		tmp = fma(Float64(b / fma(11.9400905721, z, 0.607771387771)), y, x);
                                                          	else
                                                          		tmp = fma(Float64(3.13060547623 - Float64(36.52704169880642 * Float64(1.0 / z))), y, x);
                                                          	end
                                                          	return tmp
                                                          end
                                                          
                                                          code[x_, y_, z_, t_, a_, b_] := If[LessEqual[z, -5.5e+20], N[(3.13060547623 * y + x), $MachinePrecision], If[LessEqual[z, 1.75], N[(N[(b / N[(11.9400905721 * z + 0.607771387771), $MachinePrecision]), $MachinePrecision] * y + x), $MachinePrecision], N[(N[(3.13060547623 - N[(36.52704169880642 * N[(1.0 / z), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * y + x), $MachinePrecision]]]
                                                          
                                                          \begin{array}{l}
                                                          
                                                          \\
                                                          \begin{array}{l}
                                                          \mathbf{if}\;z \leq -5.5 \cdot 10^{+20}:\\
                                                          \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\
                                                          
                                                          \mathbf{elif}\;z \leq 1.75:\\
                                                          \;\;\;\;\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(11.9400905721, z, 0.607771387771\right)}, y, x\right)\\
                                                          
                                                          \mathbf{else}:\\
                                                          \;\;\;\;\mathsf{fma}\left(3.13060547623 - 36.52704169880642 \cdot \frac{1}{z}, y, x\right)\\
                                                          
                                                          
                                                          \end{array}
                                                          \end{array}
                                                          
                                                          Derivation
                                                          1. Split input into 3 regimes
                                                          2. if z < -5.5e20

                                                            1. Initial program 59.2%

                                                              \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                            2. Taylor expanded in z around 0

                                                              \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                                                            3. Step-by-step derivation
                                                              1. Applied rewrites64.7%

                                                                \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                              2. Step-by-step derivation
                                                                1. lift-+.f64N/A

                                                                  \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
                                                                2. +-commutativeN/A

                                                                  \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
                                                                3. lift-/.f64N/A

                                                                  \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                                4. lift-*.f64N/A

                                                                  \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
                                                                5. associate-/l*N/A

                                                                  \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                                6. *-commutativeN/A

                                                                  \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
                                                                7. lower-fma.f64N/A

                                                                  \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
                                                              3. Applied rewrites65.6%

                                                                \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
                                                              4. Taylor expanded in z around inf

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

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

                                                                if -5.5e20 < z < 1.75

                                                                1. Initial program 59.2%

                                                                  \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                                2. Taylor expanded in z around 0

                                                                  \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                                                                3. Step-by-step derivation
                                                                  1. Applied rewrites64.7%

                                                                    \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                                  2. Step-by-step derivation
                                                                    1. lift-+.f64N/A

                                                                      \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
                                                                    2. +-commutativeN/A

                                                                      \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
                                                                    3. lift-/.f64N/A

                                                                      \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                                    4. lift-*.f64N/A

                                                                      \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
                                                                    5. associate-/l*N/A

                                                                      \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                                    6. *-commutativeN/A

                                                                      \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
                                                                    7. lower-fma.f64N/A

                                                                      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
                                                                  3. Applied rewrites65.6%

                                                                    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
                                                                  4. Taylor expanded in z around 0

                                                                    \[\leadsto \mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\color{blue}{\frac{119400905721}{10000000000}}, z, \frac{607771387771}{1000000000000}\right)}, y, x\right) \]
                                                                  5. Step-by-step derivation
                                                                    1. Applied rewrites63.6%

                                                                      \[\leadsto \mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\color{blue}{11.9400905721}, z, 0.607771387771\right)}, y, x\right) \]

                                                                    if 1.75 < z

                                                                    1. Initial program 59.2%

                                                                      \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                                    2. Taylor expanded in z around 0

                                                                      \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                                                                    3. Step-by-step derivation
                                                                      1. Applied rewrites64.7%

                                                                        \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                                      2. Step-by-step derivation
                                                                        1. lift-+.f64N/A

                                                                          \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
                                                                        2. +-commutativeN/A

                                                                          \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
                                                                        3. lift-/.f64N/A

                                                                          \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                                        4. lift-*.f64N/A

                                                                          \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
                                                                        5. associate-/l*N/A

                                                                          \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                                        6. *-commutativeN/A

                                                                          \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
                                                                        7. lower-fma.f64N/A

                                                                          \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
                                                                      3. Applied rewrites65.6%

                                                                        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
                                                                      4. Taylor expanded in z around inf

                                                                        \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{313060547623}{100000000000} - \frac{3652704169880641883561}{100000000000000000000} \cdot \frac{1}{z}}, y, x\right) \]
                                                                      5. Step-by-step derivation
                                                                        1. lower--.f64N/A

                                                                          \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} - \color{blue}{\frac{3652704169880641883561}{100000000000000000000} \cdot \frac{1}{z}}, y, x\right) \]
                                                                        2. lower-*.f64N/A

                                                                          \[\leadsto \mathsf{fma}\left(\frac{313060547623}{100000000000} - \frac{3652704169880641883561}{100000000000000000000} \cdot \color{blue}{\frac{1}{z}}, y, x\right) \]
                                                                        3. lower-/.f6458.5

                                                                          \[\leadsto \mathsf{fma}\left(3.13060547623 - 36.52704169880642 \cdot \frac{1}{\color{blue}{z}}, y, x\right) \]
                                                                      6. Applied rewrites58.5%

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

                                                                    Alternative 11: 83.0% accurate, 3.1× speedup?

                                                                    \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;z \leq -8.2 \cdot 10^{+14}:\\ \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\ \mathbf{elif}\;z \leq 980000:\\ \;\;\;\;x + \left(1.6453555072203998 \cdot y\right) \cdot b\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\ \end{array} \end{array} \]
                                                                    (FPCore (x y z t a b)
                                                                     :precision binary64
                                                                     (if (<= z -8.2e+14)
                                                                       (fma 3.13060547623 y x)
                                                                       (if (<= z 980000.0)
                                                                         (+ x (* (* 1.6453555072203998 y) b))
                                                                         (fma 3.13060547623 y x))))
                                                                    double code(double x, double y, double z, double t, double a, double b) {
                                                                    	double tmp;
                                                                    	if (z <= -8.2e+14) {
                                                                    		tmp = fma(3.13060547623, y, x);
                                                                    	} else if (z <= 980000.0) {
                                                                    		tmp = x + ((1.6453555072203998 * y) * b);
                                                                    	} else {
                                                                    		tmp = fma(3.13060547623, y, x);
                                                                    	}
                                                                    	return tmp;
                                                                    }
                                                                    
                                                                    function code(x, y, z, t, a, b)
                                                                    	tmp = 0.0
                                                                    	if (z <= -8.2e+14)
                                                                    		tmp = fma(3.13060547623, y, x);
                                                                    	elseif (z <= 980000.0)
                                                                    		tmp = Float64(x + Float64(Float64(1.6453555072203998 * y) * b));
                                                                    	else
                                                                    		tmp = fma(3.13060547623, y, x);
                                                                    	end
                                                                    	return tmp
                                                                    end
                                                                    
                                                                    code[x_, y_, z_, t_, a_, b_] := If[LessEqual[z, -8.2e+14], N[(3.13060547623 * y + x), $MachinePrecision], If[LessEqual[z, 980000.0], N[(x + N[(N[(1.6453555072203998 * y), $MachinePrecision] * b), $MachinePrecision]), $MachinePrecision], N[(3.13060547623 * y + x), $MachinePrecision]]]
                                                                    
                                                                    \begin{array}{l}
                                                                    
                                                                    \\
                                                                    \begin{array}{l}
                                                                    \mathbf{if}\;z \leq -8.2 \cdot 10^{+14}:\\
                                                                    \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\
                                                                    
                                                                    \mathbf{elif}\;z \leq 980000:\\
                                                                    \;\;\;\;x + \left(1.6453555072203998 \cdot y\right) \cdot b\\
                                                                    
                                                                    \mathbf{else}:\\
                                                                    \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\
                                                                    
                                                                    
                                                                    \end{array}
                                                                    \end{array}
                                                                    
                                                                    Derivation
                                                                    1. Split input into 2 regimes
                                                                    2. if z < -8.2e14 or 9.8e5 < z

                                                                      1. Initial program 59.2%

                                                                        \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                                      2. Taylor expanded in z around 0

                                                                        \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                                                                      3. Step-by-step derivation
                                                                        1. Applied rewrites64.7%

                                                                          \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                                        2. Step-by-step derivation
                                                                          1. lift-+.f64N/A

                                                                            \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
                                                                          2. +-commutativeN/A

                                                                            \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
                                                                          3. lift-/.f64N/A

                                                                            \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                                          4. lift-*.f64N/A

                                                                            \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
                                                                          5. associate-/l*N/A

                                                                            \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                                          6. *-commutativeN/A

                                                                            \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
                                                                          7. lower-fma.f64N/A

                                                                            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
                                                                        3. Applied rewrites65.6%

                                                                          \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
                                                                        4. Taylor expanded in z around inf

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

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

                                                                          if -8.2e14 < z < 9.8e5

                                                                          1. Initial program 59.2%

                                                                            \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                                          2. Taylor expanded in z around 0

                                                                            \[\leadsto x + \color{blue}{\frac{1000000000000}{607771387771} \cdot \left(b \cdot y\right)} \]
                                                                          3. Step-by-step derivation
                                                                            1. lower-*.f64N/A

                                                                              \[\leadsto x + \frac{1000000000000}{607771387771} \cdot \color{blue}{\left(b \cdot y\right)} \]
                                                                            2. lower-*.f6460.7

                                                                              \[\leadsto x + 1.6453555072203998 \cdot \left(b \cdot \color{blue}{y}\right) \]
                                                                          4. Applied rewrites60.7%

                                                                            \[\leadsto x + \color{blue}{1.6453555072203998 \cdot \left(b \cdot y\right)} \]
                                                                          5. Step-by-step derivation
                                                                            1. lift-*.f64N/A

                                                                              \[\leadsto x + \frac{1000000000000}{607771387771} \cdot \color{blue}{\left(b \cdot y\right)} \]
                                                                            2. lift-*.f64N/A

                                                                              \[\leadsto x + \frac{1000000000000}{607771387771} \cdot \left(b \cdot \color{blue}{y}\right) \]
                                                                            3. *-commutativeN/A

                                                                              \[\leadsto x + \frac{1000000000000}{607771387771} \cdot \left(y \cdot \color{blue}{b}\right) \]
                                                                            4. associate-*r*N/A

                                                                              \[\leadsto x + \left(\frac{1000000000000}{607771387771} \cdot y\right) \cdot \color{blue}{b} \]
                                                                            5. lower-*.f64N/A

                                                                              \[\leadsto x + \left(\frac{1000000000000}{607771387771} \cdot y\right) \cdot \color{blue}{b} \]
                                                                            6. lower-*.f6460.8

                                                                              \[\leadsto x + \left(1.6453555072203998 \cdot y\right) \cdot b \]
                                                                          6. Applied rewrites60.8%

                                                                            \[\leadsto x + \left(1.6453555072203998 \cdot y\right) \cdot \color{blue}{b} \]
                                                                        6. Recombined 2 regimes into one program.
                                                                        7. Add Preprocessing

                                                                        Alternative 12: 83.0% accurate, 3.2× speedup?

                                                                        \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;z \leq -8.2 \cdot 10^{+14}:\\ \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\ \mathbf{elif}\;z \leq 980000:\\ \;\;\;\;\mathsf{fma}\left(1.6453555072203998 \cdot b, y, x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\ \end{array} \end{array} \]
                                                                        (FPCore (x y z t a b)
                                                                         :precision binary64
                                                                         (if (<= z -8.2e+14)
                                                                           (fma 3.13060547623 y x)
                                                                           (if (<= z 980000.0)
                                                                             (fma (* 1.6453555072203998 b) y x)
                                                                             (fma 3.13060547623 y x))))
                                                                        double code(double x, double y, double z, double t, double a, double b) {
                                                                        	double tmp;
                                                                        	if (z <= -8.2e+14) {
                                                                        		tmp = fma(3.13060547623, y, x);
                                                                        	} else if (z <= 980000.0) {
                                                                        		tmp = fma((1.6453555072203998 * b), y, x);
                                                                        	} else {
                                                                        		tmp = fma(3.13060547623, y, x);
                                                                        	}
                                                                        	return tmp;
                                                                        }
                                                                        
                                                                        function code(x, y, z, t, a, b)
                                                                        	tmp = 0.0
                                                                        	if (z <= -8.2e+14)
                                                                        		tmp = fma(3.13060547623, y, x);
                                                                        	elseif (z <= 980000.0)
                                                                        		tmp = fma(Float64(1.6453555072203998 * b), y, x);
                                                                        	else
                                                                        		tmp = fma(3.13060547623, y, x);
                                                                        	end
                                                                        	return tmp
                                                                        end
                                                                        
                                                                        code[x_, y_, z_, t_, a_, b_] := If[LessEqual[z, -8.2e+14], N[(3.13060547623 * y + x), $MachinePrecision], If[LessEqual[z, 980000.0], N[(N[(1.6453555072203998 * b), $MachinePrecision] * y + x), $MachinePrecision], N[(3.13060547623 * y + x), $MachinePrecision]]]
                                                                        
                                                                        \begin{array}{l}
                                                                        
                                                                        \\
                                                                        \begin{array}{l}
                                                                        \mathbf{if}\;z \leq -8.2 \cdot 10^{+14}:\\
                                                                        \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\
                                                                        
                                                                        \mathbf{elif}\;z \leq 980000:\\
                                                                        \;\;\;\;\mathsf{fma}\left(1.6453555072203998 \cdot b, y, x\right)\\
                                                                        
                                                                        \mathbf{else}:\\
                                                                        \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\
                                                                        
                                                                        
                                                                        \end{array}
                                                                        \end{array}
                                                                        
                                                                        Derivation
                                                                        1. Split input into 2 regimes
                                                                        2. if z < -8.2e14 or 9.8e5 < z

                                                                          1. Initial program 59.2%

                                                                            \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                                          2. Taylor expanded in z around 0

                                                                            \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                                                                          3. Step-by-step derivation
                                                                            1. Applied rewrites64.7%

                                                                              \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                                            2. Step-by-step derivation
                                                                              1. lift-+.f64N/A

                                                                                \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
                                                                              2. +-commutativeN/A

                                                                                \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
                                                                              3. lift-/.f64N/A

                                                                                \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                                              4. lift-*.f64N/A

                                                                                \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
                                                                              5. associate-/l*N/A

                                                                                \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                                              6. *-commutativeN/A

                                                                                \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
                                                                              7. lower-fma.f64N/A

                                                                                \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
                                                                            3. Applied rewrites65.6%

                                                                              \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
                                                                            4. Taylor expanded in z around inf

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

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

                                                                              if -8.2e14 < z < 9.8e5

                                                                              1. Initial program 59.2%

                                                                                \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                                              2. Taylor expanded in z around 0

                                                                                \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                                                                              3. Step-by-step derivation
                                                                                1. Applied rewrites64.7%

                                                                                  \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                                                2. Step-by-step derivation
                                                                                  1. lift-+.f64N/A

                                                                                    \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
                                                                                  2. +-commutativeN/A

                                                                                    \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
                                                                                  3. lift-/.f64N/A

                                                                                    \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                                                  4. lift-*.f64N/A

                                                                                    \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
                                                                                  5. associate-/l*N/A

                                                                                    \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                                                  6. *-commutativeN/A

                                                                                    \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
                                                                                  7. lower-fma.f64N/A

                                                                                    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
                                                                                3. Applied rewrites65.6%

                                                                                  \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
                                                                                4. Taylor expanded in z around 0

                                                                                  \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{1000000000000}{607771387771} \cdot b}, y, x\right) \]
                                                                                5. Step-by-step derivation
                                                                                  1. lower-*.f6460.7

                                                                                    \[\leadsto \mathsf{fma}\left(1.6453555072203998 \cdot \color{blue}{b}, y, x\right) \]
                                                                                6. Applied rewrites60.7%

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

                                                                              Alternative 13: 81.2% accurate, 0.8× speedup?

                                                                              \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \leq \infty:\\ \;\;\;\;\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(11.9400905721, z, 0.607771387771\right)}, y, x\right)\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\ \end{array} \end{array} \]
                                                                              (FPCore (x y z t a b)
                                                                               :precision binary64
                                                                               (if (<=
                                                                                    (+
                                                                                     x
                                                                                     (/
                                                                                      (*
                                                                                       y
                                                                                       (+
                                                                                        (* (+ (* (+ (* (+ (* z 3.13060547623) 11.1667541262) z) t) z) a) z)
                                                                                        b))
                                                                                      (+
                                                                                       (*
                                                                                        (+ (* (+ (* (+ z 15.234687407) z) 31.4690115749) z) 11.9400905721)
                                                                                        z)
                                                                                       0.607771387771)))
                                                                                    INFINITY)
                                                                                 (fma (/ b (fma 11.9400905721 z 0.607771387771)) y x)
                                                                                 (fma 3.13060547623 y x)))
                                                                              double code(double x, double y, double z, double t, double a, double b) {
                                                                              	double tmp;
                                                                              	if ((x + ((y * ((((((((z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / (((((((z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771))) <= ((double) INFINITY)) {
                                                                              		tmp = fma((b / fma(11.9400905721, z, 0.607771387771)), y, x);
                                                                              	} else {
                                                                              		tmp = fma(3.13060547623, y, x);
                                                                              	}
                                                                              	return tmp;
                                                                              }
                                                                              
                                                                              function code(x, y, z, t, a, b)
                                                                              	tmp = 0.0
                                                                              	if (Float64(x + Float64(Float64(y * Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(z * 3.13060547623) + 11.1667541262) * z) + t) * z) + a) * z) + b)) / Float64(Float64(Float64(Float64(Float64(Float64(Float64(z + 15.234687407) * z) + 31.4690115749) * z) + 11.9400905721) * z) + 0.607771387771))) <= Inf)
                                                                              		tmp = fma(Float64(b / fma(11.9400905721, z, 0.607771387771)), y, x);
                                                                              	else
                                                                              		tmp = fma(3.13060547623, y, x);
                                                                              	end
                                                                              	return tmp
                                                                              end
                                                                              
                                                                              code[x_, y_, z_, t_, a_, b_] := If[LessEqual[N[(x + N[(N[(y * N[(N[(N[(N[(N[(N[(N[(N[(z * 3.13060547623), $MachinePrecision] + 11.1667541262), $MachinePrecision] * z), $MachinePrecision] + t), $MachinePrecision] * z), $MachinePrecision] + a), $MachinePrecision] * z), $MachinePrecision] + b), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(N[(N[(N[(N[(z + 15.234687407), $MachinePrecision] * z), $MachinePrecision] + 31.4690115749), $MachinePrecision] * z), $MachinePrecision] + 11.9400905721), $MachinePrecision] * z), $MachinePrecision] + 0.607771387771), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], Infinity], N[(N[(b / N[(11.9400905721 * z + 0.607771387771), $MachinePrecision]), $MachinePrecision] * y + x), $MachinePrecision], N[(3.13060547623 * y + x), $MachinePrecision]]
                                                                              
                                                                              \begin{array}{l}
                                                                              
                                                                              \\
                                                                              \begin{array}{l}
                                                                              \mathbf{if}\;x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \leq \infty:\\
                                                                              \;\;\;\;\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(11.9400905721, z, 0.607771387771\right)}, y, x\right)\\
                                                                              
                                                                              \mathbf{else}:\\
                                                                              \;\;\;\;\mathsf{fma}\left(3.13060547623, y, x\right)\\
                                                                              
                                                                              
                                                                              \end{array}
                                                                              \end{array}
                                                                              
                                                                              Derivation
                                                                              1. Split input into 2 regimes
                                                                              2. if (+.f64 x (/.f64 (*.f64 y (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 z #s(literal 313060547623/100000000000 binary64)) #s(literal 55833770631/5000000000 binary64)) z) t) z) a) z) b)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 z #s(literal 15234687407/1000000000 binary64)) z) #s(literal 314690115749/10000000000 binary64)) z) #s(literal 119400905721/10000000000 binary64)) z) #s(literal 607771387771/1000000000000 binary64)))) < +inf.0

                                                                                1. Initial program 59.2%

                                                                                  \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                                                2. Taylor expanded in z around 0

                                                                                  \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                                                                                3. Step-by-step derivation
                                                                                  1. Applied rewrites64.7%

                                                                                    \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                                                  2. Step-by-step derivation
                                                                                    1. lift-+.f64N/A

                                                                                      \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
                                                                                    2. +-commutativeN/A

                                                                                      \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
                                                                                    3. lift-/.f64N/A

                                                                                      \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                                                    4. lift-*.f64N/A

                                                                                      \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
                                                                                    5. associate-/l*N/A

                                                                                      \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                                                    6. *-commutativeN/A

                                                                                      \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
                                                                                    7. lower-fma.f64N/A

                                                                                      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
                                                                                  3. Applied rewrites65.6%

                                                                                    \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
                                                                                  4. Taylor expanded in z around 0

                                                                                    \[\leadsto \mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\color{blue}{\frac{119400905721}{10000000000}}, z, \frac{607771387771}{1000000000000}\right)}, y, x\right) \]
                                                                                  5. Step-by-step derivation
                                                                                    1. Applied rewrites63.6%

                                                                                      \[\leadsto \mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\color{blue}{11.9400905721}, z, 0.607771387771\right)}, y, x\right) \]

                                                                                    if +inf.0 < (+.f64 x (/.f64 (*.f64 y (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 z #s(literal 313060547623/100000000000 binary64)) #s(literal 55833770631/5000000000 binary64)) z) t) z) a) z) b)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 z #s(literal 15234687407/1000000000 binary64)) z) #s(literal 314690115749/10000000000 binary64)) z) #s(literal 119400905721/10000000000 binary64)) z) #s(literal 607771387771/1000000000000 binary64))))

                                                                                    1. Initial program 59.2%

                                                                                      \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                                                    2. Taylor expanded in z around 0

                                                                                      \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                                                                                    3. Step-by-step derivation
                                                                                      1. Applied rewrites64.7%

                                                                                        \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                                                      2. Step-by-step derivation
                                                                                        1. lift-+.f64N/A

                                                                                          \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
                                                                                        2. +-commutativeN/A

                                                                                          \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
                                                                                        3. lift-/.f64N/A

                                                                                          \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                                                        4. lift-*.f64N/A

                                                                                          \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
                                                                                        5. associate-/l*N/A

                                                                                          \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                                                        6. *-commutativeN/A

                                                                                          \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
                                                                                        7. lower-fma.f64N/A

                                                                                          \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
                                                                                      3. Applied rewrites65.6%

                                                                                        \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
                                                                                      4. Taylor expanded in z around inf

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

                                                                                          \[\leadsto \mathsf{fma}\left(\color{blue}{3.13060547623}, y, x\right) \]
                                                                                      6. Recombined 2 regimes into one program.
                                                                                      7. Add Preprocessing

                                                                                      Alternative 14: 62.4% accurate, 8.8× speedup?

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

                                                                                        \[x + \frac{y \cdot \left(\left(\left(\left(z \cdot 3.13060547623 + 11.1667541262\right) \cdot z + t\right) \cdot z + a\right) \cdot z + b\right)}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                                                      2. Taylor expanded in z around 0

                                                                                        \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \]
                                                                                      3. Step-by-step derivation
                                                                                        1. Applied rewrites64.7%

                                                                                          \[\leadsto x + \frac{y \cdot \color{blue}{b}}{\left(\left(\left(z + 15.234687407\right) \cdot z + 31.4690115749\right) \cdot z + 11.9400905721\right) \cdot z + 0.607771387771} \]
                                                                                        2. Step-by-step derivation
                                                                                          1. lift-+.f64N/A

                                                                                            \[\leadsto \color{blue}{x + \frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} \]
                                                                                          2. +-commutativeN/A

                                                                                            \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x} \]
                                                                                          3. lift-/.f64N/A

                                                                                            \[\leadsto \color{blue}{\frac{y \cdot b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                                                          4. lift-*.f64N/A

                                                                                            \[\leadsto \frac{\color{blue}{y \cdot b}}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} + x \]
                                                                                          5. associate-/l*N/A

                                                                                            \[\leadsto \color{blue}{y \cdot \frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}} + x \]
                                                                                          6. *-commutativeN/A

                                                                                            \[\leadsto \color{blue}{\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}} \cdot y} + x \]
                                                                                          7. lower-fma.f64N/A

                                                                                            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\left(\left(\left(z + \frac{15234687407}{1000000000}\right) \cdot z + \frac{314690115749}{10000000000}\right) \cdot z + \frac{119400905721}{10000000000}\right) \cdot z + \frac{607771387771}{1000000000000}}, y, x\right)} \]
                                                                                        3. Applied rewrites65.6%

                                                                                          \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{b}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(z - -15.234687407, z, 31.4690115749\right), z, 11.9400905721\right), z, 0.607771387771\right)}, y, x\right)} \]
                                                                                        4. Taylor expanded in z around inf

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

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

                                                                                          Reproduce

                                                                                          ?
                                                                                          herbie shell --seed 2025159 
                                                                                          (FPCore (x y z t a b)
                                                                                            :name "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2, D"
                                                                                            :precision binary64
                                                                                            (+ x (/ (* y (+ (* (+ (* (+ (* (+ (* z 3.13060547623) 11.1667541262) z) t) z) a) z) b)) (+ (* (+ (* (+ (* (+ z 15.234687407) z) 31.4690115749) z) 11.9400905721) z) 0.607771387771))))