Rosa's FloatVsDoubleBenchmark

Percentage Accurate: 70.9% → 99.4%
Time: 22.0s
Alternatives: 20
Speedup: 6.7×

Specification

?
\[\begin{array}{l} \\ \begin{array}{l} t_0 := \left(3 \cdot x1\right) \cdot x1\\ t_1 := x1 \cdot x1 + 1\\ t_2 := \frac{\left(t\_0 + 2 \cdot x2\right) - x1}{t\_1}\\ x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot t\_2\right) \cdot \left(t\_2 - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot t\_2 - 6\right)\right) \cdot t\_1 + t\_0 \cdot t\_2\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(t\_0 - 2 \cdot x2\right) - x1}{t\_1}\right) \end{array} \end{array} \]
(FPCore (x1 x2)
 :precision binary64
 (let* ((t_0 (* (* 3.0 x1) x1))
        (t_1 (+ (* x1 x1) 1.0))
        (t_2 (/ (- (+ t_0 (* 2.0 x2)) x1) t_1)))
   (+
    x1
    (+
     (+
      (+
       (+
        (*
         (+
          (* (* (* 2.0 x1) t_2) (- t_2 3.0))
          (* (* x1 x1) (- (* 4.0 t_2) 6.0)))
         t_1)
        (* t_0 t_2))
       (* (* x1 x1) x1))
      x1)
     (* 3.0 (/ (- (- t_0 (* 2.0 x2)) x1) t_1))))))
double code(double x1, double x2) {
	double t_0 = (3.0 * x1) * x1;
	double t_1 = (x1 * x1) + 1.0;
	double t_2 = ((t_0 + (2.0 * x2)) - x1) / t_1;
	return x1 + (((((((((2.0 * x1) * t_2) * (t_2 - 3.0)) + ((x1 * x1) * ((4.0 * t_2) - 6.0))) * t_1) + (t_0 * t_2)) + ((x1 * x1) * x1)) + x1) + (3.0 * (((t_0 - (2.0 * x2)) - x1) / t_1)));
}
real(8) function code(x1, x2)
    real(8), intent (in) :: x1
    real(8), intent (in) :: x2
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    t_0 = (3.0d0 * x1) * x1
    t_1 = (x1 * x1) + 1.0d0
    t_2 = ((t_0 + (2.0d0 * x2)) - x1) / t_1
    code = x1 + (((((((((2.0d0 * x1) * t_2) * (t_2 - 3.0d0)) + ((x1 * x1) * ((4.0d0 * t_2) - 6.0d0))) * t_1) + (t_0 * t_2)) + ((x1 * x1) * x1)) + x1) + (3.0d0 * (((t_0 - (2.0d0 * x2)) - x1) / t_1)))
end function
public static double code(double x1, double x2) {
	double t_0 = (3.0 * x1) * x1;
	double t_1 = (x1 * x1) + 1.0;
	double t_2 = ((t_0 + (2.0 * x2)) - x1) / t_1;
	return x1 + (((((((((2.0 * x1) * t_2) * (t_2 - 3.0)) + ((x1 * x1) * ((4.0 * t_2) - 6.0))) * t_1) + (t_0 * t_2)) + ((x1 * x1) * x1)) + x1) + (3.0 * (((t_0 - (2.0 * x2)) - x1) / t_1)));
}
def code(x1, x2):
	t_0 = (3.0 * x1) * x1
	t_1 = (x1 * x1) + 1.0
	t_2 = ((t_0 + (2.0 * x2)) - x1) / t_1
	return x1 + (((((((((2.0 * x1) * t_2) * (t_2 - 3.0)) + ((x1 * x1) * ((4.0 * t_2) - 6.0))) * t_1) + (t_0 * t_2)) + ((x1 * x1) * x1)) + x1) + (3.0 * (((t_0 - (2.0 * x2)) - x1) / t_1)))
function code(x1, x2)
	t_0 = Float64(Float64(3.0 * x1) * x1)
	t_1 = Float64(Float64(x1 * x1) + 1.0)
	t_2 = Float64(Float64(Float64(t_0 + Float64(2.0 * x2)) - x1) / t_1)
	return Float64(x1 + Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(2.0 * x1) * t_2) * Float64(t_2 - 3.0)) + Float64(Float64(x1 * x1) * Float64(Float64(4.0 * t_2) - 6.0))) * t_1) + Float64(t_0 * t_2)) + Float64(Float64(x1 * x1) * x1)) + x1) + Float64(3.0 * Float64(Float64(Float64(t_0 - Float64(2.0 * x2)) - x1) / t_1))))
end
function tmp = code(x1, x2)
	t_0 = (3.0 * x1) * x1;
	t_1 = (x1 * x1) + 1.0;
	t_2 = ((t_0 + (2.0 * x2)) - x1) / t_1;
	tmp = x1 + (((((((((2.0 * x1) * t_2) * (t_2 - 3.0)) + ((x1 * x1) * ((4.0 * t_2) - 6.0))) * t_1) + (t_0 * t_2)) + ((x1 * x1) * x1)) + x1) + (3.0 * (((t_0 - (2.0 * x2)) - x1) / t_1)));
