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

Percentage Accurate: 58.1% → 98.5%
Time: 13.5s
Alternatives: 16
Speedup: 4.4×

Specification

?
\[\begin{array}{l} \\ \frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \end{array} \]
(FPCore (x y z)
 :precision binary64
 (/
  (*
   (- x 2.0)
   (+
    (*
     (+ (* (+ (* (+ (* x 4.16438922228) 78.6994924154) x) 137.519416416) x) y)
     x)
    z))
  (+
   (* (+ (* (+ (* (+ x 43.3400022514) x) 263.505074721) x) 313.399215894) x)
   47.066876606)))
double code(double x, double y, double z) {
	return ((x - 2.0) * ((((((((x * 4.16438922228) + 78.6994924154) * x) + 137.519416416) * x) + y) * x) + z)) / (((((((x + 43.3400022514) * x) + 263.505074721) * x) + 313.399215894) * x) + 47.066876606);
}
real(8) function code(x, y, z)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    code = ((x - 2.0d0) * ((((((((x * 4.16438922228d0) + 78.6994924154d0) * x) + 137.519416416d0) * x) + y) * x) + z)) / (((((((x + 43.3400022514d0) * x) + 263.505074721d0) * x) + 313.399215894d0) * x) + 47.066876606d0)
end function
public static double code(double x, double y, double z) {
	return ((x - 2.0) * ((((((((x * 4.16438922228) + 78.6994924154) * x) + 137.519416416) * x) + y) * x) + z)) / (((((((x + 43.3400022514) * x) + 263.505074721) * x) + 313.399215894) * x) + 47.066876606);
}
def code(x, y, z):
	return ((x - 2.0) * ((((((((x * 4.16438922228) + 78.6994924154) * x) + 137.519416416) * x) + y) * x) + z)) / (((((((x + 43.3400022514) * x) + 263.505074721) * x) + 313.399215894) * x) + 47.066876606)
function code(x, y, z)
	return Float64(Float64(Float64(x - 2.0) * Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(x * 4.16438922228) + 78.6994924154) * x) + 137.519416416) * x) + y) * x) + z)) / Float64(Float64(Float64(Float64(Float64(Float64(Float64(x + 43.3400022514) * x) + 263.505074721) * x) + 313.399215894) * x) + 47.066876606))
end
function tmp = code(x, y, z)
	tmp = ((x - 2.0) * ((((((((x * 4.16438922228) + 78.6994924154) * x) + 137.519416416) * x) + y) * x) + z)) / (((((((x + 43.3400022514) * x) + 263.505074721) * x) + 313.399215894) * x) + 47.066876606);
end
code[x_, y_, z_] := N[(N[(N[(x - 2.0), $MachinePrecision] * N[(N[(N[(N[(N[(N[(N[(N[(x * 4.16438922228), $MachinePrecision] + 78.6994924154), $MachinePrecision] * x), $MachinePrecision] + 137.519416416), $MachinePrecision] * x), $MachinePrecision] + y), $MachinePrecision] * x), $MachinePrecision] + z), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(N[(N[(N[(N[(x + 43.3400022514), $MachinePrecision] * x), $MachinePrecision] + 263.505074721), $MachinePrecision] * x), $MachinePrecision] + 313.399215894), $MachinePrecision] * x), $MachinePrecision] + 47.066876606), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606}
\end{array}

Sampling outcomes in binary64 precision:

Local Percentage Accuracy vs ?

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

Accuracy vs Speed?

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

\[\begin{array}{l} \\ \frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \end{array} \]
(FPCore (x y z)
 :precision binary64
 (/
  (*
   (- x 2.0)
   (+
    (*
     (+ (* (+ (* (+ (* x 4.16438922228) 78.6994924154) x) 137.519416416) x) y)
     x)
    z))
  (+
   (* (+ (* (+ (* (+ x 43.3400022514) x) 263.505074721) x) 313.399215894) x)
   47.066876606)))
double code(double x, double y, double z) {
	return ((x - 2.0) * ((((((((x * 4.16438922228) + 78.6994924154) * x) + 137.519416416) * x) + y) * x) + z)) / (((((((x + 43.3400022514) * x) + 263.505074721) * x) + 313.399215894) * x) + 47.066876606);
}
real(8) function code(x, y, z)
    real(8), intent (in) :: x
    real(8), intent (in) :: y
    real(8), intent (in) :: z
    code = ((x - 2.0d0) * ((((((((x * 4.16438922228d0) + 78.6994924154d0) * x) + 137.519416416d0) * x) + y) * x) + z)) / (((((((x + 43.3400022514d0) * x) + 263.505074721d0) * x) + 313.399215894d0) * x) + 47.066876606d0)
end function
public static double code(double x, double y, double z) {
	return ((x - 2.0) * ((((((((x * 4.16438922228) + 78.6994924154) * x) + 137.519416416) * x) + y) * x) + z)) / (((((((x + 43.3400022514) * x) + 263.505074721) * x) + 313.399215894) * x) + 47.066876606);
}
def code(x, y, z):
	return ((x - 2.0) * ((((((((x * 4.16438922228) + 78.6994924154) * x) + 137.519416416) * x) + y) * x) + z)) / (((((((x + 43.3400022514) * x) + 263.505074721) * x) + 313.399215894) * x) + 47.066876606)
function code(x, y, z)
	return Float64(Float64(Float64(x - 2.0) * Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(x * 4.16438922228) + 78.6994924154) * x) + 137.519416416) * x) + y) * x) + z)) / Float64(Float64(Float64(Float64(Float64(Float64(Float64(x + 43.3400022514) * x) + 263.505074721) * x) + 313.399215894) * x) + 47.066876606))
end
function tmp = code(x, y, z)
	tmp = ((x - 2.0) * ((((((((x * 4.16438922228) + 78.6994924154) * x) + 137.519416416) * x) + y) * x) + z)) / (((((((x + 43.3400022514) * x) + 263.505074721) * x) + 313.399215894) * x) + 47.066876606);
end
code[x_, y_, z_] := N[(N[(N[(x - 2.0), $MachinePrecision] * N[(N[(N[(N[(N[(N[(N[(N[(x * 4.16438922228), $MachinePrecision] + 78.6994924154), $MachinePrecision] * x), $MachinePrecision] + 137.519416416), $MachinePrecision] * x), $MachinePrecision] + y), $MachinePrecision] * x), $MachinePrecision] + z), $MachinePrecision]), $MachinePrecision] / N[(N[(N[(N[(N[(N[(N[(x + 43.3400022514), $MachinePrecision] * x), $MachinePrecision] + 263.505074721), $MachinePrecision] * x), $MachinePrecision] + 313.399215894), $MachinePrecision] * x), $MachinePrecision] + 47.066876606), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}

\\
\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606}
\end{array}

Alternative 1: 98.5% accurate, 0.4× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\frac{\left(z + \left(y + \left(137.519416416 + \left(78.6994924154 + 4.16438922228 \cdot x\right) \cdot x\right) \cdot x\right) \cdot x\right) \cdot \left(x - 2\right)}{47.066876606 + \left(313.399215894 + \left(263.505074721 + \left(43.3400022514 + x\right) \cdot x\right) \cdot x\right) \cdot x} \leq \infty:\\ \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\frac{\mathsf{fma}\left(x, 4.16438922228, -78.6994924154\right)}{\mathsf{fma}\left(17.342137594641823, x \cdot x, -6193.6101064416025\right)}}, x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\frac{0.24013125253755718}{x}}\\ \end{array} \end{array} \]
(FPCore (x y z)
 :precision binary64
 (if (<=
      (/
       (*
        (+
         z
         (*
          (+
           y
           (* (+ 137.519416416 (* (+ 78.6994924154 (* 4.16438922228 x)) x)) x))
          x))
        (- x 2.0))
       (+
        47.066876606
        (*
         (+ 313.399215894 (* (+ 263.505074721 (* (+ 43.3400022514 x) x)) x))
         x)))
      INFINITY)
   (*
    (/
     (fma
      (fma
       (fma
        (/
         1.0
         (/
          (fma x 4.16438922228 -78.6994924154)
          (fma 17.342137594641823 (* x x) -6193.6101064416025)))
        x
        137.519416416)
       x
       y)
      x
      z)
     (fma
      (fma (fma (+ 43.3400022514 x) x 263.505074721) x 313.399215894)
      x
      47.066876606))
    (- x 2.0))
   (/ 1.0 (/ 0.24013125253755718 x))))
double code(double x, double y, double z) {
	double tmp;
	if ((((z + ((y + ((137.519416416 + ((78.6994924154 + (4.16438922228 * x)) * x)) * x)) * x)) * (x - 2.0)) / (47.066876606 + ((313.399215894 + ((263.505074721 + ((43.3400022514 + x) * x)) * x)) * x))) <= ((double) INFINITY)) {
		tmp = (fma(fma(fma((1.0 / (fma(x, 4.16438922228, -78.6994924154) / fma(17.342137594641823, (x * x), -6193.6101064416025))), x, 137.519416416), x, y), x, z) / fma(fma(fma((43.3400022514 + x), x, 263.505074721), x, 313.399215894), x, 47.066876606)) * (x - 2.0);
	} else {
		tmp = 1.0 / (0.24013125253755718 / x);
	}
	return tmp;
}
function code(x, y, z)
	tmp = 0.0
	if (Float64(Float64(Float64(z + Float64(Float64(y + Float64(Float64(137.519416416 + Float64(Float64(78.6994924154 + Float64(4.16438922228 * x)) * x)) * x)) * x)) * Float64(x - 2.0)) / Float64(47.066876606 + Float64(Float64(313.399215894 + Float64(Float64(263.505074721 + Float64(Float64(43.3400022514 + x) * x)) * x)) * x))) <= Inf)
		tmp = Float64(Float64(fma(fma(fma(Float64(1.0 / Float64(fma(x, 4.16438922228, -78.6994924154) / fma(17.342137594641823, Float64(x * x), -6193.6101064416025))), x, 137.519416416), x, y), x, z) / fma(fma(fma(Float64(43.3400022514 + x), x, 263.505074721), x, 313.399215894), x, 47.066876606)) * Float64(x - 2.0));
	else
		tmp = Float64(1.0 / Float64(0.24013125253755718 / x));
	end
	return tmp
