
(FPCore (x y) :precision binary64 (/ (* (sin x) (sinh y)) x))
double code(double x, double y) {
return (sin(x) * sinh(y)) / x;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = (sin(x) * sinh(y)) / x
end function
public static double code(double x, double y) {
return (Math.sin(x) * Math.sinh(y)) / x;
}
def code(x, y): return (math.sin(x) * math.sinh(y)) / x
function code(x, y) return Float64(Float64(sin(x) * sinh(y)) / x) end
function tmp = code(x, y) tmp = (sin(x) * sinh(y)) / x; end
code[x_, y_] := N[(N[(N[Sin[x], $MachinePrecision] * N[Sinh[y], $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]
\begin{array}{l}
\\
\frac{\sin x \cdot \sinh y}{x}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 21 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (x y) :precision binary64 (/ (* (sin x) (sinh y)) x))
double code(double x, double y) {
return (sin(x) * sinh(y)) / x;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = (sin(x) * sinh(y)) / x
end function
public static double code(double x, double y) {
return (Math.sin(x) * Math.sinh(y)) / x;
}
def code(x, y): return (math.sin(x) * math.sinh(y)) / x
function code(x, y) return Float64(Float64(sin(x) * sinh(y)) / x) end
function tmp = code(x, y) tmp = (sin(x) * sinh(y)) / x; end
code[x_, y_] := N[(N[(N[Sin[x], $MachinePrecision] * N[Sinh[y], $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]
\begin{array}{l}
\\
\frac{\sin x \cdot \sinh y}{x}
\end{array}
(FPCore (x y) :precision binary64 (* (sin x) (/ (sinh y) x)))
double code(double x, double y) {
return sin(x) * (sinh(y) / x);
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = sin(x) * (sinh(y) / x)
end function
public static double code(double x, double y) {
return Math.sin(x) * (Math.sinh(y) / x);
}
def code(x, y): return math.sin(x) * (math.sinh(y) / x)
function code(x, y) return Float64(sin(x) * Float64(sinh(y) / x)) end
function tmp = code(x, y) tmp = sin(x) * (sinh(y) / x); end
code[x_, y_] := N[(N[Sin[x], $MachinePrecision] * N[(N[Sinh[y], $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\sin x \cdot \frac{\sinh y}{x}
\end{array}
Initial program 87.9%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
(FPCore (x y)
:precision binary64
(if (<= x 7e-26)
(sinh y)
(/
(*
(sin x)
(*
y
(+
1.0
(*
(* y y)
(+
0.16666666666666666
(*
y
(*
y
(+ 0.008333333333333333 (* (* y y) 0.0001984126984126984)))))))))
x)))
double code(double x, double y) {
double tmp;
if (x <= 7e-26) {
tmp = sinh(y);
} else {
tmp = (sin(x) * (y * (1.0 + ((y * y) * (0.16666666666666666 + (y * (y * (0.008333333333333333 + ((y * y) * 0.0001984126984126984))))))))) / x;
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (x <= 7d-26) then
tmp = sinh(y)
else
tmp = (sin(x) * (y * (1.0d0 + ((y * y) * (0.16666666666666666d0 + (y * (y * (0.008333333333333333d0 + ((y * y) * 0.0001984126984126984d0))))))))) / x
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (x <= 7e-26) {
tmp = Math.sinh(y);
} else {
tmp = (Math.sin(x) * (y * (1.0 + ((y * y) * (0.16666666666666666 + (y * (y * (0.008333333333333333 + ((y * y) * 0.0001984126984126984))))))))) / x;
}
return tmp;
}
def code(x, y): tmp = 0 if x <= 7e-26: tmp = math.sinh(y) else: tmp = (math.sin(x) * (y * (1.0 + ((y * y) * (0.16666666666666666 + (y * (y * (0.008333333333333333 + ((y * y) * 0.0001984126984126984))))))))) / x return tmp
function code(x, y) tmp = 0.0 if (x <= 7e-26) tmp = sinh(y); else tmp = Float64(Float64(sin(x) * Float64(y * Float64(1.0 + Float64(Float64(y * y) * Float64(0.16666666666666666 + Float64(y * Float64(y * Float64(0.008333333333333333 + Float64(Float64(y * y) * 0.0001984126984126984))))))))) / x); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (x <= 7e-26) tmp = sinh(y); else tmp = (sin(x) * (y * (1.0 + ((y * y) * (0.16666666666666666 + (y * (y * (0.008333333333333333 + ((y * y) * 0.0001984126984126984))))))))) / x; end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[x, 7e-26], N[Sinh[y], $MachinePrecision], N[(N[(N[Sin[x], $MachinePrecision] * N[(y * N[(1.0 + N[(N[(y * y), $MachinePrecision] * N[(0.16666666666666666 + N[(y * N[(y * N[(0.008333333333333333 + N[(N[(y * y), $MachinePrecision] * 0.0001984126984126984), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq 7 \cdot 10^{-26}:\\
\;\;\;\;\sinh y\\
\mathbf{else}:\\
\;\;\;\;\frac{\sin x \cdot \left(y \cdot \left(1 + \left(y \cdot y\right) \cdot \left(0.16666666666666666 + y \cdot \left(y \cdot \left(0.008333333333333333 + \left(y \cdot y\right) \cdot 0.0001984126984126984\right)\right)\right)\right)\right)}{x}\\
\end{array}
\end{array}
if x < 6.9999999999999997e-26Initial program 83.6%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in x around 0
Simplified85.5%
*-commutativeN/A
div-invN/A
associate-*l*N/A
inv-powN/A
pow-plusN/A
metadata-evalN/A
metadata-evalN/A
*-lowering-*.f64N/A
sinh-lowering-sinh.f6480.0%
Applied egg-rr80.0%
if 6.9999999999999997e-26 < x Initial program 99.9%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6495.6%
Simplified95.6%
Final simplification84.1%
(FPCore (x y)
:precision binary64
(if (<= x 2e-58)
(sinh y)
(*
(*
y
(+
1.0
(*
(* y y)
(+
0.16666666666666666
(*
(* y y)
(+ 0.008333333333333333 (* (* y y) 0.0001984126984126984)))))))
(/ (sin x) x))))
double code(double x, double y) {
double tmp;
if (x <= 2e-58) {
tmp = sinh(y);
} else {
tmp = (y * (1.0 + ((y * y) * (0.16666666666666666 + ((y * y) * (0.008333333333333333 + ((y * y) * 0.0001984126984126984))))))) * (sin(x) / x);
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (x <= 2d-58) then
tmp = sinh(y)
else
tmp = (y * (1.0d0 + ((y * y) * (0.16666666666666666d0 + ((y * y) * (0.008333333333333333d0 + ((y * y) * 0.0001984126984126984d0))))))) * (sin(x) / x)
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (x <= 2e-58) {
tmp = Math.sinh(y);
} else {
tmp = (y * (1.0 + ((y * y) * (0.16666666666666666 + ((y * y) * (0.008333333333333333 + ((y * y) * 0.0001984126984126984))))))) * (Math.sin(x) / x);
}
return tmp;
}
def code(x, y): tmp = 0 if x <= 2e-58: tmp = math.sinh(y) else: tmp = (y * (1.0 + ((y * y) * (0.16666666666666666 + ((y * y) * (0.008333333333333333 + ((y * y) * 0.0001984126984126984))))))) * (math.sin(x) / x) return tmp
function code(x, y) tmp = 0.0 if (x <= 2e-58) tmp = sinh(y); else tmp = Float64(Float64(y * Float64(1.0 + Float64(Float64(y * y) * Float64(0.16666666666666666 + Float64(Float64(y * y) * Float64(0.008333333333333333 + Float64(Float64(y * y) * 0.0001984126984126984))))))) * Float64(sin(x) / x)); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (x <= 2e-58) tmp = sinh(y); else tmp = (y * (1.0 + ((y * y) * (0.16666666666666666 + ((y * y) * (0.008333333333333333 + ((y * y) * 0.0001984126984126984))))))) * (sin(x) / x); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[x, 2e-58], N[Sinh[y], $MachinePrecision], N[(N[(y * N[(1.0 + N[(N[(y * y), $MachinePrecision] * N[(0.16666666666666666 + N[(N[(y * y), $MachinePrecision] * N[(0.008333333333333333 + N[(N[(y * y), $MachinePrecision] * 0.0001984126984126984), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Sin[x], $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;x \leq 2 \cdot 10^{-58}:\\
\;\;\;\;\sinh y\\
\mathbf{else}:\\
\;\;\;\;\left(y \cdot \left(1 + \left(y \cdot y\right) \cdot \left(0.16666666666666666 + \left(y \cdot y\right) \cdot \left(0.008333333333333333 + \left(y \cdot y\right) \cdot 0.0001984126984126984\right)\right)\right)\right) \cdot \frac{\sin x}{x}\\
\end{array}
\end{array}
if x < 2.0000000000000001e-58Initial program 83.5%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in x around 0
Simplified85.0%
*-commutativeN/A
div-invN/A
associate-*l*N/A
inv-powN/A
pow-plusN/A
metadata-evalN/A
metadata-evalN/A
*-lowering-*.f64N/A
sinh-lowering-sinh.f6479.3%
Applied egg-rr79.3%
if 2.0000000000000001e-58 < x Initial program 98.7%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f64100.0%
Simplified100.0%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
distribute-lft-inN/A
Simplified94.7%
Taylor expanded in x around 0
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6494.7%
Simplified94.7%
Taylor expanded in x around inf
/-lowering-/.f64N/A
Simplified94.7%
associate-*r*N/A
associate-/l*N/A
*-lowering-*.f64N/A
Applied egg-rr95.9%
Final simplification84.1%
(FPCore (x y)
:precision binary64
(let* ((t_0
(*
(sin x)
(/
(*
y
(+
1.0
(*
y
(* y (+ 0.16666666666666666 (* (* y y) 0.008333333333333333))))))
x))))
(if (<= y 1500000.0) t_0 (if (<= y 1.2e+62) (sinh y) t_0))))
double code(double x, double y) {
double t_0 = sin(x) * ((y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333)))))) / x);
double tmp;
if (y <= 1500000.0) {
tmp = t_0;
} else if (y <= 1.2e+62) {
tmp = sinh(y);
} else {
tmp = t_0;
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: t_0
real(8) :: tmp
t_0 = sin(x) * ((y * (1.0d0 + (y * (y * (0.16666666666666666d0 + ((y * y) * 0.008333333333333333d0)))))) / x)
if (y <= 1500000.0d0) then
tmp = t_0
else if (y <= 1.2d+62) then
tmp = sinh(y)
else
tmp = t_0
end if
code = tmp
end function
public static double code(double x, double y) {
double t_0 = Math.sin(x) * ((y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333)))))) / x);
double tmp;
if (y <= 1500000.0) {
tmp = t_0;
} else if (y <= 1.2e+62) {
tmp = Math.sinh(y);
} else {
tmp = t_0;
}
return tmp;
}
def code(x, y): t_0 = math.sin(x) * ((y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333)))))) / x) tmp = 0 if y <= 1500000.0: tmp = t_0 elif y <= 1.2e+62: tmp = math.sinh(y) else: tmp = t_0 return tmp
function code(x, y) t_0 = Float64(sin(x) * Float64(Float64(y * Float64(1.0 + Float64(y * Float64(y * Float64(0.16666666666666666 + Float64(Float64(y * y) * 0.008333333333333333)))))) / x)) tmp = 0.0 if (y <= 1500000.0) tmp = t_0; elseif (y <= 1.2e+62) tmp = sinh(y); else tmp = t_0; end return tmp end
function tmp_2 = code(x, y) t_0 = sin(x) * ((y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333)))))) / x); tmp = 0.0; if (y <= 1500000.0) tmp = t_0; elseif (y <= 1.2e+62) tmp = sinh(y); else tmp = t_0; end tmp_2 = tmp; end
code[x_, y_] := Block[{t$95$0 = N[(N[Sin[x], $MachinePrecision] * N[(N[(y * N[(1.0 + N[(y * N[(y * N[(0.16666666666666666 + N[(N[(y * y), $MachinePrecision] * 0.008333333333333333), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, 1500000.0], t$95$0, If[LessEqual[y, 1.2e+62], N[Sinh[y], $MachinePrecision], t$95$0]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \sin x \cdot \frac{y \cdot \left(1 + y \cdot \left(y \cdot \left(0.16666666666666666 + \left(y \cdot y\right) \cdot 0.008333333333333333\right)\right)\right)}{x}\\
\mathbf{if}\;y \leq 1500000:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 1.2 \cdot 10^{+62}:\\
\;\;\;\;\sinh y\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if y < 1.5e6 or 1.2e62 < y Initial program 87.3%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6496.7%
Simplified96.7%
if 1.5e6 < y < 1.2e62Initial program 100.0%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f64100.0%
Simplified100.0%
Taylor expanded in x around 0
Simplified83.3%
*-commutativeN/A
div-invN/A
associate-*l*N/A
inv-powN/A
pow-plusN/A
metadata-evalN/A
metadata-evalN/A
*-lowering-*.f64N/A
sinh-lowering-sinh.f6483.3%
Applied egg-rr83.3%
Final simplification96.0%
(FPCore (x y)
:precision binary64
(let* ((t_0 (+ 1.0 (* (* y y) 0.16666666666666666))))
(if (<= y 1500000.0)
(* y (* (/ (sin x) x) t_0))
(if (<= y 1.35e+103) (sinh y) (/ (* y (* (sin x) t_0)) x)))))
double code(double x, double y) {
double t_0 = 1.0 + ((y * y) * 0.16666666666666666);
double tmp;
if (y <= 1500000.0) {
tmp = y * ((sin(x) / x) * t_0);
} else if (y <= 1.35e+103) {
tmp = sinh(y);
} else {
tmp = (y * (sin(x) * t_0)) / x;
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: t_0
real(8) :: tmp
t_0 = 1.0d0 + ((y * y) * 0.16666666666666666d0)
if (y <= 1500000.0d0) then
tmp = y * ((sin(x) / x) * t_0)
else if (y <= 1.35d+103) then
tmp = sinh(y)
else
tmp = (y * (sin(x) * t_0)) / x
end if
code = tmp
end function
public static double code(double x, double y) {
double t_0 = 1.0 + ((y * y) * 0.16666666666666666);
double tmp;
if (y <= 1500000.0) {
tmp = y * ((Math.sin(x) / x) * t_0);
} else if (y <= 1.35e+103) {
tmp = Math.sinh(y);
} else {
tmp = (y * (Math.sin(x) * t_0)) / x;
}
return tmp;
}
def code(x, y): t_0 = 1.0 + ((y * y) * 0.16666666666666666) tmp = 0 if y <= 1500000.0: tmp = y * ((math.sin(x) / x) * t_0) elif y <= 1.35e+103: tmp = math.sinh(y) else: tmp = (y * (math.sin(x) * t_0)) / x return tmp
function code(x, y) t_0 = Float64(1.0 + Float64(Float64(y * y) * 0.16666666666666666)) tmp = 0.0 if (y <= 1500000.0) tmp = Float64(y * Float64(Float64(sin(x) / x) * t_0)); elseif (y <= 1.35e+103) tmp = sinh(y); else tmp = Float64(Float64(y * Float64(sin(x) * t_0)) / x); end return tmp end
function tmp_2 = code(x, y) t_0 = 1.0 + ((y * y) * 0.16666666666666666); tmp = 0.0; if (y <= 1500000.0) tmp = y * ((sin(x) / x) * t_0); elseif (y <= 1.35e+103) tmp = sinh(y); else tmp = (y * (sin(x) * t_0)) / x; end tmp_2 = tmp; end
code[x_, y_] := Block[{t$95$0 = N[(1.0 + N[(N[(y * y), $MachinePrecision] * 0.16666666666666666), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, 1500000.0], N[(y * N[(N[(N[Sin[x], $MachinePrecision] / x), $MachinePrecision] * t$95$0), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.35e+103], N[Sinh[y], $MachinePrecision], N[(N[(y * N[(N[Sin[x], $MachinePrecision] * t$95$0), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := 1 + \left(y \cdot y\right) \cdot 0.16666666666666666\\
\mathbf{if}\;y \leq 1500000:\\
\;\;\;\;y \cdot \left(\frac{\sin x}{x} \cdot t\_0\right)\\
\mathbf{elif}\;y \leq 1.35 \cdot 10^{+103}:\\
\;\;\;\;\sinh y\\
\mathbf{else}:\\
\;\;\;\;\frac{y \cdot \left(\sin x \cdot t\_0\right)}{x}\\
\end{array}
\end{array}
if y < 1.5e6Initial program 84.0%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in y around 0
distribute-lft-inN/A
fma-defineN/A
associate-/l*N/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
fma-defineN/A
distribute-lft-inN/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
distribute-lft1-inN/A
+-commutativeN/A
*-lowering-*.f64N/A
Simplified88.3%
if 1.5e6 < y < 1.34999999999999996e103Initial program 100.0%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f64100.0%
Simplified100.0%
Taylor expanded in x around 0
Simplified85.7%
*-commutativeN/A
div-invN/A
associate-*l*N/A
inv-powN/A
pow-plusN/A
metadata-evalN/A
metadata-evalN/A
*-lowering-*.f64N/A
sinh-lowering-sinh.f6485.7%
Applied egg-rr85.7%
if 1.34999999999999996e103 < y Initial program 100.0%
Taylor expanded in y around 0
*-lowering-*.f64N/A
*-rgt-identityN/A
+-commutativeN/A
distribute-lft-inN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
distribute-rgt-outN/A
*-commutativeN/A
distribute-lft-inN/A
Simplified100.0%
Taylor expanded in y around 0
*-lowering-*.f64N/A
associate-*r*N/A
distribute-rgt1-inN/A
+-commutativeN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64100.0%
Simplified100.0%
Final simplification90.0%
(FPCore (x y) :precision binary64 (let* ((t_0 (* y (* (/ (sin x) x) (+ 1.0 (* (* y y) 0.16666666666666666)))))) (if (<= y 1500000.0) t_0 (if (<= y 2.5e+114) (sinh y) t_0))))
double code(double x, double y) {
double t_0 = y * ((sin(x) / x) * (1.0 + ((y * y) * 0.16666666666666666)));
double tmp;
if (y <= 1500000.0) {
tmp = t_0;
} else if (y <= 2.5e+114) {
tmp = sinh(y);
} else {
tmp = t_0;
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: t_0
real(8) :: tmp
t_0 = y * ((sin(x) / x) * (1.0d0 + ((y * y) * 0.16666666666666666d0)))
if (y <= 1500000.0d0) then
tmp = t_0
else if (y <= 2.5d+114) then
tmp = sinh(y)
else
tmp = t_0
end if
code = tmp
end function
public static double code(double x, double y) {
double t_0 = y * ((Math.sin(x) / x) * (1.0 + ((y * y) * 0.16666666666666666)));
double tmp;
if (y <= 1500000.0) {
tmp = t_0;
} else if (y <= 2.5e+114) {
tmp = Math.sinh(y);
} else {
tmp = t_0;
}
return tmp;
}
def code(x, y): t_0 = y * ((math.sin(x) / x) * (1.0 + ((y * y) * 0.16666666666666666))) tmp = 0 if y <= 1500000.0: tmp = t_0 elif y <= 2.5e+114: tmp = math.sinh(y) else: tmp = t_0 return tmp
function code(x, y) t_0 = Float64(y * Float64(Float64(sin(x) / x) * Float64(1.0 + Float64(Float64(y * y) * 0.16666666666666666)))) tmp = 0.0 if (y <= 1500000.0) tmp = t_0; elseif (y <= 2.5e+114) tmp = sinh(y); else tmp = t_0; end return tmp end
function tmp_2 = code(x, y) t_0 = y * ((sin(x) / x) * (1.0 + ((y * y) * 0.16666666666666666))); tmp = 0.0; if (y <= 1500000.0) tmp = t_0; elseif (y <= 2.5e+114) tmp = sinh(y); else tmp = t_0; end tmp_2 = tmp; end
code[x_, y_] := Block[{t$95$0 = N[(y * N[(N[(N[Sin[x], $MachinePrecision] / x), $MachinePrecision] * N[(1.0 + N[(N[(y * y), $MachinePrecision] * 0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, 1500000.0], t$95$0, If[LessEqual[y, 2.5e+114], N[Sinh[y], $MachinePrecision], t$95$0]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := y \cdot \left(\frac{\sin x}{x} \cdot \left(1 + \left(y \cdot y\right) \cdot 0.16666666666666666\right)\right)\\
\mathbf{if}\;y \leq 1500000:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 2.5 \cdot 10^{+114}:\\
\;\;\;\;\sinh y\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if y < 1.5e6 or 2.5e114 < y Initial program 86.7%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in y around 0
distribute-lft-inN/A
fma-defineN/A
associate-/l*N/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
fma-defineN/A
distribute-lft-inN/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
distribute-lft1-inN/A
+-commutativeN/A
*-lowering-*.f64N/A
Simplified89.0%
if 1.5e6 < y < 2.5e114Initial program 100.0%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f64100.0%
Simplified100.0%
Taylor expanded in x around 0
Simplified87.5%
*-commutativeN/A
div-invN/A
associate-*l*N/A
inv-powN/A
pow-plusN/A
metadata-evalN/A
metadata-evalN/A
*-lowering-*.f64N/A
sinh-lowering-sinh.f6487.5%
Applied egg-rr87.5%
Final simplification88.9%
(FPCore (x y)
:precision binary64
(if (<= y 1500000.0)
(* y (/ (sin x) x))
(if (<= y 2e+114)
(sinh y)
(*
(* y (* y y))
(+ 0.16666666666666666 (* (* x x) -0.027777777777777776))))))
double code(double x, double y) {
double tmp;
if (y <= 1500000.0) {
tmp = y * (sin(x) / x);
} else if (y <= 2e+114) {
tmp = sinh(y);
} else {
tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776));
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 1500000.0d0) then
tmp = y * (sin(x) / x)
else if (y <= 2d+114) then
tmp = sinh(y)
else
tmp = (y * (y * y)) * (0.16666666666666666d0 + ((x * x) * (-0.027777777777777776d0)))
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 1500000.0) {
tmp = y * (Math.sin(x) / x);
} else if (y <= 2e+114) {
tmp = Math.sinh(y);
} else {
tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776));
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 1500000.0: tmp = y * (math.sin(x) / x) elif y <= 2e+114: tmp = math.sinh(y) else: tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)) return tmp
function code(x, y) tmp = 0.0 if (y <= 1500000.0) tmp = Float64(y * Float64(sin(x) / x)); elseif (y <= 2e+114) tmp = sinh(y); else tmp = Float64(Float64(y * Float64(y * y)) * Float64(0.16666666666666666 + Float64(Float64(x * x) * -0.027777777777777776))); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 1500000.0) tmp = y * (sin(x) / x); elseif (y <= 2e+114) tmp = sinh(y); else tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 1500000.0], N[(y * N[(N[Sin[x], $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2e+114], N[Sinh[y], $MachinePrecision], N[(N[(y * N[(y * y), $MachinePrecision]), $MachinePrecision] * N[(0.16666666666666666 + N[(N[(x * x), $MachinePrecision] * -0.027777777777777776), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 1500000:\\
\;\;\;\;y \cdot \frac{\sin x}{x}\\
\mathbf{elif}\;y \leq 2 \cdot 10^{+114}:\\
\;\;\;\;\sinh y\\
\mathbf{else}:\\
\;\;\;\;\left(y \cdot \left(y \cdot y\right)\right) \cdot \left(0.16666666666666666 + \left(x \cdot x\right) \cdot -0.027777777777777776\right)\\
\end{array}
\end{array}
if y < 1.5e6Initial program 84.0%
Taylor expanded in y around 0
Simplified51.1%
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f6467.1%
Applied egg-rr67.1%
if 1.5e6 < y < 2e114Initial program 100.0%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f64100.0%
Simplified100.0%
Taylor expanded in x around 0
Simplified87.5%
*-commutativeN/A
div-invN/A
associate-*l*N/A
inv-powN/A
pow-plusN/A
metadata-evalN/A
metadata-evalN/A
*-lowering-*.f64N/A
sinh-lowering-sinh.f6487.5%
Applied egg-rr87.5%
if 2e114 < y Initial program 100.0%
Taylor expanded in y around 0
*-lowering-*.f64N/A
*-rgt-identityN/A
+-commutativeN/A
distribute-lft-inN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
distribute-rgt-outN/A
*-commutativeN/A
distribute-lft-inN/A
Simplified100.0%
Taylor expanded in x around 0
associate-*r*N/A
distribute-lft1-inN/A
+-commutativeN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
Simplified84.6%
Taylor expanded in y around inf
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6484.6%
Simplified84.6%
Taylor expanded in y around 0
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
distribute-rgt-inN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6484.6%
Simplified84.6%
Final simplification71.7%
(FPCore (x y)
:precision binary64
(if (<= y 3.4e-51)
(/ x (/ x y))
(if (<= y 2e+114)
(sinh y)
(*
(* y (* y y))
(+ 0.16666666666666666 (* (* x x) -0.027777777777777776))))))
double code(double x, double y) {
double tmp;
if (y <= 3.4e-51) {
tmp = x / (x / y);
} else if (y <= 2e+114) {
tmp = sinh(y);
} else {
tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776));
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 3.4d-51) then
tmp = x / (x / y)
else if (y <= 2d+114) then
tmp = sinh(y)
else
tmp = (y * (y * y)) * (0.16666666666666666d0 + ((x * x) * (-0.027777777777777776d0)))
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 3.4e-51) {
tmp = x / (x / y);
} else if (y <= 2e+114) {
tmp = Math.sinh(y);
} else {
tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776));
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 3.4e-51: tmp = x / (x / y) elif y <= 2e+114: tmp = math.sinh(y) else: tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)) return tmp
function code(x, y) tmp = 0.0 if (y <= 3.4e-51) tmp = Float64(x / Float64(x / y)); elseif (y <= 2e+114) tmp = sinh(y); else tmp = Float64(Float64(y * Float64(y * y)) * Float64(0.16666666666666666 + Float64(Float64(x * x) * -0.027777777777777776))); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 3.4e-51) tmp = x / (x / y); elseif (y <= 2e+114) tmp = sinh(y); else tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 3.4e-51], N[(x / N[(x / y), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2e+114], N[Sinh[y], $MachinePrecision], N[(N[(y * N[(y * y), $MachinePrecision]), $MachinePrecision] * N[(0.16666666666666666 + N[(N[(x * x), $MachinePrecision] * -0.027777777777777776), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 3.4 \cdot 10^{-51}:\\
\;\;\;\;\frac{x}{\frac{x}{y}}\\
\mathbf{elif}\;y \leq 2 \cdot 10^{+114}:\\
\;\;\;\;\sinh y\\
\mathbf{else}:\\
\;\;\;\;\left(y \cdot \left(y \cdot y\right)\right) \cdot \left(0.16666666666666666 + \left(x \cdot x\right) \cdot -0.027777777777777776\right)\\
\end{array}
\end{array}
if y < 3.40000000000000003e-51Initial program 83.2%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in x around 0
Simplified78.4%
Taylor expanded in y around 0
/-lowering-/.f6462.9%
Simplified62.9%
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
/-lowering-/.f6462.1%
Applied egg-rr62.1%
if 3.40000000000000003e-51 < y < 2e114Initial program 100.0%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f64100.0%
Simplified100.0%
Taylor expanded in x around 0
Simplified70.6%
*-commutativeN/A
div-invN/A
associate-*l*N/A
inv-powN/A
pow-plusN/A
metadata-evalN/A
metadata-evalN/A
*-lowering-*.f64N/A
sinh-lowering-sinh.f6470.6%
Applied egg-rr70.6%
if 2e114 < y Initial program 100.0%
Taylor expanded in y around 0
*-lowering-*.f64N/A
*-rgt-identityN/A
+-commutativeN/A
distribute-lft-inN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
distribute-rgt-outN/A
*-commutativeN/A
distribute-lft-inN/A
Simplified100.0%
Taylor expanded in x around 0
associate-*r*N/A
distribute-lft1-inN/A
+-commutativeN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
Simplified84.6%
Taylor expanded in y around inf
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6484.6%
Simplified84.6%
Taylor expanded in y around 0
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
distribute-rgt-inN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6484.6%
Simplified84.6%
Final simplification66.7%
(FPCore (x y)
:precision binary64
(if (<= y 2.25e+114)
(* x (/ (sinh y) x))
(*
(* y (* y y))
(+ 0.16666666666666666 (* (* x x) -0.027777777777777776)))))
double code(double x, double y) {
double tmp;
if (y <= 2.25e+114) {
tmp = x * (sinh(y) / x);
} else {
tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776));
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 2.25d+114) then
tmp = x * (sinh(y) / x)
else
tmp = (y * (y * y)) * (0.16666666666666666d0 + ((x * x) * (-0.027777777777777776d0)))
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 2.25e+114) {
tmp = x * (Math.sinh(y) / x);
} else {
tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776));
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 2.25e+114: tmp = x * (math.sinh(y) / x) else: tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)) return tmp
function code(x, y) tmp = 0.0 if (y <= 2.25e+114) tmp = Float64(x * Float64(sinh(y) / x)); else tmp = Float64(Float64(y * Float64(y * y)) * Float64(0.16666666666666666 + Float64(Float64(x * x) * -0.027777777777777776))); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 2.25e+114) tmp = x * (sinh(y) / x); else tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 2.25e+114], N[(x * N[(N[Sinh[y], $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision], N[(N[(y * N[(y * y), $MachinePrecision]), $MachinePrecision] * N[(0.16666666666666666 + N[(N[(x * x), $MachinePrecision] * -0.027777777777777776), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 2.25 \cdot 10^{+114}:\\
\;\;\;\;x \cdot \frac{\sinh y}{x}\\
\mathbf{else}:\\
\;\;\;\;\left(y \cdot \left(y \cdot y\right)\right) \cdot \left(0.16666666666666666 + \left(x \cdot x\right) \cdot -0.027777777777777776\right)\\
\end{array}
\end{array}
if y < 2.25e114Initial program 85.7%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in x around 0
Simplified77.2%
if 2.25e114 < y Initial program 100.0%
Taylor expanded in y around 0
*-lowering-*.f64N/A
*-rgt-identityN/A
+-commutativeN/A
distribute-lft-inN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
distribute-rgt-outN/A
*-commutativeN/A
distribute-lft-inN/A
Simplified100.0%
Taylor expanded in x around 0
associate-*r*N/A
distribute-lft1-inN/A
+-commutativeN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
Simplified84.6%
Taylor expanded in y around inf
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6484.6%
Simplified84.6%
Taylor expanded in y around 0
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
distribute-rgt-inN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6484.6%
Simplified84.6%
(FPCore (x y)
:precision binary64
(if (<= y 5.8e+42)
(* x (/ 1.0 (/ x y)))
(if (<= y 2e+114)
(*
y
(+
1.0
(*
y
(*
y
(+
0.16666666666666666
(*
y
(*
y
(+ 0.008333333333333333 (* y (* y 0.0001984126984126984))))))))))
(*
(* y (* y y))
(+ 0.16666666666666666 (* (* x x) -0.027777777777777776))))))
double code(double x, double y) {
double tmp;
if (y <= 5.8e+42) {
tmp = x * (1.0 / (x / y));
} else if (y <= 2e+114) {
tmp = y * (1.0 + (y * (y * (0.16666666666666666 + (y * (y * (0.008333333333333333 + (y * (y * 0.0001984126984126984)))))))));
} else {
tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776));
}
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+42) then
tmp = x * (1.0d0 / (x / y))
else if (y <= 2d+114) then
tmp = y * (1.0d0 + (y * (y * (0.16666666666666666d0 + (y * (y * (0.008333333333333333d0 + (y * (y * 0.0001984126984126984d0)))))))))
else
tmp = (y * (y * y)) * (0.16666666666666666d0 + ((x * x) * (-0.027777777777777776d0)))
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 5.8e+42) {
tmp = x * (1.0 / (x / y));
} else if (y <= 2e+114) {
tmp = y * (1.0 + (y * (y * (0.16666666666666666 + (y * (y * (0.008333333333333333 + (y * (y * 0.0001984126984126984)))))))));
} else {
tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776));
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 5.8e+42: tmp = x * (1.0 / (x / y)) elif y <= 2e+114: tmp = y * (1.0 + (y * (y * (0.16666666666666666 + (y * (y * (0.008333333333333333 + (y * (y * 0.0001984126984126984))))))))) else: tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)) return tmp
function code(x, y) tmp = 0.0 if (y <= 5.8e+42) tmp = Float64(x * Float64(1.0 / Float64(x / y))); elseif (y <= 2e+114) tmp = Float64(y * Float64(1.0 + Float64(y * Float64(y * Float64(0.16666666666666666 + Float64(y * Float64(y * Float64(0.008333333333333333 + Float64(y * Float64(y * 0.0001984126984126984)))))))))); else tmp = Float64(Float64(y * Float64(y * y)) * Float64(0.16666666666666666 + Float64(Float64(x * x) * -0.027777777777777776))); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 5.8e+42) tmp = x * (1.0 / (x / y)); elseif (y <= 2e+114) tmp = y * (1.0 + (y * (y * (0.16666666666666666 + (y * (y * (0.008333333333333333 + (y * (y * 0.0001984126984126984))))))))); else tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 5.8e+42], N[(x * N[(1.0 / N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2e+114], N[(y * N[(1.0 + N[(y * N[(y * N[(0.16666666666666666 + N[(y * N[(y * N[(0.008333333333333333 + N[(y * N[(y * 0.0001984126984126984), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(y * N[(y * y), $MachinePrecision]), $MachinePrecision] * N[(0.16666666666666666 + N[(N[(x * x), $MachinePrecision] * -0.027777777777777776), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 5.8 \cdot 10^{+42}:\\
\;\;\;\;x \cdot \frac{1}{\frac{x}{y}}\\
\mathbf{elif}\;y \leq 2 \cdot 10^{+114}:\\
\;\;\;\;y \cdot \left(1 + y \cdot \left(y \cdot \left(0.16666666666666666 + y \cdot \left(y \cdot \left(0.008333333333333333 + y \cdot \left(y \cdot 0.0001984126984126984\right)\right)\right)\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(y \cdot \left(y \cdot y\right)\right) \cdot \left(0.16666666666666666 + \left(x \cdot x\right) \cdot -0.027777777777777776\right)\\
\end{array}
\end{array}
if y < 5.79999999999999961e42Initial program 84.4%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in x around 0
Simplified76.1%
Taylor expanded in y around 0
/-lowering-/.f6459.9%
Simplified59.9%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f6460.6%
Applied egg-rr60.6%
if 5.79999999999999961e42 < y < 2e114Initial program 100.0%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f64100.0%
Simplified100.0%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-commutativeN/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
distribute-lft-inN/A
Simplified84.2%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6488.9%
Simplified88.9%
if 2e114 < y Initial program 100.0%
Taylor expanded in y around 0
*-lowering-*.f64N/A
*-rgt-identityN/A
+-commutativeN/A
distribute-lft-inN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
distribute-rgt-outN/A
*-commutativeN/A
distribute-lft-inN/A
Simplified100.0%
Taylor expanded in x around 0
associate-*r*N/A
distribute-lft1-inN/A
+-commutativeN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
Simplified84.6%
Taylor expanded in y around inf
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6484.6%
Simplified84.6%
Taylor expanded in y around 0
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
distribute-rgt-inN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6484.6%
Simplified84.6%
(FPCore (x y)
:precision binary64
(if (<= y 2e+114)
(*
x
(/
(*
y
(+
1.0
(*
y
(*
y
(+
0.16666666666666666
(*
y
(*
y
(+ 0.008333333333333333 (* y (* y 0.0001984126984126984))))))))))
x))
(*
(* y (* y y))
(+ 0.16666666666666666 (* (* x x) -0.027777777777777776)))))
double code(double x, double y) {
double tmp;
if (y <= 2e+114) {
tmp = x * ((y * (1.0 + (y * (y * (0.16666666666666666 + (y * (y * (0.008333333333333333 + (y * (y * 0.0001984126984126984)))))))))) / x);
} else {
tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776));
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 2d+114) then
tmp = x * ((y * (1.0d0 + (y * (y * (0.16666666666666666d0 + (y * (y * (0.008333333333333333d0 + (y * (y * 0.0001984126984126984d0)))))))))) / x)
else
tmp = (y * (y * y)) * (0.16666666666666666d0 + ((x * x) * (-0.027777777777777776d0)))
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 2e+114) {
tmp = x * ((y * (1.0 + (y * (y * (0.16666666666666666 + (y * (y * (0.008333333333333333 + (y * (y * 0.0001984126984126984)))))))))) / x);
} else {
tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776));
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 2e+114: tmp = x * ((y * (1.0 + (y * (y * (0.16666666666666666 + (y * (y * (0.008333333333333333 + (y * (y * 0.0001984126984126984)))))))))) / x) else: tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)) return tmp
function code(x, y) tmp = 0.0 if (y <= 2e+114) tmp = Float64(x * Float64(Float64(y * Float64(1.0 + Float64(y * Float64(y * Float64(0.16666666666666666 + Float64(y * Float64(y * Float64(0.008333333333333333 + Float64(y * Float64(y * 0.0001984126984126984)))))))))) / x)); else tmp = Float64(Float64(y * Float64(y * y)) * Float64(0.16666666666666666 + Float64(Float64(x * x) * -0.027777777777777776))); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 2e+114) tmp = x * ((y * (1.0 + (y * (y * (0.16666666666666666 + (y * (y * (0.008333333333333333 + (y * (y * 0.0001984126984126984)))))))))) / x); else tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 2e+114], N[(x * N[(N[(y * N[(1.0 + N[(y * N[(y * N[(0.16666666666666666 + N[(y * N[(y * N[(0.008333333333333333 + N[(y * N[(y * 0.0001984126984126984), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision], N[(N[(y * N[(y * y), $MachinePrecision]), $MachinePrecision] * N[(0.16666666666666666 + N[(N[(x * x), $MachinePrecision] * -0.027777777777777776), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 2 \cdot 10^{+114}:\\
\;\;\;\;x \cdot \frac{y \cdot \left(1 + y \cdot \left(y \cdot \left(0.16666666666666666 + y \cdot \left(y \cdot \left(0.008333333333333333 + y \cdot \left(y \cdot 0.0001984126984126984\right)\right)\right)\right)\right)\right)}{x}\\
\mathbf{else}:\\
\;\;\;\;\left(y \cdot \left(y \cdot y\right)\right) \cdot \left(0.16666666666666666 + \left(x \cdot x\right) \cdot -0.027777777777777776\right)\\
\end{array}
\end{array}
if y < 2e114Initial program 85.7%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in x around 0
Simplified77.2%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6474.1%
Simplified74.1%
if 2e114 < y Initial program 100.0%
Taylor expanded in y around 0
*-lowering-*.f64N/A
*-rgt-identityN/A
+-commutativeN/A
distribute-lft-inN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
distribute-rgt-outN/A
*-commutativeN/A
distribute-lft-inN/A
Simplified100.0%
Taylor expanded in x around 0
associate-*r*N/A
distribute-lft1-inN/A
+-commutativeN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
Simplified84.6%
Taylor expanded in y around inf
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6484.6%
Simplified84.6%
Taylor expanded in y around 0
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
distribute-rgt-inN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6484.6%
Simplified84.6%
(FPCore (x y)
:precision binary64
(if (<= y 7.2e+59)
(* x (/ (* y (+ 1.0 (* (* y y) 0.16666666666666666))) x))
(if (<= y 2.15e+114)
(*
y
(*
(* (* y y) (* y y))
(+ 0.008333333333333333 (/ 0.16666666666666666 (* y y)))))
(*
(* y (* y y))
(+ 0.16666666666666666 (* (* x x) -0.027777777777777776))))))
double code(double x, double y) {
double tmp;
if (y <= 7.2e+59) {
tmp = x * ((y * (1.0 + ((y * y) * 0.16666666666666666))) / x);
} else if (y <= 2.15e+114) {
tmp = y * (((y * y) * (y * y)) * (0.008333333333333333 + (0.16666666666666666 / (y * y))));
} else {
tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776));
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 7.2d+59) then
tmp = x * ((y * (1.0d0 + ((y * y) * 0.16666666666666666d0))) / x)
else if (y <= 2.15d+114) then
tmp = y * (((y * y) * (y * y)) * (0.008333333333333333d0 + (0.16666666666666666d0 / (y * y))))
else
tmp = (y * (y * y)) * (0.16666666666666666d0 + ((x * x) * (-0.027777777777777776d0)))
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 7.2e+59) {
tmp = x * ((y * (1.0 + ((y * y) * 0.16666666666666666))) / x);
} else if (y <= 2.15e+114) {
tmp = y * (((y * y) * (y * y)) * (0.008333333333333333 + (0.16666666666666666 / (y * y))));
} else {
tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776));
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 7.2e+59: tmp = x * ((y * (1.0 + ((y * y) * 0.16666666666666666))) / x) elif y <= 2.15e+114: tmp = y * (((y * y) * (y * y)) * (0.008333333333333333 + (0.16666666666666666 / (y * y)))) else: tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)) return tmp
function code(x, y) tmp = 0.0 if (y <= 7.2e+59) tmp = Float64(x * Float64(Float64(y * Float64(1.0 + Float64(Float64(y * y) * 0.16666666666666666))) / x)); elseif (y <= 2.15e+114) tmp = Float64(y * Float64(Float64(Float64(y * y) * Float64(y * y)) * Float64(0.008333333333333333 + Float64(0.16666666666666666 / Float64(y * y))))); else tmp = Float64(Float64(y * Float64(y * y)) * Float64(0.16666666666666666 + Float64(Float64(x * x) * -0.027777777777777776))); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 7.2e+59) tmp = x * ((y * (1.0 + ((y * y) * 0.16666666666666666))) / x); elseif (y <= 2.15e+114) tmp = y * (((y * y) * (y * y)) * (0.008333333333333333 + (0.16666666666666666 / (y * y)))); else tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 7.2e+59], N[(x * N[(N[(y * N[(1.0 + N[(N[(y * y), $MachinePrecision] * 0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2.15e+114], N[(y * N[(N[(N[(y * y), $MachinePrecision] * N[(y * y), $MachinePrecision]), $MachinePrecision] * N[(0.008333333333333333 + N[(0.16666666666666666 / N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(y * N[(y * y), $MachinePrecision]), $MachinePrecision] * N[(0.16666666666666666 + N[(N[(x * x), $MachinePrecision] * -0.027777777777777776), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 7.2 \cdot 10^{+59}:\\
\;\;\;\;x \cdot \frac{y \cdot \left(1 + \left(y \cdot y\right) \cdot 0.16666666666666666\right)}{x}\\
\mathbf{elif}\;y \leq 2.15 \cdot 10^{+114}:\\
\;\;\;\;y \cdot \left(\left(\left(y \cdot y\right) \cdot \left(y \cdot y\right)\right) \cdot \left(0.008333333333333333 + \frac{0.16666666666666666}{y \cdot y}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(y \cdot \left(y \cdot y\right)\right) \cdot \left(0.16666666666666666 + \left(x \cdot x\right) \cdot -0.027777777777777776\right)\\
\end{array}
\end{array}
if y < 7.1999999999999997e59Initial program 84.9%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in x around 0
Simplified76.4%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6466.7%
Simplified66.7%
if 7.1999999999999997e59 < y < 2.15e114Initial program 100.0%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f64100.0%
Simplified100.0%
Taylor expanded in x around 0
Simplified91.7%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6491.7%
Simplified91.7%
Taylor expanded in y around inf
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6491.7%
Simplified91.7%
if 2.15e114 < y Initial program 100.0%
Taylor expanded in y around 0
*-lowering-*.f64N/A
*-rgt-identityN/A
+-commutativeN/A
distribute-lft-inN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
distribute-rgt-outN/A
*-commutativeN/A
distribute-lft-inN/A
Simplified100.0%
Taylor expanded in x around 0
associate-*r*N/A
distribute-lft1-inN/A
+-commutativeN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
Simplified84.6%
Taylor expanded in y around inf
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6484.6%
Simplified84.6%
Taylor expanded in y around 0
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
distribute-rgt-inN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6484.6%
Simplified84.6%
(FPCore (x y)
:precision binary64
(if (<= y 2.35e+114)
(*
x
(/
(*
y
(+
1.0
(* y (* y (+ 0.16666666666666666 (* (* y y) 0.008333333333333333))))))
x))
(*
(* y (* y y))
(+ 0.16666666666666666 (* (* x x) -0.027777777777777776)))))
double code(double x, double y) {
double tmp;
if (y <= 2.35e+114) {
tmp = x * ((y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333)))))) / x);
} else {
tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776));
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 2.35d+114) then
tmp = x * ((y * (1.0d0 + (y * (y * (0.16666666666666666d0 + ((y * y) * 0.008333333333333333d0)))))) / x)
else
tmp = (y * (y * y)) * (0.16666666666666666d0 + ((x * x) * (-0.027777777777777776d0)))
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 2.35e+114) {
tmp = x * ((y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333)))))) / x);
} else {
tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776));
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 2.35e+114: tmp = x * ((y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333)))))) / x) else: tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)) return tmp
function code(x, y) tmp = 0.0 if (y <= 2.35e+114) tmp = Float64(x * Float64(Float64(y * Float64(1.0 + Float64(y * Float64(y * Float64(0.16666666666666666 + Float64(Float64(y * y) * 0.008333333333333333)))))) / x)); else tmp = Float64(Float64(y * Float64(y * y)) * Float64(0.16666666666666666 + Float64(Float64(x * x) * -0.027777777777777776))); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 2.35e+114) tmp = x * ((y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333)))))) / x); else tmp = (y * (y * y)) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 2.35e+114], N[(x * N[(N[(y * N[(1.0 + N[(y * N[(y * N[(0.16666666666666666 + N[(N[(y * y), $MachinePrecision] * 0.008333333333333333), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision], N[(N[(y * N[(y * y), $MachinePrecision]), $MachinePrecision] * N[(0.16666666666666666 + N[(N[(x * x), $MachinePrecision] * -0.027777777777777776), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 2.35 \cdot 10^{+114}:\\
\;\;\;\;x \cdot \frac{y \cdot \left(1 + y \cdot \left(y \cdot \left(0.16666666666666666 + \left(y \cdot y\right) \cdot 0.008333333333333333\right)\right)\right)}{x}\\
\mathbf{else}:\\
\;\;\;\;\left(y \cdot \left(y \cdot y\right)\right) \cdot \left(0.16666666666666666 + \left(x \cdot x\right) \cdot -0.027777777777777776\right)\\
\end{array}
\end{array}
if y < 2.35e114Initial program 85.7%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in x around 0
Simplified77.2%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6471.6%
Simplified71.6%
if 2.35e114 < y Initial program 100.0%
Taylor expanded in y around 0
*-lowering-*.f64N/A
*-rgt-identityN/A
+-commutativeN/A
distribute-lft-inN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
distribute-rgt-outN/A
*-commutativeN/A
distribute-lft-inN/A
Simplified100.0%
Taylor expanded in x around 0
associate-*r*N/A
distribute-lft1-inN/A
+-commutativeN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
Simplified84.6%
Taylor expanded in y around inf
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6484.6%
Simplified84.6%
Taylor expanded in y around 0
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
distribute-rgt-inN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6484.6%
Simplified84.6%
(FPCore (x y)
:precision binary64
(let* ((t_0 (* y (* y y))))
(if (<= y 7.2e+59)
(* x (/ (* y (+ 1.0 (* (* y y) 0.16666666666666666))) x))
(if (<= y 2.25e+114)
(* y (* y (* 0.008333333333333333 t_0)))
(* t_0 (+ 0.16666666666666666 (* (* x x) -0.027777777777777776)))))))
double code(double x, double y) {
double t_0 = y * (y * y);
double tmp;
if (y <= 7.2e+59) {
tmp = x * ((y * (1.0 + ((y * y) * 0.16666666666666666))) / x);
} else if (y <= 2.25e+114) {
tmp = y * (y * (0.008333333333333333 * t_0));
} else {
tmp = t_0 * (0.16666666666666666 + ((x * x) * -0.027777777777777776));
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: t_0
real(8) :: tmp
t_0 = y * (y * y)
if (y <= 7.2d+59) then
tmp = x * ((y * (1.0d0 + ((y * y) * 0.16666666666666666d0))) / x)
else if (y <= 2.25d+114) then
tmp = y * (y * (0.008333333333333333d0 * t_0))
else
tmp = t_0 * (0.16666666666666666d0 + ((x * x) * (-0.027777777777777776d0)))
end if
code = tmp
end function
public static double code(double x, double y) {
double t_0 = y * (y * y);
double tmp;
if (y <= 7.2e+59) {
tmp = x * ((y * (1.0 + ((y * y) * 0.16666666666666666))) / x);
} else if (y <= 2.25e+114) {
tmp = y * (y * (0.008333333333333333 * t_0));
} else {
tmp = t_0 * (0.16666666666666666 + ((x * x) * -0.027777777777777776));
}
return tmp;
}
def code(x, y): t_0 = y * (y * y) tmp = 0 if y <= 7.2e+59: tmp = x * ((y * (1.0 + ((y * y) * 0.16666666666666666))) / x) elif y <= 2.25e+114: tmp = y * (y * (0.008333333333333333 * t_0)) else: tmp = t_0 * (0.16666666666666666 + ((x * x) * -0.027777777777777776)) return tmp
function code(x, y) t_0 = Float64(y * Float64(y * y)) tmp = 0.0 if (y <= 7.2e+59) tmp = Float64(x * Float64(Float64(y * Float64(1.0 + Float64(Float64(y * y) * 0.16666666666666666))) / x)); elseif (y <= 2.25e+114) tmp = Float64(y * Float64(y * Float64(0.008333333333333333 * t_0))); else tmp = Float64(t_0 * Float64(0.16666666666666666 + Float64(Float64(x * x) * -0.027777777777777776))); end return tmp end
function tmp_2 = code(x, y) t_0 = y * (y * y); tmp = 0.0; if (y <= 7.2e+59) tmp = x * ((y * (1.0 + ((y * y) * 0.16666666666666666))) / x); elseif (y <= 2.25e+114) tmp = y * (y * (0.008333333333333333 * t_0)); else tmp = t_0 * (0.16666666666666666 + ((x * x) * -0.027777777777777776)); end tmp_2 = tmp; end
code[x_, y_] := Block[{t$95$0 = N[(y * N[(y * y), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, 7.2e+59], N[(x * N[(N[(y * N[(1.0 + N[(N[(y * y), $MachinePrecision] * 0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 2.25e+114], N[(y * N[(y * N[(0.008333333333333333 * t$95$0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t$95$0 * N[(0.16666666666666666 + N[(N[(x * x), $MachinePrecision] * -0.027777777777777776), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := y \cdot \left(y \cdot y\right)\\
\mathbf{if}\;y \leq 7.2 \cdot 10^{+59}:\\
\;\;\;\;x \cdot \frac{y \cdot \left(1 + \left(y \cdot y\right) \cdot 0.16666666666666666\right)}{x}\\
\mathbf{elif}\;y \leq 2.25 \cdot 10^{+114}:\\
\;\;\;\;y \cdot \left(y \cdot \left(0.008333333333333333 \cdot t\_0\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_0 \cdot \left(0.16666666666666666 + \left(x \cdot x\right) \cdot -0.027777777777777776\right)\\
\end{array}
\end{array}
if y < 7.1999999999999997e59Initial program 84.9%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in x around 0
Simplified76.4%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6466.7%
Simplified66.7%
if 7.1999999999999997e59 < y < 2.25e114Initial program 100.0%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f64100.0%
Simplified100.0%
Taylor expanded in x around 0
Simplified91.7%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6491.7%
Simplified91.7%
Taylor expanded in y around inf
metadata-evalN/A
pow-sqrN/A
associate-*l*N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6491.7%
Simplified91.7%
if 2.25e114 < y Initial program 100.0%
Taylor expanded in y around 0
*-lowering-*.f64N/A
*-rgt-identityN/A
+-commutativeN/A
distribute-lft-inN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
distribute-rgt-outN/A
*-commutativeN/A
distribute-lft-inN/A
Simplified100.0%
Taylor expanded in x around 0
associate-*r*N/A
distribute-lft1-inN/A
+-commutativeN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
Simplified84.6%
Taylor expanded in y around inf
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6484.6%
Simplified84.6%
Taylor expanded in y around 0
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
distribute-rgt-inN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6484.6%
Simplified84.6%
(FPCore (x y) :precision binary64 (if (<= y 7.2e+59) (* x (/ (* y (+ 1.0 (* (* y y) 0.16666666666666666))) x)) (* y (* y (* 0.008333333333333333 (* y (* y y)))))))
double code(double x, double y) {
double tmp;
if (y <= 7.2e+59) {
tmp = x * ((y * (1.0 + ((y * y) * 0.16666666666666666))) / x);
} else {
tmp = y * (y * (0.008333333333333333 * (y * (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 <= 7.2d+59) then
tmp = x * ((y * (1.0d0 + ((y * y) * 0.16666666666666666d0))) / x)
else
tmp = y * (y * (0.008333333333333333d0 * (y * (y * y))))
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 7.2e+59) {
tmp = x * ((y * (1.0 + ((y * y) * 0.16666666666666666))) / x);
} else {
tmp = y * (y * (0.008333333333333333 * (y * (y * y))));
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 7.2e+59: tmp = x * ((y * (1.0 + ((y * y) * 0.16666666666666666))) / x) else: tmp = y * (y * (0.008333333333333333 * (y * (y * y)))) return tmp
function code(x, y) tmp = 0.0 if (y <= 7.2e+59) tmp = Float64(x * Float64(Float64(y * Float64(1.0 + Float64(Float64(y * y) * 0.16666666666666666))) / x)); else tmp = Float64(y * Float64(y * Float64(0.008333333333333333 * Float64(y * Float64(y * y))))); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 7.2e+59) tmp = x * ((y * (1.0 + ((y * y) * 0.16666666666666666))) / x); else tmp = y * (y * (0.008333333333333333 * (y * (y * y)))); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 7.2e+59], N[(x * N[(N[(y * N[(1.0 + N[(N[(y * y), $MachinePrecision] * 0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision], N[(y * N[(y * N[(0.008333333333333333 * N[(y * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 7.2 \cdot 10^{+59}:\\
\;\;\;\;x \cdot \frac{y \cdot \left(1 + \left(y \cdot y\right) \cdot 0.16666666666666666\right)}{x}\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y \cdot \left(0.008333333333333333 \cdot \left(y \cdot \left(y \cdot y\right)\right)\right)\right)\\
\end{array}
\end{array}
if y < 7.1999999999999997e59Initial program 84.9%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in x around 0
Simplified76.4%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6466.7%
Simplified66.7%
if 7.1999999999999997e59 < y Initial program 100.0%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f64100.0%
Simplified100.0%
Taylor expanded in x around 0
Simplified78.4%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6478.4%
Simplified78.4%
Taylor expanded in y around inf
metadata-evalN/A
pow-sqrN/A
associate-*l*N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6478.4%
Simplified78.4%
(FPCore (x y) :precision binary64 (if (<= y 1.05e+59) (* x (/ 1.0 (/ x y))) (* y (* y (* 0.008333333333333333 (* y (* y y)))))))
double code(double x, double y) {
double tmp;
if (y <= 1.05e+59) {
tmp = x * (1.0 / (x / y));
} else {
tmp = y * (y * (0.008333333333333333 * (y * (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+59) then
tmp = x * (1.0d0 / (x / y))
else
tmp = y * (y * (0.008333333333333333d0 * (y * (y * y))))
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 1.05e+59) {
tmp = x * (1.0 / (x / y));
} else {
tmp = y * (y * (0.008333333333333333 * (y * (y * y))));
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 1.05e+59: tmp = x * (1.0 / (x / y)) else: tmp = y * (y * (0.008333333333333333 * (y * (y * y)))) return tmp
function code(x, y) tmp = 0.0 if (y <= 1.05e+59) tmp = Float64(x * Float64(1.0 / Float64(x / y))); else tmp = Float64(y * Float64(y * Float64(0.008333333333333333 * Float64(y * Float64(y * y))))); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 1.05e+59) tmp = x * (1.0 / (x / y)); else tmp = y * (y * (0.008333333333333333 * (y * (y * y)))); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 1.05e+59], N[(x * N[(1.0 / N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(y * N[(0.008333333333333333 * N[(y * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 1.05 \cdot 10^{+59}:\\
\;\;\;\;x \cdot \frac{1}{\frac{x}{y}}\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y \cdot \left(0.008333333333333333 \cdot \left(y \cdot \left(y \cdot y\right)\right)\right)\right)\\
\end{array}
\end{array}
if y < 1.04999999999999992e59Initial program 84.9%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in x around 0
Simplified76.4%
Taylor expanded in y around 0
/-lowering-/.f6458.7%
Simplified58.7%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f6459.4%
Applied egg-rr59.4%
if 1.04999999999999992e59 < y Initial program 100.0%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f64100.0%
Simplified100.0%
Taylor expanded in x around 0
Simplified78.4%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6478.4%
Simplified78.4%
Taylor expanded in y around inf
metadata-evalN/A
pow-sqrN/A
associate-*l*N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6478.4%
Simplified78.4%
(FPCore (x y) :precision binary64 (if (<= y 8e+102) (* x (/ 1.0 (/ x y))) (* y (+ 1.0 (* y (* y 0.16666666666666666))))))
double code(double x, double y) {
double tmp;
if (y <= 8e+102) {
tmp = x * (1.0 / (x / y));
} else {
tmp = y * (1.0 + (y * (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 (y <= 8d+102) then
tmp = x * (1.0d0 / (x / y))
else
tmp = y * (1.0d0 + (y * (y * 0.16666666666666666d0)))
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 8e+102) {
tmp = x * (1.0 / (x / y));
} else {
tmp = y * (1.0 + (y * (y * 0.16666666666666666)));
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 8e+102: tmp = x * (1.0 / (x / y)) else: tmp = y * (1.0 + (y * (y * 0.16666666666666666))) return tmp
function code(x, y) tmp = 0.0 if (y <= 8e+102) tmp = Float64(x * Float64(1.0 / Float64(x / y))); else tmp = Float64(y * Float64(1.0 + Float64(y * Float64(y * 0.16666666666666666)))); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 8e+102) tmp = x * (1.0 / (x / y)); else tmp = y * (1.0 + (y * (y * 0.16666666666666666))); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 8e+102], N[(x * N[(1.0 / N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(1.0 + N[(y * N[(y * 0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 8 \cdot 10^{+102}:\\
\;\;\;\;x \cdot \frac{1}{\frac{x}{y}}\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(1 + y \cdot \left(y \cdot 0.16666666666666666\right)\right)\\
\end{array}
\end{array}
if y < 7.99999999999999982e102Initial program 85.5%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in x around 0
Simplified76.9%
Taylor expanded in y around 0
/-lowering-/.f6458.6%
Simplified58.6%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f6459.3%
Applied egg-rr59.3%
if 7.99999999999999982e102 < y Initial program 100.0%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f64100.0%
Simplified100.0%
Taylor expanded in x around 0
Simplified76.2%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6476.2%
Simplified76.2%
Taylor expanded in y around 0
*-commutativeN/A
*-lowering-*.f6476.2%
Simplified76.2%
(FPCore (x y) :precision binary64 (if (<= y 1.02e+103) (* x (/ 1.0 (/ x y))) (* y (* y (* y 0.16666666666666666)))))
double code(double x, double y) {
double tmp;
if (y <= 1.02e+103) {
tmp = x * (1.0 / (x / y));
} else {
tmp = y * (y * (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 (y <= 1.02d+103) then
tmp = x * (1.0d0 / (x / y))
else
tmp = y * (y * (y * 0.16666666666666666d0))
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 1.02e+103) {
tmp = x * (1.0 / (x / y));
} else {
tmp = y * (y * (y * 0.16666666666666666));
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 1.02e+103: tmp = x * (1.0 / (x / y)) else: tmp = y * (y * (y * 0.16666666666666666)) return tmp
function code(x, y) tmp = 0.0 if (y <= 1.02e+103) tmp = Float64(x * Float64(1.0 / Float64(x / y))); else tmp = Float64(y * Float64(y * Float64(y * 0.16666666666666666))); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 1.02e+103) tmp = x * (1.0 / (x / y)); else tmp = y * (y * (y * 0.16666666666666666)); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 1.02e+103], N[(x * N[(1.0 / N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(y * N[(y * 0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 1.02 \cdot 10^{+103}:\\
\;\;\;\;x \cdot \frac{1}{\frac{x}{y}}\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(y \cdot \left(y \cdot 0.16666666666666666\right)\right)\\
\end{array}
\end{array}
if y < 1.01999999999999991e103Initial program 85.5%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in x around 0
Simplified76.9%
Taylor expanded in y around 0
/-lowering-/.f6458.6%
Simplified58.6%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f6459.3%
Applied egg-rr59.3%
if 1.01999999999999991e103 < y Initial program 100.0%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f64100.0%
Simplified100.0%
Taylor expanded in x around 0
Simplified76.2%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6476.2%
Simplified76.2%
Taylor expanded in y around inf
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6476.2%
Simplified76.2%
Taylor expanded in y around 0
unpow3N/A
unpow2N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6476.2%
Simplified76.2%
(FPCore (x y) :precision binary64 (* x (/ 1.0 (/ x y))))
double code(double x, double y) {
return x * (1.0 / (x / y));
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = x * (1.0d0 / (x / y))
end function
public static double code(double x, double y) {
return x * (1.0 / (x / y));
}
def code(x, y): return x * (1.0 / (x / y))
function code(x, y) return Float64(x * Float64(1.0 / Float64(x / y))) end
function tmp = code(x, y) tmp = x * (1.0 / (x / y)); end
code[x_, y_] := N[(x * N[(1.0 / N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x \cdot \frac{1}{\frac{x}{y}}
\end{array}
Initial program 87.9%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in x around 0
Simplified76.8%
Taylor expanded in y around 0
/-lowering-/.f6455.6%
Simplified55.6%
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f6456.1%
Applied egg-rr56.1%
(FPCore (x y) :precision binary64 (* x (/ y x)))
double code(double x, double y) {
return x * (y / x);
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = x * (y / x)
end function
public static double code(double x, double y) {
return x * (y / x);
}
def code(x, y): return x * (y / x)
function code(x, y) return Float64(x * Float64(y / x)) end
function tmp = code(x, y) tmp = x * (y / x); end
code[x_, y_] := N[(x * N[(y / x), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x \cdot \frac{y}{x}
\end{array}
Initial program 87.9%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in x around 0
Simplified76.8%
Taylor expanded in y around 0
/-lowering-/.f6455.6%
Simplified55.6%
(FPCore (x y) :precision binary64 y)
double code(double x, double y) {
return y;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = y
end function
public static double code(double x, double y) {
return y;
}
def code(x, y): return y
function code(x, y) return y end
function tmp = code(x, y) tmp = y; end
code[x_, y_] := y
\begin{array}{l}
\\
y
\end{array}
Initial program 87.9%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.9%
Simplified99.9%
Taylor expanded in x around 0
Simplified76.8%
Taylor expanded in y around 0
Simplified28.8%
(FPCore (x y) :precision binary64 (* (sin x) (/ (sinh y) x)))
double code(double x, double y) {
return sin(x) * (sinh(y) / x);
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = sin(x) * (sinh(y) / x)
end function
public static double code(double x, double y) {
return Math.sin(x) * (Math.sinh(y) / x);
}
def code(x, y): return math.sin(x) * (math.sinh(y) / x)
function code(x, y) return Float64(sin(x) * Float64(sinh(y) / x)) end
function tmp = code(x, y) tmp = sin(x) * (sinh(y) / x); end
code[x_, y_] := N[(N[Sin[x], $MachinePrecision] * N[(N[Sinh[y], $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\sin x \cdot \frac{\sinh y}{x}
\end{array}
herbie shell --seed 2024152
(FPCore (x y)
:name "Linear.Quaternion:$ccosh from linear-1.19.1.3"
:precision binary64
:alt
(! :herbie-platform default (* (sin x) (/ (sinh y) x)))
(/ (* (sin x) (sinh y)) x))