
(FPCore (t l k) :precision binary64 (/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (- (+ 1.0 (pow (/ k t) 2.0)) 1.0))))
double code(double t, double l, double k) {
return 2.0 / ((((pow(t, 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + pow((k / t), 2.0)) - 1.0));
}
real(8) function code(t, l, k)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k
code = 2.0d0 / (((((t ** 3.0d0) / (l * l)) * sin(k)) * tan(k)) * ((1.0d0 + ((k / t) ** 2.0d0)) - 1.0d0))
end function
public static double code(double t, double l, double k) {
return 2.0 / ((((Math.pow(t, 3.0) / (l * l)) * Math.sin(k)) * Math.tan(k)) * ((1.0 + Math.pow((k / t), 2.0)) - 1.0));
}
def code(t, l, k): return 2.0 / ((((math.pow(t, 3.0) / (l * l)) * math.sin(k)) * math.tan(k)) * ((1.0 + math.pow((k / t), 2.0)) - 1.0))
function code(t, l, k) return Float64(2.0 / Float64(Float64(Float64(Float64((t ^ 3.0) / Float64(l * l)) * sin(k)) * tan(k)) * Float64(Float64(1.0 + (Float64(k / t) ^ 2.0)) - 1.0))) end
function tmp = code(t, l, k) tmp = 2.0 / (((((t ^ 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + ((k / t) ^ 2.0)) - 1.0)); end
code[t_, l_, k_] := N[(2.0 / N[(N[(N[(N[(N[Power[t, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[(1.0 + N[Power[N[(k / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 16 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (t l k) :precision binary64 (/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (- (+ 1.0 (pow (/ k t) 2.0)) 1.0))))
double code(double t, double l, double k) {
return 2.0 / ((((pow(t, 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + pow((k / t), 2.0)) - 1.0));
}
real(8) function code(t, l, k)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k
code = 2.0d0 / (((((t ** 3.0d0) / (l * l)) * sin(k)) * tan(k)) * ((1.0d0 + ((k / t) ** 2.0d0)) - 1.0d0))
end function
public static double code(double t, double l, double k) {
return 2.0 / ((((Math.pow(t, 3.0) / (l * l)) * Math.sin(k)) * Math.tan(k)) * ((1.0 + Math.pow((k / t), 2.0)) - 1.0));
}
def code(t, l, k): return 2.0 / ((((math.pow(t, 3.0) / (l * l)) * math.sin(k)) * math.tan(k)) * ((1.0 + math.pow((k / t), 2.0)) - 1.0))
function code(t, l, k) return Float64(2.0 / Float64(Float64(Float64(Float64((t ^ 3.0) / Float64(l * l)) * sin(k)) * tan(k)) * Float64(Float64(1.0 + (Float64(k / t) ^ 2.0)) - 1.0))) end
function tmp = code(t, l, k) tmp = 2.0 / (((((t ^ 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + ((k / t) ^ 2.0)) - 1.0)); end
code[t_, l_, k_] := N[(2.0 / N[(N[(N[(N[(N[Power[t, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[(1.0 + N[Power[N[(k / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)}
\end{array}
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (if (<= k_m 1.02e+155) (* (/ (/ 2.0 (* (/ k_m (/ l k_m)) t)) (sin k_m)) (/ l (tan k_m))) (/ (/ (/ l (/ k_m 2.0)) (sin k_m)) (/ (tan k_m) (/ (/ l t) k_m)))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 1.02e+155) {
tmp = ((2.0 / ((k_m / (l / k_m)) * t)) / sin(k_m)) * (l / tan(k_m));
} else {
tmp = ((l / (k_m / 2.0)) / sin(k_m)) / (tan(k_m) / ((l / t) / k_m));
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 1.02d+155) then
tmp = ((2.0d0 / ((k_m / (l / k_m)) * t)) / sin(k_m)) * (l / tan(k_m))
else
tmp = ((l / (k_m / 2.0d0)) / sin(k_m)) / (tan(k_m) / ((l / t) / k_m))
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 1.02e+155) {
tmp = ((2.0 / ((k_m / (l / k_m)) * t)) / Math.sin(k_m)) * (l / Math.tan(k_m));
} else {
tmp = ((l / (k_m / 2.0)) / Math.sin(k_m)) / (Math.tan(k_m) / ((l / t) / k_m));
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): tmp = 0 if k_m <= 1.02e+155: tmp = ((2.0 / ((k_m / (l / k_m)) * t)) / math.sin(k_m)) * (l / math.tan(k_m)) else: tmp = ((l / (k_m / 2.0)) / math.sin(k_m)) / (math.tan(k_m) / ((l / t) / k_m)) return tmp
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 1.02e+155) tmp = Float64(Float64(Float64(2.0 / Float64(Float64(k_m / Float64(l / k_m)) * t)) / sin(k_m)) * Float64(l / tan(k_m))); else tmp = Float64(Float64(Float64(l / Float64(k_m / 2.0)) / sin(k_m)) / Float64(tan(k_m) / Float64(Float64(l / t) / k_m))); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) tmp = 0.0; if (k_m <= 1.02e+155) tmp = ((2.0 / ((k_m / (l / k_m)) * t)) / sin(k_m)) * (l / tan(k_m)); else tmp = ((l / (k_m / 2.0)) / sin(k_m)) / (tan(k_m) / ((l / t) / k_m)); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 1.02e+155], N[(N[(N[(2.0 / N[(N[(k$95$m / N[(l / k$95$m), $MachinePrecision]), $MachinePrecision] * t), $MachinePrecision]), $MachinePrecision] / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision] * N[(l / N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(l / N[(k$95$m / 2.0), $MachinePrecision]), $MachinePrecision] / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision] / N[(N[Tan[k$95$m], $MachinePrecision] / N[(N[(l / t), $MachinePrecision] / k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 1.02 \cdot 10^{+155}:\\
\;\;\;\;\frac{\frac{2}{\frac{k\_m}{\frac{\ell}{k\_m}} \cdot t}}{\sin k\_m} \cdot \frac{\ell}{\tan k\_m}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{\ell}{\frac{k\_m}{2}}}{\sin k\_m}}{\frac{\tan k\_m}{\frac{\frac{\ell}{t}}{k\_m}}}\\
\end{array}
\end{array}
if k < 1.02e155Initial program 34.9%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Simplified75.7%
associate-/l/N/A
associate-/r/N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-inversesN/A
associate-*l*N/A
*-commutativeN/A
times-fracN/A
*-rgt-identityN/A
*-inversesN/A
*-rgt-identityN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
Applied egg-rr89.3%
Taylor expanded in k around 0
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6492.5%
Simplified92.5%
associate-*r/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-/l*N/A
clear-numN/A
metadata-evalN/A
frac-timesN/A
metadata-evalN/A
metadata-evalN/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
clear-numN/A
associate-/r*N/A
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
Applied egg-rr95.0%
if 1.02e155 < k Initial program 25.5%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Simplified58.1%
div-invN/A
clear-numN/A
associate-*l/N/A
div-invN/A
frac-2negN/A
distribute-frac-neg2N/A
/-lowering-/.f64N/A
Applied egg-rr58.9%
associate-/r*N/A
associate-/l/N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f6481.3%
Applied egg-rr81.3%
associate-/r/N/A
associate-*r/N/A
associate-*r/N/A
/-lowering-/.f64N/A
Applied egg-rr92.7%
div-invN/A
frac-timesN/A
*-lft-identityN/A
associate-*l/N/A
/-lowering-/.f64N/A
un-div-invN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
tan-lowering-tan.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f6492.9%
Applied egg-rr92.9%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (if (<= k_m 3.2e-127) (/ -1.0 (/ (tan k_m) (/ -2.0 (/ (* k_m t) (/ l (/ k_m (/ l k_m))))))) (* (/ l (* (sin k_m) (tan k_m))) (/ (/ 2.0 k_m) (* k_m (/ t l))))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 3.2e-127) {
tmp = -1.0 / (tan(k_m) / (-2.0 / ((k_m * t) / (l / (k_m / (l / k_m))))));
} else {
tmp = (l / (sin(k_m) * tan(k_m))) * ((2.0 / k_m) / (k_m * (t / l)));
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 3.2d-127) then
tmp = (-1.0d0) / (tan(k_m) / ((-2.0d0) / ((k_m * t) / (l / (k_m / (l / k_m))))))
else
tmp = (l / (sin(k_m) * tan(k_m))) * ((2.0d0 / k_m) / (k_m * (t / l)))
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 3.2e-127) {
tmp = -1.0 / (Math.tan(k_m) / (-2.0 / ((k_m * t) / (l / (k_m / (l / k_m))))));
} else {
tmp = (l / (Math.sin(k_m) * Math.tan(k_m))) * ((2.0 / k_m) / (k_m * (t / l)));
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): tmp = 0 if k_m <= 3.2e-127: tmp = -1.0 / (math.tan(k_m) / (-2.0 / ((k_m * t) / (l / (k_m / (l / k_m)))))) else: tmp = (l / (math.sin(k_m) * math.tan(k_m))) * ((2.0 / k_m) / (k_m * (t / l))) return tmp
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 3.2e-127) tmp = Float64(-1.0 / Float64(tan(k_m) / Float64(-2.0 / Float64(Float64(k_m * t) / Float64(l / Float64(k_m / Float64(l / k_m))))))); else tmp = Float64(Float64(l / Float64(sin(k_m) * tan(k_m))) * Float64(Float64(2.0 / k_m) / Float64(k_m * Float64(t / l)))); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) tmp = 0.0; if (k_m <= 3.2e-127) tmp = -1.0 / (tan(k_m) / (-2.0 / ((k_m * t) / (l / (k_m / (l / k_m)))))); else tmp = (l / (sin(k_m) * tan(k_m))) * ((2.0 / k_m) / (k_m * (t / l))); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 3.2e-127], N[(-1.0 / N[(N[Tan[k$95$m], $MachinePrecision] / N[(-2.0 / N[(N[(k$95$m * t), $MachinePrecision] / N[(l / N[(k$95$m / N[(l / k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(l / N[(N[Sin[k$95$m], $MachinePrecision] * N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(2.0 / k$95$m), $MachinePrecision] / N[(k$95$m * N[(t / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 3.2 \cdot 10^{-127}:\\
\;\;\;\;\frac{-1}{\frac{\tan k\_m}{\frac{-2}{\frac{k\_m \cdot t}{\frac{\ell}{\frac{k\_m}{\frac{\ell}{k\_m}}}}}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\ell}{\sin k\_m \cdot \tan k\_m} \cdot \frac{\frac{2}{k\_m}}{k\_m \cdot \frac{t}{\ell}}\\
\end{array}
\end{array}
if k < 3.20000000000000017e-127Initial program 37.0%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Simplified76.3%
Taylor expanded in k around 0
associate-*r/N/A
associate-/l/N/A
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6479.6%
Simplified79.6%
Taylor expanded in k around 0
*-lowering-*.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
unpow3N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6474.4%
Simplified74.4%
clear-numN/A
metadata-evalN/A
frac-2negN/A
metadata-evalN/A
metadata-evalN/A
/-lowering-/.f64N/A
frac-2negN/A
distribute-neg-fracN/A
remove-double-negN/A
/-lowering-/.f64N/A
tan-lowering-tan.f64N/A
distribute-lft-neg-inN/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
Applied egg-rr83.6%
if 3.20000000000000017e-127 < k Initial program 28.5%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Simplified69.3%
associate-/l/N/A
associate-/r/N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-inversesN/A
associate-*l*N/A
*-commutativeN/A
times-fracN/A
*-rgt-identityN/A
*-inversesN/A
*-rgt-identityN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
Applied egg-rr82.9%
associate-/r*N/A
associate-/l/N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f6490.6%
Applied egg-rr90.6%
Final simplification86.1%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(let* ((t_1 (/ l (* (sin k_m) (tan k_m)))))
(if (<= k_m 2.6e+153)
(* t_1 (/ (* 2.0 (/ l (* k_m k_m))) t))
(* t_1 (/ (* (/ l t) (/ 2.0 k_m)) k_m)))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double t_1 = l / (sin(k_m) * tan(k_m));
double tmp;
if (k_m <= 2.6e+153) {
tmp = t_1 * ((2.0 * (l / (k_m * k_m))) / t);
} else {
tmp = t_1 * (((l / t) * (2.0 / k_m)) / k_m);
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: t_1
real(8) :: tmp
t_1 = l / (sin(k_m) * tan(k_m))
if (k_m <= 2.6d+153) then
tmp = t_1 * ((2.0d0 * (l / (k_m * k_m))) / t)
else
tmp = t_1 * (((l / t) * (2.0d0 / k_m)) / k_m)
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double t_1 = l / (Math.sin(k_m) * Math.tan(k_m));
double tmp;
if (k_m <= 2.6e+153) {
tmp = t_1 * ((2.0 * (l / (k_m * k_m))) / t);
} else {
tmp = t_1 * (((l / t) * (2.0 / k_m)) / k_m);
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): t_1 = l / (math.sin(k_m) * math.tan(k_m)) tmp = 0 if k_m <= 2.6e+153: tmp = t_1 * ((2.0 * (l / (k_m * k_m))) / t) else: tmp = t_1 * (((l / t) * (2.0 / k_m)) / k_m) return tmp
k_m = abs(k) function code(t, l, k_m) t_1 = Float64(l / Float64(sin(k_m) * tan(k_m))) tmp = 0.0 if (k_m <= 2.6e+153) tmp = Float64(t_1 * Float64(Float64(2.0 * Float64(l / Float64(k_m * k_m))) / t)); else tmp = Float64(t_1 * Float64(Float64(Float64(l / t) * Float64(2.0 / k_m)) / k_m)); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) t_1 = l / (sin(k_m) * tan(k_m)); tmp = 0.0; if (k_m <= 2.6e+153) tmp = t_1 * ((2.0 * (l / (k_m * k_m))) / t); else tmp = t_1 * (((l / t) * (2.0 / k_m)) / k_m); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision]
code[t_, l_, k$95$m_] := Block[{t$95$1 = N[(l / N[(N[Sin[k$95$m], $MachinePrecision] * N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[k$95$m, 2.6e+153], N[(t$95$1 * N[(N[(2.0 * N[(l / N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision], N[(t$95$1 * N[(N[(N[(l / t), $MachinePrecision] * N[(2.0 / k$95$m), $MachinePrecision]), $MachinePrecision] / k$95$m), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
t_1 := \frac{\ell}{\sin k\_m \cdot \tan k\_m}\\
\mathbf{if}\;k\_m \leq 2.6 \cdot 10^{+153}:\\
\;\;\;\;t\_1 \cdot \frac{2 \cdot \frac{\ell}{k\_m \cdot k\_m}}{t}\\
\mathbf{else}:\\
\;\;\;\;t\_1 \cdot \frac{\frac{\ell}{t} \cdot \frac{2}{k\_m}}{k\_m}\\
\end{array}
\end{array}
if k < 2.5999999999999999e153Initial program 35.1%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Simplified76.0%
associate-/l/N/A
associate-/r/N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-inversesN/A
associate-*l*N/A
*-commutativeN/A
times-fracN/A
*-rgt-identityN/A
*-inversesN/A
*-rgt-identityN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
Applied egg-rr89.7%
Taylor expanded in k around 0
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6492.9%
Simplified92.9%
if 2.5999999999999999e153 < k Initial program 24.8%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Simplified56.3%
associate-/l/N/A
associate-/r/N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-inversesN/A
associate-*l*N/A
*-commutativeN/A
times-fracN/A
*-rgt-identityN/A
*-inversesN/A
*-rgt-identityN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
Applied egg-rr57.0%
div-invN/A
associate-/r*N/A
clear-numN/A
associate-*l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f6480.2%
Applied egg-rr80.2%
Final simplification91.5%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (if (<= k_m 3.2e-127) (/ -1.0 (/ (tan k_m) (/ -2.0 (/ (* k_m t) (/ l (/ k_m (/ l k_m))))))) (* (/ l (* (sin k_m) (tan k_m))) (/ (* (/ l t) (/ 2.0 k_m)) k_m))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 3.2e-127) {
tmp = -1.0 / (tan(k_m) / (-2.0 / ((k_m * t) / (l / (k_m / (l / k_m))))));
} else {
tmp = (l / (sin(k_m) * tan(k_m))) * (((l / t) * (2.0 / k_m)) / k_m);
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 3.2d-127) then
tmp = (-1.0d0) / (tan(k_m) / ((-2.0d0) / ((k_m * t) / (l / (k_m / (l / k_m))))))
else
tmp = (l / (sin(k_m) * tan(k_m))) * (((l / t) * (2.0d0 / k_m)) / k_m)
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 3.2e-127) {
tmp = -1.0 / (Math.tan(k_m) / (-2.0 / ((k_m * t) / (l / (k_m / (l / k_m))))));
} else {
tmp = (l / (Math.sin(k_m) * Math.tan(k_m))) * (((l / t) * (2.0 / k_m)) / k_m);
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): tmp = 0 if k_m <= 3.2e-127: tmp = -1.0 / (math.tan(k_m) / (-2.0 / ((k_m * t) / (l / (k_m / (l / k_m)))))) else: tmp = (l / (math.sin(k_m) * math.tan(k_m))) * (((l / t) * (2.0 / k_m)) / k_m) return tmp
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 3.2e-127) tmp = Float64(-1.0 / Float64(tan(k_m) / Float64(-2.0 / Float64(Float64(k_m * t) / Float64(l / Float64(k_m / Float64(l / k_m))))))); else tmp = Float64(Float64(l / Float64(sin(k_m) * tan(k_m))) * Float64(Float64(Float64(l / t) * Float64(2.0 / k_m)) / k_m)); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) tmp = 0.0; if (k_m <= 3.2e-127) tmp = -1.0 / (tan(k_m) / (-2.0 / ((k_m * t) / (l / (k_m / (l / k_m)))))); else tmp = (l / (sin(k_m) * tan(k_m))) * (((l / t) * (2.0 / k_m)) / k_m); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 3.2e-127], N[(-1.0 / N[(N[Tan[k$95$m], $MachinePrecision] / N[(-2.0 / N[(N[(k$95$m * t), $MachinePrecision] / N[(l / N[(k$95$m / N[(l / k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(l / N[(N[Sin[k$95$m], $MachinePrecision] * N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[(l / t), $MachinePrecision] * N[(2.0 / k$95$m), $MachinePrecision]), $MachinePrecision] / k$95$m), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 3.2 \cdot 10^{-127}:\\
\;\;\;\;\frac{-1}{\frac{\tan k\_m}{\frac{-2}{\frac{k\_m \cdot t}{\frac{\ell}{\frac{k\_m}{\frac{\ell}{k\_m}}}}}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\ell}{\sin k\_m \cdot \tan k\_m} \cdot \frac{\frac{\ell}{t} \cdot \frac{2}{k\_m}}{k\_m}\\
\end{array}
\end{array}
if k < 3.20000000000000017e-127Initial program 37.0%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Simplified76.3%
Taylor expanded in k around 0
associate-*r/N/A
associate-/l/N/A
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6479.6%
Simplified79.6%
Taylor expanded in k around 0
*-lowering-*.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
unpow3N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6474.4%
Simplified74.4%
clear-numN/A
metadata-evalN/A
frac-2negN/A
metadata-evalN/A
metadata-evalN/A
/-lowering-/.f64N/A
frac-2negN/A
distribute-neg-fracN/A
remove-double-negN/A
/-lowering-/.f64N/A
tan-lowering-tan.f64N/A
distribute-lft-neg-inN/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
Applied egg-rr83.6%
if 3.20000000000000017e-127 < k Initial program 28.5%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Simplified69.3%
associate-/l/N/A
associate-/r/N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-inversesN/A
associate-*l*N/A
*-commutativeN/A
times-fracN/A
*-rgt-identityN/A
*-inversesN/A
*-rgt-identityN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
Applied egg-rr82.9%
div-invN/A
associate-/r*N/A
clear-numN/A
associate-*l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f6489.5%
Applied egg-rr89.5%
Final simplification85.7%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (* (/ (/ (/ l k_m) (/ t 2.0)) k_m) (/ l (* (sin k_m) (tan k_m)))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
return (((l / k_m) / (t / 2.0)) / k_m) * (l / (sin(k_m) * tan(k_m)));
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
code = (((l / k_m) / (t / 2.0d0)) / k_m) * (l / (sin(k_m) * tan(k_m)))
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
return (((l / k_m) / (t / 2.0)) / k_m) * (l / (Math.sin(k_m) * Math.tan(k_m)));
}
k_m = math.fabs(k) def code(t, l, k_m): return (((l / k_m) / (t / 2.0)) / k_m) * (l / (math.sin(k_m) * math.tan(k_m)))
k_m = abs(k) function code(t, l, k_m) return Float64(Float64(Float64(Float64(l / k_m) / Float64(t / 2.0)) / k_m) * Float64(l / Float64(sin(k_m) * tan(k_m)))) end
k_m = abs(k); function tmp = code(t, l, k_m) tmp = (((l / k_m) / (t / 2.0)) / k_m) * (l / (sin(k_m) * tan(k_m))); end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := N[(N[(N[(N[(l / k$95$m), $MachinePrecision] / N[(t / 2.0), $MachinePrecision]), $MachinePrecision] / k$95$m), $MachinePrecision] * N[(l / N[(N[Sin[k$95$m], $MachinePrecision] * N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
\frac{\frac{\frac{\ell}{k\_m}}{\frac{t}{2}}}{k\_m} \cdot \frac{\ell}{\sin k\_m \cdot \tan k\_m}
\end{array}
Initial program 33.9%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Simplified73.8%
associate-/l/N/A
associate-/r/N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-inversesN/A
associate-*l*N/A
*-commutativeN/A
times-fracN/A
*-rgt-identityN/A
*-inversesN/A
*-rgt-identityN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
Applied egg-rr86.0%
Taylor expanded in k around 0
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6488.9%
Simplified88.9%
associate-/l*N/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f6494.0%
Applied egg-rr94.0%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (* (/ (/ 2.0 (* (/ k_m (/ l k_m)) t)) (sin k_m)) (/ l (tan k_m))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
return ((2.0 / ((k_m / (l / k_m)) * t)) / sin(k_m)) * (l / tan(k_m));
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
code = ((2.0d0 / ((k_m / (l / k_m)) * t)) / sin(k_m)) * (l / tan(k_m))
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
return ((2.0 / ((k_m / (l / k_m)) * t)) / Math.sin(k_m)) * (l / Math.tan(k_m));
}
k_m = math.fabs(k) def code(t, l, k_m): return ((2.0 / ((k_m / (l / k_m)) * t)) / math.sin(k_m)) * (l / math.tan(k_m))
k_m = abs(k) function code(t, l, k_m) return Float64(Float64(Float64(2.0 / Float64(Float64(k_m / Float64(l / k_m)) * t)) / sin(k_m)) * Float64(l / tan(k_m))) end
k_m = abs(k); function tmp = code(t, l, k_m) tmp = ((2.0 / ((k_m / (l / k_m)) * t)) / sin(k_m)) * (l / tan(k_m)); end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := N[(N[(N[(2.0 / N[(N[(k$95$m / N[(l / k$95$m), $MachinePrecision]), $MachinePrecision] * t), $MachinePrecision]), $MachinePrecision] / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision] * N[(l / N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
\frac{\frac{2}{\frac{k\_m}{\frac{\ell}{k\_m}} \cdot t}}{\sin k\_m} \cdot \frac{\ell}{\tan k\_m}
\end{array}
Initial program 33.9%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Simplified73.8%
associate-/l/N/A
associate-/r/N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-inversesN/A
associate-*l*N/A
*-commutativeN/A
times-fracN/A
*-rgt-identityN/A
*-inversesN/A
*-rgt-identityN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
Applied egg-rr86.0%
Taylor expanded in k around 0
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6488.9%
Simplified88.9%
associate-*r/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-/l*N/A
clear-numN/A
metadata-evalN/A
frac-timesN/A
metadata-evalN/A
metadata-evalN/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
clear-numN/A
associate-/r*N/A
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
Applied egg-rr93.0%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(if (<= k_m 200000000000.0)
(/
(/
(+ -1.0 (* (* k_m k_m) 0.3333333333333333))
(/ (/ t (/ (* l (/ -2.0 k_m)) k_m)) (/ l (sin k_m))))
k_m)
(/ (/ 2.0 (* k_m k_m)) (* k_m (/ (/ k_m (/ l t)) l)))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 200000000000.0) {
tmp = ((-1.0 + ((k_m * k_m) * 0.3333333333333333)) / ((t / ((l * (-2.0 / k_m)) / k_m)) / (l / sin(k_m)))) / k_m;
} else {
tmp = (2.0 / (k_m * k_m)) / (k_m * ((k_m / (l / t)) / l));
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 200000000000.0d0) then
tmp = (((-1.0d0) + ((k_m * k_m) * 0.3333333333333333d0)) / ((t / ((l * ((-2.0d0) / k_m)) / k_m)) / (l / sin(k_m)))) / k_m
else
tmp = (2.0d0 / (k_m * k_m)) / (k_m * ((k_m / (l / t)) / l))
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 200000000000.0) {
tmp = ((-1.0 + ((k_m * k_m) * 0.3333333333333333)) / ((t / ((l * (-2.0 / k_m)) / k_m)) / (l / Math.sin(k_m)))) / k_m;
} else {
tmp = (2.0 / (k_m * k_m)) / (k_m * ((k_m / (l / t)) / l));
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): tmp = 0 if k_m <= 200000000000.0: tmp = ((-1.0 + ((k_m * k_m) * 0.3333333333333333)) / ((t / ((l * (-2.0 / k_m)) / k_m)) / (l / math.sin(k_m)))) / k_m else: tmp = (2.0 / (k_m * k_m)) / (k_m * ((k_m / (l / t)) / l)) return tmp
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 200000000000.0) tmp = Float64(Float64(Float64(-1.0 + Float64(Float64(k_m * k_m) * 0.3333333333333333)) / Float64(Float64(t / Float64(Float64(l * Float64(-2.0 / k_m)) / k_m)) / Float64(l / sin(k_m)))) / k_m); else tmp = Float64(Float64(2.0 / Float64(k_m * k_m)) / Float64(k_m * Float64(Float64(k_m / Float64(l / t)) / l))); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) tmp = 0.0; if (k_m <= 200000000000.0) tmp = ((-1.0 + ((k_m * k_m) * 0.3333333333333333)) / ((t / ((l * (-2.0 / k_m)) / k_m)) / (l / sin(k_m)))) / k_m; else tmp = (2.0 / (k_m * k_m)) / (k_m * ((k_m / (l / t)) / l)); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 200000000000.0], N[(N[(N[(-1.0 + N[(N[(k$95$m * k$95$m), $MachinePrecision] * 0.3333333333333333), $MachinePrecision]), $MachinePrecision] / N[(N[(t / N[(N[(l * N[(-2.0 / k$95$m), $MachinePrecision]), $MachinePrecision] / k$95$m), $MachinePrecision]), $MachinePrecision] / N[(l / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / k$95$m), $MachinePrecision], N[(N[(2.0 / N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision] / N[(k$95$m * N[(N[(k$95$m / N[(l / t), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 200000000000:\\
\;\;\;\;\frac{\frac{-1 + \left(k\_m \cdot k\_m\right) \cdot 0.3333333333333333}{\frac{\frac{t}{\frac{\ell \cdot \frac{-2}{k\_m}}{k\_m}}}{\frac{\ell}{\sin k\_m}}}}{k\_m}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{2}{k\_m \cdot k\_m}}{k\_m \cdot \frac{\frac{k\_m}{\frac{\ell}{t}}}{\ell}}\\
\end{array}
\end{array}
if k < 2e11Initial program 37.3%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Simplified77.1%
div-invN/A
clear-numN/A
associate-*l/N/A
div-invN/A
frac-2negN/A
distribute-frac-neg2N/A
/-lowering-/.f64N/A
Applied egg-rr89.2%
Taylor expanded in k around 0
/-lowering-/.f64N/A
sub-negN/A
metadata-evalN/A
+-commutativeN/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6470.7%
Simplified70.7%
div-invN/A
clear-numN/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr75.7%
if 2e11 < k Initial program 23.2%
Taylor expanded in k around 0
associate-/l*N/A
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6444.2%
Simplified44.2%
associate-*l*N/A
associate-*r/N/A
associate-*l/N/A
associate-/l/N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/l/N/A
associate-*l/N/A
associate-*r/N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
clear-numN/A
associate-/r*N/A
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f6448.1%
Applied egg-rr48.1%
remove-double-negN/A
associate-/l*N/A
distribute-rgt-neg-inN/A
distribute-lft-neg-inN/A
*-lowering-*.f64N/A
neg-sub0N/A
--lowering--.f64N/A
neg-sub0N/A
--lowering--.f64N/A
associate-/r/N/A
associate-/r*N/A
un-div-invN/A
clear-numN/A
*-commutativeN/A
/-lowering-/.f64N/A
*-commutativeN/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
/-lowering-/.f6450.0%
Applied egg-rr50.0%
Final simplification69.2%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(if (<= k_m 3.2e-127)
(/ -1.0 (/ (tan k_m) (/ -2.0 (/ (* k_m t) (/ l (/ k_m (/ l k_m)))))))
(if (<= k_m 4.8e+106)
(*
(/ (/ 2.0 (* k_m k_m)) (/ t l))
(/ (* l (+ (* (* k_m k_m) -0.16666666666666666) 1.0)) (* k_m k_m)))
(* (/ (/ l k_m) k_m) (/ (/ 2.0 k_m) (/ k_m (/ l t)))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 3.2e-127) {
tmp = -1.0 / (tan(k_m) / (-2.0 / ((k_m * t) / (l / (k_m / (l / k_m))))));
} else if (k_m <= 4.8e+106) {
tmp = ((2.0 / (k_m * k_m)) / (t / l)) * ((l * (((k_m * k_m) * -0.16666666666666666) + 1.0)) / (k_m * k_m));
} else {
tmp = ((l / k_m) / k_m) * ((2.0 / k_m) / (k_m / (l / t)));
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 3.2d-127) then
tmp = (-1.0d0) / (tan(k_m) / ((-2.0d0) / ((k_m * t) / (l / (k_m / (l / k_m))))))
else if (k_m <= 4.8d+106) then
tmp = ((2.0d0 / (k_m * k_m)) / (t / l)) * ((l * (((k_m * k_m) * (-0.16666666666666666d0)) + 1.0d0)) / (k_m * k_m))
else
tmp = ((l / k_m) / k_m) * ((2.0d0 / k_m) / (k_m / (l / t)))
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 3.2e-127) {
tmp = -1.0 / (Math.tan(k_m) / (-2.0 / ((k_m * t) / (l / (k_m / (l / k_m))))));
} else if (k_m <= 4.8e+106) {
tmp = ((2.0 / (k_m * k_m)) / (t / l)) * ((l * (((k_m * k_m) * -0.16666666666666666) + 1.0)) / (k_m * k_m));
} else {
tmp = ((l / k_m) / k_m) * ((2.0 / k_m) / (k_m / (l / t)));
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): tmp = 0 if k_m <= 3.2e-127: tmp = -1.0 / (math.tan(k_m) / (-2.0 / ((k_m * t) / (l / (k_m / (l / k_m)))))) elif k_m <= 4.8e+106: tmp = ((2.0 / (k_m * k_m)) / (t / l)) * ((l * (((k_m * k_m) * -0.16666666666666666) + 1.0)) / (k_m * k_m)) else: tmp = ((l / k_m) / k_m) * ((2.0 / k_m) / (k_m / (l / t))) return tmp
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 3.2e-127) tmp = Float64(-1.0 / Float64(tan(k_m) / Float64(-2.0 / Float64(Float64(k_m * t) / Float64(l / Float64(k_m / Float64(l / k_m))))))); elseif (k_m <= 4.8e+106) tmp = Float64(Float64(Float64(2.0 / Float64(k_m * k_m)) / Float64(t / l)) * Float64(Float64(l * Float64(Float64(Float64(k_m * k_m) * -0.16666666666666666) + 1.0)) / Float64(k_m * k_m))); else tmp = Float64(Float64(Float64(l / k_m) / k_m) * Float64(Float64(2.0 / k_m) / Float64(k_m / Float64(l / t)))); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) tmp = 0.0; if (k_m <= 3.2e-127) tmp = -1.0 / (tan(k_m) / (-2.0 / ((k_m * t) / (l / (k_m / (l / k_m)))))); elseif (k_m <= 4.8e+106) tmp = ((2.0 / (k_m * k_m)) / (t / l)) * ((l * (((k_m * k_m) * -0.16666666666666666) + 1.0)) / (k_m * k_m)); else tmp = ((l / k_m) / k_m) * ((2.0 / k_m) / (k_m / (l / t))); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 3.2e-127], N[(-1.0 / N[(N[Tan[k$95$m], $MachinePrecision] / N[(-2.0 / N[(N[(k$95$m * t), $MachinePrecision] / N[(l / N[(k$95$m / N[(l / k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k$95$m, 4.8e+106], N[(N[(N[(2.0 / N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision] / N[(t / l), $MachinePrecision]), $MachinePrecision] * N[(N[(l * N[(N[(N[(k$95$m * k$95$m), $MachinePrecision] * -0.16666666666666666), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision] / N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(l / k$95$m), $MachinePrecision] / k$95$m), $MachinePrecision] * N[(N[(2.0 / k$95$m), $MachinePrecision] / N[(k$95$m / N[(l / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 3.2 \cdot 10^{-127}:\\
\;\;\;\;\frac{-1}{\frac{\tan k\_m}{\frac{-2}{\frac{k\_m \cdot t}{\frac{\ell}{\frac{k\_m}{\frac{\ell}{k\_m}}}}}}}\\
\mathbf{elif}\;k\_m \leq 4.8 \cdot 10^{+106}:\\
\;\;\;\;\frac{\frac{2}{k\_m \cdot k\_m}}{\frac{t}{\ell}} \cdot \frac{\ell \cdot \left(\left(k\_m \cdot k\_m\right) \cdot -0.16666666666666666 + 1\right)}{k\_m \cdot k\_m}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\ell}{k\_m}}{k\_m} \cdot \frac{\frac{2}{k\_m}}{\frac{k\_m}{\frac{\ell}{t}}}\\
\end{array}
\end{array}
if k < 3.20000000000000017e-127Initial program 37.0%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Simplified76.3%
Taylor expanded in k around 0
associate-*r/N/A
associate-/l/N/A
associate-*r/N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6479.6%
Simplified79.6%
Taylor expanded in k around 0
*-lowering-*.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
unpow3N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
unpow2N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6474.4%
Simplified74.4%
clear-numN/A
metadata-evalN/A
frac-2negN/A
metadata-evalN/A
metadata-evalN/A
/-lowering-/.f64N/A
frac-2negN/A
distribute-neg-fracN/A
remove-double-negN/A
/-lowering-/.f64N/A
tan-lowering-tan.f64N/A
distribute-lft-neg-inN/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
Applied egg-rr83.6%
if 3.20000000000000017e-127 < k < 4.8000000000000001e106Initial program 34.0%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Simplified80.3%
associate-/l/N/A
associate-/r/N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-inversesN/A
associate-*l*N/A
*-commutativeN/A
times-fracN/A
*-rgt-identityN/A
*-inversesN/A
*-rgt-identityN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
Applied egg-rr97.9%
Taylor expanded in k around 0
/-lowering-/.f64N/A
associate-*r*N/A
distribute-rgt1-inN/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6473.9%
Simplified73.9%
if 4.8000000000000001e106 < k Initial program 21.8%
Taylor expanded in k around 0
associate-/l*N/A
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6448.7%
Simplified48.7%
clear-numN/A
inv-powN/A
*-commutativeN/A
associate-/l*N/A
unpow-prod-downN/A
inv-powN/A
clear-numN/A
inv-powN/A
clear-numN/A
*-lowering-*.f64N/A
clear-numN/A
associate-/r*N/A
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*l*N/A
cube-unmultN/A
*-lowering-*.f64N/A
cube-unmultN/A
*-lowering-*.f64N/A
*-lowering-*.f6451.2%
Applied egg-rr51.2%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
associate-/r/N/A
clear-numN/A
inv-powN/A
associate-/r/N/A
associate-/l*N/A
unpow-prod-downN/A
inv-powN/A
clear-numN/A
div-invN/A
associate-/r*N/A
clear-numN/A
associate-/l*N/A
inv-powN/A
clear-numN/A
Applied egg-rr54.5%
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f6454.6%
Applied egg-rr54.6%
Final simplification76.9%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (if (<= k_m 2.9e+41) (* (/ (* 2.0 (/ l (* k_m k_m))) t) (/ l (* k_m (sin k_m)))) (/ (/ 2.0 (* k_m k_m)) (* k_m (/ (/ k_m (/ l t)) l)))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 2.9e+41) {
tmp = ((2.0 * (l / (k_m * k_m))) / t) * (l / (k_m * sin(k_m)));
} else {
tmp = (2.0 / (k_m * k_m)) / (k_m * ((k_m / (l / t)) / l));
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 2.9d+41) then
tmp = ((2.0d0 * (l / (k_m * k_m))) / t) * (l / (k_m * sin(k_m)))
else
tmp = (2.0d0 / (k_m * k_m)) / (k_m * ((k_m / (l / t)) / l))
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 2.9e+41) {
tmp = ((2.0 * (l / (k_m * k_m))) / t) * (l / (k_m * Math.sin(k_m)));
} else {
tmp = (2.0 / (k_m * k_m)) / (k_m * ((k_m / (l / t)) / l));
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): tmp = 0 if k_m <= 2.9e+41: tmp = ((2.0 * (l / (k_m * k_m))) / t) * (l / (k_m * math.sin(k_m))) else: tmp = (2.0 / (k_m * k_m)) / (k_m * ((k_m / (l / t)) / l)) return tmp
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 2.9e+41) tmp = Float64(Float64(Float64(2.0 * Float64(l / Float64(k_m * k_m))) / t) * Float64(l / Float64(k_m * sin(k_m)))); else tmp = Float64(Float64(2.0 / Float64(k_m * k_m)) / Float64(k_m * Float64(Float64(k_m / Float64(l / t)) / l))); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) tmp = 0.0; if (k_m <= 2.9e+41) tmp = ((2.0 * (l / (k_m * k_m))) / t) * (l / (k_m * sin(k_m))); else tmp = (2.0 / (k_m * k_m)) / (k_m * ((k_m / (l / t)) / l)); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 2.9e+41], N[(N[(N[(2.0 * N[(l / N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t), $MachinePrecision] * N[(l / N[(k$95$m * N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(2.0 / N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision] / N[(k$95$m * N[(N[(k$95$m / N[(l / t), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 2.9 \cdot 10^{+41}:\\
\;\;\;\;\frac{2 \cdot \frac{\ell}{k\_m \cdot k\_m}}{t} \cdot \frac{\ell}{k\_m \cdot \sin k\_m}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{2}{k\_m \cdot k\_m}}{k\_m \cdot \frac{\frac{k\_m}{\frac{\ell}{t}}}{\ell}}\\
\end{array}
\end{array}
if k < 2.89999999999999988e41Initial program 37.0%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Simplified76.4%
associate-/l/N/A
associate-/r/N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-inversesN/A
associate-*l*N/A
*-commutativeN/A
times-fracN/A
*-rgt-identityN/A
*-inversesN/A
*-rgt-identityN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
Applied egg-rr89.6%
Taylor expanded in k around 0
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6492.5%
Simplified92.5%
Taylor expanded in k around 0
Simplified82.5%
if 2.89999999999999988e41 < k Initial program 22.5%
Taylor expanded in k around 0
associate-/l*N/A
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6447.3%
Simplified47.3%
associate-*l*N/A
associate-*r/N/A
associate-*l/N/A
associate-/l/N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/l/N/A
associate-*l/N/A
associate-*r/N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
clear-numN/A
associate-/r*N/A
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f6451.6%
Applied egg-rr51.6%
remove-double-negN/A
associate-/l*N/A
distribute-rgt-neg-inN/A
distribute-lft-neg-inN/A
*-lowering-*.f64N/A
neg-sub0N/A
--lowering--.f64N/A
neg-sub0N/A
--lowering--.f64N/A
associate-/r/N/A
associate-/r*N/A
un-div-invN/A
clear-numN/A
*-commutativeN/A
/-lowering-/.f64N/A
*-commutativeN/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
/-lowering-/.f6455.6%
Applied egg-rr55.6%
Final simplification76.1%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(let* ((t_1 (/ l (* k_m k_m))))
(if (<= k_m 14.2)
(* t_1 (/ (* 2.0 t_1) t))
(/ (/ 2.0 (* k_m k_m)) (* k_m (/ (/ k_m (/ l t)) l))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double t_1 = l / (k_m * k_m);
double tmp;
if (k_m <= 14.2) {
tmp = t_1 * ((2.0 * t_1) / t);
} else {
tmp = (2.0 / (k_m * k_m)) / (k_m * ((k_m / (l / t)) / l));
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: t_1
real(8) :: tmp
t_1 = l / (k_m * k_m)
if (k_m <= 14.2d0) then
tmp = t_1 * ((2.0d0 * t_1) / t)
else
tmp = (2.0d0 / (k_m * k_m)) / (k_m * ((k_m / (l / t)) / l))
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double t_1 = l / (k_m * k_m);
double tmp;
if (k_m <= 14.2) {
tmp = t_1 * ((2.0 * t_1) / t);
} else {
tmp = (2.0 / (k_m * k_m)) / (k_m * ((k_m / (l / t)) / l));
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): t_1 = l / (k_m * k_m) tmp = 0 if k_m <= 14.2: tmp = t_1 * ((2.0 * t_1) / t) else: tmp = (2.0 / (k_m * k_m)) / (k_m * ((k_m / (l / t)) / l)) return tmp
k_m = abs(k) function code(t, l, k_m) t_1 = Float64(l / Float64(k_m * k_m)) tmp = 0.0 if (k_m <= 14.2) tmp = Float64(t_1 * Float64(Float64(2.0 * t_1) / t)); else tmp = Float64(Float64(2.0 / Float64(k_m * k_m)) / Float64(k_m * Float64(Float64(k_m / Float64(l / t)) / l))); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) t_1 = l / (k_m * k_m); tmp = 0.0; if (k_m <= 14.2) tmp = t_1 * ((2.0 * t_1) / t); else tmp = (2.0 / (k_m * k_m)) / (k_m * ((k_m / (l / t)) / l)); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision]
code[t_, l_, k$95$m_] := Block[{t$95$1 = N[(l / N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[k$95$m, 14.2], N[(t$95$1 * N[(N[(2.0 * t$95$1), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision], N[(N[(2.0 / N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision] / N[(k$95$m * N[(N[(k$95$m / N[(l / t), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
t_1 := \frac{\ell}{k\_m \cdot k\_m}\\
\mathbf{if}\;k\_m \leq 14.2:\\
\;\;\;\;t\_1 \cdot \frac{2 \cdot t\_1}{t}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{2}{k\_m \cdot k\_m}}{k\_m \cdot \frac{\frac{k\_m}{\frac{\ell}{t}}}{\ell}}\\
\end{array}
\end{array}
if k < 14.199999999999999Initial program 37.1%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Simplified76.8%
associate-/l/N/A
associate-/r/N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-inversesN/A
associate-*l*N/A
*-commutativeN/A
times-fracN/A
*-rgt-identityN/A
*-inversesN/A
*-rgt-identityN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
Applied egg-rr89.1%
Taylor expanded in k around 0
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6492.2%
Simplified92.2%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6484.4%
Simplified84.4%
if 14.199999999999999 < k Initial program 24.0%
Taylor expanded in k around 0
associate-/l*N/A
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6443.2%
Simplified43.2%
associate-*l*N/A
associate-*r/N/A
associate-*l/N/A
associate-/l/N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/l/N/A
associate-*l/N/A
associate-*r/N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
clear-numN/A
associate-/r*N/A
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f6446.9%
Applied egg-rr46.9%
remove-double-negN/A
associate-/l*N/A
distribute-rgt-neg-inN/A
distribute-lft-neg-inN/A
*-lowering-*.f64N/A
neg-sub0N/A
--lowering--.f64N/A
neg-sub0N/A
--lowering--.f64N/A
associate-/r/N/A
associate-/r*N/A
un-div-invN/A
clear-numN/A
*-commutativeN/A
/-lowering-/.f64N/A
*-commutativeN/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
/-lowering-/.f6448.7%
Applied egg-rr48.7%
Final simplification75.3%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(let* ((t_1 (/ l (* k_m k_m))))
(if (<= k_m 14.2)
(* t_1 (/ (* 2.0 t_1) t))
(/ (/ (/ 2.0 (* k_m k_m)) k_m) (/ (/ k_m (/ l t)) l)))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double t_1 = l / (k_m * k_m);
double tmp;
if (k_m <= 14.2) {
tmp = t_1 * ((2.0 * t_1) / t);
} else {
tmp = ((2.0 / (k_m * k_m)) / k_m) / ((k_m / (l / t)) / l);
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: t_1
real(8) :: tmp
t_1 = l / (k_m * k_m)
if (k_m <= 14.2d0) then
tmp = t_1 * ((2.0d0 * t_1) / t)
else
tmp = ((2.0d0 / (k_m * k_m)) / k_m) / ((k_m / (l / t)) / l)
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double t_1 = l / (k_m * k_m);
double tmp;
if (k_m <= 14.2) {
tmp = t_1 * ((2.0 * t_1) / t);
} else {
tmp = ((2.0 / (k_m * k_m)) / k_m) / ((k_m / (l / t)) / l);
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): t_1 = l / (k_m * k_m) tmp = 0 if k_m <= 14.2: tmp = t_1 * ((2.0 * t_1) / t) else: tmp = ((2.0 / (k_m * k_m)) / k_m) / ((k_m / (l / t)) / l) return tmp
k_m = abs(k) function code(t, l, k_m) t_1 = Float64(l / Float64(k_m * k_m)) tmp = 0.0 if (k_m <= 14.2) tmp = Float64(t_1 * Float64(Float64(2.0 * t_1) / t)); else tmp = Float64(Float64(Float64(2.0 / Float64(k_m * k_m)) / k_m) / Float64(Float64(k_m / Float64(l / t)) / l)); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) t_1 = l / (k_m * k_m); tmp = 0.0; if (k_m <= 14.2) tmp = t_1 * ((2.0 * t_1) / t); else tmp = ((2.0 / (k_m * k_m)) / k_m) / ((k_m / (l / t)) / l); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision]
code[t_, l_, k$95$m_] := Block[{t$95$1 = N[(l / N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[k$95$m, 14.2], N[(t$95$1 * N[(N[(2.0 * t$95$1), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision], N[(N[(N[(2.0 / N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision] / k$95$m), $MachinePrecision] / N[(N[(k$95$m / N[(l / t), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
t_1 := \frac{\ell}{k\_m \cdot k\_m}\\
\mathbf{if}\;k\_m \leq 14.2:\\
\;\;\;\;t\_1 \cdot \frac{2 \cdot t\_1}{t}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{2}{k\_m \cdot k\_m}}{k\_m}}{\frac{\frac{k\_m}{\frac{\ell}{t}}}{\ell}}\\
\end{array}
\end{array}
if k < 14.199999999999999Initial program 37.1%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Simplified76.8%
associate-/l/N/A
associate-/r/N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-inversesN/A
associate-*l*N/A
*-commutativeN/A
times-fracN/A
*-rgt-identityN/A
*-inversesN/A
*-rgt-identityN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
Applied egg-rr89.1%
Taylor expanded in k around 0
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6492.2%
Simplified92.2%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6484.4%
Simplified84.4%
if 14.199999999999999 < k Initial program 24.0%
Taylor expanded in k around 0
associate-/l*N/A
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6443.2%
Simplified43.2%
clear-numN/A
inv-powN/A
*-commutativeN/A
associate-/l*N/A
unpow-prod-downN/A
inv-powN/A
clear-numN/A
inv-powN/A
clear-numN/A
*-lowering-*.f64N/A
clear-numN/A
associate-/r*N/A
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*l*N/A
cube-unmultN/A
*-lowering-*.f64N/A
cube-unmultN/A
*-lowering-*.f64N/A
*-lowering-*.f6444.9%
Applied egg-rr44.9%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
associate-/r/N/A
associate-/l*N/A
associate-/r*N/A
frac-2negN/A
/-lowering-/.f64N/A
neg-lowering-neg.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
neg-sub0N/A
--lowering--.f64N/A
associate-/r/N/A
associate-/r*N/A
un-div-invN/A
clear-numN/A
*-commutativeN/A
/-lowering-/.f64N/A
Applied egg-rr48.5%
Final simplification74.8%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(let* ((t_1 (/ l (* k_m k_m))))
(if (<= t 1e-63)
(* t_1 (/ (/ 2.0 k_m) (/ k_m (/ l t))))
(* t_1 (* l (/ 2.0 (* t (* k_m k_m))))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double t_1 = l / (k_m * k_m);
double tmp;
if (t <= 1e-63) {
tmp = t_1 * ((2.0 / k_m) / (k_m / (l / t)));
} else {
tmp = t_1 * (l * (2.0 / (t * (k_m * k_m))));
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: t_1
real(8) :: tmp
t_1 = l / (k_m * k_m)
if (t <= 1d-63) then
tmp = t_1 * ((2.0d0 / k_m) / (k_m / (l / t)))
else
tmp = t_1 * (l * (2.0d0 / (t * (k_m * k_m))))
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double t_1 = l / (k_m * k_m);
double tmp;
if (t <= 1e-63) {
tmp = t_1 * ((2.0 / k_m) / (k_m / (l / t)));
} else {
tmp = t_1 * (l * (2.0 / (t * (k_m * k_m))));
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): t_1 = l / (k_m * k_m) tmp = 0 if t <= 1e-63: tmp = t_1 * ((2.0 / k_m) / (k_m / (l / t))) else: tmp = t_1 * (l * (2.0 / (t * (k_m * k_m)))) return tmp
k_m = abs(k) function code(t, l, k_m) t_1 = Float64(l / Float64(k_m * k_m)) tmp = 0.0 if (t <= 1e-63) tmp = Float64(t_1 * Float64(Float64(2.0 / k_m) / Float64(k_m / Float64(l / t)))); else tmp = Float64(t_1 * Float64(l * Float64(2.0 / Float64(t * Float64(k_m * k_m))))); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) t_1 = l / (k_m * k_m); tmp = 0.0; if (t <= 1e-63) tmp = t_1 * ((2.0 / k_m) / (k_m / (l / t))); else tmp = t_1 * (l * (2.0 / (t * (k_m * k_m)))); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision]
code[t_, l_, k$95$m_] := Block[{t$95$1 = N[(l / N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, 1e-63], N[(t$95$1 * N[(N[(2.0 / k$95$m), $MachinePrecision] / N[(k$95$m / N[(l / t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t$95$1 * N[(l * N[(2.0 / N[(t * N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
t_1 := \frac{\ell}{k\_m \cdot k\_m}\\
\mathbf{if}\;t \leq 10^{-63}:\\
\;\;\;\;t\_1 \cdot \frac{\frac{2}{k\_m}}{\frac{k\_m}{\frac{\ell}{t}}}\\
\mathbf{else}:\\
\;\;\;\;t\_1 \cdot \left(\ell \cdot \frac{2}{t \cdot \left(k\_m \cdot k\_m\right)}\right)\\
\end{array}
\end{array}
if t < 1.00000000000000007e-63Initial program 30.1%
Taylor expanded in k around 0
associate-/l*N/A
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6463.7%
Simplified63.7%
clear-numN/A
inv-powN/A
*-commutativeN/A
associate-/l*N/A
unpow-prod-downN/A
inv-powN/A
clear-numN/A
inv-powN/A
clear-numN/A
*-lowering-*.f64N/A
clear-numN/A
associate-/r*N/A
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*l*N/A
cube-unmultN/A
*-lowering-*.f64N/A
cube-unmultN/A
*-lowering-*.f64N/A
*-lowering-*.f6468.9%
Applied egg-rr68.9%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
associate-/r/N/A
clear-numN/A
inv-powN/A
associate-/r/N/A
associate-/l*N/A
unpow-prod-downN/A
inv-powN/A
clear-numN/A
div-invN/A
associate-/r*N/A
clear-numN/A
associate-/l*N/A
inv-powN/A
clear-numN/A
Applied egg-rr74.8%
if 1.00000000000000007e-63 < t Initial program 41.6%
Taylor expanded in k around 0
associate-/l*N/A
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6464.0%
Simplified64.0%
clear-numN/A
inv-powN/A
*-commutativeN/A
associate-/l*N/A
unpow-prod-downN/A
inv-powN/A
clear-numN/A
inv-powN/A
clear-numN/A
*-lowering-*.f64N/A
clear-numN/A
associate-/r*N/A
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*l*N/A
cube-unmultN/A
*-lowering-*.f64N/A
cube-unmultN/A
*-lowering-*.f64N/A
*-lowering-*.f6465.2%
Applied egg-rr65.2%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
associate-/r/N/A
clear-numN/A
inv-powN/A
associate-/r/N/A
associate-/l*N/A
unpow-prod-downN/A
inv-powN/A
clear-numN/A
div-invN/A
associate-/r*N/A
clear-numN/A
associate-/l*N/A
inv-powN/A
clear-numN/A
Applied egg-rr70.1%
associate-/r/N/A
associate-/r*N/A
associate-*r/N/A
associate-*l/N/A
*-lowering-*.f64N/A
associate-/l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6471.8%
Applied egg-rr71.8%
Final simplification73.8%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (let* ((t_1 (/ l (* k_m k_m)))) (* t_1 (/ (* 2.0 t_1) t))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
double t_1 = l / (k_m * k_m);
return t_1 * ((2.0 * t_1) / t);
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: t_1
t_1 = l / (k_m * k_m)
code = t_1 * ((2.0d0 * t_1) / t)
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double t_1 = l / (k_m * k_m);
return t_1 * ((2.0 * t_1) / t);
}
k_m = math.fabs(k) def code(t, l, k_m): t_1 = l / (k_m * k_m) return t_1 * ((2.0 * t_1) / t)
k_m = abs(k) function code(t, l, k_m) t_1 = Float64(l / Float64(k_m * k_m)) return Float64(t_1 * Float64(Float64(2.0 * t_1) / t)) end
k_m = abs(k); function tmp = code(t, l, k_m) t_1 = l / (k_m * k_m); tmp = t_1 * ((2.0 * t_1) / t); end
k_m = N[Abs[k], $MachinePrecision]
code[t_, l_, k$95$m_] := Block[{t$95$1 = N[(l / N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision]}, N[(t$95$1 * N[(N[(2.0 * t$95$1), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
t_1 := \frac{\ell}{k\_m \cdot k\_m}\\
t\_1 \cdot \frac{2 \cdot t\_1}{t}
\end{array}
\end{array}
Initial program 33.9%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Simplified73.8%
associate-/l/N/A
associate-/r/N/A
associate-/l*N/A
*-lowering-*.f64N/A
*-inversesN/A
associate-*l*N/A
*-commutativeN/A
times-fracN/A
*-rgt-identityN/A
*-inversesN/A
*-rgt-identityN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
Applied egg-rr86.0%
Taylor expanded in k around 0
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6488.9%
Simplified88.9%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6474.9%
Simplified74.9%
Final simplification74.9%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (* (/ l (* k_m k_m)) (/ (/ l (/ k_m 2.0)) (* k_m t))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
return (l / (k_m * k_m)) * ((l / (k_m / 2.0)) / (k_m * t));
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
code = (l / (k_m * k_m)) * ((l / (k_m / 2.0d0)) / (k_m * t))
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
return (l / (k_m * k_m)) * ((l / (k_m / 2.0)) / (k_m * t));
}
k_m = math.fabs(k) def code(t, l, k_m): return (l / (k_m * k_m)) * ((l / (k_m / 2.0)) / (k_m * t))
k_m = abs(k) function code(t, l, k_m) return Float64(Float64(l / Float64(k_m * k_m)) * Float64(Float64(l / Float64(k_m / 2.0)) / Float64(k_m * t))) end
k_m = abs(k); function tmp = code(t, l, k_m) tmp = (l / (k_m * k_m)) * ((l / (k_m / 2.0)) / (k_m * t)); end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := N[(N[(l / N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision] * N[(N[(l / N[(k$95$m / 2.0), $MachinePrecision]), $MachinePrecision] / N[(k$95$m * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
\frac{\ell}{k\_m \cdot k\_m} \cdot \frac{\frac{\ell}{\frac{k\_m}{2}}}{k\_m \cdot t}
\end{array}
Initial program 33.9%
Taylor expanded in k around 0
associate-/l*N/A
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6463.8%
Simplified63.8%
clear-numN/A
inv-powN/A
*-commutativeN/A
associate-/l*N/A
unpow-prod-downN/A
inv-powN/A
clear-numN/A
inv-powN/A
clear-numN/A
*-lowering-*.f64N/A
clear-numN/A
associate-/r*N/A
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*l*N/A
cube-unmultN/A
*-lowering-*.f64N/A
cube-unmultN/A
*-lowering-*.f64N/A
*-lowering-*.f6467.6%
Applied egg-rr67.6%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
associate-/r/N/A
clear-numN/A
inv-powN/A
associate-/r/N/A
associate-/l*N/A
unpow-prod-downN/A
inv-powN/A
clear-numN/A
div-invN/A
associate-/r*N/A
clear-numN/A
associate-/l*N/A
inv-powN/A
clear-numN/A
Applied egg-rr73.2%
associate-/r/N/A
frac-timesN/A
clear-numN/A
associate-/r/N/A
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6474.2%
Applied egg-rr74.2%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (* (/ l (* k_m k_m)) (/ (/ 2.0 k_m) (/ (* k_m t) l))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
return (l / (k_m * k_m)) * ((2.0 / k_m) / ((k_m * t) / l));
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
code = (l / (k_m * k_m)) * ((2.0d0 / k_m) / ((k_m * t) / l))
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
return (l / (k_m * k_m)) * ((2.0 / k_m) / ((k_m * t) / l));
}
k_m = math.fabs(k) def code(t, l, k_m): return (l / (k_m * k_m)) * ((2.0 / k_m) / ((k_m * t) / l))
k_m = abs(k) function code(t, l, k_m) return Float64(Float64(l / Float64(k_m * k_m)) * Float64(Float64(2.0 / k_m) / Float64(Float64(k_m * t) / l))) end
k_m = abs(k); function tmp = code(t, l, k_m) tmp = (l / (k_m * k_m)) * ((2.0 / k_m) / ((k_m * t) / l)); end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := N[(N[(l / N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision] * N[(N[(2.0 / k$95$m), $MachinePrecision] / N[(N[(k$95$m * t), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
\frac{\ell}{k\_m \cdot k\_m} \cdot \frac{\frac{2}{k\_m}}{\frac{k\_m \cdot t}{\ell}}
\end{array}
Initial program 33.9%
Taylor expanded in k around 0
associate-/l*N/A
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6463.8%
Simplified63.8%
clear-numN/A
inv-powN/A
*-commutativeN/A
associate-/l*N/A
unpow-prod-downN/A
inv-powN/A
clear-numN/A
inv-powN/A
clear-numN/A
*-lowering-*.f64N/A
clear-numN/A
associate-/r*N/A
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*l*N/A
cube-unmultN/A
*-lowering-*.f64N/A
cube-unmultN/A
*-lowering-*.f64N/A
*-lowering-*.f6467.6%
Applied egg-rr67.6%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
associate-/r/N/A
clear-numN/A
inv-powN/A
associate-/r/N/A
associate-/l*N/A
unpow-prod-downN/A
inv-powN/A
clear-numN/A
div-invN/A
associate-/r*N/A
clear-numN/A
associate-/l*N/A
inv-powN/A
clear-numN/A
Applied egg-rr73.2%
associate-/r/N/A
associate-*l/N/A
/-lowering-/.f64N/A
*-lowering-*.f6474.2%
Applied egg-rr74.2%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (* (/ l (* k_m k_m)) (* l (/ 2.0 (* t (* k_m k_m))))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
return (l / (k_m * k_m)) * (l * (2.0 / (t * (k_m * k_m))));
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
code = (l / (k_m * k_m)) * (l * (2.0d0 / (t * (k_m * k_m))))
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
return (l / (k_m * k_m)) * (l * (2.0 / (t * (k_m * k_m))));
}
k_m = math.fabs(k) def code(t, l, k_m): return (l / (k_m * k_m)) * (l * (2.0 / (t * (k_m * k_m))))
k_m = abs(k) function code(t, l, k_m) return Float64(Float64(l / Float64(k_m * k_m)) * Float64(l * Float64(2.0 / Float64(t * Float64(k_m * k_m))))) end
k_m = abs(k); function tmp = code(t, l, k_m) tmp = (l / (k_m * k_m)) * (l * (2.0 / (t * (k_m * k_m)))); end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := N[(N[(l / N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision] * N[(l * N[(2.0 / N[(t * N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
\frac{\ell}{k\_m \cdot k\_m} \cdot \left(\ell \cdot \frac{2}{t \cdot \left(k\_m \cdot k\_m\right)}\right)
\end{array}
Initial program 33.9%
Taylor expanded in k around 0
associate-/l*N/A
*-lowering-*.f64N/A
metadata-evalN/A
pow-sqrN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6463.8%
Simplified63.8%
clear-numN/A
inv-powN/A
*-commutativeN/A
associate-/l*N/A
unpow-prod-downN/A
inv-powN/A
clear-numN/A
inv-powN/A
clear-numN/A
*-lowering-*.f64N/A
clear-numN/A
associate-/r*N/A
clear-numN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*l*N/A
cube-unmultN/A
*-lowering-*.f64N/A
cube-unmultN/A
*-lowering-*.f64N/A
*-lowering-*.f6467.6%
Applied egg-rr67.6%
*-commutativeN/A
associate-*r*N/A
associate-/r*N/A
associate-/r/N/A
clear-numN/A
inv-powN/A
associate-/r/N/A
associate-/l*N/A
unpow-prod-downN/A
inv-powN/A
clear-numN/A
div-invN/A
associate-/r*N/A
clear-numN/A
associate-/l*N/A
inv-powN/A
clear-numN/A
Applied egg-rr73.2%
associate-/r/N/A
associate-/r*N/A
associate-*r/N/A
associate-*l/N/A
*-lowering-*.f64N/A
associate-/l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6472.7%
Applied egg-rr72.7%
Final simplification72.7%
herbie shell --seed 2024192
(FPCore (t l k)
:name "Toniolo and Linder, Equation (10-)"
:precision binary64
(/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (- (+ 1.0 (pow (/ k t) 2.0)) 1.0))))