
(FPCore (x y) :precision binary64 (exp (* (* x y) y)))
double code(double x, double y) {
return exp(((x * y) * y));
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = exp(((x * y) * y))
end function
public static double code(double x, double y) {
return Math.exp(((x * y) * y));
}
def code(x, y): return math.exp(((x * y) * y))
function code(x, y) return exp(Float64(Float64(x * y) * y)) end
function tmp = code(x, y) tmp = exp(((x * y) * y)); end
code[x_, y_] := N[Exp[N[(N[(x * y), $MachinePrecision] * y), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}
\\
e^{\left(x \cdot y\right) \cdot y}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 14 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y) :precision binary64 (exp (* (* x y) y)))
double code(double x, double y) {
return exp(((x * y) * y));
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = exp(((x * y) * y))
end function
public static double code(double x, double y) {
return Math.exp(((x * y) * y));
}
def code(x, y): return math.exp(((x * y) * y))
function code(x, y) return exp(Float64(Float64(x * y) * y)) end
function tmp = code(x, y) tmp = exp(((x * y) * y)); end
code[x_, y_] := N[Exp[N[(N[(x * y), $MachinePrecision] * y), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}
\\
e^{\left(x \cdot y\right) \cdot y}
\end{array}
(FPCore (x y) :precision binary64 (exp (* y (* x y))))
double code(double x, double y) {
return exp((y * (x * y)));
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = exp((y * (x * y)))
end function
public static double code(double x, double y) {
return Math.exp((y * (x * y)));
}
def code(x, y): return math.exp((y * (x * y)))
function code(x, y) return exp(Float64(y * Float64(x * y))) end
function tmp = code(x, y) tmp = exp((y * (x * y))); end
code[x_, y_] := N[Exp[N[(y * N[(x * y), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]
\begin{array}{l}
\\
e^{y \cdot \left(x \cdot y\right)}
\end{array}
Initial program 100.0%
Final simplification100.0%
(FPCore (x y)
:precision binary64
(let* ((t_0 (* (* x y) (* y (+ 0.5 (* y (* x (* y 0.16666666666666666)))))))
(t_1 (* (* x (* y y)) (- -1.0 t_0))))
(if (<= y 5.2e-66)
(/ (+ 1.0 (* x (* (* (+ 1.0 t_0) (* y y)) t_1))) (+ 1.0 t_1))
(exp (* x y)))))
double code(double x, double y) {
double t_0 = (x * y) * (y * (0.5 + (y * (x * (y * 0.16666666666666666)))));
double t_1 = (x * (y * y)) * (-1.0 - t_0);
double tmp;
if (y <= 5.2e-66) {
tmp = (1.0 + (x * (((1.0 + t_0) * (y * y)) * t_1))) / (1.0 + t_1);
} else {
tmp = exp((x * y));
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: t_0
real(8) :: t_1
real(8) :: tmp
t_0 = (x * y) * (y * (0.5d0 + (y * (x * (y * 0.16666666666666666d0)))))
t_1 = (x * (y * y)) * ((-1.0d0) - t_0)
if (y <= 5.2d-66) then
tmp = (1.0d0 + (x * (((1.0d0 + t_0) * (y * y)) * t_1))) / (1.0d0 + t_1)
else
tmp = exp((x * y))
end if
code = tmp
end function
public static double code(double x, double y) {
double t_0 = (x * y) * (y * (0.5 + (y * (x * (y * 0.16666666666666666)))));
double t_1 = (x * (y * y)) * (-1.0 - t_0);
double tmp;
if (y <= 5.2e-66) {
tmp = (1.0 + (x * (((1.0 + t_0) * (y * y)) * t_1))) / (1.0 + t_1);
} else {
tmp = Math.exp((x * y));
}
return tmp;
}
def code(x, y): t_0 = (x * y) * (y * (0.5 + (y * (x * (y * 0.16666666666666666))))) t_1 = (x * (y * y)) * (-1.0 - t_0) tmp = 0 if y <= 5.2e-66: tmp = (1.0 + (x * (((1.0 + t_0) * (y * y)) * t_1))) / (1.0 + t_1) else: tmp = math.exp((x * y)) return tmp
function code(x, y) t_0 = Float64(Float64(x * y) * Float64(y * Float64(0.5 + Float64(y * Float64(x * Float64(y * 0.16666666666666666)))))) t_1 = Float64(Float64(x * Float64(y * y)) * Float64(-1.0 - t_0)) tmp = 0.0 if (y <= 5.2e-66) tmp = Float64(Float64(1.0 + Float64(x * Float64(Float64(Float64(1.0 + t_0) * Float64(y * y)) * t_1))) / Float64(1.0 + t_1)); else tmp = exp(Float64(x * y)); end return tmp end
function tmp_2 = code(x, y) t_0 = (x * y) * (y * (0.5 + (y * (x * (y * 0.16666666666666666))))); t_1 = (x * (y * y)) * (-1.0 - t_0); tmp = 0.0; if (y <= 5.2e-66) tmp = (1.0 + (x * (((1.0 + t_0) * (y * y)) * t_1))) / (1.0 + t_1); else tmp = exp((x * y)); end tmp_2 = tmp; end
code[x_, y_] := Block[{t$95$0 = N[(N[(x * y), $MachinePrecision] * N[(y * N[(0.5 + N[(y * N[(x * N[(y * 0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$1 = N[(N[(x * N[(y * y), $MachinePrecision]), $MachinePrecision] * N[(-1.0 - t$95$0), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, 5.2e-66], N[(N[(1.0 + N[(x * N[(N[(N[(1.0 + t$95$0), $MachinePrecision] * N[(y * y), $MachinePrecision]), $MachinePrecision] * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(1.0 + t$95$1), $MachinePrecision]), $MachinePrecision], N[Exp[N[(x * y), $MachinePrecision]], $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \left(x \cdot y\right) \cdot \left(y \cdot \left(0.5 + y \cdot \left(x \cdot \left(y \cdot 0.16666666666666666\right)\right)\right)\right)\\
t_1 := \left(x \cdot \left(y \cdot y\right)\right) \cdot \left(-1 - t\_0\right)\\
\mathbf{if}\;y \leq 5.2 \cdot 10^{-66}:\\
\;\;\;\;\frac{1 + x \cdot \left(\left(\left(1 + t\_0\right) \cdot \left(y \cdot y\right)\right) \cdot t\_1\right)}{1 + t\_1}\\
\mathbf{else}:\\
\;\;\;\;e^{x \cdot y}\\
\end{array}
\end{array}
if y < 5.1999999999999998e-66Initial program 100.0%
Taylor expanded in x around 0
Simplified76.0%
+-commutativeN/A
+-lowering-+.f64N/A
Applied egg-rr76.0%
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr77.0%
Applied egg-rr63.3%
if 5.1999999999999998e-66 < y Initial program 100.0%
Applied egg-rr90.0%
Final simplification71.3%
(FPCore (x y)
:precision binary64
(if (<= x -1.15e+93)
(exp x)
(+
1.0
(*
x
(*
(* y y)
(+
1.0
(* y (* y (* x (+ 0.5 (* y (* (* x y) 0.16666666666666666))))))))))))
double code(double x, double y) {
double tmp;
if (x <= -1.15e+93) {
tmp = exp(x);
} else {
tmp = 1.0 + (x * ((y * y) * (1.0 + (y * (y * (x * (0.5 + (y * ((x * y) * 0.16666666666666666)))))))));
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (x <= (-1.15d+93)) then
tmp = exp(x)
else
tmp = 1.0d0 + (x * ((y * y) * (1.0d0 + (y * (y * (x * (0.5d0 + (y * ((x * y) * 0.16666666666666666d0)))))))))
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (x <= -1.15e+93) {
tmp = Math.exp(x);
} else {
tmp = 1.0 + (x * ((y * y) * (1.0 + (y * (y * (x * (0.5 + (y * ((x * y) * 0.16666666666666666)))))))));
}
return tmp;
}
def code(x, y): tmp = 0 if x <= -1.15e+93: tmp = math.exp(x) else: tmp = 1.0 + (x * ((y * y) * (1.0 + (y * (y * (x * (0.5 + (y * ((x * y) * 0.16666666666666666))))))))) return tmp
function code(x, y) tmp = 0.0 if (x <= -1.15e+93) tmp = exp(x); else tmp = Float64(1.0 + Float64(x * Float64(Float64(y * y) * Float64(1.0 + Float64(y * Float64(y * Float64(x * Float64(0.5 + Float64(y * Float64(Float64(x * y) * 0.16666666666666666)))))))))); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (x <= -1.15e+93) tmp = exp(x); else tmp = 1.0 + (x * ((y * y) * (1.0 + (y * (y * (x * (0.5 + (y * ((x * y) * 0.16666666666666666))))))))); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[x, -1.15e+93], N[Exp[x], $MachinePrecision], N[(1.0 + N[(x * N[(N[(y * y), $MachinePrecision] * N[(1.0 + N[(y * N[(y * N[(x * N[(0.5 + N[(y * N[(N[(x * y), $MachinePrecision] * 0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq -1.15 \cdot 10^{+93}:\\
\;\;\;\;e^{x}\\
\mathbf{else}:\\
\;\;\;\;1 + x \cdot \left(\left(y \cdot y\right) \cdot \left(1 + y \cdot \left(y \cdot \left(x \cdot \left(0.5 + y \cdot \left(\left(x \cdot y\right) \cdot 0.16666666666666666\right)\right)\right)\right)\right)\right)\\
\end{array}
\end{array}
if x < -1.1500000000000001e93Initial program 100.0%
Applied egg-rr75.2%
if -1.1500000000000001e93 < x Initial program 100.0%
Taylor expanded in x around 0
Simplified78.9%
+-commutativeN/A
+-lowering-+.f64N/A
Applied egg-rr78.9%
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr79.7%
Final simplification79.0%
(FPCore (x y)
:precision binary64
(if (<= y 5.2e-66)
(+ 1.0 (* y (* x y)))
(if (<= y 4.8e+84)
(+ 1.0 (* x (* (* x x) (* 0.16666666666666666 (* y (* y y))))))
(if (<= y 1.35e+154)
(* (* y y) (* y (* x (* 0.16666666666666666 (* x x)))))
(* x (* y y))))))
double code(double x, double y) {
double tmp;
if (y <= 5.2e-66) {
tmp = 1.0 + (y * (x * y));
} else if (y <= 4.8e+84) {
tmp = 1.0 + (x * ((x * x) * (0.16666666666666666 * (y * (y * y)))));
} else if (y <= 1.35e+154) {
tmp = (y * y) * (y * (x * (0.16666666666666666 * (x * x))));
} else {
tmp = x * (y * y);
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 5.2d-66) then
tmp = 1.0d0 + (y * (x * y))
else if (y <= 4.8d+84) then
tmp = 1.0d0 + (x * ((x * x) * (0.16666666666666666d0 * (y * (y * y)))))
else if (y <= 1.35d+154) then
tmp = (y * y) * (y * (x * (0.16666666666666666d0 * (x * x))))
else
tmp = x * (y * y)
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 5.2e-66) {
tmp = 1.0 + (y * (x * y));
} else if (y <= 4.8e+84) {
tmp = 1.0 + (x * ((x * x) * (0.16666666666666666 * (y * (y * y)))));
} else if (y <= 1.35e+154) {
tmp = (y * y) * (y * (x * (0.16666666666666666 * (x * x))));
} else {
tmp = x * (y * y);
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 5.2e-66: tmp = 1.0 + (y * (x * y)) elif y <= 4.8e+84: tmp = 1.0 + (x * ((x * x) * (0.16666666666666666 * (y * (y * y))))) elif y <= 1.35e+154: tmp = (y * y) * (y * (x * (0.16666666666666666 * (x * x)))) else: tmp = x * (y * y) return tmp
function code(x, y) tmp = 0.0 if (y <= 5.2e-66) tmp = Float64(1.0 + Float64(y * Float64(x * y))); elseif (y <= 4.8e+84) tmp = Float64(1.0 + Float64(x * Float64(Float64(x * x) * Float64(0.16666666666666666 * Float64(y * Float64(y * y)))))); elseif (y <= 1.35e+154) tmp = Float64(Float64(y * y) * Float64(y * Float64(x * Float64(0.16666666666666666 * Float64(x * x))))); else tmp = Float64(x * Float64(y * y)); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 5.2e-66) tmp = 1.0 + (y * (x * y)); elseif (y <= 4.8e+84) tmp = 1.0 + (x * ((x * x) * (0.16666666666666666 * (y * (y * y))))); elseif (y <= 1.35e+154) tmp = (y * y) * (y * (x * (0.16666666666666666 * (x * x)))); else tmp = x * (y * y); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 5.2e-66], N[(1.0 + N[(y * N[(x * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 4.8e+84], N[(1.0 + N[(x * N[(N[(x * x), $MachinePrecision] * N[(0.16666666666666666 * N[(y * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.35e+154], N[(N[(y * y), $MachinePrecision] * N[(y * N[(x * N[(0.16666666666666666 * N[(x * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x * N[(y * y), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 5.2 \cdot 10^{-66}:\\
\;\;\;\;1 + y \cdot \left(x \cdot y\right)\\
\mathbf{elif}\;y \leq 4.8 \cdot 10^{+84}:\\
\;\;\;\;1 + x \cdot \left(\left(x \cdot x\right) \cdot \left(0.16666666666666666 \cdot \left(y \cdot \left(y \cdot y\right)\right)\right)\right)\\
\mathbf{elif}\;y \leq 1.35 \cdot 10^{+154}:\\
\;\;\;\;\left(y \cdot y\right) \cdot \left(y \cdot \left(x \cdot \left(0.16666666666666666 \cdot \left(x \cdot x\right)\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(y \cdot y\right)\\
\end{array}
\end{array}
if y < 5.1999999999999998e-66Initial program 100.0%
Taylor expanded in x around 0
+-lowering-+.f64N/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6471.3%
Simplified71.3%
if 5.1999999999999998e-66 < y < 4.7999999999999999e84Initial program 100.0%
Applied egg-rr93.8%
Taylor expanded in x around 0
Simplified74.4%
Taylor expanded in y around inf
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6474.4%
Simplified74.4%
if 4.7999999999999999e84 < y < 1.35000000000000003e154Initial program 100.0%
Applied egg-rr75.8%
Taylor expanded in x around 0
Simplified45.1%
Taylor expanded in x around inf
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
unpow3N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-commutativeN/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-commutativeN/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
cube-multN/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified69.4%
if 1.35000000000000003e154 < y Initial program 100.0%
Taylor expanded in x around 0
+-lowering-+.f64N/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6434.1%
Simplified34.1%
Taylor expanded in y around inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6446.0%
Simplified46.0%
Final simplification68.5%
(FPCore (x y)
:precision binary64
(if (<= y 5.8e-66)
(+ 1.0 (* y (* x y)))
(if (<= y 3.9e+83)
(+ 1.0 (* x (* y (* y (* x 0.5)))))
(if (<= y 1.35e+154)
(* (* y y) (* y (* x (* 0.16666666666666666 (* x x)))))
(* x (* y y))))))
double code(double x, double y) {
double tmp;
if (y <= 5.8e-66) {
tmp = 1.0 + (y * (x * y));
} else if (y <= 3.9e+83) {
tmp = 1.0 + (x * (y * (y * (x * 0.5))));
} else if (y <= 1.35e+154) {
tmp = (y * y) * (y * (x * (0.16666666666666666 * (x * x))));
} else {
tmp = x * (y * y);
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 5.8d-66) then
tmp = 1.0d0 + (y * (x * y))
else if (y <= 3.9d+83) then
tmp = 1.0d0 + (x * (y * (y * (x * 0.5d0))))
else if (y <= 1.35d+154) then
tmp = (y * y) * (y * (x * (0.16666666666666666d0 * (x * x))))
else
tmp = x * (y * y)
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 5.8e-66) {
tmp = 1.0 + (y * (x * y));
} else if (y <= 3.9e+83) {
tmp = 1.0 + (x * (y * (y * (x * 0.5))));
} else if (y <= 1.35e+154) {
tmp = (y * y) * (y * (x * (0.16666666666666666 * (x * x))));
} else {
tmp = x * (y * y);
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 5.8e-66: tmp = 1.0 + (y * (x * y)) elif y <= 3.9e+83: tmp = 1.0 + (x * (y * (y * (x * 0.5)))) elif y <= 1.35e+154: tmp = (y * y) * (y * (x * (0.16666666666666666 * (x * x)))) else: tmp = x * (y * y) return tmp
function code(x, y) tmp = 0.0 if (y <= 5.8e-66) tmp = Float64(1.0 + Float64(y * Float64(x * y))); elseif (y <= 3.9e+83) tmp = Float64(1.0 + Float64(x * Float64(y * Float64(y * Float64(x * 0.5))))); elseif (y <= 1.35e+154) tmp = Float64(Float64(y * y) * Float64(y * Float64(x * Float64(0.16666666666666666 * Float64(x * x))))); else tmp = Float64(x * Float64(y * y)); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 5.8e-66) tmp = 1.0 + (y * (x * y)); elseif (y <= 3.9e+83) tmp = 1.0 + (x * (y * (y * (x * 0.5)))); elseif (y <= 1.35e+154) tmp = (y * y) * (y * (x * (0.16666666666666666 * (x * x)))); else tmp = x * (y * y); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 5.8e-66], N[(1.0 + N[(y * N[(x * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 3.9e+83], N[(1.0 + N[(x * N[(y * N[(y * N[(x * 0.5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.35e+154], N[(N[(y * y), $MachinePrecision] * N[(y * N[(x * N[(0.16666666666666666 * N[(x * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x * N[(y * y), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 5.8 \cdot 10^{-66}:\\
\;\;\;\;1 + y \cdot \left(x \cdot y\right)\\
\mathbf{elif}\;y \leq 3.9 \cdot 10^{+83}:\\
\;\;\;\;1 + x \cdot \left(y \cdot \left(y \cdot \left(x \cdot 0.5\right)\right)\right)\\
\mathbf{elif}\;y \leq 1.35 \cdot 10^{+154}:\\
\;\;\;\;\left(y \cdot y\right) \cdot \left(y \cdot \left(x \cdot \left(0.16666666666666666 \cdot \left(x \cdot x\right)\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(y \cdot y\right)\\
\end{array}
\end{array}
if y < 5.80000000000000023e-66Initial program 100.0%
Taylor expanded in x around 0
+-lowering-+.f64N/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6471.3%
Simplified71.3%
if 5.80000000000000023e-66 < y < 3.9000000000000002e83Initial program 100.0%
Applied egg-rr93.8%
Taylor expanded in x around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-*r*N/A
unpow2N/A
associate-*r*N/A
distribute-rgt1-inN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6474.4%
Simplified74.4%
Taylor expanded in x around inf
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6474.4%
Simplified74.4%
if 3.9000000000000002e83 < y < 1.35000000000000003e154Initial program 100.0%
Applied egg-rr75.8%
Taylor expanded in x around 0
Simplified45.1%
Taylor expanded in x around inf
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
unpow3N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
associate-*l*N/A
*-commutativeN/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-commutativeN/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
cube-multN/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
Simplified69.4%
if 1.35000000000000003e154 < y Initial program 100.0%
Taylor expanded in x around 0
+-lowering-+.f64N/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6434.1%
Simplified34.1%
Taylor expanded in y around inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6446.0%
Simplified46.0%
Final simplification68.5%
(FPCore (x y)
:precision binary64
(+
1.0
(*
x
(*
(* y y)
(+ 1.0 (* y (* y (* x (+ 0.5 (* y (* (* x y) 0.16666666666666666)))))))))))
double code(double x, double y) {
return 1.0 + (x * ((y * y) * (1.0 + (y * (y * (x * (0.5 + (y * ((x * y) * 0.16666666666666666)))))))));
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = 1.0d0 + (x * ((y * y) * (1.0d0 + (y * (y * (x * (0.5d0 + (y * ((x * y) * 0.16666666666666666d0)))))))))
end function
public static double code(double x, double y) {
return 1.0 + (x * ((y * y) * (1.0 + (y * (y * (x * (0.5 + (y * ((x * y) * 0.16666666666666666)))))))));
}
def code(x, y): return 1.0 + (x * ((y * y) * (1.0 + (y * (y * (x * (0.5 + (y * ((x * y) * 0.16666666666666666)))))))))
function code(x, y) return Float64(1.0 + Float64(x * Float64(Float64(y * y) * Float64(1.0 + Float64(y * Float64(y * Float64(x * Float64(0.5 + Float64(y * Float64(Float64(x * y) * 0.16666666666666666)))))))))) end
function tmp = code(x, y) tmp = 1.0 + (x * ((y * y) * (1.0 + (y * (y * (x * (0.5 + (y * ((x * y) * 0.16666666666666666))))))))); end
code[x_, y_] := N[(1.0 + N[(x * N[(N[(y * y), $MachinePrecision] * N[(1.0 + N[(y * N[(y * N[(x * N[(0.5 + N[(y * N[(N[(x * y), $MachinePrecision] * 0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
1 + x \cdot \left(\left(y \cdot y\right) \cdot \left(1 + y \cdot \left(y \cdot \left(x \cdot \left(0.5 + y \cdot \left(\left(x \cdot y\right) \cdot 0.16666666666666666\right)\right)\right)\right)\right)\right)
\end{array}
Initial program 100.0%
Taylor expanded in x around 0
Simplified70.9%
+-commutativeN/A
+-lowering-+.f64N/A
Applied egg-rr71.0%
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr71.7%
Final simplification71.7%
(FPCore (x y)
:precision binary64
(+
1.0
(*
x
(*
(* y y)
(+ 1.0 (* y (* y (* 0.16666666666666666 (* x (* x (* y y)))))))))))
double code(double x, double y) {
return 1.0 + (x * ((y * y) * (1.0 + (y * (y * (0.16666666666666666 * (x * (x * (y * y)))))))));
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = 1.0d0 + (x * ((y * y) * (1.0d0 + (y * (y * (0.16666666666666666d0 * (x * (x * (y * y)))))))))
end function
public static double code(double x, double y) {
return 1.0 + (x * ((y * y) * (1.0 + (y * (y * (0.16666666666666666 * (x * (x * (y * y)))))))));
}
def code(x, y): return 1.0 + (x * ((y * y) * (1.0 + (y * (y * (0.16666666666666666 * (x * (x * (y * y)))))))))
function code(x, y) return Float64(1.0 + Float64(x * Float64(Float64(y * y) * Float64(1.0 + Float64(y * Float64(y * Float64(0.16666666666666666 * Float64(x * Float64(x * Float64(y * y)))))))))) end
function tmp = code(x, y) tmp = 1.0 + (x * ((y * y) * (1.0 + (y * (y * (0.16666666666666666 * (x * (x * (y * y))))))))); end
code[x_, y_] := N[(1.0 + N[(x * N[(N[(y * y), $MachinePrecision] * N[(1.0 + N[(y * N[(y * N[(0.16666666666666666 * N[(x * N[(x * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
1 + x \cdot \left(\left(y \cdot y\right) \cdot \left(1 + y \cdot \left(y \cdot \left(0.16666666666666666 \cdot \left(x \cdot \left(x \cdot \left(y \cdot y\right)\right)\right)\right)\right)\right)\right)
\end{array}
Initial program 100.0%
Taylor expanded in x around 0
Simplified70.9%
+-commutativeN/A
+-lowering-+.f64N/A
Applied egg-rr71.0%
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr71.7%
Taylor expanded in y around inf
unpow3N/A
unpow2N/A
associate-*r*N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6471.7%
Simplified71.7%
Final simplification71.7%
(FPCore (x y)
:precision binary64
(if (<= y 5.5e-66)
(+ 1.0 (* y (* x y)))
(if (<= y 3.7e+133)
(+ 1.0 (* x (* y (* y (* x 0.5)))))
(* x (* 0.5 (* x (* y y)))))))
double code(double x, double y) {
double tmp;
if (y <= 5.5e-66) {
tmp = 1.0 + (y * (x * y));
} else if (y <= 3.7e+133) {
tmp = 1.0 + (x * (y * (y * (x * 0.5))));
} else {
tmp = x * (0.5 * (x * (y * y)));
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 5.5d-66) then
tmp = 1.0d0 + (y * (x * y))
else if (y <= 3.7d+133) then
tmp = 1.0d0 + (x * (y * (y * (x * 0.5d0))))
else
tmp = x * (0.5d0 * (x * (y * y)))
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 5.5e-66) {
tmp = 1.0 + (y * (x * y));
} else if (y <= 3.7e+133) {
tmp = 1.0 + (x * (y * (y * (x * 0.5))));
} else {
tmp = x * (0.5 * (x * (y * y)));
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 5.5e-66: tmp = 1.0 + (y * (x * y)) elif y <= 3.7e+133: tmp = 1.0 + (x * (y * (y * (x * 0.5)))) else: tmp = x * (0.5 * (x * (y * y))) return tmp
function code(x, y) tmp = 0.0 if (y <= 5.5e-66) tmp = Float64(1.0 + Float64(y * Float64(x * y))); elseif (y <= 3.7e+133) tmp = Float64(1.0 + Float64(x * Float64(y * Float64(y * Float64(x * 0.5))))); else tmp = Float64(x * Float64(0.5 * Float64(x * Float64(y * y)))); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 5.5e-66) tmp = 1.0 + (y * (x * y)); elseif (y <= 3.7e+133) tmp = 1.0 + (x * (y * (y * (x * 0.5)))); else tmp = x * (0.5 * (x * (y * y))); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 5.5e-66], N[(1.0 + N[(y * N[(x * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 3.7e+133], N[(1.0 + N[(x * N[(y * N[(y * N[(x * 0.5), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x * N[(0.5 * N[(x * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 5.5 \cdot 10^{-66}:\\
\;\;\;\;1 + y \cdot \left(x \cdot y\right)\\
\mathbf{elif}\;y \leq 3.7 \cdot 10^{+133}:\\
\;\;\;\;1 + x \cdot \left(y \cdot \left(y \cdot \left(x \cdot 0.5\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(0.5 \cdot \left(x \cdot \left(y \cdot y\right)\right)\right)\\
\end{array}
\end{array}
if y < 5.50000000000000053e-66Initial program 100.0%
Taylor expanded in x around 0
+-lowering-+.f64N/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6471.3%
Simplified71.3%
if 5.50000000000000053e-66 < y < 3.70000000000000023e133Initial program 100.0%
Applied egg-rr88.6%
Taylor expanded in x around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-*r*N/A
unpow2N/A
associate-*r*N/A
distribute-rgt1-inN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6461.1%
Simplified61.1%
Taylor expanded in x around inf
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6461.1%
Simplified61.1%
if 3.70000000000000023e133 < y Initial program 100.0%
Applied egg-rr91.7%
Taylor expanded in x around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-*r*N/A
unpow2N/A
associate-*r*N/A
distribute-rgt1-inN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6435.8%
Simplified35.8%
Taylor expanded in x around inf
*-commutativeN/A
unpow2N/A
associate-*l*N/A
associate-*r*N/A
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6446.8%
Simplified46.8%
Final simplification66.3%
(FPCore (x y) :precision binary64 (+ 1.0 (* y (* y (* x (+ 1.0 (* 0.5 (* y (* x y)))))))))
double code(double x, double y) {
return 1.0 + (y * (y * (x * (1.0 + (0.5 * (y * (x * y)))))));
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = 1.0d0 + (y * (y * (x * (1.0d0 + (0.5d0 * (y * (x * y)))))))
end function
public static double code(double x, double y) {
return 1.0 + (y * (y * (x * (1.0 + (0.5 * (y * (x * y)))))));
}
def code(x, y): return 1.0 + (y * (y * (x * (1.0 + (0.5 * (y * (x * y)))))))
function code(x, y) return Float64(1.0 + Float64(y * Float64(y * Float64(x * Float64(1.0 + Float64(0.5 * Float64(y * Float64(x * y)))))))) end
function tmp = code(x, y) tmp = 1.0 + (y * (y * (x * (1.0 + (0.5 * (y * (x * y))))))); end
code[x_, y_] := N[(1.0 + N[(y * N[(y * N[(x * N[(1.0 + N[(0.5 * N[(y * N[(x * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
1 + y \cdot \left(y \cdot \left(x \cdot \left(1 + 0.5 \cdot \left(y \cdot \left(x \cdot y\right)\right)\right)\right)\right)
\end{array}
Initial program 100.0%
Taylor expanded in x around 0
+-commutativeN/A
distribute-lft-inN/A
associate-+l+N/A
*-commutativeN/A
associate-*r*N/A
+-commutativeN/A
fma-defineN/A
associate-*r*N/A
unpow2N/A
metadata-evalN/A
pow-sqrN/A
associate-*l*N/A
*-commutativeN/A
fma-defineN/A
associate-*r*N/A
*-commutativeN/A
+-commutativeN/A
Simplified69.1%
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6469.9%
Applied egg-rr69.9%
Final simplification69.9%
(FPCore (x y) :precision binary64 (let* ((t_0 (* y (* x y)))) (+ 1.0 (* t_0 (+ 1.0 (* 0.5 t_0))))))
double code(double x, double y) {
double t_0 = y * (x * y);
return 1.0 + (t_0 * (1.0 + (0.5 * t_0)));
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: t_0
t_0 = y * (x * y)
code = 1.0d0 + (t_0 * (1.0d0 + (0.5d0 * t_0)))
end function
public static double code(double x, double y) {
double t_0 = y * (x * y);
return 1.0 + (t_0 * (1.0 + (0.5 * t_0)));
}
def code(x, y): t_0 = y * (x * y) return 1.0 + (t_0 * (1.0 + (0.5 * t_0)))
function code(x, y) t_0 = Float64(y * Float64(x * y)) return Float64(1.0 + Float64(t_0 * Float64(1.0 + Float64(0.5 * t_0)))) end
function tmp = code(x, y) t_0 = y * (x * y); tmp = 1.0 + (t_0 * (1.0 + (0.5 * t_0))); end
code[x_, y_] := Block[{t$95$0 = N[(y * N[(x * y), $MachinePrecision]), $MachinePrecision]}, N[(1.0 + N[(t$95$0 * N[(1.0 + N[(0.5 * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := y \cdot \left(x \cdot y\right)\\
1 + t\_0 \cdot \left(1 + 0.5 \cdot t\_0\right)
\end{array}
\end{array}
Initial program 100.0%
Taylor expanded in x around 0
+-commutativeN/A
distribute-lft-inN/A
associate-+l+N/A
*-commutativeN/A
associate-*r*N/A
+-commutativeN/A
fma-defineN/A
associate-*r*N/A
unpow2N/A
metadata-evalN/A
pow-sqrN/A
associate-*l*N/A
*-commutativeN/A
fma-defineN/A
associate-*r*N/A
*-commutativeN/A
+-commutativeN/A
Simplified69.1%
Final simplification69.1%
(FPCore (x y) :precision binary64 (if (<= y 1.05e+134) (+ 1.0 (* y (* x y))) (* x (* 0.5 (* x (* y y))))))
double code(double x, double y) {
double tmp;
if (y <= 1.05e+134) {
tmp = 1.0 + (y * (x * y));
} else {
tmp = x * (0.5 * (x * (y * y)));
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 1.05d+134) then
tmp = 1.0d0 + (y * (x * y))
else
tmp = x * (0.5d0 * (x * (y * y)))
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 1.05e+134) {
tmp = 1.0 + (y * (x * y));
} else {
tmp = x * (0.5 * (x * (y * y)));
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 1.05e+134: tmp = 1.0 + (y * (x * y)) else: tmp = x * (0.5 * (x * (y * y))) return tmp
function code(x, y) tmp = 0.0 if (y <= 1.05e+134) tmp = Float64(1.0 + Float64(y * Float64(x * y))); else tmp = Float64(x * Float64(0.5 * Float64(x * Float64(y * y)))); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 1.05e+134) tmp = 1.0 + (y * (x * y)); else tmp = x * (0.5 * (x * (y * y))); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 1.05e+134], N[(1.0 + N[(y * N[(x * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x * N[(0.5 * N[(x * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 1.05 \cdot 10^{+134}:\\
\;\;\;\;1 + y \cdot \left(x \cdot y\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(0.5 \cdot \left(x \cdot \left(y \cdot y\right)\right)\right)\\
\end{array}
\end{array}
if y < 1.05e134Initial program 100.0%
Taylor expanded in x around 0
+-lowering-+.f64N/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6467.2%
Simplified67.2%
if 1.05e134 < y Initial program 100.0%
Applied egg-rr91.7%
Taylor expanded in x around 0
+-lowering-+.f64N/A
*-lowering-*.f64N/A
associate-*r*N/A
unpow2N/A
associate-*r*N/A
distribute-rgt1-inN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6435.8%
Simplified35.8%
Taylor expanded in x around inf
*-commutativeN/A
unpow2N/A
associate-*l*N/A
associate-*r*N/A
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6446.8%
Simplified46.8%
Final simplification64.4%
(FPCore (x y) :precision binary64 (if (<= y 6.8e+161) (+ 1.0 (* y (* x y))) (* x (* y y))))
double code(double x, double y) {
double tmp;
if (y <= 6.8e+161) {
tmp = 1.0 + (y * (x * y));
} else {
tmp = x * (y * y);
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 6.8d+161) then
tmp = 1.0d0 + (y * (x * y))
else
tmp = x * (y * y)
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 6.8e+161) {
tmp = 1.0 + (y * (x * y));
} else {
tmp = x * (y * y);
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 6.8e+161: tmp = 1.0 + (y * (x * y)) else: tmp = x * (y * y) return tmp
function code(x, y) tmp = 0.0 if (y <= 6.8e+161) tmp = Float64(1.0 + Float64(y * Float64(x * y))); else tmp = Float64(x * Float64(y * y)); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 6.8e+161) tmp = 1.0 + (y * (x * y)); else tmp = x * (y * y); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 6.8e+161], N[(1.0 + N[(y * N[(x * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x * N[(y * y), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 6.8 \cdot 10^{+161}:\\
\;\;\;\;1 + y \cdot \left(x \cdot y\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(y \cdot y\right)\\
\end{array}
\end{array}
if y < 6.79999999999999986e161Initial program 100.0%
Taylor expanded in x around 0
+-lowering-+.f64N/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6466.1%
Simplified66.1%
if 6.79999999999999986e161 < y Initial program 100.0%
Taylor expanded in x around 0
+-lowering-+.f64N/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6437.6%
Simplified37.6%
Taylor expanded in y around inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6450.8%
Simplified50.8%
(FPCore (x y) :precision binary64 (if (<= y 3.2e+76) 1.0 (* x (* y y))))
double code(double x, double y) {
double tmp;
if (y <= 3.2e+76) {
tmp = 1.0;
} else {
tmp = x * (y * y);
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 3.2d+76) then
tmp = 1.0d0
else
tmp = x * (y * y)
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 3.2e+76) {
tmp = 1.0;
} else {
tmp = x * (y * y);
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 3.2e+76: tmp = 1.0 else: tmp = x * (y * y) return tmp
function code(x, y) tmp = 0.0 if (y <= 3.2e+76) tmp = 1.0; else tmp = Float64(x * Float64(y * y)); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 3.2e+76) tmp = 1.0; else tmp = x * (y * y); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 3.2e+76], 1.0, N[(x * N[(y * y), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 3.2 \cdot 10^{+76}:\\
\;\;\;\;1\\
\mathbf{else}:\\
\;\;\;\;x \cdot \left(y \cdot y\right)\\
\end{array}
\end{array}
if y < 3.19999999999999976e76Initial program 100.0%
Applied egg-rr60.9%
if 3.19999999999999976e76 < y Initial program 100.0%
Taylor expanded in x around 0
+-lowering-+.f64N/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6434.7%
Simplified34.7%
Taylor expanded in y around inf
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6438.4%
Simplified38.4%
(FPCore (x y) :precision binary64 1.0)
double code(double x, double y) {
return 1.0;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = 1.0d0
end function
public static double code(double x, double y) {
return 1.0;
}
def code(x, y): return 1.0
function code(x, y) return 1.0 end
function tmp = code(x, y) tmp = 1.0; end
code[x_, y_] := 1.0
\begin{array}{l}
\\
1
\end{array}
Initial program 100.0%
Applied egg-rr50.6%
herbie shell --seed 2024158
(FPCore (x y)
:name "Data.Random.Distribution.Normal:normalF from random-fu-0.2.6.2"
:precision binary64
(exp (* (* x y) y)))