
(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 24 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 89.5%
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
(let* ((t_0 (+ 1.0 (* 0.16666666666666666 (* y y)))))
(if (<= y 0.0116)
(* y (* t_0 (/ (sin x) x)))
(if (<= y 5e+43)
(/ (/ -1.0 (/ (/ -1.0 x) (sinh y))) x)
(if (<= y 9.6e+102)
(/ (* (sinh y) (* x (+ 1.0 (* x (* x -0.16666666666666666))))) x)
(/ (* y (* (sin x) t_0)) x))))))
double code(double x, double y) {
double t_0 = 1.0 + (0.16666666666666666 * (y * y));
double tmp;
if (y <= 0.0116) {
tmp = y * (t_0 * (sin(x) / x));
} else if (y <= 5e+43) {
tmp = (-1.0 / ((-1.0 / x) / sinh(y))) / x;
} else if (y <= 9.6e+102) {
tmp = (sinh(y) * (x * (1.0 + (x * (x * -0.16666666666666666))))) / x;
} 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 + (0.16666666666666666d0 * (y * y))
if (y <= 0.0116d0) then
tmp = y * (t_0 * (sin(x) / x))
else if (y <= 5d+43) then
tmp = ((-1.0d0) / (((-1.0d0) / x) / sinh(y))) / x
else if (y <= 9.6d+102) then
tmp = (sinh(y) * (x * (1.0d0 + (x * (x * (-0.16666666666666666d0)))))) / x
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 + (0.16666666666666666 * (y * y));
double tmp;
if (y <= 0.0116) {
tmp = y * (t_0 * (Math.sin(x) / x));
} else if (y <= 5e+43) {
tmp = (-1.0 / ((-1.0 / x) / Math.sinh(y))) / x;
} else if (y <= 9.6e+102) {
tmp = (Math.sinh(y) * (x * (1.0 + (x * (x * -0.16666666666666666))))) / x;
} else {
tmp = (y * (Math.sin(x) * t_0)) / x;
}
return tmp;
}
def code(x, y): t_0 = 1.0 + (0.16666666666666666 * (y * y)) tmp = 0 if y <= 0.0116: tmp = y * (t_0 * (math.sin(x) / x)) elif y <= 5e+43: tmp = (-1.0 / ((-1.0 / x) / math.sinh(y))) / x elif y <= 9.6e+102: tmp = (math.sinh(y) * (x * (1.0 + (x * (x * -0.16666666666666666))))) / x else: tmp = (y * (math.sin(x) * t_0)) / x return tmp
function code(x, y) t_0 = Float64(1.0 + Float64(0.16666666666666666 * Float64(y * y))) tmp = 0.0 if (y <= 0.0116) tmp = Float64(y * Float64(t_0 * Float64(sin(x) / x))); elseif (y <= 5e+43) tmp = Float64(Float64(-1.0 / Float64(Float64(-1.0 / x) / sinh(y))) / x); elseif (y <= 9.6e+102) tmp = Float64(Float64(sinh(y) * Float64(x * Float64(1.0 + Float64(x * Float64(x * -0.16666666666666666))))) / x); 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 + (0.16666666666666666 * (y * y)); tmp = 0.0; if (y <= 0.0116) tmp = y * (t_0 * (sin(x) / x)); elseif (y <= 5e+43) tmp = (-1.0 / ((-1.0 / x) / sinh(y))) / x; elseif (y <= 9.6e+102) tmp = (sinh(y) * (x * (1.0 + (x * (x * -0.16666666666666666))))) / x; else tmp = (y * (sin(x) * t_0)) / x; end tmp_2 = tmp; end
code[x_, y_] := Block[{t$95$0 = N[(1.0 + N[(0.16666666666666666 * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, 0.0116], N[(y * N[(t$95$0 * N[(N[Sin[x], $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 5e+43], N[(N[(-1.0 / N[(N[(-1.0 / x), $MachinePrecision] / N[Sinh[y], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision], If[LessEqual[y, 9.6e+102], N[(N[(N[Sinh[y], $MachinePrecision] * N[(x * N[(1.0 + N[(x * N[(x * -0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / x), $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 + 0.16666666666666666 \cdot \left(y \cdot y\right)\\
\mathbf{if}\;y \leq 0.0116:\\
\;\;\;\;y \cdot \left(t\_0 \cdot \frac{\sin x}{x}\right)\\
\mathbf{elif}\;y \leq 5 \cdot 10^{+43}:\\
\;\;\;\;\frac{\frac{-1}{\frac{\frac{-1}{x}}{\sinh y}}}{x}\\
\mathbf{elif}\;y \leq 9.6 \cdot 10^{+102}:\\
\;\;\;\;\frac{\sinh y \cdot \left(x \cdot \left(1 + x \cdot \left(x \cdot -0.16666666666666666\right)\right)\right)}{x}\\
\mathbf{else}:\\
\;\;\;\;\frac{y \cdot \left(\sin x \cdot t\_0\right)}{x}\\
\end{array}
\end{array}
if y < 0.0116Initial program 86.7%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.8%
Simplified99.8%
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
Simplified90.6%
if 0.0116 < y < 5.0000000000000004e43Initial program 99.8%
sinh-defN/A
associate-*r/N/A
clear-numN/A
frac-2negN/A
metadata-evalN/A
clear-numN/A
associate-*r/N/A
sinh-defN/A
distribute-frac-neg2N/A
/-lowering-/.f64N/A
distribute-lft-neg-inN/A
associate-/r*N/A
metadata-evalN/A
frac-2negN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
sinh-lowering-sinh.f64100.0%
Applied egg-rr100.0%
Taylor expanded in x around 0
Simplified75.0%
if 5.0000000000000004e43 < y < 9.59999999999999978e102Initial program 100.0%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6481.8%
Simplified81.8%
if 9.59999999999999978e102 < y Initial program 100.0%
sinh-defN/A
associate-*r/N/A
clear-numN/A
frac-2negN/A
metadata-evalN/A
clear-numN/A
associate-*r/N/A
sinh-defN/A
distribute-frac-neg2N/A
/-lowering-/.f64N/A
distribute-lft-neg-inN/A
associate-/r*N/A
metadata-evalN/A
frac-2negN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
sinh-lowering-sinh.f64100.0%
Applied egg-rr100.0%
Taylor expanded in y around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
distribute-rgt1-inN/A
+-commutativeN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6497.4%
Simplified97.4%
Final simplification90.6%
(FPCore (x y)
:precision binary64
(let* ((t_0 (+ 1.0 (* 0.16666666666666666 (* y y)))))
(if (<= y 0.035)
(* y (* t_0 (/ (sin x) x)))
(if (<= y 1.75e+45)
(/ (/ -1.0 (/ (/ -1.0 x) (sinh y))) x)
(if (<= y 9.6e+102)
(/
(*
(* x (+ 1.0 (* x (* x -0.16666666666666666))))
(*
y
(+
1.0
(*
y
(*
y
(+ 0.16666666666666666 (* (* y y) 0.008333333333333333)))))))
x)
(/ (* y (* (sin x) t_0)) x))))))
double code(double x, double y) {
double t_0 = 1.0 + (0.16666666666666666 * (y * y));
double tmp;
if (y <= 0.035) {
tmp = y * (t_0 * (sin(x) / x));
} else if (y <= 1.75e+45) {
tmp = (-1.0 / ((-1.0 / x) / sinh(y))) / x;
} else if (y <= 9.6e+102) {
tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x;
} 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 + (0.16666666666666666d0 * (y * y))
if (y <= 0.035d0) then
tmp = y * (t_0 * (sin(x) / x))
else if (y <= 1.75d+45) then
tmp = ((-1.0d0) / (((-1.0d0) / x) / sinh(y))) / x
else if (y <= 9.6d+102) then
tmp = ((x * (1.0d0 + (x * (x * (-0.16666666666666666d0))))) * (y * (1.0d0 + (y * (y * (0.16666666666666666d0 + ((y * y) * 0.008333333333333333d0))))))) / x
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 + (0.16666666666666666 * (y * y));
double tmp;
if (y <= 0.035) {
tmp = y * (t_0 * (Math.sin(x) / x));
} else if (y <= 1.75e+45) {
tmp = (-1.0 / ((-1.0 / x) / Math.sinh(y))) / x;
} else if (y <= 9.6e+102) {
tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x;
} else {
tmp = (y * (Math.sin(x) * t_0)) / x;
}
return tmp;
}
def code(x, y): t_0 = 1.0 + (0.16666666666666666 * (y * y)) tmp = 0 if y <= 0.035: tmp = y * (t_0 * (math.sin(x) / x)) elif y <= 1.75e+45: tmp = (-1.0 / ((-1.0 / x) / math.sinh(y))) / x elif y <= 9.6e+102: tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x else: tmp = (y * (math.sin(x) * t_0)) / x return tmp
function code(x, y) t_0 = Float64(1.0 + Float64(0.16666666666666666 * Float64(y * y))) tmp = 0.0 if (y <= 0.035) tmp = Float64(y * Float64(t_0 * Float64(sin(x) / x))); elseif (y <= 1.75e+45) tmp = Float64(Float64(-1.0 / Float64(Float64(-1.0 / x) / sinh(y))) / x); elseif (y <= 9.6e+102) tmp = Float64(Float64(Float64(x * Float64(1.0 + Float64(x * Float64(x * -0.16666666666666666)))) * 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(sin(x) * t_0)) / x); end return tmp end
function tmp_2 = code(x, y) t_0 = 1.0 + (0.16666666666666666 * (y * y)); tmp = 0.0; if (y <= 0.035) tmp = y * (t_0 * (sin(x) / x)); elseif (y <= 1.75e+45) tmp = (-1.0 / ((-1.0 / x) / sinh(y))) / x; elseif (y <= 9.6e+102) tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x; else tmp = (y * (sin(x) * t_0)) / x; end tmp_2 = tmp; end
code[x_, y_] := Block[{t$95$0 = N[(1.0 + N[(0.16666666666666666 * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, 0.035], N[(y * N[(t$95$0 * N[(N[Sin[x], $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.75e+45], N[(N[(-1.0 / N[(N[(-1.0 / x), $MachinePrecision] / N[Sinh[y], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision], If[LessEqual[y, 9.6e+102], N[(N[(N[(x * N[(1.0 + N[(x * N[(x * -0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 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]), $MachinePrecision] / x), $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 + 0.16666666666666666 \cdot \left(y \cdot y\right)\\
\mathbf{if}\;y \leq 0.035:\\
\;\;\;\;y \cdot \left(t\_0 \cdot \frac{\sin x}{x}\right)\\
\mathbf{elif}\;y \leq 1.75 \cdot 10^{+45}:\\
\;\;\;\;\frac{\frac{-1}{\frac{\frac{-1}{x}}{\sinh y}}}{x}\\
\mathbf{elif}\;y \leq 9.6 \cdot 10^{+102}:\\
\;\;\;\;\frac{\left(x \cdot \left(1 + x \cdot \left(x \cdot -0.16666666666666666\right)\right)\right) \cdot \left(y \cdot \left(1 + y \cdot \left(y \cdot \left(0.16666666666666666 + \left(y \cdot y\right) \cdot 0.008333333333333333\right)\right)\right)\right)}{x}\\
\mathbf{else}:\\
\;\;\;\;\frac{y \cdot \left(\sin x \cdot t\_0\right)}{x}\\
\end{array}
\end{array}
if y < 0.035000000000000003Initial program 86.7%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.8%
Simplified99.8%
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
Simplified90.6%
if 0.035000000000000003 < y < 1.75000000000000011e45Initial program 99.8%
sinh-defN/A
associate-*r/N/A
clear-numN/A
frac-2negN/A
metadata-evalN/A
clear-numN/A
associate-*r/N/A
sinh-defN/A
distribute-frac-neg2N/A
/-lowering-/.f64N/A
distribute-lft-neg-inN/A
associate-/r*N/A
metadata-evalN/A
frac-2negN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
sinh-lowering-sinh.f64100.0%
Applied egg-rr100.0%
Taylor expanded in x around 0
Simplified75.0%
if 1.75000000000000011e45 < y < 9.59999999999999978e102Initial program 100.0%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6481.8%
Simplified81.8%
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-*.f6473.4%
Simplified73.4%
if 9.59999999999999978e102 < y Initial program 100.0%
sinh-defN/A
associate-*r/N/A
clear-numN/A
frac-2negN/A
metadata-evalN/A
clear-numN/A
associate-*r/N/A
sinh-defN/A
distribute-frac-neg2N/A
/-lowering-/.f64N/A
distribute-lft-neg-inN/A
associate-/r*N/A
metadata-evalN/A
frac-2negN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
sinh-lowering-sinh.f64100.0%
Applied egg-rr100.0%
Taylor expanded in y around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
distribute-rgt1-inN/A
+-commutativeN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f6497.4%
Simplified97.4%
Final simplification90.3%
(FPCore (x y)
:precision binary64
(let* ((t_0 (* y (* (+ 1.0 (* 0.16666666666666666 (* y y))) (/ (sin x) x)))))
(if (<= y 0.15)
t_0
(if (<= y 3.4e+128) (/ (/ -1.0 (/ (/ -1.0 x) (sinh y))) x) t_0))))
double code(double x, double y) {
double t_0 = y * ((1.0 + (0.16666666666666666 * (y * y))) * (sin(x) / x));
double tmp;
if (y <= 0.15) {
tmp = t_0;
} else if (y <= 3.4e+128) {
tmp = (-1.0 / ((-1.0 / x) / sinh(y))) / x;
} 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 * ((1.0d0 + (0.16666666666666666d0 * (y * y))) * (sin(x) / x))
if (y <= 0.15d0) then
tmp = t_0
else if (y <= 3.4d+128) then
tmp = ((-1.0d0) / (((-1.0d0) / x) / sinh(y))) / x
else
tmp = t_0
end if
code = tmp
end function
public static double code(double x, double y) {
double t_0 = y * ((1.0 + (0.16666666666666666 * (y * y))) * (Math.sin(x) / x));
double tmp;
if (y <= 0.15) {
tmp = t_0;
} else if (y <= 3.4e+128) {
tmp = (-1.0 / ((-1.0 / x) / Math.sinh(y))) / x;
} else {
tmp = t_0;
}
return tmp;
}
def code(x, y): t_0 = y * ((1.0 + (0.16666666666666666 * (y * y))) * (math.sin(x) / x)) tmp = 0 if y <= 0.15: tmp = t_0 elif y <= 3.4e+128: tmp = (-1.0 / ((-1.0 / x) / math.sinh(y))) / x else: tmp = t_0 return tmp
function code(x, y) t_0 = Float64(y * Float64(Float64(1.0 + Float64(0.16666666666666666 * Float64(y * y))) * Float64(sin(x) / x))) tmp = 0.0 if (y <= 0.15) tmp = t_0; elseif (y <= 3.4e+128) tmp = Float64(Float64(-1.0 / Float64(Float64(-1.0 / x) / sinh(y))) / x); else tmp = t_0; end return tmp end
function tmp_2 = code(x, y) t_0 = y * ((1.0 + (0.16666666666666666 * (y * y))) * (sin(x) / x)); tmp = 0.0; if (y <= 0.15) tmp = t_0; elseif (y <= 3.4e+128) tmp = (-1.0 / ((-1.0 / x) / sinh(y))) / x; else tmp = t_0; end tmp_2 = tmp; end
code[x_, y_] := Block[{t$95$0 = N[(y * N[(N[(1.0 + N[(0.16666666666666666 * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Sin[x], $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, 0.15], t$95$0, If[LessEqual[y, 3.4e+128], N[(N[(-1.0 / N[(N[(-1.0 / x), $MachinePrecision] / N[Sinh[y], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision], t$95$0]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := y \cdot \left(\left(1 + 0.16666666666666666 \cdot \left(y \cdot y\right)\right) \cdot \frac{\sin x}{x}\right)\\
\mathbf{if}\;y \leq 0.15:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 3.4 \cdot 10^{+128}:\\
\;\;\;\;\frac{\frac{-1}{\frac{\frac{-1}{x}}{\sinh y}}}{x}\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if y < 0.149999999999999994 or 3.3999999999999999e128 < y Initial program 88.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 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
Simplified90.5%
if 0.149999999999999994 < y < 3.3999999999999999e128Initial program 99.9%
sinh-defN/A
associate-*r/N/A
clear-numN/A
frac-2negN/A
metadata-evalN/A
clear-numN/A
associate-*r/N/A
sinh-defN/A
distribute-frac-neg2N/A
/-lowering-/.f64N/A
distribute-lft-neg-inN/A
associate-/r*N/A
metadata-evalN/A
frac-2negN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
sinh-lowering-sinh.f64100.0%
Applied egg-rr100.0%
Taylor expanded in x around 0
Simplified75.0%
(FPCore (x y)
:precision binary64
(if (<= y 0.0027)
(/ y (/ x (sin x)))
(if (<= y 1.7e+45)
(/ (/ -1.0 (/ (/ -1.0 x) (sinh y))) x)
(/
(*
(* x (+ 1.0 (* x (* x -0.16666666666666666))))
(*
y
(+
1.0
(*
y
(* y (+ 0.16666666666666666 (* (* y y) 0.008333333333333333)))))))
x))))
double code(double x, double y) {
double tmp;
if (y <= 0.0027) {
tmp = y / (x / sin(x));
} else if (y <= 1.7e+45) {
tmp = (-1.0 / ((-1.0 / x) / sinh(y))) / x;
} else {
tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x;
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 0.0027d0) then
tmp = y / (x / sin(x))
else if (y <= 1.7d+45) then
tmp = ((-1.0d0) / (((-1.0d0) / x) / sinh(y))) / x
else
tmp = ((x * (1.0d0 + (x * (x * (-0.16666666666666666d0))))) * (y * (1.0d0 + (y * (y * (0.16666666666666666d0 + ((y * y) * 0.008333333333333333d0))))))) / x
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 0.0027) {
tmp = y / (x / Math.sin(x));
} else if (y <= 1.7e+45) {
tmp = (-1.0 / ((-1.0 / x) / Math.sinh(y))) / x;
} else {
tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x;
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 0.0027: tmp = y / (x / math.sin(x)) elif y <= 1.7e+45: tmp = (-1.0 / ((-1.0 / x) / math.sinh(y))) / x else: tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x return tmp
function code(x, y) tmp = 0.0 if (y <= 0.0027) tmp = Float64(y / Float64(x / sin(x))); elseif (y <= 1.7e+45) tmp = Float64(Float64(-1.0 / Float64(Float64(-1.0 / x) / sinh(y))) / x); else tmp = Float64(Float64(Float64(x * Float64(1.0 + Float64(x * Float64(x * -0.16666666666666666)))) * Float64(y * Float64(1.0 + Float64(y * Float64(y * Float64(0.16666666666666666 + Float64(Float64(y * y) * 0.008333333333333333))))))) / x); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 0.0027) tmp = y / (x / sin(x)); elseif (y <= 1.7e+45) tmp = (-1.0 / ((-1.0 / x) / sinh(y))) / x; else tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x; end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 0.0027], N[(y / N[(x / N[Sin[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.7e+45], N[(N[(-1.0 / N[(N[(-1.0 / x), $MachinePrecision] / N[Sinh[y], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision], N[(N[(N[(x * N[(1.0 + N[(x * N[(x * -0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 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]), $MachinePrecision] / x), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 0.0027:\\
\;\;\;\;\frac{y}{\frac{x}{\sin x}}\\
\mathbf{elif}\;y \leq 1.7 \cdot 10^{+45}:\\
\;\;\;\;\frac{\frac{-1}{\frac{\frac{-1}{x}}{\sinh y}}}{x}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(x \cdot \left(1 + x \cdot \left(x \cdot -0.16666666666666666\right)\right)\right) \cdot \left(y \cdot \left(1 + y \cdot \left(y \cdot \left(0.16666666666666666 + \left(y \cdot y\right) \cdot 0.008333333333333333\right)\right)\right)\right)}{x}\\
\end{array}
\end{array}
if y < 0.0027000000000000001Initial program 86.7%
Taylor expanded in y around 0
Simplified57.4%
*-commutativeN/A
associate-/l*N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
div-invN/A
clear-numN/A
div-invN/A
/-lowering-/.f64N/A
*-lft-identityN/A
metadata-evalN/A
associate-/r/N/A
un-div-invN/A
clear-numN/A
div-invN/A
frac-2negN/A
metadata-evalN/A
associate-/r/N/A
metadata-evalN/A
neg-mul-1N/A
remove-double-negN/A
sin-lowering-sin.f6470.6%
Applied egg-rr70.6%
if 0.0027000000000000001 < y < 1.7e45Initial program 99.8%
sinh-defN/A
associate-*r/N/A
clear-numN/A
frac-2negN/A
metadata-evalN/A
clear-numN/A
associate-*r/N/A
sinh-defN/A
distribute-frac-neg2N/A
/-lowering-/.f64N/A
distribute-lft-neg-inN/A
associate-/r*N/A
metadata-evalN/A
frac-2negN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
sinh-lowering-sinh.f64100.0%
Applied egg-rr100.0%
Taylor expanded in x around 0
Simplified75.0%
if 1.7e45 < y Initial program 100.0%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6480.0%
Simplified80.0%
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-*.f6477.9%
Simplified77.9%
(FPCore (x y)
:precision binary64
(if (<= y 0.0065)
(/ y (/ x (sin x)))
(if (<= y 1.7e+45)
(sinh y)
(/
(*
(* x (+ 1.0 (* x (* x -0.16666666666666666))))
(*
y
(+
1.0
(*
y
(* y (+ 0.16666666666666666 (* (* y y) 0.008333333333333333)))))))
x))))
double code(double x, double y) {
double tmp;
if (y <= 0.0065) {
tmp = y / (x / sin(x));
} else if (y <= 1.7e+45) {
tmp = sinh(y);
} else {
tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x;
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 0.0065d0) then
tmp = y / (x / sin(x))
else if (y <= 1.7d+45) then
tmp = sinh(y)
else
tmp = ((x * (1.0d0 + (x * (x * (-0.16666666666666666d0))))) * (y * (1.0d0 + (y * (y * (0.16666666666666666d0 + ((y * y) * 0.008333333333333333d0))))))) / x
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 0.0065) {
tmp = y / (x / Math.sin(x));
} else if (y <= 1.7e+45) {
tmp = Math.sinh(y);
} else {
tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x;
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 0.0065: tmp = y / (x / math.sin(x)) elif y <= 1.7e+45: tmp = math.sinh(y) else: tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x return tmp
function code(x, y) tmp = 0.0 if (y <= 0.0065) tmp = Float64(y / Float64(x / sin(x))); elseif (y <= 1.7e+45) tmp = sinh(y); else tmp = Float64(Float64(Float64(x * Float64(1.0 + Float64(x * Float64(x * -0.16666666666666666)))) * Float64(y * Float64(1.0 + Float64(y * Float64(y * Float64(0.16666666666666666 + Float64(Float64(y * y) * 0.008333333333333333))))))) / x); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 0.0065) tmp = y / (x / sin(x)); elseif (y <= 1.7e+45) tmp = sinh(y); else tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x; end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 0.0065], N[(y / N[(x / N[Sin[x], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.7e+45], N[Sinh[y], $MachinePrecision], N[(N[(N[(x * N[(1.0 + N[(x * N[(x * -0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 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]), $MachinePrecision] / x), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 0.0065:\\
\;\;\;\;\frac{y}{\frac{x}{\sin x}}\\
\mathbf{elif}\;y \leq 1.7 \cdot 10^{+45}:\\
\;\;\;\;\sinh y\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(x \cdot \left(1 + x \cdot \left(x \cdot -0.16666666666666666\right)\right)\right) \cdot \left(y \cdot \left(1 + y \cdot \left(y \cdot \left(0.16666666666666666 + \left(y \cdot y\right) \cdot 0.008333333333333333\right)\right)\right)\right)}{x}\\
\end{array}
\end{array}
if y < 0.0064999999999999997Initial program 86.7%
Taylor expanded in y around 0
Simplified57.4%
*-commutativeN/A
associate-/l*N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
div-invN/A
clear-numN/A
div-invN/A
/-lowering-/.f64N/A
*-lft-identityN/A
metadata-evalN/A
associate-/r/N/A
un-div-invN/A
clear-numN/A
div-invN/A
frac-2negN/A
metadata-evalN/A
associate-/r/N/A
metadata-evalN/A
neg-mul-1N/A
remove-double-negN/A
sin-lowering-sin.f6470.6%
Applied egg-rr70.6%
if 0.0064999999999999997 < y < 1.7e45Initial program 99.8%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.8%
Simplified99.8%
Taylor expanded in x around 0
Simplified74.8%
*-commutativeN/A
associate-*l/N/A
associate-/l*N/A
*-inversesN/A
*-rgt-identityN/A
sinh-lowering-sinh.f6474.8%
Applied egg-rr74.8%
if 1.7e45 < y Initial program 100.0%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6480.0%
Simplified80.0%
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-*.f6477.9%
Simplified77.9%
(FPCore (x y)
:precision binary64
(if (<= y 0.0027)
(* (sin x) (/ y x))
(if (<= y 1.75e+45)
(sinh y)
(/
(*
(* x (+ 1.0 (* x (* x -0.16666666666666666))))
(*
y
(+
1.0
(*
y
(* y (+ 0.16666666666666666 (* (* y y) 0.008333333333333333)))))))
x))))
double code(double x, double y) {
double tmp;
if (y <= 0.0027) {
tmp = sin(x) * (y / x);
} else if (y <= 1.75e+45) {
tmp = sinh(y);
} else {
tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x;
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 0.0027d0) then
tmp = sin(x) * (y / x)
else if (y <= 1.75d+45) then
tmp = sinh(y)
else
tmp = ((x * (1.0d0 + (x * (x * (-0.16666666666666666d0))))) * (y * (1.0d0 + (y * (y * (0.16666666666666666d0 + ((y * y) * 0.008333333333333333d0))))))) / x
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 0.0027) {
tmp = Math.sin(x) * (y / x);
} else if (y <= 1.75e+45) {
tmp = Math.sinh(y);
} else {
tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x;
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 0.0027: tmp = math.sin(x) * (y / x) elif y <= 1.75e+45: tmp = math.sinh(y) else: tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x return tmp
function code(x, y) tmp = 0.0 if (y <= 0.0027) tmp = Float64(sin(x) * Float64(y / x)); elseif (y <= 1.75e+45) tmp = sinh(y); else tmp = Float64(Float64(Float64(x * Float64(1.0 + Float64(x * Float64(x * -0.16666666666666666)))) * Float64(y * Float64(1.0 + Float64(y * Float64(y * Float64(0.16666666666666666 + Float64(Float64(y * y) * 0.008333333333333333))))))) / x); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 0.0027) tmp = sin(x) * (y / x); elseif (y <= 1.75e+45) tmp = sinh(y); else tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x; end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 0.0027], N[(N[Sin[x], $MachinePrecision] * N[(y / x), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.75e+45], N[Sinh[y], $MachinePrecision], N[(N[(N[(x * N[(1.0 + N[(x * N[(x * -0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 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]), $MachinePrecision] / x), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 0.0027:\\
\;\;\;\;\sin x \cdot \frac{y}{x}\\
\mathbf{elif}\;y \leq 1.75 \cdot 10^{+45}:\\
\;\;\;\;\sinh y\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(x \cdot \left(1 + x \cdot \left(x \cdot -0.16666666666666666\right)\right)\right) \cdot \left(y \cdot \left(1 + y \cdot \left(y \cdot \left(0.16666666666666666 + \left(y \cdot y\right) \cdot 0.008333333333333333\right)\right)\right)\right)}{x}\\
\end{array}
\end{array}
if y < 0.0027000000000000001Initial program 86.7%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.8%
Simplified99.8%
Taylor expanded in y around 0
/-lowering-/.f6476.4%
Simplified76.4%
if 0.0027000000000000001 < y < 1.75000000000000011e45Initial program 99.8%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.8%
Simplified99.8%
Taylor expanded in x around 0
Simplified74.8%
*-commutativeN/A
associate-*l/N/A
associate-/l*N/A
*-inversesN/A
*-rgt-identityN/A
sinh-lowering-sinh.f6474.8%
Applied egg-rr74.8%
if 1.75000000000000011e45 < y Initial program 100.0%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6480.0%
Simplified80.0%
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-*.f6477.9%
Simplified77.9%
(FPCore (x y)
:precision binary64
(if (<= y 9.5e-5)
(/ x (* (- 1.0 (* -0.16666666666666666 (* x x))) (/ x y)))
(if (<= y 1.1e+45)
(sinh y)
(/
(*
(* x (+ 1.0 (* x (* x -0.16666666666666666))))
(*
y
(+
1.0
(*
y
(* y (+ 0.16666666666666666 (* (* y y) 0.008333333333333333)))))))
x))))
double code(double x, double y) {
double tmp;
if (y <= 9.5e-5) {
tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y));
} else if (y <= 1.1e+45) {
tmp = sinh(y);
} else {
tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x;
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 9.5d-5) then
tmp = x / ((1.0d0 - ((-0.16666666666666666d0) * (x * x))) * (x / y))
else if (y <= 1.1d+45) then
tmp = sinh(y)
else
tmp = ((x * (1.0d0 + (x * (x * (-0.16666666666666666d0))))) * (y * (1.0d0 + (y * (y * (0.16666666666666666d0 + ((y * y) * 0.008333333333333333d0))))))) / x
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 9.5e-5) {
tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y));
} else if (y <= 1.1e+45) {
tmp = Math.sinh(y);
} else {
tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x;
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 9.5e-5: tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y)) elif y <= 1.1e+45: tmp = math.sinh(y) else: tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x return tmp
function code(x, y) tmp = 0.0 if (y <= 9.5e-5) tmp = Float64(x / Float64(Float64(1.0 - Float64(-0.16666666666666666 * Float64(x * x))) * Float64(x / y))); elseif (y <= 1.1e+45) tmp = sinh(y); else tmp = Float64(Float64(Float64(x * Float64(1.0 + Float64(x * Float64(x * -0.16666666666666666)))) * Float64(y * Float64(1.0 + Float64(y * Float64(y * Float64(0.16666666666666666 + Float64(Float64(y * y) * 0.008333333333333333))))))) / x); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 9.5e-5) tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y)); elseif (y <= 1.1e+45) tmp = sinh(y); else tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x; end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 9.5e-5], N[(x / N[(N[(1.0 - N[(-0.16666666666666666 * N[(x * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.1e+45], N[Sinh[y], $MachinePrecision], N[(N[(N[(x * N[(1.0 + N[(x * N[(x * -0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 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]), $MachinePrecision] / x), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 9.5 \cdot 10^{-5}:\\
\;\;\;\;\frac{x}{\left(1 - -0.16666666666666666 \cdot \left(x \cdot x\right)\right) \cdot \frac{x}{y}}\\
\mathbf{elif}\;y \leq 1.1 \cdot 10^{+45}:\\
\;\;\;\;\sinh y\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(x \cdot \left(1 + x \cdot \left(x \cdot -0.16666666666666666\right)\right)\right) \cdot \left(y \cdot \left(1 + y \cdot \left(y \cdot \left(0.16666666666666666 + \left(y \cdot y\right) \cdot 0.008333333333333333\right)\right)\right)\right)}{x}\\
\end{array}
\end{array}
if y < 9.5000000000000005e-5Initial program 86.7%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6446.6%
Simplified46.6%
Taylor expanded in y around 0
Simplified31.7%
associate-/l*N/A
*-commutativeN/A
flip-+N/A
associate-*l/N/A
clear-numN/A
frac-timesN/A
/-lowering-/.f64N/A
Applied egg-rr44.5%
Taylor expanded in x around 0
Simplified59.6%
if 9.5000000000000005e-5 < y < 1.1e45Initial program 99.8%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.8%
Simplified99.8%
Taylor expanded in x around 0
Simplified74.8%
*-commutativeN/A
associate-*l/N/A
associate-/l*N/A
*-inversesN/A
*-rgt-identityN/A
sinh-lowering-sinh.f6474.8%
Applied egg-rr74.8%
if 1.1e45 < y Initial program 100.0%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6480.0%
Simplified80.0%
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-*.f6477.9%
Simplified77.9%
(FPCore (x y)
:precision binary64
(if (<= y 1.1e+45)
(* x (/ (sinh y) x))
(/
(*
(* x (+ 1.0 (* x (* x -0.16666666666666666))))
(*
y
(+
1.0
(* y (* y (+ 0.16666666666666666 (* (* y y) 0.008333333333333333)))))))
x)))
double code(double x, double y) {
double tmp;
if (y <= 1.1e+45) {
tmp = x * (sinh(y) / x);
} else {
tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x;
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 1.1d+45) then
tmp = x * (sinh(y) / x)
else
tmp = ((x * (1.0d0 + (x * (x * (-0.16666666666666666d0))))) * (y * (1.0d0 + (y * (y * (0.16666666666666666d0 + ((y * y) * 0.008333333333333333d0))))))) / x
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 1.1e+45) {
tmp = x * (Math.sinh(y) / x);
} else {
tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x;
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 1.1e+45: tmp = x * (math.sinh(y) / x) else: tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x return tmp
function code(x, y) tmp = 0.0 if (y <= 1.1e+45) tmp = Float64(x * Float64(sinh(y) / x)); else tmp = Float64(Float64(Float64(x * Float64(1.0 + Float64(x * Float64(x * -0.16666666666666666)))) * Float64(y * Float64(1.0 + Float64(y * Float64(y * Float64(0.16666666666666666 + Float64(Float64(y * y) * 0.008333333333333333))))))) / x); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 1.1e+45) tmp = x * (sinh(y) / x); else tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x; end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 1.1e+45], N[(x * N[(N[Sinh[y], $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision], N[(N[(N[(x * N[(1.0 + N[(x * N[(x * -0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 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]), $MachinePrecision] / x), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 1.1 \cdot 10^{+45}:\\
\;\;\;\;x \cdot \frac{\sinh y}{x}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(x \cdot \left(1 + x \cdot \left(x \cdot -0.16666666666666666\right)\right)\right) \cdot \left(y \cdot \left(1 + y \cdot \left(y \cdot \left(0.16666666666666666 + \left(y \cdot y\right) \cdot 0.008333333333333333\right)\right)\right)\right)}{x}\\
\end{array}
\end{array}
if y < 1.1e45Initial program 87.2%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.8%
Simplified99.8%
Taylor expanded in x around 0
Simplified74.3%
if 1.1e45 < y Initial program 100.0%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6480.0%
Simplified80.0%
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-*.f6477.9%
Simplified77.9%
(FPCore (x y)
:precision binary64
(if (<= y 3.9e-23)
(/ x (* (- 1.0 (* -0.16666666666666666 (* x x))) (/ x y)))
(/
(*
(* x (+ 1.0 (* x (* x -0.16666666666666666))))
(*
y
(+
1.0
(* y (* y (+ 0.16666666666666666 (* (* y y) 0.008333333333333333)))))))
x)))
double code(double x, double y) {
double tmp;
if (y <= 3.9e-23) {
tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y));
} else {
tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x;
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 3.9d-23) then
tmp = x / ((1.0d0 - ((-0.16666666666666666d0) * (x * x))) * (x / y))
else
tmp = ((x * (1.0d0 + (x * (x * (-0.16666666666666666d0))))) * (y * (1.0d0 + (y * (y * (0.16666666666666666d0 + ((y * y) * 0.008333333333333333d0))))))) / x
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 3.9e-23) {
tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y));
} else {
tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x;
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 3.9e-23: tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y)) else: tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x return tmp
function code(x, y) tmp = 0.0 if (y <= 3.9e-23) tmp = Float64(x / Float64(Float64(1.0 - Float64(-0.16666666666666666 * Float64(x * x))) * Float64(x / y))); else tmp = Float64(Float64(Float64(x * Float64(1.0 + Float64(x * Float64(x * -0.16666666666666666)))) * Float64(y * Float64(1.0 + Float64(y * Float64(y * Float64(0.16666666666666666 + Float64(Float64(y * y) * 0.008333333333333333))))))) / x); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 3.9e-23) tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y)); else tmp = ((x * (1.0 + (x * (x * -0.16666666666666666)))) * (y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))))) / x; end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 3.9e-23], N[(x / N[(N[(1.0 - N[(-0.16666666666666666 * N[(x * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(x * N[(1.0 + N[(x * N[(x * -0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 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]), $MachinePrecision] / x), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 3.9 \cdot 10^{-23}:\\
\;\;\;\;\frac{x}{\left(1 - -0.16666666666666666 \cdot \left(x \cdot x\right)\right) \cdot \frac{x}{y}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(x \cdot \left(1 + x \cdot \left(x \cdot -0.16666666666666666\right)\right)\right) \cdot \left(y \cdot \left(1 + y \cdot \left(y \cdot \left(0.16666666666666666 + \left(y \cdot y\right) \cdot 0.008333333333333333\right)\right)\right)\right)}{x}\\
\end{array}
\end{array}
if y < 3.9e-23Initial program 86.6%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6446.0%
Simplified46.0%
Taylor expanded in y around 0
Simplified31.0%
associate-/l*N/A
*-commutativeN/A
flip-+N/A
associate-*l/N/A
clear-numN/A
frac-timesN/A
/-lowering-/.f64N/A
Applied egg-rr44.0%
Taylor expanded in x around 0
Simplified59.2%
if 3.9e-23 < y Initial program 100.0%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6478.2%
Simplified78.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.8%
Simplified71.8%
(FPCore (x y)
:precision binary64
(if (<= y 9.2e-24)
(/ x (* (- 1.0 (* -0.16666666666666666 (* x x))) (/ x y)))
(if (<= y 1.15e+62)
(*
y
(*
(+ 1.0 (* 0.16666666666666666 (* y y)))
(+ 1.0 (* x (* x -0.16666666666666666)))))
(if (<= y 5e+124)
(*
y
(+
1.0
(* y (* y (+ 0.16666666666666666 (* (* y y) 0.008333333333333333))))))
(*
y
(*
(* y y)
(+ 0.16666666666666666 (* (* x x) -0.027777777777777776))))))))
double code(double x, double y) {
double tmp;
if (y <= 9.2e-24) {
tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y));
} else if (y <= 1.15e+62) {
tmp = y * ((1.0 + (0.16666666666666666 * (y * y))) * (1.0 + (x * (x * -0.16666666666666666))));
} else if (y <= 5e+124) {
tmp = y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333)))));
} 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 <= 9.2d-24) then
tmp = x / ((1.0d0 - ((-0.16666666666666666d0) * (x * x))) * (x / y))
else if (y <= 1.15d+62) then
tmp = y * ((1.0d0 + (0.16666666666666666d0 * (y * y))) * (1.0d0 + (x * (x * (-0.16666666666666666d0)))))
else if (y <= 5d+124) then
tmp = y * (1.0d0 + (y * (y * (0.16666666666666666d0 + ((y * y) * 0.008333333333333333d0)))))
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 <= 9.2e-24) {
tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y));
} else if (y <= 1.15e+62) {
tmp = y * ((1.0 + (0.16666666666666666 * (y * y))) * (1.0 + (x * (x * -0.16666666666666666))));
} else if (y <= 5e+124) {
tmp = y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333)))));
} else {
tmp = y * ((y * y) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)));
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 9.2e-24: tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y)) elif y <= 1.15e+62: tmp = y * ((1.0 + (0.16666666666666666 * (y * y))) * (1.0 + (x * (x * -0.16666666666666666)))) elif y <= 5e+124: tmp = y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))) else: tmp = y * ((y * y) * (0.16666666666666666 + ((x * x) * -0.027777777777777776))) return tmp
function code(x, y) tmp = 0.0 if (y <= 9.2e-24) tmp = Float64(x / Float64(Float64(1.0 - Float64(-0.16666666666666666 * Float64(x * x))) * Float64(x / y))); elseif (y <= 1.15e+62) tmp = Float64(y * Float64(Float64(1.0 + Float64(0.16666666666666666 * Float64(y * y))) * Float64(1.0 + Float64(x * Float64(x * -0.16666666666666666))))); elseif (y <= 5e+124) tmp = Float64(y * Float64(1.0 + Float64(y * Float64(y * Float64(0.16666666666666666 + Float64(Float64(y * y) * 0.008333333333333333)))))); else tmp = Float64(y * Float64(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 <= 9.2e-24) tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y)); elseif (y <= 1.15e+62) tmp = y * ((1.0 + (0.16666666666666666 * (y * y))) * (1.0 + (x * (x * -0.16666666666666666)))); elseif (y <= 5e+124) tmp = y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))); else tmp = y * ((y * y) * (0.16666666666666666 + ((x * x) * -0.027777777777777776))); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 9.2e-24], N[(x / N[(N[(1.0 - N[(-0.16666666666666666 * N[(x * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.15e+62], N[(y * N[(N[(1.0 + N[(0.16666666666666666 * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(1.0 + N[(x * N[(x * -0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 5e+124], 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], N[(y * N[(N[(y * y), $MachinePrecision] * N[(0.16666666666666666 + N[(N[(x * x), $MachinePrecision] * -0.027777777777777776), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 9.2 \cdot 10^{-24}:\\
\;\;\;\;\frac{x}{\left(1 - -0.16666666666666666 \cdot \left(x \cdot x\right)\right) \cdot \frac{x}{y}}\\
\mathbf{elif}\;y \leq 1.15 \cdot 10^{+62}:\\
\;\;\;\;y \cdot \left(\left(1 + 0.16666666666666666 \cdot \left(y \cdot y\right)\right) \cdot \left(1 + x \cdot \left(x \cdot -0.16666666666666666\right)\right)\right)\\
\mathbf{elif}\;y \leq 5 \cdot 10^{+124}:\\
\;\;\;\;y \cdot \left(1 + y \cdot \left(y \cdot \left(0.16666666666666666 + \left(y \cdot y\right) \cdot 0.008333333333333333\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(\left(y \cdot y\right) \cdot \left(0.16666666666666666 + \left(x \cdot x\right) \cdot -0.027777777777777776\right)\right)\\
\end{array}
\end{array}
if y < 9.2000000000000004e-24Initial program 86.6%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6446.0%
Simplified46.0%
Taylor expanded in y around 0
Simplified31.0%
associate-/l*N/A
*-commutativeN/A
flip-+N/A
associate-*l/N/A
clear-numN/A
frac-timesN/A
/-lowering-/.f64N/A
Applied egg-rr44.0%
Taylor expanded in x around 0
Simplified59.2%
if 9.2000000000000004e-24 < y < 1.14999999999999992e62Initial program 99.9%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6474.9%
Simplified74.9%
Taylor expanded in y around 0
associate-+r+N/A
distribute-rgt-inN/A
*-commutativeN/A
associate-*r*N/A
distribute-rgt-inN/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
distribute-rgt1-inN/A
+-commutativeN/A
Simplified29.3%
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6429.3%
Applied egg-rr29.3%
if 1.14999999999999992e62 < y < 4.9999999999999996e124Initial 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.6%
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.6%
Simplified78.6%
if 4.9999999999999996e124 < y Initial program 100.0%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6486.2%
Simplified86.2%
Taylor expanded in y around 0
associate-+r+N/A
distribute-rgt-inN/A
*-commutativeN/A
associate-*r*N/A
distribute-rgt-inN/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
distribute-rgt1-inN/A
+-commutativeN/A
Simplified86.2%
Taylor expanded in y around inf
associate-*r*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
distribute-lft-inN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6486.2%
Simplified86.2%
Final simplification61.9%
(FPCore (x y)
:precision binary64
(let* ((t_0
(*
y
(*
(* y y)
(+ 0.16666666666666666 (* (* x x) -0.027777777777777776))))))
(if (<= y 6.4e+16)
(/ x (* (- 1.0 (* -0.16666666666666666 (* x x))) (/ x y)))
(if (<= y 1.15e+62)
t_0
(if (<= y 5e+124)
(*
y
(+
1.0
(*
y
(* y (+ 0.16666666666666666 (* (* y y) 0.008333333333333333))))))
t_0)))))
double code(double x, double y) {
double t_0 = y * ((y * y) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)));
double tmp;
if (y <= 6.4e+16) {
tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y));
} else if (y <= 1.15e+62) {
tmp = t_0;
} else if (y <= 5e+124) {
tmp = y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333)))));
} 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 * ((y * y) * (0.16666666666666666d0 + ((x * x) * (-0.027777777777777776d0))))
if (y <= 6.4d+16) then
tmp = x / ((1.0d0 - ((-0.16666666666666666d0) * (x * x))) * (x / y))
else if (y <= 1.15d+62) then
tmp = t_0
else if (y <= 5d+124) then
tmp = y * (1.0d0 + (y * (y * (0.16666666666666666d0 + ((y * y) * 0.008333333333333333d0)))))
else
tmp = t_0
end if
code = tmp
end function
public static double code(double x, double y) {
double t_0 = y * ((y * y) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)));
double tmp;
if (y <= 6.4e+16) {
tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y));
} else if (y <= 1.15e+62) {
tmp = t_0;
} else if (y <= 5e+124) {
tmp = y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333)))));
} else {
tmp = t_0;
}
return tmp;
}
def code(x, y): t_0 = y * ((y * y) * (0.16666666666666666 + ((x * x) * -0.027777777777777776))) tmp = 0 if y <= 6.4e+16: tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y)) elif y <= 1.15e+62: tmp = t_0 elif y <= 5e+124: tmp = y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))) else: tmp = t_0 return tmp
function code(x, y) t_0 = Float64(y * Float64(Float64(y * y) * Float64(0.16666666666666666 + Float64(Float64(x * x) * -0.027777777777777776)))) tmp = 0.0 if (y <= 6.4e+16) tmp = Float64(x / Float64(Float64(1.0 - Float64(-0.16666666666666666 * Float64(x * x))) * Float64(x / y))); elseif (y <= 1.15e+62) tmp = t_0; elseif (y <= 5e+124) tmp = Float64(y * Float64(1.0 + Float64(y * Float64(y * Float64(0.16666666666666666 + Float64(Float64(y * y) * 0.008333333333333333)))))); else tmp = t_0; end return tmp end
function tmp_2 = code(x, y) t_0 = y * ((y * y) * (0.16666666666666666 + ((x * x) * -0.027777777777777776))); tmp = 0.0; if (y <= 6.4e+16) tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y)); elseif (y <= 1.15e+62) tmp = t_0; elseif (y <= 5e+124) tmp = y * (1.0 + (y * (y * (0.16666666666666666 + ((y * y) * 0.008333333333333333))))); else tmp = t_0; end tmp_2 = tmp; end
code[x_, y_] := Block[{t$95$0 = N[(y * N[(N[(y * y), $MachinePrecision] * N[(0.16666666666666666 + N[(N[(x * x), $MachinePrecision] * -0.027777777777777776), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[y, 6.4e+16], N[(x / N[(N[(1.0 - N[(-0.16666666666666666 * N[(x * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.15e+62], t$95$0, If[LessEqual[y, 5e+124], 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], t$95$0]]]]
\begin{array}{l}
\\
\begin{array}{l}
t_0 := y \cdot \left(\left(y \cdot y\right) \cdot \left(0.16666666666666666 + \left(x \cdot x\right) \cdot -0.027777777777777776\right)\right)\\
\mathbf{if}\;y \leq 6.4 \cdot 10^{+16}:\\
\;\;\;\;\frac{x}{\left(1 - -0.16666666666666666 \cdot \left(x \cdot x\right)\right) \cdot \frac{x}{y}}\\
\mathbf{elif}\;y \leq 1.15 \cdot 10^{+62}:\\
\;\;\;\;t\_0\\
\mathbf{elif}\;y \leq 5 \cdot 10^{+124}:\\
\;\;\;\;y \cdot \left(1 + y \cdot \left(y \cdot \left(0.16666666666666666 + \left(y \cdot y\right) \cdot 0.008333333333333333\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_0\\
\end{array}
\end{array}
if y < 6.4e16Initial program 87.0%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6447.1%
Simplified47.1%
Taylor expanded in y around 0
Simplified31.2%
associate-/l*N/A
*-commutativeN/A
flip-+N/A
associate-*l/N/A
clear-numN/A
frac-timesN/A
/-lowering-/.f64N/A
Applied egg-rr43.8%
Taylor expanded in x around 0
Simplified58.6%
if 6.4e16 < y < 1.14999999999999992e62 or 4.9999999999999996e124 < y Initial program 100.0%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6482.9%
Simplified82.9%
Taylor expanded in y around 0
associate-+r+N/A
distribute-rgt-inN/A
*-commutativeN/A
associate-*r*N/A
distribute-rgt-inN/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
distribute-rgt1-inN/A
+-commutativeN/A
Simplified74.8%
Taylor expanded in y around inf
associate-*r*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
distribute-lft-inN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6474.8%
Simplified74.8%
if 1.14999999999999992e62 < y < 4.9999999999999996e124Initial 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.6%
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.6%
Simplified78.6%
(FPCore (x y)
:precision binary64
(if (<= y 5e+127)
(*
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 <= 5e+127) {
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 <= 5d+127) 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 <= 5e+127) {
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 <= 5e+127: 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 <= 5e+127) tmp = Float64(x * Float64(y * Float64(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(y * Float64(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 <= 5e+127) 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, 5e+127], N[(x * N[(y * N[(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] / x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(N[(y * y), $MachinePrecision] * N[(0.16666666666666666 + N[(N[(x * x), $MachinePrecision] * -0.027777777777777776), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 5 \cdot 10^{+127}:\\
\;\;\;\;x \cdot \left(y \cdot \frac{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)}{x}\right)\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(\left(y \cdot y\right) \cdot \left(0.16666666666666666 + \left(x \cdot x\right) \cdot -0.027777777777777776\right)\right)\\
\end{array}
\end{array}
if y < 5.0000000000000004e127Initial program 88.1%
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
Simplified74.4%
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
*-lowering-*.f64N/A
Simplified70.3%
Taylor expanded in x around 0
/-lowering-/.f64N/A
Simplified70.3%
if 5.0000000000000004e127 < y Initial program 100.0%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6486.2%
Simplified86.2%
Taylor expanded in y around 0
associate-+r+N/A
distribute-rgt-inN/A
*-commutativeN/A
associate-*r*N/A
distribute-rgt-inN/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
distribute-rgt1-inN/A
+-commutativeN/A
Simplified86.2%
Taylor expanded in y around inf
associate-*r*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
distribute-lft-inN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6486.2%
Simplified86.2%
(FPCore (x y)
:precision binary64
(if (<= y 5e+127)
(*
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 <= 5e+127) {
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 <= 5d+127) 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 <= 5e+127) {
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 <= 5e+127: 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 <= 5e+127) 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(y * Float64(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 <= 5e+127) 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, 5e+127], 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[(y * N[(N[(y * y), $MachinePrecision] * N[(0.16666666666666666 + N[(N[(x * x), $MachinePrecision] * -0.027777777777777776), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 5 \cdot 10^{+127}:\\
\;\;\;\;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}:\\
\;\;\;\;y \cdot \left(\left(y \cdot y\right) \cdot \left(0.16666666666666666 + \left(x \cdot x\right) \cdot -0.027777777777777776\right)\right)\\
\end{array}
\end{array}
if y < 5.0000000000000004e127Initial program 88.1%
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
Simplified74.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-*.f6470.3%
Simplified70.3%
if 5.0000000000000004e127 < y Initial program 100.0%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6486.2%
Simplified86.2%
Taylor expanded in y around 0
associate-+r+N/A
distribute-rgt-inN/A
*-commutativeN/A
associate-*r*N/A
distribute-rgt-inN/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
distribute-rgt1-inN/A
+-commutativeN/A
Simplified86.2%
Taylor expanded in y around inf
associate-*r*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
distribute-lft-inN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6486.2%
Simplified86.2%
(FPCore (x y)
:precision binary64
(if (<= y 6.7e+16)
(/ x (/ x y))
(if (<= y 4.4e+97)
(* y (+ 1.0 (* -0.16666666666666666 (* x x))))
(* 0.16666666666666666 (* y (* y y))))))
double code(double x, double y) {
double tmp;
if (y <= 6.7e+16) {
tmp = x / (x / y);
} else if (y <= 4.4e+97) {
tmp = y * (1.0 + (-0.16666666666666666 * (x * x)));
} else {
tmp = 0.16666666666666666 * (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 <= 6.7d+16) then
tmp = x / (x / y)
else if (y <= 4.4d+97) then
tmp = y * (1.0d0 + ((-0.16666666666666666d0) * (x * x)))
else
tmp = 0.16666666666666666d0 * (y * (y * y))
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 6.7e+16) {
tmp = x / (x / y);
} else if (y <= 4.4e+97) {
tmp = y * (1.0 + (-0.16666666666666666 * (x * x)));
} else {
tmp = 0.16666666666666666 * (y * (y * y));
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 6.7e+16: tmp = x / (x / y) elif y <= 4.4e+97: tmp = y * (1.0 + (-0.16666666666666666 * (x * x))) else: tmp = 0.16666666666666666 * (y * (y * y)) return tmp
function code(x, y) tmp = 0.0 if (y <= 6.7e+16) tmp = Float64(x / Float64(x / y)); elseif (y <= 4.4e+97) tmp = Float64(y * Float64(1.0 + Float64(-0.16666666666666666 * Float64(x * x)))); else tmp = Float64(0.16666666666666666 * Float64(y * Float64(y * y))); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 6.7e+16) tmp = x / (x / y); elseif (y <= 4.4e+97) tmp = y * (1.0 + (-0.16666666666666666 * (x * x))); else tmp = 0.16666666666666666 * (y * (y * y)); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 6.7e+16], N[(x / N[(x / y), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 4.4e+97], N[(y * N[(1.0 + N[(-0.16666666666666666 * N[(x * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(0.16666666666666666 * N[(y * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 6.7 \cdot 10^{+16}:\\
\;\;\;\;\frac{x}{\frac{x}{y}}\\
\mathbf{elif}\;y \leq 4.4 \cdot 10^{+97}:\\
\;\;\;\;y \cdot \left(1 + -0.16666666666666666 \cdot \left(x \cdot x\right)\right)\\
\mathbf{else}:\\
\;\;\;\;0.16666666666666666 \cdot \left(y \cdot \left(y \cdot y\right)\right)\\
\end{array}
\end{array}
if y < 6.7e16Initial program 87.0%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.8%
Simplified99.8%
Taylor expanded in x around 0
Simplified74.8%
Taylor expanded in y around 0
/-lowering-/.f6458.3%
Simplified58.3%
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
/-lowering-/.f6458.4%
Applied egg-rr58.4%
if 6.7e16 < y < 4.4000000000000002e97Initial program 100.0%
Taylor expanded in y around 0
Simplified3.0%
Taylor expanded in x around 0
*-lft-identityN/A
associate-*r*N/A
distribute-rgt-inN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6423.5%
Simplified23.5%
if 4.4000000000000002e97 < 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
Simplified68.6%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6466.4%
Simplified66.4%
Taylor expanded in y around inf
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6466.0%
Simplified66.0%
Final simplification57.6%
(FPCore (x y)
:precision binary64
(if (<= y 6.4e+16)
(/ x (* (- 1.0 (* -0.16666666666666666 (* x x))) (/ x y)))
(*
y
(* (* y y) (+ 0.16666666666666666 (* (* x x) -0.027777777777777776))))))
double code(double x, double y) {
double tmp;
if (y <= 6.4e+16) {
tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / 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 <= 6.4d+16) then
tmp = x / ((1.0d0 - ((-0.16666666666666666d0) * (x * x))) * (x / 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 <= 6.4e+16) {
tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y));
} else {
tmp = y * ((y * y) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)));
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 6.4e+16: tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y)) else: tmp = y * ((y * y) * (0.16666666666666666 + ((x * x) * -0.027777777777777776))) return tmp
function code(x, y) tmp = 0.0 if (y <= 6.4e+16) tmp = Float64(x / Float64(Float64(1.0 - Float64(-0.16666666666666666 * Float64(x * x))) * Float64(x / y))); else tmp = Float64(y * Float64(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 <= 6.4e+16) tmp = x / ((1.0 - (-0.16666666666666666 * (x * x))) * (x / y)); else tmp = y * ((y * y) * (0.16666666666666666 + ((x * x) * -0.027777777777777776))); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 6.4e+16], N[(x / N[(N[(1.0 - N[(-0.16666666666666666 * N[(x * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(x / y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(y * N[(N[(y * y), $MachinePrecision] * N[(0.16666666666666666 + N[(N[(x * x), $MachinePrecision] * -0.027777777777777776), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 6.4 \cdot 10^{+16}:\\
\;\;\;\;\frac{x}{\left(1 - -0.16666666666666666 \cdot \left(x \cdot x\right)\right) \cdot \frac{x}{y}}\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(\left(y \cdot y\right) \cdot \left(0.16666666666666666 + \left(x \cdot x\right) \cdot -0.027777777777777776\right)\right)\\
\end{array}
\end{array}
if y < 6.4e16Initial program 87.0%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6447.1%
Simplified47.1%
Taylor expanded in y around 0
Simplified31.2%
associate-/l*N/A
*-commutativeN/A
flip-+N/A
associate-*l/N/A
clear-numN/A
frac-timesN/A
/-lowering-/.f64N/A
Applied egg-rr43.8%
Taylor expanded in x around 0
Simplified58.6%
if 6.4e16 < y Initial program 100.0%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6477.6%
Simplified77.6%
Taylor expanded in y around 0
associate-+r+N/A
distribute-rgt-inN/A
*-commutativeN/A
associate-*r*N/A
distribute-rgt-inN/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
distribute-rgt1-inN/A
+-commutativeN/A
Simplified62.4%
Taylor expanded in y around inf
associate-*r*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
distribute-lft-inN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6462.4%
Simplified62.4%
(FPCore (x y)
:precision binary64
(if (<= y 6.4e+16)
(/ x (/ x y))
(*
y
(* (* y y) (+ 0.16666666666666666 (* (* x x) -0.027777777777777776))))))
double code(double x, double y) {
double tmp;
if (y <= 6.4e+16) {
tmp = x / (x / 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 <= 6.4d+16) then
tmp = x / (x / 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 <= 6.4e+16) {
tmp = x / (x / y);
} else {
tmp = y * ((y * y) * (0.16666666666666666 + ((x * x) * -0.027777777777777776)));
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 6.4e+16: tmp = x / (x / y) else: tmp = y * ((y * y) * (0.16666666666666666 + ((x * x) * -0.027777777777777776))) return tmp
function code(x, y) tmp = 0.0 if (y <= 6.4e+16) tmp = Float64(x / Float64(x / y)); else tmp = Float64(y * Float64(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 <= 6.4e+16) tmp = x / (x / y); else tmp = y * ((y * y) * (0.16666666666666666 + ((x * x) * -0.027777777777777776))); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 6.4e+16], N[(x / N[(x / y), $MachinePrecision]), $MachinePrecision], N[(y * N[(N[(y * y), $MachinePrecision] * N[(0.16666666666666666 + N[(N[(x * x), $MachinePrecision] * -0.027777777777777776), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 6.4 \cdot 10^{+16}:\\
\;\;\;\;\frac{x}{\frac{x}{y}}\\
\mathbf{else}:\\
\;\;\;\;y \cdot \left(\left(y \cdot y\right) \cdot \left(0.16666666666666666 + \left(x \cdot x\right) \cdot -0.027777777777777776\right)\right)\\
\end{array}
\end{array}
if y < 6.4e16Initial program 87.0%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.8%
Simplified99.8%
Taylor expanded in x around 0
Simplified74.8%
Taylor expanded in y around 0
/-lowering-/.f6458.3%
Simplified58.3%
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
/-lowering-/.f6458.4%
Applied egg-rr58.4%
if 6.4e16 < y Initial program 100.0%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6477.6%
Simplified77.6%
Taylor expanded in y around 0
associate-+r+N/A
distribute-rgt-inN/A
*-commutativeN/A
associate-*r*N/A
distribute-rgt-inN/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
distribute-rgt1-inN/A
+-commutativeN/A
Simplified62.4%
Taylor expanded in y around inf
associate-*r*N/A
*-commutativeN/A
associate-*l*N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
distribute-lft-inN/A
metadata-evalN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-commutativeN/A
associate-*l*N/A
metadata-evalN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6462.4%
Simplified62.4%
(FPCore (x y)
:precision binary64
(if (<= y 6.4e+16)
(/ x (/ x y))
(if (<= y 3.8e+97)
(* -0.16666666666666666 (* y (* x x)))
(* 0.16666666666666666 (* y (* y y))))))
double code(double x, double y) {
double tmp;
if (y <= 6.4e+16) {
tmp = x / (x / y);
} else if (y <= 3.8e+97) {
tmp = -0.16666666666666666 * (y * (x * x));
} else {
tmp = 0.16666666666666666 * (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 <= 6.4d+16) then
tmp = x / (x / y)
else if (y <= 3.8d+97) then
tmp = (-0.16666666666666666d0) * (y * (x * x))
else
tmp = 0.16666666666666666d0 * (y * (y * y))
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 6.4e+16) {
tmp = x / (x / y);
} else if (y <= 3.8e+97) {
tmp = -0.16666666666666666 * (y * (x * x));
} else {
tmp = 0.16666666666666666 * (y * (y * y));
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 6.4e+16: tmp = x / (x / y) elif y <= 3.8e+97: tmp = -0.16666666666666666 * (y * (x * x)) else: tmp = 0.16666666666666666 * (y * (y * y)) return tmp
function code(x, y) tmp = 0.0 if (y <= 6.4e+16) tmp = Float64(x / Float64(x / y)); elseif (y <= 3.8e+97) tmp = Float64(-0.16666666666666666 * Float64(y * Float64(x * x))); else tmp = Float64(0.16666666666666666 * Float64(y * Float64(y * y))); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 6.4e+16) tmp = x / (x / y); elseif (y <= 3.8e+97) tmp = -0.16666666666666666 * (y * (x * x)); else tmp = 0.16666666666666666 * (y * (y * y)); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 6.4e+16], N[(x / N[(x / y), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 3.8e+97], N[(-0.16666666666666666 * N[(y * N[(x * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(0.16666666666666666 * N[(y * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 6.4 \cdot 10^{+16}:\\
\;\;\;\;\frac{x}{\frac{x}{y}}\\
\mathbf{elif}\;y \leq 3.8 \cdot 10^{+97}:\\
\;\;\;\;-0.16666666666666666 \cdot \left(y \cdot \left(x \cdot x\right)\right)\\
\mathbf{else}:\\
\;\;\;\;0.16666666666666666 \cdot \left(y \cdot \left(y \cdot y\right)\right)\\
\end{array}
\end{array}
if y < 6.4e16Initial program 87.0%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.8%
Simplified99.8%
Taylor expanded in x around 0
Simplified74.8%
Taylor expanded in y around 0
/-lowering-/.f6458.3%
Simplified58.3%
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
/-lowering-/.f6458.4%
Applied egg-rr58.4%
if 6.4e16 < y < 3.80000000000000036e97Initial program 100.0%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6471.4%
Simplified71.4%
Taylor expanded in y around 0
Simplified23.5%
Taylor expanded in x around inf
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6422.6%
Simplified22.6%
if 3.80000000000000036e97 < 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
Simplified68.6%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6466.4%
Simplified66.4%
Taylor expanded in y around inf
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6466.0%
Simplified66.0%
(FPCore (x y) :precision binary64 (if (<= y 6.4e+16) (/ x (/ x y)) (if (<= y 1.8e+184) (* -0.16666666666666666 (* y (* x x))) (* x (/ y x)))))
double code(double x, double y) {
double tmp;
if (y <= 6.4e+16) {
tmp = x / (x / y);
} else if (y <= 1.8e+184) {
tmp = -0.16666666666666666 * (y * (x * x));
} else {
tmp = x * (y / x);
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 6.4d+16) then
tmp = x / (x / y)
else if (y <= 1.8d+184) then
tmp = (-0.16666666666666666d0) * (y * (x * x))
else
tmp = x * (y / x)
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 6.4e+16) {
tmp = x / (x / y);
} else if (y <= 1.8e+184) {
tmp = -0.16666666666666666 * (y * (x * x));
} else {
tmp = x * (y / x);
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 6.4e+16: tmp = x / (x / y) elif y <= 1.8e+184: tmp = -0.16666666666666666 * (y * (x * x)) else: tmp = x * (y / x) return tmp
function code(x, y) tmp = 0.0 if (y <= 6.4e+16) tmp = Float64(x / Float64(x / y)); elseif (y <= 1.8e+184) tmp = Float64(-0.16666666666666666 * Float64(y * Float64(x * x))); else tmp = Float64(x * Float64(y / x)); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 6.4e+16) tmp = x / (x / y); elseif (y <= 1.8e+184) tmp = -0.16666666666666666 * (y * (x * x)); else tmp = x * (y / x); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 6.4e+16], N[(x / N[(x / y), $MachinePrecision]), $MachinePrecision], If[LessEqual[y, 1.8e+184], N[(-0.16666666666666666 * N[(y * N[(x * x), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(x * N[(y / x), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 6.4 \cdot 10^{+16}:\\
\;\;\;\;\frac{x}{\frac{x}{y}}\\
\mathbf{elif}\;y \leq 1.8 \cdot 10^{+184}:\\
\;\;\;\;-0.16666666666666666 \cdot \left(y \cdot \left(x \cdot x\right)\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot \frac{y}{x}\\
\end{array}
\end{array}
if y < 6.4e16Initial program 87.0%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.8%
Simplified99.8%
Taylor expanded in x around 0
Simplified74.8%
Taylor expanded in y around 0
/-lowering-/.f6458.3%
Simplified58.3%
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
/-lowering-/.f6458.4%
Applied egg-rr58.4%
if 6.4e16 < y < 1.80000000000000007e184Initial program 100.0%
Taylor expanded in x around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f6473.3%
Simplified73.3%
Taylor expanded in y around 0
Simplified25.5%
Taylor expanded in x around inf
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6424.1%
Simplified24.1%
if 1.80000000000000007e184 < 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
Simplified63.2%
Taylor expanded in y around 0
/-lowering-/.f6438.6%
Simplified38.6%
(FPCore (x y) :precision binary64 (if (<= y 2.4) (/ x (/ x y)) (* x (/ (* y (* 0.16666666666666666 (* y y))) x))))
double code(double x, double y) {
double tmp;
if (y <= 2.4) {
tmp = x / (x / y);
} else {
tmp = x * ((y * (0.16666666666666666 * (y * y))) / x);
}
return tmp;
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
real(8) :: tmp
if (y <= 2.4d0) then
tmp = x / (x / y)
else
tmp = x * ((y * (0.16666666666666666d0 * (y * y))) / x)
end if
code = tmp
end function
public static double code(double x, double y) {
double tmp;
if (y <= 2.4) {
tmp = x / (x / y);
} else {
tmp = x * ((y * (0.16666666666666666 * (y * y))) / x);
}
return tmp;
}
def code(x, y): tmp = 0 if y <= 2.4: tmp = x / (x / y) else: tmp = x * ((y * (0.16666666666666666 * (y * y))) / x) return tmp
function code(x, y) tmp = 0.0 if (y <= 2.4) tmp = Float64(x / Float64(x / y)); else tmp = Float64(x * Float64(Float64(y * Float64(0.16666666666666666 * Float64(y * y))) / x)); end return tmp end
function tmp_2 = code(x, y) tmp = 0.0; if (y <= 2.4) tmp = x / (x / y); else tmp = x * ((y * (0.16666666666666666 * (y * y))) / x); end tmp_2 = tmp; end
code[x_, y_] := If[LessEqual[y, 2.4], N[(x / N[(x / y), $MachinePrecision]), $MachinePrecision], N[(x * N[(N[(y * N[(0.16666666666666666 * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;y \leq 2.4:\\
\;\;\;\;\frac{x}{\frac{x}{y}}\\
\mathbf{else}:\\
\;\;\;\;x \cdot \frac{y \cdot \left(0.16666666666666666 \cdot \left(y \cdot y\right)\right)}{x}\\
\end{array}
\end{array}
if y < 2.39999999999999991Initial program 86.8%
associate-/l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
sinh-lowering-sinh.f6499.8%
Simplified99.8%
Taylor expanded in x around 0
Simplified74.4%
Taylor expanded in y around 0
/-lowering-/.f6459.1%
Simplified59.1%
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
/-lowering-/.f6459.2%
Applied egg-rr59.2%
if 2.39999999999999991 < 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
Simplified67.3%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6447.6%
Simplified47.6%
Taylor expanded in y around inf
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6447.6%
Simplified47.6%
Final simplification56.9%
(FPCore (x y) :precision binary64 (* x (/ (* y (+ 1.0 (* 0.16666666666666666 (* y y)))) x)))
double code(double x, double y) {
return x * ((y * (1.0 + (0.16666666666666666 * (y * y)))) / x);
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = x * ((y * (1.0d0 + (0.16666666666666666d0 * (y * y)))) / x)
end function
public static double code(double x, double y) {
return x * ((y * (1.0 + (0.16666666666666666 * (y * y)))) / x);
}
def code(x, y): return x * ((y * (1.0 + (0.16666666666666666 * (y * y)))) / x)
function code(x, y) return Float64(x * Float64(Float64(y * Float64(1.0 + Float64(0.16666666666666666 * Float64(y * y)))) / x)) end
function tmp = code(x, y) tmp = x * ((y * (1.0 + (0.16666666666666666 * (y * y)))) / x); end
code[x_, y_] := N[(x * N[(N[(y * N[(1.0 + N[(0.16666666666666666 * N[(y * y), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / x), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
x \cdot \frac{y \cdot \left(1 + 0.16666666666666666 \cdot \left(y \cdot y\right)\right)}{x}
\end{array}
Initial program 89.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
Simplified73.0%
Taylor expanded in y around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6466.1%
Simplified66.1%
(FPCore (x y) :precision binary64 (/ x (/ x y)))
double code(double x, double y) {
return x / (x / y);
}
real(8) function code(x, y)
real(8), intent (in) :: x
real(8), intent (in) :: y
code = x / (x / y)
end function
public static double code(double x, double y) {
return x / (x / y);
}
def code(x, y): return x / (x / y)
function code(x, y) return Float64(x / Float64(x / y)) end
function tmp = code(x, y) tmp = x / (x / y); end
code[x_, y_] := N[(x / N[(x / y), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{x}{\frac{x}{y}}
\end{array}
Initial program 89.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
Simplified73.0%
Taylor expanded in y around 0
/-lowering-/.f6451.1%
Simplified51.1%
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
/-lowering-/.f6451.2%
Applied egg-rr51.2%
(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 89.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
Simplified73.0%
Taylor expanded in y around 0
/-lowering-/.f6451.1%
Simplified51.1%
(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 89.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
Simplified73.0%
Taylor expanded in y around 0
Simplified31.1%
(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 2024161
(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))