
(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:
Herbie found 20 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(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}
(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}
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.0Initial program 99.4%
Simplified99.5%
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)))))) Initial program 0.0%
Taylor expanded in x1 around inf
*-lowering-*.f64N/A
pow-lowering-pow.f6498.7%
Simplified98.7%
metadata-evalN/A
pow-prod-upN/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
cube-multN/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f6498.7%
Applied egg-rr98.7%
Final simplification99.2%
(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}
if x1 < -3.50000000000000029e63 or 1.1e77 < x1 Initial program 22.2%
Taylor expanded in x1 around inf
*-lowering-*.f64N/A
pow-lowering-pow.f6499.0%
Simplified99.0%
metadata-evalN/A
pow-prod-upN/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
cube-multN/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f6499.0%
Applied egg-rr99.0%
if -3.50000000000000029e63 < x1 < 1.1e77Initial program 99.3%
Simplified99.4%
Applied egg-rr99.3%
Final simplification99.2%
(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}
if x1 < -3.50000000000000029e63Initial program 18.8%
Taylor expanded in x1 around inf
*-lowering-*.f64N/A
pow-lowering-pow.f64100.0%
Simplified100.0%
metadata-evalN/A
pow-prod-upN/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
cube-multN/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64100.0%
Applied egg-rr100.0%
if -3.50000000000000029e63 < x1 < 8.00000000000000074e56Initial program 99.3%
Simplified99.4%
Taylor expanded in x2 around inf
*-lowering-*.f64N/A
/-lowering-/.f64N/A
+-lowering-+.f64N/A
unpow2N/A
*-lowering-*.f6499.2%
Simplified99.2%
if 8.00000000000000074e56 < x1 Initial program 34.5%
Simplified34.5%
Taylor expanded in x1 around inf
Simplified34.5%
Taylor expanded in x1 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
/-lowering-/.f64N/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
/-lowering-/.f64N/A
sub-negN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
metadata-eval34.5%
Simplified34.5%
Taylor expanded in x1 around inf
Simplified98.0%
Final simplification99.1%
(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}
if x1 < -3.50000000000000029e63Initial program 18.8%
Taylor expanded in x1 around inf
*-lowering-*.f64N/A
pow-lowering-pow.f64100.0%
Simplified100.0%
metadata-evalN/A
pow-prod-upN/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
cube-multN/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64100.0%
Applied egg-rr100.0%
if -3.50000000000000029e63 < x1 < 1.00000000000000001e55Initial program 99.3%
Simplified99.4%
Taylor expanded in x1 around inf
Simplified98.5%
if 1.00000000000000001e55 < x1 Initial program 34.5%
Simplified34.5%
Taylor expanded in x1 around inf
Simplified34.5%
Taylor expanded in x1 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
/-lowering-/.f64N/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
/-lowering-/.f64N/A
sub-negN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
metadata-eval34.5%
Simplified34.5%
Taylor expanded in x1 around inf
Simplified98.0%
Final simplification98.7%
(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}
if x1 < -3.50000000000000029e63Initial program 18.8%
Taylor expanded in x1 around inf
*-lowering-*.f64N/A
pow-lowering-pow.f64100.0%
Simplified100.0%
metadata-evalN/A
pow-prod-upN/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
cube-multN/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64100.0%
Applied egg-rr100.0%
if -3.50000000000000029e63 < x1 < -7.6000000000000004e-5Initial program 99.1%
Simplified99.3%
Taylor expanded in x1 around inf
Simplified99.3%
Taylor expanded in x1 around inf
Simplified99.3%
if -7.6000000000000004e-5 < x1 < 2.85e12Initial program 99.4%
Taylor expanded in x1 around 0
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6486.3%
Simplified86.3%
Taylor expanded in x2 around 0
associate-+r+N/A
+-lowering-+.f64N/A
Simplified97.2%
if 2.85e12 < x1 Initial program 43.1%
Simplified43.2%
Taylor expanded in x1 around inf
Simplified43.2%
Taylor expanded in x1 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
/-lowering-/.f64N/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
/-lowering-/.f64N/A
sub-negN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
metadata-eval41.5%
Simplified41.5%
Taylor expanded in x1 around inf
Simplified96.5%
Final simplification97.8%
(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}
if x1 < -58000Initial program 40.8%
Taylor expanded in x1 around inf
*-lowering-*.f64N/A
pow-lowering-pow.f6489.8%
Simplified89.8%
metadata-evalN/A
pow-prod-upN/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
cube-multN/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f6489.8%
Applied egg-rr89.8%
if -58000 < x1 < 6.2e11Initial program 99.4%
Taylor expanded in x1 around 0
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6486.0%
Simplified86.0%
Taylor expanded in x2 around 0
associate-+r+N/A
+-lowering-+.f64N/A
Simplified96.7%
if 6.2e11 < x1 Initial program 43.1%
Simplified43.2%
Taylor expanded in x1 around inf
Simplified43.2%
Taylor expanded in x1 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
/-lowering-/.f64N/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
/-lowering-/.f64N/A
sub-negN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
metadata-eval41.5%
Simplified41.5%
Taylor expanded in x1 around inf
Simplified96.5%
Final simplification94.7%
(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}
if x1 < -1400Initial program 40.8%
Taylor expanded in x1 around inf
*-lowering-*.f64N/A
pow-lowering-pow.f6489.8%
Simplified89.8%
metadata-evalN/A
pow-prod-upN/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
cube-multN/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f6489.8%
Applied egg-rr89.8%
if -1400 < x1 < 6.2e11Initial program 99.4%
Taylor expanded in x1 around 0
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6486.0%
Simplified86.0%
+-lowering-+.f64N/A
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6496.6%
Applied egg-rr96.6%
if 6.2e11 < x1 Initial program 43.1%
Simplified43.2%
Taylor expanded in x1 around inf
Simplified43.2%
Taylor expanded in x1 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
/-lowering-/.f64N/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
/-lowering-/.f64N/A
sub-negN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
metadata-eval41.5%
Simplified41.5%
Taylor expanded in x1 around inf
Simplified96.5%
Final simplification94.6%
(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}
if x1 < -8e4Initial program 40.8%
Taylor expanded in x1 around inf
*-lowering-*.f64N/A
pow-lowering-pow.f6489.8%
Simplified89.8%
metadata-evalN/A
pow-prod-upN/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
cube-multN/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f6489.8%
Applied egg-rr89.8%
if -8e4 < x1 < 6.2e11Initial program 99.4%
Taylor expanded in x1 around 0
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6486.0%
Simplified86.0%
Taylor expanded in x1 around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6485.6%
Simplified85.6%
Taylor expanded in x2 around 0
associate-+r+N/A
+-lowering-+.f64N/A
distribute-rgt1-inN/A
metadata-evalN/A
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
associate--l+N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6496.3%
Simplified96.3%
if 6.2e11 < x1 Initial program 43.1%
Simplified43.2%
Taylor expanded in x1 around inf
Simplified43.2%
Taylor expanded in x1 around -inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
/-lowering-/.f64N/A
mul-1-negN/A
unsub-negN/A
--lowering--.f64N/A
/-lowering-/.f64N/A
sub-negN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
metadata-eval41.5%
Simplified41.5%
Taylor expanded in x1 around inf
Simplified96.5%
Final simplification94.5%
(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}
if (*.f64 #s(literal 2 binary64) x2) < -2e46 or 1.00000000000000006e140 < (*.f64 #s(literal 2 binary64) x2) Initial program 64.2%
Taylor expanded in x1 around 0
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6437.6%
Simplified37.6%
Taylor expanded in x2 around inf
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6449.8%
Simplified49.8%
if -2e46 < (*.f64 #s(literal 2 binary64) x2) < -9.9999999999999999e-161 or 4.99999999999999977e-213 < (*.f64 #s(literal 2 binary64) x2) < 1.00000000000000006e140Initial program 70.2%
Taylor expanded in x1 around 0
*-lowering-*.f6434.2%
Simplified34.2%
Taylor expanded in x2 around inf
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
/-lowering-/.f6440.8%
Simplified40.8%
if -9.9999999999999999e-161 < (*.f64 #s(literal 2 binary64) x2) < 4.99999999999999977e-213Initial program 78.2%
Taylor expanded in x1 around 0
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6455.5%
Simplified55.5%
Taylor expanded in x1 around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6456.1%
Simplified56.1%
Taylor expanded in x2 around 0
distribute-rgt1-inN/A
metadata-evalN/A
mul-1-negN/A
neg-sub0N/A
--lowering--.f6444.5%
Simplified44.5%
Final simplification44.5%
(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}
if x1 < -1.8500000000000001e-6 or 1.65e13 < x1 Initial program 42.7%
Taylor expanded in x1 around inf
*-lowering-*.f64N/A
pow-lowering-pow.f6490.8%
Simplified90.8%
metadata-evalN/A
pow-prod-upN/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
cube-multN/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f6490.8%
Applied egg-rr90.8%
if -1.8500000000000001e-6 < x1 < -3.09999999999999989e-86Initial program 99.0%
Taylor expanded in x1 around 0
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6497.8%
Simplified97.8%
Taylor expanded in x1 around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6495.9%
Simplified95.9%
Taylor expanded in x2 around 0
distribute-rgt1-inN/A
metadata-evalN/A
mul-1-negN/A
neg-sub0N/A
--lowering--.f6463.3%
Simplified63.3%
if -3.09999999999999989e-86 < x1 < 4.0000000000000003e-133Initial program 99.6%
Taylor expanded in x1 around 0
*-lowering-*.f6471.5%
Simplified71.5%
if 4.0000000000000003e-133 < x1 < 1.65e13Initial program 99.1%
Taylor expanded in x1 around 0
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6482.6%
Simplified82.6%
Taylor expanded in x2 around inf
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6439.2%
Simplified39.2%
Final simplification77.0%
(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}
if x1 < -1.8500000000000001e-6 or 1.35e12 < x1 Initial program 42.7%
Taylor expanded in x1 around inf
*-lowering-*.f64N/A
pow-lowering-pow.f6490.8%
Simplified90.8%
metadata-evalN/A
pow-prod-upN/A
pow2N/A
pow2N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6490.7%
Applied egg-rr90.7%
if -1.8500000000000001e-6 < x1 < -2.09999999999999998e-84Initial program 99.0%
Taylor expanded in x1 around 0
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6497.8%
Simplified97.8%
Taylor expanded in x1 around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6495.9%
Simplified95.9%
Taylor expanded in x2 around 0
distribute-rgt1-inN/A
metadata-evalN/A
mul-1-negN/A
neg-sub0N/A
--lowering--.f6463.3%
Simplified63.3%
if -2.09999999999999998e-84 < x1 < 4.0000000000000003e-133Initial program 99.6%
Taylor expanded in x1 around 0
*-lowering-*.f6471.5%
Simplified71.5%
if 4.0000000000000003e-133 < x1 < 1.35e12Initial program 99.1%
Taylor expanded in x1 around 0
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6482.6%
Simplified82.6%
Taylor expanded in x2 around inf
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6439.2%
Simplified39.2%
Final simplification77.0%
(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}
if x1 < -4500 or 1.3e13 < x1 Initial program 41.9%
Taylor expanded in x1 around inf
*-lowering-*.f64N/A
pow-lowering-pow.f6492.1%
Simplified92.1%
metadata-evalN/A
pow-prod-upN/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
cube-multN/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f6492.1%
Applied egg-rr92.1%
if -4500 < x1 < 1.3e13Initial program 99.4%
Taylor expanded in x1 around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6485.6%
Simplified85.6%
Final simplification89.0%
(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}
if x1 < -72000 or 1.3e13 < x1 Initial program 41.9%
Taylor expanded in x1 around inf
*-lowering-*.f64N/A
pow-lowering-pow.f6492.1%
Simplified92.1%
metadata-evalN/A
pow-prod-upN/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
cube-multN/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f6492.1%
Applied egg-rr92.1%
if -72000 < x1 < 1.3e13Initial program 99.4%
Taylor expanded in x1 around 0
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6486.0%
Simplified86.0%
Taylor expanded in x1 around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6485.6%
Simplified85.6%
Taylor expanded in x2 around 0
associate-+r+N/A
+-lowering-+.f64N/A
distribute-rgt1-inN/A
metadata-evalN/A
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
associate--l+N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6496.3%
Simplified96.3%
Final simplification94.1%
(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}
if x1 < -1.8500000000000001e-6 or 1.3999999999999999 < x1 Initial program 43.9%
Taylor expanded in x1 around inf
*-lowering-*.f64N/A
pow-lowering-pow.f6489.3%
Simplified89.3%
metadata-evalN/A
pow-prod-upN/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
cube-multN/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f6489.3%
Applied egg-rr89.3%
if -1.8500000000000001e-6 < x1 < 1.3999999999999999Initial program 99.4%
Taylor expanded in x1 around 0
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6487.4%
Simplified87.4%
Taylor expanded in x1 around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6487.0%
Simplified87.0%
Taylor expanded in x2 around 0
associate-+r+N/A
+-lowering-+.f64N/A
distribute-rgt1-inN/A
metadata-evalN/A
mul-1-negN/A
neg-sub0N/A
--lowering--.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6474.2%
Simplified74.2%
Final simplification82.4%
(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}
if x1 < -1.8500000000000001e-6 or 1.3999999999999999 < x1 Initial program 43.9%
Taylor expanded in x1 around inf
*-lowering-*.f64N/A
pow-lowering-pow.f6489.3%
Simplified89.3%
metadata-evalN/A
pow-prod-upN/A
pow2N/A
pow2N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
cube-multN/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f6489.3%
Applied egg-rr89.3%
if -1.8500000000000001e-6 < x1 < 1.3999999999999999Initial program 99.4%
Taylor expanded in x1 around 0
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6487.4%
Simplified87.4%
Taylor expanded in x1 around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6487.0%
Simplified87.0%
Taylor expanded in x2 around 0
*-commutativeN/A
*-lowering-*.f6474.2%
Simplified74.2%
Final simplification82.3%
(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}
if (*.f64 #s(literal 2 binary64) x2) < -5.00000000000000027e-129Initial program 66.3%
Taylor expanded in x1 around 0
*-lowering-*.f6431.0%
Simplified31.0%
if -5.00000000000000027e-129 < (*.f64 #s(literal 2 binary64) x2) < 4.99999999999999965e-40Initial program 67.9%
Taylor expanded in x1 around 0
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6446.5%
Simplified46.5%
Taylor expanded in x1 around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6447.6%
Simplified47.6%
Taylor expanded in x2 around 0
distribute-rgt1-inN/A
metadata-evalN/A
mul-1-negN/A
neg-sub0N/A
--lowering--.f6434.8%
Simplified34.8%
if 4.99999999999999965e-40 < (*.f64 #s(literal 2 binary64) x2) Initial program 75.9%
Taylor expanded in x1 around 0
*-lowering-*.f6426.0%
Simplified26.0%
Final simplification30.9%
(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}
if x1 < -9.4999999999999996e-82Initial program 53.3%
Taylor expanded in x1 around 0
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6424.1%
Simplified24.1%
Taylor expanded in x1 around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6426.3%
Simplified26.3%
Taylor expanded in x2 around 0
distribute-rgt1-inN/A
metadata-evalN/A
mul-1-negN/A
neg-sub0N/A
--lowering--.f6416.7%
Simplified16.7%
if -9.4999999999999996e-82 < x1 < 5.4999999999999999e-132Initial program 99.6%
Taylor expanded in x1 around 0
*-lowering-*.f6471.5%
Simplified71.5%
if 5.4999999999999999e-132 < x1 Initial program 62.6%
Taylor expanded in x1 around 0
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6435.4%
Simplified35.4%
Taylor expanded in x2 around inf
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6439.1%
Simplified39.1%
Final simplification39.9%
(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}
if x2 < -6.2000000000000005e-147 or 1.8999999999999999e-40 < x2 Initial program 70.3%
Taylor expanded in x1 around 0
*-lowering-*.f6428.7%
Simplified28.7%
if -6.2000000000000005e-147 < x2 < 1.8999999999999999e-40Initial program 67.9%
Taylor expanded in x1 around 0
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6446.5%
Simplified46.5%
Taylor expanded in x1 around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
sub-negN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f6447.6%
Simplified47.6%
Taylor expanded in x2 around 0
distribute-rgt1-inN/A
metadata-evalN/A
mul-1-negN/A
neg-sub0N/A
--lowering--.f6434.8%
Simplified34.8%
Final simplification30.8%
(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}
Initial program 69.5%
Taylor expanded in x1 around 0
*-lowering-*.f6423.6%
Simplified23.6%
Final simplification23.6%
(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}
Initial program 69.5%
Taylor expanded in x1 around 0
*-lowering-*.f6423.6%
Simplified23.6%
Taylor expanded in x1 around inf
Simplified3.2%
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))))))