
(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 18 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
(let* ((t_2 (* (sin k_m) (tan k_m))))
(*
t_s
(if (<= k_m 1.35e-145)
(sqrt (/ 4.0 (pow (* (* (/ k_m l) (sqrt t_m)) (sqrt t_2)) 4.0)))
(if (<= k_m 2.3e+124)
(/
2.0
(/
(pow k_m 2.0)
(/ (* (pow l 2.0) (cos k_m)) (* t_m (pow (sin k_m) 2.0)))))
(/
2.0
(pow
(* (pow (cbrt (/ k_m t_m)) 2.0) (/ t_m (cbrt (/ (pow l 2.0) t_2))))
3.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 = sin(k_m) * tan(k_m);
double tmp;
if (k_m <= 1.35e-145) {
tmp = sqrt((4.0 / pow((((k_m / l) * sqrt(t_m)) * sqrt(t_2)), 4.0)));
} else if (k_m <= 2.3e+124) {
tmp = 2.0 / (pow(k_m, 2.0) / ((pow(l, 2.0) * cos(k_m)) / (t_m * pow(sin(k_m), 2.0))));
} else {
tmp = 2.0 / pow((pow(cbrt((k_m / t_m)), 2.0) * (t_m / cbrt((pow(l, 2.0) / t_2)))), 3.0);
}
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.sin(k_m) * Math.tan(k_m);
double tmp;
if (k_m <= 1.35e-145) {
tmp = Math.sqrt((4.0 / Math.pow((((k_m / l) * Math.sqrt(t_m)) * Math.sqrt(t_2)), 4.0)));
} else if (k_m <= 2.3e+124) {
tmp = 2.0 / (Math.pow(k_m, 2.0) / ((Math.pow(l, 2.0) * Math.cos(k_m)) / (t_m * Math.pow(Math.sin(k_m), 2.0))));
} else {
tmp = 2.0 / Math.pow((Math.pow(Math.cbrt((k_m / t_m)), 2.0) * (t_m / Math.cbrt((Math.pow(l, 2.0) / t_2)))), 3.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(sin(k_m) * tan(k_m)) tmp = 0.0 if (k_m <= 1.35e-145) tmp = sqrt(Float64(4.0 / (Float64(Float64(Float64(k_m / l) * sqrt(t_m)) * sqrt(t_2)) ^ 4.0))); elseif (k_m <= 2.3e+124) tmp = Float64(2.0 / Float64((k_m ^ 2.0) / Float64(Float64((l ^ 2.0) * cos(k_m)) / Float64(t_m * (sin(k_m) ^ 2.0))))); else tmp = Float64(2.0 / (Float64((cbrt(Float64(k_m / t_m)) ^ 2.0) * Float64(t_m / cbrt(Float64((l ^ 2.0) / t_2)))) ^ 3.0)); 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[Sin[k$95$m], $MachinePrecision] * N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[k$95$m, 1.35e-145], N[Sqrt[N[(4.0 / N[Power[N[(N[(N[(k$95$m / l), $MachinePrecision] * N[Sqrt[t$95$m], $MachinePrecision]), $MachinePrecision] * N[Sqrt[t$95$2], $MachinePrecision]), $MachinePrecision], 4.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[k$95$m, 2.3e+124], N[(2.0 / N[(N[Power[k$95$m, 2.0], $MachinePrecision] / N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision] / N[(t$95$m * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[Power[N[(N[Power[N[Power[N[(k$95$m / t$95$m), $MachinePrecision], 1/3], $MachinePrecision], 2.0], $MachinePrecision] * N[(t$95$m / N[Power[N[(N[Power[l, 2.0], $MachinePrecision] / t$95$2), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 3.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)
\\
\begin{array}{l}
t_2 := \sin k_m \cdot \tan k_m\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k_m \leq 1.35 \cdot 10^{-145}:\\
\;\;\;\;\sqrt{\frac{4}{{\left(\left(\frac{k_m}{\ell} \cdot \sqrt{t_m}\right) \cdot \sqrt{t_2}\right)}^{4}}}\\
\mathbf{elif}\;k_m \leq 2.3 \cdot 10^{+124}:\\
\;\;\;\;\frac{2}{\frac{{k_m}^{2}}{\frac{{\ell}^{2} \cdot \cos k_m}{t_m \cdot {\sin k_m}^{2}}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{{\left({\left(\sqrt[3]{\frac{k_m}{t_m}}\right)}^{2} \cdot \frac{t_m}{\sqrt[3]{\frac{{\ell}^{2}}{t_2}}}\right)}^{3}}\\
\end{array}
\end{array}
\end{array}
if k < 1.35e-145Initial program 36.2%
associate-*l*36.2%
associate-/r*36.2%
sub-neg36.2%
distribute-rgt-in29.7%
unpow229.7%
times-frac22.6%
sqr-neg22.6%
times-frac29.7%
unpow229.7%
distribute-rgt-in36.2%
+-commutative36.2%
associate-+l+40.8%
Simplified40.8%
Applied egg-rr17.5%
unpow217.5%
pow-sqr17.5%
associate-*r*17.5%
associate-*r/18.8%
metadata-eval18.8%
Simplified18.8%
Taylor expanded in k around 0 25.9%
if 1.35e-145 < k < 2.29999999999999985e124Initial program 17.8%
Taylor expanded in t around 0 87.3%
associate-/l*89.1%
Simplified89.1%
if 2.29999999999999985e124 < k Initial program 34.9%
add-cube-cbrt34.9%
pow334.9%
Applied egg-rr68.7%
Final simplification47.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 1e-145)
(sqrt
(/
4.0
(pow (* (* (/ k_m l) (sqrt t_m)) (sqrt (* (sin k_m) (tan k_m)))) 4.0)))
(/
2.0
(/
(pow k_m 2.0)
(/ (* (pow l 2.0) (cos k_m)) (* t_m (pow (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 <= 1e-145) {
tmp = sqrt((4.0 / pow((((k_m / l) * sqrt(t_m)) * sqrt((sin(k_m) * tan(k_m)))), 4.0)));
} else {
tmp = 2.0 / (pow(k_m, 2.0) / ((pow(l, 2.0) * cos(k_m)) / (t_m * pow(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 <= 1d-145) then
tmp = sqrt((4.0d0 / ((((k_m / l) * sqrt(t_m)) * sqrt((sin(k_m) * tan(k_m)))) ** 4.0d0)))
else
tmp = 2.0d0 / ((k_m ** 2.0d0) / (((l ** 2.0d0) * cos(k_m)) / (t_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 <= 1e-145) {
tmp = Math.sqrt((4.0 / Math.pow((((k_m / l) * Math.sqrt(t_m)) * Math.sqrt((Math.sin(k_m) * Math.tan(k_m)))), 4.0)));
} else {
tmp = 2.0 / (Math.pow(k_m, 2.0) / ((Math.pow(l, 2.0) * Math.cos(k_m)) / (t_m * Math.pow(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 <= 1e-145: tmp = math.sqrt((4.0 / math.pow((((k_m / l) * math.sqrt(t_m)) * math.sqrt((math.sin(k_m) * math.tan(k_m)))), 4.0))) else: tmp = 2.0 / (math.pow(k_m, 2.0) / ((math.pow(l, 2.0) * math.cos(k_m)) / (t_m * math.pow(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 <= 1e-145) tmp = sqrt(Float64(4.0 / (Float64(Float64(Float64(k_m / l) * sqrt(t_m)) * sqrt(Float64(sin(k_m) * tan(k_m)))) ^ 4.0))); else tmp = Float64(2.0 / Float64((k_m ^ 2.0) / Float64(Float64((l ^ 2.0) * cos(k_m)) / Float64(t_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 <= 1e-145) tmp = sqrt((4.0 / ((((k_m / l) * sqrt(t_m)) * sqrt((sin(k_m) * tan(k_m)))) ^ 4.0))); else tmp = 2.0 / ((k_m ^ 2.0) / (((l ^ 2.0) * cos(k_m)) / (t_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, 1e-145], N[Sqrt[N[(4.0 / N[Power[N[(N[(N[(k$95$m / l), $MachinePrecision] * N[Sqrt[t$95$m], $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(N[Sin[k$95$m], $MachinePrecision] * N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 4.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[(2.0 / N[(N[Power[k$95$m, 2.0], $MachinePrecision] / N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision] / N[(t$95$m * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $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 10^{-145}:\\
\;\;\;\;\sqrt{\frac{4}{{\left(\left(\frac{k_m}{\ell} \cdot \sqrt{t_m}\right) \cdot \sqrt{\sin k_m \cdot \tan k_m}\right)}^{4}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{{k_m}^{2}}{\frac{{\ell}^{2} \cdot \cos k_m}{t_m \cdot {\sin k_m}^{2}}}}\\
\end{array}
\end{array}
if k < 9.99999999999999915e-146Initial program 36.2%
associate-*l*36.2%
associate-/r*36.2%
sub-neg36.2%
distribute-rgt-in29.7%
unpow229.7%
times-frac22.6%
sqr-neg22.6%
times-frac29.7%
unpow229.7%
distribute-rgt-in36.2%
+-commutative36.2%
associate-+l+40.8%
Simplified40.8%
Applied egg-rr17.5%
unpow217.5%
pow-sqr17.5%
associate-*r*17.5%
associate-*r/18.8%
metadata-eval18.8%
Simplified18.8%
Taylor expanded in k around 0 25.9%
if 9.99999999999999915e-146 < k Initial program 24.2%
Taylor expanded in t around 0 77.5%
associate-/l*77.7%
Simplified77.7%
Final simplification46.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.7e-146)
(/ 2.0 (log (pow (pow (exp (pow k_m 4.0)) t_m) (pow l -2.0))))
(/
2.0
(/
(pow k_m 2.0)
(/ (* (pow l 2.0) (cos k_m)) (* t_m (pow (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 <= 2.7e-146) {
tmp = 2.0 / log(pow(pow(exp(pow(k_m, 4.0)), t_m), pow(l, -2.0)));
} else {
tmp = 2.0 / (pow(k_m, 2.0) / ((pow(l, 2.0) * cos(k_m)) / (t_m * pow(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 <= 2.7d-146) then
tmp = 2.0d0 / log(((exp((k_m ** 4.0d0)) ** t_m) ** (l ** (-2.0d0))))
else
tmp = 2.0d0 / ((k_m ** 2.0d0) / (((l ** 2.0d0) * cos(k_m)) / (t_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 <= 2.7e-146) {
tmp = 2.0 / Math.log(Math.pow(Math.pow(Math.exp(Math.pow(k_m, 4.0)), t_m), Math.pow(l, -2.0)));
} else {
tmp = 2.0 / (Math.pow(k_m, 2.0) / ((Math.pow(l, 2.0) * Math.cos(k_m)) / (t_m * Math.pow(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 <= 2.7e-146: tmp = 2.0 / math.log(math.pow(math.pow(math.exp(math.pow(k_m, 4.0)), t_m), math.pow(l, -2.0))) else: tmp = 2.0 / (math.pow(k_m, 2.0) / ((math.pow(l, 2.0) * math.cos(k_m)) / (t_m * math.pow(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 <= 2.7e-146) tmp = Float64(2.0 / log(((exp((k_m ^ 4.0)) ^ t_m) ^ (l ^ -2.0)))); else tmp = Float64(2.0 / Float64((k_m ^ 2.0) / Float64(Float64((l ^ 2.0) * cos(k_m)) / Float64(t_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 <= 2.7e-146) tmp = 2.0 / log(((exp((k_m ^ 4.0)) ^ t_m) ^ (l ^ -2.0))); else tmp = 2.0 / ((k_m ^ 2.0) / (((l ^ 2.0) * cos(k_m)) / (t_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, 2.7e-146], N[(2.0 / N[Log[N[Power[N[Power[N[Exp[N[Power[k$95$m, 4.0], $MachinePrecision]], $MachinePrecision], t$95$m], $MachinePrecision], N[Power[l, -2.0], $MachinePrecision]], $MachinePrecision]], $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[Power[k$95$m, 2.0], $MachinePrecision] / N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision] / N[(t$95$m * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $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 2.7 \cdot 10^{-146}:\\
\;\;\;\;\frac{2}{\log \left({\left({\left(e^{{k_m}^{4}}\right)}^{t_m}\right)}^{\left({\ell}^{-2}\right)}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{{k_m}^{2}}{\frac{{\ell}^{2} \cdot \cos k_m}{t_m \cdot {\sin k_m}^{2}}}}\\
\end{array}
\end{array}
if k < 2.69999999999999995e-146Initial program 36.2%
Taylor expanded in k around 0 67.6%
add-log-exp40.3%
div-inv40.3%
*-commutative40.3%
exp-prod41.8%
expm1-log1p-u30.9%
expm1-log1p-u41.8%
*-commutative41.8%
exp-prod42.4%
pow-flip42.4%
metadata-eval42.4%
Applied egg-rr42.4%
if 2.69999999999999995e-146 < k Initial program 24.2%
Taylor expanded in t around 0 77.5%
associate-/l*77.7%
Simplified77.7%
Final simplification56.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
(let* ((t_2 (pow (sin k_m) 2.0)))
(*
t_s
(if (<= t_m 1.4e-42)
(* (/ 2.0 (* t_m (pow k_m 2.0))) (/ (* (pow l 2.0) (cos k_m)) t_2))
(if (<= t_m 4.5e+133)
(/
(/ 2.0 (* (/ (pow t_m 2.0) (/ l (sin k_m))) (/ t_m (/ l (tan k_m)))))
(pow (/ k_m t_m) 2.0))
(*
2.0
(/ (* (pow l 2.0) (/ (/ (cos k_m) t_m) t_2)) (pow 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 = pow(sin(k_m), 2.0);
double tmp;
if (t_m <= 1.4e-42) {
tmp = (2.0 / (t_m * pow(k_m, 2.0))) * ((pow(l, 2.0) * cos(k_m)) / t_2);
} else if (t_m <= 4.5e+133) {
tmp = (2.0 / ((pow(t_m, 2.0) / (l / sin(k_m))) * (t_m / (l / tan(k_m))))) / pow((k_m / t_m), 2.0);
} else {
tmp = 2.0 * ((pow(l, 2.0) * ((cos(k_m) / t_m) / t_2)) / pow(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) :: tmp
t_2 = sin(k_m) ** 2.0d0
if (t_m <= 1.4d-42) then
tmp = (2.0d0 / (t_m * (k_m ** 2.0d0))) * (((l ** 2.0d0) * cos(k_m)) / t_2)
else if (t_m <= 4.5d+133) then
tmp = (2.0d0 / (((t_m ** 2.0d0) / (l / sin(k_m))) * (t_m / (l / tan(k_m))))) / ((k_m / t_m) ** 2.0d0)
else
tmp = 2.0d0 * (((l ** 2.0d0) * ((cos(k_m) / t_m) / t_2)) / (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.pow(Math.sin(k_m), 2.0);
double tmp;
if (t_m <= 1.4e-42) {
tmp = (2.0 / (t_m * Math.pow(k_m, 2.0))) * ((Math.pow(l, 2.0) * Math.cos(k_m)) / t_2);
} else if (t_m <= 4.5e+133) {
tmp = (2.0 / ((Math.pow(t_m, 2.0) / (l / Math.sin(k_m))) * (t_m / (l / Math.tan(k_m))))) / Math.pow((k_m / t_m), 2.0);
} else {
tmp = 2.0 * ((Math.pow(l, 2.0) * ((Math.cos(k_m) / t_m) / t_2)) / Math.pow(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.pow(math.sin(k_m), 2.0) tmp = 0 if t_m <= 1.4e-42: tmp = (2.0 / (t_m * math.pow(k_m, 2.0))) * ((math.pow(l, 2.0) * math.cos(k_m)) / t_2) elif t_m <= 4.5e+133: tmp = (2.0 / ((math.pow(t_m, 2.0) / (l / math.sin(k_m))) * (t_m / (l / math.tan(k_m))))) / math.pow((k_m / t_m), 2.0) else: tmp = 2.0 * ((math.pow(l, 2.0) * ((math.cos(k_m) / t_m) / t_2)) / math.pow(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 = sin(k_m) ^ 2.0 tmp = 0.0 if (t_m <= 1.4e-42) tmp = Float64(Float64(2.0 / Float64(t_m * (k_m ^ 2.0))) * Float64(Float64((l ^ 2.0) * cos(k_m)) / t_2)); elseif (t_m <= 4.5e+133) tmp = Float64(Float64(2.0 / Float64(Float64((t_m ^ 2.0) / Float64(l / sin(k_m))) * Float64(t_m / Float64(l / tan(k_m))))) / (Float64(k_m / t_m) ^ 2.0)); else tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) * Float64(Float64(cos(k_m) / t_m) / t_2)) / (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 = sin(k_m) ^ 2.0; tmp = 0.0; if (t_m <= 1.4e-42) tmp = (2.0 / (t_m * (k_m ^ 2.0))) * (((l ^ 2.0) * cos(k_m)) / t_2); elseif (t_m <= 4.5e+133) tmp = (2.0 / (((t_m ^ 2.0) / (l / sin(k_m))) * (t_m / (l / tan(k_m))))) / ((k_m / t_m) ^ 2.0); else tmp = 2.0 * (((l ^ 2.0) * ((cos(k_m) / t_m) / t_2)) / (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[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 1.4e-42], N[(N[(2.0 / N[(t$95$m * N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision] / t$95$2), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 4.5e+133], N[(N[(2.0 / N[(N[(N[Power[t$95$m, 2.0], $MachinePrecision] / N[(l / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(t$95$m / N[(l / N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[N[(k$95$m / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[(N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision] / t$95$2), $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 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)
\\
\begin{array}{l}
t_2 := {\sin k_m}^{2}\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 1.4 \cdot 10^{-42}:\\
\;\;\;\;\frac{2}{t_m \cdot {k_m}^{2}} \cdot \frac{{\ell}^{2} \cdot \cos k_m}{t_2}\\
\mathbf{elif}\;t_m \leq 4.5 \cdot 10^{+133}:\\
\;\;\;\;\frac{\frac{2}{\frac{{t_m}^{2}}{\frac{\ell}{\sin k_m}} \cdot \frac{t_m}{\frac{\ell}{\tan k_m}}}}{{\left(\frac{k_m}{t_m}\right)}^{2}}\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \frac{{\ell}^{2} \cdot \frac{\frac{\cos k_m}{t_m}}{t_2}}{{k_m}^{2}}\\
\end{array}
\end{array}
\end{array}
if t < 1.39999999999999999e-42Initial program 32.1%
associate-*l*32.1%
associate-/r*32.1%
sub-neg32.1%
distribute-rgt-in27.0%
unpow227.0%
times-frac19.3%
sqr-neg19.3%
times-frac27.0%
unpow227.0%
distribute-rgt-in32.1%
+-commutative32.1%
associate-+l+38.5%
Simplified38.5%
Taylor expanded in t around 0 78.0%
associate-*r/78.0%
associate-*r*78.0%
Simplified78.0%
times-frac78.1%
*-commutative78.1%
Applied egg-rr78.1%
if 1.39999999999999999e-42 < t < 4.49999999999999985e133Initial program 58.4%
associate-/r*58.3%
associate-*l*58.2%
associate-*l/58.3%
associate-/l*58.3%
+-commutative58.3%
unpow258.3%
sqr-neg58.3%
distribute-frac-neg58.3%
distribute-frac-neg58.3%
unpow258.3%
associate--l+66.2%
metadata-eval66.2%
+-rgt-identity66.2%
unpow266.2%
distribute-frac-neg66.2%
distribute-frac-neg66.2%
sqr-neg66.2%
unpow266.2%
Simplified66.2%
unpow366.2%
times-frac70.2%
times-frac84.6%
pow284.6%
Applied egg-rr84.6%
if 4.49999999999999985e133 < t Initial program 8.3%
Taylor expanded in t around 0 83.5%
associate-/l*83.8%
Simplified83.8%
Taylor expanded in k around inf 83.5%
times-frac81.2%
Simplified81.2%
associate-*l/83.8%
associate-/r*83.9%
Applied egg-rr83.9%
Final simplification79.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
(let* ((t_2 (pow (sin k_m) 2.0)))
(*
t_s
(if (<= t_m 1.72e-43)
(/ (* 2.0 (* (pow l 2.0) (cos k_m))) (* t_2 (* t_m (pow k_m 2.0))))
(if (<= t_m 3.1e+133)
(/
(/ 2.0 (* (/ (pow t_m 2.0) (/ l (sin k_m))) (/ t_m (/ l (tan k_m)))))
(pow (/ k_m t_m) 2.0))
(*
2.0
(/ (* (pow l 2.0) (/ (/ (cos k_m) t_m) t_2)) (pow 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 = pow(sin(k_m), 2.0);
double tmp;
if (t_m <= 1.72e-43) {
tmp = (2.0 * (pow(l, 2.0) * cos(k_m))) / (t_2 * (t_m * pow(k_m, 2.0)));
} else if (t_m <= 3.1e+133) {
tmp = (2.0 / ((pow(t_m, 2.0) / (l / sin(k_m))) * (t_m / (l / tan(k_m))))) / pow((k_m / t_m), 2.0);
} else {
tmp = 2.0 * ((pow(l, 2.0) * ((cos(k_m) / t_m) / t_2)) / pow(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) :: tmp
t_2 = sin(k_m) ** 2.0d0
if (t_m <= 1.72d-43) then
tmp = (2.0d0 * ((l ** 2.0d0) * cos(k_m))) / (t_2 * (t_m * (k_m ** 2.0d0)))
else if (t_m <= 3.1d+133) then
tmp = (2.0d0 / (((t_m ** 2.0d0) / (l / sin(k_m))) * (t_m / (l / tan(k_m))))) / ((k_m / t_m) ** 2.0d0)
else
tmp = 2.0d0 * (((l ** 2.0d0) * ((cos(k_m) / t_m) / t_2)) / (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.pow(Math.sin(k_m), 2.0);
double tmp;
if (t_m <= 1.72e-43) {
tmp = (2.0 * (Math.pow(l, 2.0) * Math.cos(k_m))) / (t_2 * (t_m * Math.pow(k_m, 2.0)));
} else if (t_m <= 3.1e+133) {
tmp = (2.0 / ((Math.pow(t_m, 2.0) / (l / Math.sin(k_m))) * (t_m / (l / Math.tan(k_m))))) / Math.pow((k_m / t_m), 2.0);
} else {
tmp = 2.0 * ((Math.pow(l, 2.0) * ((Math.cos(k_m) / t_m) / t_2)) / Math.pow(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.pow(math.sin(k_m), 2.0) tmp = 0 if t_m <= 1.72e-43: tmp = (2.0 * (math.pow(l, 2.0) * math.cos(k_m))) / (t_2 * (t_m * math.pow(k_m, 2.0))) elif t_m <= 3.1e+133: tmp = (2.0 / ((math.pow(t_m, 2.0) / (l / math.sin(k_m))) * (t_m / (l / math.tan(k_m))))) / math.pow((k_m / t_m), 2.0) else: tmp = 2.0 * ((math.pow(l, 2.0) * ((math.cos(k_m) / t_m) / t_2)) / math.pow(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 = sin(k_m) ^ 2.0 tmp = 0.0 if (t_m <= 1.72e-43) tmp = Float64(Float64(2.0 * Float64((l ^ 2.0) * cos(k_m))) / Float64(t_2 * Float64(t_m * (k_m ^ 2.0)))); elseif (t_m <= 3.1e+133) tmp = Float64(Float64(2.0 / Float64(Float64((t_m ^ 2.0) / Float64(l / sin(k_m))) * Float64(t_m / Float64(l / tan(k_m))))) / (Float64(k_m / t_m) ^ 2.0)); else tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) * Float64(Float64(cos(k_m) / t_m) / t_2)) / (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 = sin(k_m) ^ 2.0; tmp = 0.0; if (t_m <= 1.72e-43) tmp = (2.0 * ((l ^ 2.0) * cos(k_m))) / (t_2 * (t_m * (k_m ^ 2.0))); elseif (t_m <= 3.1e+133) tmp = (2.0 / (((t_m ^ 2.0) / (l / sin(k_m))) * (t_m / (l / tan(k_m))))) / ((k_m / t_m) ^ 2.0); else tmp = 2.0 * (((l ^ 2.0) * ((cos(k_m) / t_m) / t_2)) / (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[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 1.72e-43], N[(N[(2.0 * N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(t$95$2 * N[(t$95$m * N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 3.1e+133], N[(N[(2.0 / N[(N[(N[Power[t$95$m, 2.0], $MachinePrecision] / N[(l / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(t$95$m / N[(l / N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[N[(k$95$m / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[(N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision] / t$95$2), $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 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)
\\
\begin{array}{l}
t_2 := {\sin k_m}^{2}\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 1.72 \cdot 10^{-43}:\\
\;\;\;\;\frac{2 \cdot \left({\ell}^{2} \cdot \cos k_m\right)}{t_2 \cdot \left(t_m \cdot {k_m}^{2}\right)}\\
\mathbf{elif}\;t_m \leq 3.1 \cdot 10^{+133}:\\
\;\;\;\;\frac{\frac{2}{\frac{{t_m}^{2}}{\frac{\ell}{\sin k_m}} \cdot \frac{t_m}{\frac{\ell}{\tan k_m}}}}{{\left(\frac{k_m}{t_m}\right)}^{2}}\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \frac{{\ell}^{2} \cdot \frac{\frac{\cos k_m}{t_m}}{t_2}}{{k_m}^{2}}\\
\end{array}
\end{array}
\end{array}
if t < 1.72000000000000005e-43Initial program 32.1%
associate-*l*32.1%
associate-/r*32.1%
sub-neg32.1%
distribute-rgt-in27.0%
unpow227.0%
times-frac19.3%
sqr-neg19.3%
times-frac27.0%
unpow227.0%
distribute-rgt-in32.1%
+-commutative32.1%
associate-+l+38.5%
Simplified38.5%
Taylor expanded in t around 0 78.0%
associate-*r/78.0%
associate-*r*78.0%
Simplified78.0%
if 1.72000000000000005e-43 < t < 3.1e133Initial program 58.4%
associate-/r*58.3%
associate-*l*58.2%
associate-*l/58.3%
associate-/l*58.3%
+-commutative58.3%
unpow258.3%
sqr-neg58.3%
distribute-frac-neg58.3%
distribute-frac-neg58.3%
unpow258.3%
associate--l+66.2%
metadata-eval66.2%
+-rgt-identity66.2%
unpow266.2%
distribute-frac-neg66.2%
distribute-frac-neg66.2%
sqr-neg66.2%
unpow266.2%
Simplified66.2%
unpow366.2%
times-frac70.2%
times-frac84.6%
pow284.6%
Applied egg-rr84.6%
if 3.1e133 < t Initial program 8.3%
Taylor expanded in t around 0 83.5%
associate-/l*83.8%
Simplified83.8%
Taylor expanded in k around inf 83.5%
times-frac81.2%
Simplified81.2%
associate-*l/83.8%
associate-/r*83.9%
Applied egg-rr83.9%
Final simplification79.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
(let* ((t_2 (pow (sin k_m) 2.0)))
(*
t_s
(if (<= t_m 2.05e-42)
(*
(* 2.0 (* (pow l 2.0) (cos k_m)))
(/ 1.0 (* t_2 (* t_m (pow k_m 2.0)))))
(if (<= t_m 2.5e+133)
(/
(/ 2.0 (* (/ (pow t_m 2.0) (/ l (sin k_m))) (/ t_m (/ l (tan k_m)))))
(pow (/ k_m t_m) 2.0))
(*
2.0
(/ (* (pow l 2.0) (/ (/ (cos k_m) t_m) t_2)) (pow 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 = pow(sin(k_m), 2.0);
double tmp;
if (t_m <= 2.05e-42) {
tmp = (2.0 * (pow(l, 2.0) * cos(k_m))) * (1.0 / (t_2 * (t_m * pow(k_m, 2.0))));
} else if (t_m <= 2.5e+133) {
tmp = (2.0 / ((pow(t_m, 2.0) / (l / sin(k_m))) * (t_m / (l / tan(k_m))))) / pow((k_m / t_m), 2.0);
} else {
tmp = 2.0 * ((pow(l, 2.0) * ((cos(k_m) / t_m) / t_2)) / pow(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) :: tmp
t_2 = sin(k_m) ** 2.0d0
if (t_m <= 2.05d-42) then
tmp = (2.0d0 * ((l ** 2.0d0) * cos(k_m))) * (1.0d0 / (t_2 * (t_m * (k_m ** 2.0d0))))
else if (t_m <= 2.5d+133) then
tmp = (2.0d0 / (((t_m ** 2.0d0) / (l / sin(k_m))) * (t_m / (l / tan(k_m))))) / ((k_m / t_m) ** 2.0d0)
else
tmp = 2.0d0 * (((l ** 2.0d0) * ((cos(k_m) / t_m) / t_2)) / (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.pow(Math.sin(k_m), 2.0);
double tmp;
if (t_m <= 2.05e-42) {
tmp = (2.0 * (Math.pow(l, 2.0) * Math.cos(k_m))) * (1.0 / (t_2 * (t_m * Math.pow(k_m, 2.0))));
} else if (t_m <= 2.5e+133) {
tmp = (2.0 / ((Math.pow(t_m, 2.0) / (l / Math.sin(k_m))) * (t_m / (l / Math.tan(k_m))))) / Math.pow((k_m / t_m), 2.0);
} else {
tmp = 2.0 * ((Math.pow(l, 2.0) * ((Math.cos(k_m) / t_m) / t_2)) / Math.pow(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.pow(math.sin(k_m), 2.0) tmp = 0 if t_m <= 2.05e-42: tmp = (2.0 * (math.pow(l, 2.0) * math.cos(k_m))) * (1.0 / (t_2 * (t_m * math.pow(k_m, 2.0)))) elif t_m <= 2.5e+133: tmp = (2.0 / ((math.pow(t_m, 2.0) / (l / math.sin(k_m))) * (t_m / (l / math.tan(k_m))))) / math.pow((k_m / t_m), 2.0) else: tmp = 2.0 * ((math.pow(l, 2.0) * ((math.cos(k_m) / t_m) / t_2)) / math.pow(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 = sin(k_m) ^ 2.0 tmp = 0.0 if (t_m <= 2.05e-42) tmp = Float64(Float64(2.0 * Float64((l ^ 2.0) * cos(k_m))) * Float64(1.0 / Float64(t_2 * Float64(t_m * (k_m ^ 2.0))))); elseif (t_m <= 2.5e+133) tmp = Float64(Float64(2.0 / Float64(Float64((t_m ^ 2.0) / Float64(l / sin(k_m))) * Float64(t_m / Float64(l / tan(k_m))))) / (Float64(k_m / t_m) ^ 2.0)); else tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) * Float64(Float64(cos(k_m) / t_m) / t_2)) / (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 = sin(k_m) ^ 2.0; tmp = 0.0; if (t_m <= 2.05e-42) tmp = (2.0 * ((l ^ 2.0) * cos(k_m))) * (1.0 / (t_2 * (t_m * (k_m ^ 2.0)))); elseif (t_m <= 2.5e+133) tmp = (2.0 / (((t_m ^ 2.0) / (l / sin(k_m))) * (t_m / (l / tan(k_m))))) / ((k_m / t_m) ^ 2.0); else tmp = 2.0 * (((l ^ 2.0) * ((cos(k_m) / t_m) / t_2)) / (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[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 2.05e-42], N[(N[(2.0 * N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(1.0 / N[(t$95$2 * N[(t$95$m * N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 2.5e+133], N[(N[(2.0 / N[(N[(N[Power[t$95$m, 2.0], $MachinePrecision] / N[(l / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(t$95$m / N[(l / N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[N[(k$95$m / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[(N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision] / t$95$2), $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 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)
\\
\begin{array}{l}
t_2 := {\sin k_m}^{2}\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 2.05 \cdot 10^{-42}:\\
\;\;\;\;\left(2 \cdot \left({\ell}^{2} \cdot \cos k_m\right)\right) \cdot \frac{1}{t_2 \cdot \left(t_m \cdot {k_m}^{2}\right)}\\
\mathbf{elif}\;t_m \leq 2.5 \cdot 10^{+133}:\\
\;\;\;\;\frac{\frac{2}{\frac{{t_m}^{2}}{\frac{\ell}{\sin k_m}} \cdot \frac{t_m}{\frac{\ell}{\tan k_m}}}}{{\left(\frac{k_m}{t_m}\right)}^{2}}\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \frac{{\ell}^{2} \cdot \frac{\frac{\cos k_m}{t_m}}{t_2}}{{k_m}^{2}}\\
\end{array}
\end{array}
\end{array}
if t < 2.0500000000000001e-42Initial program 32.1%
associate-*l*32.1%
associate-/r*32.1%
sub-neg32.1%
distribute-rgt-in27.0%
unpow227.0%
times-frac19.3%
sqr-neg19.3%
times-frac27.0%
unpow227.0%
distribute-rgt-in32.1%
+-commutative32.1%
associate-+l+38.5%
Simplified38.5%
Taylor expanded in t around 0 78.0%
associate-*r/78.0%
associate-*r*78.0%
Simplified78.0%
div-inv78.0%
*-commutative78.0%
*-commutative78.0%
Applied egg-rr78.0%
if 2.0500000000000001e-42 < t < 2.4999999999999998e133Initial program 58.4%
associate-/r*58.3%
associate-*l*58.2%
associate-*l/58.3%
associate-/l*58.3%
+-commutative58.3%
unpow258.3%
sqr-neg58.3%
distribute-frac-neg58.3%
distribute-frac-neg58.3%
unpow258.3%
associate--l+66.2%
metadata-eval66.2%
+-rgt-identity66.2%
unpow266.2%
distribute-frac-neg66.2%
distribute-frac-neg66.2%
sqr-neg66.2%
unpow266.2%
Simplified66.2%
unpow366.2%
times-frac70.2%
times-frac84.6%
pow284.6%
Applied egg-rr84.6%
if 2.4999999999999998e133 < t Initial program 8.3%
Taylor expanded in t around 0 83.5%
associate-/l*83.8%
Simplified83.8%
Taylor expanded in k around inf 83.5%
times-frac81.2%
Simplified81.2%
associate-*l/83.8%
associate-/r*83.9%
Applied egg-rr83.9%
Final simplification79.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
(*
2.0
(*
(/ (pow l 2.0) (* t_m (/ (pow (sin k_m) 2.0) (cos k_m))))
(pow 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) {
return t_s * (2.0 * ((pow(l, 2.0) / (t_m * (pow(sin(k_m), 2.0) / cos(k_m)))) * pow(k_m, -2.0)));
}
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 * (2.0d0 * (((l ** 2.0d0) / (t_m * ((sin(k_m) ** 2.0d0) / cos(k_m)))) * (k_m ** (-2.0d0))))
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 * (2.0 * ((Math.pow(l, 2.0) / (t_m * (Math.pow(Math.sin(k_m), 2.0) / Math.cos(k_m)))) * Math.pow(k_m, -2.0)));
}
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 * (2.0 * ((math.pow(l, 2.0) / (t_m * (math.pow(math.sin(k_m), 2.0) / math.cos(k_m)))) * math.pow(k_m, -2.0)))
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(2.0 * Float64(Float64((l ^ 2.0) / Float64(t_m * Float64((sin(k_m) ^ 2.0) / cos(k_m)))) * (k_m ^ -2.0)))) 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 * (2.0 * (((l ^ 2.0) / (t_m * ((sin(k_m) ^ 2.0) / cos(k_m)))) * (k_m ^ -2.0))); 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[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[(t$95$m * N[(N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision] / N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Power[k$95$m, -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 \left(2 \cdot \left(\frac{{\ell}^{2}}{t_m \cdot \frac{{\sin k_m}^{2}}{\cos k_m}} \cdot {k_m}^{-2}\right)\right)
\end{array}
Initial program 31.5%
Taylor expanded in t around 0 78.3%
associate-/l*79.2%
Simplified79.2%
Taylor expanded in k around inf 78.3%
times-frac78.7%
Simplified78.7%
associate-*l/79.1%
associate-/r*79.2%
Applied egg-rr79.2%
expm1-log1p-u53.8%
expm1-udef46.9%
div-inv46.9%
associate-*r/46.6%
pow-flip46.6%
metadata-eval46.6%
Applied egg-rr46.6%
expm1-def53.5%
expm1-log1p76.0%
associate-/l*79.0%
associate-/r/79.1%
Simplified79.1%
Final simplification79.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
(*
2.0
(/
(* (pow l 2.0) (/ (/ (cos k_m) t_m) (pow (sin k_m) 2.0)))
(pow 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) {
return t_s * (2.0 * ((pow(l, 2.0) * ((cos(k_m) / t_m) / pow(sin(k_m), 2.0))) / pow(k_m, 2.0)));
}
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 * (2.0d0 * (((l ** 2.0d0) * ((cos(k_m) / t_m) / (sin(k_m) ** 2.0d0))) / (k_m ** 2.0d0)))
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 * (2.0 * ((Math.pow(l, 2.0) * ((Math.cos(k_m) / t_m) / Math.pow(Math.sin(k_m), 2.0))) / Math.pow(k_m, 2.0)));
}
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 * (2.0 * ((math.pow(l, 2.0) * ((math.cos(k_m) / t_m) / math.pow(math.sin(k_m), 2.0))) / math.pow(k_m, 2.0)))
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(2.0 * Float64(Float64((l ^ 2.0) * Float64(Float64(cos(k_m) / t_m) / (sin(k_m) ^ 2.0))) / (k_m ^ 2.0)))) 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 * (2.0 * (((l ^ 2.0) * ((cos(k_m) / t_m) / (sin(k_m) ^ 2.0))) / (k_m ^ 2.0))); 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[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[(N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision] / N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 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 \left(2 \cdot \frac{{\ell}^{2} \cdot \frac{\frac{\cos k_m}{t_m}}{{\sin k_m}^{2}}}{{k_m}^{2}}\right)
\end{array}
Initial program 31.5%
Taylor expanded in t around 0 78.3%
associate-/l*79.2%
Simplified79.2%
Taylor expanded in k around inf 78.3%
times-frac78.7%
Simplified78.7%
associate-*l/79.1%
associate-/r*79.2%
Applied egg-rr79.2%
Final simplification79.2%
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 8e-155)
(*
2.0
(/ (* (pow l 2.0) (/ (/ (cos k_m) t_m) (pow k_m 2.0))) (pow k_m 2.0)))
(if (<= t_m 2.15e+133)
(*
(/ 2.0 k_m)
(*
(pow t_m -2.0)
(/ (* t_m (pow l 2.0)) (* (tan k_m) (* k_m (sin k_m))))))
(*
2.0
(/
(*
(pow l 2.0)
(- (/ 1.0 (* t_m (pow k_m 2.0))) (/ 0.16666666666666666 t_m)))
(pow 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 <= 8e-155) {
tmp = 2.0 * ((pow(l, 2.0) * ((cos(k_m) / t_m) / pow(k_m, 2.0))) / pow(k_m, 2.0));
} else if (t_m <= 2.15e+133) {
tmp = (2.0 / k_m) * (pow(t_m, -2.0) * ((t_m * pow(l, 2.0)) / (tan(k_m) * (k_m * sin(k_m)))));
} else {
tmp = 2.0 * ((pow(l, 2.0) * ((1.0 / (t_m * pow(k_m, 2.0))) - (0.16666666666666666 / t_m))) / pow(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 <= 8d-155) then
tmp = 2.0d0 * (((l ** 2.0d0) * ((cos(k_m) / t_m) / (k_m ** 2.0d0))) / (k_m ** 2.0d0))
else if (t_m <= 2.15d+133) then
tmp = (2.0d0 / k_m) * ((t_m ** (-2.0d0)) * ((t_m * (l ** 2.0d0)) / (tan(k_m) * (k_m * sin(k_m)))))
else
tmp = 2.0d0 * (((l ** 2.0d0) * ((1.0d0 / (t_m * (k_m ** 2.0d0))) - (0.16666666666666666d0 / t_m))) / (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 <= 8e-155) {
tmp = 2.0 * ((Math.pow(l, 2.0) * ((Math.cos(k_m) / t_m) / Math.pow(k_m, 2.0))) / Math.pow(k_m, 2.0));
} else if (t_m <= 2.15e+133) {
tmp = (2.0 / k_m) * (Math.pow(t_m, -2.0) * ((t_m * Math.pow(l, 2.0)) / (Math.tan(k_m) * (k_m * Math.sin(k_m)))));
} else {
tmp = 2.0 * ((Math.pow(l, 2.0) * ((1.0 / (t_m * Math.pow(k_m, 2.0))) - (0.16666666666666666 / t_m))) / Math.pow(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 <= 8e-155: tmp = 2.0 * ((math.pow(l, 2.0) * ((math.cos(k_m) / t_m) / math.pow(k_m, 2.0))) / math.pow(k_m, 2.0)) elif t_m <= 2.15e+133: tmp = (2.0 / k_m) * (math.pow(t_m, -2.0) * ((t_m * math.pow(l, 2.0)) / (math.tan(k_m) * (k_m * math.sin(k_m))))) else: tmp = 2.0 * ((math.pow(l, 2.0) * ((1.0 / (t_m * math.pow(k_m, 2.0))) - (0.16666666666666666 / t_m))) / math.pow(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 <= 8e-155) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) * Float64(Float64(cos(k_m) / t_m) / (k_m ^ 2.0))) / (k_m ^ 2.0))); elseif (t_m <= 2.15e+133) tmp = Float64(Float64(2.0 / k_m) * Float64((t_m ^ -2.0) * Float64(Float64(t_m * (l ^ 2.0)) / Float64(tan(k_m) * Float64(k_m * sin(k_m)))))); else tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) * Float64(Float64(1.0 / Float64(t_m * (k_m ^ 2.0))) - Float64(0.16666666666666666 / t_m))) / (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 <= 8e-155) tmp = 2.0 * (((l ^ 2.0) * ((cos(k_m) / t_m) / (k_m ^ 2.0))) / (k_m ^ 2.0)); elseif (t_m <= 2.15e+133) tmp = (2.0 / k_m) * ((t_m ^ -2.0) * ((t_m * (l ^ 2.0)) / (tan(k_m) * (k_m * sin(k_m))))); else tmp = 2.0 * (((l ^ 2.0) * ((1.0 / (t_m * (k_m ^ 2.0))) - (0.16666666666666666 / t_m))) / (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, 8e-155], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[(N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 2.15e+133], N[(N[(2.0 / k$95$m), $MachinePrecision] * N[(N[Power[t$95$m, -2.0], $MachinePrecision] * N[(N[(t$95$m * N[Power[l, 2.0], $MachinePrecision]), $MachinePrecision] / N[(N[Tan[k$95$m], $MachinePrecision] * N[(k$95$m * N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[(N[(1.0 / N[(t$95$m * N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(0.16666666666666666 / t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 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 8 \cdot 10^{-155}:\\
\;\;\;\;2 \cdot \frac{{\ell}^{2} \cdot \frac{\frac{\cos k_m}{t_m}}{{k_m}^{2}}}{{k_m}^{2}}\\
\mathbf{elif}\;t_m \leq 2.15 \cdot 10^{+133}:\\
\;\;\;\;\frac{2}{k_m} \cdot \left({t_m}^{-2} \cdot \frac{t_m \cdot {\ell}^{2}}{\tan k_m \cdot \left(k_m \cdot \sin k_m\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \frac{{\ell}^{2} \cdot \left(\frac{1}{t_m \cdot {k_m}^{2}} - \frac{0.16666666666666666}{t_m}\right)}{{k_m}^{2}}\\
\end{array}
\end{array}
if t < 8.00000000000000011e-155Initial program 29.0%
Taylor expanded in t around 0 77.2%
associate-/l*78.4%
Simplified78.4%
Taylor expanded in k around inf 77.2%
times-frac77.9%
Simplified77.9%
associate-*l/78.3%
associate-/r*78.4%
Applied egg-rr78.4%
Taylor expanded in k around 0 71.3%
if 8.00000000000000011e-155 < t < 2.14999999999999997e133Initial program 56.6%
associate-*l*56.6%
associate-/r*56.5%
sub-neg56.5%
distribute-rgt-in56.3%
unpow256.3%
times-frac56.3%
sqr-neg56.3%
times-frac56.3%
unpow256.3%
distribute-rgt-in56.5%
+-commutative56.5%
associate-+l+60.6%
Simplified60.6%
associate-/l/60.7%
+-rgt-identity60.7%
*-commutative60.7%
associate-*r*60.7%
*-commutative60.7%
associate-*l*60.6%
associate-/r/60.6%
associate-/l/60.6%
associate-/r/58.6%
unpow258.6%
Applied egg-rr62.7%
Taylor expanded in t around 0 78.5%
associate-/r*78.6%
Simplified78.6%
expm1-log1p-u75.9%
expm1-udef66.5%
div-inv66.5%
pow-flip66.5%
metadata-eval66.5%
associate-/r/66.5%
Applied egg-rr66.5%
expm1-def77.6%
expm1-log1p80.4%
associate-*l*80.4%
associate-/l/80.4%
associate-*l/78.5%
associate-*r*78.5%
Simplified78.5%
if 2.14999999999999997e133 < t Initial program 8.3%
Taylor expanded in t around 0 83.5%
associate-/l*83.8%
Simplified83.8%
Taylor expanded in k around inf 83.5%
times-frac81.2%
Simplified81.2%
associate-*l/83.8%
associate-/r*83.9%
Applied egg-rr83.9%
Taylor expanded in k around 0 81.5%
*-commutative81.5%
associate-*r/81.5%
metadata-eval81.5%
Simplified81.5%
Final simplification74.2%
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 1.36e-167)
(*
2.0
(/ (* (pow l 2.0) (/ (/ (cos k_m) t_m) (pow k_m 2.0))) (pow k_m 2.0)))
(if (<= t_m 8e+125)
(/
(* (/ (pow l 2.0) (* (sin k_m) (tan k_m))) (/ 2.0 k_m))
(* (/ k_m t_m) (pow t_m 2.0)))
(*
2.0
(/
(*
(pow l 2.0)
(- (/ 1.0 (* t_m (pow k_m 2.0))) (/ 0.16666666666666666 t_m)))
(pow 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 <= 1.36e-167) {
tmp = 2.0 * ((pow(l, 2.0) * ((cos(k_m) / t_m) / pow(k_m, 2.0))) / pow(k_m, 2.0));
} else if (t_m <= 8e+125) {
tmp = ((pow(l, 2.0) / (sin(k_m) * tan(k_m))) * (2.0 / k_m)) / ((k_m / t_m) * pow(t_m, 2.0));
} else {
tmp = 2.0 * ((pow(l, 2.0) * ((1.0 / (t_m * pow(k_m, 2.0))) - (0.16666666666666666 / t_m))) / pow(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 <= 1.36d-167) then
tmp = 2.0d0 * (((l ** 2.0d0) * ((cos(k_m) / t_m) / (k_m ** 2.0d0))) / (k_m ** 2.0d0))
else if (t_m <= 8d+125) then
tmp = (((l ** 2.0d0) / (sin(k_m) * tan(k_m))) * (2.0d0 / k_m)) / ((k_m / t_m) * (t_m ** 2.0d0))
else
tmp = 2.0d0 * (((l ** 2.0d0) * ((1.0d0 / (t_m * (k_m ** 2.0d0))) - (0.16666666666666666d0 / t_m))) / (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 <= 1.36e-167) {
tmp = 2.0 * ((Math.pow(l, 2.0) * ((Math.cos(k_m) / t_m) / Math.pow(k_m, 2.0))) / Math.pow(k_m, 2.0));
} else if (t_m <= 8e+125) {
tmp = ((Math.pow(l, 2.0) / (Math.sin(k_m) * Math.tan(k_m))) * (2.0 / k_m)) / ((k_m / t_m) * Math.pow(t_m, 2.0));
} else {
tmp = 2.0 * ((Math.pow(l, 2.0) * ((1.0 / (t_m * Math.pow(k_m, 2.0))) - (0.16666666666666666 / t_m))) / Math.pow(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 <= 1.36e-167: tmp = 2.0 * ((math.pow(l, 2.0) * ((math.cos(k_m) / t_m) / math.pow(k_m, 2.0))) / math.pow(k_m, 2.0)) elif t_m <= 8e+125: tmp = ((math.pow(l, 2.0) / (math.sin(k_m) * math.tan(k_m))) * (2.0 / k_m)) / ((k_m / t_m) * math.pow(t_m, 2.0)) else: tmp = 2.0 * ((math.pow(l, 2.0) * ((1.0 / (t_m * math.pow(k_m, 2.0))) - (0.16666666666666666 / t_m))) / math.pow(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 <= 1.36e-167) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) * Float64(Float64(cos(k_m) / t_m) / (k_m ^ 2.0))) / (k_m ^ 2.0))); elseif (t_m <= 8e+125) tmp = Float64(Float64(Float64((l ^ 2.0) / Float64(sin(k_m) * tan(k_m))) * Float64(2.0 / k_m)) / Float64(Float64(k_m / t_m) * (t_m ^ 2.0))); else tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) * Float64(Float64(1.0 / Float64(t_m * (k_m ^ 2.0))) - Float64(0.16666666666666666 / t_m))) / (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 <= 1.36e-167) tmp = 2.0 * (((l ^ 2.0) * ((cos(k_m) / t_m) / (k_m ^ 2.0))) / (k_m ^ 2.0)); elseif (t_m <= 8e+125) tmp = (((l ^ 2.0) / (sin(k_m) * tan(k_m))) * (2.0 / k_m)) / ((k_m / t_m) * (t_m ^ 2.0)); else tmp = 2.0 * (((l ^ 2.0) * ((1.0 / (t_m * (k_m ^ 2.0))) - (0.16666666666666666 / t_m))) / (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, 1.36e-167], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[(N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 8e+125], N[(N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[(N[Sin[k$95$m], $MachinePrecision] * N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(2.0 / k$95$m), $MachinePrecision]), $MachinePrecision] / N[(N[(k$95$m / t$95$m), $MachinePrecision] * N[Power[t$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[(N[(1.0 / N[(t$95$m * N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(0.16666666666666666 / t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 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 1.36 \cdot 10^{-167}:\\
\;\;\;\;2 \cdot \frac{{\ell}^{2} \cdot \frac{\frac{\cos k_m}{t_m}}{{k_m}^{2}}}{{k_m}^{2}}\\
\mathbf{elif}\;t_m \leq 8 \cdot 10^{+125}:\\
\;\;\;\;\frac{\frac{{\ell}^{2}}{\sin k_m \cdot \tan k_m} \cdot \frac{2}{k_m}}{\frac{k_m}{t_m} \cdot {t_m}^{2}}\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \frac{{\ell}^{2} \cdot \left(\frac{1}{t_m \cdot {k_m}^{2}} - \frac{0.16666666666666666}{t_m}\right)}{{k_m}^{2}}\\
\end{array}
\end{array}
if t < 1.36000000000000009e-167Initial program 29.0%
Taylor expanded in t around 0 77.3%
associate-/l*78.5%
Simplified78.5%
Taylor expanded in k around inf 77.2%
times-frac78.6%
Simplified78.6%
associate-*l/78.4%
associate-/r*78.5%
Applied egg-rr78.5%
Taylor expanded in k around 0 71.8%
if 1.36000000000000009e-167 < t < 7.9999999999999994e125Initial program 55.4%
associate-*l*55.4%
associate-/r*55.3%
sub-neg55.3%
distribute-rgt-in55.1%
unpow255.1%
times-frac55.1%
sqr-neg55.1%
times-frac55.1%
unpow255.1%
distribute-rgt-in55.3%
+-commutative55.3%
associate-+l+57.3%
Simplified57.3%
associate-/l/57.4%
+-rgt-identity57.4%
*-commutative57.4%
associate-*r*57.3%
*-commutative57.3%
associate-*l*57.3%
associate-/r/57.3%
associate-/l/57.3%
associate-/r/55.4%
unpow255.4%
Applied egg-rr59.3%
Taylor expanded in t around 0 74.3%
associate-/r*74.3%
Simplified74.3%
frac-times77.8%
Applied egg-rr77.8%
if 7.9999999999999994e125 < t Initial program 8.1%
Taylor expanded in t around 0 84.0%
associate-/l*84.2%
Simplified84.2%
Taylor expanded in k around inf 84.0%
times-frac81.7%
Simplified81.7%
associate-*l/84.3%
associate-/r*84.3%
Applied egg-rr84.3%
Taylor expanded in k around 0 82.0%
*-commutative82.0%
associate-*r/82.0%
metadata-eval82.0%
Simplified82.0%
Final simplification74.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
(let* ((t_2 (/ (cos k_m) t_m)))
(*
t_s
(if (<= k_m 7.6e-5)
(* 2.0 (/ (* (pow l 2.0) (/ t_2 (pow k_m 2.0))) (pow k_m 2.0)))
(*
2.0
(/
(* (pow l 2.0) (/ t_2 (- 0.5 (/ (cos (* k_m 2.0)) 2.0))))
(pow 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 tmp;
if (k_m <= 7.6e-5) {
tmp = 2.0 * ((pow(l, 2.0) * (t_2 / pow(k_m, 2.0))) / pow(k_m, 2.0));
} else {
tmp = 2.0 * ((pow(l, 2.0) * (t_2 / (0.5 - (cos((k_m * 2.0)) / 2.0)))) / pow(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) :: tmp
t_2 = cos(k_m) / t_m
if (k_m <= 7.6d-5) then
tmp = 2.0d0 * (((l ** 2.0d0) * (t_2 / (k_m ** 2.0d0))) / (k_m ** 2.0d0))
else
tmp = 2.0d0 * (((l ** 2.0d0) * (t_2 / (0.5d0 - (cos((k_m * 2.0d0)) / 2.0d0)))) / (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 tmp;
if (k_m <= 7.6e-5) {
tmp = 2.0 * ((Math.pow(l, 2.0) * (t_2 / Math.pow(k_m, 2.0))) / Math.pow(k_m, 2.0));
} else {
tmp = 2.0 * ((Math.pow(l, 2.0) * (t_2 / (0.5 - (Math.cos((k_m * 2.0)) / 2.0)))) / Math.pow(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 tmp = 0 if k_m <= 7.6e-5: tmp = 2.0 * ((math.pow(l, 2.0) * (t_2 / math.pow(k_m, 2.0))) / math.pow(k_m, 2.0)) else: tmp = 2.0 * ((math.pow(l, 2.0) * (t_2 / (0.5 - (math.cos((k_m * 2.0)) / 2.0)))) / math.pow(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) tmp = 0.0 if (k_m <= 7.6e-5) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) * Float64(t_2 / (k_m ^ 2.0))) / (k_m ^ 2.0))); else tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) * Float64(t_2 / Float64(0.5 - Float64(cos(Float64(k_m * 2.0)) / 2.0)))) / (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; tmp = 0.0; if (k_m <= 7.6e-5) tmp = 2.0 * (((l ^ 2.0) * (t_2 / (k_m ^ 2.0))) / (k_m ^ 2.0)); else tmp = 2.0 * (((l ^ 2.0) * (t_2 / (0.5 - (cos((k_m * 2.0)) / 2.0)))) / (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]}, N[(t$95$s * If[LessEqual[k$95$m, 7.6e-5], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[(t$95$2 / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[(t$95$2 / N[(0.5 - N[(N[Cos[N[(k$95$m * 2.0), $MachinePrecision]], $MachinePrecision] / 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 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)
\\
\begin{array}{l}
t_2 := \frac{\cos k_m}{t_m}\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k_m \leq 7.6 \cdot 10^{-5}:\\
\;\;\;\;2 \cdot \frac{{\ell}^{2} \cdot \frac{t_2}{{k_m}^{2}}}{{k_m}^{2}}\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \frac{{\ell}^{2} \cdot \frac{t_2}{0.5 - \frac{\cos \left(k_m \cdot 2\right)}{2}}}{{k_m}^{2}}\\
\end{array}
\end{array}
\end{array}
if k < 7.6000000000000004e-5Initial program 34.0%
Taylor expanded in t around 0 81.2%
associate-/l*82.3%
Simplified82.3%
Taylor expanded in k around inf 81.2%
times-frac80.9%
Simplified80.9%
associate-*l/82.3%
associate-/r*82.3%
Applied egg-rr82.3%
Taylor expanded in k around 0 77.5%
if 7.6000000000000004e-5 < k Initial program 24.8%
Taylor expanded in t around 0 70.6%
associate-/l*70.8%
Simplified70.8%
Taylor expanded in k around inf 70.5%
times-frac72.9%
Simplified72.9%
associate-*l/70.7%
associate-/r*70.8%
Applied egg-rr70.8%
unpow270.8%
sin-mult70.7%
Applied egg-rr70.7%
div-sub70.7%
+-inverses70.7%
cos-070.7%
metadata-eval70.7%
count-270.7%
Simplified70.7%
Final simplification75.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 7.6e-5)
(*
2.0
(/ (* (pow l 2.0) (/ (/ (cos k_m) t_m) (pow k_m 2.0))) (pow k_m 2.0)))
(/
2.0
(/
(pow k_m 2.0)
(/
(* (pow l 2.0) (cos k_m))
(* t_m (- 0.5 (/ (cos (* k_m 2.0)) 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 <= 7.6e-5) {
tmp = 2.0 * ((pow(l, 2.0) * ((cos(k_m) / t_m) / pow(k_m, 2.0))) / pow(k_m, 2.0));
} else {
tmp = 2.0 / (pow(k_m, 2.0) / ((pow(l, 2.0) * cos(k_m)) / (t_m * (0.5 - (cos((k_m * 2.0)) / 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 <= 7.6d-5) then
tmp = 2.0d0 * (((l ** 2.0d0) * ((cos(k_m) / t_m) / (k_m ** 2.0d0))) / (k_m ** 2.0d0))
else
tmp = 2.0d0 / ((k_m ** 2.0d0) / (((l ** 2.0d0) * cos(k_m)) / (t_m * (0.5d0 - (cos((k_m * 2.0d0)) / 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 <= 7.6e-5) {
tmp = 2.0 * ((Math.pow(l, 2.0) * ((Math.cos(k_m) / t_m) / Math.pow(k_m, 2.0))) / Math.pow(k_m, 2.0));
} else {
tmp = 2.0 / (Math.pow(k_m, 2.0) / ((Math.pow(l, 2.0) * Math.cos(k_m)) / (t_m * (0.5 - (Math.cos((k_m * 2.0)) / 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 <= 7.6e-5: tmp = 2.0 * ((math.pow(l, 2.0) * ((math.cos(k_m) / t_m) / math.pow(k_m, 2.0))) / math.pow(k_m, 2.0)) else: tmp = 2.0 / (math.pow(k_m, 2.0) / ((math.pow(l, 2.0) * math.cos(k_m)) / (t_m * (0.5 - (math.cos((k_m * 2.0)) / 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 <= 7.6e-5) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) * Float64(Float64(cos(k_m) / t_m) / (k_m ^ 2.0))) / (k_m ^ 2.0))); else tmp = Float64(2.0 / Float64((k_m ^ 2.0) / Float64(Float64((l ^ 2.0) * cos(k_m)) / Float64(t_m * Float64(0.5 - Float64(cos(Float64(k_m * 2.0)) / 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 <= 7.6e-5) tmp = 2.0 * (((l ^ 2.0) * ((cos(k_m) / t_m) / (k_m ^ 2.0))) / (k_m ^ 2.0)); else tmp = 2.0 / ((k_m ^ 2.0) / (((l ^ 2.0) * cos(k_m)) / (t_m * (0.5 - (cos((k_m * 2.0)) / 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, 7.6e-5], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[(N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[Power[k$95$m, 2.0], $MachinePrecision] / N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision] / N[(t$95$m * N[(0.5 - N[(N[Cos[N[(k$95$m * 2.0), $MachinePrecision]], $MachinePrecision] / 2.0), $MachinePrecision]), $MachinePrecision]), $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 7.6 \cdot 10^{-5}:\\
\;\;\;\;2 \cdot \frac{{\ell}^{2} \cdot \frac{\frac{\cos k_m}{t_m}}{{k_m}^{2}}}{{k_m}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{{k_m}^{2}}{\frac{{\ell}^{2} \cdot \cos k_m}{t_m \cdot \left(0.5 - \frac{\cos \left(k_m \cdot 2\right)}{2}\right)}}}\\
\end{array}
\end{array}
if k < 7.6000000000000004e-5Initial program 34.0%
Taylor expanded in t around 0 81.2%
associate-/l*82.3%
Simplified82.3%
Taylor expanded in k around inf 81.2%
times-frac80.9%
Simplified80.9%
associate-*l/82.3%
associate-/r*82.3%
Applied egg-rr82.3%
Taylor expanded in k around 0 77.5%
if 7.6000000000000004e-5 < k Initial program 24.8%
Taylor expanded in t around 0 70.6%
associate-/l*70.8%
Simplified70.8%
unpow270.8%
sin-mult70.7%
Applied egg-rr70.7%
div-sub70.7%
+-inverses70.7%
cos-070.7%
metadata-eval70.7%
count-270.7%
Simplified70.7%
Final simplification75.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 (* 2.0 (/ (* (pow l 2.0) (/ (/ (cos k_m) t_m) (pow k_m 2.0))) (pow 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) {
return t_s * (2.0 * ((pow(l, 2.0) * ((cos(k_m) / t_m) / pow(k_m, 2.0))) / pow(k_m, 2.0)));
}
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 * (2.0d0 * (((l ** 2.0d0) * ((cos(k_m) / t_m) / (k_m ** 2.0d0))) / (k_m ** 2.0d0)))
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 * (2.0 * ((Math.pow(l, 2.0) * ((Math.cos(k_m) / t_m) / Math.pow(k_m, 2.0))) / Math.pow(k_m, 2.0)));
}
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 * (2.0 * ((math.pow(l, 2.0) * ((math.cos(k_m) / t_m) / math.pow(k_m, 2.0))) / math.pow(k_m, 2.0)))
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(2.0 * Float64(Float64((l ^ 2.0) * Float64(Float64(cos(k_m) / t_m) / (k_m ^ 2.0))) / (k_m ^ 2.0)))) 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 * (2.0 * (((l ^ 2.0) * ((cos(k_m) / t_m) / (k_m ^ 2.0))) / (k_m ^ 2.0))); 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[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[(N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 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 \left(2 \cdot \frac{{\ell}^{2} \cdot \frac{\frac{\cos k_m}{t_m}}{{k_m}^{2}}}{{k_m}^{2}}\right)
\end{array}
Initial program 31.5%
Taylor expanded in t around 0 78.3%
associate-/l*79.2%
Simplified79.2%
Taylor expanded in k around inf 78.3%
times-frac78.7%
Simplified78.7%
associate-*l/79.1%
associate-/r*79.2%
Applied egg-rr79.2%
Taylor expanded in k around 0 71.7%
Final simplification71.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 (<= t_m 8.2e-77)
(/ (* 2.0 (* (pow l 2.0) (cos k_m))) (* t_m (pow k_m 4.0)))
(if (<= t_m 4.8e+42)
(/
2.0
(*
(* (tan k_m) (* (sin k_m) (/ (pow t_m 3.0) (* l l))))
(/ k_m (* t_m (/ t_m k_m)))))
(if (<= t_m 1.3e+158)
(sqrt (/ 4.0 (pow (* k_m (/ (* (/ k_m t_m) (pow t_m 1.5)) l)) 4.0)))
(*
2.0
(/
(*
(pow l 2.0)
(- (/ 1.0 (* t_m (pow k_m 2.0))) (/ 0.16666666666666666 t_m)))
(pow 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 <= 8.2e-77) {
tmp = (2.0 * (pow(l, 2.0) * cos(k_m))) / (t_m * pow(k_m, 4.0));
} else if (t_m <= 4.8e+42) {
tmp = 2.0 / ((tan(k_m) * (sin(k_m) * (pow(t_m, 3.0) / (l * l)))) * (k_m / (t_m * (t_m / k_m))));
} else if (t_m <= 1.3e+158) {
tmp = sqrt((4.0 / pow((k_m * (((k_m / t_m) * pow(t_m, 1.5)) / l)), 4.0)));
} else {
tmp = 2.0 * ((pow(l, 2.0) * ((1.0 / (t_m * pow(k_m, 2.0))) - (0.16666666666666666 / t_m))) / pow(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 <= 8.2d-77) then
tmp = (2.0d0 * ((l ** 2.0d0) * cos(k_m))) / (t_m * (k_m ** 4.0d0))
else if (t_m <= 4.8d+42) then
tmp = 2.0d0 / ((tan(k_m) * (sin(k_m) * ((t_m ** 3.0d0) / (l * l)))) * (k_m / (t_m * (t_m / k_m))))
else if (t_m <= 1.3d+158) then
tmp = sqrt((4.0d0 / ((k_m * (((k_m / t_m) * (t_m ** 1.5d0)) / l)) ** 4.0d0)))
else
tmp = 2.0d0 * (((l ** 2.0d0) * ((1.0d0 / (t_m * (k_m ** 2.0d0))) - (0.16666666666666666d0 / t_m))) / (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 <= 8.2e-77) {
tmp = (2.0 * (Math.pow(l, 2.0) * Math.cos(k_m))) / (t_m * Math.pow(k_m, 4.0));
} else if (t_m <= 4.8e+42) {
tmp = 2.0 / ((Math.tan(k_m) * (Math.sin(k_m) * (Math.pow(t_m, 3.0) / (l * l)))) * (k_m / (t_m * (t_m / k_m))));
} else if (t_m <= 1.3e+158) {
tmp = Math.sqrt((4.0 / Math.pow((k_m * (((k_m / t_m) * Math.pow(t_m, 1.5)) / l)), 4.0)));
} else {
tmp = 2.0 * ((Math.pow(l, 2.0) * ((1.0 / (t_m * Math.pow(k_m, 2.0))) - (0.16666666666666666 / t_m))) / Math.pow(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 <= 8.2e-77: tmp = (2.0 * (math.pow(l, 2.0) * math.cos(k_m))) / (t_m * math.pow(k_m, 4.0)) elif t_m <= 4.8e+42: tmp = 2.0 / ((math.tan(k_m) * (math.sin(k_m) * (math.pow(t_m, 3.0) / (l * l)))) * (k_m / (t_m * (t_m / k_m)))) elif t_m <= 1.3e+158: tmp = math.sqrt((4.0 / math.pow((k_m * (((k_m / t_m) * math.pow(t_m, 1.5)) / l)), 4.0))) else: tmp = 2.0 * ((math.pow(l, 2.0) * ((1.0 / (t_m * math.pow(k_m, 2.0))) - (0.16666666666666666 / t_m))) / math.pow(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 <= 8.2e-77) tmp = Float64(Float64(2.0 * Float64((l ^ 2.0) * cos(k_m))) / Float64(t_m * (k_m ^ 4.0))); elseif (t_m <= 4.8e+42) tmp = Float64(2.0 / Float64(Float64(tan(k_m) * Float64(sin(k_m) * Float64((t_m ^ 3.0) / Float64(l * l)))) * Float64(k_m / Float64(t_m * Float64(t_m / k_m))))); elseif (t_m <= 1.3e+158) tmp = sqrt(Float64(4.0 / (Float64(k_m * Float64(Float64(Float64(k_m / t_m) * (t_m ^ 1.5)) / l)) ^ 4.0))); else tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) * Float64(Float64(1.0 / Float64(t_m * (k_m ^ 2.0))) - Float64(0.16666666666666666 / t_m))) / (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 <= 8.2e-77) tmp = (2.0 * ((l ^ 2.0) * cos(k_m))) / (t_m * (k_m ^ 4.0)); elseif (t_m <= 4.8e+42) tmp = 2.0 / ((tan(k_m) * (sin(k_m) * ((t_m ^ 3.0) / (l * l)))) * (k_m / (t_m * (t_m / k_m)))); elseif (t_m <= 1.3e+158) tmp = sqrt((4.0 / ((k_m * (((k_m / t_m) * (t_m ^ 1.5)) / l)) ^ 4.0))); else tmp = 2.0 * (((l ^ 2.0) * ((1.0 / (t_m * (k_m ^ 2.0))) - (0.16666666666666666 / t_m))) / (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, 8.2e-77], N[(N[(2.0 * N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(t$95$m * N[Power[k$95$m, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 4.8e+42], N[(2.0 / N[(N[(N[Tan[k$95$m], $MachinePrecision] * N[(N[Sin[k$95$m], $MachinePrecision] * N[(N[Power[t$95$m, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(k$95$m / N[(t$95$m * N[(t$95$m / k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 1.3e+158], N[Sqrt[N[(4.0 / N[Power[N[(k$95$m * N[(N[(N[(k$95$m / t$95$m), $MachinePrecision] * N[Power[t$95$m, 1.5], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], 4.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[(N[(1.0 / N[(t$95$m * N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(0.16666666666666666 / t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 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 8.2 \cdot 10^{-77}:\\
\;\;\;\;\frac{2 \cdot \left({\ell}^{2} \cdot \cos k_m\right)}{t_m \cdot {k_m}^{4}}\\
\mathbf{elif}\;t_m \leq 4.8 \cdot 10^{+42}:\\
\;\;\;\;\frac{2}{\left(\tan k_m \cdot \left(\sin k_m \cdot \frac{{t_m}^{3}}{\ell \cdot \ell}\right)\right) \cdot \frac{k_m}{t_m \cdot \frac{t_m}{k_m}}}\\
\mathbf{elif}\;t_m \leq 1.3 \cdot 10^{+158}:\\
\;\;\;\;\sqrt{\frac{4}{{\left(k_m \cdot \frac{\frac{k_m}{t_m} \cdot {t_m}^{1.5}}{\ell}\right)}^{4}}}\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \frac{{\ell}^{2} \cdot \left(\frac{1}{t_m \cdot {k_m}^{2}} - \frac{0.16666666666666666}{t_m}\right)}{{k_m}^{2}}\\
\end{array}
\end{array}
if t < 8.19999999999999925e-77Initial program 29.9%
associate-*l*29.9%
associate-/r*29.9%
sub-neg29.9%
distribute-rgt-in24.5%
unpow224.5%
times-frac16.4%
sqr-neg16.4%
times-frac24.5%
unpow224.5%
distribute-rgt-in29.9%
+-commutative29.9%
associate-+l+36.5%
Simplified36.5%
Taylor expanded in t around 0 76.9%
associate-*r/76.9%
associate-*r*76.9%
Simplified76.9%
Taylor expanded in k around 0 65.6%
if 8.19999999999999925e-77 < t < 4.7999999999999997e42Initial program 79.5%
+-commutative79.5%
associate--l+79.5%
metadata-eval79.5%
+-rgt-identity79.5%
unpow279.5%
clear-num79.5%
frac-times79.5%
*-un-lft-identity79.5%
Applied egg-rr79.5%
if 4.7999999999999997e42 < t < 1.3e158Initial program 32.2%
associate-*l*32.2%
associate-/r*32.2%
sub-neg32.2%
distribute-rgt-in31.7%
unpow231.7%
times-frac31.7%
sqr-neg31.7%
times-frac31.7%
unpow231.7%
distribute-rgt-in32.2%
+-commutative32.2%
associate-+l+45.1%
Simplified45.1%
Applied egg-rr63.1%
unpow263.1%
pow-sqr63.1%
associate-*r*63.1%
associate-*r/75.4%
metadata-eval75.4%
Simplified75.4%
Taylor expanded in k around 0 75.9%
if 1.3e158 < t Initial program 3.2%
Taylor expanded in t around 0 80.9%
associate-/l*81.2%
Simplified81.2%
Taylor expanded in k around inf 80.9%
times-frac78.2%
Simplified78.2%
associate-*l/81.2%
associate-/r*81.2%
Applied egg-rr81.2%
Taylor expanded in k around 0 78.5%
*-commutative78.5%
associate-*r/78.5%
metadata-eval78.5%
Simplified78.5%
Final simplification69.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 1.95e-80)
(/ (* 2.0 (* (pow l 2.0) (cos k_m))) (* t_m (pow k_m 4.0)))
(if (<= t_m 2.1e+43)
(/
2.0
(*
(* (tan k_m) (* (sin k_m) (/ (pow t_m 3.0) (* l l))))
(/ (/ k_m t_m) (/ t_m k_m))))
(if (<= t_m 8e+156)
(sqrt (/ 4.0 (pow (* k_m (/ (* (/ k_m t_m) (pow t_m 1.5)) l)) 4.0)))
(*
2.0
(/
(*
(pow l 2.0)
(- (/ 1.0 (* t_m (pow k_m 2.0))) (/ 0.16666666666666666 t_m)))
(pow 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 <= 1.95e-80) {
tmp = (2.0 * (pow(l, 2.0) * cos(k_m))) / (t_m * pow(k_m, 4.0));
} else if (t_m <= 2.1e+43) {
tmp = 2.0 / ((tan(k_m) * (sin(k_m) * (pow(t_m, 3.0) / (l * l)))) * ((k_m / t_m) / (t_m / k_m)));
} else if (t_m <= 8e+156) {
tmp = sqrt((4.0 / pow((k_m * (((k_m / t_m) * pow(t_m, 1.5)) / l)), 4.0)));
} else {
tmp = 2.0 * ((pow(l, 2.0) * ((1.0 / (t_m * pow(k_m, 2.0))) - (0.16666666666666666 / t_m))) / pow(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 <= 1.95d-80) then
tmp = (2.0d0 * ((l ** 2.0d0) * cos(k_m))) / (t_m * (k_m ** 4.0d0))
else if (t_m <= 2.1d+43) then
tmp = 2.0d0 / ((tan(k_m) * (sin(k_m) * ((t_m ** 3.0d0) / (l * l)))) * ((k_m / t_m) / (t_m / k_m)))
else if (t_m <= 8d+156) then
tmp = sqrt((4.0d0 / ((k_m * (((k_m / t_m) * (t_m ** 1.5d0)) / l)) ** 4.0d0)))
else
tmp = 2.0d0 * (((l ** 2.0d0) * ((1.0d0 / (t_m * (k_m ** 2.0d0))) - (0.16666666666666666d0 / t_m))) / (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 <= 1.95e-80) {
tmp = (2.0 * (Math.pow(l, 2.0) * Math.cos(k_m))) / (t_m * Math.pow(k_m, 4.0));
} else if (t_m <= 2.1e+43) {
tmp = 2.0 / ((Math.tan(k_m) * (Math.sin(k_m) * (Math.pow(t_m, 3.0) / (l * l)))) * ((k_m / t_m) / (t_m / k_m)));
} else if (t_m <= 8e+156) {
tmp = Math.sqrt((4.0 / Math.pow((k_m * (((k_m / t_m) * Math.pow(t_m, 1.5)) / l)), 4.0)));
} else {
tmp = 2.0 * ((Math.pow(l, 2.0) * ((1.0 / (t_m * Math.pow(k_m, 2.0))) - (0.16666666666666666 / t_m))) / Math.pow(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 <= 1.95e-80: tmp = (2.0 * (math.pow(l, 2.0) * math.cos(k_m))) / (t_m * math.pow(k_m, 4.0)) elif t_m <= 2.1e+43: tmp = 2.0 / ((math.tan(k_m) * (math.sin(k_m) * (math.pow(t_m, 3.0) / (l * l)))) * ((k_m / t_m) / (t_m / k_m))) elif t_m <= 8e+156: tmp = math.sqrt((4.0 / math.pow((k_m * (((k_m / t_m) * math.pow(t_m, 1.5)) / l)), 4.0))) else: tmp = 2.0 * ((math.pow(l, 2.0) * ((1.0 / (t_m * math.pow(k_m, 2.0))) - (0.16666666666666666 / t_m))) / math.pow(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 <= 1.95e-80) tmp = Float64(Float64(2.0 * Float64((l ^ 2.0) * cos(k_m))) / Float64(t_m * (k_m ^ 4.0))); elseif (t_m <= 2.1e+43) tmp = Float64(2.0 / Float64(Float64(tan(k_m) * Float64(sin(k_m) * Float64((t_m ^ 3.0) / Float64(l * l)))) * Float64(Float64(k_m / t_m) / Float64(t_m / k_m)))); elseif (t_m <= 8e+156) tmp = sqrt(Float64(4.0 / (Float64(k_m * Float64(Float64(Float64(k_m / t_m) * (t_m ^ 1.5)) / l)) ^ 4.0))); else tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) * Float64(Float64(1.0 / Float64(t_m * (k_m ^ 2.0))) - Float64(0.16666666666666666 / t_m))) / (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 <= 1.95e-80) tmp = (2.0 * ((l ^ 2.0) * cos(k_m))) / (t_m * (k_m ^ 4.0)); elseif (t_m <= 2.1e+43) tmp = 2.0 / ((tan(k_m) * (sin(k_m) * ((t_m ^ 3.0) / (l * l)))) * ((k_m / t_m) / (t_m / k_m))); elseif (t_m <= 8e+156) tmp = sqrt((4.0 / ((k_m * (((k_m / t_m) * (t_m ^ 1.5)) / l)) ^ 4.0))); else tmp = 2.0 * (((l ^ 2.0) * ((1.0 / (t_m * (k_m ^ 2.0))) - (0.16666666666666666 / t_m))) / (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, 1.95e-80], N[(N[(2.0 * N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(t$95$m * N[Power[k$95$m, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 2.1e+43], N[(2.0 / N[(N[(N[Tan[k$95$m], $MachinePrecision] * N[(N[Sin[k$95$m], $MachinePrecision] * N[(N[Power[t$95$m, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(k$95$m / t$95$m), $MachinePrecision] / N[(t$95$m / k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 8e+156], N[Sqrt[N[(4.0 / N[Power[N[(k$95$m * N[(N[(N[(k$95$m / t$95$m), $MachinePrecision] * N[Power[t$95$m, 1.5], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], 4.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[(N[(1.0 / N[(t$95$m * N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] - N[(0.16666666666666666 / t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 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 1.95 \cdot 10^{-80}:\\
\;\;\;\;\frac{2 \cdot \left({\ell}^{2} \cdot \cos k_m\right)}{t_m \cdot {k_m}^{4}}\\
\mathbf{elif}\;t_m \leq 2.1 \cdot 10^{+43}:\\
\;\;\;\;\frac{2}{\left(\tan k_m \cdot \left(\sin k_m \cdot \frac{{t_m}^{3}}{\ell \cdot \ell}\right)\right) \cdot \frac{\frac{k_m}{t_m}}{\frac{t_m}{k_m}}}\\
\mathbf{elif}\;t_m \leq 8 \cdot 10^{+156}:\\
\;\;\;\;\sqrt{\frac{4}{{\left(k_m \cdot \frac{\frac{k_m}{t_m} \cdot {t_m}^{1.5}}{\ell}\right)}^{4}}}\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \frac{{\ell}^{2} \cdot \left(\frac{1}{t_m \cdot {k_m}^{2}} - \frac{0.16666666666666666}{t_m}\right)}{{k_m}^{2}}\\
\end{array}
\end{array}
if t < 1.9499999999999999e-80Initial program 29.9%
associate-*l*29.9%
associate-/r*29.9%
sub-neg29.9%
distribute-rgt-in24.5%
unpow224.5%
times-frac16.4%
sqr-neg16.4%
times-frac24.5%
unpow224.5%
distribute-rgt-in29.9%
+-commutative29.9%
associate-+l+36.5%
Simplified36.5%
Taylor expanded in t around 0 76.9%
associate-*r/76.9%
associate-*r*76.9%
Simplified76.9%
Taylor expanded in k around 0 65.6%
if 1.9499999999999999e-80 < t < 2.10000000000000002e43Initial program 79.5%
+-commutative79.5%
associate--l+79.5%
metadata-eval79.5%
+-rgt-identity79.5%
unpow279.5%
clear-num79.5%
un-div-inv79.4%
Applied egg-rr79.4%
if 2.10000000000000002e43 < t < 7.9999999999999999e156Initial program 32.2%
associate-*l*32.2%
associate-/r*32.2%
sub-neg32.2%
distribute-rgt-in31.7%
unpow231.7%
times-frac31.7%
sqr-neg31.7%
times-frac31.7%
unpow231.7%
distribute-rgt-in32.2%
+-commutative32.2%
associate-+l+45.1%
Simplified45.1%
Applied egg-rr63.1%
unpow263.1%
pow-sqr63.1%
associate-*r*63.1%
associate-*r/75.4%
metadata-eval75.4%
Simplified75.4%
Taylor expanded in k around 0 75.9%
if 7.9999999999999999e156 < t Initial program 3.2%
Taylor expanded in t around 0 80.9%
associate-/l*81.2%
Simplified81.2%
Taylor expanded in k around inf 80.9%
times-frac78.2%
Simplified78.2%
associate-*l/81.2%
associate-/r*81.2%
Applied egg-rr81.2%
Taylor expanded in k around 0 78.5%
*-commutative78.5%
associate-*r/78.5%
metadata-eval78.5%
Simplified78.5%
Final simplification69.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 (* 2.0 (/ (/ (pow l 2.0) (* t_m (pow k_m 2.0))) (pow 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) {
return t_s * (2.0 * ((pow(l, 2.0) / (t_m * pow(k_m, 2.0))) / pow(k_m, 2.0)));
}
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 * (2.0d0 * (((l ** 2.0d0) / (t_m * (k_m ** 2.0d0))) / (k_m ** 2.0d0)))
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 * (2.0 * ((Math.pow(l, 2.0) / (t_m * Math.pow(k_m, 2.0))) / Math.pow(k_m, 2.0)));
}
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 * (2.0 * ((math.pow(l, 2.0) / (t_m * math.pow(k_m, 2.0))) / math.pow(k_m, 2.0)))
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(2.0 * Float64(Float64((l ^ 2.0) / Float64(t_m * (k_m ^ 2.0))) / (k_m ^ 2.0)))) 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 * (2.0 * (((l ^ 2.0) / (t_m * (k_m ^ 2.0))) / (k_m ^ 2.0))); 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[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[(t$95$m * N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 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 \left(2 \cdot \frac{\frac{{\ell}^{2}}{t_m \cdot {k_m}^{2}}}{{k_m}^{2}}\right)
\end{array}
Initial program 31.5%
Taylor expanded in t around 0 78.3%
associate-/l*79.2%
Simplified79.2%
Taylor expanded in k around inf 78.3%
times-frac78.7%
Simplified78.7%
associate-*l/79.1%
associate-/r*79.2%
Applied egg-rr79.2%
Taylor expanded in k around 0 69.5%
Final simplification69.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 (/ (* 2.0 (* (pow l 2.0) (cos k_m))) (* 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) {
return t_s * ((2.0 * (pow(l, 2.0) * cos(k_m))) / (t_m * pow(k_m, 4.0)));
}
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 * ((2.0d0 * ((l ** 2.0d0) * cos(k_m))) / (t_m * (k_m ** 4.0d0)))
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 * ((2.0 * (Math.pow(l, 2.0) * Math.cos(k_m))) / (t_m * Math.pow(k_m, 4.0)));
}
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 * ((2.0 * (math.pow(l, 2.0) * math.cos(k_m))) / (t_m * math.pow(k_m, 4.0)))
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(Float64(2.0 * Float64((l ^ 2.0) * cos(k_m))) / Float64(t_m * (k_m ^ 4.0)))) 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 * ((2.0 * ((l ^ 2.0) * cos(k_m))) / (t_m * (k_m ^ 4.0))); 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[(N[(2.0 * N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(t$95$m * N[Power[k$95$m, 4.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 \frac{2 \cdot \left({\ell}^{2} \cdot \cos k_m\right)}{t_m \cdot {k_m}^{4}}
\end{array}
Initial program 31.5%
associate-*l*31.5%
associate-/r*31.4%
sub-neg31.4%
distribute-rgt-in27.5%
unpow227.5%
times-frac21.3%
sqr-neg21.3%
times-frac27.5%
unpow227.5%
distribute-rgt-in31.4%
+-commutative31.4%
associate-+l+39.8%
Simplified39.8%
Taylor expanded in t around 0 78.3%
associate-*r/78.3%
associate-*r*78.3%
Simplified78.3%
Taylor expanded in k around 0 67.0%
Final simplification67.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 (* 2.0 (/ (pow l 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) {
return t_s * (2.0 * (pow(l, 2.0) / (t_m * pow(k_m, 4.0))));
}
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 * (2.0d0 * ((l ** 2.0d0) / (t_m * (k_m ** 4.0d0))))
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 * (2.0 * (Math.pow(l, 2.0) / (t_m * Math.pow(k_m, 4.0))));
}
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 * (2.0 * (math.pow(l, 2.0) / (t_m * math.pow(k_m, 4.0))))
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(2.0 * Float64((l ^ 2.0) / Float64(t_m * (k_m ^ 4.0))))) 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 * (2.0 * ((l ^ 2.0) / (t_m * (k_m ^ 4.0)))); 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[(2.0 * N[(N[Power[l, 2.0], $MachinePrecision] / N[(t$95$m * N[Power[k$95$m, 4.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 \left(2 \cdot \frac{{\ell}^{2}}{t_m \cdot {k_m}^{4}}\right)
\end{array}
Initial program 31.5%
associate-*l*31.5%
associate-/r*31.4%
sub-neg31.4%
distribute-rgt-in27.5%
unpow227.5%
times-frac21.3%
sqr-neg21.3%
times-frac27.5%
unpow227.5%
distribute-rgt-in31.4%
+-commutative31.4%
associate-+l+39.8%
Simplified39.8%
Taylor expanded in k around 0 65.2%
Final simplification65.2%
herbie shell --seed 2024017
(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))))