
(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)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 560000000.0)
(pow
(* (/ l (/ (sin k_m) (sqrt 2.0))) (/ (sqrt (/ (cos k_m) t_m)) k_m))
2.0)
(/
2.0
(/
(* t_m (pow (sin k_m) 2.0))
(* (cos k_m) (pow (/ l (fabs k_m)) 2.0)))))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 560000000.0) {
tmp = pow(((l / (sin(k_m) / sqrt(2.0))) * (sqrt((cos(k_m) / t_m)) / k_m)), 2.0);
} else {
tmp = 2.0 / ((t_m * pow(sin(k_m), 2.0)) / (cos(k_m) * pow((l / fabs(k_m)), 2.0)));
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 560000000.0d0) then
tmp = ((l / (sin(k_m) / sqrt(2.0d0))) * (sqrt((cos(k_m) / t_m)) / k_m)) ** 2.0d0
else
tmp = 2.0d0 / ((t_m * (sin(k_m) ** 2.0d0)) / (cos(k_m) * ((l / abs(k_m)) ** 2.0d0)))
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 560000000.0) {
tmp = Math.pow(((l / (Math.sin(k_m) / Math.sqrt(2.0))) * (Math.sqrt((Math.cos(k_m) / t_m)) / k_m)), 2.0);
} else {
tmp = 2.0 / ((t_m * Math.pow(Math.sin(k_m), 2.0)) / (Math.cos(k_m) * Math.pow((l / Math.abs(k_m)), 2.0)));
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if k_m <= 560000000.0: tmp = math.pow(((l / (math.sin(k_m) / math.sqrt(2.0))) * (math.sqrt((math.cos(k_m) / t_m)) / k_m)), 2.0) else: tmp = 2.0 / ((t_m * math.pow(math.sin(k_m), 2.0)) / (math.cos(k_m) * math.pow((l / math.fabs(k_m)), 2.0))) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (k_m <= 560000000.0) tmp = Float64(Float64(l / Float64(sin(k_m) / sqrt(2.0))) * Float64(sqrt(Float64(cos(k_m) / t_m)) / k_m)) ^ 2.0; else tmp = Float64(2.0 / Float64(Float64(t_m * (sin(k_m) ^ 2.0)) / Float64(cos(k_m) * (Float64(l / abs(k_m)) ^ 2.0)))); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 560000000.0) tmp = ((l / (sin(k_m) / sqrt(2.0))) * (sqrt((cos(k_m) / t_m)) / k_m)) ^ 2.0; else tmp = 2.0 / ((t_m * (sin(k_m) ^ 2.0)) / (cos(k_m) * ((l / abs(k_m)) ^ 2.0))); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[k$95$m, 560000000.0], N[Power[N[(N[(l / N[(N[Sin[k$95$m], $MachinePrecision] / N[Sqrt[2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Sqrt[N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision]], $MachinePrecision] / k$95$m), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], N[(2.0 / N[(N[(t$95$m * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / N[(N[Cos[k$95$m], $MachinePrecision] * N[Power[N[(l / N[Abs[k$95$m], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k_m \leq 560000000:\\
\;\;\;\;{\left(\frac{\ell}{\frac{\sin k_m}{\sqrt{2}}} \cdot \frac{\sqrt{\frac{\cos k_m}{t_m}}}{k_m}\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{t_m \cdot {\sin k_m}^{2}}{\cos k_m \cdot {\left(\frac{\ell}{\left|k_m\right|}\right)}^{2}}}\\
\end{array}
\end{array}
if k < 5.6e8Initial program 32.0%
associate-/r*32.0%
*-commutative32.0%
associate-*l*32.0%
associate-*l/32.0%
+-commutative32.0%
unpow232.0%
sqr-neg32.0%
distribute-frac-neg32.0%
distribute-frac-neg32.0%
unpow232.0%
associate--l+39.4%
metadata-eval39.4%
+-rgt-identity39.4%
unpow239.4%
distribute-frac-neg39.4%
distribute-frac-neg39.4%
Simplified39.4%
add-sqr-sqrt25.2%
Applied egg-rr21.5%
unpow221.5%
associate-/l/21.5%
*-commutative21.5%
Simplified21.5%
Taylor expanded in k around inf 41.4%
associate-*l/40.8%
*-commutative40.8%
times-frac43.4%
Simplified43.4%
expm1-log1p-u30.8%
expm1-udef23.9%
associate-/l*23.9%
Applied egg-rr23.9%
expm1-def30.8%
expm1-log1p43.4%
Simplified43.4%
if 5.6e8 < k Initial program 29.3%
associate-*l*29.3%
associate-*l/29.3%
associate--l+29.3%
Simplified29.3%
Taylor expanded in t around 0 77.5%
times-frac76.3%
Simplified76.3%
clear-num76.3%
inv-pow76.3%
Applied egg-rr76.3%
unpow-176.3%
Simplified76.3%
inv-pow76.3%
add-sqr-sqrt76.1%
unpow-prod-down76.1%
div-inv76.1%
sqrt-prod76.2%
unpow276.2%
sqrt-prod39.5%
add-sqr-sqrt62.6%
pow-flip62.6%
metadata-eval62.6%
Applied egg-rr82.5%
pow-sqr82.5%
sqr-pow82.5%
rem-sqrt-square93.9%
metadata-eval93.9%
unpow-193.9%
metadata-eval93.9%
Simplified93.9%
Taylor expanded in l around 0 77.5%
unpow277.5%
unpow-177.5%
metadata-eval77.5%
unpow-177.5%
metadata-eval77.5%
sqr-abs77.5%
sqr-pow77.4%
associate-*r*77.5%
*-commutative77.5%
associate-*l*77.5%
unpow277.5%
sqr-pow77.5%
sqr-abs77.5%
Simplified93.9%
Final simplification56.4%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(let* ((t_2 (/ (cos k_m) t_m)) (t_3 (* l (sqrt 2.0))))
(*
t_s
(if (<= (* l l) 2e-323)
(pow (* (/ t_3 (pow k_m 2.0)) (sqrt (/ 1.0 t_m))) 2.0)
(if (<= (* l l) 2e+252)
(* (pow (/ l (/ (sin k_m) (sqrt 2.0))) 2.0) (* t_2 (pow k_m -2.0)))
(pow (* (sqrt t_2) (/ t_3 (* k_m (sin k_m)))) 2.0))))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double t_2 = cos(k_m) / t_m;
double t_3 = l * sqrt(2.0);
double tmp;
if ((l * l) <= 2e-323) {
tmp = pow(((t_3 / pow(k_m, 2.0)) * sqrt((1.0 / t_m))), 2.0);
} else if ((l * l) <= 2e+252) {
tmp = pow((l / (sin(k_m) / sqrt(2.0))), 2.0) * (t_2 * pow(k_m, -2.0));
} else {
tmp = pow((sqrt(t_2) * (t_3 / (k_m * sin(k_m)))), 2.0);
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: t_2
real(8) :: t_3
real(8) :: tmp
t_2 = cos(k_m) / t_m
t_3 = l * sqrt(2.0d0)
if ((l * l) <= 2d-323) then
tmp = ((t_3 / (k_m ** 2.0d0)) * sqrt((1.0d0 / t_m))) ** 2.0d0
else if ((l * l) <= 2d+252) then
tmp = ((l / (sin(k_m) / sqrt(2.0d0))) ** 2.0d0) * (t_2 * (k_m ** (-2.0d0)))
else
tmp = (sqrt(t_2) * (t_3 / (k_m * sin(k_m)))) ** 2.0d0
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double t_2 = Math.cos(k_m) / t_m;
double t_3 = l * Math.sqrt(2.0);
double tmp;
if ((l * l) <= 2e-323) {
tmp = Math.pow(((t_3 / Math.pow(k_m, 2.0)) * Math.sqrt((1.0 / t_m))), 2.0);
} else if ((l * l) <= 2e+252) {
tmp = Math.pow((l / (Math.sin(k_m) / Math.sqrt(2.0))), 2.0) * (t_2 * Math.pow(k_m, -2.0));
} else {
tmp = Math.pow((Math.sqrt(t_2) * (t_3 / (k_m * Math.sin(k_m)))), 2.0);
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): t_2 = math.cos(k_m) / t_m t_3 = l * math.sqrt(2.0) tmp = 0 if (l * l) <= 2e-323: tmp = math.pow(((t_3 / math.pow(k_m, 2.0)) * math.sqrt((1.0 / t_m))), 2.0) elif (l * l) <= 2e+252: tmp = math.pow((l / (math.sin(k_m) / math.sqrt(2.0))), 2.0) * (t_2 * math.pow(k_m, -2.0)) else: tmp = math.pow((math.sqrt(t_2) * (t_3 / (k_m * math.sin(k_m)))), 2.0) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) t_2 = Float64(cos(k_m) / t_m) t_3 = Float64(l * sqrt(2.0)) tmp = 0.0 if (Float64(l * l) <= 2e-323) tmp = Float64(Float64(t_3 / (k_m ^ 2.0)) * sqrt(Float64(1.0 / t_m))) ^ 2.0; elseif (Float64(l * l) <= 2e+252) tmp = Float64((Float64(l / Float64(sin(k_m) / sqrt(2.0))) ^ 2.0) * Float64(t_2 * (k_m ^ -2.0))); else tmp = Float64(sqrt(t_2) * Float64(t_3 / Float64(k_m * sin(k_m)))) ^ 2.0; end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) t_2 = cos(k_m) / t_m; t_3 = l * sqrt(2.0); tmp = 0.0; if ((l * l) <= 2e-323) tmp = ((t_3 / (k_m ^ 2.0)) * sqrt((1.0 / t_m))) ^ 2.0; elseif ((l * l) <= 2e+252) tmp = ((l / (sin(k_m) / sqrt(2.0))) ^ 2.0) * (t_2 * (k_m ^ -2.0)); else tmp = (sqrt(t_2) * (t_3 / (k_m * sin(k_m)))) ^ 2.0; end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := Block[{t$95$2 = N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision]}, Block[{t$95$3 = N[(l * N[Sqrt[2.0], $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[N[(l * l), $MachinePrecision], 2e-323], N[Power[N[(N[(t$95$3 / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(1.0 / t$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], If[LessEqual[N[(l * l), $MachinePrecision], 2e+252], N[(N[Power[N[(l / N[(N[Sin[k$95$m], $MachinePrecision] / N[Sqrt[2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] * N[(t$95$2 * N[Power[k$95$m, -2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[Power[N[(N[Sqrt[t$95$2], $MachinePrecision] * N[(t$95$3 / N[(k$95$m * N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]]]), $MachinePrecision]]]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := \frac{\cos k_m}{t_m}\\
t_3 := \ell \cdot \sqrt{2}\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \cdot \ell \leq 2 \cdot 10^{-323}:\\
\;\;\;\;{\left(\frac{t_3}{{k_m}^{2}} \cdot \sqrt{\frac{1}{t_m}}\right)}^{2}\\
\mathbf{elif}\;\ell \cdot \ell \leq 2 \cdot 10^{+252}:\\
\;\;\;\;{\left(\frac{\ell}{\frac{\sin k_m}{\sqrt{2}}}\right)}^{2} \cdot \left(t_2 \cdot {k_m}^{-2}\right)\\
\mathbf{else}:\\
\;\;\;\;{\left(\sqrt{t_2} \cdot \frac{t_3}{k_m \cdot \sin k_m}\right)}^{2}\\
\end{array}
\end{array}
\end{array}
if (*.f64 l l) < 1.97626e-323Initial program 19.7%
associate-/r*19.7%
*-commutative19.7%
associate-*l*19.7%
associate-*l/19.7%
+-commutative19.7%
unpow219.7%
sqr-neg19.7%
distribute-frac-neg19.7%
distribute-frac-neg19.7%
unpow219.7%
associate--l+30.1%
metadata-eval30.1%
+-rgt-identity30.1%
unpow230.1%
distribute-frac-neg30.1%
distribute-frac-neg30.1%
Simplified30.1%
add-sqr-sqrt29.7%
Applied egg-rr11.0%
unpow211.0%
associate-/l/11.0%
*-commutative11.0%
Simplified11.0%
Taylor expanded in k around 0 37.7%
if 1.97626e-323 < (*.f64 l l) < 2.0000000000000002e252Initial program 42.8%
associate-/r*42.8%
*-commutative42.8%
associate-*l*42.8%
associate-*l/42.8%
+-commutative42.8%
unpow242.8%
sqr-neg42.8%
distribute-frac-neg42.8%
distribute-frac-neg42.8%
unpow242.8%
associate--l+56.8%
metadata-eval56.8%
+-rgt-identity56.8%
unpow256.8%
distribute-frac-neg56.8%
distribute-frac-neg56.8%
Simplified56.8%
add-sqr-sqrt41.8%
Applied egg-rr21.4%
unpow221.4%
associate-/l/21.4%
*-commutative21.4%
Simplified21.4%
Taylor expanded in k around inf 46.8%
associate-*l/46.8%
*-commutative46.8%
times-frac46.9%
Simplified46.9%
unpow-prod-down44.7%
associate-/l*44.7%
div-inv44.7%
unpow-prod-down44.5%
pow244.5%
add-sqr-sqrt96.2%
pow296.2%
inv-pow96.2%
inv-pow96.2%
pow-prod-up96.2%
metadata-eval96.2%
Applied egg-rr96.2%
if 2.0000000000000002e252 < (*.f64 l l) Initial program 21.2%
associate-/r*21.2%
*-commutative21.2%
associate-*l*21.2%
associate-*l/21.2%
+-commutative21.2%
unpow221.2%
sqr-neg21.2%
distribute-frac-neg21.2%
distribute-frac-neg21.2%
unpow221.2%
associate--l+22.7%
metadata-eval22.7%
+-rgt-identity22.7%
unpow222.7%
distribute-frac-neg22.7%
distribute-frac-neg22.7%
Simplified22.7%
add-sqr-sqrt7.2%
Applied egg-rr25.3%
unpow225.3%
associate-/l/25.4%
*-commutative25.4%
Simplified25.4%
Taylor expanded in k around inf 45.3%
Final simplification68.0%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 620000000.0)
(pow
(* (/ l (/ (sin k_m) (sqrt 2.0))) (/ (sqrt (/ (cos k_m) t_m)) k_m))
2.0)
(/
2.0
(*
(pow (/ l (fabs k_m)) -2.0)
(/ (* t_m (pow (sin k_m) 2.0)) (cos k_m)))))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 620000000.0) {
tmp = pow(((l / (sin(k_m) / sqrt(2.0))) * (sqrt((cos(k_m) / t_m)) / k_m)), 2.0);
} else {
tmp = 2.0 / (pow((l / fabs(k_m)), -2.0) * ((t_m * pow(sin(k_m), 2.0)) / cos(k_m)));
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 620000000.0d0) then
tmp = ((l / (sin(k_m) / sqrt(2.0d0))) * (sqrt((cos(k_m) / t_m)) / k_m)) ** 2.0d0
else
tmp = 2.0d0 / (((l / abs(k_m)) ** (-2.0d0)) * ((t_m * (sin(k_m) ** 2.0d0)) / cos(k_m)))
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 620000000.0) {
tmp = Math.pow(((l / (Math.sin(k_m) / Math.sqrt(2.0))) * (Math.sqrt((Math.cos(k_m) / t_m)) / k_m)), 2.0);
} else {
tmp = 2.0 / (Math.pow((l / Math.abs(k_m)), -2.0) * ((t_m * Math.pow(Math.sin(k_m), 2.0)) / Math.cos(k_m)));
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if k_m <= 620000000.0: tmp = math.pow(((l / (math.sin(k_m) / math.sqrt(2.0))) * (math.sqrt((math.cos(k_m) / t_m)) / k_m)), 2.0) else: tmp = 2.0 / (math.pow((l / math.fabs(k_m)), -2.0) * ((t_m * math.pow(math.sin(k_m), 2.0)) / math.cos(k_m))) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (k_m <= 620000000.0) tmp = Float64(Float64(l / Float64(sin(k_m) / sqrt(2.0))) * Float64(sqrt(Float64(cos(k_m) / t_m)) / k_m)) ^ 2.0; else tmp = Float64(2.0 / Float64((Float64(l / abs(k_m)) ^ -2.0) * Float64(Float64(t_m * (sin(k_m) ^ 2.0)) / cos(k_m)))); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 620000000.0) tmp = ((l / (sin(k_m) / sqrt(2.0))) * (sqrt((cos(k_m) / t_m)) / k_m)) ^ 2.0; else tmp = 2.0 / (((l / abs(k_m)) ^ -2.0) * ((t_m * (sin(k_m) ^ 2.0)) / cos(k_m))); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[k$95$m, 620000000.0], N[Power[N[(N[(l / N[(N[Sin[k$95$m], $MachinePrecision] / N[Sqrt[2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Sqrt[N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision]], $MachinePrecision] / k$95$m), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], N[(2.0 / N[(N[Power[N[(l / N[Abs[k$95$m], $MachinePrecision]), $MachinePrecision], -2.0], $MachinePrecision] * N[(N[(t$95$m * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k_m \leq 620000000:\\
\;\;\;\;{\left(\frac{\ell}{\frac{\sin k_m}{\sqrt{2}}} \cdot \frac{\sqrt{\frac{\cos k_m}{t_m}}}{k_m}\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{{\left(\frac{\ell}{\left|k_m\right|}\right)}^{-2} \cdot \frac{t_m \cdot {\sin k_m}^{2}}{\cos k_m}}\\
\end{array}
\end{array}
if k < 6.2e8Initial program 32.0%
associate-/r*32.0%
*-commutative32.0%
associate-*l*32.0%
associate-*l/32.0%
+-commutative32.0%
unpow232.0%
sqr-neg32.0%
distribute-frac-neg32.0%
distribute-frac-neg32.0%
unpow232.0%
associate--l+39.4%
metadata-eval39.4%
+-rgt-identity39.4%
unpow239.4%
distribute-frac-neg39.4%
distribute-frac-neg39.4%
Simplified39.4%
add-sqr-sqrt25.2%
Applied egg-rr21.5%
unpow221.5%
associate-/l/21.5%
*-commutative21.5%
Simplified21.5%
Taylor expanded in k around inf 41.4%
associate-*l/40.8%
*-commutative40.8%
times-frac43.4%
Simplified43.4%
expm1-log1p-u30.8%
expm1-udef23.9%
associate-/l*23.9%
Applied egg-rr23.9%
expm1-def30.8%
expm1-log1p43.4%
Simplified43.4%
if 6.2e8 < k Initial program 29.3%
associate-*l*29.3%
associate-*l/29.3%
associate--l+29.3%
Simplified29.3%
Taylor expanded in t around 0 77.5%
times-frac76.3%
Simplified76.3%
clear-num76.3%
inv-pow76.3%
Applied egg-rr76.3%
unpow-176.3%
Simplified76.3%
inv-pow76.3%
add-sqr-sqrt76.1%
unpow-prod-down76.1%
div-inv76.1%
sqrt-prod76.2%
unpow276.2%
sqrt-prod39.5%
add-sqr-sqrt62.6%
pow-flip62.6%
metadata-eval62.6%
Applied egg-rr82.5%
pow-sqr82.5%
sqr-pow82.5%
rem-sqrt-square93.9%
metadata-eval93.9%
unpow-193.9%
metadata-eval93.9%
Simplified93.9%
expm1-log1p-u92.5%
expm1-udef75.3%
fabs-div75.3%
metadata-eval75.3%
Applied egg-rr75.3%
expm1-def92.5%
expm1-log1p93.9%
associate-*r/93.9%
*-rgt-identity93.9%
Simplified93.9%
Final simplification56.4%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 500000000.0)
(pow
(* (/ l (/ (sin k_m) (sqrt 2.0))) (/ (sqrt (/ (cos k_m) t_m)) k_m))
2.0)
(/
2.0
(*
(/ (pow k_m 2.0) (pow l 2.0))
(/ (* t_m (- 0.5 (/ (cos (* k_m 2.0)) 2.0))) (cos k_m)))))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 500000000.0) {
tmp = pow(((l / (sin(k_m) / sqrt(2.0))) * (sqrt((cos(k_m) / t_m)) / k_m)), 2.0);
} else {
tmp = 2.0 / ((pow(k_m, 2.0) / pow(l, 2.0)) * ((t_m * (0.5 - (cos((k_m * 2.0)) / 2.0))) / cos(k_m)));
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 500000000.0d0) then
tmp = ((l / (sin(k_m) / sqrt(2.0d0))) * (sqrt((cos(k_m) / t_m)) / k_m)) ** 2.0d0
else
tmp = 2.0d0 / (((k_m ** 2.0d0) / (l ** 2.0d0)) * ((t_m * (0.5d0 - (cos((k_m * 2.0d0)) / 2.0d0))) / cos(k_m)))
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 500000000.0) {
tmp = Math.pow(((l / (Math.sin(k_m) / Math.sqrt(2.0))) * (Math.sqrt((Math.cos(k_m) / t_m)) / k_m)), 2.0);
} else {
tmp = 2.0 / ((Math.pow(k_m, 2.0) / Math.pow(l, 2.0)) * ((t_m * (0.5 - (Math.cos((k_m * 2.0)) / 2.0))) / Math.cos(k_m)));
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if k_m <= 500000000.0: tmp = math.pow(((l / (math.sin(k_m) / math.sqrt(2.0))) * (math.sqrt((math.cos(k_m) / t_m)) / k_m)), 2.0) else: tmp = 2.0 / ((math.pow(k_m, 2.0) / math.pow(l, 2.0)) * ((t_m * (0.5 - (math.cos((k_m * 2.0)) / 2.0))) / math.cos(k_m))) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (k_m <= 500000000.0) tmp = Float64(Float64(l / Float64(sin(k_m) / sqrt(2.0))) * Float64(sqrt(Float64(cos(k_m) / t_m)) / k_m)) ^ 2.0; else tmp = Float64(2.0 / Float64(Float64((k_m ^ 2.0) / (l ^ 2.0)) * Float64(Float64(t_m * Float64(0.5 - Float64(cos(Float64(k_m * 2.0)) / 2.0))) / cos(k_m)))); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 500000000.0) tmp = ((l / (sin(k_m) / sqrt(2.0))) * (sqrt((cos(k_m) / t_m)) / k_m)) ^ 2.0; else tmp = 2.0 / (((k_m ^ 2.0) / (l ^ 2.0)) * ((t_m * (0.5 - (cos((k_m * 2.0)) / 2.0))) / cos(k_m))); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[k$95$m, 500000000.0], N[Power[N[(N[(l / N[(N[Sin[k$95$m], $MachinePrecision] / N[Sqrt[2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Sqrt[N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision]], $MachinePrecision] / k$95$m), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], N[(2.0 / N[(N[(N[Power[k$95$m, 2.0], $MachinePrecision] / N[Power[l, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[(t$95$m * N[(0.5 - N[(N[Cos[N[(k$95$m * 2.0), $MachinePrecision]], $MachinePrecision] / 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k_m \leq 500000000:\\
\;\;\;\;{\left(\frac{\ell}{\frac{\sin k_m}{\sqrt{2}}} \cdot \frac{\sqrt{\frac{\cos k_m}{t_m}}}{k_m}\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{{k_m}^{2}}{{\ell}^{2}} \cdot \frac{t_m \cdot \left(0.5 - \frac{\cos \left(k_m \cdot 2\right)}{2}\right)}{\cos k_m}}\\
\end{array}
\end{array}
if k < 5e8Initial program 32.0%
associate-/r*32.0%
*-commutative32.0%
associate-*l*32.0%
associate-*l/32.0%
+-commutative32.0%
unpow232.0%
sqr-neg32.0%
distribute-frac-neg32.0%
distribute-frac-neg32.0%
unpow232.0%
associate--l+39.4%
metadata-eval39.4%
+-rgt-identity39.4%
unpow239.4%
distribute-frac-neg39.4%
distribute-frac-neg39.4%
Simplified39.4%
add-sqr-sqrt25.2%
Applied egg-rr21.5%
unpow221.5%
associate-/l/21.5%
*-commutative21.5%
Simplified21.5%
Taylor expanded in k around inf 41.4%
associate-*l/40.8%
*-commutative40.8%
times-frac43.4%
Simplified43.4%
expm1-log1p-u30.8%
expm1-udef23.9%
associate-/l*23.9%
Applied egg-rr23.9%
expm1-def30.8%
expm1-log1p43.4%
Simplified43.4%
if 5e8 < k Initial program 29.3%
associate-*l*29.3%
associate-*l/29.3%
associate--l+29.3%
Simplified29.3%
Taylor expanded in t around 0 77.5%
times-frac76.3%
Simplified76.3%
unpow276.3%
sin-mult76.3%
Applied egg-rr76.3%
div-sub76.3%
+-inverses76.3%
cos-076.3%
metadata-eval76.3%
count-276.3%
*-commutative76.3%
Simplified76.3%
Final simplification51.9%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(let* ((t_2 (* (tan k_m) (/ k_m (* t_m (/ t_m k_m))))))
(*
t_s
(if (<= k_m 4000000.0)
(pow (* (/ (sqrt (/ (cos k_m) t_m)) k_m) (/ (* l (sqrt 2.0)) k_m)) 2.0)
(if (<= k_m 1.8e+18)
(/ 2.0 (* (/ (* (sin k_m) (pow t_m 3.0)) (* l l)) t_2))
(if (<= k_m 1.6e+25)
(*
-0.3333333333333333
(+ (exp (log1p (* (pow k_m -2.0) (/ (pow l 2.0) t_m)))) -1.0))
(if (<= k_m 9.2e+53)
(/ 2.0 (* t_2 (* (/ (pow t_m 3.0) l) (/ (sin k_m) l))))
(* -0.3333333333333333 (/ (pow (/ l (fabs k_m)) 2.0) t_m)))))))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double t_2 = tan(k_m) * (k_m / (t_m * (t_m / k_m)));
double tmp;
if (k_m <= 4000000.0) {
tmp = pow(((sqrt((cos(k_m) / t_m)) / k_m) * ((l * sqrt(2.0)) / k_m)), 2.0);
} else if (k_m <= 1.8e+18) {
tmp = 2.0 / (((sin(k_m) * pow(t_m, 3.0)) / (l * l)) * t_2);
} else if (k_m <= 1.6e+25) {
tmp = -0.3333333333333333 * (exp(log1p((pow(k_m, -2.0) * (pow(l, 2.0) / t_m)))) + -1.0);
} else if (k_m <= 9.2e+53) {
tmp = 2.0 / (t_2 * ((pow(t_m, 3.0) / l) * (sin(k_m) / l)));
} else {
tmp = -0.3333333333333333 * (pow((l / fabs(k_m)), 2.0) / t_m);
}
return t_s * tmp;
}
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double t_2 = Math.tan(k_m) * (k_m / (t_m * (t_m / k_m)));
double tmp;
if (k_m <= 4000000.0) {
tmp = Math.pow(((Math.sqrt((Math.cos(k_m) / t_m)) / k_m) * ((l * Math.sqrt(2.0)) / k_m)), 2.0);
} else if (k_m <= 1.8e+18) {
tmp = 2.0 / (((Math.sin(k_m) * Math.pow(t_m, 3.0)) / (l * l)) * t_2);
} else if (k_m <= 1.6e+25) {
tmp = -0.3333333333333333 * (Math.exp(Math.log1p((Math.pow(k_m, -2.0) * (Math.pow(l, 2.0) / t_m)))) + -1.0);
} else if (k_m <= 9.2e+53) {
tmp = 2.0 / (t_2 * ((Math.pow(t_m, 3.0) / l) * (Math.sin(k_m) / l)));
} else {
tmp = -0.3333333333333333 * (Math.pow((l / Math.abs(k_m)), 2.0) / t_m);
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): t_2 = math.tan(k_m) * (k_m / (t_m * (t_m / k_m))) tmp = 0 if k_m <= 4000000.0: tmp = math.pow(((math.sqrt((math.cos(k_m) / t_m)) / k_m) * ((l * math.sqrt(2.0)) / k_m)), 2.0) elif k_m <= 1.8e+18: tmp = 2.0 / (((math.sin(k_m) * math.pow(t_m, 3.0)) / (l * l)) * t_2) elif k_m <= 1.6e+25: tmp = -0.3333333333333333 * (math.exp(math.log1p((math.pow(k_m, -2.0) * (math.pow(l, 2.0) / t_m)))) + -1.0) elif k_m <= 9.2e+53: tmp = 2.0 / (t_2 * ((math.pow(t_m, 3.0) / l) * (math.sin(k_m) / l))) else: tmp = -0.3333333333333333 * (math.pow((l / math.fabs(k_m)), 2.0) / t_m) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) t_2 = Float64(tan(k_m) * Float64(k_m / Float64(t_m * Float64(t_m / k_m)))) tmp = 0.0 if (k_m <= 4000000.0) tmp = Float64(Float64(sqrt(Float64(cos(k_m) / t_m)) / k_m) * Float64(Float64(l * sqrt(2.0)) / k_m)) ^ 2.0; elseif (k_m <= 1.8e+18) tmp = Float64(2.0 / Float64(Float64(Float64(sin(k_m) * (t_m ^ 3.0)) / Float64(l * l)) * t_2)); elseif (k_m <= 1.6e+25) tmp = Float64(-0.3333333333333333 * Float64(exp(log1p(Float64((k_m ^ -2.0) * Float64((l ^ 2.0) / t_m)))) + -1.0)); elseif (k_m <= 9.2e+53) tmp = Float64(2.0 / Float64(t_2 * Float64(Float64((t_m ^ 3.0) / l) * Float64(sin(k_m) / l)))); else tmp = Float64(-0.3333333333333333 * Float64((Float64(l / abs(k_m)) ^ 2.0) / t_m)); end return Float64(t_s * tmp) end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := Block[{t$95$2 = N[(N[Tan[k$95$m], $MachinePrecision] * N[(k$95$m / N[(t$95$m * N[(t$95$m / k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[k$95$m, 4000000.0], N[Power[N[(N[(N[Sqrt[N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision]], $MachinePrecision] / k$95$m), $MachinePrecision] * N[(N[(l * N[Sqrt[2.0], $MachinePrecision]), $MachinePrecision] / k$95$m), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], If[LessEqual[k$95$m, 1.8e+18], N[(2.0 / N[(N[(N[(N[Sin[k$95$m], $MachinePrecision] * N[Power[t$95$m, 3.0], $MachinePrecision]), $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision] * t$95$2), $MachinePrecision]), $MachinePrecision], If[LessEqual[k$95$m, 1.6e+25], N[(-0.3333333333333333 * N[(N[Exp[N[Log[1 + N[(N[Power[k$95$m, -2.0], $MachinePrecision] * N[(N[Power[l, 2.0], $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]], $MachinePrecision] + -1.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[k$95$m, 9.2e+53], N[(2.0 / N[(t$95$2 * N[(N[(N[Power[t$95$m, 3.0], $MachinePrecision] / l), $MachinePrecision] * N[(N[Sin[k$95$m], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(-0.3333333333333333 * N[(N[Power[N[(l / N[Abs[k$95$m], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision]]]]]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := \tan k_m \cdot \frac{k_m}{t_m \cdot \frac{t_m}{k_m}}\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k_m \leq 4000000:\\
\;\;\;\;{\left(\frac{\sqrt{\frac{\cos k_m}{t_m}}}{k_m} \cdot \frac{\ell \cdot \sqrt{2}}{k_m}\right)}^{2}\\
\mathbf{elif}\;k_m \leq 1.8 \cdot 10^{+18}:\\
\;\;\;\;\frac{2}{\frac{\sin k_m \cdot {t_m}^{3}}{\ell \cdot \ell} \cdot t_2}\\
\mathbf{elif}\;k_m \leq 1.6 \cdot 10^{+25}:\\
\;\;\;\;-0.3333333333333333 \cdot \left(e^{\mathsf{log1p}\left({k_m}^{-2} \cdot \frac{{\ell}^{2}}{t_m}\right)} + -1\right)\\
\mathbf{elif}\;k_m \leq 9.2 \cdot 10^{+53}:\\
\;\;\;\;\frac{2}{t_2 \cdot \left(\frac{{t_m}^{3}}{\ell} \cdot \frac{\sin k_m}{\ell}\right)}\\
\mathbf{else}:\\
\;\;\;\;-0.3333333333333333 \cdot \frac{{\left(\frac{\ell}{\left|k_m\right|}\right)}^{2}}{t_m}\\
\end{array}
\end{array}
\end{array}
if k < 4e6Initial program 32.0%
associate-/r*32.0%
*-commutative32.0%
associate-*l*32.0%
associate-*l/32.0%
+-commutative32.0%
unpow232.0%
sqr-neg32.0%
distribute-frac-neg32.0%
distribute-frac-neg32.0%
unpow232.0%
associate--l+39.4%
metadata-eval39.4%
+-rgt-identity39.4%
unpow239.4%
distribute-frac-neg39.4%
distribute-frac-neg39.4%
Simplified39.4%
add-sqr-sqrt25.2%
Applied egg-rr21.5%
unpow221.5%
associate-/l/21.5%
*-commutative21.5%
Simplified21.5%
Taylor expanded in k around inf 41.4%
associate-*l/40.8%
*-commutative40.8%
times-frac43.4%
Simplified43.4%
Taylor expanded in k around 0 36.1%
if 4e6 < k < 1.8e18Initial program 2.4%
associate-*l*2.4%
associate-*l/2.4%
associate--l+2.4%
Simplified2.4%
associate-+r-2.4%
add-exp-log2.4%
log1p-udef2.4%
expm1-udef98.8%
expm1-log1p-u98.8%
unpow298.8%
clear-num98.8%
frac-times100.0%
*-un-lft-identity100.0%
Applied egg-rr100.0%
if 1.8e18 < k < 1.6e25Initial program 0.0%
associate-/r*0.0%
*-commutative0.0%
associate-*l*0.0%
associate-*l/0.0%
+-commutative0.0%
unpow20.0%
sqr-neg0.0%
distribute-frac-neg0.0%
distribute-frac-neg0.0%
unpow20.0%
associate--l+0.7%
metadata-eval0.7%
+-rgt-identity0.7%
unpow20.7%
distribute-frac-neg0.7%
distribute-frac-neg0.7%
Simplified0.7%
Taylor expanded in k around 0 17.4%
Taylor expanded in k around inf 50.7%
*-commutative50.7%
associate-/r*50.7%
Simplified50.7%
div-inv50.7%
pow-flip50.7%
metadata-eval50.7%
Applied egg-rr50.7%
expm1-log1p-u17.2%
expm1-udef17.4%
*-commutative17.4%
Applied egg-rr17.4%
if 1.6e25 < k < 9.20000000000000079e53Initial program 30.7%
associate-*l*30.7%
associate-*l/30.7%
associate--l+30.7%
Simplified30.7%
associate-+r-30.7%
add-exp-log28.2%
log1p-udef28.2%
expm1-udef55.7%
expm1-log1p-u58.2%
unpow258.2%
clear-num57.7%
frac-times57.9%
*-un-lft-identity57.9%
Applied egg-rr57.9%
times-frac70.6%
Applied egg-rr70.6%
if 9.20000000000000079e53 < k Initial program 34.3%
associate-/r*34.3%
*-commutative34.3%
associate-*l*34.3%
associate-*l/34.3%
+-commutative34.3%
unpow234.3%
sqr-neg34.3%
distribute-frac-neg34.3%
distribute-frac-neg34.3%
unpow234.3%
associate--l+48.3%
metadata-eval48.3%
+-rgt-identity48.3%
unpow248.3%
distribute-frac-neg48.3%
distribute-frac-neg48.3%
Simplified48.3%
Taylor expanded in k around 0 59.7%
Taylor expanded in k around inf 61.9%
*-commutative61.9%
associate-/r*61.8%
Simplified61.8%
div-inv61.8%
pow-flip61.9%
metadata-eval61.9%
Applied egg-rr61.9%
expm1-log1p-u61.0%
expm1-udef60.9%
*-commutative60.9%
Applied egg-rr60.9%
expm1-def61.0%
expm1-log1p61.9%
associate-*r/61.8%
*-commutative61.8%
Simplified63.4%
Final simplification42.7%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 1.5e-28)
(pow (* (/ (sqrt (/ (cos k_m) t_m)) k_m) (/ (* l (sqrt 2.0)) k_m)) 2.0)
(/
2.0
(/ (pow (* k_m (sin k_m)) 2.0) (* (cos k_m) (/ (pow l 2.0) t_m)))))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 1.5e-28) {
tmp = pow(((sqrt((cos(k_m) / t_m)) / k_m) * ((l * sqrt(2.0)) / k_m)), 2.0);
} else {
tmp = 2.0 / (pow((k_m * sin(k_m)), 2.0) / (cos(k_m) * (pow(l, 2.0) / t_m)));
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 1.5d-28) then
tmp = ((sqrt((cos(k_m) / t_m)) / k_m) * ((l * sqrt(2.0d0)) / k_m)) ** 2.0d0
else
tmp = 2.0d0 / (((k_m * sin(k_m)) ** 2.0d0) / (cos(k_m) * ((l ** 2.0d0) / t_m)))
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 1.5e-28) {
tmp = Math.pow(((Math.sqrt((Math.cos(k_m) / t_m)) / k_m) * ((l * Math.sqrt(2.0)) / k_m)), 2.0);
} else {
tmp = 2.0 / (Math.pow((k_m * Math.sin(k_m)), 2.0) / (Math.cos(k_m) * (Math.pow(l, 2.0) / t_m)));
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if k_m <= 1.5e-28: tmp = math.pow(((math.sqrt((math.cos(k_m) / t_m)) / k_m) * ((l * math.sqrt(2.0)) / k_m)), 2.0) else: tmp = 2.0 / (math.pow((k_m * math.sin(k_m)), 2.0) / (math.cos(k_m) * (math.pow(l, 2.0) / t_m))) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (k_m <= 1.5e-28) tmp = Float64(Float64(sqrt(Float64(cos(k_m) / t_m)) / k_m) * Float64(Float64(l * sqrt(2.0)) / k_m)) ^ 2.0; else tmp = Float64(2.0 / Float64((Float64(k_m * sin(k_m)) ^ 2.0) / Float64(cos(k_m) * Float64((l ^ 2.0) / t_m)))); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 1.5e-28) tmp = ((sqrt((cos(k_m) / t_m)) / k_m) * ((l * sqrt(2.0)) / k_m)) ^ 2.0; else tmp = 2.0 / (((k_m * sin(k_m)) ^ 2.0) / (cos(k_m) * ((l ^ 2.0) / t_m))); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[k$95$m, 1.5e-28], N[Power[N[(N[(N[Sqrt[N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision]], $MachinePrecision] / k$95$m), $MachinePrecision] * N[(N[(l * N[Sqrt[2.0], $MachinePrecision]), $MachinePrecision] / k$95$m), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], N[(2.0 / N[(N[Power[N[(k$95$m * N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] / N[(N[Cos[k$95$m], $MachinePrecision] * N[(N[Power[l, 2.0], $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k_m \leq 1.5 \cdot 10^{-28}:\\
\;\;\;\;{\left(\frac{\sqrt{\frac{\cos k_m}{t_m}}}{k_m} \cdot \frac{\ell \cdot \sqrt{2}}{k_m}\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{{\left(k_m \cdot \sin k_m\right)}^{2}}{\cos k_m \cdot \frac{{\ell}^{2}}{t_m}}}\\
\end{array}
\end{array}
if k < 1.50000000000000001e-28Initial program 32.1%
associate-/r*32.1%
*-commutative32.1%
associate-*l*32.1%
associate-*l/32.2%
+-commutative32.2%
unpow232.2%
sqr-neg32.2%
distribute-frac-neg32.2%
distribute-frac-neg32.2%
unpow232.2%
associate--l+39.7%
metadata-eval39.7%
+-rgt-identity39.7%
unpow239.7%
distribute-frac-neg39.7%
distribute-frac-neg39.7%
Simplified39.7%
add-sqr-sqrt25.2%
Applied egg-rr20.9%
unpow220.9%
associate-/l/20.9%
*-commutative20.9%
Simplified20.9%
Taylor expanded in k around inf 41.3%
associate-*l/40.7%
*-commutative40.7%
times-frac43.3%
Simplified43.3%
Taylor expanded in k around 0 35.8%
if 1.50000000000000001e-28 < k Initial program 29.1%
associate-/r*29.1%
*-commutative29.1%
associate-*l*29.0%
associate-*l/29.0%
+-commutative29.0%
unpow229.0%
sqr-neg29.0%
distribute-frac-neg29.0%
distribute-frac-neg29.0%
unpow229.0%
associate--l+46.0%
metadata-eval46.0%
+-rgt-identity46.0%
unpow246.0%
distribute-frac-neg46.0%
distribute-frac-neg46.0%
Simplified46.0%
Taylor expanded in k around inf 78.8%
associate-*r/78.8%
times-frac78.8%
associate-/r*78.8%
Simplified78.8%
expm1-log1p-u71.1%
expm1-udef59.1%
frac-times59.1%
associate-/l*59.1%
pow-prod-down59.1%
Applied egg-rr59.1%
expm1-def71.1%
expm1-log1p78.8%
associate-/l*78.9%
associate-/r/78.8%
Simplified78.8%
Final simplification47.6%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 1.9e-28)
(pow (* (/ (sqrt (/ (cos k_m) t_m)) k_m) (/ (* l (sqrt 2.0)) k_m)) 2.0)
(/
(* 2.0 (/ (pow l 2.0) (/ t_m (cos k_m))))
(pow (* k_m (sin k_m)) 2.0)))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 1.9e-28) {
tmp = pow(((sqrt((cos(k_m) / t_m)) / k_m) * ((l * sqrt(2.0)) / k_m)), 2.0);
} else {
tmp = (2.0 * (pow(l, 2.0) / (t_m / cos(k_m)))) / pow((k_m * sin(k_m)), 2.0);
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 1.9d-28) then
tmp = ((sqrt((cos(k_m) / t_m)) / k_m) * ((l * sqrt(2.0d0)) / k_m)) ** 2.0d0
else
tmp = (2.0d0 * ((l ** 2.0d0) / (t_m / cos(k_m)))) / ((k_m * sin(k_m)) ** 2.0d0)
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 1.9e-28) {
tmp = Math.pow(((Math.sqrt((Math.cos(k_m) / t_m)) / k_m) * ((l * Math.sqrt(2.0)) / k_m)), 2.0);
} else {
tmp = (2.0 * (Math.pow(l, 2.0) / (t_m / Math.cos(k_m)))) / Math.pow((k_m * Math.sin(k_m)), 2.0);
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if k_m <= 1.9e-28: tmp = math.pow(((math.sqrt((math.cos(k_m) / t_m)) / k_m) * ((l * math.sqrt(2.0)) / k_m)), 2.0) else: tmp = (2.0 * (math.pow(l, 2.0) / (t_m / math.cos(k_m)))) / math.pow((k_m * math.sin(k_m)), 2.0) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (k_m <= 1.9e-28) tmp = Float64(Float64(sqrt(Float64(cos(k_m) / t_m)) / k_m) * Float64(Float64(l * sqrt(2.0)) / k_m)) ^ 2.0; else tmp = Float64(Float64(2.0 * Float64((l ^ 2.0) / Float64(t_m / cos(k_m)))) / (Float64(k_m * sin(k_m)) ^ 2.0)); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 1.9e-28) tmp = ((sqrt((cos(k_m) / t_m)) / k_m) * ((l * sqrt(2.0)) / k_m)) ^ 2.0; else tmp = (2.0 * ((l ^ 2.0) / (t_m / cos(k_m)))) / ((k_m * sin(k_m)) ^ 2.0); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[k$95$m, 1.9e-28], N[Power[N[(N[(N[Sqrt[N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision]], $MachinePrecision] / k$95$m), $MachinePrecision] * N[(N[(l * N[Sqrt[2.0], $MachinePrecision]), $MachinePrecision] / k$95$m), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], N[(N[(2.0 * N[(N[Power[l, 2.0], $MachinePrecision] / N[(t$95$m / N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[N[(k$95$m * N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k_m \leq 1.9 \cdot 10^{-28}:\\
\;\;\;\;{\left(\frac{\sqrt{\frac{\cos k_m}{t_m}}}{k_m} \cdot \frac{\ell \cdot \sqrt{2}}{k_m}\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot \frac{{\ell}^{2}}{\frac{t_m}{\cos k_m}}}{{\left(k_m \cdot \sin k_m\right)}^{2}}\\
\end{array}
\end{array}
if k < 1.90000000000000005e-28Initial program 32.1%
associate-/r*32.1%
*-commutative32.1%
associate-*l*32.1%
associate-*l/32.2%
+-commutative32.2%
unpow232.2%
sqr-neg32.2%
distribute-frac-neg32.2%
distribute-frac-neg32.2%
unpow232.2%
associate--l+39.7%
metadata-eval39.7%
+-rgt-identity39.7%
unpow239.7%
distribute-frac-neg39.7%
distribute-frac-neg39.7%
Simplified39.7%
add-sqr-sqrt25.2%
Applied egg-rr20.9%
unpow220.9%
associate-/l/20.9%
*-commutative20.9%
Simplified20.9%
Taylor expanded in k around inf 41.3%
associate-*l/40.7%
*-commutative40.7%
times-frac43.3%
Simplified43.3%
Taylor expanded in k around 0 35.8%
if 1.90000000000000005e-28 < k Initial program 29.1%
associate-/r*29.1%
*-commutative29.1%
associate-*l*29.0%
associate-*l/29.0%
+-commutative29.0%
unpow229.0%
sqr-neg29.0%
distribute-frac-neg29.0%
distribute-frac-neg29.0%
unpow229.0%
associate--l+46.0%
metadata-eval46.0%
+-rgt-identity46.0%
unpow246.0%
distribute-frac-neg46.0%
distribute-frac-neg46.0%
Simplified46.0%
Taylor expanded in k around inf 78.8%
associate-*r/78.8%
times-frac78.8%
associate-/r*78.8%
Simplified78.8%
expm1-log1p-u71.1%
expm1-udef59.1%
frac-times59.1%
associate-/l*59.1%
pow-prod-down59.1%
Applied egg-rr59.1%
expm1-def71.1%
expm1-log1p78.8%
Simplified78.8%
Final simplification47.6%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 21000000.0)
(pow (* (/ (* l (sqrt 2.0)) (pow k_m 2.0)) (sqrt (/ 1.0 t_m))) 2.0)
(if (<= k_m 1.3e+53)
(/
2.0
(*
(* (tan k_m) (/ k_m (* t_m (/ t_m k_m))))
(* (/ (pow t_m 3.0) l) (/ (sin k_m) l))))
(* -0.3333333333333333 (/ (pow (/ l (fabs k_m)) 2.0) t_m))))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 21000000.0) {
tmp = pow((((l * sqrt(2.0)) / pow(k_m, 2.0)) * sqrt((1.0 / t_m))), 2.0);
} else if (k_m <= 1.3e+53) {
tmp = 2.0 / ((tan(k_m) * (k_m / (t_m * (t_m / k_m)))) * ((pow(t_m, 3.0) / l) * (sin(k_m) / l)));
} else {
tmp = -0.3333333333333333 * (pow((l / fabs(k_m)), 2.0) / t_m);
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 21000000.0d0) then
tmp = (((l * sqrt(2.0d0)) / (k_m ** 2.0d0)) * sqrt((1.0d0 / t_m))) ** 2.0d0
else if (k_m <= 1.3d+53) then
tmp = 2.0d0 / ((tan(k_m) * (k_m / (t_m * (t_m / k_m)))) * (((t_m ** 3.0d0) / l) * (sin(k_m) / l)))
else
tmp = (-0.3333333333333333d0) * (((l / abs(k_m)) ** 2.0d0) / t_m)
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 21000000.0) {
tmp = Math.pow((((l * Math.sqrt(2.0)) / Math.pow(k_m, 2.0)) * Math.sqrt((1.0 / t_m))), 2.0);
} else if (k_m <= 1.3e+53) {
tmp = 2.0 / ((Math.tan(k_m) * (k_m / (t_m * (t_m / k_m)))) * ((Math.pow(t_m, 3.0) / l) * (Math.sin(k_m) / l)));
} else {
tmp = -0.3333333333333333 * (Math.pow((l / Math.abs(k_m)), 2.0) / t_m);
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if k_m <= 21000000.0: tmp = math.pow((((l * math.sqrt(2.0)) / math.pow(k_m, 2.0)) * math.sqrt((1.0 / t_m))), 2.0) elif k_m <= 1.3e+53: tmp = 2.0 / ((math.tan(k_m) * (k_m / (t_m * (t_m / k_m)))) * ((math.pow(t_m, 3.0) / l) * (math.sin(k_m) / l))) else: tmp = -0.3333333333333333 * (math.pow((l / math.fabs(k_m)), 2.0) / t_m) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (k_m <= 21000000.0) tmp = Float64(Float64(Float64(l * sqrt(2.0)) / (k_m ^ 2.0)) * sqrt(Float64(1.0 / t_m))) ^ 2.0; elseif (k_m <= 1.3e+53) tmp = Float64(2.0 / Float64(Float64(tan(k_m) * Float64(k_m / Float64(t_m * Float64(t_m / k_m)))) * Float64(Float64((t_m ^ 3.0) / l) * Float64(sin(k_m) / l)))); else tmp = Float64(-0.3333333333333333 * Float64((Float64(l / abs(k_m)) ^ 2.0) / t_m)); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 21000000.0) tmp = (((l * sqrt(2.0)) / (k_m ^ 2.0)) * sqrt((1.0 / t_m))) ^ 2.0; elseif (k_m <= 1.3e+53) tmp = 2.0 / ((tan(k_m) * (k_m / (t_m * (t_m / k_m)))) * (((t_m ^ 3.0) / l) * (sin(k_m) / l))); else tmp = -0.3333333333333333 * (((l / abs(k_m)) ^ 2.0) / t_m); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[k$95$m, 21000000.0], N[Power[N[(N[(N[(l * N[Sqrt[2.0], $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(1.0 / t$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], If[LessEqual[k$95$m, 1.3e+53], N[(2.0 / N[(N[(N[Tan[k$95$m], $MachinePrecision] * N[(k$95$m / N[(t$95$m * N[(t$95$m / k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[Power[t$95$m, 3.0], $MachinePrecision] / l), $MachinePrecision] * N[(N[Sin[k$95$m], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(-0.3333333333333333 * N[(N[Power[N[(l / N[Abs[k$95$m], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k_m \leq 21000000:\\
\;\;\;\;{\left(\frac{\ell \cdot \sqrt{2}}{{k_m}^{2}} \cdot \sqrt{\frac{1}{t_m}}\right)}^{2}\\
\mathbf{elif}\;k_m \leq 1.3 \cdot 10^{+53}:\\
\;\;\;\;\frac{2}{\left(\tan k_m \cdot \frac{k_m}{t_m \cdot \frac{t_m}{k_m}}\right) \cdot \left(\frac{{t_m}^{3}}{\ell} \cdot \frac{\sin k_m}{\ell}\right)}\\
\mathbf{else}:\\
\;\;\;\;-0.3333333333333333 \cdot \frac{{\left(\frac{\ell}{\left|k_m\right|}\right)}^{2}}{t_m}\\
\end{array}
\end{array}
if k < 2.1e7Initial program 32.0%
associate-/r*32.0%
*-commutative32.0%
associate-*l*32.0%
associate-*l/32.0%
+-commutative32.0%
unpow232.0%
sqr-neg32.0%
distribute-frac-neg32.0%
distribute-frac-neg32.0%
unpow232.0%
associate--l+39.4%
metadata-eval39.4%
+-rgt-identity39.4%
unpow239.4%
distribute-frac-neg39.4%
distribute-frac-neg39.4%
Simplified39.4%
add-sqr-sqrt25.2%
Applied egg-rr21.5%
unpow221.5%
associate-/l/21.5%
*-commutative21.5%
Simplified21.5%
Taylor expanded in k around 0 35.0%
if 2.1e7 < k < 1.29999999999999999e53Initial program 13.9%
associate-*l*13.9%
associate-*l/13.9%
associate--l+13.9%
Simplified13.9%
associate-+r-13.9%
add-exp-log12.8%
log1p-udef12.8%
expm1-udef43.2%
expm1-log1p-u44.2%
unpow244.2%
clear-num44.1%
frac-times44.4%
*-un-lft-identity44.4%
Applied egg-rr44.4%
times-frac49.9%
Applied egg-rr49.9%
if 1.29999999999999999e53 < k Initial program 34.3%
associate-/r*34.3%
*-commutative34.3%
associate-*l*34.3%
associate-*l/34.3%
+-commutative34.3%
unpow234.3%
sqr-neg34.3%
distribute-frac-neg34.3%
distribute-frac-neg34.3%
unpow234.3%
associate--l+48.3%
metadata-eval48.3%
+-rgt-identity48.3%
unpow248.3%
distribute-frac-neg48.3%
distribute-frac-neg48.3%
Simplified48.3%
Taylor expanded in k around 0 59.7%
Taylor expanded in k around inf 61.9%
*-commutative61.9%
associate-/r*61.8%
Simplified61.8%
div-inv61.8%
pow-flip61.9%
metadata-eval61.9%
Applied egg-rr61.9%
expm1-log1p-u61.0%
expm1-udef60.9%
*-commutative60.9%
Applied egg-rr60.9%
expm1-def61.0%
expm1-log1p61.9%
associate-*r/61.8%
*-commutative61.8%
Simplified63.4%
Final simplification41.5%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 48000000.0)
(pow (* (pow t_m -0.5) (* l (* (sqrt 2.0) (pow k_m -2.0)))) 2.0)
(if (<= k_m 6.8e+52)
(/
2.0
(*
(* (tan k_m) (/ k_m (* t_m (/ t_m k_m))))
(* (/ (pow t_m 3.0) l) (/ (sin k_m) l))))
(* -0.3333333333333333 (/ (pow (/ l (fabs k_m)) 2.0) t_m))))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 48000000.0) {
tmp = pow((pow(t_m, -0.5) * (l * (sqrt(2.0) * pow(k_m, -2.0)))), 2.0);
} else if (k_m <= 6.8e+52) {
tmp = 2.0 / ((tan(k_m) * (k_m / (t_m * (t_m / k_m)))) * ((pow(t_m, 3.0) / l) * (sin(k_m) / l)));
} else {
tmp = -0.3333333333333333 * (pow((l / fabs(k_m)), 2.0) / t_m);
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 48000000.0d0) then
tmp = ((t_m ** (-0.5d0)) * (l * (sqrt(2.0d0) * (k_m ** (-2.0d0))))) ** 2.0d0
else if (k_m <= 6.8d+52) then
tmp = 2.0d0 / ((tan(k_m) * (k_m / (t_m * (t_m / k_m)))) * (((t_m ** 3.0d0) / l) * (sin(k_m) / l)))
else
tmp = (-0.3333333333333333d0) * (((l / abs(k_m)) ** 2.0d0) / t_m)
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 48000000.0) {
tmp = Math.pow((Math.pow(t_m, -0.5) * (l * (Math.sqrt(2.0) * Math.pow(k_m, -2.0)))), 2.0);
} else if (k_m <= 6.8e+52) {
tmp = 2.0 / ((Math.tan(k_m) * (k_m / (t_m * (t_m / k_m)))) * ((Math.pow(t_m, 3.0) / l) * (Math.sin(k_m) / l)));
} else {
tmp = -0.3333333333333333 * (Math.pow((l / Math.abs(k_m)), 2.0) / t_m);
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if k_m <= 48000000.0: tmp = math.pow((math.pow(t_m, -0.5) * (l * (math.sqrt(2.0) * math.pow(k_m, -2.0)))), 2.0) elif k_m <= 6.8e+52: tmp = 2.0 / ((math.tan(k_m) * (k_m / (t_m * (t_m / k_m)))) * ((math.pow(t_m, 3.0) / l) * (math.sin(k_m) / l))) else: tmp = -0.3333333333333333 * (math.pow((l / math.fabs(k_m)), 2.0) / t_m) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (k_m <= 48000000.0) tmp = Float64((t_m ^ -0.5) * Float64(l * Float64(sqrt(2.0) * (k_m ^ -2.0)))) ^ 2.0; elseif (k_m <= 6.8e+52) tmp = Float64(2.0 / Float64(Float64(tan(k_m) * Float64(k_m / Float64(t_m * Float64(t_m / k_m)))) * Float64(Float64((t_m ^ 3.0) / l) * Float64(sin(k_m) / l)))); else tmp = Float64(-0.3333333333333333 * Float64((Float64(l / abs(k_m)) ^ 2.0) / t_m)); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 48000000.0) tmp = ((t_m ^ -0.5) * (l * (sqrt(2.0) * (k_m ^ -2.0)))) ^ 2.0; elseif (k_m <= 6.8e+52) tmp = 2.0 / ((tan(k_m) * (k_m / (t_m * (t_m / k_m)))) * (((t_m ^ 3.0) / l) * (sin(k_m) / l))); else tmp = -0.3333333333333333 * (((l / abs(k_m)) ^ 2.0) / t_m); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[k$95$m, 48000000.0], N[Power[N[(N[Power[t$95$m, -0.5], $MachinePrecision] * N[(l * N[(N[Sqrt[2.0], $MachinePrecision] * N[Power[k$95$m, -2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], If[LessEqual[k$95$m, 6.8e+52], N[(2.0 / N[(N[(N[Tan[k$95$m], $MachinePrecision] * N[(k$95$m / N[(t$95$m * N[(t$95$m / k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[Power[t$95$m, 3.0], $MachinePrecision] / l), $MachinePrecision] * N[(N[Sin[k$95$m], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(-0.3333333333333333 * N[(N[Power[N[(l / N[Abs[k$95$m], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k_m \leq 48000000:\\
\;\;\;\;{\left({t_m}^{-0.5} \cdot \left(\ell \cdot \left(\sqrt{2} \cdot {k_m}^{-2}\right)\right)\right)}^{2}\\
\mathbf{elif}\;k_m \leq 6.8 \cdot 10^{+52}:\\
\;\;\;\;\frac{2}{\left(\tan k_m \cdot \frac{k_m}{t_m \cdot \frac{t_m}{k_m}}\right) \cdot \left(\frac{{t_m}^{3}}{\ell} \cdot \frac{\sin k_m}{\ell}\right)}\\
\mathbf{else}:\\
\;\;\;\;-0.3333333333333333 \cdot \frac{{\left(\frac{\ell}{\left|k_m\right|}\right)}^{2}}{t_m}\\
\end{array}
\end{array}
if k < 4.8e7Initial program 32.0%
associate-/r*32.0%
*-commutative32.0%
associate-*l*32.0%
associate-*l/32.0%
+-commutative32.0%
unpow232.0%
sqr-neg32.0%
distribute-frac-neg32.0%
distribute-frac-neg32.0%
unpow232.0%
associate--l+39.4%
metadata-eval39.4%
+-rgt-identity39.4%
unpow239.4%
distribute-frac-neg39.4%
distribute-frac-neg39.4%
Simplified39.4%
add-sqr-sqrt25.2%
Applied egg-rr21.5%
unpow221.5%
associate-/l/21.5%
*-commutative21.5%
Simplified21.5%
Taylor expanded in k around 0 35.0%
add-log-exp28.8%
exp-prod38.6%
div-inv38.6%
pow-flip38.6%
metadata-eval38.6%
exp-prod34.1%
exp-prod34.1%
pow1/234.1%
inv-pow34.1%
pow-pow34.1%
metadata-eval34.1%
Applied egg-rr34.1%
log-pow23.4%
log-pow21.3%
log-pow21.3%
rem-log-exp35.0%
*-commutative35.0%
*-commutative35.0%
associate-*l*35.0%
Simplified35.0%
if 4.8e7 < k < 6.8e52Initial program 13.9%
associate-*l*13.9%
associate-*l/13.9%
associate--l+13.9%
Simplified13.9%
associate-+r-13.9%
add-exp-log12.8%
log1p-udef12.8%
expm1-udef43.2%
expm1-log1p-u44.2%
unpow244.2%
clear-num44.1%
frac-times44.4%
*-un-lft-identity44.4%
Applied egg-rr44.4%
times-frac49.9%
Applied egg-rr49.9%
if 6.8e52 < k Initial program 34.3%
associate-/r*34.3%
*-commutative34.3%
associate-*l*34.3%
associate-*l/34.3%
+-commutative34.3%
unpow234.3%
sqr-neg34.3%
distribute-frac-neg34.3%
distribute-frac-neg34.3%
unpow234.3%
associate--l+48.3%
metadata-eval48.3%
+-rgt-identity48.3%
unpow248.3%
distribute-frac-neg48.3%
distribute-frac-neg48.3%
Simplified48.3%
Taylor expanded in k around 0 59.7%
Taylor expanded in k around inf 61.9%
*-commutative61.9%
associate-/r*61.8%
Simplified61.8%
div-inv61.8%
pow-flip61.9%
metadata-eval61.9%
Applied egg-rr61.9%
expm1-log1p-u61.0%
expm1-udef60.9%
*-commutative60.9%
Applied egg-rr60.9%
expm1-def61.0%
expm1-log1p61.9%
associate-*r/61.8%
*-commutative61.8%
Simplified63.4%
Final simplification41.5%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= t_m 5.4e-93)
(* (/ 1.0 t_m) (pow (* (* l (sqrt 2.0)) (pow k_m -2.0)) 2.0))
(if (<= t_m 1.28e+95)
(/
2.0
(*
(* (tan k_m) (/ k_m (* t_m (/ t_m k_m))))
(* (/ (pow t_m 3.0) l) (/ (sin k_m) l))))
(/ 2.0 (/ (* t_m (pow k_m 2.0)) (pow (/ l (fabs k_m)) 2.0)))))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (t_m <= 5.4e-93) {
tmp = (1.0 / t_m) * pow(((l * sqrt(2.0)) * pow(k_m, -2.0)), 2.0);
} else if (t_m <= 1.28e+95) {
tmp = 2.0 / ((tan(k_m) * (k_m / (t_m * (t_m / k_m)))) * ((pow(t_m, 3.0) / l) * (sin(k_m) / l)));
} else {
tmp = 2.0 / ((t_m * pow(k_m, 2.0)) / pow((l / fabs(k_m)), 2.0));
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (t_m <= 5.4d-93) then
tmp = (1.0d0 / t_m) * (((l * sqrt(2.0d0)) * (k_m ** (-2.0d0))) ** 2.0d0)
else if (t_m <= 1.28d+95) then
tmp = 2.0d0 / ((tan(k_m) * (k_m / (t_m * (t_m / k_m)))) * (((t_m ** 3.0d0) / l) * (sin(k_m) / l)))
else
tmp = 2.0d0 / ((t_m * (k_m ** 2.0d0)) / ((l / abs(k_m)) ** 2.0d0))
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (t_m <= 5.4e-93) {
tmp = (1.0 / t_m) * Math.pow(((l * Math.sqrt(2.0)) * Math.pow(k_m, -2.0)), 2.0);
} else if (t_m <= 1.28e+95) {
tmp = 2.0 / ((Math.tan(k_m) * (k_m / (t_m * (t_m / k_m)))) * ((Math.pow(t_m, 3.0) / l) * (Math.sin(k_m) / l)));
} else {
tmp = 2.0 / ((t_m * Math.pow(k_m, 2.0)) / Math.pow((l / Math.abs(k_m)), 2.0));
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if t_m <= 5.4e-93: tmp = (1.0 / t_m) * math.pow(((l * math.sqrt(2.0)) * math.pow(k_m, -2.0)), 2.0) elif t_m <= 1.28e+95: tmp = 2.0 / ((math.tan(k_m) * (k_m / (t_m * (t_m / k_m)))) * ((math.pow(t_m, 3.0) / l) * (math.sin(k_m) / l))) else: tmp = 2.0 / ((t_m * math.pow(k_m, 2.0)) / math.pow((l / math.fabs(k_m)), 2.0)) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (t_m <= 5.4e-93) tmp = Float64(Float64(1.0 / t_m) * (Float64(Float64(l * sqrt(2.0)) * (k_m ^ -2.0)) ^ 2.0)); elseif (t_m <= 1.28e+95) tmp = Float64(2.0 / Float64(Float64(tan(k_m) * Float64(k_m / Float64(t_m * Float64(t_m / k_m)))) * Float64(Float64((t_m ^ 3.0) / l) * Float64(sin(k_m) / l)))); else tmp = Float64(2.0 / Float64(Float64(t_m * (k_m ^ 2.0)) / (Float64(l / abs(k_m)) ^ 2.0))); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (t_m <= 5.4e-93) tmp = (1.0 / t_m) * (((l * sqrt(2.0)) * (k_m ^ -2.0)) ^ 2.0); elseif (t_m <= 1.28e+95) tmp = 2.0 / ((tan(k_m) * (k_m / (t_m * (t_m / k_m)))) * (((t_m ^ 3.0) / l) * (sin(k_m) / l))); else tmp = 2.0 / ((t_m * (k_m ^ 2.0)) / ((l / abs(k_m)) ^ 2.0)); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[t$95$m, 5.4e-93], N[(N[(1.0 / t$95$m), $MachinePrecision] * N[Power[N[(N[(l * N[Sqrt[2.0], $MachinePrecision]), $MachinePrecision] * N[Power[k$95$m, -2.0], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 1.28e+95], N[(2.0 / N[(N[(N[Tan[k$95$m], $MachinePrecision] * N[(k$95$m / N[(t$95$m * N[(t$95$m / k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[Power[t$95$m, 3.0], $MachinePrecision] / l), $MachinePrecision] * N[(N[Sin[k$95$m], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(t$95$m * N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] / N[Power[N[(l / N[Abs[k$95$m], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 5.4 \cdot 10^{-93}:\\
\;\;\;\;\frac{1}{t_m} \cdot {\left(\left(\ell \cdot \sqrt{2}\right) \cdot {k_m}^{-2}\right)}^{2}\\
\mathbf{elif}\;t_m \leq 1.28 \cdot 10^{+95}:\\
\;\;\;\;\frac{2}{\left(\tan k_m \cdot \frac{k_m}{t_m \cdot \frac{t_m}{k_m}}\right) \cdot \left(\frac{{t_m}^{3}}{\ell} \cdot \frac{\sin k_m}{\ell}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{t_m \cdot {k_m}^{2}}{{\left(\frac{\ell}{\left|k_m\right|}\right)}^{2}}}\\
\end{array}
\end{array}
if t < 5.4000000000000002e-93Initial program 30.7%
associate-/r*30.7%
*-commutative30.7%
associate-*l*30.7%
associate-*l/30.7%
+-commutative30.7%
unpow230.7%
sqr-neg30.7%
distribute-frac-neg30.7%
distribute-frac-neg30.7%
unpow230.7%
associate--l+39.0%
metadata-eval39.0%
+-rgt-identity39.0%
unpow239.0%
distribute-frac-neg39.0%
distribute-frac-neg39.0%
Simplified39.0%
add-sqr-sqrt23.3%
Applied egg-rr7.9%
unpow27.9%
associate-/l/7.9%
*-commutative7.9%
Simplified7.9%
Taylor expanded in k around 0 12.6%
unpow-prod-down12.6%
div-inv12.6%
pow-flip12.6%
metadata-eval12.6%
pow212.6%
add-sqr-sqrt70.1%
Applied egg-rr70.1%
if 5.4000000000000002e-93 < t < 1.28000000000000006e95Initial program 52.6%
associate-*l*52.7%
associate-*l/52.7%
associate--l+52.7%
Simplified52.7%
associate-+r-52.7%
add-exp-log52.3%
log1p-udef52.3%
expm1-udef65.6%
expm1-log1p-u66.0%
unpow266.0%
clear-num66.0%
frac-times66.1%
*-un-lft-identity66.1%
Applied egg-rr66.1%
times-frac71.7%
Applied egg-rr71.7%
if 1.28000000000000006e95 < t Initial program 14.6%
associate-*l*14.6%
associate-*l/14.6%
associate--l+14.6%
Simplified14.6%
Taylor expanded in t around 0 73.8%
times-frac73.9%
Simplified73.9%
clear-num74.0%
inv-pow74.0%
Applied egg-rr74.0%
unpow-174.0%
Simplified74.0%
inv-pow74.0%
add-sqr-sqrt73.8%
unpow-prod-down73.8%
div-inv73.8%
sqrt-prod73.9%
unpow273.9%
sqrt-prod34.9%
add-sqr-sqrt49.8%
pow-flip49.8%
metadata-eval49.8%
Applied egg-rr84.2%
pow-sqr84.1%
sqr-pow84.1%
rem-sqrt-square87.9%
metadata-eval87.9%
unpow-187.9%
metadata-eval87.9%
Simplified87.9%
Taylor expanded in k around 0 67.0%
*-commutative67.0%
unpow267.0%
fabs-div67.0%
metadata-eval67.0%
unpow267.0%
swap-sqr76.6%
unpow176.6%
pow-plus76.6%
associate-*r/76.6%
*-rgt-identity76.6%
metadata-eval76.6%
Simplified76.6%
Final simplification71.4%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= (* l l) 2e-49)
(* (/ 1.0 t_m) (pow (* (* l (sqrt 2.0)) (pow k_m -2.0)) 2.0))
(/ (* (pow l 2.0) (/ 2.0 t_m)) (pow k_m 4.0)))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if ((l * l) <= 2e-49) {
tmp = (1.0 / t_m) * pow(((l * sqrt(2.0)) * pow(k_m, -2.0)), 2.0);
} else {
tmp = (pow(l, 2.0) * (2.0 / t_m)) / pow(k_m, 4.0);
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if ((l * l) <= 2d-49) then
tmp = (1.0d0 / t_m) * (((l * sqrt(2.0d0)) * (k_m ** (-2.0d0))) ** 2.0d0)
else
tmp = ((l ** 2.0d0) * (2.0d0 / t_m)) / (k_m ** 4.0d0)
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if ((l * l) <= 2e-49) {
tmp = (1.0 / t_m) * Math.pow(((l * Math.sqrt(2.0)) * Math.pow(k_m, -2.0)), 2.0);
} else {
tmp = (Math.pow(l, 2.0) * (2.0 / t_m)) / Math.pow(k_m, 4.0);
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if (l * l) <= 2e-49: tmp = (1.0 / t_m) * math.pow(((l * math.sqrt(2.0)) * math.pow(k_m, -2.0)), 2.0) else: tmp = (math.pow(l, 2.0) * (2.0 / t_m)) / math.pow(k_m, 4.0) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (Float64(l * l) <= 2e-49) tmp = Float64(Float64(1.0 / t_m) * (Float64(Float64(l * sqrt(2.0)) * (k_m ^ -2.0)) ^ 2.0)); else tmp = Float64(Float64((l ^ 2.0) * Float64(2.0 / t_m)) / (k_m ^ 4.0)); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if ((l * l) <= 2e-49) tmp = (1.0 / t_m) * (((l * sqrt(2.0)) * (k_m ^ -2.0)) ^ 2.0); else tmp = ((l ^ 2.0) * (2.0 / t_m)) / (k_m ^ 4.0); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[N[(l * l), $MachinePrecision], 2e-49], N[(N[(1.0 / t$95$m), $MachinePrecision] * N[Power[N[(N[(l * N[Sqrt[2.0], $MachinePrecision]), $MachinePrecision] * N[Power[k$95$m, -2.0], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[(2.0 / t$95$m), $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 4.0], $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \cdot \ell \leq 2 \cdot 10^{-49}:\\
\;\;\;\;\frac{1}{t_m} \cdot {\left(\left(\ell \cdot \sqrt{2}\right) \cdot {k_m}^{-2}\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{{\ell}^{2} \cdot \frac{2}{t_m}}{{k_m}^{4}}\\
\end{array}
\end{array}
if (*.f64 l l) < 1.99999999999999987e-49Initial program 28.0%
associate-/r*28.0%
*-commutative28.0%
associate-*l*28.0%
associate-*l/28.0%
+-commutative28.0%
unpow228.0%
sqr-neg28.0%
distribute-frac-neg28.0%
distribute-frac-neg28.0%
unpow228.0%
associate--l+41.0%
metadata-eval41.0%
+-rgt-identity41.0%
unpow241.0%
distribute-frac-neg41.0%
distribute-frac-neg41.0%
Simplified41.0%
add-sqr-sqrt37.0%
Applied egg-rr13.8%
unpow213.8%
associate-/l/13.8%
*-commutative13.8%
Simplified13.8%
Taylor expanded in k around 0 40.0%
unpow-prod-down39.3%
div-inv39.4%
pow-flip39.4%
metadata-eval39.4%
pow239.4%
add-sqr-sqrt89.7%
Applied egg-rr89.7%
if 1.99999999999999987e-49 < (*.f64 l l) Initial program 34.4%
associate-*l*34.4%
associate-*l/34.4%
associate--l+34.4%
Simplified34.4%
Taylor expanded in k around 0 54.5%
add-cube-cbrt54.4%
pow354.4%
*-commutative54.4%
Applied egg-rr54.4%
Taylor expanded in t around 0 54.5%
associate-*r/54.5%
*-commutative54.5%
associate-*l/54.5%
associate-/r*54.5%
associate-*l/55.8%
Simplified55.8%
Final simplification72.1%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= t_m 2.1e+76)
(* (/ 1.0 t_m) (pow (* (* l (sqrt 2.0)) (pow k_m -2.0)) 2.0))
(/ 2.0 (/ (* t_m (pow k_m 2.0)) (pow (/ l (fabs k_m)) 2.0))))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (t_m <= 2.1e+76) {
tmp = (1.0 / t_m) * pow(((l * sqrt(2.0)) * pow(k_m, -2.0)), 2.0);
} else {
tmp = 2.0 / ((t_m * pow(k_m, 2.0)) / pow((l / fabs(k_m)), 2.0));
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (t_m <= 2.1d+76) then
tmp = (1.0d0 / t_m) * (((l * sqrt(2.0d0)) * (k_m ** (-2.0d0))) ** 2.0d0)
else
tmp = 2.0d0 / ((t_m * (k_m ** 2.0d0)) / ((l / abs(k_m)) ** 2.0d0))
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (t_m <= 2.1e+76) {
tmp = (1.0 / t_m) * Math.pow(((l * Math.sqrt(2.0)) * Math.pow(k_m, -2.0)), 2.0);
} else {
tmp = 2.0 / ((t_m * Math.pow(k_m, 2.0)) / Math.pow((l / Math.abs(k_m)), 2.0));
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if t_m <= 2.1e+76: tmp = (1.0 / t_m) * math.pow(((l * math.sqrt(2.0)) * math.pow(k_m, -2.0)), 2.0) else: tmp = 2.0 / ((t_m * math.pow(k_m, 2.0)) / math.pow((l / math.fabs(k_m)), 2.0)) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (t_m <= 2.1e+76) tmp = Float64(Float64(1.0 / t_m) * (Float64(Float64(l * sqrt(2.0)) * (k_m ^ -2.0)) ^ 2.0)); else tmp = Float64(2.0 / Float64(Float64(t_m * (k_m ^ 2.0)) / (Float64(l / abs(k_m)) ^ 2.0))); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (t_m <= 2.1e+76) tmp = (1.0 / t_m) * (((l * sqrt(2.0)) * (k_m ^ -2.0)) ^ 2.0); else tmp = 2.0 / ((t_m * (k_m ^ 2.0)) / ((l / abs(k_m)) ^ 2.0)); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[t$95$m, 2.1e+76], N[(N[(1.0 / t$95$m), $MachinePrecision] * N[Power[N[(N[(l * N[Sqrt[2.0], $MachinePrecision]), $MachinePrecision] * N[Power[k$95$m, -2.0], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(t$95$m * N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] / N[Power[N[(l / N[Abs[k$95$m], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 2.1 \cdot 10^{+76}:\\
\;\;\;\;\frac{1}{t_m} \cdot {\left(\left(\ell \cdot \sqrt{2}\right) \cdot {k_m}^{-2}\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{t_m \cdot {k_m}^{2}}{{\left(\frac{\ell}{\left|k_m\right|}\right)}^{2}}}\\
\end{array}
\end{array}
if t < 2.10000000000000007e76Initial program 33.8%
associate-/r*33.8%
*-commutative33.8%
associate-*l*33.8%
associate-*l/33.9%
+-commutative33.9%
unpow233.9%
sqr-neg33.9%
distribute-frac-neg33.9%
distribute-frac-neg33.9%
unpow233.9%
associate--l+42.3%
metadata-eval42.3%
+-rgt-identity42.3%
unpow242.3%
distribute-frac-neg42.3%
distribute-frac-neg42.3%
Simplified42.3%
add-sqr-sqrt29.0%
Applied egg-rr14.7%
unpow214.7%
associate-/l/14.7%
*-commutative14.7%
Simplified14.7%
Taylor expanded in k around 0 21.4%
unpow-prod-down21.0%
div-inv21.0%
pow-flip21.0%
metadata-eval21.0%
pow221.0%
add-sqr-sqrt69.7%
Applied egg-rr69.7%
if 2.10000000000000007e76 < t Initial program 19.7%
associate-*l*19.7%
associate-*l/19.7%
associate--l+19.7%
Simplified19.7%
Taylor expanded in t around 0 76.5%
times-frac76.7%
Simplified76.7%
clear-num76.7%
inv-pow76.7%
Applied egg-rr76.7%
unpow-176.7%
Simplified76.7%
inv-pow76.7%
add-sqr-sqrt76.6%
unpow-prod-down76.5%
div-inv76.6%
sqrt-prod76.6%
unpow276.6%
sqrt-prod35.4%
add-sqr-sqrt50.9%
pow-flip50.9%
metadata-eval50.9%
Applied egg-rr85.9%
pow-sqr85.8%
sqr-pow85.8%
rem-sqrt-square89.1%
metadata-eval89.1%
unpow-189.1%
metadata-eval89.1%
Simplified89.1%
Taylor expanded in k around 0 66.5%
*-commutative66.5%
unpow266.5%
fabs-div66.5%
metadata-eval66.5%
unpow266.5%
swap-sqr75.0%
unpow175.0%
pow-plus75.0%
associate-*r/75.0%
*-rgt-identity75.0%
metadata-eval75.0%
Simplified75.0%
Final simplification70.7%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 5.4e+14)
(pow (* l (sqrt (/ 2.0 (* t_m (pow k_m 4.0))))) 2.0)
(* -0.3333333333333333 (/ (pow (/ l (fabs k_m)) 2.0) t_m)))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 5.4e+14) {
tmp = pow((l * sqrt((2.0 / (t_m * pow(k_m, 4.0))))), 2.0);
} else {
tmp = -0.3333333333333333 * (pow((l / fabs(k_m)), 2.0) / t_m);
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 5.4d+14) then
tmp = (l * sqrt((2.0d0 / (t_m * (k_m ** 4.0d0))))) ** 2.0d0
else
tmp = (-0.3333333333333333d0) * (((l / abs(k_m)) ** 2.0d0) / t_m)
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 5.4e+14) {
tmp = Math.pow((l * Math.sqrt((2.0 / (t_m * Math.pow(k_m, 4.0))))), 2.0);
} else {
tmp = -0.3333333333333333 * (Math.pow((l / Math.abs(k_m)), 2.0) / t_m);
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if k_m <= 5.4e+14: tmp = math.pow((l * math.sqrt((2.0 / (t_m * math.pow(k_m, 4.0))))), 2.0) else: tmp = -0.3333333333333333 * (math.pow((l / math.fabs(k_m)), 2.0) / t_m) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (k_m <= 5.4e+14) tmp = Float64(l * sqrt(Float64(2.0 / Float64(t_m * (k_m ^ 4.0))))) ^ 2.0; else tmp = Float64(-0.3333333333333333 * Float64((Float64(l / abs(k_m)) ^ 2.0) / t_m)); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 5.4e+14) tmp = (l * sqrt((2.0 / (t_m * (k_m ^ 4.0))))) ^ 2.0; else tmp = -0.3333333333333333 * (((l / abs(k_m)) ^ 2.0) / t_m); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[k$95$m, 5.4e+14], N[Power[N[(l * N[Sqrt[N[(2.0 / N[(t$95$m * N[Power[k$95$m, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], N[(-0.3333333333333333 * N[(N[Power[N[(l / N[Abs[k$95$m], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k_m \leq 5.4 \cdot 10^{+14}:\\
\;\;\;\;{\left(\ell \cdot \sqrt{\frac{2}{t_m \cdot {k_m}^{4}}}\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;-0.3333333333333333 \cdot \frac{{\left(\frac{\ell}{\left|k_m\right|}\right)}^{2}}{t_m}\\
\end{array}
\end{array}
if k < 5.4e14Initial program 31.7%
associate-*l*31.7%
associate-*l/31.7%
associate--l+31.7%
Simplified31.7%
Taylor expanded in k around 0 59.4%
add-cube-cbrt59.3%
pow359.3%
*-commutative59.3%
Applied egg-rr59.3%
add-sqr-sqrt38.2%
pow238.2%
rem-cube-cbrt38.2%
associate-/r/38.2%
sqrt-prod36.6%
unpow236.6%
sqrt-prod17.1%
add-sqr-sqrt40.9%
Applied egg-rr40.9%
if 5.4e14 < k Initial program 30.1%
associate-/r*30.2%
*-commutative30.2%
associate-*l*30.1%
associate-*l/30.1%
+-commutative30.1%
unpow230.1%
sqr-neg30.1%
distribute-frac-neg30.1%
distribute-frac-neg30.1%
unpow230.1%
associate--l+45.7%
metadata-eval45.7%
+-rgt-identity45.7%
unpow245.7%
distribute-frac-neg45.7%
distribute-frac-neg45.7%
Simplified45.7%
Taylor expanded in k around 0 50.7%
Taylor expanded in k around inf 55.8%
*-commutative55.8%
associate-/r*55.7%
Simplified55.7%
div-inv55.7%
pow-flip55.8%
metadata-eval55.8%
Applied egg-rr55.8%
expm1-log1p-u51.5%
expm1-udef51.1%
*-commutative51.1%
Applied egg-rr51.1%
expm1-def51.5%
expm1-log1p55.8%
associate-*r/55.6%
*-commutative55.6%
Simplified56.8%
Final simplification44.8%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 2.25e+48)
(* (pow l 2.0) (/ 2.0 (* t_m (pow k_m 4.0))))
(* -0.3333333333333333 (/ (pow (/ l (fabs k_m)) 2.0) t_m)))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 2.25e+48) {
tmp = pow(l, 2.0) * (2.0 / (t_m * pow(k_m, 4.0)));
} else {
tmp = -0.3333333333333333 * (pow((l / fabs(k_m)), 2.0) / t_m);
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 2.25d+48) then
tmp = (l ** 2.0d0) * (2.0d0 / (t_m * (k_m ** 4.0d0)))
else
tmp = (-0.3333333333333333d0) * (((l / abs(k_m)) ** 2.0d0) / t_m)
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 2.25e+48) {
tmp = Math.pow(l, 2.0) * (2.0 / (t_m * Math.pow(k_m, 4.0)));
} else {
tmp = -0.3333333333333333 * (Math.pow((l / Math.abs(k_m)), 2.0) / t_m);
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if k_m <= 2.25e+48: tmp = math.pow(l, 2.0) * (2.0 / (t_m * math.pow(k_m, 4.0))) else: tmp = -0.3333333333333333 * (math.pow((l / math.fabs(k_m)), 2.0) / t_m) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (k_m <= 2.25e+48) tmp = Float64((l ^ 2.0) * Float64(2.0 / Float64(t_m * (k_m ^ 4.0)))); else tmp = Float64(-0.3333333333333333 * Float64((Float64(l / abs(k_m)) ^ 2.0) / t_m)); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 2.25e+48) tmp = (l ^ 2.0) * (2.0 / (t_m * (k_m ^ 4.0))); else tmp = -0.3333333333333333 * (((l / abs(k_m)) ^ 2.0) / t_m); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[k$95$m, 2.25e+48], N[(N[Power[l, 2.0], $MachinePrecision] * N[(2.0 / N[(t$95$m * N[Power[k$95$m, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(-0.3333333333333333 * N[(N[Power[N[(l / N[Abs[k$95$m], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k_m \leq 2.25 \cdot 10^{+48}:\\
\;\;\;\;{\ell}^{2} \cdot \frac{2}{t_m \cdot {k_m}^{4}}\\
\mathbf{else}:\\
\;\;\;\;-0.3333333333333333 \cdot \frac{{\left(\frac{\ell}{\left|k_m\right|}\right)}^{2}}{t_m}\\
\end{array}
\end{array}
if k < 2.24999999999999998e48Initial program 30.2%
associate-*l*30.3%
associate-*l/30.3%
associate--l+30.3%
Simplified30.3%
Taylor expanded in k around 0 57.3%
associate-/r/57.3%
*-commutative57.3%
Applied egg-rr57.3%
if 2.24999999999999998e48 < k Initial program 35.5%
associate-/r*35.6%
*-commutative35.6%
associate-*l*35.5%
associate-*l/35.5%
+-commutative35.5%
unpow235.5%
sqr-neg35.5%
distribute-frac-neg35.5%
distribute-frac-neg35.5%
unpow235.5%
associate--l+49.3%
metadata-eval49.3%
+-rgt-identity49.3%
unpow249.3%
distribute-frac-neg49.3%
distribute-frac-neg49.3%
Simplified49.3%
Taylor expanded in k around 0 58.9%
Taylor expanded in k around inf 61.1%
*-commutative61.1%
associate-/r*61.0%
Simplified61.0%
div-inv61.0%
pow-flip61.1%
metadata-eval61.1%
Applied egg-rr61.1%
expm1-log1p-u59.8%
expm1-udef59.7%
*-commutative59.7%
Applied egg-rr59.7%
expm1-def59.8%
expm1-log1p61.1%
associate-*r/60.9%
*-commutative60.9%
Simplified62.5%
Final simplification58.3%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 2.25e+48)
(/ 2.0 (/ (* t_m (pow k_m 4.0)) (pow l 2.0)))
(* -0.3333333333333333 (/ (pow (/ l (fabs k_m)) 2.0) t_m)))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 2.25e+48) {
tmp = 2.0 / ((t_m * pow(k_m, 4.0)) / pow(l, 2.0));
} else {
tmp = -0.3333333333333333 * (pow((l / fabs(k_m)), 2.0) / t_m);
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 2.25d+48) then
tmp = 2.0d0 / ((t_m * (k_m ** 4.0d0)) / (l ** 2.0d0))
else
tmp = (-0.3333333333333333d0) * (((l / abs(k_m)) ** 2.0d0) / t_m)
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 2.25e+48) {
tmp = 2.0 / ((t_m * Math.pow(k_m, 4.0)) / Math.pow(l, 2.0));
} else {
tmp = -0.3333333333333333 * (Math.pow((l / Math.abs(k_m)), 2.0) / t_m);
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if k_m <= 2.25e+48: tmp = 2.0 / ((t_m * math.pow(k_m, 4.0)) / math.pow(l, 2.0)) else: tmp = -0.3333333333333333 * (math.pow((l / math.fabs(k_m)), 2.0) / t_m) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (k_m <= 2.25e+48) tmp = Float64(2.0 / Float64(Float64(t_m * (k_m ^ 4.0)) / (l ^ 2.0))); else tmp = Float64(-0.3333333333333333 * Float64((Float64(l / abs(k_m)) ^ 2.0) / t_m)); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 2.25e+48) tmp = 2.0 / ((t_m * (k_m ^ 4.0)) / (l ^ 2.0)); else tmp = -0.3333333333333333 * (((l / abs(k_m)) ^ 2.0) / t_m); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[k$95$m, 2.25e+48], N[(2.0 / N[(N[(t$95$m * N[Power[k$95$m, 4.0], $MachinePrecision]), $MachinePrecision] / N[Power[l, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(-0.3333333333333333 * N[(N[Power[N[(l / N[Abs[k$95$m], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k_m \leq 2.25 \cdot 10^{+48}:\\
\;\;\;\;\frac{2}{\frac{t_m \cdot {k_m}^{4}}{{\ell}^{2}}}\\
\mathbf{else}:\\
\;\;\;\;-0.3333333333333333 \cdot \frac{{\left(\frac{\ell}{\left|k_m\right|}\right)}^{2}}{t_m}\\
\end{array}
\end{array}
if k < 2.24999999999999998e48Initial program 30.2%
associate-*l*30.3%
associate-*l/30.3%
associate--l+30.3%
Simplified30.3%
Taylor expanded in k around 0 57.3%
if 2.24999999999999998e48 < k Initial program 35.5%
associate-/r*35.6%
*-commutative35.6%
associate-*l*35.5%
associate-*l/35.5%
+-commutative35.5%
unpow235.5%
sqr-neg35.5%
distribute-frac-neg35.5%
distribute-frac-neg35.5%
unpow235.5%
associate--l+49.3%
metadata-eval49.3%
+-rgt-identity49.3%
unpow249.3%
distribute-frac-neg49.3%
distribute-frac-neg49.3%
Simplified49.3%
Taylor expanded in k around 0 58.9%
Taylor expanded in k around inf 61.1%
*-commutative61.1%
associate-/r*61.0%
Simplified61.0%
div-inv61.0%
pow-flip61.1%
metadata-eval61.1%
Applied egg-rr61.1%
expm1-log1p-u59.8%
expm1-udef59.7%
*-commutative59.7%
Applied egg-rr59.7%
expm1-def59.8%
expm1-log1p61.1%
associate-*r/60.9%
*-commutative60.9%
Simplified62.5%
Final simplification58.4%
k_m = (fabs.f64 k) t_m = (fabs.f64 t) t_s = (copysign.f64 1 t) (FPCore (t_s t_m l k_m) :precision binary64 (* t_s (* -0.3333333333333333 (/ (pow (/ l (fabs k_m)) 2.0) t_m))))
k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
return t_s * (-0.3333333333333333 * (pow((l / fabs(k_m)), 2.0) / t_m));
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
code = t_s * ((-0.3333333333333333d0) * (((l / abs(k_m)) ** 2.0d0) / t_m))
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
return t_s * (-0.3333333333333333 * (Math.pow((l / Math.abs(k_m)), 2.0) / t_m));
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): return t_s * (-0.3333333333333333 * (math.pow((l / math.fabs(k_m)), 2.0) / t_m))
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) return Float64(t_s * Float64(-0.3333333333333333 * Float64((Float64(l / abs(k_m)) ^ 2.0) / t_m))) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp = code(t_s, t_m, l, k_m) tmp = t_s * (-0.3333333333333333 * (((l / abs(k_m)) ^ 2.0) / t_m)); end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * N[(-0.3333333333333333 * N[(N[Power[N[(l / N[Abs[k$95$m], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \left(-0.3333333333333333 \cdot \frac{{\left(\frac{\ell}{\left|k_m\right|}\right)}^{2}}{t_m}\right)
\end{array}
Initial program 31.3%
associate-/r*31.3%
*-commutative31.3%
associate-*l*31.3%
associate-*l/31.3%
+-commutative31.3%
unpow231.3%
sqr-neg31.3%
distribute-frac-neg31.3%
distribute-frac-neg31.3%
unpow231.3%
associate--l+41.4%
metadata-eval41.4%
+-rgt-identity41.4%
unpow241.4%
distribute-frac-neg41.4%
distribute-frac-neg41.4%
Simplified41.4%
Taylor expanded in k around 0 39.4%
Taylor expanded in k around inf 33.3%
*-commutative33.3%
associate-/r*33.2%
Simplified33.2%
div-inv33.2%
pow-flip33.4%
metadata-eval33.4%
Applied egg-rr33.4%
expm1-log1p-u31.8%
expm1-udef31.4%
*-commutative31.4%
Applied egg-rr31.4%
expm1-def31.8%
expm1-log1p33.4%
associate-*r/33.3%
*-commutative33.3%
Simplified34.7%
Final simplification34.7%
herbie shell --seed 2023332
(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))))