end
code[x_, y_, z_] := If[LessEqual[N[(N[(N[(z + N[(N[(y + N[(N[(137.519416416 + N[(N[(78.6994924154 + N[(4.16438922228 * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * N[(x - 2.0), $MachinePrecision]), $MachinePrecision] / N[(47.066876606 + N[(N[(313.399215894 + N[(N[(263.505074721 + N[(N[(43.3400022514 + x), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], Infinity], N[(N[(N[(N[(N[(N[(1.0 / N[(N[(x * 4.16438922228 + -78.6994924154), $MachinePrecision] / N[(17.342137594641823 * N[(x * x), $MachinePrecision] + -6193.6101064416025), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * x + 137.519416416), $MachinePrecision] * x + y), $MachinePrecision] * x + z), $MachinePrecision] / N[(N[(N[(N[(43.3400022514 + x), $MachinePrecision] * x + 263.505074721), $MachinePrecision] * x + 313.399215894), $MachinePrecision] * x + 47.066876606), $MachinePrecision]), $MachinePrecision] * N[(x - 2.0), $MachinePrecision]), $MachinePrecision], N[(1.0 / N[(0.24013125253755718 / x), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;\frac{\left(z + \left(y + \left(137.519416416 + \left(78.6994924154 + 4.16438922228 \cdot x\right) \cdot x\right) \cdot x\right) \cdot x\right) \cdot \left(x - 2\right)}{47.066876606 + \left(313.399215894 + \left(263.505074721 + \left(43.3400022514 + x\right) \cdot x\right) \cdot x\right) \cdot x} \leq \infty:\\
\;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\frac{\mathsf{fma}\left(x, 4.16438922228, -78.6994924154\right)}{\mathsf{fma}\left(17.342137594641823, x \cdot x, -6193.6101064416025\right)}}, x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{\frac{0.24013125253755718}{x}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (/.f64 (*.f64 (-.f64 x #s(literal 2 binary64)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x #s(literal 104109730557/25000000000 binary64)) #s(literal 393497462077/5000000000 binary64)) x) #s(literal 4297481763/31250000 binary64)) x) y) x) z)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 x #s(literal 216700011257/5000000000 binary64)) x) #s(literal 263505074721/1000000000 binary64)) x) #s(literal 156699607947/500000000 binary64)) x) #s(literal 23533438303/500000000 binary64))) < +inf.0

    1. Initial program 95.6%

      \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
      2. lift-*.f64N/A

        \[\leadsto \frac{\color{blue}{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \]
      3. associate-/l*N/A

        \[\leadsto \color{blue}{\left(x - 2\right) \cdot \frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
      4. *-commutativeN/A

        \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
      5. lower-*.f64N/A

        \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
    4. Applied rewrites99.5%

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)} \]
    5. Step-by-step derivation
      1. lift-fma.f64N/A

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{104109730557}{25000000000} \cdot x + \frac{393497462077}{5000000000}}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      2. *-commutativeN/A

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{x \cdot \frac{104109730557}{25000000000}} + \frac{393497462077}{5000000000}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      3. flip-+N/A

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{\left(x \cdot \frac{104109730557}{25000000000}\right) \cdot \left(x \cdot \frac{104109730557}{25000000000}\right) - \frac{393497462077}{5000000000} \cdot \frac{393497462077}{5000000000}}{x \cdot \frac{104109730557}{25000000000} - \frac{393497462077}{5000000000}}}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      4. clear-numN/A

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{1}{\frac{x \cdot \frac{104109730557}{25000000000} - \frac{393497462077}{5000000000}}{\left(x \cdot \frac{104109730557}{25000000000}\right) \cdot \left(x \cdot \frac{104109730557}{25000000000}\right) - \frac{393497462077}{5000000000} \cdot \frac{393497462077}{5000000000}}}}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      5. lower-/.f64N/A

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{1}{\frac{x \cdot \frac{104109730557}{25000000000} - \frac{393497462077}{5000000000}}{\left(x \cdot \frac{104109730557}{25000000000}\right) \cdot \left(x \cdot \frac{104109730557}{25000000000}\right) - \frac{393497462077}{5000000000} \cdot \frac{393497462077}{5000000000}}}}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      6. lower-/.f64N/A

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\color{blue}{\frac{x \cdot \frac{104109730557}{25000000000} - \frac{393497462077}{5000000000}}{\left(x \cdot \frac{104109730557}{25000000000}\right) \cdot \left(x \cdot \frac{104109730557}{25000000000}\right) - \frac{393497462077}{5000000000} \cdot \frac{393497462077}{5000000000}}}}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      7. sub-negN/A

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\frac{\color{blue}{x \cdot \frac{104109730557}{25000000000} + \left(\mathsf{neg}\left(\frac{393497462077}{5000000000}\right)\right)}}{\left(x \cdot \frac{104109730557}{25000000000}\right) \cdot \left(x \cdot \frac{104109730557}{25000000000}\right) - \frac{393497462077}{5000000000} \cdot \frac{393497462077}{5000000000}}}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      8. lower-fma.f64N/A

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\frac{\color{blue}{\mathsf{fma}\left(x, \frac{104109730557}{25000000000}, \mathsf{neg}\left(\frac{393497462077}{5000000000}\right)\right)}}{\left(x \cdot \frac{104109730557}{25000000000}\right) \cdot \left(x \cdot \frac{104109730557}{25000000000}\right) - \frac{393497462077}{5000000000} \cdot \frac{393497462077}{5000000000}}}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      9. metadata-evalN/A

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\frac{\mathsf{fma}\left(x, \frac{104109730557}{25000000000}, \color{blue}{\frac{-393497462077}{5000000000}}\right)}{\left(x \cdot \frac{104109730557}{25000000000}\right) \cdot \left(x \cdot \frac{104109730557}{25000000000}\right) - \frac{393497462077}{5000000000} \cdot \frac{393497462077}{5000000000}}}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      10. sub-negN/A

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\frac{\mathsf{fma}\left(x, \frac{104109730557}{25000000000}, \frac{-393497462077}{5000000000}\right)}{\color{blue}{\left(x \cdot \frac{104109730557}{25000000000}\right) \cdot \left(x \cdot \frac{104109730557}{25000000000}\right) + \left(\mathsf{neg}\left(\frac{393497462077}{5000000000} \cdot \frac{393497462077}{5000000000}\right)\right)}}}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      11. *-commutativeN/A

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\frac{\mathsf{fma}\left(x, \frac{104109730557}{25000000000}, \frac{-393497462077}{5000000000}\right)}{\color{blue}{\left(\frac{104109730557}{25000000000} \cdot x\right)} \cdot \left(x \cdot \frac{104109730557}{25000000000}\right) + \left(\mathsf{neg}\left(\frac{393497462077}{5000000000} \cdot \frac{393497462077}{5000000000}\right)\right)}}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      12. *-commutativeN/A

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\frac{\mathsf{fma}\left(x, \frac{104109730557}{25000000000}, \frac{-393497462077}{5000000000}\right)}{\left(\frac{104109730557}{25000000000} \cdot x\right) \cdot \color{blue}{\left(\frac{104109730557}{25000000000} \cdot x\right)} + \left(\mathsf{neg}\left(\frac{393497462077}{5000000000} \cdot \frac{393497462077}{5000000000}\right)\right)}}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      13. swap-sqrN/A

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\frac{\mathsf{fma}\left(x, \frac{104109730557}{25000000000}, \frac{-393497462077}{5000000000}\right)}{\color{blue}{\left(\frac{104109730557}{25000000000} \cdot \frac{104109730557}{25000000000}\right) \cdot \left(x \cdot x\right)} + \left(\mathsf{neg}\left(\frac{393497462077}{5000000000} \cdot \frac{393497462077}{5000000000}\right)\right)}}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      14. lower-fma.f64N/A

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\frac{\mathsf{fma}\left(x, \frac{104109730557}{25000000000}, \frac{-393497462077}{5000000000}\right)}{\color{blue}{\mathsf{fma}\left(\frac{104109730557}{25000000000} \cdot \frac{104109730557}{25000000000}, x \cdot x, \mathsf{neg}\left(\frac{393497462077}{5000000000} \cdot \frac{393497462077}{5000000000}\right)\right)}}}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      15. metadata-evalN/A

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\frac{\mathsf{fma}\left(x, \frac{104109730557}{25000000000}, \frac{-393497462077}{5000000000}\right)}{\mathsf{fma}\left(\color{blue}{\frac{10838835996651139530249}{625000000000000000000}}, x \cdot x, \mathsf{neg}\left(\frac{393497462077}{5000000000} \cdot \frac{393497462077}{5000000000}\right)\right)}}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      16. lower-*.f64N/A

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\frac{\mathsf{fma}\left(x, \frac{104109730557}{25000000000}, \frac{-393497462077}{5000000000}\right)}{\mathsf{fma}\left(\frac{10838835996651139530249}{625000000000000000000}, \color{blue}{x \cdot x}, \mathsf{neg}\left(\frac{393497462077}{5000000000} \cdot \frac{393497462077}{5000000000}\right)\right)}}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      17. metadata-evalN/A

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\frac{\mathsf{fma}\left(x, \frac{104109730557}{25000000000}, \frac{-393497462077}{5000000000}\right)}{\mathsf{fma}\left(\frac{10838835996651139530249}{625000000000000000000}, x \cdot x, \mathsf{neg}\left(\color{blue}{\frac{154840252661040053153929}{25000000000000000000}}\right)\right)}}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      18. metadata-eval99.5

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\frac{\mathsf{fma}\left(x, 4.16438922228, -78.6994924154\right)}{\mathsf{fma}\left(17.342137594641823, x \cdot x, \color{blue}{-6193.6101064416025}\right)}}, x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right) \]
    6. Applied rewrites99.5%

      \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{1}{\frac{\mathsf{fma}\left(x, 4.16438922228, -78.6994924154\right)}{\mathsf{fma}\left(17.342137594641823, x \cdot x, -6193.6101064416025\right)}}}, x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right) \]

    if +inf.0 < (/.f64 (*.f64 (-.f64 x #s(literal 2 binary64)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x #s(literal 104109730557/25000000000 binary64)) #s(literal 393497462077/5000000000 binary64)) x) #s(literal 4297481763/31250000 binary64)) x) y) x) z)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 x #s(literal 216700011257/5000000000 binary64)) x) #s(literal 263505074721/1000000000 binary64)) x) #s(literal 156699607947/500000000 binary64)) x) #s(literal 23533438303/500000000 binary64)))

    1. Initial program 0.0%

      \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
    2. Add Preprocessing
    3. Applied rewrites0.0%

      \[\leadsto \color{blue}{\frac{1}{\frac{x - -2}{\mathsf{fma}\left(x, x, -4\right) \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}}}} \]
    4. Taylor expanded in x around inf

      \[\leadsto \frac{1}{\color{blue}{\frac{\frac{25000000000}{104109730557}}{x}}} \]
    5. Step-by-step derivation
      1. lower-/.f6499.6

        \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]
    6. Applied rewrites99.6%

      \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification99.5%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{\left(z + \left(y + \left(137.519416416 + \left(78.6994924154 + 4.16438922228 \cdot x\right) \cdot x\right) \cdot x\right) \cdot x\right) \cdot \left(x - 2\right)}{47.066876606 + \left(313.399215894 + \left(263.505074721 + \left(43.3400022514 + x\right) \cdot x\right) \cdot x\right) \cdot x} \leq \infty:\\ \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\frac{\mathsf{fma}\left(x, 4.16438922228, -78.6994924154\right)}{\mathsf{fma}\left(17.342137594641823, x \cdot x, -6193.6101064416025\right)}}, x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\frac{0.24013125253755718}{x}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 2: 98.5% accurate, 0.5× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\frac{\left(z + \left(y + \left(137.519416416 + \left(78.6994924154 + 4.16438922228 \cdot x\right) \cdot x\right) \cdot x\right) \cdot x\right) \cdot \left(x - 2\right)}{47.066876606 + \left(313.399215894 + \left(263.505074721 + \left(43.3400022514 + x\right) \cdot x\right) \cdot x\right) \cdot x} \leq \infty:\\ \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}{x - 2}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\frac{0.24013125253755718}{x}}\\ \end{array} \end{array} \]
(FPCore (x y z)
 :precision binary64
 (if (<=
      (/
       (*
        (+
         z
         (*
          (+
           y
           (* (+ 137.519416416 (* (+ 78.6994924154 (* 4.16438922228 x)) x)) x))
          x))
        (- x 2.0))
       (+
        47.066876606
        (*
         (+ 313.399215894 (* (+ 263.505074721 (* (+ 43.3400022514 x) x)) x))
         x)))
      INFINITY)
   (/
    (fma
     (fma (fma (fma 4.16438922228 x 78.6994924154) x 137.519416416) x y)
     x
     z)
    (/
     (fma
      (fma (fma (+ 43.3400022514 x) x 263.505074721) x 313.399215894)
      x
      47.066876606)
     (- x 2.0)))
   (/ 1.0 (/ 0.24013125253755718 x))))
double code(double x, double y, double z) {
	double tmp;
	if ((((z + ((y + ((137.519416416 + ((78.6994924154 + (4.16438922228 * x)) * x)) * x)) * x)) * (x - 2.0)) / (47.066876606 + ((313.399215894 + ((263.505074721 + ((43.3400022514 + x) * x)) * x)) * x))) <= ((double) INFINITY)) {
		tmp = fma(fma(fma(fma(4.16438922228, x, 78.6994924154), x, 137.519416416), x, y), x, z) / (fma(fma(fma((43.3400022514 + x), x, 263.505074721), x, 313.399215894), x, 47.066876606) / (x - 2.0));
	} else {
		tmp = 1.0 / (0.24013125253755718 / x);
	}
	return tmp;
}
function code(x, y, z)
	tmp = 0.0
	if (Float64(Float64(Float64(z + Float64(Float64(y + Float64(Float64(137.519416416 + Float64(Float64(78.6994924154 + Float64(4.16438922228 * x)) * x)) * x)) * x)) * Float64(x - 2.0)) / Float64(47.066876606 + Float64(Float64(313.399215894 + Float64(Float64(263.505074721 + Float64(Float64(43.3400022514 + x) * x)) * x)) * x))) <= Inf)
		tmp = Float64(fma(fma(fma(fma(4.16438922228, x, 78.6994924154), x, 137.519416416), x, y), x, z) / Float64(fma(fma(fma(Float64(43.3400022514 + x), x, 263.505074721), x, 313.399215894), x, 47.066876606) / Float64(x - 2.0)));
	else
		tmp = Float64(1.0 / Float64(0.24013125253755718 / x));
	end
	return tmp
end
code[x_, y_, z_] := If[LessEqual[N[(N[(N[(z + N[(N[(y + N[(N[(137.519416416 + N[(N[(78.6994924154 + N[(4.16438922228 * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * N[(x - 2.0), $MachinePrecision]), $MachinePrecision] / N[(47.066876606 + N[(N[(313.399215894 + N[(N[(263.505074721 + N[(N[(43.3400022514 + x), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], Infinity], N[(N[(N[(N[(N[(4.16438922228 * x + 78.6994924154), $MachinePrecision] * x + 137.519416416), $MachinePrecision] * x + y), $MachinePrecision] * x + z), $MachinePrecision] / N[(N[(N[(N[(N[(43.3400022514 + x), $MachinePrecision] * x + 263.505074721), $MachinePrecision] * x + 313.399215894), $MachinePrecision] * x + 47.066876606), $MachinePrecision] / N[(x - 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(1.0 / N[(0.24013125253755718 / x), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;\frac{\left(z + \left(y + \left(137.519416416 + \left(78.6994924154 + 4.16438922228 \cdot x\right) \cdot x\right) \cdot x\right) \cdot x\right) \cdot \left(x - 2\right)}{47.066876606 + \left(313.399215894 + \left(263.505074721 + \left(43.3400022514 + x\right) \cdot x\right) \cdot x\right) \cdot x} \leq \infty:\\
\;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}{x - 2}}\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{\frac{0.24013125253755718}{x}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (/.f64 (*.f64 (-.f64 x #s(literal 2 binary64)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x #s(literal 104109730557/25000000000 binary64)) #s(literal 393497462077/5000000000 binary64)) x) #s(literal 4297481763/31250000 binary64)) x) y) x) z)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 x #s(literal 216700011257/5000000000 binary64)) x) #s(literal 263505074721/1000000000 binary64)) x) #s(literal 156699607947/500000000 binary64)) x) #s(literal 23533438303/500000000 binary64))) < +inf.0

    1. Initial program 95.6%

      \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
    2. Add Preprocessing
    3. Applied rewrites99.4%

      \[\leadsto \color{blue}{\frac{1}{\frac{x - -2}{\mathsf{fma}\left(x, x, -4\right) \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}}}} \]
    4. Applied rewrites99.4%

      \[\leadsto \frac{1}{\color{blue}{\frac{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}{x - 2}}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x, 4.16438922228, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}}} \]
    5. Applied rewrites99.5%

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(x + 43.3400022514, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}{x - 2}}} \]

    if +inf.0 < (/.f64 (*.f64 (-.f64 x #s(literal 2 binary64)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x #s(literal 104109730557/25000000000 binary64)) #s(literal 393497462077/5000000000 binary64)) x) #s(literal 4297481763/31250000 binary64)) x) y) x) z)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 x #s(literal 216700011257/5000000000 binary64)) x) #s(literal 263505074721/1000000000 binary64)) x) #s(literal 156699607947/500000000 binary64)) x) #s(literal 23533438303/500000000 binary64)))

    1. Initial program 0.0%

      \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
    2. Add Preprocessing
    3. Applied rewrites0.0%

      \[\leadsto \color{blue}{\frac{1}{\frac{x - -2}{\mathsf{fma}\left(x, x, -4\right) \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}}}} \]
    4. Taylor expanded in x around inf

      \[\leadsto \frac{1}{\color{blue}{\frac{\frac{25000000000}{104109730557}}{x}}} \]
    5. Step-by-step derivation
      1. lower-/.f6499.6

        \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]
    6. Applied rewrites99.6%

      \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification99.5%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{\left(z + \left(y + \left(137.519416416 + \left(78.6994924154 + 4.16438922228 \cdot x\right) \cdot x\right) \cdot x\right) \cdot x\right) \cdot \left(x - 2\right)}{47.066876606 + \left(313.399215894 + \left(263.505074721 + \left(43.3400022514 + x\right) \cdot x\right) \cdot x\right) \cdot x} \leq \infty:\\ \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}{x - 2}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\frac{0.24013125253755718}{x}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 3: 98.5% accurate, 0.5× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\frac{\left(z + \left(y + \left(137.519416416 + \left(78.6994924154 + 4.16438922228 \cdot x\right) \cdot x\right) \cdot x\right) \cdot x\right) \cdot \left(x - 2\right)}{47.066876606 + \left(313.399215894 + \left(263.505074721 + \left(43.3400022514 + x\right) \cdot x\right) \cdot x\right) \cdot x} \leq \infty:\\ \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\frac{0.24013125253755718}{x}}\\ \end{array} \end{array} \]
(FPCore (x y z)
 :precision binary64
 (if (<=
      (/
       (*
        (+
         z
         (*
          (+
           y
           (* (+ 137.519416416 (* (+ 78.6994924154 (* 4.16438922228 x)) x)) x))
          x))
        (- x 2.0))
       (+
        47.066876606
        (*
         (+ 313.399215894 (* (+ 263.505074721 (* (+ 43.3400022514 x) x)) x))
         x)))
      INFINITY)
   (*
    (/
     (fma
      (fma (fma (fma 4.16438922228 x 78.6994924154) x 137.519416416) x y)
      x
      z)
     (fma
      (fma (fma (+ 43.3400022514 x) x 263.505074721) x 313.399215894)
      x
      47.066876606))
    (- x 2.0))
   (/ 1.0 (/ 0.24013125253755718 x))))
double code(double x, double y, double z) {
	double tmp;
	if ((((z + ((y + ((137.519416416 + ((78.6994924154 + (4.16438922228 * x)) * x)) * x)) * x)) * (x - 2.0)) / (47.066876606 + ((313.399215894 + ((263.505074721 + ((43.3400022514 + x) * x)) * x)) * x))) <= ((double) INFINITY)) {
		tmp = (fma(fma(fma(fma(4.16438922228, x, 78.6994924154), x, 137.519416416), x, y), x, z) / fma(fma(fma((43.3400022514 + x), x, 263.505074721), x, 313.399215894), x, 47.066876606)) * (x - 2.0);
	} else {
		tmp = 1.0 / (0.24013125253755718 / x);
	}
	return tmp;
}
function code(x, y, z)
	tmp = 0.0
	if (Float64(Float64(Float64(z + Float64(Float64(y + Float64(Float64(137.519416416 + Float64(Float64(78.6994924154 + Float64(4.16438922228 * x)) * x)) * x)) * x)) * Float64(x - 2.0)) / Float64(47.066876606 + Float64(Float64(313.399215894 + Float64(Float64(263.505074721 + Float64(Float64(43.3400022514 + x) * x)) * x)) * x))) <= Inf)
		tmp = Float64(Float64(fma(fma(fma(fma(4.16438922228, x, 78.6994924154), x, 137.519416416), x, y), x, z) / fma(fma(fma(Float64(43.3400022514 + x), x, 263.505074721), x, 313.399215894), x, 47.066876606)) * Float64(x - 2.0));
	else
		tmp = Float64(1.0 / Float64(0.24013125253755718 / x));
	end
	return tmp
end
code[x_, y_, z_] := If[LessEqual[N[(N[(N[(z + N[(N[(y + N[(N[(137.519416416 + N[(N[(78.6994924154 + N[(4.16438922228 * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * N[(x - 2.0), $MachinePrecision]), $MachinePrecision] / N[(47.066876606 + N[(N[(313.399215894 + N[(N[(263.505074721 + N[(N[(43.3400022514 + x), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], Infinity], N[(N[(N[(N[(N[(N[(4.16438922228 * x + 78.6994924154), $MachinePrecision] * x + 137.519416416), $MachinePrecision] * x + y), $MachinePrecision] * x + z), $MachinePrecision] / N[(N[(N[(N[(43.3400022514 + x), $MachinePrecision] * x + 263.505074721), $MachinePrecision] * x + 313.399215894), $MachinePrecision] * x + 47.066876606), $MachinePrecision]), $MachinePrecision] * N[(x - 2.0), $MachinePrecision]), $MachinePrecision], N[(1.0 / N[(0.24013125253755718 / x), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;\frac{\left(z + \left(y + \left(137.519416416 + \left(78.6994924154 + 4.16438922228 \cdot x\right) \cdot x\right) \cdot x\right) \cdot x\right) \cdot \left(x - 2\right)}{47.066876606 + \left(313.399215894 + \left(263.505074721 + \left(43.3400022514 + x\right) \cdot x\right) \cdot x\right) \cdot x} \leq \infty:\\
\;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{\frac{0.24013125253755718}{x}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (/.f64 (*.f64 (-.f64 x #s(literal 2 binary64)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x #s(literal 104109730557/25000000000 binary64)) #s(literal 393497462077/5000000000 binary64)) x) #s(literal 4297481763/31250000 binary64)) x) y) x) z)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 x #s(literal 216700011257/5000000000 binary64)) x) #s(literal 263505074721/1000000000 binary64)) x) #s(literal 156699607947/500000000 binary64)) x) #s(literal 23533438303/500000000 binary64))) < +inf.0

    1. Initial program 95.6%

      \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
      2. lift-*.f64N/A

        \[\leadsto \frac{\color{blue}{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \]
      3. associate-/l*N/A

        \[\leadsto \color{blue}{\left(x - 2\right) \cdot \frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
      4. *-commutativeN/A

        \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
      5. lower-*.f64N/A

        \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
    4. Applied rewrites99.5%

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)} \]

    if +inf.0 < (/.f64 (*.f64 (-.f64 x #s(literal 2 binary64)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x #s(literal 104109730557/25000000000 binary64)) #s(literal 393497462077/5000000000 binary64)) x) #s(literal 4297481763/31250000 binary64)) x) y) x) z)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 x #s(literal 216700011257/5000000000 binary64)) x) #s(literal 263505074721/1000000000 binary64)) x) #s(literal 156699607947/500000000 binary64)) x) #s(literal 23533438303/500000000 binary64)))

    1. Initial program 0.0%

      \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
    2. Add Preprocessing
    3. Applied rewrites0.0%

      \[\leadsto \color{blue}{\frac{1}{\frac{x - -2}{\mathsf{fma}\left(x, x, -4\right) \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}}}} \]
    4. Taylor expanded in x around inf

      \[\leadsto \frac{1}{\color{blue}{\frac{\frac{25000000000}{104109730557}}{x}}} \]
    5. Step-by-step derivation
      1. lower-/.f6499.6

        \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]
    6. Applied rewrites99.6%

      \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification99.5%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{\left(z + \left(y + \left(137.519416416 + \left(78.6994924154 + 4.16438922228 \cdot x\right) \cdot x\right) \cdot x\right) \cdot x\right) \cdot \left(x - 2\right)}{47.066876606 + \left(313.399215894 + \left(263.505074721 + \left(43.3400022514 + x\right) \cdot x\right) \cdot x\right) \cdot x} \leq \infty:\\ \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\frac{0.24013125253755718}{x}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 4: 97.9% accurate, 0.5× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;\frac{\left(z + \left(y + \left(137.519416416 + \left(78.6994924154 + 4.16438922228 \cdot x\right) \cdot x\right) \cdot x\right) \cdot x\right) \cdot \left(x - 2\right)}{47.066876606 + \left(313.399215894 + \left(263.505074721 + \left(43.3400022514 + x\right) \cdot x\right) \cdot x\right) \cdot x} \leq \infty:\\ \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228 \cdot x, x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\frac{0.24013125253755718}{x}}\\ \end{array} \end{array} \]
(FPCore (x y z)
 :precision binary64
 (if (<=
      (/
       (*
        (+
         z
         (*
          (+
           y
           (* (+ 137.519416416 (* (+ 78.6994924154 (* 4.16438922228 x)) x)) x))
          x))
        (- x 2.0))
       (+
        47.066876606
        (*
         (+ 313.399215894 (* (+ 263.505074721 (* (+ 43.3400022514 x) x)) x))
         x)))
      INFINITY)
   (*
    (/
     (fma (fma (fma (* 4.16438922228 x) x 137.519416416) x y) x z)
     (fma
      (fma (fma (+ 43.3400022514 x) x 263.505074721) x 313.399215894)
      x
      47.066876606))
    (- x 2.0))
   (/ 1.0 (/ 0.24013125253755718 x))))
double code(double x, double y, double z) {
	double tmp;
	if ((((z + ((y + ((137.519416416 + ((78.6994924154 + (4.16438922228 * x)) * x)) * x)) * x)) * (x - 2.0)) / (47.066876606 + ((313.399215894 + ((263.505074721 + ((43.3400022514 + x) * x)) * x)) * x))) <= ((double) INFINITY)) {
		tmp = (fma(fma(fma((4.16438922228 * x), x, 137.519416416), x, y), x, z) / fma(fma(fma((43.3400022514 + x), x, 263.505074721), x, 313.399215894), x, 47.066876606)) * (x - 2.0);
	} else {
		tmp = 1.0 / (0.24013125253755718 / x);
	}
	return tmp;
}
function code(x, y, z)
	tmp = 0.0
	if (Float64(Float64(Float64(z + Float64(Float64(y + Float64(Float64(137.519416416 + Float64(Float64(78.6994924154 + Float64(4.16438922228 * x)) * x)) * x)) * x)) * Float64(x - 2.0)) / Float64(47.066876606 + Float64(Float64(313.399215894 + Float64(Float64(263.505074721 + Float64(Float64(43.3400022514 + x) * x)) * x)) * x))) <= Inf)
		tmp = Float64(Float64(fma(fma(fma(Float64(4.16438922228 * x), x, 137.519416416), x, y), x, z) / fma(fma(fma(Float64(43.3400022514 + x), x, 263.505074721), x, 313.399215894), x, 47.066876606)) * Float64(x - 2.0));
	else
		tmp = Float64(1.0 / Float64(0.24013125253755718 / x));
	end
	return tmp
end
code[x_, y_, z_] := If[LessEqual[N[(N[(N[(z + N[(N[(y + N[(N[(137.519416416 + N[(N[(78.6994924154 + N[(4.16438922228 * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * N[(x - 2.0), $MachinePrecision]), $MachinePrecision] / N[(47.066876606 + N[(N[(313.399215894 + N[(N[(263.505074721 + N[(N[(43.3400022514 + x), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision] * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], Infinity], N[(N[(N[(N[(N[(N[(4.16438922228 * x), $MachinePrecision] * x + 137.519416416), $MachinePrecision] * x + y), $MachinePrecision] * x + z), $MachinePrecision] / N[(N[(N[(N[(43.3400022514 + x), $MachinePrecision] * x + 263.505074721), $MachinePrecision] * x + 313.399215894), $MachinePrecision] * x + 47.066876606), $MachinePrecision]), $MachinePrecision] * N[(x - 2.0), $MachinePrecision]), $MachinePrecision], N[(1.0 / N[(0.24013125253755718 / x), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;\frac{\left(z + \left(y + \left(137.519416416 + \left(78.6994924154 + 4.16438922228 \cdot x\right) \cdot x\right) \cdot x\right) \cdot x\right) \cdot \left(x - 2\right)}{47.066876606 + \left(313.399215894 + \left(263.505074721 + \left(43.3400022514 + x\right) \cdot x\right) \cdot x\right) \cdot x} \leq \infty:\\
\;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228 \cdot x, x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{\frac{0.24013125253755718}{x}}\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (/.f64 (*.f64 (-.f64 x #s(literal 2 binary64)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x #s(literal 104109730557/25000000000 binary64)) #s(literal 393497462077/5000000000 binary64)) x) #s(literal 4297481763/31250000 binary64)) x) y) x) z)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 x #s(literal 216700011257/5000000000 binary64)) x) #s(literal 263505074721/1000000000 binary64)) x) #s(literal 156699607947/500000000 binary64)) x) #s(literal 23533438303/500000000 binary64))) < +inf.0

    1. Initial program 95.6%

      \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
      2. lift-*.f64N/A

        \[\leadsto \frac{\color{blue}{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \]
      3. associate-/l*N/A

        \[\leadsto \color{blue}{\left(x - 2\right) \cdot \frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
      4. *-commutativeN/A

        \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
      5. lower-*.f64N/A

        \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
    4. Applied rewrites99.5%

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)} \]
    5. Taylor expanded in x around inf

      \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{104109730557}{25000000000} \cdot x}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
    6. Step-by-step derivation
      1. lower-*.f6498.9

        \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{4.16438922228 \cdot x}, x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right) \]
    7. Applied rewrites98.9%

      \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{4.16438922228 \cdot x}, x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right) \]

    if +inf.0 < (/.f64 (*.f64 (-.f64 x #s(literal 2 binary64)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 x #s(literal 104109730557/25000000000 binary64)) #s(literal 393497462077/5000000000 binary64)) x) #s(literal 4297481763/31250000 binary64)) x) y) x) z)) (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 (*.f64 (+.f64 x #s(literal 216700011257/5000000000 binary64)) x) #s(literal 263505074721/1000000000 binary64)) x) #s(literal 156699607947/500000000 binary64)) x) #s(literal 23533438303/500000000 binary64)))

    1. Initial program 0.0%

      \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
    2. Add Preprocessing
    3. Applied rewrites0.0%

      \[\leadsto \color{blue}{\frac{1}{\frac{x - -2}{\mathsf{fma}\left(x, x, -4\right) \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}}}} \]
    4. Taylor expanded in x around inf

      \[\leadsto \frac{1}{\color{blue}{\frac{\frac{25000000000}{104109730557}}{x}}} \]
    5. Step-by-step derivation
      1. lower-/.f6499.6

        \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]
    6. Applied rewrites99.6%

      \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification99.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{\left(z + \left(y + \left(137.519416416 + \left(78.6994924154 + 4.16438922228 \cdot x\right) \cdot x\right) \cdot x\right) \cdot x\right) \cdot \left(x - 2\right)}{47.066876606 + \left(313.399215894 + \left(263.505074721 + \left(43.3400022514 + x\right) \cdot x\right) \cdot x\right) \cdot x} \leq \infty:\\ \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228 \cdot x, x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\frac{0.24013125253755718}{x}}\\ \end{array} \]
  5. Add Preprocessing

Alternative 5: 95.5% accurate, 1.2× speedup?

\[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq -1.22 \cdot 10^{+55}:\\ \;\;\;\;\frac{1}{\frac{0.24013125253755718}{x}}\\ \mathbf{elif}\;x \leq 8 \cdot 10^{+16}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(137.519416416, x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)\\ \mathbf{else}:\\ \;\;\;\;\left(4.16438922228 - \frac{101.7851458539211 - \frac{3451.550173699799 - \frac{124074.40615218398 - y}{x}}{x}}{x}\right) \cdot \left(x - 2\right)\\ \end{array} \end{array} \]
(FPCore (x y z)
 :precision binary64
 (if (<= x -1.22e+55)
   (/ 1.0 (/ 0.24013125253755718 x))
   (if (<= x 8e+16)
     (*
      (/
       (fma (fma 137.519416416 x y) x z)
       (fma
        (fma (fma (+ 43.3400022514 x) x 263.505074721) x 313.399215894)
        x
        47.066876606))
      (- x 2.0))
     (*
      (-
       4.16438922228
       (/
        (-
         101.7851458539211
         (/ (- 3451.550173699799 (/ (- 124074.40615218398 y) x)) x))
        x))
      (- x 2.0)))))
double code(double x, double y, double z) {
	double tmp;
	if (x <= -1.22e+55) {
		tmp = 1.0 / (0.24013125253755718 / x);
	} else if (x <= 8e+16) {
		tmp = (fma(fma(137.519416416, x, y), x, z) / fma(fma(fma((43.3400022514 + x), x, 263.505074721), x, 313.399215894), x, 47.066876606)) * (x - 2.0);
	} else {
		tmp = (4.16438922228 - ((101.7851458539211 - ((3451.550173699799 - ((124074.40615218398 - y) / x)) / x)) / x)) * (x - 2.0);
	}
	return tmp;
}
function code(x, y, z)
	tmp = 0.0
	if (x <= -1.22e+55)
		tmp = Float64(1.0 / Float64(0.24013125253755718 / x));
	elseif (x <= 8e+16)
		tmp = Float64(Float64(fma(fma(137.519416416, x, y), x, z) / fma(fma(fma(Float64(43.3400022514 + x), x, 263.505074721), x, 313.399215894), x, 47.066876606)) * Float64(x - 2.0));
	else
		tmp = Float64(Float64(4.16438922228 - Float64(Float64(101.7851458539211 - Float64(Float64(3451.550173699799 - Float64(Float64(124074.40615218398 - y) / x)) / x)) / x)) * Float64(x - 2.0));
	end
	return tmp
end
code[x_, y_, z_] := If[LessEqual[x, -1.22e+55], N[(1.0 / N[(0.24013125253755718 / x), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 8e+16], N[(N[(N[(N[(137.519416416 * x + y), $MachinePrecision] * x + z), $MachinePrecision] / N[(N[(N[(N[(43.3400022514 + x), $MachinePrecision] * x + 263.505074721), $MachinePrecision] * x + 313.399215894), $MachinePrecision] * x + 47.066876606), $MachinePrecision]), $MachinePrecision] * N[(x - 2.0), $MachinePrecision]), $MachinePrecision], N[(N[(4.16438922228 - N[(N[(101.7851458539211 - N[(N[(3451.550173699799 - N[(N[(124074.40615218398 - y), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision] * N[(x - 2.0), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}

\\
\begin{array}{l}
\mathbf{if}\;x \leq -1.22 \cdot 10^{+55}:\\
\;\;\;\;\frac{1}{\frac{0.24013125253755718}{x}}\\

\mathbf{elif}\;x \leq 8 \cdot 10^{+16}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(137.519416416, x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)\\

\mathbf{else}:\\
\;\;\;\;\left(4.16438922228 - \frac{101.7851458539211 - \frac{3451.550173699799 - \frac{124074.40615218398 - y}{x}}{x}}{x}\right) \cdot \left(x - 2\right)\\


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

    1. Initial program 1.8%

      \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
    2. Add Preprocessing
    3. Applied rewrites6.5%

      \[\leadsto \color{blue}{\frac{1}{\frac{x - -2}{\mathsf{fma}\left(x, x, -4\right) \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}}}} \]
    4. Taylor expanded in x around inf

      \[\leadsto \frac{1}{\color{blue}{\frac{\frac{25000000000}{104109730557}}{x}}} \]
    5. Step-by-step derivation
      1. lower-/.f6499.5

        \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]
    6. Applied rewrites99.5%

      \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]

    if -1.22e55 < x < 8e16

    1. Initial program 97.4%

      \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
      2. lift-*.f64N/A

        \[\leadsto \frac{\color{blue}{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \]
      3. associate-/l*N/A

        \[\leadsto \color{blue}{\left(x - 2\right) \cdot \frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
      4. *-commutativeN/A

        \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
      5. lower-*.f64N/A

        \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
    4. Applied rewrites99.6%

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)} \]
    5. Taylor expanded in x around 0

      \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{y + \frac{4297481763}{31250000} \cdot x}, x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
    6. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{\frac{4297481763}{31250000} \cdot x + y}, x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      2. lower-fma.f6496.8

        \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(137.519416416, x, y\right)}, x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right) \]
    7. Applied rewrites96.8%

      \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(137.519416416, x, y\right)}, x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right) \]

    if 8e16 < x

    1. Initial program 17.2%

      \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
      2. lift-*.f64N/A

        \[\leadsto \frac{\color{blue}{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \]
      3. associate-/l*N/A

        \[\leadsto \color{blue}{\left(x - 2\right) \cdot \frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
      4. *-commutativeN/A

        \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
      5. lower-*.f64N/A

        \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
    4. Applied rewrites17.3%

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)} \]
    5. Taylor expanded in x around -inf

      \[\leadsto \color{blue}{\left(\frac{104109730557}{25000000000} + -1 \cdot \frac{\frac{12723143231740136880149}{125000000000000000000} + -1 \cdot \frac{\frac{2157218858562374472887084159837293}{625000000000000000000000000000} + -1 \cdot \frac{\frac{387732519225574910908939577061312055388407301}{3125000000000000000000000000000000000000} + -1 \cdot y}{x}}{x}}{x}\right)} \cdot \left(x - 2\right) \]
    6. Step-by-step derivation
      1. mul-1-negN/A

        \[\leadsto \left(\frac{104109730557}{25000000000} + \color{blue}{\left(\mathsf{neg}\left(\frac{\frac{12723143231740136880149}{125000000000000000000} + -1 \cdot \frac{\frac{2157218858562374472887084159837293}{625000000000000000000000000000} + -1 \cdot \frac{\frac{387732519225574910908939577061312055388407301}{3125000000000000000000000000000000000000} + -1 \cdot y}{x}}{x}}{x}\right)\right)}\right) \cdot \left(x - 2\right) \]
      2. unsub-negN/A

        \[\leadsto \color{blue}{\left(\frac{104109730557}{25000000000} - \frac{\frac{12723143231740136880149}{125000000000000000000} + -1 \cdot \frac{\frac{2157218858562374472887084159837293}{625000000000000000000000000000} + -1 \cdot \frac{\frac{387732519225574910908939577061312055388407301}{3125000000000000000000000000000000000000} + -1 \cdot y}{x}}{x}}{x}\right)} \cdot \left(x - 2\right) \]
      3. lower--.f64N/A

        \[\leadsto \color{blue}{\left(\frac{104109730557}{25000000000} - \frac{\frac{12723143231740136880149}{125000000000000000000} + -1 \cdot \frac{\frac{2157218858562374472887084159837293}{625000000000000000000000000000} + -1 \cdot \frac{\frac{387732519225574910908939577061312055388407301}{3125000000000000000000000000000000000000} + -1 \cdot y}{x}}{x}}{x}\right)} \cdot \left(x - 2\right) \]
      4. lower-/.f64N/A

        \[\leadsto \left(\frac{104109730557}{25000000000} - \color{blue}{\frac{\frac{12723143231740136880149}{125000000000000000000} + -1 \cdot \frac{\frac{2157218858562374472887084159837293}{625000000000000000000000000000} + -1 \cdot \frac{\frac{387732519225574910908939577061312055388407301}{3125000000000000000000000000000000000000} + -1 \cdot y}{x}}{x}}{x}}\right) \cdot \left(x - 2\right) \]
    7. Applied rewrites96.7%

      \[\leadsto \color{blue}{\left(4.16438922228 - \frac{101.7851458539211 - \frac{3451.550173699799 - \frac{124074.40615218398 - y}{x}}{x}}{x}\right)} \cdot \left(x - 2\right) \]
  3. Recombined 3 regimes into one program.
  4. Add Preprocessing

Alternative 6: 94.6% accurate, 1.2× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{1}{\frac{0.24013125253755718}{x}}\\ \mathbf{if}\;x \leq -1.22 \cdot 10^{+55}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x \leq 1.1 \cdot 10^{+33}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(137.519416416, x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
(FPCore (x y z)
 :precision binary64
 (let* ((t_0 (/ 1.0 (/ 0.24013125253755718 x))))
   (if (<= x -1.22e+55)
     t_0
     (if (<= x 1.1e+33)
       (*
        (/
         (fma (fma 137.519416416 x y) x z)
         (fma
          (fma (fma (+ 43.3400022514 x) x 263.505074721) x 313.399215894)
          x
          47.066876606))
        (- x 2.0))
       t_0))))
double code(double x, double y, double z) {
	double t_0 = 1.0 / (0.24013125253755718 / x);
	double tmp;
	if (x <= -1.22e+55) {
		tmp = t_0;
	} else if (x <= 1.1e+33) {
		tmp = (fma(fma(137.519416416, x, y), x, z) / fma(fma(fma((43.3400022514 + x), x, 263.505074721), x, 313.399215894), x, 47.066876606)) * (x - 2.0);
	} else {
		tmp = t_0;
	}
	return tmp;
}
function code(x, y, z)
	t_0 = Float64(1.0 / Float64(0.24013125253755718 / x))
	tmp = 0.0
	if (x <= -1.22e+55)
		tmp = t_0;
	elseif (x <= 1.1e+33)
		tmp = Float64(Float64(fma(fma(137.519416416, x, y), x, z) / fma(fma(fma(Float64(43.3400022514 + x), x, 263.505074721), x, 313.399215894), x, 47.066876606)) * Float64(x - 2.0));
	else
		tmp = t_0;
	end
	return tmp
end
code[x_, y_, z_] := Block[{t$95$0 = N[(1.0 / N[(0.24013125253755718 / x), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -1.22e+55], t$95$0, If[LessEqual[x, 1.1e+33], N[(N[(N[(N[(137.519416416 * x + y), $MachinePrecision] * x + z), $MachinePrecision] / N[(N[(N[(N[(43.3400022514 + x), $MachinePrecision] * x + 263.505074721), $MachinePrecision] * x + 313.399215894), $MachinePrecision] * x + 47.066876606), $MachinePrecision]), $MachinePrecision] * N[(x - 2.0), $MachinePrecision]), $MachinePrecision], t$95$0]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{1}{\frac{0.24013125253755718}{x}}\\
\mathbf{if}\;x \leq -1.22 \cdot 10^{+55}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x \leq 1.1 \cdot 10^{+33}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(137.519416416, x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if x < -1.22e55 or 1.09999999999999997e33 < x

    1. Initial program 5.1%

      \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
    2. Add Preprocessing
    3. Applied rewrites7.5%

      \[\leadsto \color{blue}{\frac{1}{\frac{x - -2}{\mathsf{fma}\left(x, x, -4\right) \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}}}} \]
    4. Taylor expanded in x around inf

      \[\leadsto \frac{1}{\color{blue}{\frac{\frac{25000000000}{104109730557}}{x}}} \]
    5. Step-by-step derivation
      1. lower-/.f6498.8

        \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]
    6. Applied rewrites98.8%

      \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]

    if -1.22e55 < x < 1.09999999999999997e33

    1. Initial program 97.4%

      \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
      2. lift-*.f64N/A

        \[\leadsto \frac{\color{blue}{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \]
      3. associate-/l*N/A

        \[\leadsto \color{blue}{\left(x - 2\right) \cdot \frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
      4. *-commutativeN/A

        \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
      5. lower-*.f64N/A

        \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
    4. Applied rewrites99.6%

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)} \]
    5. Taylor expanded in x around 0

      \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{y + \frac{4297481763}{31250000} \cdot x}, x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
    6. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{\frac{4297481763}{31250000} \cdot x + y}, x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      2. lower-fma.f6495.1

        \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(137.519416416, x, y\right)}, x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right) \]
    7. Applied rewrites95.1%

      \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(137.519416416, x, y\right)}, x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right) \]
  3. Recombined 2 regimes into one program.
  4. Add Preprocessing

Alternative 7: 92.2% accurate, 1.3× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{1}{\frac{0.24013125253755718}{x}}\\ \mathbf{if}\;x \leq -1.22 \cdot 10^{+55}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x \leq 9.5 \cdot 10^{+31}:\\ \;\;\;\;\frac{\mathsf{fma}\left(y, x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
(FPCore (x y z)
 :precision binary64
 (let* ((t_0 (/ 1.0 (/ 0.24013125253755718 x))))
   (if (<= x -1.22e+55)
     t_0
     (if (<= x 9.5e+31)
       (*
        (/
         (fma y x z)
         (fma
          (fma (fma (+ 43.3400022514 x) x 263.505074721) x 313.399215894)
          x
          47.066876606))
        (- x 2.0))
       t_0))))
double code(double x, double y, double z) {
	double t_0 = 1.0 / (0.24013125253755718 / x);
	double tmp;
	if (x <= -1.22e+55) {
		tmp = t_0;
	} else if (x <= 9.5e+31) {
		tmp = (fma(y, x, z) / fma(fma(fma((43.3400022514 + x), x, 263.505074721), x, 313.399215894), x, 47.066876606)) * (x - 2.0);
	} else {
		tmp = t_0;
	}
	return tmp;
}
function code(x, y, z)
	t_0 = Float64(1.0 / Float64(0.24013125253755718 / x))
	tmp = 0.0
	if (x <= -1.22e+55)
		tmp = t_0;
	elseif (x <= 9.5e+31)
		tmp = Float64(Float64(fma(y, x, z) / fma(fma(fma(Float64(43.3400022514 + x), x, 263.505074721), x, 313.399215894), x, 47.066876606)) * Float64(x - 2.0));
	else
		tmp = t_0;
	end
	return tmp
end
code[x_, y_, z_] := Block[{t$95$0 = N[(1.0 / N[(0.24013125253755718 / x), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -1.22e+55], t$95$0, If[LessEqual[x, 9.5e+31], N[(N[(N[(y * x + z), $MachinePrecision] / N[(N[(N[(N[(43.3400022514 + x), $MachinePrecision] * x + 263.505074721), $MachinePrecision] * x + 313.399215894), $MachinePrecision] * x + 47.066876606), $MachinePrecision]), $MachinePrecision] * N[(x - 2.0), $MachinePrecision]), $MachinePrecision], t$95$0]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{1}{\frac{0.24013125253755718}{x}}\\
\mathbf{if}\;x \leq -1.22 \cdot 10^{+55}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x \leq 9.5 \cdot 10^{+31}:\\
\;\;\;\;\frac{\mathsf{fma}\left(y, x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if x < -1.22e55 or 9.5000000000000008e31 < x

    1. Initial program 5.1%

      \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
    2. Add Preprocessing
    3. Applied rewrites7.5%

      \[\leadsto \color{blue}{\frac{1}{\frac{x - -2}{\mathsf{fma}\left(x, x, -4\right) \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}}}} \]
    4. Taylor expanded in x around inf

      \[\leadsto \frac{1}{\color{blue}{\frac{\frac{25000000000}{104109730557}}{x}}} \]
    5. Step-by-step derivation
      1. lower-/.f6498.8

        \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]
    6. Applied rewrites98.8%

      \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]

    if -1.22e55 < x < 9.5000000000000008e31

    1. Initial program 97.4%

      \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
    2. Add Preprocessing
    3. Step-by-step derivation
      1. lift-/.f64N/A

        \[\leadsto \color{blue}{\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
      2. lift-*.f64N/A

        \[\leadsto \frac{\color{blue}{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \]
      3. associate-/l*N/A

        \[\leadsto \color{blue}{\left(x - 2\right) \cdot \frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
      4. *-commutativeN/A

        \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
      5. lower-*.f64N/A

        \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
    4. Applied rewrites99.6%

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)} \]
    5. Taylor expanded in x around 0

      \[\leadsto \frac{\color{blue}{z + x \cdot y}}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
    6. Step-by-step derivation
      1. +-commutativeN/A

        \[\leadsto \frac{\color{blue}{x \cdot y + z}}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      2. *-commutativeN/A

        \[\leadsto \frac{\color{blue}{y \cdot x} + z}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{216700011257}{5000000000} + x, x, \frac{263505074721}{1000000000}\right), x, \frac{156699607947}{500000000}\right), x, \frac{23533438303}{500000000}\right)} \cdot \left(x - 2\right) \]
      3. lower-fma.f6491.8

        \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(y, x, z\right)}}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right) \]
    7. Applied rewrites91.8%

      \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(y, x, z\right)}}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right) \]
  3. Recombined 2 regimes into one program.
  4. Add Preprocessing

Alternative 8: 91.9% accurate, 1.4× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{1}{\frac{0.24013125253755718}{x}}\\ \mathbf{if}\;x \leq -1.35:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x \leq 2:\\ \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(78.6994924154, x, 137.519416416\right), x, y\right), x, z\right) \cdot 2}{-47.066876606 - 313.399215894 \cdot x}\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
(FPCore (x y z)
 :precision binary64
 (let* ((t_0 (/ 1.0 (/ 0.24013125253755718 x))))
   (if (<= x -1.35)
     t_0
     (if (<= x 2.0)
       (/
        (* (fma (fma (fma 78.6994924154 x 137.519416416) x y) x z) 2.0)
        (- -47.066876606 (* 313.399215894 x)))
       t_0))))
double code(double x, double y, double z) {
	double t_0 = 1.0 / (0.24013125253755718 / x);
	double tmp;
	if (x <= -1.35) {
		tmp = t_0;
	} else if (x <= 2.0) {
		tmp = (fma(fma(fma(78.6994924154, x, 137.519416416), x, y), x, z) * 2.0) / (-47.066876606 - (313.399215894 * x));
	} else {
		tmp = t_0;
	}
	return tmp;
}
function code(x, y, z)
	t_0 = Float64(1.0 / Float64(0.24013125253755718 / x))
	tmp = 0.0
	if (x <= -1.35)
		tmp = t_0;
	elseif (x <= 2.0)
		tmp = Float64(Float64(fma(fma(fma(78.6994924154, x, 137.519416416), x, y), x, z) * 2.0) / Float64(-47.066876606 - Float64(313.399215894 * x)));
	else
		tmp = t_0;
	end
	return tmp
end
code[x_, y_, z_] := Block[{t$95$0 = N[(1.0 / N[(0.24013125253755718 / x), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -1.35], t$95$0, If[LessEqual[x, 2.0], N[(N[(N[(N[(N[(78.6994924154 * x + 137.519416416), $MachinePrecision] * x + y), $MachinePrecision] * x + z), $MachinePrecision] * 2.0), $MachinePrecision] / N[(-47.066876606 - N[(313.399215894 * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \frac{1}{\frac{0.24013125253755718}{x}}\\
\mathbf{if}\;x \leq -1.35:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x \leq 2:\\
\;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(78.6994924154, x, 137.519416416\right), x, y\right), x, z\right) \cdot 2}{-47.066876606 - 313.399215894 \cdot x}\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if x < -1.3500000000000001 or 2 < x

    1. Initial program 16.6%

      \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
    2. Add Preprocessing
    3. Applied rewrites20.8%

      \[\leadsto \color{blue}{\frac{1}{\frac{x - -2}{\mathsf{fma}\left(x, x, -4\right) \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}}}} \]
    4. Taylor expanded in x around inf

      \[\leadsto \frac{1}{\color{blue}{\frac{\frac{25000000000}{104109730557}}{x}}} \]
    5. Step-by-step derivation
      1. lower-/.f6488.1

        \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]
    6. Applied rewrites88.1%

      \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]

    if -1.3500000000000001 < x < 2

    1. Initial program 99.6%

      \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
    2. Add Preprocessing
    3. Applied rewrites99.6%

      \[\leadsto \color{blue}{\frac{\left(-\left(x - 2\right)\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{-47.066876606 - \mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right) \cdot x}} \]
    4. Taylor expanded in x around 0

      \[\leadsto \frac{\left(-\left(x - 2\right)\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{104109730557}{25000000000}, x, \frac{393497462077}{5000000000}\right), x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\frac{-23533438303}{500000000} - \color{blue}{\frac{156699607947}{500000000} \cdot x}} \]
    5. Step-by-step derivation
      1. lower-*.f6498.6

        \[\leadsto \frac{\left(-\left(x - 2\right)\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{-47.066876606 - \color{blue}{313.399215894 \cdot x}} \]
    6. Applied rewrites98.6%

      \[\leadsto \frac{\left(-\left(x - 2\right)\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{-47.066876606 - \color{blue}{313.399215894 \cdot x}} \]
    7. Taylor expanded in x around 0

      \[\leadsto \frac{\left(-\left(x - 2\right)\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{\frac{393497462077}{5000000000}}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\frac{-23533438303}{500000000} - \frac{156699607947}{500000000} \cdot x} \]
    8. Step-by-step derivation
      1. Applied rewrites98.6%

        \[\leadsto \frac{\left(-\left(x - 2\right)\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\color{blue}{78.6994924154}, x, 137.519416416\right), x, y\right), x, z\right)}{-47.066876606 - 313.399215894 \cdot x} \]
      2. Taylor expanded in x around 0

        \[\leadsto \frac{\color{blue}{2} \cdot \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{393497462077}{5000000000}, x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\frac{-23533438303}{500000000} - \frac{156699607947}{500000000} \cdot x} \]
      3. Step-by-step derivation
        1. Applied rewrites97.5%

          \[\leadsto \frac{\color{blue}{2} \cdot \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(78.6994924154, x, 137.519416416\right), x, y\right), x, z\right)}{-47.066876606 - 313.399215894 \cdot x} \]
      4. Recombined 2 regimes into one program.
      5. Final simplification92.4%

        \[\leadsto \begin{array}{l} \mathbf{if}\;x \leq -1.35:\\ \;\;\;\;\frac{1}{\frac{0.24013125253755718}{x}}\\ \mathbf{elif}\;x \leq 2:\\ \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(78.6994924154, x, 137.519416416\right), x, y\right), x, z\right) \cdot 2}{-47.066876606 - 313.399215894 \cdot x}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\frac{0.24013125253755718}{x}}\\ \end{array} \]
      6. Add Preprocessing

      Alternative 9: 89.7% accurate, 1.5× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{1}{\frac{0.24013125253755718}{x}}\\ \mathbf{if}\;x \leq -1.35:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x \leq 20000:\\ \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(2, y, -z\right), x, z \cdot 2\right)}{-47.066876606 - 313.399215894 \cdot x}\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
      (FPCore (x y z)
       :precision binary64
       (let* ((t_0 (/ 1.0 (/ 0.24013125253755718 x))))
         (if (<= x -1.35)
           t_0
           (if (<= x 20000.0)
             (/
              (fma (fma 2.0 y (- z)) x (* z 2.0))
              (- -47.066876606 (* 313.399215894 x)))
             t_0))))
      double code(double x, double y, double z) {
      	double t_0 = 1.0 / (0.24013125253755718 / x);
      	double tmp;
      	if (x <= -1.35) {
      		tmp = t_0;
      	} else if (x <= 20000.0) {
      		tmp = fma(fma(2.0, y, -z), x, (z * 2.0)) / (-47.066876606 - (313.399215894 * x));
      	} else {
      		tmp = t_0;
      	}
      	return tmp;
      }
      
      function code(x, y, z)
      	t_0 = Float64(1.0 / Float64(0.24013125253755718 / x))
      	tmp = 0.0
      	if (x <= -1.35)
      		tmp = t_0;
      	elseif (x <= 20000.0)
      		tmp = Float64(fma(fma(2.0, y, Float64(-z)), x, Float64(z * 2.0)) / Float64(-47.066876606 - Float64(313.399215894 * x)));
      	else
      		tmp = t_0;
      	end
      	return tmp
      end
      
      code[x_, y_, z_] := Block[{t$95$0 = N[(1.0 / N[(0.24013125253755718 / x), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -1.35], t$95$0, If[LessEqual[x, 20000.0], N[(N[(N[(2.0 * y + (-z)), $MachinePrecision] * x + N[(z * 2.0), $MachinePrecision]), $MachinePrecision] / N[(-47.066876606 - N[(313.399215894 * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      t_0 := \frac{1}{\frac{0.24013125253755718}{x}}\\
      \mathbf{if}\;x \leq -1.35:\\
      \;\;\;\;t\_0\\
      
      \mathbf{elif}\;x \leq 20000:\\
      \;\;\;\;\frac{\mathsf{fma}\left(\mathsf{fma}\left(2, y, -z\right), x, z \cdot 2\right)}{-47.066876606 - 313.399215894 \cdot x}\\
      
      \mathbf{else}:\\
      \;\;\;\;t\_0\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if x < -1.3500000000000001 or 2e4 < x

        1. Initial program 16.0%

          \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
        2. Add Preprocessing
        3. Applied rewrites20.2%

          \[\leadsto \color{blue}{\frac{1}{\frac{x - -2}{\mathsf{fma}\left(x, x, -4\right) \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}}}} \]
        4. Taylor expanded in x around inf

          \[\leadsto \frac{1}{\color{blue}{\frac{\frac{25000000000}{104109730557}}{x}}} \]
        5. Step-by-step derivation
          1. lower-/.f6488.7

            \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]
        6. Applied rewrites88.7%

          \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]

        if -1.3500000000000001 < x < 2e4

        1. Initial program 99.6%

          \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
        2. Add Preprocessing
        3. Applied rewrites99.6%

          \[\leadsto \color{blue}{\frac{\left(-\left(x - 2\right)\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{-47.066876606 - \mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right) \cdot x}} \]
        4. Taylor expanded in x around 0

          \[\leadsto \frac{\left(-\left(x - 2\right)\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{104109730557}{25000000000}, x, \frac{393497462077}{5000000000}\right), x, \frac{4297481763}{31250000}\right), x, y\right), x, z\right)}{\frac{-23533438303}{500000000} - \color{blue}{\frac{156699607947}{500000000} \cdot x}} \]
        5. Step-by-step derivation
          1. lower-*.f6497.9

            \[\leadsto \frac{\left(-\left(x - 2\right)\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{-47.066876606 - \color{blue}{313.399215894 \cdot x}} \]
        6. Applied rewrites97.9%

          \[\leadsto \frac{\left(-\left(x - 2\right)\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{-47.066876606 - \color{blue}{313.399215894 \cdot x}} \]
        7. Taylor expanded in x around 0

          \[\leadsto \frac{\color{blue}{2 \cdot z + x \cdot \left(-1 \cdot z + 2 \cdot y\right)}}{\frac{-23533438303}{500000000} - \frac{156699607947}{500000000} \cdot x} \]
        8. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \frac{\color{blue}{x \cdot \left(-1 \cdot z + 2 \cdot y\right) + 2 \cdot z}}{\frac{-23533438303}{500000000} - \frac{156699607947}{500000000} \cdot x} \]
          2. *-commutativeN/A

            \[\leadsto \frac{\color{blue}{\left(-1 \cdot z + 2 \cdot y\right) \cdot x} + 2 \cdot z}{\frac{-23533438303}{500000000} - \frac{156699607947}{500000000} \cdot x} \]
          3. lower-fma.f64N/A

            \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(-1 \cdot z + 2 \cdot y, x, 2 \cdot z\right)}}{\frac{-23533438303}{500000000} - \frac{156699607947}{500000000} \cdot x} \]
          4. +-commutativeN/A

            \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{2 \cdot y + -1 \cdot z}, x, 2 \cdot z\right)}{\frac{-23533438303}{500000000} - \frac{156699607947}{500000000} \cdot x} \]
          5. lower-fma.f64N/A

            \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(2, y, -1 \cdot z\right)}, x, 2 \cdot z\right)}{\frac{-23533438303}{500000000} - \frac{156699607947}{500000000} \cdot x} \]
          6. mul-1-negN/A

            \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(2, y, \color{blue}{\mathsf{neg}\left(z\right)}\right), x, 2 \cdot z\right)}{\frac{-23533438303}{500000000} - \frac{156699607947}{500000000} \cdot x} \]
          7. lower-neg.f64N/A

            \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(2, y, \color{blue}{-z}\right), x, 2 \cdot z\right)}{\frac{-23533438303}{500000000} - \frac{156699607947}{500000000} \cdot x} \]
          8. *-commutativeN/A

            \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(2, y, -z\right), x, \color{blue}{z \cdot 2}\right)}{\frac{-23533438303}{500000000} - \frac{156699607947}{500000000} \cdot x} \]
          9. lower-*.f6493.4

            \[\leadsto \frac{\mathsf{fma}\left(\mathsf{fma}\left(2, y, -z\right), x, \color{blue}{z \cdot 2}\right)}{-47.066876606 - 313.399215894 \cdot x} \]
        9. Applied rewrites93.4%

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

      Alternative 10: 89.4% accurate, 1.8× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{1}{\frac{0.24013125253755718}{x}}\\ \mathbf{if}\;x \leq -0.175:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x \leq 2.05 \cdot 10^{+18}:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(0.0212463641547976, y, -0.14147091005106402 \cdot z\right), x, 0.0212463641547976 \cdot z\right) \cdot \left(x - 2\right)\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
      (FPCore (x y z)
       :precision binary64
       (let* ((t_0 (/ 1.0 (/ 0.24013125253755718 x))))
         (if (<= x -0.175)
           t_0
           (if (<= x 2.05e+18)
             (*
              (fma
               (fma 0.0212463641547976 y (* -0.14147091005106402 z))
               x
               (* 0.0212463641547976 z))
              (- x 2.0))
             t_0))))
      double code(double x, double y, double z) {
      	double t_0 = 1.0 / (0.24013125253755718 / x);
      	double tmp;
      	if (x <= -0.175) {
      		tmp = t_0;
      	} else if (x <= 2.05e+18) {
      		tmp = fma(fma(0.0212463641547976, y, (-0.14147091005106402 * z)), x, (0.0212463641547976 * z)) * (x - 2.0);
      	} else {
      		tmp = t_0;
      	}
      	return tmp;
      }
      
      function code(x, y, z)
      	t_0 = Float64(1.0 / Float64(0.24013125253755718 / x))
      	tmp = 0.0
      	if (x <= -0.175)
      		tmp = t_0;
      	elseif (x <= 2.05e+18)
      		tmp = Float64(fma(fma(0.0212463641547976, y, Float64(-0.14147091005106402 * z)), x, Float64(0.0212463641547976 * z)) * Float64(x - 2.0));
      	else
      		tmp = t_0;
      	end
      	return tmp
      end
      
      code[x_, y_, z_] := Block[{t$95$0 = N[(1.0 / N[(0.24013125253755718 / x), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -0.175], t$95$0, If[LessEqual[x, 2.05e+18], N[(N[(N[(0.0212463641547976 * y + N[(-0.14147091005106402 * z), $MachinePrecision]), $MachinePrecision] * x + N[(0.0212463641547976 * z), $MachinePrecision]), $MachinePrecision] * N[(x - 2.0), $MachinePrecision]), $MachinePrecision], t$95$0]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      t_0 := \frac{1}{\frac{0.24013125253755718}{x}}\\
      \mathbf{if}\;x \leq -0.175:\\
      \;\;\;\;t\_0\\
      
      \mathbf{elif}\;x \leq 2.05 \cdot 10^{+18}:\\
      \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(0.0212463641547976, y, -0.14147091005106402 \cdot z\right), x, 0.0212463641547976 \cdot z\right) \cdot \left(x - 2\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;t\_0\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if x < -0.17499999999999999 or 2.05e18 < x

        1. Initial program 14.2%

          \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
        2. Add Preprocessing
        3. Applied rewrites18.4%

          \[\leadsto \color{blue}{\frac{1}{\frac{x - -2}{\mathsf{fma}\left(x, x, -4\right) \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}}}} \]
        4. Taylor expanded in x around inf

          \[\leadsto \frac{1}{\color{blue}{\frac{\frac{25000000000}{104109730557}}{x}}} \]
        5. Step-by-step derivation
          1. lower-/.f6490.7

            \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]
        6. Applied rewrites90.7%

          \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]

        if -0.17499999999999999 < x < 2.05e18

        1. Initial program 99.6%

          \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
        2. Add Preprocessing
        3. Step-by-step derivation
          1. lift-/.f64N/A

            \[\leadsto \color{blue}{\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
          2. lift-*.f64N/A

            \[\leadsto \frac{\color{blue}{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \]
          3. associate-/l*N/A

            \[\leadsto \color{blue}{\left(x - 2\right) \cdot \frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
          4. *-commutativeN/A

            \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
          5. lower-*.f64N/A

            \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
        4. Applied rewrites99.7%

          \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)} \]
        5. Taylor expanded in x around 0

          \[\leadsto \color{blue}{\left(\frac{500000000}{23533438303} \cdot z + x \cdot \left(\frac{500000000}{23533438303} \cdot y - \frac{78349803973500000000}{553822718361107519809} \cdot z\right)\right)} \cdot \left(x - 2\right) \]
        6. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{\left(x \cdot \left(\frac{500000000}{23533438303} \cdot y - \frac{78349803973500000000}{553822718361107519809} \cdot z\right) + \frac{500000000}{23533438303} \cdot z\right)} \cdot \left(x - 2\right) \]
          2. *-commutativeN/A

            \[\leadsto \left(\color{blue}{\left(\frac{500000000}{23533438303} \cdot y - \frac{78349803973500000000}{553822718361107519809} \cdot z\right) \cdot x} + \frac{500000000}{23533438303} \cdot z\right) \cdot \left(x - 2\right) \]
          3. lower-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{500000000}{23533438303} \cdot y - \frac{78349803973500000000}{553822718361107519809} \cdot z, x, \frac{500000000}{23533438303} \cdot z\right)} \cdot \left(x - 2\right) \]
          4. sub-negN/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{500000000}{23533438303} \cdot y + \left(\mathsf{neg}\left(\frac{78349803973500000000}{553822718361107519809} \cdot z\right)\right)}, x, \frac{500000000}{23533438303} \cdot z\right) \cdot \left(x - 2\right) \]
          5. lower-fma.f64N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{500000000}{23533438303}, y, \mathsf{neg}\left(\frac{78349803973500000000}{553822718361107519809} \cdot z\right)\right)}, x, \frac{500000000}{23533438303} \cdot z\right) \cdot \left(x - 2\right) \]
          6. distribute-lft-neg-inN/A

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\frac{500000000}{23533438303}, y, \color{blue}{\left(\mathsf{neg}\left(\frac{78349803973500000000}{553822718361107519809}\right)\right) \cdot z}\right), x, \frac{500000000}{23533438303} \cdot z\right) \cdot \left(x - 2\right) \]
          7. lower-*.f64N/A

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\frac{500000000}{23533438303}, y, \color{blue}{\left(\mathsf{neg}\left(\frac{78349803973500000000}{553822718361107519809}\right)\right) \cdot z}\right), x, \frac{500000000}{23533438303} \cdot z\right) \cdot \left(x - 2\right) \]
          8. metadata-evalN/A

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\frac{500000000}{23533438303}, y, \color{blue}{\frac{-78349803973500000000}{553822718361107519809}} \cdot z\right), x, \frac{500000000}{23533438303} \cdot z\right) \cdot \left(x - 2\right) \]
          9. lower-*.f6490.7

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(0.0212463641547976, y, -0.14147091005106402 \cdot z\right), x, \color{blue}{0.0212463641547976 \cdot z}\right) \cdot \left(x - 2\right) \]
        7. Applied rewrites90.7%

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

      Alternative 11: 89.6% accurate, 2.3× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} t_0 := \frac{1}{\frac{0.24013125253755718}{x}}\\ \mathbf{if}\;x \leq -0.175:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x \leq 20000:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.0424927283095952, y, 0.3041881842569256 \cdot z\right), x, -0.0424927283095952 \cdot z\right)\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
      (FPCore (x y z)
       :precision binary64
       (let* ((t_0 (/ 1.0 (/ 0.24013125253755718 x))))
         (if (<= x -0.175)
           t_0
           (if (<= x 20000.0)
             (fma
              (fma -0.0424927283095952 y (* 0.3041881842569256 z))
              x
              (* -0.0424927283095952 z))
             t_0))))
      double code(double x, double y, double z) {
      	double t_0 = 1.0 / (0.24013125253755718 / x);
      	double tmp;
      	if (x <= -0.175) {
      		tmp = t_0;
      	} else if (x <= 20000.0) {
      		tmp = fma(fma(-0.0424927283095952, y, (0.3041881842569256 * z)), x, (-0.0424927283095952 * z));
      	} else {
      		tmp = t_0;
      	}
      	return tmp;
      }
      
      function code(x, y, z)
      	t_0 = Float64(1.0 / Float64(0.24013125253755718 / x))
      	tmp = 0.0
      	if (x <= -0.175)
      		tmp = t_0;
      	elseif (x <= 20000.0)
      		tmp = fma(fma(-0.0424927283095952, y, Float64(0.3041881842569256 * z)), x, Float64(-0.0424927283095952 * z));
      	else
      		tmp = t_0;
      	end
      	return tmp
      end
      
      code[x_, y_, z_] := Block[{t$95$0 = N[(1.0 / N[(0.24013125253755718 / x), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x, -0.175], t$95$0, If[LessEqual[x, 20000.0], N[(N[(-0.0424927283095952 * y + N[(0.3041881842569256 * z), $MachinePrecision]), $MachinePrecision] * x + N[(-0.0424927283095952 * z), $MachinePrecision]), $MachinePrecision], t$95$0]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      t_0 := \frac{1}{\frac{0.24013125253755718}{x}}\\
      \mathbf{if}\;x \leq -0.175:\\
      \;\;\;\;t\_0\\
      
      \mathbf{elif}\;x \leq 20000:\\
      \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.0424927283095952, y, 0.3041881842569256 \cdot z\right), x, -0.0424927283095952 \cdot z\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;t\_0\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 2 regimes
      2. if x < -0.17499999999999999 or 2e4 < x

        1. Initial program 16.0%

          \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
        2. Add Preprocessing
        3. Applied rewrites20.2%

          \[\leadsto \color{blue}{\frac{1}{\frac{x - -2}{\mathsf{fma}\left(x, x, -4\right) \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}}}} \]
        4. Taylor expanded in x around inf

          \[\leadsto \frac{1}{\color{blue}{\frac{\frac{25000000000}{104109730557}}{x}}} \]
        5. Step-by-step derivation
          1. lower-/.f6488.7

            \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]
        6. Applied rewrites88.7%

          \[\leadsto \frac{1}{\color{blue}{\frac{0.24013125253755718}{x}}} \]

        if -0.17499999999999999 < x < 2e4

        1. Initial program 99.6%

          \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
        2. Add Preprocessing
        3. Applied rewrites99.6%

          \[\leadsto \color{blue}{\frac{1}{\frac{x - -2}{\mathsf{fma}\left(x, x, -4\right) \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}}}} \]
        4. Taylor expanded in x around 0

          \[\leadsto \color{blue}{\frac{-1000000000}{23533438303} \cdot z + x \cdot \left(\frac{-1000000000}{23533438303} \cdot y - \frac{-168466327098500000000}{553822718361107519809} \cdot z\right)} \]
        5. Step-by-step derivation
          1. +-commutativeN/A

            \[\leadsto \color{blue}{x \cdot \left(\frac{-1000000000}{23533438303} \cdot y - \frac{-168466327098500000000}{553822718361107519809} \cdot z\right) + \frac{-1000000000}{23533438303} \cdot z} \]
          2. *-commutativeN/A

            \[\leadsto \color{blue}{\left(\frac{-1000000000}{23533438303} \cdot y - \frac{-168466327098500000000}{553822718361107519809} \cdot z\right) \cdot x} + \frac{-1000000000}{23533438303} \cdot z \]
          3. lower-fma.f64N/A

            \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{-1000000000}{23533438303} \cdot y - \frac{-168466327098500000000}{553822718361107519809} \cdot z, x, \frac{-1000000000}{23533438303} \cdot z\right)} \]
          4. sub-negN/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{-1000000000}{23533438303} \cdot y + \left(\mathsf{neg}\left(\frac{-168466327098500000000}{553822718361107519809} \cdot z\right)\right)}, x, \frac{-1000000000}{23533438303} \cdot z\right) \]
          5. lower-fma.f64N/A

            \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{-1000000000}{23533438303}, y, \mathsf{neg}\left(\frac{-168466327098500000000}{553822718361107519809} \cdot z\right)\right)}, x, \frac{-1000000000}{23533438303} \cdot z\right) \]
          6. distribute-lft-neg-inN/A

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\frac{-1000000000}{23533438303}, y, \color{blue}{\left(\mathsf{neg}\left(\frac{-168466327098500000000}{553822718361107519809}\right)\right) \cdot z}\right), x, \frac{-1000000000}{23533438303} \cdot z\right) \]
          7. lower-*.f64N/A

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\frac{-1000000000}{23533438303}, y, \color{blue}{\left(\mathsf{neg}\left(\frac{-168466327098500000000}{553822718361107519809}\right)\right) \cdot z}\right), x, \frac{-1000000000}{23533438303} \cdot z\right) \]
          8. metadata-evalN/A

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\frac{-1000000000}{23533438303}, y, \color{blue}{\frac{168466327098500000000}{553822718361107519809}} \cdot z\right), x, \frac{-1000000000}{23533438303} \cdot z\right) \]
          9. lower-*.f6492.9

            \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(-0.0424927283095952, y, 0.3041881842569256 \cdot z\right), x, \color{blue}{-0.0424927283095952 \cdot z}\right) \]
        6. Applied rewrites92.9%

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

      Alternative 12: 89.4% accurate, 2.3× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq -0.175:\\ \;\;\;\;4.16438922228 \cdot \left(x - 2\right)\\ \mathbf{elif}\;x \leq 20000:\\ \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.0424927283095952, y, 0.3041881842569256 \cdot z\right), x, -0.0424927283095952 \cdot z\right)\\ \mathbf{else}:\\ \;\;\;\;4.16438922228 \cdot x\\ \end{array} \end{array} \]
      (FPCore (x y z)
       :precision binary64
       (if (<= x -0.175)
         (* 4.16438922228 (- x 2.0))
         (if (<= x 20000.0)
           (fma
            (fma -0.0424927283095952 y (* 0.3041881842569256 z))
            x
            (* -0.0424927283095952 z))
           (* 4.16438922228 x))))
      double code(double x, double y, double z) {
      	double tmp;
      	if (x <= -0.175) {
      		tmp = 4.16438922228 * (x - 2.0);
      	} else if (x <= 20000.0) {
      		tmp = fma(fma(-0.0424927283095952, y, (0.3041881842569256 * z)), x, (-0.0424927283095952 * z));
      	} else {
      		tmp = 4.16438922228 * x;
      	}
      	return tmp;
      }
      
      function code(x, y, z)
      	tmp = 0.0
      	if (x <= -0.175)
      		tmp = Float64(4.16438922228 * Float64(x - 2.0));
      	elseif (x <= 20000.0)
      		tmp = fma(fma(-0.0424927283095952, y, Float64(0.3041881842569256 * z)), x, Float64(-0.0424927283095952 * z));
      	else
      		tmp = Float64(4.16438922228 * x);
      	end
      	return tmp
      end
      
      code[x_, y_, z_] := If[LessEqual[x, -0.175], N[(4.16438922228 * N[(x - 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 20000.0], N[(N[(-0.0424927283095952 * y + N[(0.3041881842569256 * z), $MachinePrecision]), $MachinePrecision] * x + N[(-0.0424927283095952 * z), $MachinePrecision]), $MachinePrecision], N[(4.16438922228 * x), $MachinePrecision]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      \mathbf{if}\;x \leq -0.175:\\
      \;\;\;\;4.16438922228 \cdot \left(x - 2\right)\\
      
      \mathbf{elif}\;x \leq 20000:\\
      \;\;\;\;\mathsf{fma}\left(\mathsf{fma}\left(-0.0424927283095952, y, 0.3041881842569256 \cdot z\right), x, -0.0424927283095952 \cdot z\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;4.16438922228 \cdot x\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 3 regimes
      2. if x < -0.17499999999999999

        1. Initial program 12.6%

          \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
        2. Add Preprocessing
        3. Step-by-step derivation
          1. lift-/.f64N/A

            \[\leadsto \color{blue}{\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
          2. lift-*.f64N/A

            \[\leadsto \frac{\color{blue}{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \]
          3. associate-/l*N/A

            \[\leadsto \color{blue}{\left(x - 2\right) \cdot \frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
          4. *-commutativeN/A

            \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
          5. lower-*.f64N/A

            \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
        4. Applied rewrites20.5%

          \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)} \]
        5. Taylor expanded in x around inf

          \[\leadsto \color{blue}{\frac{104109730557}{25000000000}} \cdot \left(x - 2\right) \]
        6. Step-by-step derivation
          1. Applied rewrites88.8%

            \[\leadsto \color{blue}{4.16438922228} \cdot \left(x - 2\right) \]

          if -0.17499999999999999 < x < 2e4

          1. Initial program 99.6%

            \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
          2. Add Preprocessing
          3. Applied rewrites99.6%

            \[\leadsto \color{blue}{\frac{1}{\frac{x - -2}{\mathsf{fma}\left(x, x, -4\right) \cdot \frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)}}}} \]
          4. Taylor expanded in x around 0

            \[\leadsto \color{blue}{\frac{-1000000000}{23533438303} \cdot z + x \cdot \left(\frac{-1000000000}{23533438303} \cdot y - \frac{-168466327098500000000}{553822718361107519809} \cdot z\right)} \]
          5. Step-by-step derivation
            1. +-commutativeN/A

              \[\leadsto \color{blue}{x \cdot \left(\frac{-1000000000}{23533438303} \cdot y - \frac{-168466327098500000000}{553822718361107519809} \cdot z\right) + \frac{-1000000000}{23533438303} \cdot z} \]
            2. *-commutativeN/A

              \[\leadsto \color{blue}{\left(\frac{-1000000000}{23533438303} \cdot y - \frac{-168466327098500000000}{553822718361107519809} \cdot z\right) \cdot x} + \frac{-1000000000}{23533438303} \cdot z \]
            3. lower-fma.f64N/A

              \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{-1000000000}{23533438303} \cdot y - \frac{-168466327098500000000}{553822718361107519809} \cdot z, x, \frac{-1000000000}{23533438303} \cdot z\right)} \]
            4. sub-negN/A

              \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{-1000000000}{23533438303} \cdot y + \left(\mathsf{neg}\left(\frac{-168466327098500000000}{553822718361107519809} \cdot z\right)\right)}, x, \frac{-1000000000}{23533438303} \cdot z\right) \]
            5. lower-fma.f64N/A

              \[\leadsto \mathsf{fma}\left(\color{blue}{\mathsf{fma}\left(\frac{-1000000000}{23533438303}, y, \mathsf{neg}\left(\frac{-168466327098500000000}{553822718361107519809} \cdot z\right)\right)}, x, \frac{-1000000000}{23533438303} \cdot z\right) \]
            6. distribute-lft-neg-inN/A

              \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\frac{-1000000000}{23533438303}, y, \color{blue}{\left(\mathsf{neg}\left(\frac{-168466327098500000000}{553822718361107519809}\right)\right) \cdot z}\right), x, \frac{-1000000000}{23533438303} \cdot z\right) \]
            7. lower-*.f64N/A

              \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\frac{-1000000000}{23533438303}, y, \color{blue}{\left(\mathsf{neg}\left(\frac{-168466327098500000000}{553822718361107519809}\right)\right) \cdot z}\right), x, \frac{-1000000000}{23533438303} \cdot z\right) \]
            8. metadata-evalN/A

              \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(\frac{-1000000000}{23533438303}, y, \color{blue}{\frac{168466327098500000000}{553822718361107519809}} \cdot z\right), x, \frac{-1000000000}{23533438303} \cdot z\right) \]
            9. lower-*.f6492.9

              \[\leadsto \mathsf{fma}\left(\mathsf{fma}\left(-0.0424927283095952, y, 0.3041881842569256 \cdot z\right), x, \color{blue}{-0.0424927283095952 \cdot z}\right) \]
          6. Applied rewrites92.9%

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

          if 2e4 < x

          1. Initial program 19.8%

            \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
          2. Add Preprocessing
          3. Taylor expanded in x around inf

            \[\leadsto \color{blue}{\frac{104109730557}{25000000000} \cdot x} \]
          4. Step-by-step derivation
            1. lower-*.f6488.0

              \[\leadsto \color{blue}{4.16438922228 \cdot x} \]
          5. Applied rewrites88.0%

            \[\leadsto \color{blue}{4.16438922228 \cdot x} \]
        7. Recombined 3 regimes into one program.
        8. Add Preprocessing

        Alternative 13: 76.7% accurate, 3.0× speedup?

        \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq -0.175:\\ \;\;\;\;4.16438922228 \cdot \left(x - 2\right)\\ \mathbf{elif}\;x \leq 2.25 \cdot 10^{+18}:\\ \;\;\;\;\left(0.0212463641547976 \cdot z\right) \cdot \left(x - 2\right)\\ \mathbf{else}:\\ \;\;\;\;4.16438922228 \cdot x\\ \end{array} \end{array} \]
        (FPCore (x y z)
         :precision binary64
         (if (<= x -0.175)
           (* 4.16438922228 (- x 2.0))
           (if (<= x 2.25e+18)
             (* (* 0.0212463641547976 z) (- x 2.0))
             (* 4.16438922228 x))))
        double code(double x, double y, double z) {
        	double tmp;
        	if (x <= -0.175) {
        		tmp = 4.16438922228 * (x - 2.0);
        	} else if (x <= 2.25e+18) {
        		tmp = (0.0212463641547976 * z) * (x - 2.0);
        	} else {
        		tmp = 4.16438922228 * x;
        	}
        	return tmp;
        }
        
        real(8) function code(x, y, z)
            real(8), intent (in) :: x
            real(8), intent (in) :: y
            real(8), intent (in) :: z
            real(8) :: tmp
            if (x <= (-0.175d0)) then
                tmp = 4.16438922228d0 * (x - 2.0d0)
            else if (x <= 2.25d+18) then
                tmp = (0.0212463641547976d0 * z) * (x - 2.0d0)
            else
                tmp = 4.16438922228d0 * x
            end if
            code = tmp
        end function
        
        public static double code(double x, double y, double z) {
        	double tmp;
        	if (x <= -0.175) {
        		tmp = 4.16438922228 * (x - 2.0);
        	} else if (x <= 2.25e+18) {
        		tmp = (0.0212463641547976 * z) * (x - 2.0);
        	} else {
        		tmp = 4.16438922228 * x;
        	}
        	return tmp;
        }
        
        def code(x, y, z):
        	tmp = 0
        	if x <= -0.175:
        		tmp = 4.16438922228 * (x - 2.0)
        	elif x <= 2.25e+18:
        		tmp = (0.0212463641547976 * z) * (x - 2.0)
        	else:
        		tmp = 4.16438922228 * x
        	return tmp
        
        function code(x, y, z)
        	tmp = 0.0
        	if (x <= -0.175)
        		tmp = Float64(4.16438922228 * Float64(x - 2.0));
        	elseif (x <= 2.25e+18)
        		tmp = Float64(Float64(0.0212463641547976 * z) * Float64(x - 2.0));
        	else
        		tmp = Float64(4.16438922228 * x);
        	end
        	return tmp
        end
        
        function tmp_2 = code(x, y, z)
        	tmp = 0.0;
        	if (x <= -0.175)
        		tmp = 4.16438922228 * (x - 2.0);
        	elseif (x <= 2.25e+18)
        		tmp = (0.0212463641547976 * z) * (x - 2.0);
        	else
        		tmp = 4.16438922228 * x;
        	end
        	tmp_2 = tmp;
        end
        
        code[x_, y_, z_] := If[LessEqual[x, -0.175], N[(4.16438922228 * N[(x - 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 2.25e+18], N[(N[(0.0212463641547976 * z), $MachinePrecision] * N[(x - 2.0), $MachinePrecision]), $MachinePrecision], N[(4.16438922228 * x), $MachinePrecision]]]
        
        \begin{array}{l}
        
        \\
        \begin{array}{l}
        \mathbf{if}\;x \leq -0.175:\\
        \;\;\;\;4.16438922228 \cdot \left(x - 2\right)\\
        
        \mathbf{elif}\;x \leq 2.25 \cdot 10^{+18}:\\
        \;\;\;\;\left(0.0212463641547976 \cdot z\right) \cdot \left(x - 2\right)\\
        
        \mathbf{else}:\\
        \;\;\;\;4.16438922228 \cdot x\\
        
        
        \end{array}
        \end{array}
        
        Derivation
        1. Split input into 3 regimes
        2. if x < -0.17499999999999999

          1. Initial program 12.6%

            \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
          2. Add Preprocessing
          3. Step-by-step derivation
            1. lift-/.f64N/A

              \[\leadsto \color{blue}{\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
            2. lift-*.f64N/A

              \[\leadsto \frac{\color{blue}{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \]
            3. associate-/l*N/A

              \[\leadsto \color{blue}{\left(x - 2\right) \cdot \frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
            4. *-commutativeN/A

              \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
            5. lower-*.f64N/A

              \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
          4. Applied rewrites20.5%

            \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)} \]
          5. Taylor expanded in x around inf

            \[\leadsto \color{blue}{\frac{104109730557}{25000000000}} \cdot \left(x - 2\right) \]
          6. Step-by-step derivation
            1. Applied rewrites88.8%

              \[\leadsto \color{blue}{4.16438922228} \cdot \left(x - 2\right) \]

            if -0.17499999999999999 < x < 2.25e18

            1. Initial program 99.6%

              \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
            2. Add Preprocessing
            3. Step-by-step derivation
              1. lift-/.f64N/A

                \[\leadsto \color{blue}{\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
              2. lift-*.f64N/A

                \[\leadsto \frac{\color{blue}{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \]
              3. associate-/l*N/A

                \[\leadsto \color{blue}{\left(x - 2\right) \cdot \frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
              4. *-commutativeN/A

                \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
              5. lower-*.f64N/A

                \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
            4. Applied rewrites99.7%

              \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)} \]
            5. Taylor expanded in x around 0

              \[\leadsto \color{blue}{\left(\frac{500000000}{23533438303} \cdot z\right)} \cdot \left(x - 2\right) \]
            6. Step-by-step derivation
              1. lower-*.f6462.9

                \[\leadsto \color{blue}{\left(0.0212463641547976 \cdot z\right)} \cdot \left(x - 2\right) \]
            7. Applied rewrites62.9%

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

            if 2.25e18 < x

            1. Initial program 15.9%

              \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
            2. Add Preprocessing
            3. Taylor expanded in x around inf

              \[\leadsto \color{blue}{\frac{104109730557}{25000000000} \cdot x} \]
            4. Step-by-step derivation
              1. lower-*.f6492.2

                \[\leadsto \color{blue}{4.16438922228 \cdot x} \]
            5. Applied rewrites92.2%

              \[\leadsto \color{blue}{4.16438922228 \cdot x} \]
          7. Recombined 3 regimes into one program.
          8. Add Preprocessing

          Alternative 14: 76.6% accurate, 4.4× speedup?

          \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq -0.175:\\ \;\;\;\;4.16438922228 \cdot \left(x - 2\right)\\ \mathbf{elif}\;x \leq 2.05 \cdot 10^{+18}:\\ \;\;\;\;-0.0424927283095952 \cdot z\\ \mathbf{else}:\\ \;\;\;\;4.16438922228 \cdot x\\ \end{array} \end{array} \]
          (FPCore (x y z)
           :precision binary64
           (if (<= x -0.175)
             (* 4.16438922228 (- x 2.0))
             (if (<= x 2.05e+18) (* -0.0424927283095952 z) (* 4.16438922228 x))))
          double code(double x, double y, double z) {
          	double tmp;
          	if (x <= -0.175) {
          		tmp = 4.16438922228 * (x - 2.0);
          	} else if (x <= 2.05e+18) {
          		tmp = -0.0424927283095952 * z;
          	} else {
          		tmp = 4.16438922228 * x;
          	}
          	return tmp;
          }
          
          real(8) function code(x, y, z)
              real(8), intent (in) :: x
              real(8), intent (in) :: y
              real(8), intent (in) :: z
              real(8) :: tmp
              if (x <= (-0.175d0)) then
                  tmp = 4.16438922228d0 * (x - 2.0d0)
              else if (x <= 2.05d+18) then
                  tmp = (-0.0424927283095952d0) * z
              else
                  tmp = 4.16438922228d0 * x
              end if
              code = tmp
          end function
          
          public static double code(double x, double y, double z) {
          	double tmp;
          	if (x <= -0.175) {
          		tmp = 4.16438922228 * (x - 2.0);
          	} else if (x <= 2.05e+18) {
          		tmp = -0.0424927283095952 * z;
          	} else {
          		tmp = 4.16438922228 * x;
          	}
          	return tmp;
          }
          
          def code(x, y, z):
          	tmp = 0
          	if x <= -0.175:
          		tmp = 4.16438922228 * (x - 2.0)
          	elif x <= 2.05e+18:
          		tmp = -0.0424927283095952 * z
          	else:
          		tmp = 4.16438922228 * x
          	return tmp
          
          function code(x, y, z)
          	tmp = 0.0
          	if (x <= -0.175)
          		tmp = Float64(4.16438922228 * Float64(x - 2.0));
          	elseif (x <= 2.05e+18)
          		tmp = Float64(-0.0424927283095952 * z);
          	else
          		tmp = Float64(4.16438922228 * x);
          	end
          	return tmp
          end
          
          function tmp_2 = code(x, y, z)
          	tmp = 0.0;
          	if (x <= -0.175)
          		tmp = 4.16438922228 * (x - 2.0);
          	elseif (x <= 2.05e+18)
          		tmp = -0.0424927283095952 * z;
          	else
          		tmp = 4.16438922228 * x;
          	end
          	tmp_2 = tmp;
          end
          
          code[x_, y_, z_] := If[LessEqual[x, -0.175], N[(4.16438922228 * N[(x - 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[x, 2.05e+18], N[(-0.0424927283095952 * z), $MachinePrecision], N[(4.16438922228 * x), $MachinePrecision]]]
          
          \begin{array}{l}
          
          \\
          \begin{array}{l}
          \mathbf{if}\;x \leq -0.175:\\
          \;\;\;\;4.16438922228 \cdot \left(x - 2\right)\\
          
          \mathbf{elif}\;x \leq 2.05 \cdot 10^{+18}:\\
          \;\;\;\;-0.0424927283095952 \cdot z\\
          
          \mathbf{else}:\\
          \;\;\;\;4.16438922228 \cdot x\\
          
          
          \end{array}
          \end{array}
          
          Derivation
          1. Split input into 3 regimes
          2. if x < -0.17499999999999999

            1. Initial program 12.6%

              \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
            2. Add Preprocessing
            3. Step-by-step derivation
              1. lift-/.f64N/A

                \[\leadsto \color{blue}{\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
              2. lift-*.f64N/A

                \[\leadsto \frac{\color{blue}{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z\right)}}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \]
              3. associate-/l*N/A

                \[\leadsto \color{blue}{\left(x - 2\right) \cdot \frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}}} \]
              4. *-commutativeN/A

                \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
              5. lower-*.f64N/A

                \[\leadsto \color{blue}{\frac{\left(\left(\left(x \cdot \frac{104109730557}{25000000000} + \frac{393497462077}{5000000000}\right) \cdot x + \frac{4297481763}{31250000}\right) \cdot x + y\right) \cdot x + z}{\left(\left(\left(x + \frac{216700011257}{5000000000}\right) \cdot x + \frac{263505074721}{1000000000}\right) \cdot x + \frac{156699607947}{500000000}\right) \cdot x + \frac{23533438303}{500000000}} \cdot \left(x - 2\right)} \]
            4. Applied rewrites20.5%

              \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(4.16438922228, x, 78.6994924154\right), x, 137.519416416\right), x, y\right), x, z\right)}{\mathsf{fma}\left(\mathsf{fma}\left(\mathsf{fma}\left(43.3400022514 + x, x, 263.505074721\right), x, 313.399215894\right), x, 47.066876606\right)} \cdot \left(x - 2\right)} \]
            5. Taylor expanded in x around inf

              \[\leadsto \color{blue}{\frac{104109730557}{25000000000}} \cdot \left(x - 2\right) \]
            6. Step-by-step derivation
              1. Applied rewrites88.8%

                \[\leadsto \color{blue}{4.16438922228} \cdot \left(x - 2\right) \]

              if -0.17499999999999999 < x < 2.05e18

              1. Initial program 99.6%

                \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
              2. Add Preprocessing
              3. Taylor expanded in x around 0

                \[\leadsto \color{blue}{\frac{-1000000000}{23533438303} \cdot z} \]
              4. Step-by-step derivation
                1. lower-*.f6462.8

                  \[\leadsto \color{blue}{-0.0424927283095952 \cdot z} \]
              5. Applied rewrites62.8%

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

              if 2.05e18 < x

              1. Initial program 15.9%

                \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
              2. Add Preprocessing
              3. Taylor expanded in x around inf

                \[\leadsto \color{blue}{\frac{104109730557}{25000000000} \cdot x} \]
              4. Step-by-step derivation
                1. lower-*.f6492.2

                  \[\leadsto \color{blue}{4.16438922228 \cdot x} \]
              5. Applied rewrites92.2%

                \[\leadsto \color{blue}{4.16438922228 \cdot x} \]
            7. Recombined 3 regimes into one program.
            8. Add Preprocessing

            Alternative 15: 76.6% accurate, 4.4× speedup?

            \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x \leq -0.175:\\ \;\;\;\;4.16438922228 \cdot x\\ \mathbf{elif}\;x \leq 2.05 \cdot 10^{+18}:\\ \;\;\;\;-0.0424927283095952 \cdot z\\ \mathbf{else}:\\ \;\;\;\;4.16438922228 \cdot x\\ \end{array} \end{array} \]
            (FPCore (x y z)
             :precision binary64
             (if (<= x -0.175)
               (* 4.16438922228 x)
               (if (<= x 2.05e+18) (* -0.0424927283095952 z) (* 4.16438922228 x))))
            double code(double x, double y, double z) {
            	double tmp;
            	if (x <= -0.175) {
            		tmp = 4.16438922228 * x;
            	} else if (x <= 2.05e+18) {
            		tmp = -0.0424927283095952 * z;
            	} else {
            		tmp = 4.16438922228 * x;
            	}
            	return tmp;
            }
            
            real(8) function code(x, y, z)
                real(8), intent (in) :: x
                real(8), intent (in) :: y
                real(8), intent (in) :: z
                real(8) :: tmp
                if (x <= (-0.175d0)) then
                    tmp = 4.16438922228d0 * x
                else if (x <= 2.05d+18) then
                    tmp = (-0.0424927283095952d0) * z
                else
                    tmp = 4.16438922228d0 * x
                end if
                code = tmp
            end function
            
            public static double code(double x, double y, double z) {
            	double tmp;
            	if (x <= -0.175) {
            		tmp = 4.16438922228 * x;
            	} else if (x <= 2.05e+18) {
            		tmp = -0.0424927283095952 * z;
            	} else {
            		tmp = 4.16438922228 * x;
            	}
            	return tmp;
            }
            
            def code(x, y, z):
            	tmp = 0
            	if x <= -0.175:
            		tmp = 4.16438922228 * x
            	elif x <= 2.05e+18:
            		tmp = -0.0424927283095952 * z
            	else:
            		tmp = 4.16438922228 * x
            	return tmp
            
            function code(x, y, z)
            	tmp = 0.0
            	if (x <= -0.175)
            		tmp = Float64(4.16438922228 * x);
            	elseif (x <= 2.05e+18)
            		tmp = Float64(-0.0424927283095952 * z);
            	else
            		tmp = Float64(4.16438922228 * x);
            	end
            	return tmp
            end
            
            function tmp_2 = code(x, y, z)
            	tmp = 0.0;
            	if (x <= -0.175)
            		tmp = 4.16438922228 * x;
            	elseif (x <= 2.05e+18)
            		tmp = -0.0424927283095952 * z;
            	else
            		tmp = 4.16438922228 * x;
            	end
            	tmp_2 = tmp;
            end
            
            code[x_, y_, z_] := If[LessEqual[x, -0.175], N[(4.16438922228 * x), $MachinePrecision], If[LessEqual[x, 2.05e+18], N[(-0.0424927283095952 * z), $MachinePrecision], N[(4.16438922228 * x), $MachinePrecision]]]
            
            \begin{array}{l}
            
            \\
            \begin{array}{l}
            \mathbf{if}\;x \leq -0.175:\\
            \;\;\;\;4.16438922228 \cdot x\\
            
            \mathbf{elif}\;x \leq 2.05 \cdot 10^{+18}:\\
            \;\;\;\;-0.0424927283095952 \cdot z\\
            
            \mathbf{else}:\\
            \;\;\;\;4.16438922228 \cdot x\\
            
            
            \end{array}
            \end{array}
            
            Derivation
            1. Split input into 2 regimes
            2. if x < -0.17499999999999999 or 2.05e18 < x

              1. Initial program 14.2%

                \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
              2. Add Preprocessing
              3. Taylor expanded in x around inf

                \[\leadsto \color{blue}{\frac{104109730557}{25000000000} \cdot x} \]
              4. Step-by-step derivation
                1. lower-*.f6490.4

                  \[\leadsto \color{blue}{4.16438922228 \cdot x} \]
              5. Applied rewrites90.4%

                \[\leadsto \color{blue}{4.16438922228 \cdot x} \]

              if -0.17499999999999999 < x < 2.05e18

              1. Initial program 99.6%

                \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
              2. Add Preprocessing
              3. Taylor expanded in x around 0

                \[\leadsto \color{blue}{\frac{-1000000000}{23533438303} \cdot z} \]
              4. Step-by-step derivation
                1. lower-*.f6462.8

                  \[\leadsto \color{blue}{-0.0424927283095952 \cdot z} \]
              5. Applied rewrites62.8%

                \[\leadsto \color{blue}{-0.0424927283095952 \cdot z} \]
            3. Recombined 2 regimes into one program.
            4. Add Preprocessing

            Alternative 16: 35.2% accurate, 13.2× speedup?

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

              \[\frac{\left(x - 2\right) \cdot \left(\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z\right)}{\left(\left(\left(x + 43.3400022514\right) \cdot x + 263.505074721\right) \cdot x + 313.399215894\right) \cdot x + 47.066876606} \]
            2. Add Preprocessing
            3. Taylor expanded in x around 0

              \[\leadsto \color{blue}{\frac{-1000000000}{23533438303} \cdot z} \]
            4. Step-by-step derivation
              1. lower-*.f6431.5

                \[\leadsto \color{blue}{-0.0424927283095952 \cdot z} \]
            5. Applied rewrites31.5%

              \[\leadsto \color{blue}{-0.0424927283095952 \cdot z} \]
            6. Add Preprocessing

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

            \[\begin{array}{l} \\ \begin{array}{l} t_0 := \left(\frac{y}{x \cdot x} + 4.16438922228 \cdot x\right) - 110.1139242984811\\ \mathbf{if}\;x < -3.326128725870005 \cdot 10^{+62}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x < 9.429991714554673 \cdot 10^{+55}:\\ \;\;\;\;\frac{x - 2}{1} \cdot \frac{\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z}{\left(\left(263.505074721 \cdot x + \left(43.3400022514 \cdot \left(x \cdot x\right) + x \cdot \left(x \cdot x\right)\right)\right) + 313.399215894\right) \cdot x + 47.066876606}\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
            (FPCore (x y z)
             :precision binary64
             (let* ((t_0 (- (+ (/ y (* x x)) (* 4.16438922228 x)) 110.1139242984811)))
               (if (< x -3.326128725870005e+62)
                 t_0
                 (if (< x 9.429991714554673e+55)
                   (*
                    (/ (- x 2.0) 1.0)
                    (/
                     (+
                      (*
                       (+
                        (* (+ (* (+ (* x 4.16438922228) 78.6994924154) x) 137.519416416) x)
                        y)
                       x)
                      z)
                     (+
                      (*
                       (+
                        (+ (* 263.505074721 x) (+ (* 43.3400022514 (* x x)) (* x (* x x))))
                        313.399215894)
                       x)
                      47.066876606)))
                   t_0))))
            double code(double x, double y, double z) {
            	double t_0 = ((y / (x * x)) + (4.16438922228 * x)) - 110.1139242984811;
            	double tmp;
            	if (x < -3.326128725870005e+62) {
            		tmp = t_0;
            	} else if (x < 9.429991714554673e+55) {
            		tmp = ((x - 2.0) / 1.0) * (((((((((x * 4.16438922228) + 78.6994924154) * x) + 137.519416416) * x) + y) * x) + z) / (((((263.505074721 * x) + ((43.3400022514 * (x * x)) + (x * (x * x)))) + 313.399215894) * x) + 47.066876606));
            	} else {
            		tmp = t_0;
            	}
            	return tmp;
            }
            
            real(8) function code(x, y, z)
                real(8), intent (in) :: x
                real(8), intent (in) :: y
                real(8), intent (in) :: z
                real(8) :: t_0
                real(8) :: tmp
                t_0 = ((y / (x * x)) + (4.16438922228d0 * x)) - 110.1139242984811d0
                if (x < (-3.326128725870005d+62)) then
                    tmp = t_0
                else if (x < 9.429991714554673d+55) then
                    tmp = ((x - 2.0d0) / 1.0d0) * (((((((((x * 4.16438922228d0) + 78.6994924154d0) * x) + 137.519416416d0) * x) + y) * x) + z) / (((((263.505074721d0 * x) + ((43.3400022514d0 * (x * x)) + (x * (x * x)))) + 313.399215894d0) * x) + 47.066876606d0))
                else
                    tmp = t_0
                end if
                code = tmp
            end function
            
            public static double code(double x, double y, double z) {
            	double t_0 = ((y / (x * x)) + (4.16438922228 * x)) - 110.1139242984811;
            	double tmp;
            	if (x < -3.326128725870005e+62) {
            		tmp = t_0;
            	} else if (x < 9.429991714554673e+55) {
            		tmp = ((x - 2.0) / 1.0) * (((((((((x * 4.16438922228) + 78.6994924154) * x) + 137.519416416) * x) + y) * x) + z) / (((((263.505074721 * x) + ((43.3400022514 * (x * x)) + (x * (x * x)))) + 313.399215894) * x) + 47.066876606));
            	} else {
            		tmp = t_0;
            	}
            	return tmp;
            }
            
            def code(x, y, z):
            	t_0 = ((y / (x * x)) + (4.16438922228 * x)) - 110.1139242984811
            	tmp = 0
            	if x < -3.326128725870005e+62:
            		tmp = t_0
            	elif x < 9.429991714554673e+55:
            		tmp = ((x - 2.0) / 1.0) * (((((((((x * 4.16438922228) + 78.6994924154) * x) + 137.519416416) * x) + y) * x) + z) / (((((263.505074721 * x) + ((43.3400022514 * (x * x)) + (x * (x * x)))) + 313.399215894) * x) + 47.066876606))
            	else:
            		tmp = t_0
            	return tmp
            
            function code(x, y, z)
            	t_0 = Float64(Float64(Float64(y / Float64(x * x)) + Float64(4.16438922228 * x)) - 110.1139242984811)
            	tmp = 0.0
            	if (x < -3.326128725870005e+62)
            		tmp = t_0;
            	elseif (x < 9.429991714554673e+55)
            		tmp = Float64(Float64(Float64(x - 2.0) / 1.0) * Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(x * 4.16438922228) + 78.6994924154) * x) + 137.519416416) * x) + y) * x) + z) / Float64(Float64(Float64(Float64(Float64(263.505074721 * x) + Float64(Float64(43.3400022514 * Float64(x * x)) + Float64(x * Float64(x * x)))) + 313.399215894) * x) + 47.066876606)));
            	else
            		tmp = t_0;
            	end
            	return tmp
            end
            
            function tmp_2 = code(x, y, z)
            	t_0 = ((y / (x * x)) + (4.16438922228 * x)) - 110.1139242984811;
            	tmp = 0.0;
            	if (x < -3.326128725870005e+62)
            		tmp = t_0;
            	elseif (x < 9.429991714554673e+55)
            		tmp = ((x - 2.0) / 1.0) * (((((((((x * 4.16438922228) + 78.6994924154) * x) + 137.519416416) * x) + y) * x) + z) / (((((263.505074721 * x) + ((43.3400022514 * (x * x)) + (x * (x * x)))) + 313.399215894) * x) + 47.066876606));
            	else
            		tmp = t_0;
            	end
            	tmp_2 = tmp;
            end
            
            code[x_, y_, z_] := Block[{t$95$0 = N[(N[(N[(y / N[(x * x), $MachinePrecision]), $MachinePrecision] + N[(4.16438922228 * x), $MachinePrecision]), $MachinePrecision] - 110.1139242984811), $MachinePrecision]}, If[Less[x, -3.326128725870005e+62], t$95$0, If[Less[x, 9.429991714554673e+55], N[(N[(N[(x - 2.0), $MachinePrecision] / 1.0), $MachinePrecision] * N[(N[(N[(N[(N[(N[(N[(N[(N[(x * 4.16438922228), $MachinePrecision] + 78.6994924154), $MachinePrecision] * x), $MachinePrecision] + 137.519416416), $MachinePrecision] * x), $MachinePrecision] + y), $MachinePrecision] * x), $MachinePrecision] + z), $MachinePrecision] / N[(N[(N[(N[(N[(263.505074721 * x), $MachinePrecision] + N[(N[(43.3400022514 * N[(x * x), $MachinePrecision]), $MachinePrecision] + N[(x * N[(x * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + 313.399215894), $MachinePrecision] * x), $MachinePrecision] + 47.066876606), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]
            
            \begin{array}{l}
            
            \\
            \begin{array}{l}
            t_0 := \left(\frac{y}{x \cdot x} + 4.16438922228 \cdot x\right) - 110.1139242984811\\
            \mathbf{if}\;x < -3.326128725870005 \cdot 10^{+62}:\\
            \;\;\;\;t\_0\\
            
            \mathbf{elif}\;x < 9.429991714554673 \cdot 10^{+55}:\\
            \;\;\;\;\frac{x - 2}{1} \cdot \frac{\left(\left(\left(x \cdot 4.16438922228 + 78.6994924154\right) \cdot x + 137.519416416\right) \cdot x + y\right) \cdot x + z}{\left(\left(263.505074721 \cdot x + \left(43.3400022514 \cdot \left(x \cdot x\right) + x \cdot \left(x \cdot x\right)\right)\right) + 313.399215894\right) \cdot x + 47.066876606}\\
            
            \mathbf{else}:\\
            \;\;\;\;t\_0\\
            
            
            \end{array}
            \end{array}
            

            Reproduce

            ?
            herbie shell --seed 2024277 
            (FPCore (x y z)
              :name "Numeric.SpecFunctions:logGamma from math-functions-0.1.5.2, C"
              :precision binary64
            
              :alt
              (! :herbie-platform default (if (< x -332612872587000500000000000000000000000000000000000000000000000) (- (+ (/ y (* x x)) (* 104109730557/25000000000 x)) 1101139242984811/10000000000000) (if (< x 94299917145546730000000000000000000000000000000000000000) (* (/ (- x 2) 1) (/ (+ (* (+ (* (+ (* (+ (* x 104109730557/25000000000) 393497462077/5000000000) x) 4297481763/31250000) x) y) x) z) (+ (* (+ (+ (* 263505074721/1000000000 x) (+ (* 216700011257/5000000000 (* x x)) (* x (* x x)))) 156699607947/500000000) x) 23533438303/500000000))) (- (+ (/ y (* x x)) (* 104109730557/25000000000 x)) 1101139242984811/10000000000000))))
            
              (/ (* (- x 2.0) (+ (* (+ (* (+ (* (+ (* x 4.16438922228) 78.6994924154) x) 137.519416416) x) y) x) z)) (+ (* (+ (* (+ (* (+ x 43.3400022514) x) 263.505074721) x) 313.399215894) x) 47.066876606)))