end
code[x1_, x2_] := Block[{t$95$0 = N[(N[(3.0 * x1), $MachinePrecision] * x1), $MachinePrecision]}, Block[{t$95$1 = N[(N[(x1 * x1), $MachinePrecision] + 1.0), $MachinePrecision]}, Block[{t$95$2 = N[(N[(N[(t$95$0 + N[(2.0 * x2), $MachinePrecision]), $MachinePrecision] - x1), $MachinePrecision] / t$95$1), $MachinePrecision]}, N[(x1 + N[(N[(N[(N[(N[(N[(N[(N[(N[(2.0 * x1), $MachinePrecision] * t$95$2), $MachinePrecision] * N[(t$95$2 - 3.0), $MachinePrecision]), $MachinePrecision] + N[(N[(x1 * x1), $MachinePrecision] * N[(N[(4.0 * t$95$2), $MachinePrecision] - 6.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * t$95$1), $MachinePrecision] + N[(t$95$0 * t$95$2), $MachinePrecision]), $MachinePrecision] + N[(N[(x1 * x1), $MachinePrecision] * x1), $MachinePrecision]), $MachinePrecision] + x1), $MachinePrecision] + N[(3.0 * N[(N[(N[(t$95$0 - N[(2.0 * x2), $MachinePrecision]), $MachinePrecision] - x1), $MachinePrecision] / t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \left(3 \cdot x1\right) \cdot x1\\
t_1 := x1 \cdot x1 + 1\\
t_2 := \frac{\left(t\_0 + 2 \cdot x2\right) - x1}{t\_1}\\
x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot t\_2\right) \cdot \left(t\_2 - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot t\_2 - 6\right)\right) \cdot t\_1 + t\_0 \cdot t\_2\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(t\_0 - 2 \cdot x2\right) - x1}{t\_1}\right)
\end{array}
\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 20 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: 70.9% accurate, 1.0× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := \left(3 \cdot x1\right) \cdot x1\\ t_1 := x1 \cdot x1 + 1\\ t_2 := \frac{\left(t\_0 + 2 \cdot x2\right) - x1}{t\_1}\\ x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot t\_2\right) \cdot \left(t\_2 - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot t\_2 - 6\right)\right) \cdot t\_1 + t\_0 \cdot t\_2\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(t\_0 - 2 \cdot x2\right) - x1}{t\_1}\right) \end{array} \end{array} \]
(FPCore (x1 x2)
 :precision binary64
 (let* ((t_0 (* (* 3.0 x1) x1))
        (t_1 (+ (* x1 x1) 1.0))
        (t_2 (/ (- (+ t_0 (* 2.0 x2)) x1) t_1)))
   (+
    x1
    (+
     (+
      (+
       (+
        (*
         (+
          (* (* (* 2.0 x1) t_2) (- t_2 3.0))
          (* (* x1 x1) (- (* 4.0 t_2) 6.0)))
         t_1)
        (* t_0 t_2))
       (* (* x1 x1) x1))
      x1)
     (* 3.0 (/ (- (- t_0 (* 2.0 x2)) x1) t_1))))))
double code(double x1, double x2) {
	double t_0 = (3.0 * x1) * x1;
	double t_1 = (x1 * x1) + 1.0;
	double t_2 = ((t_0 + (2.0 * x2)) - x1) / t_1;
	return x1 + (((((((((2.0 * x1) * t_2) * (t_2 - 3.0)) + ((x1 * x1) * ((4.0 * t_2) - 6.0))) * t_1) + (t_0 * t_2)) + ((x1 * x1) * x1)) + x1) + (3.0 * (((t_0 - (2.0 * x2)) - x1) / t_1)));
}
real(8) function code(x1, x2)
    real(8), intent (in) :: x1
    real(8), intent (in) :: x2
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    t_0 = (3.0d0 * x1) * x1
    t_1 = (x1 * x1) + 1.0d0
    t_2 = ((t_0 + (2.0d0 * x2)) - x1) / t_1
    code = x1 + (((((((((2.0d0 * x1) * t_2) * (t_2 - 3.0d0)) + ((x1 * x1) * ((4.0d0 * t_2) - 6.0d0))) * t_1) + (t_0 * t_2)) + ((x1 * x1) * x1)) + x1) + (3.0d0 * (((t_0 - (2.0d0 * x2)) - x1) / t_1)))
end function
public static double code(double x1, double x2) {
	double t_0 = (3.0 * x1) * x1;
	double t_1 = (x1 * x1) + 1.0;
	double t_2 = ((t_0 + (2.0 * x2)) - x1) / t_1;
	return x1 + (((((((((2.0 * x1) * t_2) * (t_2 - 3.0)) + ((x1 * x1) * ((4.0 * t_2) - 6.0))) * t_1) + (t_0 * t_2)) + ((x1 * x1) * x1)) + x1) + (3.0 * (((t_0 - (2.0 * x2)) - x1) / t_1)));
}
def code(x1, x2):
	t_0 = (3.0 * x1) * x1
	t_1 = (x1 * x1) + 1.0
	t_2 = ((t_0 + (2.0 * x2)) - x1) / t_1
	return x1 + (((((((((2.0 * x1) * t_2) * (t_2 - 3.0)) + ((x1 * x1) * ((4.0 * t_2) - 6.0))) * t_1) + (t_0 * t_2)) + ((x1 * x1) * x1)) + x1) + (3.0 * (((t_0 - (2.0 * x2)) - x1) / t_1)))
function code(x1, x2)
	t_0 = Float64(Float64(3.0 * x1) * x1)
	t_1 = Float64(Float64(x1 * x1) + 1.0)
	t_2 = Float64(Float64(Float64(t_0 + Float64(2.0 * x2)) - x1) / t_1)
	return Float64(x1 + Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(Float64(2.0 * x1) * t_2) * Float64(t_2 - 3.0)) + Float64(Float64(x1 * x1) * Float64(Float64(4.0 * t_2) - 6.0))) * t_1) + Float64(t_0 * t_2)) + Float64(Float64(x1 * x1) * x1)) + x1) + Float64(3.0 * Float64(Float64(Float64(t_0 - Float64(2.0 * x2)) - x1) / t_1))))
end
function tmp = code(x1, x2)
	t_0 = (3.0 * x1) * x1;
	t_1 = (x1 * x1) + 1.0;
	t_2 = ((t_0 + (2.0 * x2)) - x1) / t_1;
	tmp = x1 + (((((((((2.0 * x1) * t_2) * (t_2 - 3.0)) + ((x1 * x1) * ((4.0 * t_2) - 6.0))) * t_1) + (t_0 * t_2)) + ((x1 * x1) * x1)) + x1) + (3.0 * (((t_0 - (2.0 * x2)) - x1) / t_1)));
end
code[x1_, x2_] := Block[{t$95$0 = N[(N[(3.0 * x1), $MachinePrecision] * x1), $MachinePrecision]}, Block[{t$95$1 = N[(N[(x1 * x1), $MachinePrecision] + 1.0), $MachinePrecision]}, Block[{t$95$2 = N[(N[(N[(t$95$0 + N[(2.0 * x2), $MachinePrecision]), $MachinePrecision] - x1), $MachinePrecision] / t$95$1), $MachinePrecision]}, N[(x1 + N[(N[(N[(N[(N[(N[(N[(N[(N[(2.0 * x1), $MachinePrecision] * t$95$2), $MachinePrecision] * N[(t$95$2 - 3.0), $MachinePrecision]), $MachinePrecision] + N[(N[(x1 * x1), $MachinePrecision] * N[(N[(4.0 * t$95$2), $MachinePrecision] - 6.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * t$95$1), $MachinePrecision] + N[(t$95$0 * t$95$2), $MachinePrecision]), $MachinePrecision] + N[(N[(x1 * x1), $MachinePrecision] * x1), $MachinePrecision]), $MachinePrecision] + x1), $MachinePrecision] + N[(3.0 * N[(N[(N[(t$95$0 - N[(2.0 * x2), $MachinePrecision]), $MachinePrecision] - x1), $MachinePrecision] / t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := \left(3 \cdot x1\right) \cdot x1\\
t_1 := x1 \cdot x1 + 1\\
t_2 := \frac{\left(t\_0 + 2 \cdot x2\right) - x1}{t\_1}\\
x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot t\_2\right) \cdot \left(t\_2 - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot t\_2 - 6\right)\right) \cdot t\_1 + t\_0 \cdot t\_2\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(t\_0 - 2 \cdot x2\right) - x1}{t\_1}\right)
\end{array}
\end{array}

Alternative 1: 99.4% accurate, 0.5× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := x1 \cdot \left(x1 \cdot x1\right)\\ t_1 := x1 \cdot \left(x1 \cdot 3\right)\\ t_2 := x1 \cdot x1 + 1\\ t_3 := \frac{\left(t\_1 + 2 \cdot x2\right) - x1}{t\_2}\\ t_4 := x1 \cdot \left(x1 \cdot 3 + -1\right)\\ t_5 := 2 \cdot x2 + t\_4\\ \mathbf{if}\;x1 + \left(\left(x1 + \left(\left(t\_2 \cdot \left(\left(t\_3 \cdot \left(x1 \cdot 2\right)\right) \cdot \left(t\_3 - 3\right) + \left(x1 \cdot x1\right) \cdot \left(t\_3 \cdot 4 - 6\right)\right) + t\_1 \cdot t\_3\right) + t\_0\right)\right) + 3 \cdot \frac{\left(t\_1 - 2 \cdot x2\right) - x1}{t\_2}\right) \leq \infty:\\ \;\;\;\;\frac{3 \cdot \left(x2 \cdot -2 + t\_4\right)}{t\_2} + \left(t\_2 \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{t\_5}{t\_2} \cdot \left(x1 \cdot \left(-6 + t\_5 \cdot \frac{2}{t\_2}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + t\_5 \cdot \frac{3}{t\_2}\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;6 \cdot \left(x1 \cdot t\_0\right)\\ \end{array} \end{array} \]
(FPCore (x1 x2)
 :precision binary64
 (let* ((t_0 (* x1 (* x1 x1)))
        (t_1 (* x1 (* x1 3.0)))
        (t_2 (+ (* x1 x1) 1.0))
        (t_3 (/ (- (+ t_1 (* 2.0 x2)) x1) t_2))
        (t_4 (* x1 (+ (* x1 3.0) -1.0)))
        (t_5 (+ (* 2.0 x2) t_4)))
   (if (<=
        (+
         x1
         (+
          (+
           x1
           (+
            (+
             (*
              t_2
              (+
               (* (* t_3 (* x1 2.0)) (- t_3 3.0))
               (* (* x1 x1) (- (* t_3 4.0) 6.0))))
             (* t_1 t_3))
            t_0))
          (* 3.0 (/ (- (- t_1 (* 2.0 x2)) x1) t_2))))
        INFINITY)
     (+
      (/ (* 3.0 (+ (* x2 -2.0) t_4)) t_2)
      (+
       (*
        t_2
        (+
         (* x1 (* x1 -6.0))
         (*
          (/ t_5 t_2)
          (+ (* x1 (+ -6.0 (* t_5 (/ 2.0 t_2)))) (* (* x1 x1) 4.0)))))
       (* x1 (+ 2.0 (* x1 (+ x1 (* t_5 (/ 3.0 t_2))))))))
     (* 6.0 (* x1 t_0)))))
double code(double x1, double x2) {
	double t_0 = x1 * (x1 * x1);
	double t_1 = x1 * (x1 * 3.0);
	double t_2 = (x1 * x1) + 1.0;
	double t_3 = ((t_1 + (2.0 * x2)) - x1) / t_2;
	double t_4 = x1 * ((x1 * 3.0) + -1.0);
	double t_5 = (2.0 * x2) + t_4;
	double tmp;
	if ((x1 + ((x1 + (((t_2 * (((t_3 * (x1 * 2.0)) * (t_3 - 3.0)) + ((x1 * x1) * ((t_3 * 4.0) - 6.0)))) + (t_1 * t_3)) + t_0)) + (3.0 * (((t_1 - (2.0 * x2)) - x1) / t_2)))) <= ((double) INFINITY)) {
		tmp = ((3.0 * ((x2 * -2.0) + t_4)) / t_2) + ((t_2 * ((x1 * (x1 * -6.0)) + ((t_5 / t_2) * ((x1 * (-6.0 + (t_5 * (2.0 / t_2)))) + ((x1 * x1) * 4.0))))) + (x1 * (2.0 + (x1 * (x1 + (t_5 * (3.0 / t_2)))))));
	} else {
		tmp = 6.0 * (x1 * t_0);
	}
	return tmp;
}
public static double code(double x1, double x2) {
	double t_0 = x1 * (x1 * x1);
	double t_1 = x1 * (x1 * 3.0);
	double t_2 = (x1 * x1) + 1.0;
	double t_3 = ((t_1 + (2.0 * x2)) - x1) / t_2;
	double t_4 = x1 * ((x1 * 3.0) + -1.0);
	double t_5 = (2.0 * x2) + t_4;
	double tmp;
	if ((x1 + ((x1 + (((t_2 * (((t_3 * (x1 * 2.0)) * (t_3 - 3.0)) + ((x1 * x1) * ((t_3 * 4.0) - 6.0)))) + (t_1 * t_3)) + t_0)) + (3.0 * (((t_1 - (2.0 * x2)) - x1) / t_2)))) <= Double.POSITIVE_INFINITY) {
		tmp = ((3.0 * ((x2 * -2.0) + t_4)) / t_2) + ((t_2 * ((x1 * (x1 * -6.0)) + ((t_5 / t_2) * ((x1 * (-6.0 + (t_5 * (2.0 / t_2)))) + ((x1 * x1) * 4.0))))) + (x1 * (2.0 + (x1 * (x1 + (t_5 * (3.0 / t_2)))))));
	} else {
		tmp = 6.0 * (x1 * t_0);
	}
	return tmp;
}
def code(x1, x2):
	t_0 = x1 * (x1 * x1)
	t_1 = x1 * (x1 * 3.0)
	t_2 = (x1 * x1) + 1.0
	t_3 = ((t_1 + (2.0 * x2)) - x1) / t_2
	t_4 = x1 * ((x1 * 3.0) + -1.0)
	t_5 = (2.0 * x2) + t_4
	tmp = 0
	if (x1 + ((x1 + (((t_2 * (((t_3 * (x1 * 2.0)) * (t_3 - 3.0)) + ((x1 * x1) * ((t_3 * 4.0) - 6.0)))) + (t_1 * t_3)) + t_0)) + (3.0 * (((t_1 - (2.0 * x2)) - x1) / t_2)))) <= math.inf:
		tmp = ((3.0 * ((x2 * -2.0) + t_4)) / t_2) + ((t_2 * ((x1 * (x1 * -6.0)) + ((t_5 / t_2) * ((x1 * (-6.0 + (t_5 * (2.0 / t_2)))) + ((x1 * x1) * 4.0))))) + (x1 * (2.0 + (x1 * (x1 + (t_5 * (3.0 / t_2)))))))
	else:
		tmp = 6.0 * (x1 * t_0)
	return tmp
function code(x1, x2)
	t_0 = Float64(x1 * Float64(x1 * x1))
	t_1 = Float64(x1 * Float64(x1 * 3.0))
	t_2 = Float64(Float64(x1 * x1) + 1.0)
	t_3 = Float64(Float64(Float64(t_1 + Float64(2.0 * x2)) - x1) / t_2)
	t_4 = Float64(x1 * Float64(Float64(x1 * 3.0) + -1.0))
	t_5 = Float64(Float64(2.0 * x2) + t_4)
	tmp = 0.0
	if (Float64(x1 + Float64(Float64(x1 + Float64(Float64(Float64(t_2 * Float64(Float64(Float64(t_3 * Float64(x1 * 2.0)) * Float64(t_3 - 3.0)) + Float64(Float64(x1 * x1) * Float64(Float64(t_3 * 4.0) - 6.0)))) + Float64(t_1 * t_3)) + t_0)) + Float64(3.0 * Float64(Float64(Float64(t_1 - Float64(2.0 * x2)) - x1) / t_2)))) <= Inf)
		tmp = Float64(Float64(Float64(3.0 * Float64(Float64(x2 * -2.0) + t_4)) / t_2) + Float64(Float64(t_2 * Float64(Float64(x1 * Float64(x1 * -6.0)) + Float64(Float64(t_5 / t_2) * Float64(Float64(x1 * Float64(-6.0 + Float64(t_5 * Float64(2.0 / t_2)))) + Float64(Float64(x1 * x1) * 4.0))))) + Float64(x1 * Float64(2.0 + Float64(x1 * Float64(x1 + Float64(t_5 * Float64(3.0 / t_2))))))));
	else
		tmp = Float64(6.0 * Float64(x1 * t_0));
	end
	return tmp
end
function tmp_2 = code(x1, x2)
	t_0 = x1 * (x1 * x1);
	t_1 = x1 * (x1 * 3.0);
	t_2 = (x1 * x1) + 1.0;
	t_3 = ((t_1 + (2.0 * x2)) - x1) / t_2;
	t_4 = x1 * ((x1 * 3.0) + -1.0);
	t_5 = (2.0 * x2) + t_4;
	tmp = 0.0;
	if ((x1 + ((x1 + (((t_2 * (((t_3 * (x1 * 2.0)) * (t_3 - 3.0)) + ((x1 * x1) * ((t_3 * 4.0) - 6.0)))) + (t_1 * t_3)) + t_0)) + (3.0 * (((t_1 - (2.0 * x2)) - x1) / t_2)))) <= Inf)
		tmp = ((3.0 * ((x2 * -2.0) + t_4)) / t_2) + ((t_2 * ((x1 * (x1 * -6.0)) + ((t_5 / t_2) * ((x1 * (-6.0 + (t_5 * (2.0 / t_2)))) + ((x1 * x1) * 4.0))))) + (x1 * (2.0 + (x1 * (x1 + (t_5 * (3.0 / t_2)))))));
	else
		tmp = 6.0 * (x1 * t_0);
	end
	tmp_2 = tmp;
end
code[x1_, x2_] := Block[{t$95$0 = N[(x1 * N[(x1 * x1), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(x1 * N[(x1 * 3.0), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(N[(x1 * x1), $MachinePrecision] + 1.0), $MachinePrecision]}, Block[{t$95$3 = N[(N[(N[(t$95$1 + N[(2.0 * x2), $MachinePrecision]), $MachinePrecision] - x1), $MachinePrecision] / t$95$2), $MachinePrecision]}, Block[{t$95$4 = N[(x1 * N[(N[(x1 * 3.0), $MachinePrecision] + -1.0), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$5 = N[(N[(2.0 * x2), $MachinePrecision] + t$95$4), $MachinePrecision]}, If[LessEqual[N[(x1 + N[(N[(x1 + N[(N[(N[(t$95$2 * N[(N[(N[(t$95$3 * N[(x1 * 2.0), $MachinePrecision]), $MachinePrecision] * N[(t$95$3 - 3.0), $MachinePrecision]), $MachinePrecision] + N[(N[(x1 * x1), $MachinePrecision] * N[(N[(t$95$3 * 4.0), $MachinePrecision] - 6.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(t$95$1 * t$95$3), $MachinePrecision]), $MachinePrecision] + t$95$0), $MachinePrecision]), $MachinePrecision] + N[(3.0 * N[(N[(N[(t$95$1 - N[(2.0 * x2), $MachinePrecision]), $MachinePrecision] - x1), $MachinePrecision] / t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], Infinity], N[(N[(N[(3.0 * N[(N[(x2 * -2.0), $MachinePrecision] + t$95$4), $MachinePrecision]), $MachinePrecision] / t$95$2), $MachinePrecision] + N[(N[(t$95$2 * N[(N[(x1 * N[(x1 * -6.0), $MachinePrecision]), $MachinePrecision] + N[(N[(t$95$5 / t$95$2), $MachinePrecision] * N[(N[(x1 * N[(-6.0 + N[(t$95$5 * N[(2.0 / t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(x1 * x1), $MachinePrecision] * 4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(x1 * N[(2.0 + N[(x1 * N[(x1 + N[(t$95$5 * N[(3.0 / t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(6.0 * N[(x1 * t$95$0), $MachinePrecision]), $MachinePrecision]]]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := x1 \cdot \left(x1 \cdot x1\right)\\
t_1 := x1 \cdot \left(x1 \cdot 3\right)\\
t_2 := x1 \cdot x1 + 1\\
t_3 := \frac{\left(t\_1 + 2 \cdot x2\right) - x1}{t\_2}\\
t_4 := x1 \cdot \left(x1 \cdot 3 + -1\right)\\
t_5 := 2 \cdot x2 + t\_4\\
\mathbf{if}\;x1 + \left(\left(x1 + \left(\left(t\_2 \cdot \left(\left(t\_3 \cdot \left(x1 \cdot 2\right)\right) \cdot \left(t\_3 - 3\right) + \left(x1 \cdot x1\right) \cdot \left(t\_3 \cdot 4 - 6\right)\right) + t\_1 \cdot t\_3\right) + t\_0\right)\right) + 3 \cdot \frac{\left(t\_1 - 2 \cdot x2\right) - x1}{t\_2}\right) \leq \infty:\\
\;\;\;\;\frac{3 \cdot \left(x2 \cdot -2 + t\_4\right)}{t\_2} + \left(t\_2 \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{t\_5}{t\_2} \cdot \left(x1 \cdot \left(-6 + t\_5 \cdot \frac{2}{t\_2}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + t\_5 \cdot \frac{3}{t\_2}\right)\right)\right)\\

\mathbf{else}:\\
\;\;\;\;6 \cdot \left(x1 \cdot t\_0\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if (+.f64 x1 (+.f64 (+.f64 (+.f64 (+.f64 (*.f64 (+.f64 (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) x1) (/.f64 (-.f64 (+.f64 (*.f64 (*.f64 #s(literal 3 binary64) x1) x1) (*.f64 #s(literal 2 binary64) x2)) x1) (+.f64 (*.f64 x1 x1) #s(literal 1 binary64)))) (-.f64 (/.f64 (-.f64 (+.f64 (*.f64 (*.f64 #s(literal 3 binary64) x1) x1) (*.f64 #s(literal 2 binary64) x2)) x1) (+.f64 (*.f64 x1 x1) #s(literal 1 binary64))) #s(literal 3 binary64))) (*.f64 (*.f64 x1 x1) (-.f64 (*.f64 #s(literal 4 binary64) (/.f64 (-.f64 (+.f64 (*.f64 (*.f64 #s(literal 3 binary64) x1) x1) (*.f64 #s(literal 2 binary64) x2)) x1) (+.f64 (*.f64 x1 x1) #s(literal 1 binary64)))) #s(literal 6 binary64)))) (+.f64 (*.f64 x1 x1) #s(literal 1 binary64))) (*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x1) x1) (/.f64 (-.f64 (+.f64 (*.f64 (*.f64 #s(literal 3 binary64) x1) x1) (*.f64 #s(literal 2 binary64) x2)) x1) (+.f64 (*.f64 x1 x1) #s(literal 1 binary64))))) (*.f64 (*.f64 x1 x1) x1)) x1) (*.f64 #s(literal 3 binary64) (/.f64 (-.f64 (-.f64 (*.f64 (*.f64 #s(literal 3 binary64) x1) x1) (*.f64 #s(literal 2 binary64) x2)) x1) (+.f64 (*.f64 x1 x1) #s(literal 1 binary64)))))) < +inf.0

    1. Initial program 99.4%

      \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
    2. Simplified99.5%

      \[\leadsto \color{blue}{\frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{3}{x1 \cdot x1 + 1}\right)\right)\right)} \]
    3. Add Preprocessing

    if +inf.0 < (+.f64 x1 (+.f64 (+.f64 (+.f64 (+.f64 (*.f64 (+.f64 (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) x1) (/.f64 (-.f64 (+.f64 (*.f64 (*.f64 #s(literal 3 binary64) x1) x1) (*.f64 #s(literal 2 binary64) x2)) x1) (+.f64 (*.f64 x1 x1) #s(literal 1 binary64)))) (-.f64 (/.f64 (-.f64 (+.f64 (*.f64 (*.f64 #s(literal 3 binary64) x1) x1) (*.f64 #s(literal 2 binary64) x2)) x1) (+.f64 (*.f64 x1 x1) #s(literal 1 binary64))) #s(literal 3 binary64))) (*.f64 (*.f64 x1 x1) (-.f64 (*.f64 #s(literal 4 binary64) (/.f64 (-.f64 (+.f64 (*.f64 (*.f64 #s(literal 3 binary64) x1) x1) (*.f64 #s(literal 2 binary64) x2)) x1) (+.f64 (*.f64 x1 x1) #s(literal 1 binary64)))) #s(literal 6 binary64)))) (+.f64 (*.f64 x1 x1) #s(literal 1 binary64))) (*.f64 (*.f64 (*.f64 #s(literal 3 binary64) x1) x1) (/.f64 (-.f64 (+.f64 (*.f64 (*.f64 #s(literal 3 binary64) x1) x1) (*.f64 #s(literal 2 binary64) x2)) x1) (+.f64 (*.f64 x1 x1) #s(literal 1 binary64))))) (*.f64 (*.f64 x1 x1) x1)) x1) (*.f64 #s(literal 3 binary64) (/.f64 (-.f64 (-.f64 (*.f64 (*.f64 #s(literal 3 binary64) x1) x1) (*.f64 #s(literal 2 binary64) x2)) x1) (+.f64 (*.f64 x1 x1) #s(literal 1 binary64))))))

    1. Initial program 0.0%

      \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
    2. Add Preprocessing
    3. Taylor expanded in x1 around inf

      \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
    4. Step-by-step derivation
      1. *-lowering-*.f64N/A

        \[\leadsto \mathsf{*.f64}\left(6, \color{blue}{\left({x1}^{4}\right)}\right) \]
      2. pow-lowering-pow.f6498.7%

        \[\leadsto \mathsf{*.f64}\left(6, \mathsf{pow.f64}\left(x1, \color{blue}{4}\right)\right) \]
    5. Simplified98.7%

      \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
    6. Step-by-step derivation
      1. metadata-evalN/A

        \[\leadsto 6 \cdot {x1}^{\left(2 + \color{blue}{2}\right)} \]
      2. pow-prod-upN/A

        \[\leadsto 6 \cdot \left({x1}^{2} \cdot \color{blue}{{x1}^{2}}\right) \]
      3. pow2N/A

        \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot {\color{blue}{x1}}^{2}\right) \]
      4. pow2N/A

        \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot \color{blue}{x1}\right)\right) \]
      5. *-commutativeN/A

        \[\leadsto \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right) \cdot \color{blue}{6} \]
      6. *-lowering-*.f64N/A

        \[\leadsto \mathsf{*.f64}\left(\left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right), \color{blue}{6}\right) \]
      7. associate-*l*N/A

        \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
      8. cube-multN/A

        \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot {x1}^{3}\right), 6\right) \]
      9. *-lowering-*.f64N/A

        \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left({x1}^{3}\right)\right), 6\right) \]
      10. cube-multN/A

        \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
      11. *-lowering-*.f64N/A

        \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \left(x1 \cdot x1\right)\right)\right), 6\right) \]
      12. *-lowering-*.f6498.7%

        \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, x1\right)\right)\right), 6\right) \]
    7. Applied egg-rr98.7%

      \[\leadsto \color{blue}{\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right) \cdot 6} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification99.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;x1 + \left(\left(x1 + \left(\left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(\frac{\left(x1 \cdot \left(x1 \cdot 3\right) + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot 2\right)\right) \cdot \left(\frac{\left(x1 \cdot \left(x1 \cdot 3\right) + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(\frac{\left(x1 \cdot \left(x1 \cdot 3\right) + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} \cdot 4 - 6\right)\right) + \left(x1 \cdot \left(x1 \cdot 3\right)\right) \cdot \frac{\left(x1 \cdot \left(x1 \cdot 3\right) + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + x1 \cdot \left(x1 \cdot x1\right)\right)\right) + 3 \cdot \frac{\left(x1 \cdot \left(x1 \cdot 3\right) - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \leq \infty:\\ \;\;\;\;\frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{3}{x1 \cdot x1 + 1}\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 2: 98.5% accurate, 1.1× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := 6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ t_1 := x1 \cdot x1 + 1\\ t_2 := x1 \cdot 3 + -1\\ t_3 := 2 \cdot x2 + x1 \cdot t\_2\\ \mathbf{if}\;x1 \leq -3.5 \cdot 10^{+63}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x1 \leq 1.1 \cdot 10^{+77}:\\ \;\;\;\;\frac{\left(x1 \cdot 3\right) \cdot t\_2 + x2 \cdot -6}{t\_1} + \left(t\_1 \cdot \left(\left(x1 \cdot x1\right) \cdot -6 + \frac{x1 \cdot \left(\left(-6 + \frac{t\_3}{\frac{t\_1}{2}}\right) + x1 \cdot 4\right)}{\frac{t\_1}{t\_3}}\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \frac{t\_3}{\frac{t\_1}{3}}\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
(FPCore (x1 x2)
 :precision binary64
 (let* ((t_0 (* 6.0 (* x1 (* x1 (* x1 x1)))))
        (t_1 (+ (* x1 x1) 1.0))
        (t_2 (+ (* x1 3.0) -1.0))
        (t_3 (+ (* 2.0 x2) (* x1 t_2))))
   (if (<= x1 -3.5e+63)
     t_0
     (if (<= x1 1.1e+77)
       (+
        (/ (+ (* (* x1 3.0) t_2) (* x2 -6.0)) t_1)
        (+
         (*
          t_1
          (+
           (* (* x1 x1) -6.0)
           (/ (* x1 (+ (+ -6.0 (/ t_3 (/ t_1 2.0))) (* x1 4.0))) (/ t_1 t_3))))
         (* x1 (+ 2.0 (* x1 (+ x1 (/ t_3 (/ t_1 3.0))))))))
       t_0))))
double code(double x1, double x2) {
	double t_0 = 6.0 * (x1 * (x1 * (x1 * x1)));
	double t_1 = (x1 * x1) + 1.0;
	double t_2 = (x1 * 3.0) + -1.0;
	double t_3 = (2.0 * x2) + (x1 * t_2);
	double tmp;
	if (x1 <= -3.5e+63) {
		tmp = t_0;
	} else if (x1 <= 1.1e+77) {
		tmp = ((((x1 * 3.0) * t_2) + (x2 * -6.0)) / t_1) + ((t_1 * (((x1 * x1) * -6.0) + ((x1 * ((-6.0 + (t_3 / (t_1 / 2.0))) + (x1 * 4.0))) / (t_1 / t_3)))) + (x1 * (2.0 + (x1 * (x1 + (t_3 / (t_1 / 3.0)))))));
	} else {
		tmp = t_0;
	}
	return tmp;
}
real(8) function code(x1, x2)
    real(8), intent (in) :: x1
    real(8), intent (in) :: x2
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: t_3
    real(8) :: tmp
    t_0 = 6.0d0 * (x1 * (x1 * (x1 * x1)))
    t_1 = (x1 * x1) + 1.0d0
    t_2 = (x1 * 3.0d0) + (-1.0d0)
    t_3 = (2.0d0 * x2) + (x1 * t_2)
    if (x1 <= (-3.5d+63)) then
        tmp = t_0
    else if (x1 <= 1.1d+77) then
        tmp = ((((x1 * 3.0d0) * t_2) + (x2 * (-6.0d0))) / t_1) + ((t_1 * (((x1 * x1) * (-6.0d0)) + ((x1 * (((-6.0d0) + (t_3 / (t_1 / 2.0d0))) + (x1 * 4.0d0))) / (t_1 / t_3)))) + (x1 * (2.0d0 + (x1 * (x1 + (t_3 / (t_1 / 3.0d0)))))))
    else
        tmp = t_0
    end if
    code = tmp
end function
public static double code(double x1, double x2) {
	double t_0 = 6.0 * (x1 * (x1 * (x1 * x1)));
	double t_1 = (x1 * x1) + 1.0;
	double t_2 = (x1 * 3.0) + -1.0;
	double t_3 = (2.0 * x2) + (x1 * t_2);
	double tmp;
	if (x1 <= -3.5e+63) {
		tmp = t_0;
	} else if (x1 <= 1.1e+77) {
		tmp = ((((x1 * 3.0) * t_2) + (x2 * -6.0)) / t_1) + ((t_1 * (((x1 * x1) * -6.0) + ((x1 * ((-6.0 + (t_3 / (t_1 / 2.0))) + (x1 * 4.0))) / (t_1 / t_3)))) + (x1 * (2.0 + (x1 * (x1 + (t_3 / (t_1 / 3.0)))))));
	} else {
		tmp = t_0;
	}
	return tmp;
}
def code(x1, x2):
	t_0 = 6.0 * (x1 * (x1 * (x1 * x1)))
	t_1 = (x1 * x1) + 1.0
	t_2 = (x1 * 3.0) + -1.0
	t_3 = (2.0 * x2) + (x1 * t_2)
	tmp = 0
	if x1 <= -3.5e+63:
		tmp = t_0
	elif x1 <= 1.1e+77:
		tmp = ((((x1 * 3.0) * t_2) + (x2 * -6.0)) / t_1) + ((t_1 * (((x1 * x1) * -6.0) + ((x1 * ((-6.0 + (t_3 / (t_1 / 2.0))) + (x1 * 4.0))) / (t_1 / t_3)))) + (x1 * (2.0 + (x1 * (x1 + (t_3 / (t_1 / 3.0)))))))
	else:
		tmp = t_0
	return tmp
function code(x1, x2)
	t_0 = Float64(6.0 * Float64(x1 * Float64(x1 * Float64(x1 * x1))))
	t_1 = Float64(Float64(x1 * x1) + 1.0)
	t_2 = Float64(Float64(x1 * 3.0) + -1.0)
	t_3 = Float64(Float64(2.0 * x2) + Float64(x1 * t_2))
	tmp = 0.0
	if (x1 <= -3.5e+63)
		tmp = t_0;
	elseif (x1 <= 1.1e+77)
		tmp = Float64(Float64(Float64(Float64(Float64(x1 * 3.0) * t_2) + Float64(x2 * -6.0)) / t_1) + Float64(Float64(t_1 * Float64(Float64(Float64(x1 * x1) * -6.0) + Float64(Float64(x1 * Float64(Float64(-6.0 + Float64(t_3 / Float64(t_1 / 2.0))) + Float64(x1 * 4.0))) / Float64(t_1 / t_3)))) + Float64(x1 * Float64(2.0 + Float64(x1 * Float64(x1 + Float64(t_3 / Float64(t_1 / 3.0))))))));
	else
		tmp = t_0;
	end
	return tmp
end
function tmp_2 = code(x1, x2)
	t_0 = 6.0 * (x1 * (x1 * (x1 * x1)));
	t_1 = (x1 * x1) + 1.0;
	t_2 = (x1 * 3.0) + -1.0;
	t_3 = (2.0 * x2) + (x1 * t_2);
	tmp = 0.0;
	if (x1 <= -3.5e+63)
		tmp = t_0;
	elseif (x1 <= 1.1e+77)
		tmp = ((((x1 * 3.0) * t_2) + (x2 * -6.0)) / t_1) + ((t_1 * (((x1 * x1) * -6.0) + ((x1 * ((-6.0 + (t_3 / (t_1 / 2.0))) + (x1 * 4.0))) / (t_1 / t_3)))) + (x1 * (2.0 + (x1 * (x1 + (t_3 / (t_1 / 3.0)))))));
	else
		tmp = t_0;
	end
	tmp_2 = tmp;
end
code[x1_, x2_] := Block[{t$95$0 = N[(6.0 * N[(x1 * N[(x1 * N[(x1 * x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(x1 * x1), $MachinePrecision] + 1.0), $MachinePrecision]}, Block[{t$95$2 = N[(N[(x1 * 3.0), $MachinePrecision] + -1.0), $MachinePrecision]}, Block[{t$95$3 = N[(N[(2.0 * x2), $MachinePrecision] + N[(x1 * t$95$2), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x1, -3.5e+63], t$95$0, If[LessEqual[x1, 1.1e+77], N[(N[(N[(N[(N[(x1 * 3.0), $MachinePrecision] * t$95$2), $MachinePrecision] + N[(x2 * -6.0), $MachinePrecision]), $MachinePrecision] / t$95$1), $MachinePrecision] + N[(N[(t$95$1 * N[(N[(N[(x1 * x1), $MachinePrecision] * -6.0), $MachinePrecision] + N[(N[(x1 * N[(N[(-6.0 + N[(t$95$3 / N[(t$95$1 / 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(x1 * 4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(t$95$1 / t$95$3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(x1 * N[(2.0 + N[(x1 * N[(x1 + N[(t$95$3 / N[(t$95$1 / 3.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := 6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\
t_1 := x1 \cdot x1 + 1\\
t_2 := x1 \cdot 3 + -1\\
t_3 := 2 \cdot x2 + x1 \cdot t\_2\\
\mathbf{if}\;x1 \leq -3.5 \cdot 10^{+63}:\\
\;\;\;\;t\_0\\

\mathbf{elif}\;x1 \leq 1.1 \cdot 10^{+77}:\\
\;\;\;\;\frac{\left(x1 \cdot 3\right) \cdot t\_2 + x2 \cdot -6}{t\_1} + \left(t\_1 \cdot \left(\left(x1 \cdot x1\right) \cdot -6 + \frac{x1 \cdot \left(\left(-6 + \frac{t\_3}{\frac{t\_1}{2}}\right) + x1 \cdot 4\right)}{\frac{t\_1}{t\_3}}\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \frac{t\_3}{\frac{t\_1}{3}}\right)\right)\right)\\

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


\end{array}
\end{array}
Derivation
  1. Split input into 2 regimes
  2. if x1 < -3.50000000000000029e63 or 1.1e77 < x1

    1. Initial program 22.2%

      \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
    2. Add Preprocessing
    3. Taylor expanded in x1 around inf

      \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
    4. Step-by-step derivation
      1. *-lowering-*.f64N/A

        \[\leadsto \mathsf{*.f64}\left(6, \color{blue}{\left({x1}^{4}\right)}\right) \]
      2. pow-lowering-pow.f6499.0%

        \[\leadsto \mathsf{*.f64}\left(6, \mathsf{pow.f64}\left(x1, \color{blue}{4}\right)\right) \]
    5. Simplified99.0%

      \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
    6. Step-by-step derivation
      1. metadata-evalN/A

        \[\leadsto 6 \cdot {x1}^{\left(2 + \color{blue}{2}\right)} \]
      2. pow-prod-upN/A

        \[\leadsto 6 \cdot \left({x1}^{2} \cdot \color{blue}{{x1}^{2}}\right) \]
      3. pow2N/A

        \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot {\color{blue}{x1}}^{2}\right) \]
      4. pow2N/A

        \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot \color{blue}{x1}\right)\right) \]
      5. *-commutativeN/A

        \[\leadsto \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right) \cdot \color{blue}{6} \]
      6. *-lowering-*.f64N/A

        \[\leadsto \mathsf{*.f64}\left(\left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right), \color{blue}{6}\right) \]
      7. associate-*l*N/A

        \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
      8. cube-multN/A

        \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot {x1}^{3}\right), 6\right) \]
      9. *-lowering-*.f64N/A

        \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left({x1}^{3}\right)\right), 6\right) \]
      10. cube-multN/A

        \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
      11. *-lowering-*.f64N/A

        \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \left(x1 \cdot x1\right)\right)\right), 6\right) \]
      12. *-lowering-*.f6499.0%

        \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, x1\right)\right)\right), 6\right) \]
    7. Applied egg-rr99.0%

      \[\leadsto \color{blue}{\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right) \cdot 6} \]

    if -3.50000000000000029e63 < x1 < 1.1e77

    1. Initial program 99.3%

      \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
    2. Simplified99.4%

      \[\leadsto \color{blue}{\frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{3}{x1 \cdot x1 + 1}\right)\right)\right)} \]
    3. Add Preprocessing
    4. Applied egg-rr99.3%

      \[\leadsto \color{blue}{\frac{\left(x1 \cdot 3\right) \cdot \left(x1 \cdot 3 + -1\right) + x2 \cdot -6}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot -6 + \frac{x1 \cdot \left(\left(-6 + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{\frac{x1 \cdot x1 + 1}{2}}\right) + x1 \cdot 4\right)}{\frac{x1 \cdot x1 + 1}{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}}\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{\frac{x1 \cdot x1 + 1}{3}}\right)\right)\right)} \]
  3. Recombined 2 regimes into one program.
  4. Final simplification99.2%

    \[\leadsto \begin{array}{l} \mathbf{if}\;x1 \leq -3.5 \cdot 10^{+63}:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{elif}\;x1 \leq 1.1 \cdot 10^{+77}:\\ \;\;\;\;\frac{\left(x1 \cdot 3\right) \cdot \left(x1 \cdot 3 + -1\right) + x2 \cdot -6}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot -6 + \frac{x1 \cdot \left(\left(-6 + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{\frac{x1 \cdot x1 + 1}{2}}\right) + x1 \cdot 4\right)}{\frac{x1 \cdot x1 + 1}{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}}\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{\frac{x1 \cdot x1 + 1}{3}}\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \end{array} \]
  5. Add Preprocessing

Alternative 3: 98.0% accurate, 1.2× speedup?

\[\begin{array}{l} \\ \begin{array}{l} t_0 := x1 \cdot \left(x1 \cdot 3 + -1\right)\\ t_1 := 2 \cdot x2 + t\_0\\ t_2 := x1 \cdot x1 + 1\\ \mathbf{if}\;x1 \leq -3.5 \cdot 10^{+63}:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{elif}\;x1 \leq 8 \cdot 10^{+56}:\\ \;\;\;\;\frac{3 \cdot \left(x2 \cdot -2 + t\_0\right)}{t\_2} + \left(t\_2 \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{t\_1}{t\_2} \cdot \left(x1 \cdot \left(-6 + t\_1 \cdot \frac{2}{t\_2}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 6 \cdot \frac{x2}{t\_2}\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;9 + \left(t\_2 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 + \frac{\frac{x2 \cdot 8 + -18}{x1} - 4}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right)\\ \end{array} \end{array} \]
(FPCore (x1 x2)
 :precision binary64
 (let* ((t_0 (* x1 (+ (* x1 3.0) -1.0)))
        (t_1 (+ (* 2.0 x2) t_0))
        (t_2 (+ (* x1 x1) 1.0)))
   (if (<= x1 -3.5e+63)
     (* 6.0 (* x1 (* x1 (* x1 x1))))
     (if (<= x1 8e+56)
       (+
        (/ (* 3.0 (+ (* x2 -2.0) t_0)) t_2)
        (+
         (*
          t_2
          (+
           (* x1 (* x1 -6.0))
           (*
            (/ t_1 t_2)
            (+ (* x1 (+ -6.0 (* t_1 (/ 2.0 t_2)))) (* (* x1 x1) 4.0)))))
         (* x1 (+ 2.0 (* x1 (+ x1 (* 6.0 (/ x2 t_2))))))))
       (+
        9.0
        (+
         (*
          t_2
          (* (* x1 x1) (+ 6.0 (/ (- (/ (+ (* x2 8.0) -18.0) x1) 4.0) x1))))
         (* x1 (+ 2.0 (* x1 (+ x1 9.0))))))))))
double code(double x1, double x2) {
	double t_0 = x1 * ((x1 * 3.0) + -1.0);
	double t_1 = (2.0 * x2) + t_0;
	double t_2 = (x1 * x1) + 1.0;
	double tmp;
	if (x1 <= -3.5e+63) {
		tmp = 6.0 * (x1 * (x1 * (x1 * x1)));
	} else if (x1 <= 8e+56) {
		tmp = ((3.0 * ((x2 * -2.0) + t_0)) / t_2) + ((t_2 * ((x1 * (x1 * -6.0)) + ((t_1 / t_2) * ((x1 * (-6.0 + (t_1 * (2.0 / t_2)))) + ((x1 * x1) * 4.0))))) + (x1 * (2.0 + (x1 * (x1 + (6.0 * (x2 / t_2)))))));
	} else {
		tmp = 9.0 + ((t_2 * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + (x1 * (2.0 + (x1 * (x1 + 9.0)))));
	}
	return tmp;
}
real(8) function code(x1, x2)
    real(8), intent (in) :: x1
    real(8), intent (in) :: x2
    real(8) :: t_0
    real(8) :: t_1
    real(8) :: t_2
    real(8) :: tmp
    t_0 = x1 * ((x1 * 3.0d0) + (-1.0d0))
    t_1 = (2.0d0 * x2) + t_0
    t_2 = (x1 * x1) + 1.0d0
    if (x1 <= (-3.5d+63)) then
        tmp = 6.0d0 * (x1 * (x1 * (x1 * x1)))
    else if (x1 <= 8d+56) then
        tmp = ((3.0d0 * ((x2 * (-2.0d0)) + t_0)) / t_2) + ((t_2 * ((x1 * (x1 * (-6.0d0))) + ((t_1 / t_2) * ((x1 * ((-6.0d0) + (t_1 * (2.0d0 / t_2)))) + ((x1 * x1) * 4.0d0))))) + (x1 * (2.0d0 + (x1 * (x1 + (6.0d0 * (x2 / t_2)))))))
    else
        tmp = 9.0d0 + ((t_2 * ((x1 * x1) * (6.0d0 + (((((x2 * 8.0d0) + (-18.0d0)) / x1) - 4.0d0) / x1)))) + (x1 * (2.0d0 + (x1 * (x1 + 9.0d0)))))
    end if
    code = tmp
end function
public static double code(double x1, double x2) {
	double t_0 = x1 * ((x1 * 3.0) + -1.0);
	double t_1 = (2.0 * x2) + t_0;
	double t_2 = (x1 * x1) + 1.0;
	double tmp;
	if (x1 <= -3.5e+63) {
		tmp = 6.0 * (x1 * (x1 * (x1 * x1)));
	} else if (x1 <= 8e+56) {
		tmp = ((3.0 * ((x2 * -2.0) + t_0)) / t_2) + ((t_2 * ((x1 * (x1 * -6.0)) + ((t_1 / t_2) * ((x1 * (-6.0 + (t_1 * (2.0 / t_2)))) + ((x1 * x1) * 4.0))))) + (x1 * (2.0 + (x1 * (x1 + (6.0 * (x2 / t_2)))))));
	} else {
		tmp = 9.0 + ((t_2 * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + (x1 * (2.0 + (x1 * (x1 + 9.0)))));
	}
	return tmp;
}
def code(x1, x2):
	t_0 = x1 * ((x1 * 3.0) + -1.0)
	t_1 = (2.0 * x2) + t_0
	t_2 = (x1 * x1) + 1.0
	tmp = 0
	if x1 <= -3.5e+63:
		tmp = 6.0 * (x1 * (x1 * (x1 * x1)))
	elif x1 <= 8e+56:
		tmp = ((3.0 * ((x2 * -2.0) + t_0)) / t_2) + ((t_2 * ((x1 * (x1 * -6.0)) + ((t_1 / t_2) * ((x1 * (-6.0 + (t_1 * (2.0 / t_2)))) + ((x1 * x1) * 4.0))))) + (x1 * (2.0 + (x1 * (x1 + (6.0 * (x2 / t_2)))))))
	else:
		tmp = 9.0 + ((t_2 * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + (x1 * (2.0 + (x1 * (x1 + 9.0)))))
	return tmp
function code(x1, x2)
	t_0 = Float64(x1 * Float64(Float64(x1 * 3.0) + -1.0))
	t_1 = Float64(Float64(2.0 * x2) + t_0)
	t_2 = Float64(Float64(x1 * x1) + 1.0)
	tmp = 0.0
	if (x1 <= -3.5e+63)
		tmp = Float64(6.0 * Float64(x1 * Float64(x1 * Float64(x1 * x1))));
	elseif (x1 <= 8e+56)
		tmp = Float64(Float64(Float64(3.0 * Float64(Float64(x2 * -2.0) + t_0)) / t_2) + Float64(Float64(t_2 * Float64(Float64(x1 * Float64(x1 * -6.0)) + Float64(Float64(t_1 / t_2) * Float64(Float64(x1 * Float64(-6.0 + Float64(t_1 * Float64(2.0 / t_2)))) + Float64(Float64(x1 * x1) * 4.0))))) + Float64(x1 * Float64(2.0 + Float64(x1 * Float64(x1 + Float64(6.0 * Float64(x2 / t_2))))))));
	else
		tmp = Float64(9.0 + Float64(Float64(t_2 * Float64(Float64(x1 * x1) * Float64(6.0 + Float64(Float64(Float64(Float64(Float64(x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + Float64(x1 * Float64(2.0 + Float64(x1 * Float64(x1 + 9.0))))));
	end
	return tmp
end
function tmp_2 = code(x1, x2)
	t_0 = x1 * ((x1 * 3.0) + -1.0);
	t_1 = (2.0 * x2) + t_0;
	t_2 = (x1 * x1) + 1.0;
	tmp = 0.0;
	if (x1 <= -3.5e+63)
		tmp = 6.0 * (x1 * (x1 * (x1 * x1)));
	elseif (x1 <= 8e+56)
		tmp = ((3.0 * ((x2 * -2.0) + t_0)) / t_2) + ((t_2 * ((x1 * (x1 * -6.0)) + ((t_1 / t_2) * ((x1 * (-6.0 + (t_1 * (2.0 / t_2)))) + ((x1 * x1) * 4.0))))) + (x1 * (2.0 + (x1 * (x1 + (6.0 * (x2 / t_2)))))));
	else
		tmp = 9.0 + ((t_2 * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + (x1 * (2.0 + (x1 * (x1 + 9.0)))));
	end
	tmp_2 = tmp;
end
code[x1_, x2_] := Block[{t$95$0 = N[(x1 * N[(N[(x1 * 3.0), $MachinePrecision] + -1.0), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(2.0 * x2), $MachinePrecision] + t$95$0), $MachinePrecision]}, Block[{t$95$2 = N[(N[(x1 * x1), $MachinePrecision] + 1.0), $MachinePrecision]}, If[LessEqual[x1, -3.5e+63], N[(6.0 * N[(x1 * N[(x1 * N[(x1 * x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x1, 8e+56], N[(N[(N[(3.0 * N[(N[(x2 * -2.0), $MachinePrecision] + t$95$0), $MachinePrecision]), $MachinePrecision] / t$95$2), $MachinePrecision] + N[(N[(t$95$2 * N[(N[(x1 * N[(x1 * -6.0), $MachinePrecision]), $MachinePrecision] + N[(N[(t$95$1 / t$95$2), $MachinePrecision] * N[(N[(x1 * N[(-6.0 + N[(t$95$1 * N[(2.0 / t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(x1 * x1), $MachinePrecision] * 4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(x1 * N[(2.0 + N[(x1 * N[(x1 + N[(6.0 * N[(x2 / t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(9.0 + N[(N[(t$95$2 * N[(N[(x1 * x1), $MachinePrecision] * N[(6.0 + N[(N[(N[(N[(N[(x2 * 8.0), $MachinePrecision] + -18.0), $MachinePrecision] / x1), $MachinePrecision] - 4.0), $MachinePrecision] / x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(x1 * N[(2.0 + N[(x1 * N[(x1 + 9.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]]
\begin{array}{l}

\\
\begin{array}{l}
t_0 := x1 \cdot \left(x1 \cdot 3 + -1\right)\\
t_1 := 2 \cdot x2 + t\_0\\
t_2 := x1 \cdot x1 + 1\\
\mathbf{if}\;x1 \leq -3.5 \cdot 10^{+63}:\\
\;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\

\mathbf{elif}\;x1 \leq 8 \cdot 10^{+56}:\\
\;\;\;\;\frac{3 \cdot \left(x2 \cdot -2 + t\_0\right)}{t\_2} + \left(t\_2 \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{t\_1}{t\_2} \cdot \left(x1 \cdot \left(-6 + t\_1 \cdot \frac{2}{t\_2}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 6 \cdot \frac{x2}{t\_2}\right)\right)\right)\\

\mathbf{else}:\\
\;\;\;\;9 + \left(t\_2 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 + \frac{\frac{x2 \cdot 8 + -18}{x1} - 4}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right)\\


\end{array}
\end{array}
Derivation
  1. Split input into 3 regimes
  2. if x1 < -3.50000000000000029e63

    1. Initial program 18.8%

      \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
    2. Add Preprocessing
    3. Taylor expanded in x1 around inf

      \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
    4. Step-by-step derivation
      1. *-lowering-*.f64N/A

        \[\leadsto \mathsf{*.f64}\left(6, \color{blue}{\left({x1}^{4}\right)}\right) \]
      2. pow-lowering-pow.f64100.0%

        \[\leadsto \mathsf{*.f64}\left(6, \mathsf{pow.f64}\left(x1, \color{blue}{4}\right)\right) \]
    5. Simplified100.0%

      \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
    6. Step-by-step derivation
      1. metadata-evalN/A

        \[\leadsto 6 \cdot {x1}^{\left(2 + \color{blue}{2}\right)} \]
      2. pow-prod-upN/A

        \[\leadsto 6 \cdot \left({x1}^{2} \cdot \color{blue}{{x1}^{2}}\right) \]
      3. pow2N/A

        \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot {\color{blue}{x1}}^{2}\right) \]
      4. pow2N/A

        \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot \color{blue}{x1}\right)\right) \]
      5. *-commutativeN/A

        \[\leadsto \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right) \cdot \color{blue}{6} \]
      6. *-lowering-*.f64N/A

        \[\leadsto \mathsf{*.f64}\left(\left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right), \color{blue}{6}\right) \]
      7. associate-*l*N/A

        \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
      8. cube-multN/A

        \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot {x1}^{3}\right), 6\right) \]
      9. *-lowering-*.f64N/A

        \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left({x1}^{3}\right)\right), 6\right) \]
      10. cube-multN/A

        \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
      11. *-lowering-*.f64N/A

        \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \left(x1 \cdot x1\right)\right)\right), 6\right) \]
      12. *-lowering-*.f64100.0%

        \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, x1\right)\right)\right), 6\right) \]
    7. Applied egg-rr100.0%

      \[\leadsto \color{blue}{\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right) \cdot 6} \]

    if -3.50000000000000029e63 < x1 < 8.00000000000000074e56

    1. Initial program 99.3%

      \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
    2. Simplified99.4%

      \[\leadsto \color{blue}{\frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{3}{x1 \cdot x1 + 1}\right)\right)\right)} \]
    3. Add Preprocessing
    4. Taylor expanded in x2 around inf

      \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, -6\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(-6, \mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{/.f64}\left(2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 4\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, \color{blue}{\left(6 \cdot \frac{x2}{1 + {x1}^{2}}\right)}\right)\right)\right)\right)\right)\right) \]
    5. Step-by-step derivation
      1. *-lowering-*.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, -6\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(-6, \mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{/.f64}\left(2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 4\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, \mathsf{*.f64}\left(6, \color{blue}{\left(\frac{x2}{1 + {x1}^{2}}\right)}\right)\right)\right)\right)\right)\right)\right) \]
      2. /-lowering-/.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, -6\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(-6, \mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{/.f64}\left(2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 4\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, \mathsf{*.f64}\left(6, \mathsf{/.f64}\left(x2, \color{blue}{\left(1 + {x1}^{2}\right)}\right)\right)\right)\right)\right)\right)\right)\right) \]
      3. +-lowering-+.f64N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, -6\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(-6, \mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{/.f64}\left(2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 4\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, \mathsf{*.f64}\left(6, \mathsf{/.f64}\left(x2, \mathsf{+.f64}\left(1, \color{blue}{\left({x1}^{2}\right)}\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      4. unpow2N/A

        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, -6\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(-6, \mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{/.f64}\left(2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 4\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, \mathsf{*.f64}\left(6, \mathsf{/.f64}\left(x2, \mathsf{+.f64}\left(1, \left(x1 \cdot \color{blue}{x1}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
      5. *-lowering-*.f6499.2%

        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, -6\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(-6, \mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{/.f64}\left(2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 4\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, \mathsf{*.f64}\left(6, \mathsf{/.f64}\left(x2, \mathsf{+.f64}\left(1, \mathsf{*.f64}\left(x1, \color{blue}{x1}\right)\right)\right)\right)\right)\right)\right)\right)\right)\right) \]
    6. Simplified99.2%

      \[\leadsto \frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \color{blue}{6 \cdot \frac{x2}{1 + x1 \cdot x1}}\right)\right)\right) \]

    if 8.00000000000000074e56 < x1

    1. Initial program 34.5%

      \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
    2. Simplified34.5%

      \[\leadsto \color{blue}{\frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{3}{x1 \cdot x1 + 1}\right)\right)\right)} \]
    3. Add Preprocessing
    4. Taylor expanded in x1 around inf

      \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, -6\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(-6, \mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{/.f64}\left(2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 4\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, \color{blue}{9}\right)\right)\right)\right)\right)\right) \]
    5. Step-by-step derivation
      1. Simplified34.5%

        \[\leadsto \frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \color{blue}{9}\right)\right)\right) \]
      2. Taylor expanded in x1 around -inf

        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \color{blue}{\left({x1}^{2} \cdot \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)}\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
      3. Step-by-step derivation
        1. *-lowering-*.f64N/A

          \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\left({x1}^{2}\right), \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
        2. unpow2N/A

          \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\left(x1 \cdot x1\right), \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
        3. *-lowering-*.f64N/A

          \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
        4. mul-1-negN/A

          \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(6 + \left(\mathsf{neg}\left(\frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
        5. unsub-negN/A

          \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(6 - \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
        6. --lowering--.f64N/A

          \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \left(\frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
        7. /-lowering-/.f64N/A

          \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\left(4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
        8. mul-1-negN/A

          \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\left(4 + \left(\mathsf{neg}\left(\frac{8 \cdot x2 - 18}{x1}\right)\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
        9. unsub-negN/A

          \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\left(4 - \frac{8 \cdot x2 - 18}{x1}\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
        10. --lowering--.f64N/A

          \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \left(\frac{8 \cdot x2 - 18}{x1}\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
        11. /-lowering-/.f64N/A

          \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\left(8 \cdot x2 - 18\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
        12. sub-negN/A

          \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\left(8 \cdot x2 + \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
        13. +-lowering-+.f64N/A

          \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\left(8 \cdot x2\right), \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
        14. *-commutativeN/A

          \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\left(x2 \cdot 8\right), \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
        15. *-lowering-*.f64N/A

          \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 8\right), \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
        16. metadata-eval34.5%

          \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 8\right), -18\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
      4. Simplified34.5%

        \[\leadsto \frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \color{blue}{\left(\left(x1 \cdot x1\right) \cdot \left(6 - \frac{4 - \frac{x2 \cdot 8 + -18}{x1}}{x1}\right)\right)} + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right) \]
      5. Taylor expanded in x1 around inf

        \[\leadsto \mathsf{+.f64}\left(\color{blue}{9}, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 8\right), -18\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
      6. Step-by-step derivation
        1. Simplified98.0%

          \[\leadsto \color{blue}{9} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 - \frac{4 - \frac{x2 \cdot 8 + -18}{x1}}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right) \]
      7. Recombined 3 regimes into one program.
      8. Final simplification99.1%

        \[\leadsto \begin{array}{l} \mathbf{if}\;x1 \leq -3.5 \cdot 10^{+63}:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{elif}\;x1 \leq 8 \cdot 10^{+56}:\\ \;\;\;\;\frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 6 \cdot \frac{x2}{x1 \cdot x1 + 1}\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;9 + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 + \frac{\frac{x2 \cdot 8 + -18}{x1} - 4}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right)\\ \end{array} \]
      9. Add Preprocessing

      Alternative 4: 97.8% accurate, 1.3× speedup?

      \[\begin{array}{l} \\ \begin{array}{l} t_0 := x1 \cdot \left(x1 \cdot 3 + -1\right)\\ t_1 := 2 \cdot x2 + t\_0\\ t_2 := x1 \cdot x1 + 1\\ t_3 := x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\\ \mathbf{if}\;x1 \leq -3.5 \cdot 10^{+63}:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{elif}\;x1 \leq 10^{+55}:\\ \;\;\;\;\frac{3 \cdot \left(x2 \cdot -2 + t\_0\right)}{t\_2} + \left(t\_2 \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{t\_1}{t\_2} \cdot \left(x1 \cdot \left(-6 + t\_1 \cdot \frac{2}{t\_2}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + t\_3\right)\\ \mathbf{else}:\\ \;\;\;\;9 + \left(t\_2 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 + \frac{\frac{x2 \cdot 8 + -18}{x1} - 4}{x1}\right)\right) + t\_3\right)\\ \end{array} \end{array} \]
      (FPCore (x1 x2)
       :precision binary64
       (let* ((t_0 (* x1 (+ (* x1 3.0) -1.0)))
              (t_1 (+ (* 2.0 x2) t_0))
              (t_2 (+ (* x1 x1) 1.0))
              (t_3 (* x1 (+ 2.0 (* x1 (+ x1 9.0))))))
         (if (<= x1 -3.5e+63)
           (* 6.0 (* x1 (* x1 (* x1 x1))))
           (if (<= x1 1e+55)
             (+
              (/ (* 3.0 (+ (* x2 -2.0) t_0)) t_2)
              (+
               (*
                t_2
                (+
                 (* x1 (* x1 -6.0))
                 (*
                  (/ t_1 t_2)
                  (+ (* x1 (+ -6.0 (* t_1 (/ 2.0 t_2)))) (* (* x1 x1) 4.0)))))
               t_3))
             (+
              9.0
              (+
               (*
                t_2
                (* (* x1 x1) (+ 6.0 (/ (- (/ (+ (* x2 8.0) -18.0) x1) 4.0) x1))))
               t_3))))))
      double code(double x1, double x2) {
      	double t_0 = x1 * ((x1 * 3.0) + -1.0);
      	double t_1 = (2.0 * x2) + t_0;
      	double t_2 = (x1 * x1) + 1.0;
      	double t_3 = x1 * (2.0 + (x1 * (x1 + 9.0)));
      	double tmp;
      	if (x1 <= -3.5e+63) {
      		tmp = 6.0 * (x1 * (x1 * (x1 * x1)));
      	} else if (x1 <= 1e+55) {
      		tmp = ((3.0 * ((x2 * -2.0) + t_0)) / t_2) + ((t_2 * ((x1 * (x1 * -6.0)) + ((t_1 / t_2) * ((x1 * (-6.0 + (t_1 * (2.0 / t_2)))) + ((x1 * x1) * 4.0))))) + t_3);
      	} else {
      		tmp = 9.0 + ((t_2 * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + t_3);
      	}
      	return tmp;
      }
      
      real(8) function code(x1, x2)
          real(8), intent (in) :: x1
          real(8), intent (in) :: x2
          real(8) :: t_0
          real(8) :: t_1
          real(8) :: t_2
          real(8) :: t_3
          real(8) :: tmp
          t_0 = x1 * ((x1 * 3.0d0) + (-1.0d0))
          t_1 = (2.0d0 * x2) + t_0
          t_2 = (x1 * x1) + 1.0d0
          t_3 = x1 * (2.0d0 + (x1 * (x1 + 9.0d0)))
          if (x1 <= (-3.5d+63)) then
              tmp = 6.0d0 * (x1 * (x1 * (x1 * x1)))
          else if (x1 <= 1d+55) then
              tmp = ((3.0d0 * ((x2 * (-2.0d0)) + t_0)) / t_2) + ((t_2 * ((x1 * (x1 * (-6.0d0))) + ((t_1 / t_2) * ((x1 * ((-6.0d0) + (t_1 * (2.0d0 / t_2)))) + ((x1 * x1) * 4.0d0))))) + t_3)
          else
              tmp = 9.0d0 + ((t_2 * ((x1 * x1) * (6.0d0 + (((((x2 * 8.0d0) + (-18.0d0)) / x1) - 4.0d0) / x1)))) + t_3)
          end if
          code = tmp
      end function
      
      public static double code(double x1, double x2) {
      	double t_0 = x1 * ((x1 * 3.0) + -1.0);
      	double t_1 = (2.0 * x2) + t_0;
      	double t_2 = (x1 * x1) + 1.0;
      	double t_3 = x1 * (2.0 + (x1 * (x1 + 9.0)));
      	double tmp;
      	if (x1 <= -3.5e+63) {
      		tmp = 6.0 * (x1 * (x1 * (x1 * x1)));
      	} else if (x1 <= 1e+55) {
      		tmp = ((3.0 * ((x2 * -2.0) + t_0)) / t_2) + ((t_2 * ((x1 * (x1 * -6.0)) + ((t_1 / t_2) * ((x1 * (-6.0 + (t_1 * (2.0 / t_2)))) + ((x1 * x1) * 4.0))))) + t_3);
      	} else {
      		tmp = 9.0 + ((t_2 * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + t_3);
      	}
      	return tmp;
      }
      
      def code(x1, x2):
      	t_0 = x1 * ((x1 * 3.0) + -1.0)
      	t_1 = (2.0 * x2) + t_0
      	t_2 = (x1 * x1) + 1.0
      	t_3 = x1 * (2.0 + (x1 * (x1 + 9.0)))
      	tmp = 0
      	if x1 <= -3.5e+63:
      		tmp = 6.0 * (x1 * (x1 * (x1 * x1)))
      	elif x1 <= 1e+55:
      		tmp = ((3.0 * ((x2 * -2.0) + t_0)) / t_2) + ((t_2 * ((x1 * (x1 * -6.0)) + ((t_1 / t_2) * ((x1 * (-6.0 + (t_1 * (2.0 / t_2)))) + ((x1 * x1) * 4.0))))) + t_3)
      	else:
      		tmp = 9.0 + ((t_2 * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + t_3)
      	return tmp
      
      function code(x1, x2)
      	t_0 = Float64(x1 * Float64(Float64(x1 * 3.0) + -1.0))
      	t_1 = Float64(Float64(2.0 * x2) + t_0)
      	t_2 = Float64(Float64(x1 * x1) + 1.0)
      	t_3 = Float64(x1 * Float64(2.0 + Float64(x1 * Float64(x1 + 9.0))))
      	tmp = 0.0
      	if (x1 <= -3.5e+63)
      		tmp = Float64(6.0 * Float64(x1 * Float64(x1 * Float64(x1 * x1))));
      	elseif (x1 <= 1e+55)
      		tmp = Float64(Float64(Float64(3.0 * Float64(Float64(x2 * -2.0) + t_0)) / t_2) + Float64(Float64(t_2 * Float64(Float64(x1 * Float64(x1 * -6.0)) + Float64(Float64(t_1 / t_2) * Float64(Float64(x1 * Float64(-6.0 + Float64(t_1 * Float64(2.0 / t_2)))) + Float64(Float64(x1 * x1) * 4.0))))) + t_3));
      	else
      		tmp = Float64(9.0 + Float64(Float64(t_2 * Float64(Float64(x1 * x1) * Float64(6.0 + Float64(Float64(Float64(Float64(Float64(x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + t_3));
      	end
      	return tmp
      end
      
      function tmp_2 = code(x1, x2)
      	t_0 = x1 * ((x1 * 3.0) + -1.0);
      	t_1 = (2.0 * x2) + t_0;
      	t_2 = (x1 * x1) + 1.0;
      	t_3 = x1 * (2.0 + (x1 * (x1 + 9.0)));
      	tmp = 0.0;
      	if (x1 <= -3.5e+63)
      		tmp = 6.0 * (x1 * (x1 * (x1 * x1)));
      	elseif (x1 <= 1e+55)
      		tmp = ((3.0 * ((x2 * -2.0) + t_0)) / t_2) + ((t_2 * ((x1 * (x1 * -6.0)) + ((t_1 / t_2) * ((x1 * (-6.0 + (t_1 * (2.0 / t_2)))) + ((x1 * x1) * 4.0))))) + t_3);
      	else
      		tmp = 9.0 + ((t_2 * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + t_3);
      	end
      	tmp_2 = tmp;
      end
      
      code[x1_, x2_] := Block[{t$95$0 = N[(x1 * N[(N[(x1 * 3.0), $MachinePrecision] + -1.0), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(2.0 * x2), $MachinePrecision] + t$95$0), $MachinePrecision]}, Block[{t$95$2 = N[(N[(x1 * x1), $MachinePrecision] + 1.0), $MachinePrecision]}, Block[{t$95$3 = N[(x1 * N[(2.0 + N[(x1 * N[(x1 + 9.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x1, -3.5e+63], N[(6.0 * N[(x1 * N[(x1 * N[(x1 * x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x1, 1e+55], N[(N[(N[(3.0 * N[(N[(x2 * -2.0), $MachinePrecision] + t$95$0), $MachinePrecision]), $MachinePrecision] / t$95$2), $MachinePrecision] + N[(N[(t$95$2 * N[(N[(x1 * N[(x1 * -6.0), $MachinePrecision]), $MachinePrecision] + N[(N[(t$95$1 / t$95$2), $MachinePrecision] * N[(N[(x1 * N[(-6.0 + N[(t$95$1 * N[(2.0 / t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(x1 * x1), $MachinePrecision] * 4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$3), $MachinePrecision]), $MachinePrecision], N[(9.0 + N[(N[(t$95$2 * N[(N[(x1 * x1), $MachinePrecision] * N[(6.0 + N[(N[(N[(N[(N[(x2 * 8.0), $MachinePrecision] + -18.0), $MachinePrecision] / x1), $MachinePrecision] - 4.0), $MachinePrecision] / x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$3), $MachinePrecision]), $MachinePrecision]]]]]]]
      
      \begin{array}{l}
      
      \\
      \begin{array}{l}
      t_0 := x1 \cdot \left(x1 \cdot 3 + -1\right)\\
      t_1 := 2 \cdot x2 + t\_0\\
      t_2 := x1 \cdot x1 + 1\\
      t_3 := x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\\
      \mathbf{if}\;x1 \leq -3.5 \cdot 10^{+63}:\\
      \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\
      
      \mathbf{elif}\;x1 \leq 10^{+55}:\\
      \;\;\;\;\frac{3 \cdot \left(x2 \cdot -2 + t\_0\right)}{t\_2} + \left(t\_2 \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{t\_1}{t\_2} \cdot \left(x1 \cdot \left(-6 + t\_1 \cdot \frac{2}{t\_2}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + t\_3\right)\\
      
      \mathbf{else}:\\
      \;\;\;\;9 + \left(t\_2 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 + \frac{\frac{x2 \cdot 8 + -18}{x1} - 4}{x1}\right)\right) + t\_3\right)\\
      
      
      \end{array}
      \end{array}
      
      Derivation
      1. Split input into 3 regimes
      2. if x1 < -3.50000000000000029e63

        1. Initial program 18.8%

          \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
        2. Add Preprocessing
        3. Taylor expanded in x1 around inf

          \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
        4. Step-by-step derivation
          1. *-lowering-*.f64N/A

            \[\leadsto \mathsf{*.f64}\left(6, \color{blue}{\left({x1}^{4}\right)}\right) \]
          2. pow-lowering-pow.f64100.0%

            \[\leadsto \mathsf{*.f64}\left(6, \mathsf{pow.f64}\left(x1, \color{blue}{4}\right)\right) \]
        5. Simplified100.0%

          \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
        6. Step-by-step derivation
          1. metadata-evalN/A

            \[\leadsto 6 \cdot {x1}^{\left(2 + \color{blue}{2}\right)} \]
          2. pow-prod-upN/A

            \[\leadsto 6 \cdot \left({x1}^{2} \cdot \color{blue}{{x1}^{2}}\right) \]
          3. pow2N/A

            \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot {\color{blue}{x1}}^{2}\right) \]
          4. pow2N/A

            \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot \color{blue}{x1}\right)\right) \]
          5. *-commutativeN/A

            \[\leadsto \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right) \cdot \color{blue}{6} \]
          6. *-lowering-*.f64N/A

            \[\leadsto \mathsf{*.f64}\left(\left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right), \color{blue}{6}\right) \]
          7. associate-*l*N/A

            \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
          8. cube-multN/A

            \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot {x1}^{3}\right), 6\right) \]
          9. *-lowering-*.f64N/A

            \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left({x1}^{3}\right)\right), 6\right) \]
          10. cube-multN/A

            \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
          11. *-lowering-*.f64N/A

            \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \left(x1 \cdot x1\right)\right)\right), 6\right) \]
          12. *-lowering-*.f64100.0%

            \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, x1\right)\right)\right), 6\right) \]
        7. Applied egg-rr100.0%

          \[\leadsto \color{blue}{\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right) \cdot 6} \]

        if -3.50000000000000029e63 < x1 < 1.00000000000000001e55

        1. Initial program 99.3%

          \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
        2. Simplified99.4%

          \[\leadsto \color{blue}{\frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{3}{x1 \cdot x1 + 1}\right)\right)\right)} \]
        3. Add Preprocessing
        4. Taylor expanded in x1 around inf

          \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, -6\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(-6, \mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{/.f64}\left(2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 4\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, \color{blue}{9}\right)\right)\right)\right)\right)\right) \]
        5. Step-by-step derivation
          1. Simplified98.5%

            \[\leadsto \frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \color{blue}{9}\right)\right)\right) \]

          if 1.00000000000000001e55 < x1

          1. Initial program 34.5%

            \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
          2. Simplified34.5%

            \[\leadsto \color{blue}{\frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{3}{x1 \cdot x1 + 1}\right)\right)\right)} \]
          3. Add Preprocessing
          4. Taylor expanded in x1 around inf

            \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, -6\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(-6, \mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{/.f64}\left(2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 4\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, \color{blue}{9}\right)\right)\right)\right)\right)\right) \]
          5. Step-by-step derivation
            1. Simplified34.5%

              \[\leadsto \frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \color{blue}{9}\right)\right)\right) \]
            2. Taylor expanded in x1 around -inf

              \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \color{blue}{\left({x1}^{2} \cdot \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)}\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
            3. Step-by-step derivation
              1. *-lowering-*.f64N/A

                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\left({x1}^{2}\right), \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
              2. unpow2N/A

                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\left(x1 \cdot x1\right), \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
              3. *-lowering-*.f64N/A

                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
              4. mul-1-negN/A

                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(6 + \left(\mathsf{neg}\left(\frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
              5. unsub-negN/A

                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(6 - \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
              6. --lowering--.f64N/A

                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \left(\frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
              7. /-lowering-/.f64N/A

                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\left(4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
              8. mul-1-negN/A

                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\left(4 + \left(\mathsf{neg}\left(\frac{8 \cdot x2 - 18}{x1}\right)\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
              9. unsub-negN/A

                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\left(4 - \frac{8 \cdot x2 - 18}{x1}\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
              10. --lowering--.f64N/A

                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \left(\frac{8 \cdot x2 - 18}{x1}\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
              11. /-lowering-/.f64N/A

                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\left(8 \cdot x2 - 18\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
              12. sub-negN/A

                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\left(8 \cdot x2 + \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
              13. +-lowering-+.f64N/A

                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\left(8 \cdot x2\right), \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
              14. *-commutativeN/A

                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\left(x2 \cdot 8\right), \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
              15. *-lowering-*.f64N/A

                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 8\right), \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
              16. metadata-eval34.5%

                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 8\right), -18\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
            4. Simplified34.5%

              \[\leadsto \frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \color{blue}{\left(\left(x1 \cdot x1\right) \cdot \left(6 - \frac{4 - \frac{x2 \cdot 8 + -18}{x1}}{x1}\right)\right)} + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right) \]
            5. Taylor expanded in x1 around inf

              \[\leadsto \mathsf{+.f64}\left(\color{blue}{9}, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 8\right), -18\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
            6. Step-by-step derivation
              1. Simplified98.0%

                \[\leadsto \color{blue}{9} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 - \frac{4 - \frac{x2 \cdot 8 + -18}{x1}}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right) \]
            7. Recombined 3 regimes into one program.
            8. Final simplification98.7%

              \[\leadsto \begin{array}{l} \mathbf{if}\;x1 \leq -3.5 \cdot 10^{+63}:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{elif}\;x1 \leq 10^{+55}:\\ \;\;\;\;\frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;9 + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 + \frac{\frac{x2 \cdot 8 + -18}{x1} - 4}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right)\\ \end{array} \]
            9. Add Preprocessing

            Alternative 5: 96.2% accurate, 1.6× speedup?

            \[\begin{array}{l} \\ \begin{array}{l} t_0 := x1 \cdot x1 + 1\\ t_1 := 2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\\ t_2 := x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\\ \mathbf{if}\;x1 \leq -3.5 \cdot 10^{+63}:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{elif}\;x1 \leq -7.6 \cdot 10^{-5}:\\ \;\;\;\;9 + \left(t\_0 \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{t\_1}{t\_0} \cdot \left(x1 \cdot \left(-6 + t\_1 \cdot \frac{2}{t\_0}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + t\_2\right)\\ \mathbf{elif}\;x1 \leq 2850000000000:\\ \;\;\;\;\left(x1 \cdot 2 + \frac{3 \cdot \left(3 \cdot \left(x1 \cdot x1\right) - x1\right)}{t\_0}\right) + x2 \cdot \left(x1 \cdot -12 + \left(8 \cdot \left(x1 \cdot x2\right) + \frac{-6}{t\_0}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;9 + \left(t\_0 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 + \frac{\frac{x2 \cdot 8 + -18}{x1} - 4}{x1}\right)\right) + t\_2\right)\\ \end{array} \end{array} \]
            (FPCore (x1 x2)
             :precision binary64
             (let* ((t_0 (+ (* x1 x1) 1.0))
                    (t_1 (+ (* 2.0 x2) (* x1 (+ (* x1 3.0) -1.0))))
                    (t_2 (* x1 (+ 2.0 (* x1 (+ x1 9.0))))))
               (if (<= x1 -3.5e+63)
                 (* 6.0 (* x1 (* x1 (* x1 x1))))
                 (if (<= x1 -7.6e-5)
                   (+
                    9.0
                    (+
                     (*
                      t_0
                      (+
                       (* x1 (* x1 -6.0))
                       (*
                        (/ t_1 t_0)
                        (+ (* x1 (+ -6.0 (* t_1 (/ 2.0 t_0)))) (* (* x1 x1) 4.0)))))
                     t_2))
                   (if (<= x1 2850000000000.0)
                     (+
                      (+ (* x1 2.0) (/ (* 3.0 (- (* 3.0 (* x1 x1)) x1)) t_0))
                      (* x2 (+ (* x1 -12.0) (+ (* 8.0 (* x1 x2)) (/ -6.0 t_0)))))
                     (+
                      9.0
                      (+
                       (*
                        t_0
                        (* (* x1 x1) (+ 6.0 (/ (- (/ (+ (* x2 8.0) -18.0) x1) 4.0) x1))))
                       t_2)))))))
            double code(double x1, double x2) {
            	double t_0 = (x1 * x1) + 1.0;
            	double t_1 = (2.0 * x2) + (x1 * ((x1 * 3.0) + -1.0));
            	double t_2 = x1 * (2.0 + (x1 * (x1 + 9.0)));
            	double tmp;
            	if (x1 <= -3.5e+63) {
            		tmp = 6.0 * (x1 * (x1 * (x1 * x1)));
            	} else if (x1 <= -7.6e-5) {
            		tmp = 9.0 + ((t_0 * ((x1 * (x1 * -6.0)) + ((t_1 / t_0) * ((x1 * (-6.0 + (t_1 * (2.0 / t_0)))) + ((x1 * x1) * 4.0))))) + t_2);
            	} else if (x1 <= 2850000000000.0) {
            		tmp = ((x1 * 2.0) + ((3.0 * ((3.0 * (x1 * x1)) - x1)) / t_0)) + (x2 * ((x1 * -12.0) + ((8.0 * (x1 * x2)) + (-6.0 / t_0))));
            	} else {
            		tmp = 9.0 + ((t_0 * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + t_2);
            	}
            	return tmp;
            }
            
            real(8) function code(x1, x2)
                real(8), intent (in) :: x1
                real(8), intent (in) :: x2
                real(8) :: t_0
                real(8) :: t_1
                real(8) :: t_2
                real(8) :: tmp
                t_0 = (x1 * x1) + 1.0d0
                t_1 = (2.0d0 * x2) + (x1 * ((x1 * 3.0d0) + (-1.0d0)))
                t_2 = x1 * (2.0d0 + (x1 * (x1 + 9.0d0)))
                if (x1 <= (-3.5d+63)) then
                    tmp = 6.0d0 * (x1 * (x1 * (x1 * x1)))
                else if (x1 <= (-7.6d-5)) then
                    tmp = 9.0d0 + ((t_0 * ((x1 * (x1 * (-6.0d0))) + ((t_1 / t_0) * ((x1 * ((-6.0d0) + (t_1 * (2.0d0 / t_0)))) + ((x1 * x1) * 4.0d0))))) + t_2)
                else if (x1 <= 2850000000000.0d0) then
                    tmp = ((x1 * 2.0d0) + ((3.0d0 * ((3.0d0 * (x1 * x1)) - x1)) / t_0)) + (x2 * ((x1 * (-12.0d0)) + ((8.0d0 * (x1 * x2)) + ((-6.0d0) / t_0))))
                else
                    tmp = 9.0d0 + ((t_0 * ((x1 * x1) * (6.0d0 + (((((x2 * 8.0d0) + (-18.0d0)) / x1) - 4.0d0) / x1)))) + t_2)
                end if
                code = tmp
            end function
            
            public static double code(double x1, double x2) {
            	double t_0 = (x1 * x1) + 1.0;
            	double t_1 = (2.0 * x2) + (x1 * ((x1 * 3.0) + -1.0));
            	double t_2 = x1 * (2.0 + (x1 * (x1 + 9.0)));
            	double tmp;
            	if (x1 <= -3.5e+63) {
            		tmp = 6.0 * (x1 * (x1 * (x1 * x1)));
            	} else if (x1 <= -7.6e-5) {
            		tmp = 9.0 + ((t_0 * ((x1 * (x1 * -6.0)) + ((t_1 / t_0) * ((x1 * (-6.0 + (t_1 * (2.0 / t_0)))) + ((x1 * x1) * 4.0))))) + t_2);
            	} else if (x1 <= 2850000000000.0) {
            		tmp = ((x1 * 2.0) + ((3.0 * ((3.0 * (x1 * x1)) - x1)) / t_0)) + (x2 * ((x1 * -12.0) + ((8.0 * (x1 * x2)) + (-6.0 / t_0))));
            	} else {
            		tmp = 9.0 + ((t_0 * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + t_2);
            	}
            	return tmp;
            }
            
            def code(x1, x2):
            	t_0 = (x1 * x1) + 1.0
            	t_1 = (2.0 * x2) + (x1 * ((x1 * 3.0) + -1.0))
            	t_2 = x1 * (2.0 + (x1 * (x1 + 9.0)))
            	tmp = 0
            	if x1 <= -3.5e+63:
            		tmp = 6.0 * (x1 * (x1 * (x1 * x1)))
            	elif x1 <= -7.6e-5:
            		tmp = 9.0 + ((t_0 * ((x1 * (x1 * -6.0)) + ((t_1 / t_0) * ((x1 * (-6.0 + (t_1 * (2.0 / t_0)))) + ((x1 * x1) * 4.0))))) + t_2)
            	elif x1 <= 2850000000000.0:
            		tmp = ((x1 * 2.0) + ((3.0 * ((3.0 * (x1 * x1)) - x1)) / t_0)) + (x2 * ((x1 * -12.0) + ((8.0 * (x1 * x2)) + (-6.0 / t_0))))
            	else:
            		tmp = 9.0 + ((t_0 * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + t_2)
            	return tmp
            
            function code(x1, x2)
            	t_0 = Float64(Float64(x1 * x1) + 1.0)
            	t_1 = Float64(Float64(2.0 * x2) + Float64(x1 * Float64(Float64(x1 * 3.0) + -1.0)))
            	t_2 = Float64(x1 * Float64(2.0 + Float64(x1 * Float64(x1 + 9.0))))
            	tmp = 0.0
            	if (x1 <= -3.5e+63)
            		tmp = Float64(6.0 * Float64(x1 * Float64(x1 * Float64(x1 * x1))));
            	elseif (x1 <= -7.6e-5)
            		tmp = Float64(9.0 + Float64(Float64(t_0 * Float64(Float64(x1 * Float64(x1 * -6.0)) + Float64(Float64(t_1 / t_0) * Float64(Float64(x1 * Float64(-6.0 + Float64(t_1 * Float64(2.0 / t_0)))) + Float64(Float64(x1 * x1) * 4.0))))) + t_2));
            	elseif (x1 <= 2850000000000.0)
            		tmp = Float64(Float64(Float64(x1 * 2.0) + Float64(Float64(3.0 * Float64(Float64(3.0 * Float64(x1 * x1)) - x1)) / t_0)) + Float64(x2 * Float64(Float64(x1 * -12.0) + Float64(Float64(8.0 * Float64(x1 * x2)) + Float64(-6.0 / t_0)))));
            	else
            		tmp = Float64(9.0 + Float64(Float64(t_0 * Float64(Float64(x1 * x1) * Float64(6.0 + Float64(Float64(Float64(Float64(Float64(x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + t_2));
            	end
            	return tmp
            end
            
            function tmp_2 = code(x1, x2)
            	t_0 = (x1 * x1) + 1.0;
            	t_1 = (2.0 * x2) + (x1 * ((x1 * 3.0) + -1.0));
            	t_2 = x1 * (2.0 + (x1 * (x1 + 9.0)));
            	tmp = 0.0;
            	if (x1 <= -3.5e+63)
            		tmp = 6.0 * (x1 * (x1 * (x1 * x1)));
            	elseif (x1 <= -7.6e-5)
            		tmp = 9.0 + ((t_0 * ((x1 * (x1 * -6.0)) + ((t_1 / t_0) * ((x1 * (-6.0 + (t_1 * (2.0 / t_0)))) + ((x1 * x1) * 4.0))))) + t_2);
            	elseif (x1 <= 2850000000000.0)
            		tmp = ((x1 * 2.0) + ((3.0 * ((3.0 * (x1 * x1)) - x1)) / t_0)) + (x2 * ((x1 * -12.0) + ((8.0 * (x1 * x2)) + (-6.0 / t_0))));
            	else
            		tmp = 9.0 + ((t_0 * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + t_2);
            	end
            	tmp_2 = tmp;
            end
            
            code[x1_, x2_] := Block[{t$95$0 = N[(N[(x1 * x1), $MachinePrecision] + 1.0), $MachinePrecision]}, Block[{t$95$1 = N[(N[(2.0 * x2), $MachinePrecision] + N[(x1 * N[(N[(x1 * 3.0), $MachinePrecision] + -1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(x1 * N[(2.0 + N[(x1 * N[(x1 + 9.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x1, -3.5e+63], N[(6.0 * N[(x1 * N[(x1 * N[(x1 * x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x1, -7.6e-5], N[(9.0 + N[(N[(t$95$0 * N[(N[(x1 * N[(x1 * -6.0), $MachinePrecision]), $MachinePrecision] + N[(N[(t$95$1 / t$95$0), $MachinePrecision] * N[(N[(x1 * N[(-6.0 + N[(t$95$1 * N[(2.0 / t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(x1 * x1), $MachinePrecision] * 4.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$2), $MachinePrecision]), $MachinePrecision], If[LessEqual[x1, 2850000000000.0], N[(N[(N[(x1 * 2.0), $MachinePrecision] + N[(N[(3.0 * N[(N[(3.0 * N[(x1 * x1), $MachinePrecision]), $MachinePrecision] - x1), $MachinePrecision]), $MachinePrecision] / t$95$0), $MachinePrecision]), $MachinePrecision] + N[(x2 * N[(N[(x1 * -12.0), $MachinePrecision] + N[(N[(8.0 * N[(x1 * x2), $MachinePrecision]), $MachinePrecision] + N[(-6.0 / t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(9.0 + N[(N[(t$95$0 * N[(N[(x1 * x1), $MachinePrecision] * N[(6.0 + N[(N[(N[(N[(N[(x2 * 8.0), $MachinePrecision] + -18.0), $MachinePrecision] / x1), $MachinePrecision] - 4.0), $MachinePrecision] / x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + t$95$2), $MachinePrecision]), $MachinePrecision]]]]]]]
            
            \begin{array}{l}
            
            \\
            \begin{array}{l}
            t_0 := x1 \cdot x1 + 1\\
            t_1 := 2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\\
            t_2 := x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\\
            \mathbf{if}\;x1 \leq -3.5 \cdot 10^{+63}:\\
            \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\
            
            \mathbf{elif}\;x1 \leq -7.6 \cdot 10^{-5}:\\
            \;\;\;\;9 + \left(t\_0 \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{t\_1}{t\_0} \cdot \left(x1 \cdot \left(-6 + t\_1 \cdot \frac{2}{t\_0}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + t\_2\right)\\
            
            \mathbf{elif}\;x1 \leq 2850000000000:\\
            \;\;\;\;\left(x1 \cdot 2 + \frac{3 \cdot \left(3 \cdot \left(x1 \cdot x1\right) - x1\right)}{t\_0}\right) + x2 \cdot \left(x1 \cdot -12 + \left(8 \cdot \left(x1 \cdot x2\right) + \frac{-6}{t\_0}\right)\right)\\
            
            \mathbf{else}:\\
            \;\;\;\;9 + \left(t\_0 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 + \frac{\frac{x2 \cdot 8 + -18}{x1} - 4}{x1}\right)\right) + t\_2\right)\\
            
            
            \end{array}
            \end{array}
            
            Derivation
            1. Split input into 4 regimes
            2. if x1 < -3.50000000000000029e63

              1. Initial program 18.8%

                \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
              2. Add Preprocessing
              3. Taylor expanded in x1 around inf

                \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
              4. Step-by-step derivation
                1. *-lowering-*.f64N/A

                  \[\leadsto \mathsf{*.f64}\left(6, \color{blue}{\left({x1}^{4}\right)}\right) \]
                2. pow-lowering-pow.f64100.0%

                  \[\leadsto \mathsf{*.f64}\left(6, \mathsf{pow.f64}\left(x1, \color{blue}{4}\right)\right) \]
              5. Simplified100.0%

                \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
              6. Step-by-step derivation
                1. metadata-evalN/A

                  \[\leadsto 6 \cdot {x1}^{\left(2 + \color{blue}{2}\right)} \]
                2. pow-prod-upN/A

                  \[\leadsto 6 \cdot \left({x1}^{2} \cdot \color{blue}{{x1}^{2}}\right) \]
                3. pow2N/A

                  \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot {\color{blue}{x1}}^{2}\right) \]
                4. pow2N/A

                  \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot \color{blue}{x1}\right)\right) \]
                5. *-commutativeN/A

                  \[\leadsto \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right) \cdot \color{blue}{6} \]
                6. *-lowering-*.f64N/A

                  \[\leadsto \mathsf{*.f64}\left(\left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right), \color{blue}{6}\right) \]
                7. associate-*l*N/A

                  \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                8. cube-multN/A

                  \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot {x1}^{3}\right), 6\right) \]
                9. *-lowering-*.f64N/A

                  \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left({x1}^{3}\right)\right), 6\right) \]
                10. cube-multN/A

                  \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                11. *-lowering-*.f64N/A

                  \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                12. *-lowering-*.f64100.0%

                  \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, x1\right)\right)\right), 6\right) \]
              7. Applied egg-rr100.0%

                \[\leadsto \color{blue}{\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right) \cdot 6} \]

              if -3.50000000000000029e63 < x1 < -7.6000000000000004e-5

              1. Initial program 99.1%

                \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
              2. Simplified99.3%

                \[\leadsto \color{blue}{\frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{3}{x1 \cdot x1 + 1}\right)\right)\right)} \]
              3. Add Preprocessing
              4. Taylor expanded in x1 around inf

                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, -6\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(-6, \mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{/.f64}\left(2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 4\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, \color{blue}{9}\right)\right)\right)\right)\right)\right) \]
              5. Step-by-step derivation
                1. Simplified99.3%

                  \[\leadsto \frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \color{blue}{9}\right)\right)\right) \]
                2. Taylor expanded in x1 around inf

                  \[\leadsto \mathsf{+.f64}\left(\color{blue}{9}, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, -6\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(-6, \mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{/.f64}\left(2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 4\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                3. Step-by-step derivation
                  1. Simplified99.3%

                    \[\leadsto \color{blue}{9} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right) \]

                  if -7.6000000000000004e-5 < x1 < 2.85e12

                  1. Initial program 99.4%

                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                  2. Add Preprocessing
                  3. Taylor expanded in x1 around 0

                    \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\color{blue}{\left(4 \cdot \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right)}, x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                  4. Step-by-step derivation
                    1. *-lowering-*.f64N/A

                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                    2. *-lowering-*.f64N/A

                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                    3. *-lowering-*.f64N/A

                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                    4. sub-negN/A

                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                    5. metadata-evalN/A

                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                    6. +-lowering-+.f64N/A

                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                    7. *-commutativeN/A

                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                    8. *-lowering-*.f6486.3%

                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                  5. Simplified86.3%

                    \[\leadsto x1 + \left(\left(\color{blue}{4 \cdot \left(x1 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right)\right)} + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                  6. Taylor expanded in x2 around 0

                    \[\leadsto \color{blue}{2 \cdot x1 + \left(3 \cdot \frac{3 \cdot {x1}^{2} - x1}{1 + {x1}^{2}} + x2 \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6 \cdot \frac{1}{1 + {x1}^{2}}\right)\right)} \]
                  7. Step-by-step derivation
                    1. associate-+r+N/A

                      \[\leadsto \left(2 \cdot x1 + 3 \cdot \frac{3 \cdot {x1}^{2} - x1}{1 + {x1}^{2}}\right) + \color{blue}{x2 \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6 \cdot \frac{1}{1 + {x1}^{2}}\right)} \]
                    2. +-lowering-+.f64N/A

                      \[\leadsto \mathsf{+.f64}\left(\left(2 \cdot x1 + 3 \cdot \frac{3 \cdot {x1}^{2} - x1}{1 + {x1}^{2}}\right), \color{blue}{\left(x2 \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6 \cdot \frac{1}{1 + {x1}^{2}}\right)\right)}\right) \]
                  8. Simplified97.2%

                    \[\leadsto \color{blue}{\left(x1 \cdot 2 + \frac{3 \cdot \left(3 \cdot \left(x1 \cdot x1\right) - x1\right)}{1 + x1 \cdot x1}\right) + x2 \cdot \left(x1 \cdot -12 + \left(8 \cdot \left(x2 \cdot x1\right) + \frac{-6}{1 + x1 \cdot x1}\right)\right)} \]

                  if 2.85e12 < x1

                  1. Initial program 43.1%

                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                  2. Simplified43.2%

                    \[\leadsto \color{blue}{\frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{3}{x1 \cdot x1 + 1}\right)\right)\right)} \]
                  3. Add Preprocessing
                  4. Taylor expanded in x1 around inf

                    \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, -6\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(-6, \mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{/.f64}\left(2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 4\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, \color{blue}{9}\right)\right)\right)\right)\right)\right) \]
                  5. Step-by-step derivation
                    1. Simplified43.2%

                      \[\leadsto \frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \color{blue}{9}\right)\right)\right) \]
                    2. Taylor expanded in x1 around -inf

                      \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \color{blue}{\left({x1}^{2} \cdot \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)}\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                    3. Step-by-step derivation
                      1. *-lowering-*.f64N/A

                        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\left({x1}^{2}\right), \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                      2. unpow2N/A

                        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\left(x1 \cdot x1\right), \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                      3. *-lowering-*.f64N/A

                        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                      4. mul-1-negN/A

                        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(6 + \left(\mathsf{neg}\left(\frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                      5. unsub-negN/A

                        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(6 - \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                      6. --lowering--.f64N/A

                        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \left(\frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                      7. /-lowering-/.f64N/A

                        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\left(4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                      8. mul-1-negN/A

                        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\left(4 + \left(\mathsf{neg}\left(\frac{8 \cdot x2 - 18}{x1}\right)\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                      9. unsub-negN/A

                        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\left(4 - \frac{8 \cdot x2 - 18}{x1}\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                      10. --lowering--.f64N/A

                        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \left(\frac{8 \cdot x2 - 18}{x1}\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                      11. /-lowering-/.f64N/A

                        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\left(8 \cdot x2 - 18\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                      12. sub-negN/A

                        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\left(8 \cdot x2 + \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                      13. +-lowering-+.f64N/A

                        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\left(8 \cdot x2\right), \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                      14. *-commutativeN/A

                        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\left(x2 \cdot 8\right), \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                      15. *-lowering-*.f64N/A

                        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 8\right), \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                      16. metadata-eval41.5%

                        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 8\right), -18\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                    4. Simplified41.5%

                      \[\leadsto \frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \color{blue}{\left(\left(x1 \cdot x1\right) \cdot \left(6 - \frac{4 - \frac{x2 \cdot 8 + -18}{x1}}{x1}\right)\right)} + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right) \]
                    5. Taylor expanded in x1 around inf

                      \[\leadsto \mathsf{+.f64}\left(\color{blue}{9}, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 8\right), -18\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                    6. Step-by-step derivation
                      1. Simplified96.5%

                        \[\leadsto \color{blue}{9} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 - \frac{4 - \frac{x2 \cdot 8 + -18}{x1}}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right) \]
                    7. Recombined 4 regimes into one program.
                    8. Final simplification97.8%

                      \[\leadsto \begin{array}{l} \mathbf{if}\;x1 \leq -3.5 \cdot 10^{+63}:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{elif}\;x1 \leq -7.6 \cdot 10^{-5}:\\ \;\;\;\;9 + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right)\\ \mathbf{elif}\;x1 \leq 2850000000000:\\ \;\;\;\;\left(x1 \cdot 2 + \frac{3 \cdot \left(3 \cdot \left(x1 \cdot x1\right) - x1\right)}{x1 \cdot x1 + 1}\right) + x2 \cdot \left(x1 \cdot -12 + \left(8 \cdot \left(x1 \cdot x2\right) + \frac{-6}{x1 \cdot x1 + 1}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;9 + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 + \frac{\frac{x2 \cdot 8 + -18}{x1} - 4}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right)\\ \end{array} \]
                    9. Add Preprocessing

                    Alternative 6: 94.2% accurate, 2.6× speedup?

                    \[\begin{array}{l} \\ \begin{array}{l} t_0 := x1 \cdot x1 + 1\\ \mathbf{if}\;x1 \leq -58000:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{elif}\;x1 \leq 620000000000:\\ \;\;\;\;\left(x1 \cdot 2 + \frac{3 \cdot \left(3 \cdot \left(x1 \cdot x1\right) - x1\right)}{t\_0}\right) + x2 \cdot \left(x1 \cdot -12 + \left(8 \cdot \left(x1 \cdot x2\right) + \frac{-6}{t\_0}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;9 + \left(t\_0 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 + \frac{\frac{x2 \cdot 8 + -18}{x1} - 4}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right)\\ \end{array} \end{array} \]
                    (FPCore (x1 x2)
                     :precision binary64
                     (let* ((t_0 (+ (* x1 x1) 1.0)))
                       (if (<= x1 -58000.0)
                         (* 6.0 (* x1 (* x1 (* x1 x1))))
                         (if (<= x1 620000000000.0)
                           (+
                            (+ (* x1 2.0) (/ (* 3.0 (- (* 3.0 (* x1 x1)) x1)) t_0))
                            (* x2 (+ (* x1 -12.0) (+ (* 8.0 (* x1 x2)) (/ -6.0 t_0)))))
                           (+
                            9.0
                            (+
                             (*
                              t_0
                              (* (* x1 x1) (+ 6.0 (/ (- (/ (+ (* x2 8.0) -18.0) x1) 4.0) x1))))
                             (* x1 (+ 2.0 (* x1 (+ x1 9.0))))))))))
                    double code(double x1, double x2) {
                    	double t_0 = (x1 * x1) + 1.0;
                    	double tmp;
                    	if (x1 <= -58000.0) {
                    		tmp = 6.0 * (x1 * (x1 * (x1 * x1)));
                    	} else if (x1 <= 620000000000.0) {
                    		tmp = ((x1 * 2.0) + ((3.0 * ((3.0 * (x1 * x1)) - x1)) / t_0)) + (x2 * ((x1 * -12.0) + ((8.0 * (x1 * x2)) + (-6.0 / t_0))));
                    	} else {
                    		tmp = 9.0 + ((t_0 * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + (x1 * (2.0 + (x1 * (x1 + 9.0)))));
                    	}
                    	return tmp;
                    }
                    
                    real(8) function code(x1, x2)
                        real(8), intent (in) :: x1
                        real(8), intent (in) :: x2
                        real(8) :: t_0
                        real(8) :: tmp
                        t_0 = (x1 * x1) + 1.0d0
                        if (x1 <= (-58000.0d0)) then
                            tmp = 6.0d0 * (x1 * (x1 * (x1 * x1)))
                        else if (x1 <= 620000000000.0d0) then
                            tmp = ((x1 * 2.0d0) + ((3.0d0 * ((3.0d0 * (x1 * x1)) - x1)) / t_0)) + (x2 * ((x1 * (-12.0d0)) + ((8.0d0 * (x1 * x2)) + ((-6.0d0) / t_0))))
                        else
                            tmp = 9.0d0 + ((t_0 * ((x1 * x1) * (6.0d0 + (((((x2 * 8.0d0) + (-18.0d0)) / x1) - 4.0d0) / x1)))) + (x1 * (2.0d0 + (x1 * (x1 + 9.0d0)))))
                        end if
                        code = tmp
                    end function
                    
                    public static double code(double x1, double x2) {
                    	double t_0 = (x1 * x1) + 1.0;
                    	double tmp;
                    	if (x1 <= -58000.0) {
                    		tmp = 6.0 * (x1 * (x1 * (x1 * x1)));
                    	} else if (x1 <= 620000000000.0) {
                    		tmp = ((x1 * 2.0) + ((3.0 * ((3.0 * (x1 * x1)) - x1)) / t_0)) + (x2 * ((x1 * -12.0) + ((8.0 * (x1 * x2)) + (-6.0 / t_0))));
                    	} else {
                    		tmp = 9.0 + ((t_0 * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + (x1 * (2.0 + (x1 * (x1 + 9.0)))));
                    	}
                    	return tmp;
                    }
                    
                    def code(x1, x2):
                    	t_0 = (x1 * x1) + 1.0
                    	tmp = 0
                    	if x1 <= -58000.0:
                    		tmp = 6.0 * (x1 * (x1 * (x1 * x1)))
                    	elif x1 <= 620000000000.0:
                    		tmp = ((x1 * 2.0) + ((3.0 * ((3.0 * (x1 * x1)) - x1)) / t_0)) + (x2 * ((x1 * -12.0) + ((8.0 * (x1 * x2)) + (-6.0 / t_0))))
                    	else:
                    		tmp = 9.0 + ((t_0 * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + (x1 * (2.0 + (x1 * (x1 + 9.0)))))
                    	return tmp
                    
                    function code(x1, x2)
                    	t_0 = Float64(Float64(x1 * x1) + 1.0)
                    	tmp = 0.0
                    	if (x1 <= -58000.0)
                    		tmp = Float64(6.0 * Float64(x1 * Float64(x1 * Float64(x1 * x1))));
                    	elseif (x1 <= 620000000000.0)
                    		tmp = Float64(Float64(Float64(x1 * 2.0) + Float64(Float64(3.0 * Float64(Float64(3.0 * Float64(x1 * x1)) - x1)) / t_0)) + Float64(x2 * Float64(Float64(x1 * -12.0) + Float64(Float64(8.0 * Float64(x1 * x2)) + Float64(-6.0 / t_0)))));
                    	else
                    		tmp = Float64(9.0 + Float64(Float64(t_0 * Float64(Float64(x1 * x1) * Float64(6.0 + Float64(Float64(Float64(Float64(Float64(x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + Float64(x1 * Float64(2.0 + Float64(x1 * Float64(x1 + 9.0))))));
                    	end
                    	return tmp
                    end
                    
                    function tmp_2 = code(x1, x2)
                    	t_0 = (x1 * x1) + 1.0;
                    	tmp = 0.0;
                    	if (x1 <= -58000.0)
                    		tmp = 6.0 * (x1 * (x1 * (x1 * x1)));
                    	elseif (x1 <= 620000000000.0)
                    		tmp = ((x1 * 2.0) + ((3.0 * ((3.0 * (x1 * x1)) - x1)) / t_0)) + (x2 * ((x1 * -12.0) + ((8.0 * (x1 * x2)) + (-6.0 / t_0))));
                    	else
                    		tmp = 9.0 + ((t_0 * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + (x1 * (2.0 + (x1 * (x1 + 9.0)))));
                    	end
                    	tmp_2 = tmp;
                    end
                    
                    code[x1_, x2_] := Block[{t$95$0 = N[(N[(x1 * x1), $MachinePrecision] + 1.0), $MachinePrecision]}, If[LessEqual[x1, -58000.0], N[(6.0 * N[(x1 * N[(x1 * N[(x1 * x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x1, 620000000000.0], N[(N[(N[(x1 * 2.0), $MachinePrecision] + N[(N[(3.0 * N[(N[(3.0 * N[(x1 * x1), $MachinePrecision]), $MachinePrecision] - x1), $MachinePrecision]), $MachinePrecision] / t$95$0), $MachinePrecision]), $MachinePrecision] + N[(x2 * N[(N[(x1 * -12.0), $MachinePrecision] + N[(N[(8.0 * N[(x1 * x2), $MachinePrecision]), $MachinePrecision] + N[(-6.0 / t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(9.0 + N[(N[(t$95$0 * N[(N[(x1 * x1), $MachinePrecision] * N[(6.0 + N[(N[(N[(N[(N[(x2 * 8.0), $MachinePrecision] + -18.0), $MachinePrecision] / x1), $MachinePrecision] - 4.0), $MachinePrecision] / x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(x1 * N[(2.0 + N[(x1 * N[(x1 + 9.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
                    
                    \begin{array}{l}
                    
                    \\
                    \begin{array}{l}
                    t_0 := x1 \cdot x1 + 1\\
                    \mathbf{if}\;x1 \leq -58000:\\
                    \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\
                    
                    \mathbf{elif}\;x1 \leq 620000000000:\\
                    \;\;\;\;\left(x1 \cdot 2 + \frac{3 \cdot \left(3 \cdot \left(x1 \cdot x1\right) - x1\right)}{t\_0}\right) + x2 \cdot \left(x1 \cdot -12 + \left(8 \cdot \left(x1 \cdot x2\right) + \frac{-6}{t\_0}\right)\right)\\
                    
                    \mathbf{else}:\\
                    \;\;\;\;9 + \left(t\_0 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 + \frac{\frac{x2 \cdot 8 + -18}{x1} - 4}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right)\\
                    
                    
                    \end{array}
                    \end{array}
                    
                    Derivation
                    1. Split input into 3 regimes
                    2. if x1 < -58000

                      1. Initial program 40.8%

                        \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                      2. Add Preprocessing
                      3. Taylor expanded in x1 around inf

                        \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
                      4. Step-by-step derivation
                        1. *-lowering-*.f64N/A

                          \[\leadsto \mathsf{*.f64}\left(6, \color{blue}{\left({x1}^{4}\right)}\right) \]
                        2. pow-lowering-pow.f6489.8%

                          \[\leadsto \mathsf{*.f64}\left(6, \mathsf{pow.f64}\left(x1, \color{blue}{4}\right)\right) \]
                      5. Simplified89.8%

                        \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
                      6. Step-by-step derivation
                        1. metadata-evalN/A

                          \[\leadsto 6 \cdot {x1}^{\left(2 + \color{blue}{2}\right)} \]
                        2. pow-prod-upN/A

                          \[\leadsto 6 \cdot \left({x1}^{2} \cdot \color{blue}{{x1}^{2}}\right) \]
                        3. pow2N/A

                          \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot {\color{blue}{x1}}^{2}\right) \]
                        4. pow2N/A

                          \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot \color{blue}{x1}\right)\right) \]
                        5. *-commutativeN/A

                          \[\leadsto \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right) \cdot \color{blue}{6} \]
                        6. *-lowering-*.f64N/A

                          \[\leadsto \mathsf{*.f64}\left(\left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right), \color{blue}{6}\right) \]
                        7. associate-*l*N/A

                          \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                        8. cube-multN/A

                          \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot {x1}^{3}\right), 6\right) \]
                        9. *-lowering-*.f64N/A

                          \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left({x1}^{3}\right)\right), 6\right) \]
                        10. cube-multN/A

                          \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                        11. *-lowering-*.f64N/A

                          \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                        12. *-lowering-*.f6489.8%

                          \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, x1\right)\right)\right), 6\right) \]
                      7. Applied egg-rr89.8%

                        \[\leadsto \color{blue}{\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right) \cdot 6} \]

                      if -58000 < x1 < 6.2e11

                      1. Initial program 99.4%

                        \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                      2. Add Preprocessing
                      3. Taylor expanded in x1 around 0

                        \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\color{blue}{\left(4 \cdot \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right)}, x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                      4. Step-by-step derivation
                        1. *-lowering-*.f64N/A

                          \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                        2. *-lowering-*.f64N/A

                          \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                        3. *-lowering-*.f64N/A

                          \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                        4. sub-negN/A

                          \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                        5. metadata-evalN/A

                          \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                        6. +-lowering-+.f64N/A

                          \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                        7. *-commutativeN/A

                          \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                        8. *-lowering-*.f6486.0%

                          \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                      5. Simplified86.0%

                        \[\leadsto x1 + \left(\left(\color{blue}{4 \cdot \left(x1 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right)\right)} + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                      6. Taylor expanded in x2 around 0

                        \[\leadsto \color{blue}{2 \cdot x1 + \left(3 \cdot \frac{3 \cdot {x1}^{2} - x1}{1 + {x1}^{2}} + x2 \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6 \cdot \frac{1}{1 + {x1}^{2}}\right)\right)} \]
                      7. Step-by-step derivation
                        1. associate-+r+N/A

                          \[\leadsto \left(2 \cdot x1 + 3 \cdot \frac{3 \cdot {x1}^{2} - x1}{1 + {x1}^{2}}\right) + \color{blue}{x2 \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6 \cdot \frac{1}{1 + {x1}^{2}}\right)} \]
                        2. +-lowering-+.f64N/A

                          \[\leadsto \mathsf{+.f64}\left(\left(2 \cdot x1 + 3 \cdot \frac{3 \cdot {x1}^{2} - x1}{1 + {x1}^{2}}\right), \color{blue}{\left(x2 \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6 \cdot \frac{1}{1 + {x1}^{2}}\right)\right)}\right) \]
                      8. Simplified96.7%

                        \[\leadsto \color{blue}{\left(x1 \cdot 2 + \frac{3 \cdot \left(3 \cdot \left(x1 \cdot x1\right) - x1\right)}{1 + x1 \cdot x1}\right) + x2 \cdot \left(x1 \cdot -12 + \left(8 \cdot \left(x2 \cdot x1\right) + \frac{-6}{1 + x1 \cdot x1}\right)\right)} \]

                      if 6.2e11 < x1

                      1. Initial program 43.1%

                        \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                      2. Simplified43.2%

                        \[\leadsto \color{blue}{\frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{3}{x1 \cdot x1 + 1}\right)\right)\right)} \]
                      3. Add Preprocessing
                      4. Taylor expanded in x1 around inf

                        \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, -6\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(-6, \mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{/.f64}\left(2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 4\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, \color{blue}{9}\right)\right)\right)\right)\right)\right) \]
                      5. Step-by-step derivation
                        1. Simplified43.2%

                          \[\leadsto \frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \color{blue}{9}\right)\right)\right) \]
                        2. Taylor expanded in x1 around -inf

                          \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \color{blue}{\left({x1}^{2} \cdot \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)}\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                        3. Step-by-step derivation
                          1. *-lowering-*.f64N/A

                            \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\left({x1}^{2}\right), \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                          2. unpow2N/A

                            \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\left(x1 \cdot x1\right), \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                          3. *-lowering-*.f64N/A

                            \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                          4. mul-1-negN/A

                            \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(6 + \left(\mathsf{neg}\left(\frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                          5. unsub-negN/A

                            \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(6 - \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                          6. --lowering--.f64N/A

                            \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \left(\frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                          7. /-lowering-/.f64N/A

                            \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\left(4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                          8. mul-1-negN/A

                            \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\left(4 + \left(\mathsf{neg}\left(\frac{8 \cdot x2 - 18}{x1}\right)\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                          9. unsub-negN/A

                            \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\left(4 - \frac{8 \cdot x2 - 18}{x1}\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                          10. --lowering--.f64N/A

                            \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \left(\frac{8 \cdot x2 - 18}{x1}\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                          11. /-lowering-/.f64N/A

                            \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\left(8 \cdot x2 - 18\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                          12. sub-negN/A

                            \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\left(8 \cdot x2 + \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                          13. +-lowering-+.f64N/A

                            \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\left(8 \cdot x2\right), \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                          14. *-commutativeN/A

                            \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\left(x2 \cdot 8\right), \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                          15. *-lowering-*.f64N/A

                            \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 8\right), \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                          16. metadata-eval41.5%

                            \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 8\right), -18\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                        4. Simplified41.5%

                          \[\leadsto \frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \color{blue}{\left(\left(x1 \cdot x1\right) \cdot \left(6 - \frac{4 - \frac{x2 \cdot 8 + -18}{x1}}{x1}\right)\right)} + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right) \]
                        5. Taylor expanded in x1 around inf

                          \[\leadsto \mathsf{+.f64}\left(\color{blue}{9}, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 8\right), -18\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                        6. Step-by-step derivation
                          1. Simplified96.5%

                            \[\leadsto \color{blue}{9} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 - \frac{4 - \frac{x2 \cdot 8 + -18}{x1}}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right) \]
                        7. Recombined 3 regimes into one program.
                        8. Final simplification94.7%

                          \[\leadsto \begin{array}{l} \mathbf{if}\;x1 \leq -58000:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{elif}\;x1 \leq 620000000000:\\ \;\;\;\;\left(x1 \cdot 2 + \frac{3 \cdot \left(3 \cdot \left(x1 \cdot x1\right) - x1\right)}{x1 \cdot x1 + 1}\right) + x2 \cdot \left(x1 \cdot -12 + \left(8 \cdot \left(x1 \cdot x2\right) + \frac{-6}{x1 \cdot x1 + 1}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;9 + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 + \frac{\frac{x2 \cdot 8 + -18}{x1} - 4}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right)\\ \end{array} \]
                        9. Add Preprocessing

                        Alternative 7: 94.1% accurate, 2.8× speedup?

                        \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x1 \leq -1400:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{elif}\;x1 \leq 620000000000:\\ \;\;\;\;x1 + \left(\left(x1 + \left(4 \cdot \left(x1 \cdot x2\right)\right) \cdot \left(2 \cdot x2 + -3\right)\right) - 3 \cdot \frac{\left(x1 \cdot \left(x1 \cdot 3\right) - 2 \cdot x2\right) - x1}{-1 - x1 \cdot x1}\right)\\ \mathbf{else}:\\ \;\;\;\;9 + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 + \frac{\frac{x2 \cdot 8 + -18}{x1} - 4}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right)\\ \end{array} \end{array} \]
                        (FPCore (x1 x2)
                         :precision binary64
                         (if (<= x1 -1400.0)
                           (* 6.0 (* x1 (* x1 (* x1 x1))))
                           (if (<= x1 620000000000.0)
                             (+
                              x1
                              (-
                               (+ x1 (* (* 4.0 (* x1 x2)) (+ (* 2.0 x2) -3.0)))
                               (* 3.0 (/ (- (- (* x1 (* x1 3.0)) (* 2.0 x2)) x1) (- -1.0 (* x1 x1))))))
                             (+
                              9.0
                              (+
                               (*
                                (+ (* x1 x1) 1.0)
                                (* (* x1 x1) (+ 6.0 (/ (- (/ (+ (* x2 8.0) -18.0) x1) 4.0) x1))))
                               (* x1 (+ 2.0 (* x1 (+ x1 9.0)))))))))
                        double code(double x1, double x2) {
                        	double tmp;
                        	if (x1 <= -1400.0) {
                        		tmp = 6.0 * (x1 * (x1 * (x1 * x1)));
                        	} else if (x1 <= 620000000000.0) {
                        		tmp = x1 + ((x1 + ((4.0 * (x1 * x2)) * ((2.0 * x2) + -3.0))) - (3.0 * ((((x1 * (x1 * 3.0)) - (2.0 * x2)) - x1) / (-1.0 - (x1 * x1)))));
                        	} else {
                        		tmp = 9.0 + ((((x1 * x1) + 1.0) * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + (x1 * (2.0 + (x1 * (x1 + 9.0)))));
                        	}
                        	return tmp;
                        }
                        
                        real(8) function code(x1, x2)
                            real(8), intent (in) :: x1
                            real(8), intent (in) :: x2
                            real(8) :: tmp
                            if (x1 <= (-1400.0d0)) then
                                tmp = 6.0d0 * (x1 * (x1 * (x1 * x1)))
                            else if (x1 <= 620000000000.0d0) then
                                tmp = x1 + ((x1 + ((4.0d0 * (x1 * x2)) * ((2.0d0 * x2) + (-3.0d0)))) - (3.0d0 * ((((x1 * (x1 * 3.0d0)) - (2.0d0 * x2)) - x1) / ((-1.0d0) - (x1 * x1)))))
                            else
                                tmp = 9.0d0 + ((((x1 * x1) + 1.0d0) * ((x1 * x1) * (6.0d0 + (((((x2 * 8.0d0) + (-18.0d0)) / x1) - 4.0d0) / x1)))) + (x1 * (2.0d0 + (x1 * (x1 + 9.0d0)))))
                            end if
                            code = tmp
                        end function
                        
                        public static double code(double x1, double x2) {
                        	double tmp;
                        	if (x1 <= -1400.0) {
                        		tmp = 6.0 * (x1 * (x1 * (x1 * x1)));
                        	} else if (x1 <= 620000000000.0) {
                        		tmp = x1 + ((x1 + ((4.0 * (x1 * x2)) * ((2.0 * x2) + -3.0))) - (3.0 * ((((x1 * (x1 * 3.0)) - (2.0 * x2)) - x1) / (-1.0 - (x1 * x1)))));
                        	} else {
                        		tmp = 9.0 + ((((x1 * x1) + 1.0) * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + (x1 * (2.0 + (x1 * (x1 + 9.0)))));
                        	}
                        	return tmp;
                        }
                        
                        def code(x1, x2):
                        	tmp = 0
                        	if x1 <= -1400.0:
                        		tmp = 6.0 * (x1 * (x1 * (x1 * x1)))
                        	elif x1 <= 620000000000.0:
                        		tmp = x1 + ((x1 + ((4.0 * (x1 * x2)) * ((2.0 * x2) + -3.0))) - (3.0 * ((((x1 * (x1 * 3.0)) - (2.0 * x2)) - x1) / (-1.0 - (x1 * x1)))))
                        	else:
                        		tmp = 9.0 + ((((x1 * x1) + 1.0) * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + (x1 * (2.0 + (x1 * (x1 + 9.0)))))
                        	return tmp
                        
                        function code(x1, x2)
                        	tmp = 0.0
                        	if (x1 <= -1400.0)
                        		tmp = Float64(6.0 * Float64(x1 * Float64(x1 * Float64(x1 * x1))));
                        	elseif (x1 <= 620000000000.0)
                        		tmp = Float64(x1 + Float64(Float64(x1 + Float64(Float64(4.0 * Float64(x1 * x2)) * Float64(Float64(2.0 * x2) + -3.0))) - Float64(3.0 * Float64(Float64(Float64(Float64(x1 * Float64(x1 * 3.0)) - Float64(2.0 * x2)) - x1) / Float64(-1.0 - Float64(x1 * x1))))));
                        	else
                        		tmp = Float64(9.0 + Float64(Float64(Float64(Float64(x1 * x1) + 1.0) * Float64(Float64(x1 * x1) * Float64(6.0 + Float64(Float64(Float64(Float64(Float64(x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + Float64(x1 * Float64(2.0 + Float64(x1 * Float64(x1 + 9.0))))));
                        	end
                        	return tmp
                        end
                        
                        function tmp_2 = code(x1, x2)
                        	tmp = 0.0;
                        	if (x1 <= -1400.0)
                        		tmp = 6.0 * (x1 * (x1 * (x1 * x1)));
                        	elseif (x1 <= 620000000000.0)
                        		tmp = x1 + ((x1 + ((4.0 * (x1 * x2)) * ((2.0 * x2) + -3.0))) - (3.0 * ((((x1 * (x1 * 3.0)) - (2.0 * x2)) - x1) / (-1.0 - (x1 * x1)))));
                        	else
                        		tmp = 9.0 + ((((x1 * x1) + 1.0) * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + (x1 * (2.0 + (x1 * (x1 + 9.0)))));
                        	end
                        	tmp_2 = tmp;
                        end
                        
                        code[x1_, x2_] := If[LessEqual[x1, -1400.0], N[(6.0 * N[(x1 * N[(x1 * N[(x1 * x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x1, 620000000000.0], N[(x1 + N[(N[(x1 + N[(N[(4.0 * N[(x1 * x2), $MachinePrecision]), $MachinePrecision] * N[(N[(2.0 * x2), $MachinePrecision] + -3.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(3.0 * N[(N[(N[(N[(x1 * N[(x1 * 3.0), $MachinePrecision]), $MachinePrecision] - N[(2.0 * x2), $MachinePrecision]), $MachinePrecision] - x1), $MachinePrecision] / N[(-1.0 - N[(x1 * x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(9.0 + N[(N[(N[(N[(x1 * x1), $MachinePrecision] + 1.0), $MachinePrecision] * N[(N[(x1 * x1), $MachinePrecision] * N[(6.0 + N[(N[(N[(N[(N[(x2 * 8.0), $MachinePrecision] + -18.0), $MachinePrecision] / x1), $MachinePrecision] - 4.0), $MachinePrecision] / x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(x1 * N[(2.0 + N[(x1 * N[(x1 + 9.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
                        
                        \begin{array}{l}
                        
                        \\
                        \begin{array}{l}
                        \mathbf{if}\;x1 \leq -1400:\\
                        \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\
                        
                        \mathbf{elif}\;x1 \leq 620000000000:\\
                        \;\;\;\;x1 + \left(\left(x1 + \left(4 \cdot \left(x1 \cdot x2\right)\right) \cdot \left(2 \cdot x2 + -3\right)\right) - 3 \cdot \frac{\left(x1 \cdot \left(x1 \cdot 3\right) - 2 \cdot x2\right) - x1}{-1 - x1 \cdot x1}\right)\\
                        
                        \mathbf{else}:\\
                        \;\;\;\;9 + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 + \frac{\frac{x2 \cdot 8 + -18}{x1} - 4}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right)\\
                        
                        
                        \end{array}
                        \end{array}
                        
                        Derivation
                        1. Split input into 3 regimes
                        2. if x1 < -1400

                          1. Initial program 40.8%

                            \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                          2. Add Preprocessing
                          3. Taylor expanded in x1 around inf

                            \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
                          4. Step-by-step derivation
                            1. *-lowering-*.f64N/A

                              \[\leadsto \mathsf{*.f64}\left(6, \color{blue}{\left({x1}^{4}\right)}\right) \]
                            2. pow-lowering-pow.f6489.8%

                              \[\leadsto \mathsf{*.f64}\left(6, \mathsf{pow.f64}\left(x1, \color{blue}{4}\right)\right) \]
                          5. Simplified89.8%

                            \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
                          6. Step-by-step derivation
                            1. metadata-evalN/A

                              \[\leadsto 6 \cdot {x1}^{\left(2 + \color{blue}{2}\right)} \]
                            2. pow-prod-upN/A

                              \[\leadsto 6 \cdot \left({x1}^{2} \cdot \color{blue}{{x1}^{2}}\right) \]
                            3. pow2N/A

                              \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot {\color{blue}{x1}}^{2}\right) \]
                            4. pow2N/A

                              \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot \color{blue}{x1}\right)\right) \]
                            5. *-commutativeN/A

                              \[\leadsto \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right) \cdot \color{blue}{6} \]
                            6. *-lowering-*.f64N/A

                              \[\leadsto \mathsf{*.f64}\left(\left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right), \color{blue}{6}\right) \]
                            7. associate-*l*N/A

                              \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                            8. cube-multN/A

                              \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot {x1}^{3}\right), 6\right) \]
                            9. *-lowering-*.f64N/A

                              \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left({x1}^{3}\right)\right), 6\right) \]
                            10. cube-multN/A

                              \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                            11. *-lowering-*.f64N/A

                              \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                            12. *-lowering-*.f6489.8%

                              \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, x1\right)\right)\right), 6\right) \]
                          7. Applied egg-rr89.8%

                            \[\leadsto \color{blue}{\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right) \cdot 6} \]

                          if -1400 < x1 < 6.2e11

                          1. Initial program 99.4%

                            \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                          2. Add Preprocessing
                          3. Taylor expanded in x1 around 0

                            \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\color{blue}{\left(4 \cdot \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right)}, x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                          4. Step-by-step derivation
                            1. *-lowering-*.f64N/A

                              \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                            2. *-lowering-*.f64N/A

                              \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                            3. *-lowering-*.f64N/A

                              \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                            4. sub-negN/A

                              \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                            5. metadata-evalN/A

                              \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                            6. +-lowering-+.f64N/A

                              \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                            7. *-commutativeN/A

                              \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                            8. *-lowering-*.f6486.0%

                              \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                          5. Simplified86.0%

                            \[\leadsto x1 + \left(\left(\color{blue}{4 \cdot \left(x1 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right)\right)} + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                          6. Step-by-step derivation
                            1. +-lowering-+.f64N/A

                              \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\left(4 \cdot \left(x1 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(\color{blue}{3}, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                            2. associate-*r*N/A

                              \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\left(4 \cdot \left(\left(x1 \cdot x2\right) \cdot \left(x2 \cdot 2 + -3\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                            3. associate-*r*N/A

                              \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\left(\left(4 \cdot \left(x1 \cdot x2\right)\right) \cdot \left(x2 \cdot 2 + -3\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                            4. *-lowering-*.f64N/A

                              \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(4 \cdot \left(x1 \cdot x2\right)\right), \left(x2 \cdot 2 + -3\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                            5. *-lowering-*.f64N/A

                              \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(4, \left(x1 \cdot x2\right)\right), \left(x2 \cdot 2 + -3\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                            6. *-lowering-*.f64N/A

                              \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, x2\right)\right), \left(x2 \cdot 2 + -3\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                            7. *-commutativeN/A

                              \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, x2\right)\right), \left(2 \cdot x2 + -3\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                            8. +-lowering-+.f64N/A

                              \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, x2\right)\right), \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                            9. *-commutativeN/A

                              \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, x2\right)\right), \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                            10. *-lowering-*.f6496.6%

                              \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, x2\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                          7. Applied egg-rr96.6%

                            \[\leadsto x1 + \left(\color{blue}{\left(\left(4 \cdot \left(x1 \cdot x2\right)\right) \cdot \left(x2 \cdot 2 + -3\right) + x1\right)} + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]

                          if 6.2e11 < x1

                          1. Initial program 43.1%

                            \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                          2. Simplified43.2%

                            \[\leadsto \color{blue}{\frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{3}{x1 \cdot x1 + 1}\right)\right)\right)} \]
                          3. Add Preprocessing
                          4. Taylor expanded in x1 around inf

                            \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, -6\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(-6, \mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{/.f64}\left(2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 4\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, \color{blue}{9}\right)\right)\right)\right)\right)\right) \]
                          5. Step-by-step derivation
                            1. Simplified43.2%

                              \[\leadsto \frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \color{blue}{9}\right)\right)\right) \]
                            2. Taylor expanded in x1 around -inf

                              \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \color{blue}{\left({x1}^{2} \cdot \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)}\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                            3. Step-by-step derivation
                              1. *-lowering-*.f64N/A

                                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\left({x1}^{2}\right), \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                              2. unpow2N/A

                                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\left(x1 \cdot x1\right), \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                              3. *-lowering-*.f64N/A

                                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                              4. mul-1-negN/A

                                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(6 + \left(\mathsf{neg}\left(\frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                              5. unsub-negN/A

                                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(6 - \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                              6. --lowering--.f64N/A

                                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \left(\frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                              7. /-lowering-/.f64N/A

                                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\left(4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                              8. mul-1-negN/A

                                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\left(4 + \left(\mathsf{neg}\left(\frac{8 \cdot x2 - 18}{x1}\right)\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                              9. unsub-negN/A

                                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\left(4 - \frac{8 \cdot x2 - 18}{x1}\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                              10. --lowering--.f64N/A

                                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \left(\frac{8 \cdot x2 - 18}{x1}\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                              11. /-lowering-/.f64N/A

                                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\left(8 \cdot x2 - 18\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                              12. sub-negN/A

                                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\left(8 \cdot x2 + \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                              13. +-lowering-+.f64N/A

                                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\left(8 \cdot x2\right), \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                              14. *-commutativeN/A

                                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\left(x2 \cdot 8\right), \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                              15. *-lowering-*.f64N/A

                                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 8\right), \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                              16. metadata-eval41.5%

                                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 8\right), -18\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                            4. Simplified41.5%

                              \[\leadsto \frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \color{blue}{\left(\left(x1 \cdot x1\right) \cdot \left(6 - \frac{4 - \frac{x2 \cdot 8 + -18}{x1}}{x1}\right)\right)} + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right) \]
                            5. Taylor expanded in x1 around inf

                              \[\leadsto \mathsf{+.f64}\left(\color{blue}{9}, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 8\right), -18\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                            6. Step-by-step derivation
                              1. Simplified96.5%

                                \[\leadsto \color{blue}{9} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 - \frac{4 - \frac{x2 \cdot 8 + -18}{x1}}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right) \]
                            7. Recombined 3 regimes into one program.
                            8. Final simplification94.6%

                              \[\leadsto \begin{array}{l} \mathbf{if}\;x1 \leq -1400:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{elif}\;x1 \leq 620000000000:\\ \;\;\;\;x1 + \left(\left(x1 + \left(4 \cdot \left(x1 \cdot x2\right)\right) \cdot \left(2 \cdot x2 + -3\right)\right) - 3 \cdot \frac{\left(x1 \cdot \left(x1 \cdot 3\right) - 2 \cdot x2\right) - x1}{-1 - x1 \cdot x1}\right)\\ \mathbf{else}:\\ \;\;\;\;9 + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 + \frac{\frac{x2 \cdot 8 + -18}{x1} - 4}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right)\\ \end{array} \]
                            9. Add Preprocessing

                            Alternative 8: 94.1% accurate, 2.8× speedup?

                            \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x1 \leq -80000:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{elif}\;x1 \leq 620000000000:\\ \;\;\;\;x2 \cdot \left(x1 \cdot -12 + \left(-6 + 8 \cdot \left(x1 \cdot x2\right)\right)\right) - x1\\ \mathbf{else}:\\ \;\;\;\;9 + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 + \frac{\frac{x2 \cdot 8 + -18}{x1} - 4}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right)\\ \end{array} \end{array} \]
                            (FPCore (x1 x2)
                             :precision binary64
                             (if (<= x1 -80000.0)
                               (* 6.0 (* x1 (* x1 (* x1 x1))))
                               (if (<= x1 620000000000.0)
                                 (- (* x2 (+ (* x1 -12.0) (+ -6.0 (* 8.0 (* x1 x2))))) x1)
                                 (+
                                  9.0
                                  (+
                                   (*
                                    (+ (* x1 x1) 1.0)
                                    (* (* x1 x1) (+ 6.0 (/ (- (/ (+ (* x2 8.0) -18.0) x1) 4.0) x1))))
                                   (* x1 (+ 2.0 (* x1 (+ x1 9.0)))))))))
                            double code(double x1, double x2) {
                            	double tmp;
                            	if (x1 <= -80000.0) {
                            		tmp = 6.0 * (x1 * (x1 * (x1 * x1)));
                            	} else if (x1 <= 620000000000.0) {
                            		tmp = (x2 * ((x1 * -12.0) + (-6.0 + (8.0 * (x1 * x2))))) - x1;
                            	} else {
                            		tmp = 9.0 + ((((x1 * x1) + 1.0) * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + (x1 * (2.0 + (x1 * (x1 + 9.0)))));
                            	}
                            	return tmp;
                            }
                            
                            real(8) function code(x1, x2)
                                real(8), intent (in) :: x1
                                real(8), intent (in) :: x2
                                real(8) :: tmp
                                if (x1 <= (-80000.0d0)) then
                                    tmp = 6.0d0 * (x1 * (x1 * (x1 * x1)))
                                else if (x1 <= 620000000000.0d0) then
                                    tmp = (x2 * ((x1 * (-12.0d0)) + ((-6.0d0) + (8.0d0 * (x1 * x2))))) - x1
                                else
                                    tmp = 9.0d0 + ((((x1 * x1) + 1.0d0) * ((x1 * x1) * (6.0d0 + (((((x2 * 8.0d0) + (-18.0d0)) / x1) - 4.0d0) / x1)))) + (x1 * (2.0d0 + (x1 * (x1 + 9.0d0)))))
                                end if
                                code = tmp
                            end function
                            
                            public static double code(double x1, double x2) {
                            	double tmp;
                            	if (x1 <= -80000.0) {
                            		tmp = 6.0 * (x1 * (x1 * (x1 * x1)));
                            	} else if (x1 <= 620000000000.0) {
                            		tmp = (x2 * ((x1 * -12.0) + (-6.0 + (8.0 * (x1 * x2))))) - x1;
                            	} else {
                            		tmp = 9.0 + ((((x1 * x1) + 1.0) * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + (x1 * (2.0 + (x1 * (x1 + 9.0)))));
                            	}
                            	return tmp;
                            }
                            
                            def code(x1, x2):
                            	tmp = 0
                            	if x1 <= -80000.0:
                            		tmp = 6.0 * (x1 * (x1 * (x1 * x1)))
                            	elif x1 <= 620000000000.0:
                            		tmp = (x2 * ((x1 * -12.0) + (-6.0 + (8.0 * (x1 * x2))))) - x1
                            	else:
                            		tmp = 9.0 + ((((x1 * x1) + 1.0) * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + (x1 * (2.0 + (x1 * (x1 + 9.0)))))
                            	return tmp
                            
                            function code(x1, x2)
                            	tmp = 0.0
                            	if (x1 <= -80000.0)
                            		tmp = Float64(6.0 * Float64(x1 * Float64(x1 * Float64(x1 * x1))));
                            	elseif (x1 <= 620000000000.0)
                            		tmp = Float64(Float64(x2 * Float64(Float64(x1 * -12.0) + Float64(-6.0 + Float64(8.0 * Float64(x1 * x2))))) - x1);
                            	else
                            		tmp = Float64(9.0 + Float64(Float64(Float64(Float64(x1 * x1) + 1.0) * Float64(Float64(x1 * x1) * Float64(6.0 + Float64(Float64(Float64(Float64(Float64(x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + Float64(x1 * Float64(2.0 + Float64(x1 * Float64(x1 + 9.0))))));
                            	end
                            	return tmp
                            end
                            
                            function tmp_2 = code(x1, x2)
                            	tmp = 0.0;
                            	if (x1 <= -80000.0)
                            		tmp = 6.0 * (x1 * (x1 * (x1 * x1)));
                            	elseif (x1 <= 620000000000.0)
                            		tmp = (x2 * ((x1 * -12.0) + (-6.0 + (8.0 * (x1 * x2))))) - x1;
                            	else
                            		tmp = 9.0 + ((((x1 * x1) + 1.0) * ((x1 * x1) * (6.0 + (((((x2 * 8.0) + -18.0) / x1) - 4.0) / x1)))) + (x1 * (2.0 + (x1 * (x1 + 9.0)))));
                            	end
                            	tmp_2 = tmp;
                            end
                            
                            code[x1_, x2_] := If[LessEqual[x1, -80000.0], N[(6.0 * N[(x1 * N[(x1 * N[(x1 * x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[x1, 620000000000.0], N[(N[(x2 * N[(N[(x1 * -12.0), $MachinePrecision] + N[(-6.0 + N[(8.0 * N[(x1 * x2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - x1), $MachinePrecision], N[(9.0 + N[(N[(N[(N[(x1 * x1), $MachinePrecision] + 1.0), $MachinePrecision] * N[(N[(x1 * x1), $MachinePrecision] * N[(6.0 + N[(N[(N[(N[(N[(x2 * 8.0), $MachinePrecision] + -18.0), $MachinePrecision] / x1), $MachinePrecision] - 4.0), $MachinePrecision] / x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(x1 * N[(2.0 + N[(x1 * N[(x1 + 9.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
                            
                            \begin{array}{l}
                            
                            \\
                            \begin{array}{l}
                            \mathbf{if}\;x1 \leq -80000:\\
                            \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\
                            
                            \mathbf{elif}\;x1 \leq 620000000000:\\
                            \;\;\;\;x2 \cdot \left(x1 \cdot -12 + \left(-6 + 8 \cdot \left(x1 \cdot x2\right)\right)\right) - x1\\
                            
                            \mathbf{else}:\\
                            \;\;\;\;9 + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 + \frac{\frac{x2 \cdot 8 + -18}{x1} - 4}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right)\\
                            
                            
                            \end{array}
                            \end{array}
                            
                            Derivation
                            1. Split input into 3 regimes
                            2. if x1 < -8e4

                              1. Initial program 40.8%

                                \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                              2. Add Preprocessing
                              3. Taylor expanded in x1 around inf

                                \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
                              4. Step-by-step derivation
                                1. *-lowering-*.f64N/A

                                  \[\leadsto \mathsf{*.f64}\left(6, \color{blue}{\left({x1}^{4}\right)}\right) \]
                                2. pow-lowering-pow.f6489.8%

                                  \[\leadsto \mathsf{*.f64}\left(6, \mathsf{pow.f64}\left(x1, \color{blue}{4}\right)\right) \]
                              5. Simplified89.8%

                                \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
                              6. Step-by-step derivation
                                1. metadata-evalN/A

                                  \[\leadsto 6 \cdot {x1}^{\left(2 + \color{blue}{2}\right)} \]
                                2. pow-prod-upN/A

                                  \[\leadsto 6 \cdot \left({x1}^{2} \cdot \color{blue}{{x1}^{2}}\right) \]
                                3. pow2N/A

                                  \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot {\color{blue}{x1}}^{2}\right) \]
                                4. pow2N/A

                                  \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot \color{blue}{x1}\right)\right) \]
                                5. *-commutativeN/A

                                  \[\leadsto \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right) \cdot \color{blue}{6} \]
                                6. *-lowering-*.f64N/A

                                  \[\leadsto \mathsf{*.f64}\left(\left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right), \color{blue}{6}\right) \]
                                7. associate-*l*N/A

                                  \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                                8. cube-multN/A

                                  \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot {x1}^{3}\right), 6\right) \]
                                9. *-lowering-*.f64N/A

                                  \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left({x1}^{3}\right)\right), 6\right) \]
                                10. cube-multN/A

                                  \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                                11. *-lowering-*.f64N/A

                                  \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                                12. *-lowering-*.f6489.8%

                                  \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, x1\right)\right)\right), 6\right) \]
                              7. Applied egg-rr89.8%

                                \[\leadsto \color{blue}{\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right) \cdot 6} \]

                              if -8e4 < x1 < 6.2e11

                              1. Initial program 99.4%

                                \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                              2. Add Preprocessing
                              3. Taylor expanded in x1 around 0

                                \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\color{blue}{\left(4 \cdot \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right)}, x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                              4. Step-by-step derivation
                                1. *-lowering-*.f64N/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                2. *-lowering-*.f64N/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                3. *-lowering-*.f64N/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                4. sub-negN/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                5. metadata-evalN/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                6. +-lowering-+.f64N/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                7. *-commutativeN/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                8. *-lowering-*.f6486.0%

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                              5. Simplified86.0%

                                \[\leadsto x1 + \left(\left(\color{blue}{4 \cdot \left(x1 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right)\right)} + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                              6. Taylor expanded in x1 around 0

                                \[\leadsto \mathsf{+.f64}\left(x1, \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right) \]
                              7. Step-by-step derivation
                                1. +-lowering-+.f64N/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\left(-6 \cdot x2\right), \color{blue}{\left(x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right)\right) \]
                                2. *-lowering-*.f64N/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \left(\color{blue}{x1} \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)\right)\right) \]
                                3. *-lowering-*.f64N/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \color{blue}{\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)}\right)\right)\right) \]
                                4. sub-negN/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + \color{blue}{\left(\mathsf{neg}\left(2\right)\right)}\right)\right)\right)\right) \]
                                5. metadata-evalN/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + -2\right)\right)\right)\right) \]
                                6. +-lowering-+.f64N/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right), \color{blue}{-2}\right)\right)\right)\right) \]
                                7. associate-*r*N/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(\left(4 \cdot x2\right) \cdot \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                8. *-lowering-*.f64N/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(4 \cdot x2\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                9. *-commutativeN/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(x2 \cdot 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                10. *-lowering-*.f64N/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                11. sub-negN/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right), -2\right)\right)\right)\right) \]
                                12. metadata-evalN/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + -3\right)\right), -2\right)\right)\right)\right) \]
                                13. +-lowering-+.f64N/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                14. *-commutativeN/A

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                15. *-lowering-*.f6485.6%

                                  \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                              8. Simplified85.6%

                                \[\leadsto x1 + \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(\left(x2 \cdot 4\right) \cdot \left(x2 \cdot 2 + -3\right) + -2\right)\right)} \]
                              9. Taylor expanded in x2 around 0

                                \[\leadsto \color{blue}{x1 + \left(-2 \cdot x1 + x2 \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6\right)\right)} \]
                              10. Step-by-step derivation
                                1. associate-+r+N/A

                                  \[\leadsto \left(x1 + -2 \cdot x1\right) + \color{blue}{x2 \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6\right)} \]
                                2. +-lowering-+.f64N/A

                                  \[\leadsto \mathsf{+.f64}\left(\left(x1 + -2 \cdot x1\right), \color{blue}{\left(x2 \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6\right)\right)}\right) \]
                                3. distribute-rgt1-inN/A

                                  \[\leadsto \mathsf{+.f64}\left(\left(\left(-2 + 1\right) \cdot x1\right), \left(\color{blue}{x2} \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6\right)\right)\right) \]
                                4. metadata-evalN/A

                                  \[\leadsto \mathsf{+.f64}\left(\left(-1 \cdot x1\right), \left(x2 \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6\right)\right)\right) \]
                                5. mul-1-negN/A

                                  \[\leadsto \mathsf{+.f64}\left(\left(\mathsf{neg}\left(x1\right)\right), \left(\color{blue}{x2} \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6\right)\right)\right) \]
                                6. neg-sub0N/A

                                  \[\leadsto \mathsf{+.f64}\left(\left(0 - x1\right), \left(\color{blue}{x2} \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6\right)\right)\right) \]
                                7. --lowering--.f64N/A

                                  \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \left(\color{blue}{x2} \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6\right)\right)\right) \]
                                8. *-lowering-*.f64N/A

                                  \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \color{blue}{\left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6\right)}\right)\right) \]
                                9. associate--l+N/A

                                  \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \left(-12 \cdot x1 + \color{blue}{\left(8 \cdot \left(x1 \cdot x2\right) - 6\right)}\right)\right)\right) \]
                                10. +-lowering-+.f64N/A

                                  \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(-12 \cdot x1\right), \color{blue}{\left(8 \cdot \left(x1 \cdot x2\right) - 6\right)}\right)\right)\right) \]
                                11. *-commutativeN/A

                                  \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x1 \cdot -12\right), \left(\color{blue}{8 \cdot \left(x1 \cdot x2\right)} - 6\right)\right)\right)\right) \]
                                12. *-lowering-*.f64N/A

                                  \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, -12\right), \left(\color{blue}{8 \cdot \left(x1 \cdot x2\right)} - 6\right)\right)\right)\right) \]
                                13. sub-negN/A

                                  \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, -12\right), \left(8 \cdot \left(x1 \cdot x2\right) + \color{blue}{\left(\mathsf{neg}\left(6\right)\right)}\right)\right)\right)\right) \]
                                14. metadata-evalN/A

                                  \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, -12\right), \left(8 \cdot \left(x1 \cdot x2\right) + -6\right)\right)\right)\right) \]
                                15. +-lowering-+.f64N/A

                                  \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, -12\right), \mathsf{+.f64}\left(\left(8 \cdot \left(x1 \cdot x2\right)\right), \color{blue}{-6}\right)\right)\right)\right) \]
                                16. *-lowering-*.f64N/A

                                  \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, -12\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(8, \left(x1 \cdot x2\right)\right), -6\right)\right)\right)\right) \]
                                17. *-commutativeN/A

                                  \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, -12\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(8, \left(x2 \cdot x1\right)\right), -6\right)\right)\right)\right) \]
                                18. *-lowering-*.f6496.3%

                                  \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, -12\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(8, \mathsf{*.f64}\left(x2, x1\right)\right), -6\right)\right)\right)\right) \]
                              11. Simplified96.3%

                                \[\leadsto \color{blue}{\left(0 - x1\right) + x2 \cdot \left(x1 \cdot -12 + \left(8 \cdot \left(x2 \cdot x1\right) + -6\right)\right)} \]

                              if 6.2e11 < x1

                              1. Initial program 43.1%

                                \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                              2. Simplified43.2%

                                \[\leadsto \color{blue}{\frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{3}{x1 \cdot x1 + 1}\right)\right)\right)} \]
                              3. Add Preprocessing
                              4. Taylor expanded in x1 around inf

                                \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, -6\right)\right), \mathsf{*.f64}\left(\mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(-6, \mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(2, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right), \mathsf{/.f64}\left(2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 4\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, \color{blue}{9}\right)\right)\right)\right)\right)\right) \]
                              5. Step-by-step derivation
                                1. Simplified43.2%

                                  \[\leadsto \frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(x1 \cdot \left(x1 \cdot -6\right) + \frac{2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)}{x1 \cdot x1 + 1} \cdot \left(x1 \cdot \left(-6 + \left(2 \cdot x2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right) \cdot \frac{2}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot 4\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + \color{blue}{9}\right)\right)\right) \]
                                2. Taylor expanded in x1 around -inf

                                  \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \color{blue}{\left({x1}^{2} \cdot \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)}\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                                3. Step-by-step derivation
                                  1. *-lowering-*.f64N/A

                                    \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\left({x1}^{2}\right), \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                                  2. unpow2N/A

                                    \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\left(x1 \cdot x1\right), \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                                  3. *-lowering-*.f64N/A

                                    \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(6 + -1 \cdot \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                                  4. mul-1-negN/A

                                    \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(6 + \left(\mathsf{neg}\left(\frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                                  5. unsub-negN/A

                                    \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(6 - \frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                                  6. --lowering--.f64N/A

                                    \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \left(\frac{4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}}{x1}\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                                  7. /-lowering-/.f64N/A

                                    \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\left(4 + -1 \cdot \frac{8 \cdot x2 - 18}{x1}\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                                  8. mul-1-negN/A

                                    \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\left(4 + \left(\mathsf{neg}\left(\frac{8 \cdot x2 - 18}{x1}\right)\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                                  9. unsub-negN/A

                                    \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\left(4 - \frac{8 \cdot x2 - 18}{x1}\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                                  10. --lowering--.f64N/A

                                    \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \left(\frac{8 \cdot x2 - 18}{x1}\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                                  11. /-lowering-/.f64N/A

                                    \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\left(8 \cdot x2 - 18\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                                  12. sub-negN/A

                                    \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\left(8 \cdot x2 + \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                                  13. +-lowering-+.f64N/A

                                    \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\left(8 \cdot x2\right), \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                                  14. *-commutativeN/A

                                    \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\left(x2 \cdot 8\right), \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                                  15. *-lowering-*.f64N/A

                                    \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 8\right), \left(\mathsf{neg}\left(18\right)\right)\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                                  16. metadata-eval41.5%

                                    \[\leadsto \mathsf{+.f64}\left(\mathsf{/.f64}\left(\mathsf{*.f64}\left(3, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, -2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, 3\right), -1\right)\right)\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 8\right), -18\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                                4. Simplified41.5%

                                  \[\leadsto \frac{3 \cdot \left(x2 \cdot -2 + x1 \cdot \left(x1 \cdot 3 + -1\right)\right)}{x1 \cdot x1 + 1} + \left(\left(x1 \cdot x1 + 1\right) \cdot \color{blue}{\left(\left(x1 \cdot x1\right) \cdot \left(6 - \frac{4 - \frac{x2 \cdot 8 + -18}{x1}}{x1}\right)\right)} + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right) \]
                                5. Taylor expanded in x1 around inf

                                  \[\leadsto \mathsf{+.f64}\left(\color{blue}{9}, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{\_.f64}\left(6, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(4, \mathsf{/.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 8\right), -18\right), x1\right)\right), x1\right)\right)\right)\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(2, \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(x1, 9\right)\right)\right)\right)\right)\right) \]
                                6. Step-by-step derivation
                                  1. Simplified96.5%

                                    \[\leadsto \color{blue}{9} + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 - \frac{4 - \frac{x2 \cdot 8 + -18}{x1}}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right) \]
                                7. Recombined 3 regimes into one program.
                                8. Final simplification94.5%

                                  \[\leadsto \begin{array}{l} \mathbf{if}\;x1 \leq -80000:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{elif}\;x1 \leq 620000000000:\\ \;\;\;\;x2 \cdot \left(x1 \cdot -12 + \left(-6 + 8 \cdot \left(x1 \cdot x2\right)\right)\right) - x1\\ \mathbf{else}:\\ \;\;\;\;9 + \left(\left(x1 \cdot x1 + 1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot \left(6 + \frac{\frac{x2 \cdot 8 + -18}{x1} - 4}{x1}\right)\right) + x1 \cdot \left(2 + x1 \cdot \left(x1 + 9\right)\right)\right)\\ \end{array} \]
                                9. Add Preprocessing

                                Alternative 9: 44.0% accurate, 3.6× speedup?

                                \[\begin{array}{l} \\ \begin{array}{l} t_0 := x2 \cdot \left(-6 + \frac{x1}{x2}\right)\\ t_1 := 8 \cdot \left(x1 \cdot \left(x2 \cdot x2\right)\right)\\ \mathbf{if}\;2 \cdot x2 \leq -2 \cdot 10^{+46}:\\ \;\;\;\;t\_1\\ \mathbf{elif}\;2 \cdot x2 \leq -1 \cdot 10^{-160}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;2 \cdot x2 \leq 5 \cdot 10^{-213}:\\ \;\;\;\;0 - x1\\ \mathbf{elif}\;2 \cdot x2 \leq 10^{+140}:\\ \;\;\;\;t\_0\\ \mathbf{else}:\\ \;\;\;\;t\_1\\ \end{array} \end{array} \]
                                (FPCore (x1 x2)
                                 :precision binary64
                                 (let* ((t_0 (* x2 (+ -6.0 (/ x1 x2)))) (t_1 (* 8.0 (* x1 (* x2 x2)))))
                                   (if (<= (* 2.0 x2) -2e+46)
                                     t_1
                                     (if (<= (* 2.0 x2) -1e-160)
                                       t_0
                                       (if (<= (* 2.0 x2) 5e-213)
                                         (- 0.0 x1)
                                         (if (<= (* 2.0 x2) 1e+140) t_0 t_1))))))
                                double code(double x1, double x2) {
                                	double t_0 = x2 * (-6.0 + (x1 / x2));
                                	double t_1 = 8.0 * (x1 * (x2 * x2));
                                	double tmp;
                                	if ((2.0 * x2) <= -2e+46) {
                                		tmp = t_1;
                                	} else if ((2.0 * x2) <= -1e-160) {
                                		tmp = t_0;
                                	} else if ((2.0 * x2) <= 5e-213) {
                                		tmp = 0.0 - x1;
                                	} else if ((2.0 * x2) <= 1e+140) {
                                		tmp = t_0;
                                	} else {
                                		tmp = t_1;
                                	}
                                	return tmp;
                                }
                                
                                real(8) function code(x1, x2)
                                    real(8), intent (in) :: x1
                                    real(8), intent (in) :: x2
                                    real(8) :: t_0
                                    real(8) :: t_1
                                    real(8) :: tmp
                                    t_0 = x2 * ((-6.0d0) + (x1 / x2))
                                    t_1 = 8.0d0 * (x1 * (x2 * x2))
                                    if ((2.0d0 * x2) <= (-2d+46)) then
                                        tmp = t_1
                                    else if ((2.0d0 * x2) <= (-1d-160)) then
                                        tmp = t_0
                                    else if ((2.0d0 * x2) <= 5d-213) then
                                        tmp = 0.0d0 - x1
                                    else if ((2.0d0 * x2) <= 1d+140) then
                                        tmp = t_0
                                    else
                                        tmp = t_1
                                    end if
                                    code = tmp
                                end function
                                
                                public static double code(double x1, double x2) {
                                	double t_0 = x2 * (-6.0 + (x1 / x2));
                                	double t_1 = 8.0 * (x1 * (x2 * x2));
                                	double tmp;
                                	if ((2.0 * x2) <= -2e+46) {
                                		tmp = t_1;
                                	} else if ((2.0 * x2) <= -1e-160) {
                                		tmp = t_0;
                                	} else if ((2.0 * x2) <= 5e-213) {
                                		tmp = 0.0 - x1;
                                	} else if ((2.0 * x2) <= 1e+140) {
                                		tmp = t_0;
                                	} else {
                                		tmp = t_1;
                                	}
                                	return tmp;
                                }
                                
                                def code(x1, x2):
                                	t_0 = x2 * (-6.0 + (x1 / x2))
                                	t_1 = 8.0 * (x1 * (x2 * x2))
                                	tmp = 0
                                	if (2.0 * x2) <= -2e+46:
                                		tmp = t_1
                                	elif (2.0 * x2) <= -1e-160:
                                		tmp = t_0
                                	elif (2.0 * x2) <= 5e-213:
                                		tmp = 0.0 - x1
                                	elif (2.0 * x2) <= 1e+140:
                                		tmp = t_0
                                	else:
                                		tmp = t_1
                                	return tmp
                                
                                function code(x1, x2)
                                	t_0 = Float64(x2 * Float64(-6.0 + Float64(x1 / x2)))
                                	t_1 = Float64(8.0 * Float64(x1 * Float64(x2 * x2)))
                                	tmp = 0.0
                                	if (Float64(2.0 * x2) <= -2e+46)
                                		tmp = t_1;
                                	elseif (Float64(2.0 * x2) <= -1e-160)
                                		tmp = t_0;
                                	elseif (Float64(2.0 * x2) <= 5e-213)
                                		tmp = Float64(0.0 - x1);
                                	elseif (Float64(2.0 * x2) <= 1e+140)
                                		tmp = t_0;
                                	else
                                		tmp = t_1;
                                	end
                                	return tmp
                                end
                                
                                function tmp_2 = code(x1, x2)
                                	t_0 = x2 * (-6.0 + (x1 / x2));
                                	t_1 = 8.0 * (x1 * (x2 * x2));
                                	tmp = 0.0;
                                	if ((2.0 * x2) <= -2e+46)
                                		tmp = t_1;
                                	elseif ((2.0 * x2) <= -1e-160)
                                		tmp = t_0;
                                	elseif ((2.0 * x2) <= 5e-213)
                                		tmp = 0.0 - x1;
                                	elseif ((2.0 * x2) <= 1e+140)
                                		tmp = t_0;
                                	else
                                		tmp = t_1;
                                	end
                                	tmp_2 = tmp;
                                end
                                
                                code[x1_, x2_] := Block[{t$95$0 = N[(x2 * N[(-6.0 + N[(x1 / x2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(8.0 * N[(x1 * N[(x2 * x2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[N[(2.0 * x2), $MachinePrecision], -2e+46], t$95$1, If[LessEqual[N[(2.0 * x2), $MachinePrecision], -1e-160], t$95$0, If[LessEqual[N[(2.0 * x2), $MachinePrecision], 5e-213], N[(0.0 - x1), $MachinePrecision], If[LessEqual[N[(2.0 * x2), $MachinePrecision], 1e+140], t$95$0, t$95$1]]]]]]
                                
                                \begin{array}{l}
                                
                                \\
                                \begin{array}{l}
                                t_0 := x2 \cdot \left(-6 + \frac{x1}{x2}\right)\\
                                t_1 := 8 \cdot \left(x1 \cdot \left(x2 \cdot x2\right)\right)\\
                                \mathbf{if}\;2 \cdot x2 \leq -2 \cdot 10^{+46}:\\
                                \;\;\;\;t\_1\\
                                
                                \mathbf{elif}\;2 \cdot x2 \leq -1 \cdot 10^{-160}:\\
                                \;\;\;\;t\_0\\
                                
                                \mathbf{elif}\;2 \cdot x2 \leq 5 \cdot 10^{-213}:\\
                                \;\;\;\;0 - x1\\
                                
                                \mathbf{elif}\;2 \cdot x2 \leq 10^{+140}:\\
                                \;\;\;\;t\_0\\
                                
                                \mathbf{else}:\\
                                \;\;\;\;t\_1\\
                                
                                
                                \end{array}
                                \end{array}
                                
                                Derivation
                                1. Split input into 3 regimes
                                2. if (*.f64 #s(literal 2 binary64) x2) < -2e46 or 1.00000000000000006e140 < (*.f64 #s(literal 2 binary64) x2)

                                  1. Initial program 64.2%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\color{blue}{\left(4 \cdot \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right)}, x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    7. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    8. *-lowering-*.f6437.6%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  5. Simplified37.6%

                                    \[\leadsto x1 + \left(\left(\color{blue}{4 \cdot \left(x1 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right)\right)} + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  6. Taylor expanded in x2 around inf

                                    \[\leadsto \color{blue}{8 \cdot \left(x1 \cdot {x2}^{2}\right)} \]
                                  7. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(8, \color{blue}{\left(x1 \cdot {x2}^{2}\right)}\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(8, \mathsf{*.f64}\left(x1, \color{blue}{\left({x2}^{2}\right)}\right)\right) \]
                                    3. unpow2N/A

                                      \[\leadsto \mathsf{*.f64}\left(8, \mathsf{*.f64}\left(x1, \left(x2 \cdot \color{blue}{x2}\right)\right)\right) \]
                                    4. *-lowering-*.f6449.8%

                                      \[\leadsto \mathsf{*.f64}\left(8, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \color{blue}{x2}\right)\right)\right) \]
                                  8. Simplified49.8%

                                    \[\leadsto \color{blue}{8 \cdot \left(x1 \cdot \left(x2 \cdot x2\right)\right)} \]

                                  if -2e46 < (*.f64 #s(literal 2 binary64) x2) < -9.9999999999999999e-161 or 4.99999999999999977e-213 < (*.f64 #s(literal 2 binary64) x2) < 1.00000000000000006e140

                                  1. Initial program 70.2%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \color{blue}{\left(-6 \cdot x2\right)}\right) \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f6434.2%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{*.f64}\left(-6, \color{blue}{x2}\right)\right) \]
                                  5. Simplified34.2%

                                    \[\leadsto x1 + \color{blue}{-6 \cdot x2} \]
                                  6. Taylor expanded in x2 around inf

                                    \[\leadsto \color{blue}{x2 \cdot \left(\frac{x1}{x2} - 6\right)} \]
                                  7. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(x2, \color{blue}{\left(\frac{x1}{x2} - 6\right)}\right) \]
                                    2. sub-negN/A

                                      \[\leadsto \mathsf{*.f64}\left(x2, \left(\frac{x1}{x2} + \color{blue}{\left(\mathsf{neg}\left(6\right)\right)}\right)\right) \]
                                    3. metadata-evalN/A

                                      \[\leadsto \mathsf{*.f64}\left(x2, \left(\frac{x1}{x2} + -6\right)\right) \]
                                    4. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(\frac{x1}{x2}\right), \color{blue}{-6}\right)\right) \]
                                    5. /-lowering-/.f6440.8%

                                      \[\leadsto \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{/.f64}\left(x1, x2\right), -6\right)\right) \]
                                  8. Simplified40.8%

                                    \[\leadsto \color{blue}{x2 \cdot \left(\frac{x1}{x2} + -6\right)} \]

                                  if -9.9999999999999999e-161 < (*.f64 #s(literal 2 binary64) x2) < 4.99999999999999977e-213

                                  1. Initial program 78.2%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\color{blue}{\left(4 \cdot \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right)}, x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    7. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    8. *-lowering-*.f6455.5%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  5. Simplified55.5%

                                    \[\leadsto x1 + \left(\left(\color{blue}{4 \cdot \left(x1 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right)\right)} + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  6. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right) \]
                                  7. Step-by-step derivation
                                    1. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\left(-6 \cdot x2\right), \color{blue}{\left(x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \left(\color{blue}{x1} \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \color{blue}{\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)}\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + \color{blue}{\left(\mathsf{neg}\left(2\right)\right)}\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + -2\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right), \color{blue}{-2}\right)\right)\right)\right) \]
                                    7. associate-*r*N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(\left(4 \cdot x2\right) \cdot \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    8. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(4 \cdot x2\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    9. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(x2 \cdot 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    10. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    11. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right), -2\right)\right)\right)\right) \]
                                    12. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + -3\right)\right), -2\right)\right)\right)\right) \]
                                    13. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                    14. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                    15. *-lowering-*.f6456.1%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                  8. Simplified56.1%

                                    \[\leadsto x1 + \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(\left(x2 \cdot 4\right) \cdot \left(x2 \cdot 2 + -3\right) + -2\right)\right)} \]
                                  9. Taylor expanded in x2 around 0

                                    \[\leadsto \color{blue}{x1 + -2 \cdot x1} \]
                                  10. Step-by-step derivation
                                    1. distribute-rgt1-inN/A

                                      \[\leadsto \left(-2 + 1\right) \cdot \color{blue}{x1} \]
                                    2. metadata-evalN/A

                                      \[\leadsto -1 \cdot x1 \]
                                    3. mul-1-negN/A

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

                                      \[\leadsto 0 - \color{blue}{x1} \]
                                    5. --lowering--.f6444.5%

                                      \[\leadsto \mathsf{\_.f64}\left(0, \color{blue}{x1}\right) \]
                                  11. Simplified44.5%

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

                                  \[\leadsto \begin{array}{l} \mathbf{if}\;2 \cdot x2 \leq -2 \cdot 10^{+46}:\\ \;\;\;\;8 \cdot \left(x1 \cdot \left(x2 \cdot x2\right)\right)\\ \mathbf{elif}\;2 \cdot x2 \leq -1 \cdot 10^{-160}:\\ \;\;\;\;x2 \cdot \left(-6 + \frac{x1}{x2}\right)\\ \mathbf{elif}\;2 \cdot x2 \leq 5 \cdot 10^{-213}:\\ \;\;\;\;0 - x1\\ \mathbf{elif}\;2 \cdot x2 \leq 10^{+140}:\\ \;\;\;\;x2 \cdot \left(-6 + \frac{x1}{x2}\right)\\ \mathbf{else}:\\ \;\;\;\;8 \cdot \left(x1 \cdot \left(x2 \cdot x2\right)\right)\\ \end{array} \]
                                5. Add Preprocessing

                                Alternative 10: 71.2% accurate, 4.4× speedup?

                                \[\begin{array}{l} \\ \begin{array}{l} t_0 := 6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{if}\;x1 \leq -1.85 \cdot 10^{-6}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x1 \leq -3.1 \cdot 10^{-86}:\\ \;\;\;\;0 - x1\\ \mathbf{elif}\;x1 \leq 4 \cdot 10^{-133}:\\ \;\;\;\;x2 \cdot -6\\ \mathbf{elif}\;x1 \leq 16500000000000:\\ \;\;\;\;8 \cdot \left(x1 \cdot \left(x2 \cdot x2\right)\right)\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
                                (FPCore (x1 x2)
                                 :precision binary64
                                 (let* ((t_0 (* 6.0 (* x1 (* x1 (* x1 x1))))))
                                   (if (<= x1 -1.85e-6)
                                     t_0
                                     (if (<= x1 -3.1e-86)
                                       (- 0.0 x1)
                                       (if (<= x1 4e-133)
                                         (* x2 -6.0)
                                         (if (<= x1 16500000000000.0) (* 8.0 (* x1 (* x2 x2))) t_0))))))
                                double code(double x1, double x2) {
                                	double t_0 = 6.0 * (x1 * (x1 * (x1 * x1)));
                                	double tmp;
                                	if (x1 <= -1.85e-6) {
                                		tmp = t_0;
                                	} else if (x1 <= -3.1e-86) {
                                		tmp = 0.0 - x1;
                                	} else if (x1 <= 4e-133) {
                                		tmp = x2 * -6.0;
                                	} else if (x1 <= 16500000000000.0) {
                                		tmp = 8.0 * (x1 * (x2 * x2));
                                	} else {
                                		tmp = t_0;
                                	}
                                	return tmp;
                                }
                                
                                real(8) function code(x1, x2)
                                    real(8), intent (in) :: x1
                                    real(8), intent (in) :: x2
                                    real(8) :: t_0
                                    real(8) :: tmp
                                    t_0 = 6.0d0 * (x1 * (x1 * (x1 * x1)))
                                    if (x1 <= (-1.85d-6)) then
                                        tmp = t_0
                                    else if (x1 <= (-3.1d-86)) then
                                        tmp = 0.0d0 - x1
                                    else if (x1 <= 4d-133) then
                                        tmp = x2 * (-6.0d0)
                                    else if (x1 <= 16500000000000.0d0) then
                                        tmp = 8.0d0 * (x1 * (x2 * x2))
                                    else
                                        tmp = t_0
                                    end if
                                    code = tmp
                                end function
                                
                                public static double code(double x1, double x2) {
                                	double t_0 = 6.0 * (x1 * (x1 * (x1 * x1)));
                                	double tmp;
                                	if (x1 <= -1.85e-6) {
                                		tmp = t_0;
                                	} else if (x1 <= -3.1e-86) {
                                		tmp = 0.0 - x1;
                                	} else if (x1 <= 4e-133) {
                                		tmp = x2 * -6.0;
                                	} else if (x1 <= 16500000000000.0) {
                                		tmp = 8.0 * (x1 * (x2 * x2));
                                	} else {
                                		tmp = t_0;
                                	}
                                	return tmp;
                                }
                                
                                def code(x1, x2):
                                	t_0 = 6.0 * (x1 * (x1 * (x1 * x1)))
                                	tmp = 0
                                	if x1 <= -1.85e-6:
                                		tmp = t_0
                                	elif x1 <= -3.1e-86:
                                		tmp = 0.0 - x1
                                	elif x1 <= 4e-133:
                                		tmp = x2 * -6.0
                                	elif x1 <= 16500000000000.0:
                                		tmp = 8.0 * (x1 * (x2 * x2))
                                	else:
                                		tmp = t_0
                                	return tmp
                                
                                function code(x1, x2)
                                	t_0 = Float64(6.0 * Float64(x1 * Float64(x1 * Float64(x1 * x1))))
                                	tmp = 0.0
                                	if (x1 <= -1.85e-6)
                                		tmp = t_0;
                                	elseif (x1 <= -3.1e-86)
                                		tmp = Float64(0.0 - x1);
                                	elseif (x1 <= 4e-133)
                                		tmp = Float64(x2 * -6.0);
                                	elseif (x1 <= 16500000000000.0)
                                		tmp = Float64(8.0 * Float64(x1 * Float64(x2 * x2)));
                                	else
                                		tmp = t_0;
                                	end
                                	return tmp
                                end
                                
                                function tmp_2 = code(x1, x2)
                                	t_0 = 6.0 * (x1 * (x1 * (x1 * x1)));
                                	tmp = 0.0;
                                	if (x1 <= -1.85e-6)
                                		tmp = t_0;
                                	elseif (x1 <= -3.1e-86)
                                		tmp = 0.0 - x1;
                                	elseif (x1 <= 4e-133)
                                		tmp = x2 * -6.0;
                                	elseif (x1 <= 16500000000000.0)
                                		tmp = 8.0 * (x1 * (x2 * x2));
                                	else
                                		tmp = t_0;
                                	end
                                	tmp_2 = tmp;
                                end
                                
                                code[x1_, x2_] := Block[{t$95$0 = N[(6.0 * N[(x1 * N[(x1 * N[(x1 * x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x1, -1.85e-6], t$95$0, If[LessEqual[x1, -3.1e-86], N[(0.0 - x1), $MachinePrecision], If[LessEqual[x1, 4e-133], N[(x2 * -6.0), $MachinePrecision], If[LessEqual[x1, 16500000000000.0], N[(8.0 * N[(x1 * N[(x2 * x2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]]]
                                
                                \begin{array}{l}
                                
                                \\
                                \begin{array}{l}
                                t_0 := 6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\
                                \mathbf{if}\;x1 \leq -1.85 \cdot 10^{-6}:\\
                                \;\;\;\;t\_0\\
                                
                                \mathbf{elif}\;x1 \leq -3.1 \cdot 10^{-86}:\\
                                \;\;\;\;0 - x1\\
                                
                                \mathbf{elif}\;x1 \leq 4 \cdot 10^{-133}:\\
                                \;\;\;\;x2 \cdot -6\\
                                
                                \mathbf{elif}\;x1 \leq 16500000000000:\\
                                \;\;\;\;8 \cdot \left(x1 \cdot \left(x2 \cdot x2\right)\right)\\
                                
                                \mathbf{else}:\\
                                \;\;\;\;t\_0\\
                                
                                
                                \end{array}
                                \end{array}
                                
                                Derivation
                                1. Split input into 4 regimes
                                2. if x1 < -1.8500000000000001e-6 or 1.65e13 < x1

                                  1. Initial program 42.7%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around inf

                                    \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(6, \color{blue}{\left({x1}^{4}\right)}\right) \]
                                    2. pow-lowering-pow.f6490.8%

                                      \[\leadsto \mathsf{*.f64}\left(6, \mathsf{pow.f64}\left(x1, \color{blue}{4}\right)\right) \]
                                  5. Simplified90.8%

                                    \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
                                  6. Step-by-step derivation
                                    1. metadata-evalN/A

                                      \[\leadsto 6 \cdot {x1}^{\left(2 + \color{blue}{2}\right)} \]
                                    2. pow-prod-upN/A

                                      \[\leadsto 6 \cdot \left({x1}^{2} \cdot \color{blue}{{x1}^{2}}\right) \]
                                    3. pow2N/A

                                      \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot {\color{blue}{x1}}^{2}\right) \]
                                    4. pow2N/A

                                      \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot \color{blue}{x1}\right)\right) \]
                                    5. *-commutativeN/A

                                      \[\leadsto \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right) \cdot \color{blue}{6} \]
                                    6. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(\left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right), \color{blue}{6}\right) \]
                                    7. associate-*l*N/A

                                      \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                                    8. cube-multN/A

                                      \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot {x1}^{3}\right), 6\right) \]
                                    9. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left({x1}^{3}\right)\right), 6\right) \]
                                    10. cube-multN/A

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                                    11. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                                    12. *-lowering-*.f6490.8%

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, x1\right)\right)\right), 6\right) \]
                                  7. Applied egg-rr90.8%

                                    \[\leadsto \color{blue}{\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right) \cdot 6} \]

                                  if -1.8500000000000001e-6 < x1 < -3.09999999999999989e-86

                                  1. Initial program 99.0%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\color{blue}{\left(4 \cdot \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right)}, x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    7. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    8. *-lowering-*.f6497.8%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  5. Simplified97.8%

                                    \[\leadsto x1 + \left(\left(\color{blue}{4 \cdot \left(x1 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right)\right)} + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  6. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right) \]
                                  7. Step-by-step derivation
                                    1. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\left(-6 \cdot x2\right), \color{blue}{\left(x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \left(\color{blue}{x1} \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \color{blue}{\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)}\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + \color{blue}{\left(\mathsf{neg}\left(2\right)\right)}\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + -2\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right), \color{blue}{-2}\right)\right)\right)\right) \]
                                    7. associate-*r*N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(\left(4 \cdot x2\right) \cdot \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    8. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(4 \cdot x2\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    9. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(x2 \cdot 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    10. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    11. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right), -2\right)\right)\right)\right) \]
                                    12. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + -3\right)\right), -2\right)\right)\right)\right) \]
                                    13. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                    14. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                    15. *-lowering-*.f6495.9%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                  8. Simplified95.9%

                                    \[\leadsto x1 + \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(\left(x2 \cdot 4\right) \cdot \left(x2 \cdot 2 + -3\right) + -2\right)\right)} \]
                                  9. Taylor expanded in x2 around 0

                                    \[\leadsto \color{blue}{x1 + -2 \cdot x1} \]
                                  10. Step-by-step derivation
                                    1. distribute-rgt1-inN/A

                                      \[\leadsto \left(-2 + 1\right) \cdot \color{blue}{x1} \]
                                    2. metadata-evalN/A

                                      \[\leadsto -1 \cdot x1 \]
                                    3. mul-1-negN/A

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

                                      \[\leadsto 0 - \color{blue}{x1} \]
                                    5. --lowering--.f6463.3%

                                      \[\leadsto \mathsf{\_.f64}\left(0, \color{blue}{x1}\right) \]
                                  11. Simplified63.3%

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

                                  if -3.09999999999999989e-86 < x1 < 4.0000000000000003e-133

                                  1. Initial program 99.6%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \color{blue}{-6 \cdot x2} \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f6471.5%

                                      \[\leadsto \mathsf{*.f64}\left(-6, \color{blue}{x2}\right) \]
                                  5. Simplified71.5%

                                    \[\leadsto \color{blue}{-6 \cdot x2} \]

                                  if 4.0000000000000003e-133 < x1 < 1.65e13

                                  1. Initial program 99.1%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\color{blue}{\left(4 \cdot \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right)}, x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    7. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    8. *-lowering-*.f6482.6%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  5. Simplified82.6%

                                    \[\leadsto x1 + \left(\left(\color{blue}{4 \cdot \left(x1 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right)\right)} + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  6. Taylor expanded in x2 around inf

                                    \[\leadsto \color{blue}{8 \cdot \left(x1 \cdot {x2}^{2}\right)} \]
                                  7. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(8, \color{blue}{\left(x1 \cdot {x2}^{2}\right)}\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(8, \mathsf{*.f64}\left(x1, \color{blue}{\left({x2}^{2}\right)}\right)\right) \]
                                    3. unpow2N/A

                                      \[\leadsto \mathsf{*.f64}\left(8, \mathsf{*.f64}\left(x1, \left(x2 \cdot \color{blue}{x2}\right)\right)\right) \]
                                    4. *-lowering-*.f6439.2%

                                      \[\leadsto \mathsf{*.f64}\left(8, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \color{blue}{x2}\right)\right)\right) \]
                                  8. Simplified39.2%

                                    \[\leadsto \color{blue}{8 \cdot \left(x1 \cdot \left(x2 \cdot x2\right)\right)} \]
                                3. Recombined 4 regimes into one program.
                                4. Final simplification77.0%

                                  \[\leadsto \begin{array}{l} \mathbf{if}\;x1 \leq -1.85 \cdot 10^{-6}:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{elif}\;x1 \leq -3.1 \cdot 10^{-86}:\\ \;\;\;\;0 - x1\\ \mathbf{elif}\;x1 \leq 4 \cdot 10^{-133}:\\ \;\;\;\;x2 \cdot -6\\ \mathbf{elif}\;x1 \leq 16500000000000:\\ \;\;\;\;8 \cdot \left(x1 \cdot \left(x2 \cdot x2\right)\right)\\ \mathbf{else}:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \end{array} \]
                                5. Add Preprocessing

                                Alternative 11: 71.2% accurate, 4.4× speedup?

                                \[\begin{array}{l} \\ \begin{array}{l} t_0 := \left(x1 \cdot x1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot 6\right)\\ \mathbf{if}\;x1 \leq -1.85 \cdot 10^{-6}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x1 \leq -2.1 \cdot 10^{-84}:\\ \;\;\;\;0 - x1\\ \mathbf{elif}\;x1 \leq 4 \cdot 10^{-133}:\\ \;\;\;\;x2 \cdot -6\\ \mathbf{elif}\;x1 \leq 1350000000000:\\ \;\;\;\;8 \cdot \left(x1 \cdot \left(x2 \cdot x2\right)\right)\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
                                (FPCore (x1 x2)
                                 :precision binary64
                                 (let* ((t_0 (* (* x1 x1) (* (* x1 x1) 6.0))))
                                   (if (<= x1 -1.85e-6)
                                     t_0
                                     (if (<= x1 -2.1e-84)
                                       (- 0.0 x1)
                                       (if (<= x1 4e-133)
                                         (* x2 -6.0)
                                         (if (<= x1 1350000000000.0) (* 8.0 (* x1 (* x2 x2))) t_0))))))
                                double code(double x1, double x2) {
                                	double t_0 = (x1 * x1) * ((x1 * x1) * 6.0);
                                	double tmp;
                                	if (x1 <= -1.85e-6) {
                                		tmp = t_0;
                                	} else if (x1 <= -2.1e-84) {
                                		tmp = 0.0 - x1;
                                	} else if (x1 <= 4e-133) {
                                		tmp = x2 * -6.0;
                                	} else if (x1 <= 1350000000000.0) {
                                		tmp = 8.0 * (x1 * (x2 * x2));
                                	} else {
                                		tmp = t_0;
                                	}
                                	return tmp;
                                }
                                
                                real(8) function code(x1, x2)
                                    real(8), intent (in) :: x1
                                    real(8), intent (in) :: x2
                                    real(8) :: t_0
                                    real(8) :: tmp
                                    t_0 = (x1 * x1) * ((x1 * x1) * 6.0d0)
                                    if (x1 <= (-1.85d-6)) then
                                        tmp = t_0
                                    else if (x1 <= (-2.1d-84)) then
                                        tmp = 0.0d0 - x1
                                    else if (x1 <= 4d-133) then
                                        tmp = x2 * (-6.0d0)
                                    else if (x1 <= 1350000000000.0d0) then
                                        tmp = 8.0d0 * (x1 * (x2 * x2))
                                    else
                                        tmp = t_0
                                    end if
                                    code = tmp
                                end function
                                
                                public static double code(double x1, double x2) {
                                	double t_0 = (x1 * x1) * ((x1 * x1) * 6.0);
                                	double tmp;
                                	if (x1 <= -1.85e-6) {
                                		tmp = t_0;
                                	} else if (x1 <= -2.1e-84) {
                                		tmp = 0.0 - x1;
                                	} else if (x1 <= 4e-133) {
                                		tmp = x2 * -6.0;
                                	} else if (x1 <= 1350000000000.0) {
                                		tmp = 8.0 * (x1 * (x2 * x2));
                                	} else {
                                		tmp = t_0;
                                	}
                                	return tmp;
                                }
                                
                                def code(x1, x2):
                                	t_0 = (x1 * x1) * ((x1 * x1) * 6.0)
                                	tmp = 0
                                	if x1 <= -1.85e-6:
                                		tmp = t_0
                                	elif x1 <= -2.1e-84:
                                		tmp = 0.0 - x1
                                	elif x1 <= 4e-133:
                                		tmp = x2 * -6.0
                                	elif x1 <= 1350000000000.0:
                                		tmp = 8.0 * (x1 * (x2 * x2))
                                	else:
                                		tmp = t_0
                                	return tmp
                                
                                function code(x1, x2)
                                	t_0 = Float64(Float64(x1 * x1) * Float64(Float64(x1 * x1) * 6.0))
                                	tmp = 0.0
                                	if (x1 <= -1.85e-6)
                                		tmp = t_0;
                                	elseif (x1 <= -2.1e-84)
                                		tmp = Float64(0.0 - x1);
                                	elseif (x1 <= 4e-133)
                                		tmp = Float64(x2 * -6.0);
                                	elseif (x1 <= 1350000000000.0)
                                		tmp = Float64(8.0 * Float64(x1 * Float64(x2 * x2)));
                                	else
                                		tmp = t_0;
                                	end
                                	return tmp
                                end
                                
                                function tmp_2 = code(x1, x2)
                                	t_0 = (x1 * x1) * ((x1 * x1) * 6.0);
                                	tmp = 0.0;
                                	if (x1 <= -1.85e-6)
                                		tmp = t_0;
                                	elseif (x1 <= -2.1e-84)
                                		tmp = 0.0 - x1;
                                	elseif (x1 <= 4e-133)
                                		tmp = x2 * -6.0;
                                	elseif (x1 <= 1350000000000.0)
                                		tmp = 8.0 * (x1 * (x2 * x2));
                                	else
                                		tmp = t_0;
                                	end
                                	tmp_2 = tmp;
                                end
                                
                                code[x1_, x2_] := Block[{t$95$0 = N[(N[(x1 * x1), $MachinePrecision] * N[(N[(x1 * x1), $MachinePrecision] * 6.0), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x1, -1.85e-6], t$95$0, If[LessEqual[x1, -2.1e-84], N[(0.0 - x1), $MachinePrecision], If[LessEqual[x1, 4e-133], N[(x2 * -6.0), $MachinePrecision], If[LessEqual[x1, 1350000000000.0], N[(8.0 * N[(x1 * N[(x2 * x2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]]]
                                
                                \begin{array}{l}
                                
                                \\
                                \begin{array}{l}
                                t_0 := \left(x1 \cdot x1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot 6\right)\\
                                \mathbf{if}\;x1 \leq -1.85 \cdot 10^{-6}:\\
                                \;\;\;\;t\_0\\
                                
                                \mathbf{elif}\;x1 \leq -2.1 \cdot 10^{-84}:\\
                                \;\;\;\;0 - x1\\
                                
                                \mathbf{elif}\;x1 \leq 4 \cdot 10^{-133}:\\
                                \;\;\;\;x2 \cdot -6\\
                                
                                \mathbf{elif}\;x1 \leq 1350000000000:\\
                                \;\;\;\;8 \cdot \left(x1 \cdot \left(x2 \cdot x2\right)\right)\\
                                
                                \mathbf{else}:\\
                                \;\;\;\;t\_0\\
                                
                                
                                \end{array}
                                \end{array}
                                
                                Derivation
                                1. Split input into 4 regimes
                                2. if x1 < -1.8500000000000001e-6 or 1.35e12 < x1

                                  1. Initial program 42.7%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around inf

                                    \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(6, \color{blue}{\left({x1}^{4}\right)}\right) \]
                                    2. pow-lowering-pow.f6490.8%

                                      \[\leadsto \mathsf{*.f64}\left(6, \mathsf{pow.f64}\left(x1, \color{blue}{4}\right)\right) \]
                                  5. Simplified90.8%

                                    \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
                                  6. Step-by-step derivation
                                    1. metadata-evalN/A

                                      \[\leadsto 6 \cdot {x1}^{\left(2 + \color{blue}{2}\right)} \]
                                    2. pow-prod-upN/A

                                      \[\leadsto 6 \cdot \left({x1}^{2} \cdot \color{blue}{{x1}^{2}}\right) \]
                                    3. pow2N/A

                                      \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot {\color{blue}{x1}}^{2}\right) \]
                                    4. pow2N/A

                                      \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot \color{blue}{x1}\right)\right) \]
                                    5. *-commutativeN/A

                                      \[\leadsto \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right) \cdot \color{blue}{6} \]
                                    6. associate-*l*N/A

                                      \[\leadsto \left(x1 \cdot x1\right) \cdot \color{blue}{\left(\left(x1 \cdot x1\right) \cdot 6\right)} \]
                                    7. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot x1\right), \color{blue}{\left(\left(x1 \cdot x1\right) \cdot 6\right)}\right) \]
                                    8. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \left(\color{blue}{\left(x1 \cdot x1\right)} \cdot 6\right)\right) \]
                                    9. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{*.f64}\left(\left(x1 \cdot x1\right), \color{blue}{6}\right)\right) \]
                                    10. *-lowering-*.f6490.7%

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 6\right)\right) \]
                                  7. Applied egg-rr90.7%

                                    \[\leadsto \color{blue}{\left(x1 \cdot x1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot 6\right)} \]

                                  if -1.8500000000000001e-6 < x1 < -2.09999999999999998e-84

                                  1. Initial program 99.0%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\color{blue}{\left(4 \cdot \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right)}, x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    7. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    8. *-lowering-*.f6497.8%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  5. Simplified97.8%

                                    \[\leadsto x1 + \left(\left(\color{blue}{4 \cdot \left(x1 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right)\right)} + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  6. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right) \]
                                  7. Step-by-step derivation
                                    1. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\left(-6 \cdot x2\right), \color{blue}{\left(x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \left(\color{blue}{x1} \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \color{blue}{\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)}\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + \color{blue}{\left(\mathsf{neg}\left(2\right)\right)}\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + -2\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right), \color{blue}{-2}\right)\right)\right)\right) \]
                                    7. associate-*r*N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(\left(4 \cdot x2\right) \cdot \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    8. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(4 \cdot x2\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    9. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(x2 \cdot 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    10. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    11. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right), -2\right)\right)\right)\right) \]
                                    12. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + -3\right)\right), -2\right)\right)\right)\right) \]
                                    13. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                    14. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                    15. *-lowering-*.f6495.9%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                  8. Simplified95.9%

                                    \[\leadsto x1 + \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(\left(x2 \cdot 4\right) \cdot \left(x2 \cdot 2 + -3\right) + -2\right)\right)} \]
                                  9. Taylor expanded in x2 around 0

                                    \[\leadsto \color{blue}{x1 + -2 \cdot x1} \]
                                  10. Step-by-step derivation
                                    1. distribute-rgt1-inN/A

                                      \[\leadsto \left(-2 + 1\right) \cdot \color{blue}{x1} \]
                                    2. metadata-evalN/A

                                      \[\leadsto -1 \cdot x1 \]
                                    3. mul-1-negN/A

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

                                      \[\leadsto 0 - \color{blue}{x1} \]
                                    5. --lowering--.f6463.3%

                                      \[\leadsto \mathsf{\_.f64}\left(0, \color{blue}{x1}\right) \]
                                  11. Simplified63.3%

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

                                  if -2.09999999999999998e-84 < x1 < 4.0000000000000003e-133

                                  1. Initial program 99.6%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \color{blue}{-6 \cdot x2} \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f6471.5%

                                      \[\leadsto \mathsf{*.f64}\left(-6, \color{blue}{x2}\right) \]
                                  5. Simplified71.5%

                                    \[\leadsto \color{blue}{-6 \cdot x2} \]

                                  if 4.0000000000000003e-133 < x1 < 1.35e12

                                  1. Initial program 99.1%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\color{blue}{\left(4 \cdot \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right)}, x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    7. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    8. *-lowering-*.f6482.6%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  5. Simplified82.6%

                                    \[\leadsto x1 + \left(\left(\color{blue}{4 \cdot \left(x1 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right)\right)} + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  6. Taylor expanded in x2 around inf

                                    \[\leadsto \color{blue}{8 \cdot \left(x1 \cdot {x2}^{2}\right)} \]
                                  7. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(8, \color{blue}{\left(x1 \cdot {x2}^{2}\right)}\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(8, \mathsf{*.f64}\left(x1, \color{blue}{\left({x2}^{2}\right)}\right)\right) \]
                                    3. unpow2N/A

                                      \[\leadsto \mathsf{*.f64}\left(8, \mathsf{*.f64}\left(x1, \left(x2 \cdot \color{blue}{x2}\right)\right)\right) \]
                                    4. *-lowering-*.f6439.2%

                                      \[\leadsto \mathsf{*.f64}\left(8, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \color{blue}{x2}\right)\right)\right) \]
                                  8. Simplified39.2%

                                    \[\leadsto \color{blue}{8 \cdot \left(x1 \cdot \left(x2 \cdot x2\right)\right)} \]
                                3. Recombined 4 regimes into one program.
                                4. Final simplification77.0%

                                  \[\leadsto \begin{array}{l} \mathbf{if}\;x1 \leq -1.85 \cdot 10^{-6}:\\ \;\;\;\;\left(x1 \cdot x1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot 6\right)\\ \mathbf{elif}\;x1 \leq -2.1 \cdot 10^{-84}:\\ \;\;\;\;0 - x1\\ \mathbf{elif}\;x1 \leq 4 \cdot 10^{-133}:\\ \;\;\;\;x2 \cdot -6\\ \mathbf{elif}\;x1 \leq 1350000000000:\\ \;\;\;\;8 \cdot \left(x1 \cdot \left(x2 \cdot x2\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(x1 \cdot x1\right) \cdot \left(\left(x1 \cdot x1\right) \cdot 6\right)\\ \end{array} \]
                                5. Add Preprocessing

                                Alternative 12: 87.1% accurate, 4.7× speedup?

                                \[\begin{array}{l} \\ \begin{array}{l} t_0 := 6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{if}\;x1 \leq -4500:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x1 \leq 13000000000000:\\ \;\;\;\;x2 \cdot -6 + x1 \cdot \left(-1 + 4 \cdot \left(x2 \cdot \left(2 \cdot x2 + -3\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
                                (FPCore (x1 x2)
                                 :precision binary64
                                 (let* ((t_0 (* 6.0 (* x1 (* x1 (* x1 x1))))))
                                   (if (<= x1 -4500.0)
                                     t_0
                                     (if (<= x1 13000000000000.0)
                                       (+ (* x2 -6.0) (* x1 (+ -1.0 (* 4.0 (* x2 (+ (* 2.0 x2) -3.0))))))
                                       t_0))))
                                double code(double x1, double x2) {
                                	double t_0 = 6.0 * (x1 * (x1 * (x1 * x1)));
                                	double tmp;
                                	if (x1 <= -4500.0) {
                                		tmp = t_0;
                                	} else if (x1 <= 13000000000000.0) {
                                		tmp = (x2 * -6.0) + (x1 * (-1.0 + (4.0 * (x2 * ((2.0 * x2) + -3.0)))));
                                	} else {
                                		tmp = t_0;
                                	}
                                	return tmp;
                                }
                                
                                real(8) function code(x1, x2)
                                    real(8), intent (in) :: x1
                                    real(8), intent (in) :: x2
                                    real(8) :: t_0
                                    real(8) :: tmp
                                    t_0 = 6.0d0 * (x1 * (x1 * (x1 * x1)))
                                    if (x1 <= (-4500.0d0)) then
                                        tmp = t_0
                                    else if (x1 <= 13000000000000.0d0) then
                                        tmp = (x2 * (-6.0d0)) + (x1 * ((-1.0d0) + (4.0d0 * (x2 * ((2.0d0 * x2) + (-3.0d0))))))
                                    else
                                        tmp = t_0
                                    end if
                                    code = tmp
                                end function
                                
                                public static double code(double x1, double x2) {
                                	double t_0 = 6.0 * (x1 * (x1 * (x1 * x1)));
                                	double tmp;
                                	if (x1 <= -4500.0) {
                                		tmp = t_0;
                                	} else if (x1 <= 13000000000000.0) {
                                		tmp = (x2 * -6.0) + (x1 * (-1.0 + (4.0 * (x2 * ((2.0 * x2) + -3.0)))));
                                	} else {
                                		tmp = t_0;
                                	}
                                	return tmp;
                                }
                                
                                def code(x1, x2):
                                	t_0 = 6.0 * (x1 * (x1 * (x1 * x1)))
                                	tmp = 0
                                	if x1 <= -4500.0:
                                		tmp = t_0
                                	elif x1 <= 13000000000000.0:
                                		tmp = (x2 * -6.0) + (x1 * (-1.0 + (4.0 * (x2 * ((2.0 * x2) + -3.0)))))
                                	else:
                                		tmp = t_0
                                	return tmp
                                
                                function code(x1, x2)
                                	t_0 = Float64(6.0 * Float64(x1 * Float64(x1 * Float64(x1 * x1))))
                                	tmp = 0.0
                                	if (x1 <= -4500.0)
                                		tmp = t_0;
                                	elseif (x1 <= 13000000000000.0)
                                		tmp = Float64(Float64(x2 * -6.0) + Float64(x1 * Float64(-1.0 + Float64(4.0 * Float64(x2 * Float64(Float64(2.0 * x2) + -3.0))))));
                                	else
                                		tmp = t_0;
                                	end
                                	return tmp
                                end
                                
                                function tmp_2 = code(x1, x2)
                                	t_0 = 6.0 * (x1 * (x1 * (x1 * x1)));
                                	tmp = 0.0;
                                	if (x1 <= -4500.0)
                                		tmp = t_0;
                                	elseif (x1 <= 13000000000000.0)
                                		tmp = (x2 * -6.0) + (x1 * (-1.0 + (4.0 * (x2 * ((2.0 * x2) + -3.0)))));
                                	else
                                		tmp = t_0;
                                	end
                                	tmp_2 = tmp;
                                end
                                
                                code[x1_, x2_] := Block[{t$95$0 = N[(6.0 * N[(x1 * N[(x1 * N[(x1 * x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x1, -4500.0], t$95$0, If[LessEqual[x1, 13000000000000.0], N[(N[(x2 * -6.0), $MachinePrecision] + N[(x1 * N[(-1.0 + N[(4.0 * N[(x2 * N[(N[(2.0 * x2), $MachinePrecision] + -3.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]
                                
                                \begin{array}{l}
                                
                                \\
                                \begin{array}{l}
                                t_0 := 6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\
                                \mathbf{if}\;x1 \leq -4500:\\
                                \;\;\;\;t\_0\\
                                
                                \mathbf{elif}\;x1 \leq 13000000000000:\\
                                \;\;\;\;x2 \cdot -6 + x1 \cdot \left(-1 + 4 \cdot \left(x2 \cdot \left(2 \cdot x2 + -3\right)\right)\right)\\
                                
                                \mathbf{else}:\\
                                \;\;\;\;t\_0\\
                                
                                
                                \end{array}
                                \end{array}
                                
                                Derivation
                                1. Split input into 2 regimes
                                2. if x1 < -4500 or 1.3e13 < x1

                                  1. Initial program 41.9%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around inf

                                    \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(6, \color{blue}{\left({x1}^{4}\right)}\right) \]
                                    2. pow-lowering-pow.f6492.1%

                                      \[\leadsto \mathsf{*.f64}\left(6, \mathsf{pow.f64}\left(x1, \color{blue}{4}\right)\right) \]
                                  5. Simplified92.1%

                                    \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
                                  6. Step-by-step derivation
                                    1. metadata-evalN/A

                                      \[\leadsto 6 \cdot {x1}^{\left(2 + \color{blue}{2}\right)} \]
                                    2. pow-prod-upN/A

                                      \[\leadsto 6 \cdot \left({x1}^{2} \cdot \color{blue}{{x1}^{2}}\right) \]
                                    3. pow2N/A

                                      \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot {\color{blue}{x1}}^{2}\right) \]
                                    4. pow2N/A

                                      \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot \color{blue}{x1}\right)\right) \]
                                    5. *-commutativeN/A

                                      \[\leadsto \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right) \cdot \color{blue}{6} \]
                                    6. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(\left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right), \color{blue}{6}\right) \]
                                    7. associate-*l*N/A

                                      \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                                    8. cube-multN/A

                                      \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot {x1}^{3}\right), 6\right) \]
                                    9. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left({x1}^{3}\right)\right), 6\right) \]
                                    10. cube-multN/A

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                                    11. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                                    12. *-lowering-*.f6492.1%

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, x1\right)\right)\right), 6\right) \]
                                  7. Applied egg-rr92.1%

                                    \[\leadsto \color{blue}{\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right) \cdot 6} \]

                                  if -4500 < x1 < 1.3e13

                                  1. Initial program 99.4%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \color{blue}{-6 \cdot x2 + x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 1\right)} \]
                                  4. Step-by-step derivation
                                    1. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(\left(-6 \cdot x2\right), \color{blue}{\left(x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 1\right)\right)}\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \left(\color{blue}{x1} \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 1\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \color{blue}{\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 1\right)}\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + \color{blue}{\left(\mathsf{neg}\left(1\right)\right)}\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + -1\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right), \color{blue}{-1}\right)\right)\right) \]
                                    7. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right), -1\right)\right)\right) \]
                                    8. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 - 3\right)\right)\right), -1\right)\right)\right) \]
                                    9. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right)\right), -1\right)\right)\right) \]
                                    10. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + -3\right)\right)\right), -1\right)\right)\right) \]
                                    11. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right)\right), -1\right)\right)\right) \]
                                    12. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right)\right), -1\right)\right)\right) \]
                                    13. *-lowering-*.f6485.6%

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right)\right), -1\right)\right)\right) \]
                                  5. Simplified85.6%

                                    \[\leadsto \color{blue}{-6 \cdot x2 + x1 \cdot \left(4 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right) + -1\right)} \]
                                3. Recombined 2 regimes into one program.
                                4. Final simplification89.0%

                                  \[\leadsto \begin{array}{l} \mathbf{if}\;x1 \leq -4500:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{elif}\;x1 \leq 13000000000000:\\ \;\;\;\;x2 \cdot -6 + x1 \cdot \left(-1 + 4 \cdot \left(x2 \cdot \left(2 \cdot x2 + -3\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \end{array} \]
                                5. Add Preprocessing

                                Alternative 13: 93.2% accurate, 5.1× speedup?

                                \[\begin{array}{l} \\ \begin{array}{l} t_0 := 6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{if}\;x1 \leq -72000:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x1 \leq 13000000000000:\\ \;\;\;\;x2 \cdot \left(x1 \cdot -12 + \left(-6 + 8 \cdot \left(x1 \cdot x2\right)\right)\right) - x1\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
                                (FPCore (x1 x2)
                                 :precision binary64
                                 (let* ((t_0 (* 6.0 (* x1 (* x1 (* x1 x1))))))
                                   (if (<= x1 -72000.0)
                                     t_0
                                     (if (<= x1 13000000000000.0)
                                       (- (* x2 (+ (* x1 -12.0) (+ -6.0 (* 8.0 (* x1 x2))))) x1)
                                       t_0))))
                                double code(double x1, double x2) {
                                	double t_0 = 6.0 * (x1 * (x1 * (x1 * x1)));
                                	double tmp;
                                	if (x1 <= -72000.0) {
                                		tmp = t_0;
                                	} else if (x1 <= 13000000000000.0) {
                                		tmp = (x2 * ((x1 * -12.0) + (-6.0 + (8.0 * (x1 * x2))))) - x1;
                                	} else {
                                		tmp = t_0;
                                	}
                                	return tmp;
                                }
                                
                                real(8) function code(x1, x2)
                                    real(8), intent (in) :: x1
                                    real(8), intent (in) :: x2
                                    real(8) :: t_0
                                    real(8) :: tmp
                                    t_0 = 6.0d0 * (x1 * (x1 * (x1 * x1)))
                                    if (x1 <= (-72000.0d0)) then
                                        tmp = t_0
                                    else if (x1 <= 13000000000000.0d0) then
                                        tmp = (x2 * ((x1 * (-12.0d0)) + ((-6.0d0) + (8.0d0 * (x1 * x2))))) - x1
                                    else
                                        tmp = t_0
                                    end if
                                    code = tmp
                                end function
                                
                                public static double code(double x1, double x2) {
                                	double t_0 = 6.0 * (x1 * (x1 * (x1 * x1)));
                                	double tmp;
                                	if (x1 <= -72000.0) {
                                		tmp = t_0;
                                	} else if (x1 <= 13000000000000.0) {
                                		tmp = (x2 * ((x1 * -12.0) + (-6.0 + (8.0 * (x1 * x2))))) - x1;
                                	} else {
                                		tmp = t_0;
                                	}
                                	return tmp;
                                }
                                
                                def code(x1, x2):
                                	t_0 = 6.0 * (x1 * (x1 * (x1 * x1)))
                                	tmp = 0
                                	if x1 <= -72000.0:
                                		tmp = t_0
                                	elif x1 <= 13000000000000.0:
                                		tmp = (x2 * ((x1 * -12.0) + (-6.0 + (8.0 * (x1 * x2))))) - x1
                                	else:
                                		tmp = t_0
                                	return tmp
                                
                                function code(x1, x2)
                                	t_0 = Float64(6.0 * Float64(x1 * Float64(x1 * Float64(x1 * x1))))
                                	tmp = 0.0
                                	if (x1 <= -72000.0)
                                		tmp = t_0;
                                	elseif (x1 <= 13000000000000.0)
                                		tmp = Float64(Float64(x2 * Float64(Float64(x1 * -12.0) + Float64(-6.0 + Float64(8.0 * Float64(x1 * x2))))) - x1);
                                	else
                                		tmp = t_0;
                                	end
                                	return tmp
                                end
                                
                                function tmp_2 = code(x1, x2)
                                	t_0 = 6.0 * (x1 * (x1 * (x1 * x1)));
                                	tmp = 0.0;
                                	if (x1 <= -72000.0)
                                		tmp = t_0;
                                	elseif (x1 <= 13000000000000.0)
                                		tmp = (x2 * ((x1 * -12.0) + (-6.0 + (8.0 * (x1 * x2))))) - x1;
                                	else
                                		tmp = t_0;
                                	end
                                	tmp_2 = tmp;
                                end
                                
                                code[x1_, x2_] := Block[{t$95$0 = N[(6.0 * N[(x1 * N[(x1 * N[(x1 * x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x1, -72000.0], t$95$0, If[LessEqual[x1, 13000000000000.0], N[(N[(x2 * N[(N[(x1 * -12.0), $MachinePrecision] + N[(-6.0 + N[(8.0 * N[(x1 * x2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - x1), $MachinePrecision], t$95$0]]]
                                
                                \begin{array}{l}
                                
                                \\
                                \begin{array}{l}
                                t_0 := 6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\
                                \mathbf{if}\;x1 \leq -72000:\\
                                \;\;\;\;t\_0\\
                                
                                \mathbf{elif}\;x1 \leq 13000000000000:\\
                                \;\;\;\;x2 \cdot \left(x1 \cdot -12 + \left(-6 + 8 \cdot \left(x1 \cdot x2\right)\right)\right) - x1\\
                                
                                \mathbf{else}:\\
                                \;\;\;\;t\_0\\
                                
                                
                                \end{array}
                                \end{array}
                                
                                Derivation
                                1. Split input into 2 regimes
                                2. if x1 < -72000 or 1.3e13 < x1

                                  1. Initial program 41.9%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around inf

                                    \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(6, \color{blue}{\left({x1}^{4}\right)}\right) \]
                                    2. pow-lowering-pow.f6492.1%

                                      \[\leadsto \mathsf{*.f64}\left(6, \mathsf{pow.f64}\left(x1, \color{blue}{4}\right)\right) \]
                                  5. Simplified92.1%

                                    \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
                                  6. Step-by-step derivation
                                    1. metadata-evalN/A

                                      \[\leadsto 6 \cdot {x1}^{\left(2 + \color{blue}{2}\right)} \]
                                    2. pow-prod-upN/A

                                      \[\leadsto 6 \cdot \left({x1}^{2} \cdot \color{blue}{{x1}^{2}}\right) \]
                                    3. pow2N/A

                                      \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot {\color{blue}{x1}}^{2}\right) \]
                                    4. pow2N/A

                                      \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot \color{blue}{x1}\right)\right) \]
                                    5. *-commutativeN/A

                                      \[\leadsto \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right) \cdot \color{blue}{6} \]
                                    6. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(\left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right), \color{blue}{6}\right) \]
                                    7. associate-*l*N/A

                                      \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                                    8. cube-multN/A

                                      \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot {x1}^{3}\right), 6\right) \]
                                    9. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left({x1}^{3}\right)\right), 6\right) \]
                                    10. cube-multN/A

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                                    11. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                                    12. *-lowering-*.f6492.1%

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, x1\right)\right)\right), 6\right) \]
                                  7. Applied egg-rr92.1%

                                    \[\leadsto \color{blue}{\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right) \cdot 6} \]

                                  if -72000 < x1 < 1.3e13

                                  1. Initial program 99.4%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\color{blue}{\left(4 \cdot \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right)}, x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    7. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    8. *-lowering-*.f6486.0%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  5. Simplified86.0%

                                    \[\leadsto x1 + \left(\left(\color{blue}{4 \cdot \left(x1 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right)\right)} + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  6. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right) \]
                                  7. Step-by-step derivation
                                    1. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\left(-6 \cdot x2\right), \color{blue}{\left(x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \left(\color{blue}{x1} \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \color{blue}{\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)}\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + \color{blue}{\left(\mathsf{neg}\left(2\right)\right)}\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + -2\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right), \color{blue}{-2}\right)\right)\right)\right) \]
                                    7. associate-*r*N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(\left(4 \cdot x2\right) \cdot \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    8. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(4 \cdot x2\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    9. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(x2 \cdot 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    10. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    11. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right), -2\right)\right)\right)\right) \]
                                    12. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + -3\right)\right), -2\right)\right)\right)\right) \]
                                    13. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                    14. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                    15. *-lowering-*.f6485.6%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                  8. Simplified85.6%

                                    \[\leadsto x1 + \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(\left(x2 \cdot 4\right) \cdot \left(x2 \cdot 2 + -3\right) + -2\right)\right)} \]
                                  9. Taylor expanded in x2 around 0

                                    \[\leadsto \color{blue}{x1 + \left(-2 \cdot x1 + x2 \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6\right)\right)} \]
                                  10. Step-by-step derivation
                                    1. associate-+r+N/A

                                      \[\leadsto \left(x1 + -2 \cdot x1\right) + \color{blue}{x2 \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6\right)} \]
                                    2. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(\left(x1 + -2 \cdot x1\right), \color{blue}{\left(x2 \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6\right)\right)}\right) \]
                                    3. distribute-rgt1-inN/A

                                      \[\leadsto \mathsf{+.f64}\left(\left(\left(-2 + 1\right) \cdot x1\right), \left(\color{blue}{x2} \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6\right)\right)\right) \]
                                    4. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(\left(-1 \cdot x1\right), \left(x2 \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6\right)\right)\right) \]
                                    5. mul-1-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(\left(\mathsf{neg}\left(x1\right)\right), \left(\color{blue}{x2} \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6\right)\right)\right) \]
                                    6. neg-sub0N/A

                                      \[\leadsto \mathsf{+.f64}\left(\left(0 - x1\right), \left(\color{blue}{x2} \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6\right)\right)\right) \]
                                    7. --lowering--.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \left(\color{blue}{x2} \cdot \left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6\right)\right)\right) \]
                                    8. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \color{blue}{\left(\left(-12 \cdot x1 + 8 \cdot \left(x1 \cdot x2\right)\right) - 6\right)}\right)\right) \]
                                    9. associate--l+N/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \left(-12 \cdot x1 + \color{blue}{\left(8 \cdot \left(x1 \cdot x2\right) - 6\right)}\right)\right)\right) \]
                                    10. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(-12 \cdot x1\right), \color{blue}{\left(8 \cdot \left(x1 \cdot x2\right) - 6\right)}\right)\right)\right) \]
                                    11. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x1 \cdot -12\right), \left(\color{blue}{8 \cdot \left(x1 \cdot x2\right)} - 6\right)\right)\right)\right) \]
                                    12. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, -12\right), \left(\color{blue}{8 \cdot \left(x1 \cdot x2\right)} - 6\right)\right)\right)\right) \]
                                    13. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, -12\right), \left(8 \cdot \left(x1 \cdot x2\right) + \color{blue}{\left(\mathsf{neg}\left(6\right)\right)}\right)\right)\right)\right) \]
                                    14. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, -12\right), \left(8 \cdot \left(x1 \cdot x2\right) + -6\right)\right)\right)\right) \]
                                    15. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, -12\right), \mathsf{+.f64}\left(\left(8 \cdot \left(x1 \cdot x2\right)\right), \color{blue}{-6}\right)\right)\right)\right) \]
                                    16. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, -12\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(8, \left(x1 \cdot x2\right)\right), -6\right)\right)\right)\right) \]
                                    17. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, -12\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(8, \left(x2 \cdot x1\right)\right), -6\right)\right)\right)\right) \]
                                    18. *-lowering-*.f6496.3%

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, -12\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(8, \mathsf{*.f64}\left(x2, x1\right)\right), -6\right)\right)\right)\right) \]
                                  11. Simplified96.3%

                                    \[\leadsto \color{blue}{\left(0 - x1\right) + x2 \cdot \left(x1 \cdot -12 + \left(8 \cdot \left(x2 \cdot x1\right) + -6\right)\right)} \]
                                3. Recombined 2 regimes into one program.
                                4. Final simplification94.1%

                                  \[\leadsto \begin{array}{l} \mathbf{if}\;x1 \leq -72000:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{elif}\;x1 \leq 13000000000000:\\ \;\;\;\;x2 \cdot \left(x1 \cdot -12 + \left(-6 + 8 \cdot \left(x1 \cdot x2\right)\right)\right) - x1\\ \mathbf{else}:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \end{array} \]
                                5. Add Preprocessing

                                Alternative 14: 79.8% accurate, 6.7× speedup?

                                \[\begin{array}{l} \\ \begin{array}{l} t_0 := 6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{if}\;x1 \leq -1.85 \cdot 10^{-6}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x1 \leq 1.4:\\ \;\;\;\;x2 \cdot \left(-6 + x1 \cdot -12\right) - x1\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
                                (FPCore (x1 x2)
                                 :precision binary64
                                 (let* ((t_0 (* 6.0 (* x1 (* x1 (* x1 x1))))))
                                   (if (<= x1 -1.85e-6)
                                     t_0
                                     (if (<= x1 1.4) (- (* x2 (+ -6.0 (* x1 -12.0))) x1) t_0))))
                                double code(double x1, double x2) {
                                	double t_0 = 6.0 * (x1 * (x1 * (x1 * x1)));
                                	double tmp;
                                	if (x1 <= -1.85e-6) {
                                		tmp = t_0;
                                	} else if (x1 <= 1.4) {
                                		tmp = (x2 * (-6.0 + (x1 * -12.0))) - x1;
                                	} else {
                                		tmp = t_0;
                                	}
                                	return tmp;
                                }
                                
                                real(8) function code(x1, x2)
                                    real(8), intent (in) :: x1
                                    real(8), intent (in) :: x2
                                    real(8) :: t_0
                                    real(8) :: tmp
                                    t_0 = 6.0d0 * (x1 * (x1 * (x1 * x1)))
                                    if (x1 <= (-1.85d-6)) then
                                        tmp = t_0
                                    else if (x1 <= 1.4d0) then
                                        tmp = (x2 * ((-6.0d0) + (x1 * (-12.0d0)))) - x1
                                    else
                                        tmp = t_0
                                    end if
                                    code = tmp
                                end function
                                
                                public static double code(double x1, double x2) {
                                	double t_0 = 6.0 * (x1 * (x1 * (x1 * x1)));
                                	double tmp;
                                	if (x1 <= -1.85e-6) {
                                		tmp = t_0;
                                	} else if (x1 <= 1.4) {
                                		tmp = (x2 * (-6.0 + (x1 * -12.0))) - x1;
                                	} else {
                                		tmp = t_0;
                                	}
                                	return tmp;
                                }
                                
                                def code(x1, x2):
                                	t_0 = 6.0 * (x1 * (x1 * (x1 * x1)))
                                	tmp = 0
                                	if x1 <= -1.85e-6:
                                		tmp = t_0
                                	elif x1 <= 1.4:
                                		tmp = (x2 * (-6.0 + (x1 * -12.0))) - x1
                                	else:
                                		tmp = t_0
                                	return tmp
                                
                                function code(x1, x2)
                                	t_0 = Float64(6.0 * Float64(x1 * Float64(x1 * Float64(x1 * x1))))
                                	tmp = 0.0
                                	if (x1 <= -1.85e-6)
                                		tmp = t_0;
                                	elseif (x1 <= 1.4)
                                		tmp = Float64(Float64(x2 * Float64(-6.0 + Float64(x1 * -12.0))) - x1);
                                	else
                                		tmp = t_0;
                                	end
                                	return tmp
                                end
                                
                                function tmp_2 = code(x1, x2)
                                	t_0 = 6.0 * (x1 * (x1 * (x1 * x1)));
                                	tmp = 0.0;
                                	if (x1 <= -1.85e-6)
                                		tmp = t_0;
                                	elseif (x1 <= 1.4)
                                		tmp = (x2 * (-6.0 + (x1 * -12.0))) - x1;
                                	else
                                		tmp = t_0;
                                	end
                                	tmp_2 = tmp;
                                end
                                
                                code[x1_, x2_] := Block[{t$95$0 = N[(6.0 * N[(x1 * N[(x1 * N[(x1 * x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x1, -1.85e-6], t$95$0, If[LessEqual[x1, 1.4], N[(N[(x2 * N[(-6.0 + N[(x1 * -12.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - x1), $MachinePrecision], t$95$0]]]
                                
                                \begin{array}{l}
                                
                                \\
                                \begin{array}{l}
                                t_0 := 6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\
                                \mathbf{if}\;x1 \leq -1.85 \cdot 10^{-6}:\\
                                \;\;\;\;t\_0\\
                                
                                \mathbf{elif}\;x1 \leq 1.4:\\
                                \;\;\;\;x2 \cdot \left(-6 + x1 \cdot -12\right) - x1\\
                                
                                \mathbf{else}:\\
                                \;\;\;\;t\_0\\
                                
                                
                                \end{array}
                                \end{array}
                                
                                Derivation
                                1. Split input into 2 regimes
                                2. if x1 < -1.8500000000000001e-6 or 1.3999999999999999 < x1

                                  1. Initial program 43.9%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around inf

                                    \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(6, \color{blue}{\left({x1}^{4}\right)}\right) \]
                                    2. pow-lowering-pow.f6489.3%

                                      \[\leadsto \mathsf{*.f64}\left(6, \mathsf{pow.f64}\left(x1, \color{blue}{4}\right)\right) \]
                                  5. Simplified89.3%

                                    \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
                                  6. Step-by-step derivation
                                    1. metadata-evalN/A

                                      \[\leadsto 6 \cdot {x1}^{\left(2 + \color{blue}{2}\right)} \]
                                    2. pow-prod-upN/A

                                      \[\leadsto 6 \cdot \left({x1}^{2} \cdot \color{blue}{{x1}^{2}}\right) \]
                                    3. pow2N/A

                                      \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot {\color{blue}{x1}}^{2}\right) \]
                                    4. pow2N/A

                                      \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot \color{blue}{x1}\right)\right) \]
                                    5. *-commutativeN/A

                                      \[\leadsto \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right) \cdot \color{blue}{6} \]
                                    6. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(\left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right), \color{blue}{6}\right) \]
                                    7. associate-*l*N/A

                                      \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                                    8. cube-multN/A

                                      \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot {x1}^{3}\right), 6\right) \]
                                    9. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left({x1}^{3}\right)\right), 6\right) \]
                                    10. cube-multN/A

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                                    11. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                                    12. *-lowering-*.f6489.3%

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, x1\right)\right)\right), 6\right) \]
                                  7. Applied egg-rr89.3%

                                    \[\leadsto \color{blue}{\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right) \cdot 6} \]

                                  if -1.8500000000000001e-6 < x1 < 1.3999999999999999

                                  1. Initial program 99.4%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\color{blue}{\left(4 \cdot \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right)}, x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    7. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    8. *-lowering-*.f6487.4%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  5. Simplified87.4%

                                    \[\leadsto x1 + \left(\left(\color{blue}{4 \cdot \left(x1 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right)\right)} + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  6. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right) \]
                                  7. Step-by-step derivation
                                    1. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\left(-6 \cdot x2\right), \color{blue}{\left(x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \left(\color{blue}{x1} \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \color{blue}{\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)}\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + \color{blue}{\left(\mathsf{neg}\left(2\right)\right)}\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + -2\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right), \color{blue}{-2}\right)\right)\right)\right) \]
                                    7. associate-*r*N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(\left(4 \cdot x2\right) \cdot \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    8. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(4 \cdot x2\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    9. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(x2 \cdot 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    10. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    11. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right), -2\right)\right)\right)\right) \]
                                    12. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + -3\right)\right), -2\right)\right)\right)\right) \]
                                    13. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                    14. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                    15. *-lowering-*.f6487.0%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                  8. Simplified87.0%

                                    \[\leadsto x1 + \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(\left(x2 \cdot 4\right) \cdot \left(x2 \cdot 2 + -3\right) + -2\right)\right)} \]
                                  9. Taylor expanded in x2 around 0

                                    \[\leadsto \color{blue}{x1 + \left(-2 \cdot x1 + x2 \cdot \left(-12 \cdot x1 - 6\right)\right)} \]
                                  10. Step-by-step derivation
                                    1. associate-+r+N/A

                                      \[\leadsto \left(x1 + -2 \cdot x1\right) + \color{blue}{x2 \cdot \left(-12 \cdot x1 - 6\right)} \]
                                    2. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(\left(x1 + -2 \cdot x1\right), \color{blue}{\left(x2 \cdot \left(-12 \cdot x1 - 6\right)\right)}\right) \]
                                    3. distribute-rgt1-inN/A

                                      \[\leadsto \mathsf{+.f64}\left(\left(\left(-2 + 1\right) \cdot x1\right), \left(\color{blue}{x2} \cdot \left(-12 \cdot x1 - 6\right)\right)\right) \]
                                    4. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(\left(-1 \cdot x1\right), \left(x2 \cdot \left(-12 \cdot x1 - 6\right)\right)\right) \]
                                    5. mul-1-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(\left(\mathsf{neg}\left(x1\right)\right), \left(\color{blue}{x2} \cdot \left(-12 \cdot x1 - 6\right)\right)\right) \]
                                    6. neg-sub0N/A

                                      \[\leadsto \mathsf{+.f64}\left(\left(0 - x1\right), \left(\color{blue}{x2} \cdot \left(-12 \cdot x1 - 6\right)\right)\right) \]
                                    7. --lowering--.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \left(\color{blue}{x2} \cdot \left(-12 \cdot x1 - 6\right)\right)\right) \]
                                    8. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \color{blue}{\left(-12 \cdot x1 - 6\right)}\right)\right) \]
                                    9. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \left(-12 \cdot x1 + \color{blue}{\left(\mathsf{neg}\left(6\right)\right)}\right)\right)\right) \]
                                    10. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \left(-12 \cdot x1 + -6\right)\right)\right) \]
                                    11. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(-12 \cdot x1\right), \color{blue}{-6}\right)\right)\right) \]
                                    12. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x1 \cdot -12\right), -6\right)\right)\right) \]
                                    13. *-lowering-*.f6474.2%

                                      \[\leadsto \mathsf{+.f64}\left(\mathsf{\_.f64}\left(0, x1\right), \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, -12\right), -6\right)\right)\right) \]
                                  11. Simplified74.2%

                                    \[\leadsto \color{blue}{\left(0 - x1\right) + x2 \cdot \left(x1 \cdot -12 + -6\right)} \]
                                3. Recombined 2 regimes into one program.
                                4. Final simplification82.4%

                                  \[\leadsto \begin{array}{l} \mathbf{if}\;x1 \leq -1.85 \cdot 10^{-6}:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{elif}\;x1 \leq 1.4:\\ \;\;\;\;x2 \cdot \left(-6 + x1 \cdot -12\right) - x1\\ \mathbf{else}:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \end{array} \]
                                5. Add Preprocessing

                                Alternative 15: 79.8% accurate, 6.7× speedup?

                                \[\begin{array}{l} \\ \begin{array}{l} t_0 := 6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{if}\;x1 \leq -1.85 \cdot 10^{-6}:\\ \;\;\;\;t\_0\\ \mathbf{elif}\;x1 \leq 1.4:\\ \;\;\;\;x1 + \left(x2 \cdot -6 + x1 \cdot -2\right)\\ \mathbf{else}:\\ \;\;\;\;t\_0\\ \end{array} \end{array} \]
                                (FPCore (x1 x2)
                                 :precision binary64
                                 (let* ((t_0 (* 6.0 (* x1 (* x1 (* x1 x1))))))
                                   (if (<= x1 -1.85e-6)
                                     t_0
                                     (if (<= x1 1.4) (+ x1 (+ (* x2 -6.0) (* x1 -2.0))) t_0))))
                                double code(double x1, double x2) {
                                	double t_0 = 6.0 * (x1 * (x1 * (x1 * x1)));
                                	double tmp;
                                	if (x1 <= -1.85e-6) {
                                		tmp = t_0;
                                	} else if (x1 <= 1.4) {
                                		tmp = x1 + ((x2 * -6.0) + (x1 * -2.0));
                                	} else {
                                		tmp = t_0;
                                	}
                                	return tmp;
                                }
                                
                                real(8) function code(x1, x2)
                                    real(8), intent (in) :: x1
                                    real(8), intent (in) :: x2
                                    real(8) :: t_0
                                    real(8) :: tmp
                                    t_0 = 6.0d0 * (x1 * (x1 * (x1 * x1)))
                                    if (x1 <= (-1.85d-6)) then
                                        tmp = t_0
                                    else if (x1 <= 1.4d0) then
                                        tmp = x1 + ((x2 * (-6.0d0)) + (x1 * (-2.0d0)))
                                    else
                                        tmp = t_0
                                    end if
                                    code = tmp
                                end function
                                
                                public static double code(double x1, double x2) {
                                	double t_0 = 6.0 * (x1 * (x1 * (x1 * x1)));
                                	double tmp;
                                	if (x1 <= -1.85e-6) {
                                		tmp = t_0;
                                	} else if (x1 <= 1.4) {
                                		tmp = x1 + ((x2 * -6.0) + (x1 * -2.0));
                                	} else {
                                		tmp = t_0;
                                	}
                                	return tmp;
                                }
                                
                                def code(x1, x2):
                                	t_0 = 6.0 * (x1 * (x1 * (x1 * x1)))
                                	tmp = 0
                                	if x1 <= -1.85e-6:
                                		tmp = t_0
                                	elif x1 <= 1.4:
                                		tmp = x1 + ((x2 * -6.0) + (x1 * -2.0))
                                	else:
                                		tmp = t_0
                                	return tmp
                                
                                function code(x1, x2)
                                	t_0 = Float64(6.0 * Float64(x1 * Float64(x1 * Float64(x1 * x1))))
                                	tmp = 0.0
                                	if (x1 <= -1.85e-6)
                                		tmp = t_0;
                                	elseif (x1 <= 1.4)
                                		tmp = Float64(x1 + Float64(Float64(x2 * -6.0) + Float64(x1 * -2.0)));
                                	else
                                		tmp = t_0;
                                	end
                                	return tmp
                                end
                                
                                function tmp_2 = code(x1, x2)
                                	t_0 = 6.0 * (x1 * (x1 * (x1 * x1)));
                                	tmp = 0.0;
                                	if (x1 <= -1.85e-6)
                                		tmp = t_0;
                                	elseif (x1 <= 1.4)
                                		tmp = x1 + ((x2 * -6.0) + (x1 * -2.0));
                                	else
                                		tmp = t_0;
                                	end
                                	tmp_2 = tmp;
                                end
                                
                                code[x1_, x2_] := Block[{t$95$0 = N[(6.0 * N[(x1 * N[(x1 * N[(x1 * x1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[x1, -1.85e-6], t$95$0, If[LessEqual[x1, 1.4], N[(x1 + N[(N[(x2 * -6.0), $MachinePrecision] + N[(x1 * -2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$0]]]
                                
                                \begin{array}{l}
                                
                                \\
                                \begin{array}{l}
                                t_0 := 6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\
                                \mathbf{if}\;x1 \leq -1.85 \cdot 10^{-6}:\\
                                \;\;\;\;t\_0\\
                                
                                \mathbf{elif}\;x1 \leq 1.4:\\
                                \;\;\;\;x1 + \left(x2 \cdot -6 + x1 \cdot -2\right)\\
                                
                                \mathbf{else}:\\
                                \;\;\;\;t\_0\\
                                
                                
                                \end{array}
                                \end{array}
                                
                                Derivation
                                1. Split input into 2 regimes
                                2. if x1 < -1.8500000000000001e-6 or 1.3999999999999999 < x1

                                  1. Initial program 43.9%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around inf

                                    \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(6, \color{blue}{\left({x1}^{4}\right)}\right) \]
                                    2. pow-lowering-pow.f6489.3%

                                      \[\leadsto \mathsf{*.f64}\left(6, \mathsf{pow.f64}\left(x1, \color{blue}{4}\right)\right) \]
                                  5. Simplified89.3%

                                    \[\leadsto \color{blue}{6 \cdot {x1}^{4}} \]
                                  6. Step-by-step derivation
                                    1. metadata-evalN/A

                                      \[\leadsto 6 \cdot {x1}^{\left(2 + \color{blue}{2}\right)} \]
                                    2. pow-prod-upN/A

                                      \[\leadsto 6 \cdot \left({x1}^{2} \cdot \color{blue}{{x1}^{2}}\right) \]
                                    3. pow2N/A

                                      \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot {\color{blue}{x1}}^{2}\right) \]
                                    4. pow2N/A

                                      \[\leadsto 6 \cdot \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot \color{blue}{x1}\right)\right) \]
                                    5. *-commutativeN/A

                                      \[\leadsto \left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right) \cdot \color{blue}{6} \]
                                    6. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(\left(\left(x1 \cdot x1\right) \cdot \left(x1 \cdot x1\right)\right), \color{blue}{6}\right) \]
                                    7. associate-*l*N/A

                                      \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                                    8. cube-multN/A

                                      \[\leadsto \mathsf{*.f64}\left(\left(x1 \cdot {x1}^{3}\right), 6\right) \]
                                    9. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left({x1}^{3}\right)\right), 6\right) \]
                                    10. cube-multN/A

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                                    11. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \left(x1 \cdot x1\right)\right)\right), 6\right) \]
                                    12. *-lowering-*.f6489.3%

                                      \[\leadsto \mathsf{*.f64}\left(\mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x1, x1\right)\right)\right), 6\right) \]
                                  7. Applied egg-rr89.3%

                                    \[\leadsto \color{blue}{\left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right) \cdot 6} \]

                                  if -1.8500000000000001e-6 < x1 < 1.3999999999999999

                                  1. Initial program 99.4%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\color{blue}{\left(4 \cdot \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right)}, x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    7. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    8. *-lowering-*.f6487.4%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  5. Simplified87.4%

                                    \[\leadsto x1 + \left(\left(\color{blue}{4 \cdot \left(x1 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right)\right)} + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  6. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right) \]
                                  7. Step-by-step derivation
                                    1. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\left(-6 \cdot x2\right), \color{blue}{\left(x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \left(\color{blue}{x1} \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \color{blue}{\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)}\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + \color{blue}{\left(\mathsf{neg}\left(2\right)\right)}\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + -2\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right), \color{blue}{-2}\right)\right)\right)\right) \]
                                    7. associate-*r*N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(\left(4 \cdot x2\right) \cdot \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    8. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(4 \cdot x2\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    9. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(x2 \cdot 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    10. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    11. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right), -2\right)\right)\right)\right) \]
                                    12. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + -3\right)\right), -2\right)\right)\right)\right) \]
                                    13. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                    14. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                    15. *-lowering-*.f6487.0%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                  8. Simplified87.0%

                                    \[\leadsto x1 + \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(\left(x2 \cdot 4\right) \cdot \left(x2 \cdot 2 + -3\right) + -2\right)\right)} \]
                                  9. Taylor expanded in x2 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \color{blue}{\left(-2 \cdot x1\right)}\right)\right) \]
                                  10. Step-by-step derivation
                                    1. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \left(x1 \cdot \color{blue}{-2}\right)\right)\right) \]
                                    2. *-lowering-*.f6474.2%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \color{blue}{-2}\right)\right)\right) \]
                                  11. Simplified74.2%

                                    \[\leadsto x1 + \left(-6 \cdot x2 + \color{blue}{x1 \cdot -2}\right) \]
                                3. Recombined 2 regimes into one program.
                                4. Final simplification82.3%

                                  \[\leadsto \begin{array}{l} \mathbf{if}\;x1 \leq -1.85 \cdot 10^{-6}:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \mathbf{elif}\;x1 \leq 1.4:\\ \;\;\;\;x1 + \left(x2 \cdot -6 + x1 \cdot -2\right)\\ \mathbf{else}:\\ \;\;\;\;6 \cdot \left(x1 \cdot \left(x1 \cdot \left(x1 \cdot x1\right)\right)\right)\\ \end{array} \]
                                5. Add Preprocessing

                                Alternative 16: 30.7% accurate, 6.7× speedup?

                                \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;2 \cdot x2 \leq -5 \cdot 10^{-129}:\\ \;\;\;\;x2 \cdot -6\\ \mathbf{elif}\;2 \cdot x2 \leq 5 \cdot 10^{-40}:\\ \;\;\;\;0 - x1\\ \mathbf{else}:\\ \;\;\;\;x1 + x2 \cdot -6\\ \end{array} \end{array} \]
                                (FPCore (x1 x2)
                                 :precision binary64
                                 (if (<= (* 2.0 x2) -5e-129)
                                   (* x2 -6.0)
                                   (if (<= (* 2.0 x2) 5e-40) (- 0.0 x1) (+ x1 (* x2 -6.0)))))
                                double code(double x1, double x2) {
                                	double tmp;
                                	if ((2.0 * x2) <= -5e-129) {
                                		tmp = x2 * -6.0;
                                	} else if ((2.0 * x2) <= 5e-40) {
                                		tmp = 0.0 - x1;
                                	} else {
                                		tmp = x1 + (x2 * -6.0);
                                	}
                                	return tmp;
                                }
                                
                                real(8) function code(x1, x2)
                                    real(8), intent (in) :: x1
                                    real(8), intent (in) :: x2
                                    real(8) :: tmp
                                    if ((2.0d0 * x2) <= (-5d-129)) then
                                        tmp = x2 * (-6.0d0)
                                    else if ((2.0d0 * x2) <= 5d-40) then
                                        tmp = 0.0d0 - x1
                                    else
                                        tmp = x1 + (x2 * (-6.0d0))
                                    end if
                                    code = tmp
                                end function
                                
                                public static double code(double x1, double x2) {
                                	double tmp;
                                	if ((2.0 * x2) <= -5e-129) {
                                		tmp = x2 * -6.0;
                                	} else if ((2.0 * x2) <= 5e-40) {
                                		tmp = 0.0 - x1;
                                	} else {
                                		tmp = x1 + (x2 * -6.0);
                                	}
                                	return tmp;
                                }
                                
                                def code(x1, x2):
                                	tmp = 0
                                	if (2.0 * x2) <= -5e-129:
                                		tmp = x2 * -6.0
                                	elif (2.0 * x2) <= 5e-40:
                                		tmp = 0.0 - x1
                                	else:
                                		tmp = x1 + (x2 * -6.0)
                                	return tmp
                                
                                function code(x1, x2)
                                	tmp = 0.0
                                	if (Float64(2.0 * x2) <= -5e-129)
                                		tmp = Float64(x2 * -6.0);
                                	elseif (Float64(2.0 * x2) <= 5e-40)
                                		tmp = Float64(0.0 - x1);
                                	else
                                		tmp = Float64(x1 + Float64(x2 * -6.0));
                                	end
                                	return tmp
                                end
                                
                                function tmp_2 = code(x1, x2)
                                	tmp = 0.0;
                                	if ((2.0 * x2) <= -5e-129)
                                		tmp = x2 * -6.0;
                                	elseif ((2.0 * x2) <= 5e-40)
                                		tmp = 0.0 - x1;
                                	else
                                		tmp = x1 + (x2 * -6.0);
                                	end
                                	tmp_2 = tmp;
                                end
                                
                                code[x1_, x2_] := If[LessEqual[N[(2.0 * x2), $MachinePrecision], -5e-129], N[(x2 * -6.0), $MachinePrecision], If[LessEqual[N[(2.0 * x2), $MachinePrecision], 5e-40], N[(0.0 - x1), $MachinePrecision], N[(x1 + N[(x2 * -6.0), $MachinePrecision]), $MachinePrecision]]]
                                
                                \begin{array}{l}
                                
                                \\
                                \begin{array}{l}
                                \mathbf{if}\;2 \cdot x2 \leq -5 \cdot 10^{-129}:\\
                                \;\;\;\;x2 \cdot -6\\
                                
                                \mathbf{elif}\;2 \cdot x2 \leq 5 \cdot 10^{-40}:\\
                                \;\;\;\;0 - x1\\
                                
                                \mathbf{else}:\\
                                \;\;\;\;x1 + x2 \cdot -6\\
                                
                                
                                \end{array}
                                \end{array}
                                
                                Derivation
                                1. Split input into 3 regimes
                                2. if (*.f64 #s(literal 2 binary64) x2) < -5.00000000000000027e-129

                                  1. Initial program 66.3%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \color{blue}{-6 \cdot x2} \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f6431.0%

                                      \[\leadsto \mathsf{*.f64}\left(-6, \color{blue}{x2}\right) \]
                                  5. Simplified31.0%

                                    \[\leadsto \color{blue}{-6 \cdot x2} \]

                                  if -5.00000000000000027e-129 < (*.f64 #s(literal 2 binary64) x2) < 4.99999999999999965e-40

                                  1. Initial program 67.9%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\color{blue}{\left(4 \cdot \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right)}, x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    7. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    8. *-lowering-*.f6446.5%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  5. Simplified46.5%

                                    \[\leadsto x1 + \left(\left(\color{blue}{4 \cdot \left(x1 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right)\right)} + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  6. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right) \]
                                  7. Step-by-step derivation
                                    1. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\left(-6 \cdot x2\right), \color{blue}{\left(x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \left(\color{blue}{x1} \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \color{blue}{\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)}\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + \color{blue}{\left(\mathsf{neg}\left(2\right)\right)}\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + -2\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right), \color{blue}{-2}\right)\right)\right)\right) \]
                                    7. associate-*r*N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(\left(4 \cdot x2\right) \cdot \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    8. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(4 \cdot x2\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    9. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(x2 \cdot 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    10. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    11. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right), -2\right)\right)\right)\right) \]
                                    12. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + -3\right)\right), -2\right)\right)\right)\right) \]
                                    13. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                    14. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                    15. *-lowering-*.f6447.6%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                  8. Simplified47.6%

                                    \[\leadsto x1 + \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(\left(x2 \cdot 4\right) \cdot \left(x2 \cdot 2 + -3\right) + -2\right)\right)} \]
                                  9. Taylor expanded in x2 around 0

                                    \[\leadsto \color{blue}{x1 + -2 \cdot x1} \]
                                  10. Step-by-step derivation
                                    1. distribute-rgt1-inN/A

                                      \[\leadsto \left(-2 + 1\right) \cdot \color{blue}{x1} \]
                                    2. metadata-evalN/A

                                      \[\leadsto -1 \cdot x1 \]
                                    3. mul-1-negN/A

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

                                      \[\leadsto 0 - \color{blue}{x1} \]
                                    5. --lowering--.f6434.8%

                                      \[\leadsto \mathsf{\_.f64}\left(0, \color{blue}{x1}\right) \]
                                  11. Simplified34.8%

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

                                  if 4.99999999999999965e-40 < (*.f64 #s(literal 2 binary64) x2)

                                  1. Initial program 75.9%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \color{blue}{\left(-6 \cdot x2\right)}\right) \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f6426.0%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{*.f64}\left(-6, \color{blue}{x2}\right)\right) \]
                                  5. Simplified26.0%

                                    \[\leadsto x1 + \color{blue}{-6 \cdot x2} \]
                                3. Recombined 3 regimes into one program.
                                4. Final simplification30.9%

                                  \[\leadsto \begin{array}{l} \mathbf{if}\;2 \cdot x2 \leq -5 \cdot 10^{-129}:\\ \;\;\;\;x2 \cdot -6\\ \mathbf{elif}\;2 \cdot x2 \leq 5 \cdot 10^{-40}:\\ \;\;\;\;0 - x1\\ \mathbf{else}:\\ \;\;\;\;x1 + x2 \cdot -6\\ \end{array} \]
                                5. Add Preprocessing

                                Alternative 17: 38.0% accurate, 7.5× speedup?

                                \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x1 \leq -9.5 \cdot 10^{-82}:\\ \;\;\;\;0 - x1\\ \mathbf{elif}\;x1 \leq 5.5 \cdot 10^{-132}:\\ \;\;\;\;x2 \cdot -6\\ \mathbf{else}:\\ \;\;\;\;8 \cdot \left(x1 \cdot \left(x2 \cdot x2\right)\right)\\ \end{array} \end{array} \]
                                (FPCore (x1 x2)
                                 :precision binary64
                                 (if (<= x1 -9.5e-82)
                                   (- 0.0 x1)
                                   (if (<= x1 5.5e-132) (* x2 -6.0) (* 8.0 (* x1 (* x2 x2))))))
                                double code(double x1, double x2) {
                                	double tmp;
                                	if (x1 <= -9.5e-82) {
                                		tmp = 0.0 - x1;
                                	} else if (x1 <= 5.5e-132) {
                                		tmp = x2 * -6.0;
                                	} else {
                                		tmp = 8.0 * (x1 * (x2 * x2));
                                	}
                                	return tmp;
                                }
                                
                                real(8) function code(x1, x2)
                                    real(8), intent (in) :: x1
                                    real(8), intent (in) :: x2
                                    real(8) :: tmp
                                    if (x1 <= (-9.5d-82)) then
                                        tmp = 0.0d0 - x1
                                    else if (x1 <= 5.5d-132) then
                                        tmp = x2 * (-6.0d0)
                                    else
                                        tmp = 8.0d0 * (x1 * (x2 * x2))
                                    end if
                                    code = tmp
                                end function
                                
                                public static double code(double x1, double x2) {
                                	double tmp;
                                	if (x1 <= -9.5e-82) {
                                		tmp = 0.0 - x1;
                                	} else if (x1 <= 5.5e-132) {
                                		tmp = x2 * -6.0;
                                	} else {
                                		tmp = 8.0 * (x1 * (x2 * x2));
                                	}
                                	return tmp;
                                }
                                
                                def code(x1, x2):
                                	tmp = 0
                                	if x1 <= -9.5e-82:
                                		tmp = 0.0 - x1
                                	elif x1 <= 5.5e-132:
                                		tmp = x2 * -6.0
                                	else:
                                		tmp = 8.0 * (x1 * (x2 * x2))
                                	return tmp
                                
                                function code(x1, x2)
                                	tmp = 0.0
                                	if (x1 <= -9.5e-82)
                                		tmp = Float64(0.0 - x1);
                                	elseif (x1 <= 5.5e-132)
                                		tmp = Float64(x2 * -6.0);
                                	else
                                		tmp = Float64(8.0 * Float64(x1 * Float64(x2 * x2)));
                                	end
                                	return tmp
                                end
                                
                                function tmp_2 = code(x1, x2)
                                	tmp = 0.0;
                                	if (x1 <= -9.5e-82)
                                		tmp = 0.0 - x1;
                                	elseif (x1 <= 5.5e-132)
                                		tmp = x2 * -6.0;
                                	else
                                		tmp = 8.0 * (x1 * (x2 * x2));
                                	end
                                	tmp_2 = tmp;
                                end
                                
                                code[x1_, x2_] := If[LessEqual[x1, -9.5e-82], N[(0.0 - x1), $MachinePrecision], If[LessEqual[x1, 5.5e-132], N[(x2 * -6.0), $MachinePrecision], N[(8.0 * N[(x1 * N[(x2 * x2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
                                
                                \begin{array}{l}
                                
                                \\
                                \begin{array}{l}
                                \mathbf{if}\;x1 \leq -9.5 \cdot 10^{-82}:\\
                                \;\;\;\;0 - x1\\
                                
                                \mathbf{elif}\;x1 \leq 5.5 \cdot 10^{-132}:\\
                                \;\;\;\;x2 \cdot -6\\
                                
                                \mathbf{else}:\\
                                \;\;\;\;8 \cdot \left(x1 \cdot \left(x2 \cdot x2\right)\right)\\
                                
                                
                                \end{array}
                                \end{array}
                                
                                Derivation
                                1. Split input into 3 regimes
                                2. if x1 < -9.4999999999999996e-82

                                  1. Initial program 53.3%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\color{blue}{\left(4 \cdot \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right)}, x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    7. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    8. *-lowering-*.f6424.1%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  5. Simplified24.1%

                                    \[\leadsto x1 + \left(\left(\color{blue}{4 \cdot \left(x1 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right)\right)} + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  6. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right) \]
                                  7. Step-by-step derivation
                                    1. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\left(-6 \cdot x2\right), \color{blue}{\left(x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \left(\color{blue}{x1} \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \color{blue}{\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)}\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + \color{blue}{\left(\mathsf{neg}\left(2\right)\right)}\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + -2\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right), \color{blue}{-2}\right)\right)\right)\right) \]
                                    7. associate-*r*N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(\left(4 \cdot x2\right) \cdot \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    8. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(4 \cdot x2\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    9. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(x2 \cdot 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    10. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    11. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right), -2\right)\right)\right)\right) \]
                                    12. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + -3\right)\right), -2\right)\right)\right)\right) \]
                                    13. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                    14. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                    15. *-lowering-*.f6426.3%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                  8. Simplified26.3%

                                    \[\leadsto x1 + \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(\left(x2 \cdot 4\right) \cdot \left(x2 \cdot 2 + -3\right) + -2\right)\right)} \]
                                  9. Taylor expanded in x2 around 0

                                    \[\leadsto \color{blue}{x1 + -2 \cdot x1} \]
                                  10. Step-by-step derivation
                                    1. distribute-rgt1-inN/A

                                      \[\leadsto \left(-2 + 1\right) \cdot \color{blue}{x1} \]
                                    2. metadata-evalN/A

                                      \[\leadsto -1 \cdot x1 \]
                                    3. mul-1-negN/A

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

                                      \[\leadsto 0 - \color{blue}{x1} \]
                                    5. --lowering--.f6416.7%

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

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

                                  if -9.4999999999999996e-82 < x1 < 5.4999999999999999e-132

                                  1. Initial program 99.6%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \color{blue}{-6 \cdot x2} \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f6471.5%

                                      \[\leadsto \mathsf{*.f64}\left(-6, \color{blue}{x2}\right) \]
                                  5. Simplified71.5%

                                    \[\leadsto \color{blue}{-6 \cdot x2} \]

                                  if 5.4999999999999999e-132 < x1

                                  1. Initial program 62.6%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\color{blue}{\left(4 \cdot \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right)}, x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    7. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    8. *-lowering-*.f6435.4%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  5. Simplified35.4%

                                    \[\leadsto x1 + \left(\left(\color{blue}{4 \cdot \left(x1 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right)\right)} + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  6. Taylor expanded in x2 around inf

                                    \[\leadsto \color{blue}{8 \cdot \left(x1 \cdot {x2}^{2}\right)} \]
                                  7. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(8, \color{blue}{\left(x1 \cdot {x2}^{2}\right)}\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{*.f64}\left(8, \mathsf{*.f64}\left(x1, \color{blue}{\left({x2}^{2}\right)}\right)\right) \]
                                    3. unpow2N/A

                                      \[\leadsto \mathsf{*.f64}\left(8, \mathsf{*.f64}\left(x1, \left(x2 \cdot \color{blue}{x2}\right)\right)\right) \]
                                    4. *-lowering-*.f6439.1%

                                      \[\leadsto \mathsf{*.f64}\left(8, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \color{blue}{x2}\right)\right)\right) \]
                                  8. Simplified39.1%

                                    \[\leadsto \color{blue}{8 \cdot \left(x1 \cdot \left(x2 \cdot x2\right)\right)} \]
                                3. Recombined 3 regimes into one program.
                                4. Final simplification39.9%

                                  \[\leadsto \begin{array}{l} \mathbf{if}\;x1 \leq -9.5 \cdot 10^{-82}:\\ \;\;\;\;0 - x1\\ \mathbf{elif}\;x1 \leq 5.5 \cdot 10^{-132}:\\ \;\;\;\;x2 \cdot -6\\ \mathbf{else}:\\ \;\;\;\;8 \cdot \left(x1 \cdot \left(x2 \cdot x2\right)\right)\\ \end{array} \]
                                5. Add Preprocessing

                                Alternative 18: 30.7% accurate, 9.7× speedup?

                                \[\begin{array}{l} \\ \begin{array}{l} \mathbf{if}\;x2 \leq -6.2 \cdot 10^{-147}:\\ \;\;\;\;x2 \cdot -6\\ \mathbf{elif}\;x2 \leq 1.9 \cdot 10^{-40}:\\ \;\;\;\;0 - x1\\ \mathbf{else}:\\ \;\;\;\;x2 \cdot -6\\ \end{array} \end{array} \]
                                (FPCore (x1 x2)
                                 :precision binary64
                                 (if (<= x2 -6.2e-147)
                                   (* x2 -6.0)
                                   (if (<= x2 1.9e-40) (- 0.0 x1) (* x2 -6.0))))
                                double code(double x1, double x2) {
                                	double tmp;
                                	if (x2 <= -6.2e-147) {
                                		tmp = x2 * -6.0;
                                	} else if (x2 <= 1.9e-40) {
                                		tmp = 0.0 - x1;
                                	} else {
                                		tmp = x2 * -6.0;
                                	}
                                	return tmp;
                                }
                                
                                real(8) function code(x1, x2)
                                    real(8), intent (in) :: x1
                                    real(8), intent (in) :: x2
                                    real(8) :: tmp
                                    if (x2 <= (-6.2d-147)) then
                                        tmp = x2 * (-6.0d0)
                                    else if (x2 <= 1.9d-40) then
                                        tmp = 0.0d0 - x1
                                    else
                                        tmp = x2 * (-6.0d0)
                                    end if
                                    code = tmp
                                end function
                                
                                public static double code(double x1, double x2) {
                                	double tmp;
                                	if (x2 <= -6.2e-147) {
                                		tmp = x2 * -6.0;
                                	} else if (x2 <= 1.9e-40) {
                                		tmp = 0.0 - x1;
                                	} else {
                                		tmp = x2 * -6.0;
                                	}
                                	return tmp;
                                }
                                
                                def code(x1, x2):
                                	tmp = 0
                                	if x2 <= -6.2e-147:
                                		tmp = x2 * -6.0
                                	elif x2 <= 1.9e-40:
                                		tmp = 0.0 - x1
                                	else:
                                		tmp = x2 * -6.0
                                	return tmp
                                
                                function code(x1, x2)
                                	tmp = 0.0
                                	if (x2 <= -6.2e-147)
                                		tmp = Float64(x2 * -6.0);
                                	elseif (x2 <= 1.9e-40)
                                		tmp = Float64(0.0 - x1);
                                	else
                                		tmp = Float64(x2 * -6.0);
                                	end
                                	return tmp
                                end
                                
                                function tmp_2 = code(x1, x2)
                                	tmp = 0.0;
                                	if (x2 <= -6.2e-147)
                                		tmp = x2 * -6.0;
                                	elseif (x2 <= 1.9e-40)
                                		tmp = 0.0 - x1;
                                	else
                                		tmp = x2 * -6.0;
                                	end
                                	tmp_2 = tmp;
                                end
                                
                                code[x1_, x2_] := If[LessEqual[x2, -6.2e-147], N[(x2 * -6.0), $MachinePrecision], If[LessEqual[x2, 1.9e-40], N[(0.0 - x1), $MachinePrecision], N[(x2 * -6.0), $MachinePrecision]]]
                                
                                \begin{array}{l}
                                
                                \\
                                \begin{array}{l}
                                \mathbf{if}\;x2 \leq -6.2 \cdot 10^{-147}:\\
                                \;\;\;\;x2 \cdot -6\\
                                
                                \mathbf{elif}\;x2 \leq 1.9 \cdot 10^{-40}:\\
                                \;\;\;\;0 - x1\\
                                
                                \mathbf{else}:\\
                                \;\;\;\;x2 \cdot -6\\
                                
                                
                                \end{array}
                                \end{array}
                                
                                Derivation
                                1. Split input into 2 regimes
                                2. if x2 < -6.2000000000000005e-147 or 1.8999999999999999e-40 < x2

                                  1. Initial program 70.3%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \color{blue}{-6 \cdot x2} \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f6428.7%

                                      \[\leadsto \mathsf{*.f64}\left(-6, \color{blue}{x2}\right) \]
                                  5. Simplified28.7%

                                    \[\leadsto \color{blue}{-6 \cdot x2} \]

                                  if -6.2000000000000005e-147 < x2 < 1.8999999999999999e-40

                                  1. Initial program 67.9%

                                    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  2. Add Preprocessing
                                  3. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\color{blue}{\left(4 \cdot \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right)}, x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  4. Step-by-step derivation
                                    1. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \left(x1 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 - 3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \left(2 \cdot x2 + -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    7. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                    8. *-lowering-*.f6446.5%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{+.f64}\left(\mathsf{*.f64}\left(4, \mathsf{*.f64}\left(x1, \mathsf{*.f64}\left(x2, \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right)\right)\right), x1\right), \mathsf{*.f64}\left(3, \mathsf{/.f64}\left(\mathsf{\_.f64}\left(\mathsf{\_.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(3, x1\right), x1\right), \mathsf{*.f64}\left(2, x2\right)\right), x1\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x1, x1\right), 1\right)\right)\right)\right)\right) \]
                                  5. Simplified46.5%

                                    \[\leadsto x1 + \left(\left(\color{blue}{4 \cdot \left(x1 \cdot \left(x2 \cdot \left(x2 \cdot 2 + -3\right)\right)\right)} + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                  6. Taylor expanded in x1 around 0

                                    \[\leadsto \mathsf{+.f64}\left(x1, \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right) \]
                                  7. Step-by-step derivation
                                    1. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\left(-6 \cdot x2\right), \color{blue}{\left(x1 \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)}\right)\right) \]
                                    2. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \left(\color{blue}{x1} \cdot \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)\right)\right)\right) \]
                                    3. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \color{blue}{\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) - 2\right)}\right)\right)\right) \]
                                    4. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + \color{blue}{\left(\mathsf{neg}\left(2\right)\right)}\right)\right)\right)\right) \]
                                    5. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right) + -2\right)\right)\right)\right) \]
                                    6. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(4 \cdot \left(x2 \cdot \left(2 \cdot x2 - 3\right)\right)\right), \color{blue}{-2}\right)\right)\right)\right) \]
                                    7. associate-*r*N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\left(\left(4 \cdot x2\right) \cdot \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    8. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(4 \cdot x2\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    9. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\left(x2 \cdot 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    10. *-lowering-*.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 - 3\right)\right), -2\right)\right)\right)\right) \]
                                    11. sub-negN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + \left(\mathsf{neg}\left(3\right)\right)\right)\right), -2\right)\right)\right)\right) \]
                                    12. metadata-evalN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \left(2 \cdot x2 + -3\right)\right), -2\right)\right)\right)\right) \]
                                    13. +-lowering-+.f64N/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(2 \cdot x2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                    14. *-commutativeN/A

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\left(x2 \cdot 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                    15. *-lowering-*.f6447.6%

                                      \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(-6, x2\right), \mathsf{*.f64}\left(x1, \mathsf{+.f64}\left(\mathsf{*.f64}\left(\mathsf{*.f64}\left(x2, 4\right), \mathsf{+.f64}\left(\mathsf{*.f64}\left(x2, 2\right), -3\right)\right), -2\right)\right)\right)\right) \]
                                  8. Simplified47.6%

                                    \[\leadsto x1 + \color{blue}{\left(-6 \cdot x2 + x1 \cdot \left(\left(x2 \cdot 4\right) \cdot \left(x2 \cdot 2 + -3\right) + -2\right)\right)} \]
                                  9. Taylor expanded in x2 around 0

                                    \[\leadsto \color{blue}{x1 + -2 \cdot x1} \]
                                  10. Step-by-step derivation
                                    1. distribute-rgt1-inN/A

                                      \[\leadsto \left(-2 + 1\right) \cdot \color{blue}{x1} \]
                                    2. metadata-evalN/A

                                      \[\leadsto -1 \cdot x1 \]
                                    3. mul-1-negN/A

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

                                      \[\leadsto 0 - \color{blue}{x1} \]
                                    5. --lowering--.f6434.8%

                                      \[\leadsto \mathsf{\_.f64}\left(0, \color{blue}{x1}\right) \]
                                  11. Simplified34.8%

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

                                  \[\leadsto \begin{array}{l} \mathbf{if}\;x2 \leq -6.2 \cdot 10^{-147}:\\ \;\;\;\;x2 \cdot -6\\ \mathbf{elif}\;x2 \leq 1.9 \cdot 10^{-40}:\\ \;\;\;\;0 - x1\\ \mathbf{else}:\\ \;\;\;\;x2 \cdot -6\\ \end{array} \]
                                5. Add Preprocessing

                                Alternative 19: 25.9% accurate, 42.3× speedup?

                                \[\begin{array}{l} \\ x2 \cdot -6 \end{array} \]
                                (FPCore (x1 x2) :precision binary64 (* x2 -6.0))
                                double code(double x1, double x2) {
                                	return x2 * -6.0;
                                }
                                
                                real(8) function code(x1, x2)
                                    real(8), intent (in) :: x1
                                    real(8), intent (in) :: x2
                                    code = x2 * (-6.0d0)
                                end function
                                
                                public static double code(double x1, double x2) {
                                	return x2 * -6.0;
                                }
                                
                                def code(x1, x2):
                                	return x2 * -6.0
                                
                                function code(x1, x2)
                                	return Float64(x2 * -6.0)
                                end
                                
                                function tmp = code(x1, x2)
                                	tmp = x2 * -6.0;
                                end
                                
                                code[x1_, x2_] := N[(x2 * -6.0), $MachinePrecision]
                                
                                \begin{array}{l}
                                
                                \\
                                x2 \cdot -6
                                \end{array}
                                
                                Derivation
                                1. Initial program 69.5%

                                  \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                2. Add Preprocessing
                                3. Taylor expanded in x1 around 0

                                  \[\leadsto \color{blue}{-6 \cdot x2} \]
                                4. Step-by-step derivation
                                  1. *-lowering-*.f6423.6%

                                    \[\leadsto \mathsf{*.f64}\left(-6, \color{blue}{x2}\right) \]
                                5. Simplified23.6%

                                  \[\leadsto \color{blue}{-6 \cdot x2} \]
                                6. Final simplification23.6%

                                  \[\leadsto x2 \cdot -6 \]
                                7. Add Preprocessing

                                Alternative 20: 3.2% accurate, 127.0× speedup?

                                \[\begin{array}{l} \\ x1 \end{array} \]
                                (FPCore (x1 x2) :precision binary64 x1)
                                double code(double x1, double x2) {
                                	return x1;
                                }
                                
                                real(8) function code(x1, x2)
                                    real(8), intent (in) :: x1
                                    real(8), intent (in) :: x2
                                    code = x1
                                end function
                                
                                public static double code(double x1, double x2) {
                                	return x1;
                                }
                                
                                def code(x1, x2):
                                	return x1
                                
                                function code(x1, x2)
                                	return x1
                                end
                                
                                function tmp = code(x1, x2)
                                	tmp = x1;
                                end
                                
                                code[x1_, x2_] := x1
                                
                                \begin{array}{l}
                                
                                \\
                                x1
                                \end{array}
                                
                                Derivation
                                1. Initial program 69.5%

                                  \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \]
                                2. Add Preprocessing
                                3. Taylor expanded in x1 around 0

                                  \[\leadsto \mathsf{+.f64}\left(x1, \color{blue}{\left(-6 \cdot x2\right)}\right) \]
                                4. Step-by-step derivation
                                  1. *-lowering-*.f6423.6%

                                    \[\leadsto \mathsf{+.f64}\left(x1, \mathsf{*.f64}\left(-6, \color{blue}{x2}\right)\right) \]
                                5. Simplified23.6%

                                  \[\leadsto x1 + \color{blue}{-6 \cdot x2} \]
                                6. Taylor expanded in x1 around inf

                                  \[\leadsto \color{blue}{x1} \]
                                7. Step-by-step derivation
                                  1. Simplified3.2%

                                    \[\leadsto \color{blue}{x1} \]
                                  2. Add Preprocessing

                                  Reproduce

                                  ?
                                  herbie shell --seed 2024158 
                                  (FPCore (x1 x2)
                                    :name "Rosa's FloatVsDoubleBenchmark"
                                    :precision binary64
                                    (+ x1 (+ (+ (+ (+ (* (+ (* (* (* 2.0 x1) (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0))) (- (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0)) 3.0)) (* (* x1 x1) (- (* 4.0 (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0))) 6.0))) (+ (* x1 x1) 1.0)) (* (* (* 3.0 x1) x1) (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0)))) (* (* x1 x1) x1)) x1) (* 3.0 (/ (- (- (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0))))))