
(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 14 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 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k_m)
:precision binary64
(let* ((t_2 (* t_m (pow (cbrt l) -2.0))))
(*
t_s
(if (<= k_m 4.7e-11)
(*
2.0
(fabs
(pow (* (sqrt (cos k_m)) (/ (/ (/ l (sin k_m)) (sqrt t_m)) k_m)) 2.0)))
(if (<= k_m 4e+155)
(*
2.0
(*
(/ (pow l 2.0) (pow k_m 2.0))
(/ (cos k_m) (* t_m (pow (sin k_m) 2.0)))))
(/
2.0
(*
(*
(/ k_m t_m)
(pow (* t_2 (* (cbrt (tan k_m)) (cbrt (sin k_m)))) 2.0))
(* (/ k_m t_m) (* t_2 (cbrt (* (sin k_m) (tan 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 t_2 = t_m * pow(cbrt(l), -2.0);
double tmp;
if (k_m <= 4.7e-11) {
tmp = 2.0 * fabs(pow((sqrt(cos(k_m)) * (((l / sin(k_m)) / sqrt(t_m)) / k_m)), 2.0));
} else if (k_m <= 4e+155) {
tmp = 2.0 * ((pow(l, 2.0) / pow(k_m, 2.0)) * (cos(k_m) / (t_m * pow(sin(k_m), 2.0))));
} else {
tmp = 2.0 / (((k_m / t_m) * pow((t_2 * (cbrt(tan(k_m)) * cbrt(sin(k_m)))), 2.0)) * ((k_m / t_m) * (t_2 * cbrt((sin(k_m) * tan(k_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 = t_m * Math.pow(Math.cbrt(l), -2.0);
double tmp;
if (k_m <= 4.7e-11) {
tmp = 2.0 * Math.abs(Math.pow((Math.sqrt(Math.cos(k_m)) * (((l / Math.sin(k_m)) / Math.sqrt(t_m)) / k_m)), 2.0));
} else if (k_m <= 4e+155) {
tmp = 2.0 * ((Math.pow(l, 2.0) / Math.pow(k_m, 2.0)) * (Math.cos(k_m) / (t_m * Math.pow(Math.sin(k_m), 2.0))));
} else {
tmp = 2.0 / (((k_m / t_m) * Math.pow((t_2 * (Math.cbrt(Math.tan(k_m)) * Math.cbrt(Math.sin(k_m)))), 2.0)) * ((k_m / t_m) * (t_2 * Math.cbrt((Math.sin(k_m) * Math.tan(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) t_2 = Float64(t_m * (cbrt(l) ^ -2.0)) tmp = 0.0 if (k_m <= 4.7e-11) tmp = Float64(2.0 * abs((Float64(sqrt(cos(k_m)) * Float64(Float64(Float64(l / sin(k_m)) / sqrt(t_m)) / k_m)) ^ 2.0))); elseif (k_m <= 4e+155) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) / (k_m ^ 2.0)) * Float64(cos(k_m) / Float64(t_m * (sin(k_m) ^ 2.0))))); else tmp = Float64(2.0 / Float64(Float64(Float64(k_m / t_m) * (Float64(t_2 * Float64(cbrt(tan(k_m)) * cbrt(sin(k_m)))) ^ 2.0)) * Float64(Float64(k_m / t_m) * Float64(t_2 * cbrt(Float64(sin(k_m) * tan(k_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[(t$95$m * N[Power[N[Power[l, 1/3], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[k$95$m, 4.7e-11], N[(2.0 * N[Abs[N[Power[N[(N[Sqrt[N[Cos[k$95$m], $MachinePrecision]], $MachinePrecision] * N[(N[(N[(l / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision] / N[Sqrt[t$95$m], $MachinePrecision]), $MachinePrecision] / k$95$m), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[k$95$m, 4e+155], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[Cos[k$95$m], $MachinePrecision] / N[(t$95$m * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(k$95$m / t$95$m), $MachinePrecision] * N[Power[N[(t$95$2 * N[(N[Power[N[Tan[k$95$m], $MachinePrecision], 1/3], $MachinePrecision] * N[Power[N[Sin[k$95$m], $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[(k$95$m / t$95$m), $MachinePrecision] * N[(t$95$2 * N[Power[N[(N[Sin[k$95$m], $MachinePrecision] * N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision], 1/3], $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)
\\
\begin{array}{l}
t_2 := t\_m \cdot {\left(\sqrt[3]{\ell}\right)}^{-2}\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k\_m \leq 4.7 \cdot 10^{-11}:\\
\;\;\;\;2 \cdot \left|{\left(\sqrt{\cos k\_m} \cdot \frac{\frac{\frac{\ell}{\sin k\_m}}{\sqrt{t\_m}}}{k\_m}\right)}^{2}\right|\\
\mathbf{elif}\;k\_m \leq 4 \cdot 10^{+155}:\\
\;\;\;\;2 \cdot \left(\frac{{\ell}^{2}}{{k\_m}^{2}} \cdot \frac{\cos k\_m}{t\_m \cdot {\sin k\_m}^{2}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\frac{k\_m}{t\_m} \cdot {\left(t\_2 \cdot \left(\sqrt[3]{\tan k\_m} \cdot \sqrt[3]{\sin k\_m}\right)\right)}^{2}\right) \cdot \left(\frac{k\_m}{t\_m} \cdot \left(t\_2 \cdot \sqrt[3]{\sin k\_m \cdot \tan k\_m}\right)\right)}\\
\end{array}
\end{array}
\end{array}
if k < 4.69999999999999993e-11Initial program 35.6%
Simplified40.9%
associate-*l/41.3%
add-sqr-sqrt19.7%
associate-/r*19.7%
Applied egg-rr21.8%
Taylor expanded in t around -inf 0.0%
*-commutative0.0%
times-frac0.0%
*-commutative0.0%
*-commutative0.0%
unpow20.0%
rem-square-sqrt72.4%
*-commutative72.4%
associate-*l*72.4%
neg-mul-172.4%
Simplified72.4%
Applied egg-rr28.9%
unpow228.9%
rem-sqrt-square37.2%
fabs-mul37.2%
metadata-eval37.2%
associate-*l/37.2%
associate-/l*37.2%
associate-/r*37.2%
Simplified37.2%
if 4.69999999999999993e-11 < k < 4.00000000000000003e155Initial program 12.4%
Simplified40.2%
Taylor expanded in t around 0 87.9%
associate-/l*88.0%
associate-/l*87.8%
Simplified87.8%
Taylor expanded in k around inf 88.0%
times-frac85.3%
Simplified85.3%
if 4.00000000000000003e155 < k Initial program 40.6%
*-commutative40.6%
associate-/r*40.6%
Simplified49.7%
add-sqr-sqrt49.7%
add-cube-cbrt49.7%
times-frac49.7%
Applied egg-rr79.1%
associate-/l/79.1%
associate-/l/79.1%
Simplified79.1%
frac-times79.1%
pow1/279.1%
pow1/279.1%
pow-prod-up79.1%
metadata-eval79.1%
metadata-eval79.1%
Applied egg-rr79.1%
*-commutative79.1%
cbrt-prod79.1%
Applied egg-rr79.1%
k_m = (fabs.f64 k)
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k_m)
:precision binary64
(let* ((t_2 (pow (cbrt l) -2.0)))
(*
t_s
(if (<= k_m 1.2e-10)
(*
2.0
(fabs
(pow (* (sqrt (cos k_m)) (/ (/ (/ l (sin k_m)) (sqrt t_m)) k_m)) 2.0)))
(if (<= k_m 4e+155)
(*
2.0
(*
(/ (pow l 2.0) (pow k_m 2.0))
(/ (cos k_m) (* t_m (pow (sin k_m) 2.0)))))
(/
2.0
(*
(*
(/ k_m t_m)
(pow (* (* t_m t_2) (* (cbrt (tan k_m)) (cbrt (sin k_m)))) 2.0))
(* k_m (* t_2 (cbrt (* (sin k_m) (tan 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 t_2 = pow(cbrt(l), -2.0);
double tmp;
if (k_m <= 1.2e-10) {
tmp = 2.0 * fabs(pow((sqrt(cos(k_m)) * (((l / sin(k_m)) / sqrt(t_m)) / k_m)), 2.0));
} else if (k_m <= 4e+155) {
tmp = 2.0 * ((pow(l, 2.0) / pow(k_m, 2.0)) * (cos(k_m) / (t_m * pow(sin(k_m), 2.0))));
} else {
tmp = 2.0 / (((k_m / t_m) * pow(((t_m * t_2) * (cbrt(tan(k_m)) * cbrt(sin(k_m)))), 2.0)) * (k_m * (t_2 * cbrt((sin(k_m) * tan(k_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.pow(Math.cbrt(l), -2.0);
double tmp;
if (k_m <= 1.2e-10) {
tmp = 2.0 * Math.abs(Math.pow((Math.sqrt(Math.cos(k_m)) * (((l / Math.sin(k_m)) / Math.sqrt(t_m)) / k_m)), 2.0));
} else if (k_m <= 4e+155) {
tmp = 2.0 * ((Math.pow(l, 2.0) / Math.pow(k_m, 2.0)) * (Math.cos(k_m) / (t_m * Math.pow(Math.sin(k_m), 2.0))));
} else {
tmp = 2.0 / (((k_m / t_m) * Math.pow(((t_m * t_2) * (Math.cbrt(Math.tan(k_m)) * Math.cbrt(Math.sin(k_m)))), 2.0)) * (k_m * (t_2 * Math.cbrt((Math.sin(k_m) * Math.tan(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) t_2 = cbrt(l) ^ -2.0 tmp = 0.0 if (k_m <= 1.2e-10) tmp = Float64(2.0 * abs((Float64(sqrt(cos(k_m)) * Float64(Float64(Float64(l / sin(k_m)) / sqrt(t_m)) / k_m)) ^ 2.0))); elseif (k_m <= 4e+155) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) / (k_m ^ 2.0)) * Float64(cos(k_m) / Float64(t_m * (sin(k_m) ^ 2.0))))); else tmp = Float64(2.0 / Float64(Float64(Float64(k_m / t_m) * (Float64(Float64(t_m * t_2) * Float64(cbrt(tan(k_m)) * cbrt(sin(k_m)))) ^ 2.0)) * Float64(k_m * Float64(t_2 * cbrt(Float64(sin(k_m) * tan(k_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[Power[N[Power[l, 1/3], $MachinePrecision], -2.0], $MachinePrecision]}, N[(t$95$s * If[LessEqual[k$95$m, 1.2e-10], N[(2.0 * N[Abs[N[Power[N[(N[Sqrt[N[Cos[k$95$m], $MachinePrecision]], $MachinePrecision] * N[(N[(N[(l / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision] / N[Sqrt[t$95$m], $MachinePrecision]), $MachinePrecision] / k$95$m), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[k$95$m, 4e+155], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[Cos[k$95$m], $MachinePrecision] / N[(t$95$m * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(k$95$m / t$95$m), $MachinePrecision] * N[Power[N[(N[(t$95$m * t$95$2), $MachinePrecision] * N[(N[Power[N[Tan[k$95$m], $MachinePrecision], 1/3], $MachinePrecision] * N[Power[N[Sin[k$95$m], $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] * N[(k$95$m * N[(t$95$2 * N[Power[N[(N[Sin[k$95$m], $MachinePrecision] * N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision], 1/3], $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)
\\
\begin{array}{l}
t_2 := {\left(\sqrt[3]{\ell}\right)}^{-2}\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k\_m \leq 1.2 \cdot 10^{-10}:\\
\;\;\;\;2 \cdot \left|{\left(\sqrt{\cos k\_m} \cdot \frac{\frac{\frac{\ell}{\sin k\_m}}{\sqrt{t\_m}}}{k\_m}\right)}^{2}\right|\\
\mathbf{elif}\;k\_m \leq 4 \cdot 10^{+155}:\\
\;\;\;\;2 \cdot \left(\frac{{\ell}^{2}}{{k\_m}^{2}} \cdot \frac{\cos k\_m}{t\_m \cdot {\sin k\_m}^{2}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\frac{k\_m}{t\_m} \cdot {\left(\left(t\_m \cdot t\_2\right) \cdot \left(\sqrt[3]{\tan k\_m} \cdot \sqrt[3]{\sin k\_m}\right)\right)}^{2}\right) \cdot \left(k\_m \cdot \left(t\_2 \cdot \sqrt[3]{\sin k\_m \cdot \tan k\_m}\right)\right)}\\
\end{array}
\end{array}
\end{array}
if k < 1.2e-10Initial program 35.6%
Simplified40.9%
associate-*l/41.3%
add-sqr-sqrt19.7%
associate-/r*19.7%
Applied egg-rr21.8%
Taylor expanded in t around -inf 0.0%
*-commutative0.0%
times-frac0.0%
*-commutative0.0%
*-commutative0.0%
unpow20.0%
rem-square-sqrt72.4%
*-commutative72.4%
associate-*l*72.4%
neg-mul-172.4%
Simplified72.4%
Applied egg-rr28.9%
unpow228.9%
rem-sqrt-square37.2%
fabs-mul37.2%
metadata-eval37.2%
associate-*l/37.2%
associate-/l*37.2%
associate-/r*37.2%
Simplified37.2%
if 1.2e-10 < k < 4.00000000000000003e155Initial program 12.4%
Simplified40.2%
Taylor expanded in t around 0 87.9%
associate-/l*88.0%
associate-/l*87.8%
Simplified87.8%
Taylor expanded in k around inf 88.0%
times-frac85.3%
Simplified85.3%
if 4.00000000000000003e155 < k Initial program 40.6%
*-commutative40.6%
associate-/r*40.6%
Simplified49.7%
add-sqr-sqrt49.7%
add-cube-cbrt49.7%
times-frac49.7%
Applied egg-rr79.1%
associate-/l/79.1%
associate-/l/79.1%
Simplified79.1%
frac-times79.1%
pow1/279.1%
pow1/279.1%
pow-prod-up79.1%
metadata-eval79.1%
metadata-eval79.1%
Applied egg-rr79.1%
*-commutative79.1%
cbrt-prod79.1%
Applied egg-rr79.1%
associate-*l/73.8%
associate-*l*73.8%
Applied egg-rr73.8%
associate-/l*79.1%
*-commutative79.1%
associate-/l*79.1%
*-commutative79.1%
*-inverses79.1%
Simplified79.1%
Final simplification48.8%
k_m = (fabs.f64 k)
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k_m)
:precision binary64
(let* ((t_2 (* (* t_m (pow (cbrt l) -2.0)) (cbrt (* (sin k_m) (tan k_m))))))
(*
t_s
(if (<= k_m 1.2e-10)
(*
2.0
(fabs
(pow (* (sqrt (cos k_m)) (/ (/ (/ l (sin k_m)) (sqrt t_m)) k_m)) 2.0)))
(if (<= k_m 4e+155)
(*
2.0
(*
(/ (pow l 2.0) (pow k_m 2.0))
(/ (cos k_m) (* t_m (pow (sin k_m) 2.0)))))
(/ 2.0 (* (* (/ k_m t_m) t_2) (* (/ k_m t_m) (pow t_2 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 = (t_m * pow(cbrt(l), -2.0)) * cbrt((sin(k_m) * tan(k_m)));
double tmp;
if (k_m <= 1.2e-10) {
tmp = 2.0 * fabs(pow((sqrt(cos(k_m)) * (((l / sin(k_m)) / sqrt(t_m)) / k_m)), 2.0));
} else if (k_m <= 4e+155) {
tmp = 2.0 * ((pow(l, 2.0) / pow(k_m, 2.0)) * (cos(k_m) / (t_m * pow(sin(k_m), 2.0))));
} else {
tmp = 2.0 / (((k_m / t_m) * t_2) * ((k_m / t_m) * pow(t_2, 2.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 = (t_m * Math.pow(Math.cbrt(l), -2.0)) * Math.cbrt((Math.sin(k_m) * Math.tan(k_m)));
double tmp;
if (k_m <= 1.2e-10) {
tmp = 2.0 * Math.abs(Math.pow((Math.sqrt(Math.cos(k_m)) * (((l / Math.sin(k_m)) / Math.sqrt(t_m)) / k_m)), 2.0));
} else if (k_m <= 4e+155) {
tmp = 2.0 * ((Math.pow(l, 2.0) / Math.pow(k_m, 2.0)) * (Math.cos(k_m) / (t_m * Math.pow(Math.sin(k_m), 2.0))));
} else {
tmp = 2.0 / (((k_m / t_m) * t_2) * ((k_m / t_m) * Math.pow(t_2, 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(Float64(t_m * (cbrt(l) ^ -2.0)) * cbrt(Float64(sin(k_m) * tan(k_m)))) tmp = 0.0 if (k_m <= 1.2e-10) tmp = Float64(2.0 * abs((Float64(sqrt(cos(k_m)) * Float64(Float64(Float64(l / sin(k_m)) / sqrt(t_m)) / k_m)) ^ 2.0))); elseif (k_m <= 4e+155) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) / (k_m ^ 2.0)) * Float64(cos(k_m) / Float64(t_m * (sin(k_m) ^ 2.0))))); else tmp = Float64(2.0 / Float64(Float64(Float64(k_m / t_m) * t_2) * Float64(Float64(k_m / t_m) * (t_2 ^ 2.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[(t$95$m * N[Power[N[Power[l, 1/3], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision] * N[Power[N[(N[Sin[k$95$m], $MachinePrecision] * N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[k$95$m, 1.2e-10], N[(2.0 * N[Abs[N[Power[N[(N[Sqrt[N[Cos[k$95$m], $MachinePrecision]], $MachinePrecision] * N[(N[(N[(l / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision] / N[Sqrt[t$95$m], $MachinePrecision]), $MachinePrecision] / k$95$m), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[k$95$m, 4e+155], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[Cos[k$95$m], $MachinePrecision] / N[(t$95$m * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(k$95$m / t$95$m), $MachinePrecision] * t$95$2), $MachinePrecision] * N[(N[(k$95$m / t$95$m), $MachinePrecision] * N[Power[t$95$2, 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)
\\
\begin{array}{l}
t_2 := \left(t\_m \cdot {\left(\sqrt[3]{\ell}\right)}^{-2}\right) \cdot \sqrt[3]{\sin k\_m \cdot \tan k\_m}\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k\_m \leq 1.2 \cdot 10^{-10}:\\
\;\;\;\;2 \cdot \left|{\left(\sqrt{\cos k\_m} \cdot \frac{\frac{\frac{\ell}{\sin k\_m}}{\sqrt{t\_m}}}{k\_m}\right)}^{2}\right|\\
\mathbf{elif}\;k\_m \leq 4 \cdot 10^{+155}:\\
\;\;\;\;2 \cdot \left(\frac{{\ell}^{2}}{{k\_m}^{2}} \cdot \frac{\cos k\_m}{t\_m \cdot {\sin k\_m}^{2}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\frac{k\_m}{t\_m} \cdot t\_2\right) \cdot \left(\frac{k\_m}{t\_m} \cdot {t\_2}^{2}\right)}\\
\end{array}
\end{array}
\end{array}
if k < 1.2e-10Initial program 35.6%
Simplified40.9%
associate-*l/41.3%
add-sqr-sqrt19.7%
associate-/r*19.7%
Applied egg-rr21.8%
Taylor expanded in t around -inf 0.0%
*-commutative0.0%
times-frac0.0%
*-commutative0.0%
*-commutative0.0%
unpow20.0%
rem-square-sqrt72.4%
*-commutative72.4%
associate-*l*72.4%
neg-mul-172.4%
Simplified72.4%
Applied egg-rr28.9%
unpow228.9%
rem-sqrt-square37.2%
fabs-mul37.2%
metadata-eval37.2%
associate-*l/37.2%
associate-/l*37.2%
associate-/r*37.2%
Simplified37.2%
if 1.2e-10 < k < 4.00000000000000003e155Initial program 12.4%
Simplified40.2%
Taylor expanded in t around 0 87.9%
associate-/l*88.0%
associate-/l*87.8%
Simplified87.8%
Taylor expanded in k around inf 88.0%
times-frac85.3%
Simplified85.3%
if 4.00000000000000003e155 < k Initial program 40.6%
*-commutative40.6%
associate-/r*40.6%
Simplified49.7%
add-sqr-sqrt49.7%
add-cube-cbrt49.7%
times-frac49.7%
Applied egg-rr79.1%
associate-/l/79.1%
associate-/l/79.1%
Simplified79.1%
frac-times79.1%
pow1/279.1%
pow1/279.1%
pow-prod-up79.1%
metadata-eval79.1%
metadata-eval79.1%
Applied egg-rr79.1%
Final simplification48.8%
k_m = (fabs.f64 k)
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 1.2e-10)
(*
2.0
(fabs
(pow (* (sqrt (cos k_m)) (/ (/ (/ l (sin k_m)) (sqrt t_m)) k_m)) 2.0)))
(if (<= k_m 4.1e+155)
(*
2.0
(*
(/ (pow l 2.0) (pow k_m 2.0))
(/ (cos k_m) (* t_m (pow (sin k_m) 2.0)))))
(/
2.0
(*
(/ k_m t_m)
(*
(/ k_m t_m)
(*
(* (sin k_m) (tan k_m))
(pow (* t_m (pow (cbrt l) -2.0)) 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 tmp;
if (k_m <= 1.2e-10) {
tmp = 2.0 * fabs(pow((sqrt(cos(k_m)) * (((l / sin(k_m)) / sqrt(t_m)) / k_m)), 2.0));
} else if (k_m <= 4.1e+155) {
tmp = 2.0 * ((pow(l, 2.0) / pow(k_m, 2.0)) * (cos(k_m) / (t_m * pow(sin(k_m), 2.0))));
} else {
tmp = 2.0 / ((k_m / t_m) * ((k_m / t_m) * ((sin(k_m) * tan(k_m)) * pow((t_m * pow(cbrt(l), -2.0)), 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 tmp;
if (k_m <= 1.2e-10) {
tmp = 2.0 * Math.abs(Math.pow((Math.sqrt(Math.cos(k_m)) * (((l / Math.sin(k_m)) / Math.sqrt(t_m)) / k_m)), 2.0));
} else if (k_m <= 4.1e+155) {
tmp = 2.0 * ((Math.pow(l, 2.0) / Math.pow(k_m, 2.0)) * (Math.cos(k_m) / (t_m * Math.pow(Math.sin(k_m), 2.0))));
} else {
tmp = 2.0 / ((k_m / t_m) * ((k_m / t_m) * ((Math.sin(k_m) * Math.tan(k_m)) * Math.pow((t_m * Math.pow(Math.cbrt(l), -2.0)), 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) tmp = 0.0 if (k_m <= 1.2e-10) tmp = Float64(2.0 * abs((Float64(sqrt(cos(k_m)) * Float64(Float64(Float64(l / sin(k_m)) / sqrt(t_m)) / k_m)) ^ 2.0))); elseif (k_m <= 4.1e+155) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) / (k_m ^ 2.0)) * Float64(cos(k_m) / Float64(t_m * (sin(k_m) ^ 2.0))))); else tmp = Float64(2.0 / Float64(Float64(k_m / t_m) * Float64(Float64(k_m / t_m) * Float64(Float64(sin(k_m) * tan(k_m)) * (Float64(t_m * (cbrt(l) ^ -2.0)) ^ 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_] := N[(t$95$s * If[LessEqual[k$95$m, 1.2e-10], N[(2.0 * N[Abs[N[Power[N[(N[Sqrt[N[Cos[k$95$m], $MachinePrecision]], $MachinePrecision] * N[(N[(N[(l / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision] / N[Sqrt[t$95$m], $MachinePrecision]), $MachinePrecision] / k$95$m), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]], $MachinePrecision]), $MachinePrecision], If[LessEqual[k$95$m, 4.1e+155], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[Cos[k$95$m], $MachinePrecision] / N[(t$95$m * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(k$95$m / t$95$m), $MachinePrecision] * N[(N[(k$95$m / t$95$m), $MachinePrecision] * N[(N[(N[Sin[k$95$m], $MachinePrecision] * N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision] * N[Power[N[(t$95$m * N[Power[N[Power[l, 1/3], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision], 3.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 1.2 \cdot 10^{-10}:\\
\;\;\;\;2 \cdot \left|{\left(\sqrt{\cos k\_m} \cdot \frac{\frac{\frac{\ell}{\sin k\_m}}{\sqrt{t\_m}}}{k\_m}\right)}^{2}\right|\\
\mathbf{elif}\;k\_m \leq 4.1 \cdot 10^{+155}:\\
\;\;\;\;2 \cdot \left(\frac{{\ell}^{2}}{{k\_m}^{2}} \cdot \frac{\cos k\_m}{t\_m \cdot {\sin k\_m}^{2}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{k\_m}{t\_m} \cdot \left(\frac{k\_m}{t\_m} \cdot \left(\left(\sin k\_m \cdot \tan k\_m\right) \cdot {\left(t\_m \cdot {\left(\sqrt[3]{\ell}\right)}^{-2}\right)}^{3}\right)\right)}\\
\end{array}
\end{array}
if k < 1.2e-10Initial program 35.6%
Simplified40.9%
associate-*l/41.3%
add-sqr-sqrt19.7%
associate-/r*19.7%
Applied egg-rr21.8%
Taylor expanded in t around -inf 0.0%
*-commutative0.0%
times-frac0.0%
*-commutative0.0%
*-commutative0.0%
unpow20.0%
rem-square-sqrt72.4%
*-commutative72.4%
associate-*l*72.4%
neg-mul-172.4%
Simplified72.4%
Applied egg-rr28.9%
unpow228.9%
rem-sqrt-square37.2%
fabs-mul37.2%
metadata-eval37.2%
associate-*l/37.2%
associate-/l*37.2%
associate-/r*37.2%
Simplified37.2%
if 1.2e-10 < k < 4.0999999999999998e155Initial program 12.4%
Simplified40.2%
Taylor expanded in t around 0 87.9%
associate-/l*88.0%
associate-/l*87.8%
Simplified87.8%
Taylor expanded in k around inf 88.0%
times-frac85.3%
Simplified85.3%
if 4.0999999999999998e155 < k Initial program 40.6%
*-commutative40.6%
associate-/r*40.6%
Simplified49.7%
add-sqr-sqrt49.7%
add-cube-cbrt49.7%
times-frac49.7%
Applied egg-rr79.1%
associate-/l/79.1%
associate-/l/79.1%
Simplified79.1%
frac-times79.1%
pow1/279.1%
pow1/279.1%
pow-prod-up79.1%
metadata-eval79.1%
metadata-eval79.1%
Applied egg-rr79.1%
associate-*l*76.4%
*-commutative76.4%
associate-*r*67.9%
Simplified68.2%
Final simplification47.4%
k_m = (fabs.f64 k)
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 1.2e-10)
(fabs
(*
-2.0
(pow (* (sqrt (cos k_m)) (/ (/ l (* (sin k_m) (sqrt t_m))) k_m)) 2.0)))
(if (<= k_m 9.6e+155)
(*
2.0
(*
(/ (pow l 2.0) (pow k_m 2.0))
(/ (cos k_m) (* t_m (pow (sin k_m) 2.0)))))
(/
2.0
(*
(/ k_m t_m)
(*
(/ k_m t_m)
(*
(* (sin k_m) (tan k_m))
(pow (* t_m (pow (cbrt l) -2.0)) 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 tmp;
if (k_m <= 1.2e-10) {
tmp = fabs((-2.0 * pow((sqrt(cos(k_m)) * ((l / (sin(k_m) * sqrt(t_m))) / k_m)), 2.0)));
} else if (k_m <= 9.6e+155) {
tmp = 2.0 * ((pow(l, 2.0) / pow(k_m, 2.0)) * (cos(k_m) / (t_m * pow(sin(k_m), 2.0))));
} else {
tmp = 2.0 / ((k_m / t_m) * ((k_m / t_m) * ((sin(k_m) * tan(k_m)) * pow((t_m * pow(cbrt(l), -2.0)), 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 tmp;
if (k_m <= 1.2e-10) {
tmp = Math.abs((-2.0 * Math.pow((Math.sqrt(Math.cos(k_m)) * ((l / (Math.sin(k_m) * Math.sqrt(t_m))) / k_m)), 2.0)));
} else if (k_m <= 9.6e+155) {
tmp = 2.0 * ((Math.pow(l, 2.0) / Math.pow(k_m, 2.0)) * (Math.cos(k_m) / (t_m * Math.pow(Math.sin(k_m), 2.0))));
} else {
tmp = 2.0 / ((k_m / t_m) * ((k_m / t_m) * ((Math.sin(k_m) * Math.tan(k_m)) * Math.pow((t_m * Math.pow(Math.cbrt(l), -2.0)), 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) tmp = 0.0 if (k_m <= 1.2e-10) tmp = abs(Float64(-2.0 * (Float64(sqrt(cos(k_m)) * Float64(Float64(l / Float64(sin(k_m) * sqrt(t_m))) / k_m)) ^ 2.0))); elseif (k_m <= 9.6e+155) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) / (k_m ^ 2.0)) * Float64(cos(k_m) / Float64(t_m * (sin(k_m) ^ 2.0))))); else tmp = Float64(2.0 / Float64(Float64(k_m / t_m) * Float64(Float64(k_m / t_m) * Float64(Float64(sin(k_m) * tan(k_m)) * (Float64(t_m * (cbrt(l) ^ -2.0)) ^ 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_] := N[(t$95$s * If[LessEqual[k$95$m, 1.2e-10], N[Abs[N[(-2.0 * N[Power[N[(N[Sqrt[N[Cos[k$95$m], $MachinePrecision]], $MachinePrecision] * N[(N[(l / N[(N[Sin[k$95$m], $MachinePrecision] * N[Sqrt[t$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / k$95$m), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]], $MachinePrecision], If[LessEqual[k$95$m, 9.6e+155], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[Cos[k$95$m], $MachinePrecision] / N[(t$95$m * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(k$95$m / t$95$m), $MachinePrecision] * N[(N[(k$95$m / t$95$m), $MachinePrecision] * N[(N[(N[Sin[k$95$m], $MachinePrecision] * N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision] * N[Power[N[(t$95$m * N[Power[N[Power[l, 1/3], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision], 3.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 1.2 \cdot 10^{-10}:\\
\;\;\;\;\left|-2 \cdot {\left(\sqrt{\cos k\_m} \cdot \frac{\frac{\ell}{\sin k\_m \cdot \sqrt{t\_m}}}{k\_m}\right)}^{2}\right|\\
\mathbf{elif}\;k\_m \leq 9.6 \cdot 10^{+155}:\\
\;\;\;\;2 \cdot \left(\frac{{\ell}^{2}}{{k\_m}^{2}} \cdot \frac{\cos k\_m}{t\_m \cdot {\sin k\_m}^{2}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{k\_m}{t\_m} \cdot \left(\frac{k\_m}{t\_m} \cdot \left(\left(\sin k\_m \cdot \tan k\_m\right) \cdot {\left(t\_m \cdot {\left(\sqrt[3]{\ell}\right)}^{-2}\right)}^{3}\right)\right)}\\
\end{array}
\end{array}
if k < 1.2e-10Initial program 35.6%
Simplified40.9%
associate-*l/41.3%
add-sqr-sqrt19.7%
associate-/r*19.7%
Applied egg-rr21.8%
Taylor expanded in t around -inf 0.0%
*-commutative0.0%
times-frac0.0%
*-commutative0.0%
*-commutative0.0%
unpow20.0%
rem-square-sqrt72.4%
*-commutative72.4%
associate-*l*72.4%
neg-mul-172.4%
Simplified72.4%
Applied egg-rr28.9%
unpow228.9%
rem-sqrt-square37.2%
associate-*l/37.2%
associate-/l*37.2%
Simplified37.2%
if 1.2e-10 < k < 9.60000000000000083e155Initial program 12.4%
Simplified40.2%
Taylor expanded in t around 0 87.9%
associate-/l*88.0%
associate-/l*87.8%
Simplified87.8%
Taylor expanded in k around inf 88.0%
times-frac85.3%
Simplified85.3%
if 9.60000000000000083e155 < k Initial program 40.6%
*-commutative40.6%
associate-/r*40.6%
Simplified49.7%
add-sqr-sqrt49.7%
add-cube-cbrt49.7%
times-frac49.7%
Applied egg-rr79.1%
associate-/l/79.1%
associate-/l/79.1%
Simplified79.1%
frac-times79.1%
pow1/279.1%
pow1/279.1%
pow-prod-up79.1%
metadata-eval79.1%
metadata-eval79.1%
Applied egg-rr79.1%
associate-*l*76.4%
*-commutative76.4%
associate-*r*67.9%
Simplified68.2%
Final simplification47.4%
k_m = (fabs.f64 k)
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= l 3.1e-156)
(pow (* l (* (/ (sqrt 2.0) (pow k_m 2.0)) (sqrt (/ 1.0 t_m)))) 2.0)
(if (<= l 1.6e+131)
(*
-2.0
(*
(/ (cos k_m) (pow k_m 2.0))
(/ (pow l 2.0) (* t_m (- (pow (sin k_m) 2.0))))))
(if (<= l 2.3e+159)
(pow
(* l (* (/ (sqrt 2.0) (* k_m (sin k_m))) (sqrt (/ (cos k_m) t_m))))
2.0)
(/
2.0
(*
k_m
(/
(*
(/ k_m t_m)
(* (* (sin k_m) (tan k_m)) (pow (* t_m (pow (cbrt l) -2.0)) 3.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 (l <= 3.1e-156) {
tmp = pow((l * ((sqrt(2.0) / pow(k_m, 2.0)) * sqrt((1.0 / t_m)))), 2.0);
} else if (l <= 1.6e+131) {
tmp = -2.0 * ((cos(k_m) / pow(k_m, 2.0)) * (pow(l, 2.0) / (t_m * -pow(sin(k_m), 2.0))));
} else if (l <= 2.3e+159) {
tmp = pow((l * ((sqrt(2.0) / (k_m * sin(k_m))) * sqrt((cos(k_m) / t_m)))), 2.0);
} else {
tmp = 2.0 / (k_m * (((k_m / t_m) * ((sin(k_m) * tan(k_m)) * pow((t_m * pow(cbrt(l), -2.0)), 3.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 tmp;
if (l <= 3.1e-156) {
tmp = Math.pow((l * ((Math.sqrt(2.0) / Math.pow(k_m, 2.0)) * Math.sqrt((1.0 / t_m)))), 2.0);
} else if (l <= 1.6e+131) {
tmp = -2.0 * ((Math.cos(k_m) / Math.pow(k_m, 2.0)) * (Math.pow(l, 2.0) / (t_m * -Math.pow(Math.sin(k_m), 2.0))));
} else if (l <= 2.3e+159) {
tmp = Math.pow((l * ((Math.sqrt(2.0) / (k_m * Math.sin(k_m))) * Math.sqrt((Math.cos(k_m) / t_m)))), 2.0);
} else {
tmp = 2.0 / (k_m * (((k_m / t_m) * ((Math.sin(k_m) * Math.tan(k_m)) * Math.pow((t_m * Math.pow(Math.cbrt(l), -2.0)), 3.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 (l <= 3.1e-156) tmp = Float64(l * Float64(Float64(sqrt(2.0) / (k_m ^ 2.0)) * sqrt(Float64(1.0 / t_m)))) ^ 2.0; elseif (l <= 1.6e+131) tmp = Float64(-2.0 * Float64(Float64(cos(k_m) / (k_m ^ 2.0)) * Float64((l ^ 2.0) / Float64(t_m * Float64(-(sin(k_m) ^ 2.0)))))); elseif (l <= 2.3e+159) tmp = Float64(l * Float64(Float64(sqrt(2.0) / Float64(k_m * sin(k_m))) * sqrt(Float64(cos(k_m) / t_m)))) ^ 2.0; else tmp = Float64(2.0 / Float64(k_m * Float64(Float64(Float64(k_m / t_m) * Float64(Float64(sin(k_m) * tan(k_m)) * (Float64(t_m * (cbrt(l) ^ -2.0)) ^ 3.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_] := N[(t$95$s * If[LessEqual[l, 3.1e-156], N[Power[N[(l * N[(N[(N[Sqrt[2.0], $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(1.0 / t$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], If[LessEqual[l, 1.6e+131], N[(-2.0 * N[(N[(N[Cos[k$95$m], $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[Power[l, 2.0], $MachinePrecision] / N[(t$95$m * (-N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision])), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[l, 2.3e+159], N[Power[N[(l * N[(N[(N[Sqrt[2.0], $MachinePrecision] / N[(k$95$m * N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], N[(2.0 / N[(k$95$m * N[(N[(N[(k$95$m / t$95$m), $MachinePrecision] * N[(N[(N[Sin[k$95$m], $MachinePrecision] * N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision] * N[Power[N[(t$95$m * N[Power[N[Power[l, 1/3], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $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}\;\ell \leq 3.1 \cdot 10^{-156}:\\
\;\;\;\;{\left(\ell \cdot \left(\frac{\sqrt{2}}{{k\_m}^{2}} \cdot \sqrt{\frac{1}{t\_m}}\right)\right)}^{2}\\
\mathbf{elif}\;\ell \leq 1.6 \cdot 10^{+131}:\\
\;\;\;\;-2 \cdot \left(\frac{\cos k\_m}{{k\_m}^{2}} \cdot \frac{{\ell}^{2}}{t\_m \cdot \left(-{\sin k\_m}^{2}\right)}\right)\\
\mathbf{elif}\;\ell \leq 2.3 \cdot 10^{+159}:\\
\;\;\;\;{\left(\ell \cdot \left(\frac{\sqrt{2}}{k\_m \cdot \sin k\_m} \cdot \sqrt{\frac{\cos k\_m}{t\_m}}\right)\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{k\_m \cdot \frac{\frac{k\_m}{t\_m} \cdot \left(\left(\sin k\_m \cdot \tan k\_m\right) \cdot {\left(t\_m \cdot {\left(\sqrt[3]{\ell}\right)}^{-2}\right)}^{3}\right)}{t\_m}}\\
\end{array}
\end{array}
if l < 3.0999999999999998e-156Initial program 33.3%
Simplified43.9%
add-sqr-sqrt35.9%
pow235.9%
Applied egg-rr29.4%
Taylor expanded in k around 0 40.3%
if 3.0999999999999998e-156 < l < 1.6000000000000001e131Initial program 34.5%
Simplified44.1%
associate-*l/45.3%
add-sqr-sqrt17.5%
associate-/r*17.5%
Applied egg-rr20.0%
Taylor expanded in t around -inf 0.0%
*-commutative0.0%
times-frac0.0%
*-commutative0.0%
*-commutative0.0%
unpow20.0%
rem-square-sqrt87.8%
*-commutative87.8%
associate-*l*87.8%
neg-mul-187.8%
Simplified87.8%
if 1.6000000000000001e131 < l < 2.29999999999999995e159Initial program 35.1%
Simplified35.1%
add-sqr-sqrt6.5%
pow26.5%
Applied egg-rr5.8%
Taylor expanded in t around 0 42.4%
if 2.29999999999999995e159 < l Initial program 30.3%
*-commutative30.3%
associate-/r*30.3%
Simplified30.3%
add-sqr-sqrt30.3%
add-cube-cbrt30.3%
times-frac30.3%
Applied egg-rr83.5%
associate-/l/83.5%
associate-/l/83.5%
Simplified83.5%
frac-times83.5%
pow1/283.5%
pow1/283.5%
pow-prod-up83.6%
metadata-eval83.6%
metadata-eval83.6%
Applied egg-rr83.8%
pow183.8%
associate-*l*81.1%
associate-*l*81.1%
associate-*r*81.1%
Applied egg-rr81.1%
unpow181.1%
associate-*l/72.9%
associate-/l*81.1%
Simplified72.8%
Final simplification56.6%
k_m = (fabs.f64 k)
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= (* l l) 2e-315)
(pow (* l (* (/ (sqrt 2.0) (pow k_m 2.0)) (sqrt (/ 1.0 t_m)))) 2.0)
(if (<= (* l l) 1e+258)
(*
-2.0
(*
(/ (cos k_m) (pow k_m 2.0))
(/ (pow l 2.0) (* t_m (- (pow (sin k_m) 2.0))))))
(pow
(* l (* (/ (sqrt 2.0) (* k_m (sin k_m))) (sqrt (/ (cos k_m) t_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 ((l * l) <= 2e-315) {
tmp = pow((l * ((sqrt(2.0) / pow(k_m, 2.0)) * sqrt((1.0 / t_m)))), 2.0);
} else if ((l * l) <= 1e+258) {
tmp = -2.0 * ((cos(k_m) / pow(k_m, 2.0)) * (pow(l, 2.0) / (t_m * -pow(sin(k_m), 2.0))));
} else {
tmp = pow((l * ((sqrt(2.0) / (k_m * sin(k_m))) * sqrt((cos(k_m) / t_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 ((l * l) <= 2d-315) then
tmp = (l * ((sqrt(2.0d0) / (k_m ** 2.0d0)) * sqrt((1.0d0 / t_m)))) ** 2.0d0
else if ((l * l) <= 1d+258) then
tmp = (-2.0d0) * ((cos(k_m) / (k_m ** 2.0d0)) * ((l ** 2.0d0) / (t_m * -(sin(k_m) ** 2.0d0))))
else
tmp = (l * ((sqrt(2.0d0) / (k_m * sin(k_m))) * sqrt((cos(k_m) / t_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 ((l * l) <= 2e-315) {
tmp = Math.pow((l * ((Math.sqrt(2.0) / Math.pow(k_m, 2.0)) * Math.sqrt((1.0 / t_m)))), 2.0);
} else if ((l * l) <= 1e+258) {
tmp = -2.0 * ((Math.cos(k_m) / Math.pow(k_m, 2.0)) * (Math.pow(l, 2.0) / (t_m * -Math.pow(Math.sin(k_m), 2.0))));
} else {
tmp = Math.pow((l * ((Math.sqrt(2.0) / (k_m * Math.sin(k_m))) * Math.sqrt((Math.cos(k_m) / t_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 (l * l) <= 2e-315: tmp = math.pow((l * ((math.sqrt(2.0) / math.pow(k_m, 2.0)) * math.sqrt((1.0 / t_m)))), 2.0) elif (l * l) <= 1e+258: tmp = -2.0 * ((math.cos(k_m) / math.pow(k_m, 2.0)) * (math.pow(l, 2.0) / (t_m * -math.pow(math.sin(k_m), 2.0)))) else: tmp = math.pow((l * ((math.sqrt(2.0) / (k_m * math.sin(k_m))) * math.sqrt((math.cos(k_m) / t_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 (Float64(l * l) <= 2e-315) tmp = Float64(l * Float64(Float64(sqrt(2.0) / (k_m ^ 2.0)) * sqrt(Float64(1.0 / t_m)))) ^ 2.0; elseif (Float64(l * l) <= 1e+258) tmp = Float64(-2.0 * Float64(Float64(cos(k_m) / (k_m ^ 2.0)) * Float64((l ^ 2.0) / Float64(t_m * Float64(-(sin(k_m) ^ 2.0)))))); else tmp = Float64(l * Float64(Float64(sqrt(2.0) / Float64(k_m * sin(k_m))) * sqrt(Float64(cos(k_m) / t_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 ((l * l) <= 2e-315) tmp = (l * ((sqrt(2.0) / (k_m ^ 2.0)) * sqrt((1.0 / t_m)))) ^ 2.0; elseif ((l * l) <= 1e+258) tmp = -2.0 * ((cos(k_m) / (k_m ^ 2.0)) * ((l ^ 2.0) / (t_m * -(sin(k_m) ^ 2.0)))); else tmp = (l * ((sqrt(2.0) / (k_m * sin(k_m))) * sqrt((cos(k_m) / t_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[N[(l * l), $MachinePrecision], 2e-315], N[Power[N[(l * N[(N[(N[Sqrt[2.0], $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(1.0 / t$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], If[LessEqual[N[(l * l), $MachinePrecision], 1e+258], N[(-2.0 * N[(N[(N[Cos[k$95$m], $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[Power[l, 2.0], $MachinePrecision] / N[(t$95$m * (-N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision])), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[Power[N[(l * N[(N[(N[Sqrt[2.0], $MachinePrecision] / N[(k$95$m * N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(N[Cos[k$95$m], $MachinePrecision] / t$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)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \cdot \ell \leq 2 \cdot 10^{-315}:\\
\;\;\;\;{\left(\ell \cdot \left(\frac{\sqrt{2}}{{k\_m}^{2}} \cdot \sqrt{\frac{1}{t\_m}}\right)\right)}^{2}\\
\mathbf{elif}\;\ell \cdot \ell \leq 10^{+258}:\\
\;\;\;\;-2 \cdot \left(\frac{\cos k\_m}{{k\_m}^{2}} \cdot \frac{{\ell}^{2}}{t\_m \cdot \left(-{\sin k\_m}^{2}\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;{\left(\ell \cdot \left(\frac{\sqrt{2}}{k\_m \cdot \sin k\_m} \cdot \sqrt{\frac{\cos k\_m}{t\_m}}\right)\right)}^{2}\\
\end{array}
\end{array}
if (*.f64 l l) < 2.0000000019e-315Initial program 20.2%
Simplified31.8%
add-sqr-sqrt30.1%
pow230.1%
Applied egg-rr30.4%
Taylor expanded in k around 0 44.9%
if 2.0000000019e-315 < (*.f64 l l) < 1.00000000000000006e258Initial program 39.5%
Simplified51.9%
associate-*l/52.5%
add-sqr-sqrt24.0%
associate-/r*24.0%
Applied egg-rr24.0%
Taylor expanded in t around -inf 0.0%
*-commutative0.0%
times-frac0.0%
*-commutative0.0%
*-commutative0.0%
unpow20.0%
rem-square-sqrt88.7%
*-commutative88.7%
associate-*l*88.7%
neg-mul-188.7%
Simplified88.7%
if 1.00000000000000006e258 < (*.f64 l l) Initial program 33.6%
Simplified33.5%
add-sqr-sqrt17.1%
pow217.1%
Applied egg-rr20.0%
Taylor expanded in t around 0 46.6%
Final simplification66.4%
k_m = (fabs.f64 k)
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 5.2e-37)
(pow (* l (* (/ (sqrt 2.0) (pow k_m 2.0)) (sqrt (/ 1.0 t_m)))) 2.0)
(*
2.0
(*
(/ (pow l 2.0) (pow k_m 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 <= 5.2e-37) {
tmp = pow((l * ((sqrt(2.0) / pow(k_m, 2.0)) * sqrt((1.0 / t_m)))), 2.0);
} else {
tmp = 2.0 * ((pow(l, 2.0) / pow(k_m, 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 <= 5.2d-37) then
tmp = (l * ((sqrt(2.0d0) / (k_m ** 2.0d0)) * sqrt((1.0d0 / t_m)))) ** 2.0d0
else
tmp = 2.0d0 * (((l ** 2.0d0) / (k_m ** 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 <= 5.2e-37) {
tmp = Math.pow((l * ((Math.sqrt(2.0) / Math.pow(k_m, 2.0)) * Math.sqrt((1.0 / t_m)))), 2.0);
} else {
tmp = 2.0 * ((Math.pow(l, 2.0) / Math.pow(k_m, 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 <= 5.2e-37: tmp = math.pow((l * ((math.sqrt(2.0) / math.pow(k_m, 2.0)) * math.sqrt((1.0 / t_m)))), 2.0) else: tmp = 2.0 * ((math.pow(l, 2.0) / math.pow(k_m, 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 <= 5.2e-37) tmp = Float64(l * Float64(Float64(sqrt(2.0) / (k_m ^ 2.0)) * sqrt(Float64(1.0 / t_m)))) ^ 2.0; else tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) / (k_m ^ 2.0)) * Float64(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 <= 5.2e-37) tmp = (l * ((sqrt(2.0) / (k_m ^ 2.0)) * sqrt((1.0 / t_m)))) ^ 2.0; else tmp = 2.0 * (((l ^ 2.0) / (k_m ^ 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, 5.2e-37], N[Power[N[(l * N[(N[(N[Sqrt[2.0], $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(1.0 / t$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[Cos[k$95$m], $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 5.2 \cdot 10^{-37}:\\
\;\;\;\;{\left(\ell \cdot \left(\frac{\sqrt{2}}{{k\_m}^{2}} \cdot \sqrt{\frac{1}{t\_m}}\right)\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \left(\frac{{\ell}^{2}}{{k\_m}^{2}} \cdot \frac{\cos k\_m}{t\_m \cdot {\sin k\_m}^{2}}\right)\\
\end{array}
\end{array}
if k < 5.19999999999999959e-37Initial program 36.3%
Simplified41.2%
add-sqr-sqrt28.0%
pow228.0%
Applied egg-rr24.8%
Taylor expanded in k around 0 39.5%
if 5.19999999999999959e-37 < k Initial program 25.7%
Simplified44.0%
Taylor expanded in t around 0 71.6%
associate-/l*71.6%
associate-/l*71.5%
Simplified71.5%
Taylor expanded in k around inf 71.6%
times-frac70.4%
Simplified70.4%
k_m = (fabs.f64 k)
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 5.2e-37)
(pow (* l (* (/ (sqrt 2.0) (pow k_m 2.0)) (sqrt (/ 1.0 t_m)))) 2.0)
(*
(* l l)
(/ 2.0 (/ (* (pow 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 <= 5.2e-37) {
tmp = pow((l * ((sqrt(2.0) / pow(k_m, 2.0)) * sqrt((1.0 / t_m)))), 2.0);
} else {
tmp = (l * l) * (2.0 / ((pow(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 <= 5.2d-37) then
tmp = (l * ((sqrt(2.0d0) / (k_m ** 2.0d0)) * sqrt((1.0d0 / t_m)))) ** 2.0d0
else
tmp = (l * l) * (2.0d0 / (((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 <= 5.2e-37) {
tmp = Math.pow((l * ((Math.sqrt(2.0) / Math.pow(k_m, 2.0)) * Math.sqrt((1.0 / t_m)))), 2.0);
} else {
tmp = (l * l) * (2.0 / ((Math.pow(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 <= 5.2e-37: tmp = math.pow((l * ((math.sqrt(2.0) / math.pow(k_m, 2.0)) * math.sqrt((1.0 / t_m)))), 2.0) else: tmp = (l * l) * (2.0 / ((math.pow(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 <= 5.2e-37) tmp = Float64(l * Float64(Float64(sqrt(2.0) / (k_m ^ 2.0)) * sqrt(Float64(1.0 / t_m)))) ^ 2.0; else tmp = Float64(Float64(l * l) * Float64(2.0 / Float64(Float64((k_m ^ 2.0) * 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 <= 5.2e-37) tmp = (l * ((sqrt(2.0) / (k_m ^ 2.0)) * sqrt((1.0 / t_m)))) ^ 2.0; else tmp = (l * l) * (2.0 / (((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, 5.2e-37], N[Power[N[(l * N[(N[(N[Sqrt[2.0], $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(1.0 / t$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], N[(N[(l * l), $MachinePrecision] * N[(2.0 / N[(N[(N[Power[k$95$m, 2.0], $MachinePrecision] * N[(t$95$m * N[Power[N[Sin[k$95$m], $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 5.2 \cdot 10^{-37}:\\
\;\;\;\;{\left(\ell \cdot \left(\frac{\sqrt{2}}{{k\_m}^{2}} \cdot \sqrt{\frac{1}{t\_m}}\right)\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;\left(\ell \cdot \ell\right) \cdot \frac{2}{\frac{{k\_m}^{2} \cdot \left(t\_m \cdot {\sin k\_m}^{2}\right)}{\cos k\_m}}\\
\end{array}
\end{array}
if k < 5.19999999999999959e-37Initial program 36.3%
Simplified41.2%
add-sqr-sqrt28.0%
pow228.0%
Applied egg-rr24.8%
Taylor expanded in k around 0 39.5%
if 5.19999999999999959e-37 < k Initial program 25.7%
Simplified44.0%
Taylor expanded in t around 0 71.6%
Final simplification48.5%
k_m = (fabs.f64 k)
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 5.2e-37)
(pow (* l (* (/ (sqrt 2.0) (pow k_m 2.0)) (sqrt (/ 1.0 t_m)))) 2.0)
(*
(* l l)
(/ 2.0 (* (pow 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 <= 5.2e-37) {
tmp = pow((l * ((sqrt(2.0) / pow(k_m, 2.0)) * sqrt((1.0 / t_m)))), 2.0);
} else {
tmp = (l * l) * (2.0 / (pow(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 <= 5.2d-37) then
tmp = (l * ((sqrt(2.0d0) / (k_m ** 2.0d0)) * sqrt((1.0d0 / t_m)))) ** 2.0d0
else
tmp = (l * l) * (2.0d0 / ((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 <= 5.2e-37) {
tmp = Math.pow((l * ((Math.sqrt(2.0) / Math.pow(k_m, 2.0)) * Math.sqrt((1.0 / t_m)))), 2.0);
} else {
tmp = (l * l) * (2.0 / (Math.pow(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 <= 5.2e-37: tmp = math.pow((l * ((math.sqrt(2.0) / math.pow(k_m, 2.0)) * math.sqrt((1.0 / t_m)))), 2.0) else: tmp = (l * l) * (2.0 / (math.pow(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 <= 5.2e-37) tmp = Float64(l * Float64(Float64(sqrt(2.0) / (k_m ^ 2.0)) * sqrt(Float64(1.0 / t_m)))) ^ 2.0; else tmp = Float64(Float64(l * l) * Float64(2.0 / Float64((k_m ^ 2.0) * Float64(t_m * Float64((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 <= 5.2e-37) tmp = (l * ((sqrt(2.0) / (k_m ^ 2.0)) * sqrt((1.0 / t_m)))) ^ 2.0; else tmp = (l * l) * (2.0 / ((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, 5.2e-37], N[Power[N[(l * N[(N[(N[Sqrt[2.0], $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(1.0 / t$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], N[(N[(l * l), $MachinePrecision] * N[(2.0 / N[(N[Power[k$95$m, 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]), $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.2 \cdot 10^{-37}:\\
\;\;\;\;{\left(\ell \cdot \left(\frac{\sqrt{2}}{{k\_m}^{2}} \cdot \sqrt{\frac{1}{t\_m}}\right)\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;\left(\ell \cdot \ell\right) \cdot \frac{2}{{k\_m}^{2} \cdot \left(t\_m \cdot \frac{{\sin k\_m}^{2}}{\cos k\_m}\right)}\\
\end{array}
\end{array}
if k < 5.19999999999999959e-37Initial program 36.3%
Simplified41.2%
add-sqr-sqrt28.0%
pow228.0%
Applied egg-rr24.8%
Taylor expanded in k around 0 39.5%
if 5.19999999999999959e-37 < k Initial program 25.7%
Simplified44.0%
Taylor expanded in t around 0 71.6%
associate-/l*71.6%
associate-/l*71.5%
Simplified71.5%
Final simplification48.5%
k_m = (fabs.f64 k)
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 1300.0)
(pow (* l (* (/ (sqrt 2.0) (pow k_m 2.0)) (sqrt (/ 1.0 t_m)))) 2.0)
(* -0.3333333333333333 (/ (pow l 2.0) (* 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 (k_m <= 1300.0) {
tmp = pow((l * ((sqrt(2.0) / pow(k_m, 2.0)) * sqrt((1.0 / t_m)))), 2.0);
} else {
tmp = -0.3333333333333333 * (pow(l, 2.0) / (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 (k_m <= 1300.0d0) then
tmp = (l * ((sqrt(2.0d0) / (k_m ** 2.0d0)) * sqrt((1.0d0 / t_m)))) ** 2.0d0
else
tmp = (-0.3333333333333333d0) * ((l ** 2.0d0) / (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 (k_m <= 1300.0) {
tmp = Math.pow((l * ((Math.sqrt(2.0) / Math.pow(k_m, 2.0)) * Math.sqrt((1.0 / t_m)))), 2.0);
} else {
tmp = -0.3333333333333333 * (Math.pow(l, 2.0) / (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 k_m <= 1300.0: tmp = math.pow((l * ((math.sqrt(2.0) / math.pow(k_m, 2.0)) * math.sqrt((1.0 / t_m)))), 2.0) else: tmp = -0.3333333333333333 * (math.pow(l, 2.0) / (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 (k_m <= 1300.0) tmp = Float64(l * Float64(Float64(sqrt(2.0) / (k_m ^ 2.0)) * sqrt(Float64(1.0 / t_m)))) ^ 2.0; else tmp = Float64(-0.3333333333333333 * Float64((l ^ 2.0) / Float64(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 (k_m <= 1300.0) tmp = (l * ((sqrt(2.0) / (k_m ^ 2.0)) * sqrt((1.0 / t_m)))) ^ 2.0; else tmp = -0.3333333333333333 * ((l ^ 2.0) / (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[k$95$m, 1300.0], N[Power[N[(l * N[(N[(N[Sqrt[2.0], $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(1.0 / t$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], N[(-0.3333333333333333 * N[(N[Power[l, 2.0], $MachinePrecision] / N[(t$95$m * N[Power[k$95$m, 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 1300:\\
\;\;\;\;{\left(\ell \cdot \left(\frac{\sqrt{2}}{{k\_m}^{2}} \cdot \sqrt{\frac{1}{t\_m}}\right)\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;-0.3333333333333333 \cdot \frac{{\ell}^{2}}{t\_m \cdot {k\_m}^{2}}\\
\end{array}
\end{array}
if k < 1300Initial program 35.5%
Simplified40.7%
add-sqr-sqrt27.5%
pow227.5%
Applied egg-rr25.5%
Taylor expanded in k around 0 39.2%
if 1300 < k Initial program 26.9%
*-commutative26.9%
associate-/r*26.9%
Simplified45.7%
Taylor expanded in k around 0 12.0%
+-commutative12.0%
fma-define12.0%
*-commutative12.0%
associate-/l*16.7%
associate-*r*16.7%
*-commutative16.7%
Simplified16.7%
Taylor expanded in k around inf 52.3%
Final simplification42.5%
k_m = (fabs.f64 k) t\_m = (fabs.f64 t) t\_s = (copysign.f64 #s(literal 1 binary64) t) (FPCore (t_s t_m l k_m) :precision binary64 (* t_s (/ (* (/ (pow l 2.0) t_m) (+ -0.3333333333333333 (/ 2.0 (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 * (((pow(l, 2.0) / t_m) * (-0.3333333333333333 + (2.0 / 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 * ((((l ** 2.0d0) / t_m) * ((-0.3333333333333333d0) + (2.0d0 / (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 * (((Math.pow(l, 2.0) / t_m) * (-0.3333333333333333 + (2.0 / 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 * (((math.pow(l, 2.0) / t_m) * (-0.3333333333333333 + (2.0 / 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(Float64(Float64((l ^ 2.0) / t_m) * Float64(-0.3333333333333333 + Float64(2.0 / (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 * ((((l ^ 2.0) / t_m) * (-0.3333333333333333 + (2.0 / (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[(N[(N[(N[Power[l, 2.0], $MachinePrecision] / t$95$m), $MachinePrecision] * N[(-0.3333333333333333 + N[(2.0 / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 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 \frac{\frac{{\ell}^{2}}{t\_m} \cdot \left(-0.3333333333333333 + \frac{2}{{k\_m}^{2}}\right)}{{k\_m}^{2}}
\end{array}
Initial program 33.3%
*-commutative33.3%
associate-/r*33.3%
Simplified42.5%
Taylor expanded in k around 0 27.3%
+-commutative27.3%
fma-define27.3%
*-commutative27.3%
associate-/l*27.4%
associate-*r*27.4%
*-commutative27.4%
Simplified27.4%
Taylor expanded in k around inf 46.9%
associate-*r/46.9%
times-frac45.6%
distribute-rgt-out61.1%
Simplified61.1%
k_m = (fabs.f64 k)
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 1300.0)
(* (* l l) (/ 2.0 (* t_m (pow k_m 4.0))))
(* -0.3333333333333333 (/ (pow l 2.0) (* 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 (k_m <= 1300.0) {
tmp = (l * l) * (2.0 / (t_m * pow(k_m, 4.0)));
} else {
tmp = -0.3333333333333333 * (pow(l, 2.0) / (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 (k_m <= 1300.0d0) then
tmp = (l * l) * (2.0d0 / (t_m * (k_m ** 4.0d0)))
else
tmp = (-0.3333333333333333d0) * ((l ** 2.0d0) / (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 (k_m <= 1300.0) {
tmp = (l * l) * (2.0 / (t_m * Math.pow(k_m, 4.0)));
} else {
tmp = -0.3333333333333333 * (Math.pow(l, 2.0) / (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 k_m <= 1300.0: tmp = (l * l) * (2.0 / (t_m * math.pow(k_m, 4.0))) else: tmp = -0.3333333333333333 * (math.pow(l, 2.0) / (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 (k_m <= 1300.0) tmp = Float64(Float64(l * l) * Float64(2.0 / Float64(t_m * (k_m ^ 4.0)))); else tmp = Float64(-0.3333333333333333 * Float64((l ^ 2.0) / Float64(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 (k_m <= 1300.0) tmp = (l * l) * (2.0 / (t_m * (k_m ^ 4.0))); else tmp = -0.3333333333333333 * ((l ^ 2.0) / (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[k$95$m, 1300.0], N[(N[(l * l), $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[l, 2.0], $MachinePrecision] / N[(t$95$m * N[Power[k$95$m, 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 1300:\\
\;\;\;\;\left(\ell \cdot \ell\right) \cdot \frac{2}{t\_m \cdot {k\_m}^{4}}\\
\mathbf{else}:\\
\;\;\;\;-0.3333333333333333 \cdot \frac{{\ell}^{2}}{t\_m \cdot {k\_m}^{2}}\\
\end{array}
\end{array}
if k < 1300Initial program 35.5%
Simplified40.7%
Taylor expanded in k around 0 62.2%
if 1300 < k Initial program 26.9%
*-commutative26.9%
associate-/r*26.9%
Simplified45.7%
Taylor expanded in k around 0 12.0%
+-commutative12.0%
fma-define12.0%
*-commutative12.0%
associate-/l*16.7%
associate-*r*16.7%
*-commutative16.7%
Simplified16.7%
Taylor expanded in k around inf 52.3%
Final simplification59.7%
k_m = (fabs.f64 k) t\_m = (fabs.f64 t) t\_s = (copysign.f64 #s(literal 1 binary64) t) (FPCore (t_s t_m l k_m) :precision binary64 (* t_s (* (* l 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 * ((l * 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 * ((l * 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 * ((l * 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 * ((l * 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(Float64(l * l) * Float64(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 * ((l * 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[(N[(l * l), $MachinePrecision] * N[(2.0 / 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(\left(\ell \cdot \ell\right) \cdot \frac{2}{t\_m \cdot {k\_m}^{4}}\right)
\end{array}
Initial program 33.3%
Simplified42.0%
Taylor expanded in k around 0 57.0%
Final simplification57.0%
herbie shell --seed 2024111
(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))))