
(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 21 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 (cbrt (* (sin k_m) (tan k_m)))) (t_3 (pow (cbrt l) 2.0)))
(*
t_s
(if (<= k_m 4.5e-24)
(pow
(* (* (/ l k_m) (/ (sqrt 2.0) (sin k_m))) (sqrt (/ (cos k_m) t_m)))
2.0)
(*
(/
(exp (* (log 2.0) 0.5))
(* (pow (* t_m (/ t_2 t_3)) 2.0) (/ k_m t_m)))
(/ (* t_m (/ (sqrt 2.0) k_m)) (* t_2 (/ t_m t_3))))))))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 = cbrt((sin(k_m) * tan(k_m)));
double t_3 = pow(cbrt(l), 2.0);
double tmp;
if (k_m <= 4.5e-24) {
tmp = pow((((l / k_m) * (sqrt(2.0) / sin(k_m))) * sqrt((cos(k_m) / t_m))), 2.0);
} else {
tmp = (exp((log(2.0) * 0.5)) / (pow((t_m * (t_2 / t_3)), 2.0) * (k_m / t_m))) * ((t_m * (sqrt(2.0) / k_m)) / (t_2 * (t_m / t_3)));
}
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.cbrt((Math.sin(k_m) * Math.tan(k_m)));
double t_3 = Math.pow(Math.cbrt(l), 2.0);
double tmp;
if (k_m <= 4.5e-24) {
tmp = Math.pow((((l / k_m) * (Math.sqrt(2.0) / Math.sin(k_m))) * Math.sqrt((Math.cos(k_m) / t_m))), 2.0);
} else {
tmp = (Math.exp((Math.log(2.0) * 0.5)) / (Math.pow((t_m * (t_2 / t_3)), 2.0) * (k_m / t_m))) * ((t_m * (Math.sqrt(2.0) / k_m)) / (t_2 * (t_m / t_3)));
}
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(Float64(sin(k_m) * tan(k_m))) t_3 = cbrt(l) ^ 2.0 tmp = 0.0 if (k_m <= 4.5e-24) tmp = Float64(Float64(Float64(l / k_m) * Float64(sqrt(2.0) / sin(k_m))) * sqrt(Float64(cos(k_m) / t_m))) ^ 2.0; else tmp = Float64(Float64(exp(Float64(log(2.0) * 0.5)) / Float64((Float64(t_m * Float64(t_2 / t_3)) ^ 2.0) * Float64(k_m / t_m))) * Float64(Float64(t_m * Float64(sqrt(2.0) / k_m)) / Float64(t_2 * Float64(t_m / t_3)))); 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[(N[Sin[k$95$m], $MachinePrecision] * N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision]}, Block[{t$95$3 = N[Power[N[Power[l, 1/3], $MachinePrecision], 2.0], $MachinePrecision]}, N[(t$95$s * If[LessEqual[k$95$m, 4.5e-24], N[Power[N[(N[(N[(l / k$95$m), $MachinePrecision] * N[(N[Sqrt[2.0], $MachinePrecision] / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], N[(N[(N[Exp[N[(N[Log[2.0], $MachinePrecision] * 0.5), $MachinePrecision]], $MachinePrecision] / N[(N[Power[N[(t$95$m * N[(t$95$2 / t$95$3), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] * N[(k$95$m / t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(t$95$m * N[(N[Sqrt[2.0], $MachinePrecision] / k$95$m), $MachinePrecision]), $MachinePrecision] / N[(t$95$2 * N[(t$95$m / t$95$3), $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 := \sqrt[3]{\sin k\_m \cdot \tan k\_m}\\
t_3 := {\left(\sqrt[3]{\ell}\right)}^{2}\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k\_m \leq 4.5 \cdot 10^{-24}:\\
\;\;\;\;{\left(\left(\frac{\ell}{k\_m} \cdot \frac{\sqrt{2}}{\sin k\_m}\right) \cdot \sqrt{\frac{\cos k\_m}{t\_m}}\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{e^{\log 2 \cdot 0.5}}{{\left(t\_m \cdot \frac{t\_2}{t\_3}\right)}^{2} \cdot \frac{k\_m}{t\_m}} \cdot \frac{t\_m \cdot \frac{\sqrt{2}}{k\_m}}{t\_2 \cdot \frac{t\_m}{t\_3}}\\
\end{array}
\end{array}
\end{array}
if k < 4.4999999999999997e-24Initial program 32.1%
*-commutative32.1%
associate-/r*32.1%
Simplified37.7%
Applied egg-rr29.2%
Taylor expanded in t around 0 49.9%
times-frac51.3%
Simplified51.3%
if 4.4999999999999997e-24 < k Initial program 23.1%
*-commutative23.1%
associate-/r*23.1%
Simplified40.6%
add-sqr-sqrt40.6%
add-cube-cbrt40.6%
times-frac40.6%
Applied egg-rr81.5%
associate-/l/81.5%
associate-/r/81.6%
Simplified81.6%
associate-*l/81.6%
Applied egg-rr81.6%
associate-/l*81.6%
Simplified81.6%
pow1/281.6%
pow-to-exp81.6%
Applied egg-rr81.6%
Final simplification58.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
(let* ((t_2 (* (sin k_m) (tan k_m)))
(t_3 (* t_m (pow (cbrt l) -2.0)))
(t_4 (/ (sqrt 2.0) k_m)))
(*
t_s
(if (<= k_m 4.5e-24)
(pow
(* (* (/ l k_m) (/ (sqrt 2.0) (sin k_m))) (sqrt (/ (cos k_m) t_m)))
2.0)
(if (<= k_m 7.6e+158)
(* (sqrt 2.0) (/ (/ (* t_m t_4) (* t_2 (pow t_3 3.0))) (/ k_m t_m)))
(*
(/
(sqrt 2.0)
(*
(* k_m t_m)
(cbrt (/ (pow (sin k_m) 4.0) (* (pow l 4.0) (pow (cos k_m) 2.0))))))
(* (/ t_4 t_3) (/ t_m (cbrt t_2)))))))))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 t_3 = t_m * pow(cbrt(l), -2.0);
double t_4 = sqrt(2.0) / k_m;
double tmp;
if (k_m <= 4.5e-24) {
tmp = pow((((l / k_m) * (sqrt(2.0) / sin(k_m))) * sqrt((cos(k_m) / t_m))), 2.0);
} else if (k_m <= 7.6e+158) {
tmp = sqrt(2.0) * (((t_m * t_4) / (t_2 * pow(t_3, 3.0))) / (k_m / t_m));
} else {
tmp = (sqrt(2.0) / ((k_m * t_m) * cbrt((pow(sin(k_m), 4.0) / (pow(l, 4.0) * pow(cos(k_m), 2.0)))))) * ((t_4 / t_3) * (t_m / cbrt(t_2)));
}
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 t_3 = t_m * Math.pow(Math.cbrt(l), -2.0);
double t_4 = Math.sqrt(2.0) / k_m;
double tmp;
if (k_m <= 4.5e-24) {
tmp = Math.pow((((l / k_m) * (Math.sqrt(2.0) / Math.sin(k_m))) * Math.sqrt((Math.cos(k_m) / t_m))), 2.0);
} else if (k_m <= 7.6e+158) {
tmp = Math.sqrt(2.0) * (((t_m * t_4) / (t_2 * Math.pow(t_3, 3.0))) / (k_m / t_m));
} else {
tmp = (Math.sqrt(2.0) / ((k_m * t_m) * Math.cbrt((Math.pow(Math.sin(k_m), 4.0) / (Math.pow(l, 4.0) * Math.pow(Math.cos(k_m), 2.0)))))) * ((t_4 / t_3) * (t_m / Math.cbrt(t_2)));
}
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)) t_3 = Float64(t_m * (cbrt(l) ^ -2.0)) t_4 = Float64(sqrt(2.0) / k_m) tmp = 0.0 if (k_m <= 4.5e-24) tmp = Float64(Float64(Float64(l / k_m) * Float64(sqrt(2.0) / sin(k_m))) * sqrt(Float64(cos(k_m) / t_m))) ^ 2.0; elseif (k_m <= 7.6e+158) tmp = Float64(sqrt(2.0) * Float64(Float64(Float64(t_m * t_4) / Float64(t_2 * (t_3 ^ 3.0))) / Float64(k_m / t_m))); else tmp = Float64(Float64(sqrt(2.0) / Float64(Float64(k_m * t_m) * cbrt(Float64((sin(k_m) ^ 4.0) / Float64((l ^ 4.0) * (cos(k_m) ^ 2.0)))))) * Float64(Float64(t_4 / t_3) * Float64(t_m / cbrt(t_2)))); 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]}, Block[{t$95$3 = N[(t$95$m * N[Power[N[Power[l, 1/3], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$4 = N[(N[Sqrt[2.0], $MachinePrecision] / k$95$m), $MachinePrecision]}, N[(t$95$s * If[LessEqual[k$95$m, 4.5e-24], N[Power[N[(N[(N[(l / k$95$m), $MachinePrecision] * N[(N[Sqrt[2.0], $MachinePrecision] / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], If[LessEqual[k$95$m, 7.6e+158], N[(N[Sqrt[2.0], $MachinePrecision] * N[(N[(N[(t$95$m * t$95$4), $MachinePrecision] / N[(t$95$2 * N[Power[t$95$3, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(k$95$m / t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[Sqrt[2.0], $MachinePrecision] / N[(N[(k$95$m * t$95$m), $MachinePrecision] * N[Power[N[(N[Power[N[Sin[k$95$m], $MachinePrecision], 4.0], $MachinePrecision] / N[(N[Power[l, 4.0], $MachinePrecision] * N[Power[N[Cos[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(t$95$4 / t$95$3), $MachinePrecision] * N[(t$95$m / N[Power[t$95$2, 1/3], $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 := \sin k\_m \cdot \tan k\_m\\
t_3 := t\_m \cdot {\left(\sqrt[3]{\ell}\right)}^{-2}\\
t_4 := \frac{\sqrt{2}}{k\_m}\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k\_m \leq 4.5 \cdot 10^{-24}:\\
\;\;\;\;{\left(\left(\frac{\ell}{k\_m} \cdot \frac{\sqrt{2}}{\sin k\_m}\right) \cdot \sqrt{\frac{\cos k\_m}{t\_m}}\right)}^{2}\\
\mathbf{elif}\;k\_m \leq 7.6 \cdot 10^{+158}:\\
\;\;\;\;\sqrt{2} \cdot \frac{\frac{t\_m \cdot t\_4}{t\_2 \cdot {t\_3}^{3}}}{\frac{k\_m}{t\_m}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2}}{\left(k\_m \cdot t\_m\right) \cdot \sqrt[3]{\frac{{\sin k\_m}^{4}}{{\ell}^{4} \cdot {\cos k\_m}^{2}}}} \cdot \left(\frac{t\_4}{t\_3} \cdot \frac{t\_m}{\sqrt[3]{t\_2}}\right)\\
\end{array}
\end{array}
\end{array}
if k < 4.4999999999999997e-24Initial program 32.1%
*-commutative32.1%
associate-/r*32.1%
Simplified37.7%
Applied egg-rr29.2%
Taylor expanded in t around 0 49.9%
times-frac51.3%
Simplified51.3%
if 4.4999999999999997e-24 < k < 7.5999999999999997e158Initial program 16.7%
*-commutative16.7%
associate-/r*16.7%
Simplified32.7%
add-sqr-sqrt32.6%
add-cube-cbrt32.6%
times-frac32.6%
Applied egg-rr85.6%
associate-/l/85.6%
associate-/r/85.6%
Simplified85.6%
times-frac85.6%
div-inv85.6%
pow-flip85.6%
metadata-eval85.6%
Applied egg-rr85.6%
associate-*l/85.5%
frac-times85.6%
*-commutative85.6%
div-inv85.6%
pow-flip85.6%
metadata-eval85.6%
Applied egg-rr85.6%
associate-/l*85.6%
*-commutative85.6%
associate-/r*85.7%
Simplified83.2%
if 7.5999999999999997e158 < k Initial program 32.4%
*-commutative32.4%
associate-/r*32.4%
Simplified52.4%
add-sqr-sqrt52.4%
add-cube-cbrt52.4%
times-frac52.4%
Applied egg-rr75.5%
associate-/l/75.5%
associate-/r/75.6%
Simplified75.6%
times-frac75.6%
div-inv75.6%
pow-flip75.6%
metadata-eval75.6%
Applied egg-rr75.6%
Taylor expanded in t around 0 76.3%
Final simplification58.3%
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_3 (cbrt (* (sin k_m) (tan k_m)))))
(*
t_s
(if (<= k_m 1.7e-15)
(pow
(* (* (/ l k_m) (/ (sqrt 2.0) (sin k_m))) (sqrt (/ (cos k_m) t_m)))
2.0)
(*
(/ (* t_m (/ (sqrt 2.0) k_m)) (* t_3 (/ t_m t_2)))
(/ (sqrt 2.0) (* (/ k_m t_m) (pow (/ (* t_m t_3) 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 = pow(cbrt(l), 2.0);
double t_3 = cbrt((sin(k_m) * tan(k_m)));
double tmp;
if (k_m <= 1.7e-15) {
tmp = pow((((l / k_m) * (sqrt(2.0) / sin(k_m))) * sqrt((cos(k_m) / t_m))), 2.0);
} else {
tmp = ((t_m * (sqrt(2.0) / k_m)) / (t_3 * (t_m / t_2))) * (sqrt(2.0) / ((k_m / t_m) * pow(((t_m * t_3) / 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 = Math.pow(Math.cbrt(l), 2.0);
double t_3 = Math.cbrt((Math.sin(k_m) * Math.tan(k_m)));
double tmp;
if (k_m <= 1.7e-15) {
tmp = Math.pow((((l / k_m) * (Math.sqrt(2.0) / Math.sin(k_m))) * Math.sqrt((Math.cos(k_m) / t_m))), 2.0);
} else {
tmp = ((t_m * (Math.sqrt(2.0) / k_m)) / (t_3 * (t_m / t_2))) * (Math.sqrt(2.0) / ((k_m / t_m) * Math.pow(((t_m * t_3) / 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 = cbrt(l) ^ 2.0 t_3 = cbrt(Float64(sin(k_m) * tan(k_m))) tmp = 0.0 if (k_m <= 1.7e-15) tmp = Float64(Float64(Float64(l / k_m) * Float64(sqrt(2.0) / sin(k_m))) * sqrt(Float64(cos(k_m) / t_m))) ^ 2.0; else tmp = Float64(Float64(Float64(t_m * Float64(sqrt(2.0) / k_m)) / Float64(t_3 * Float64(t_m / t_2))) * Float64(sqrt(2.0) / Float64(Float64(k_m / t_m) * (Float64(Float64(t_m * t_3) / 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[Power[N[Power[l, 1/3], $MachinePrecision], 2.0], $MachinePrecision]}, Block[{t$95$3 = N[Power[N[(N[Sin[k$95$m], $MachinePrecision] * N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision]}, N[(t$95$s * If[LessEqual[k$95$m, 1.7e-15], N[Power[N[(N[(N[(l / k$95$m), $MachinePrecision] * N[(N[Sqrt[2.0], $MachinePrecision] / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], N[(N[(N[(t$95$m * N[(N[Sqrt[2.0], $MachinePrecision] / k$95$m), $MachinePrecision]), $MachinePrecision] / N[(t$95$3 * N[(t$95$m / t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Sqrt[2.0], $MachinePrecision] / N[(N[(k$95$m / t$95$m), $MachinePrecision] * N[Power[N[(N[(t$95$m * t$95$3), $MachinePrecision] / t$95$2), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]]]
\begin{array}{l}
k_m = \left|k\right|
\\
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := {\left(\sqrt[3]{\ell}\right)}^{2}\\
t_3 := \sqrt[3]{\sin k\_m \cdot \tan k\_m}\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k\_m \leq 1.7 \cdot 10^{-15}:\\
\;\;\;\;{\left(\left(\frac{\ell}{k\_m} \cdot \frac{\sqrt{2}}{\sin k\_m}\right) \cdot \sqrt{\frac{\cos k\_m}{t\_m}}\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{t\_m \cdot \frac{\sqrt{2}}{k\_m}}{t\_3 \cdot \frac{t\_m}{t\_2}} \cdot \frac{\sqrt{2}}{\frac{k\_m}{t\_m} \cdot {\left(\frac{t\_m \cdot t\_3}{t\_2}\right)}^{2}}\\
\end{array}
\end{array}
\end{array}
if k < 1.7e-15Initial program 32.1%
*-commutative32.1%
associate-/r*32.1%
Simplified38.2%
Applied egg-rr29.2%
Taylor expanded in t around 0 49.6%
times-frac51.0%
Simplified51.0%
if 1.7e-15 < k Initial program 22.5%
*-commutative22.5%
associate-/r*22.5%
Simplified39.3%
add-sqr-sqrt39.3%
add-cube-cbrt39.3%
times-frac39.3%
Applied egg-rr80.7%
associate-/l/80.7%
associate-/r/80.7%
Simplified80.7%
associate-*l/80.8%
Applied egg-rr80.8%
Final simplification57.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 (pow (cbrt l) 2.0)) (t_3 (cbrt (* (sin k_m) (tan k_m)))))
(*
t_s
(if (<= k_m 1.8e-12)
(pow
(* (* (/ l k_m) (/ (sqrt 2.0) (sin k_m))) (sqrt (/ (cos k_m) t_m)))
2.0)
(*
(/ (* t_m (/ (sqrt 2.0) k_m)) (* t_3 (/ t_m t_2)))
(/ (sqrt 2.0) (* (pow (* t_m (/ t_3 t_2)) 2.0) (/ k_m t_m))))))))k_m = fabs(k);
t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double t_2 = pow(cbrt(l), 2.0);
double t_3 = cbrt((sin(k_m) * tan(k_m)));
double tmp;
if (k_m <= 1.8e-12) {
tmp = pow((((l / k_m) * (sqrt(2.0) / sin(k_m))) * sqrt((cos(k_m) / t_m))), 2.0);
} else {
tmp = ((t_m * (sqrt(2.0) / k_m)) / (t_3 * (t_m / t_2))) * (sqrt(2.0) / (pow((t_m * (t_3 / t_2)), 2.0) * (k_m / t_m)));
}
return t_s * tmp;
}
k_m = Math.abs(k);
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double t_2 = Math.pow(Math.cbrt(l), 2.0);
double t_3 = Math.cbrt((Math.sin(k_m) * Math.tan(k_m)));
double tmp;
if (k_m <= 1.8e-12) {
tmp = Math.pow((((l / k_m) * (Math.sqrt(2.0) / Math.sin(k_m))) * Math.sqrt((Math.cos(k_m) / t_m))), 2.0);
} else {
tmp = ((t_m * (Math.sqrt(2.0) / k_m)) / (t_3 * (t_m / t_2))) * (Math.sqrt(2.0) / (Math.pow((t_m * (t_3 / t_2)), 2.0) * (k_m / t_m)));
}
return t_s * tmp;
}
k_m = abs(k) t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) t_2 = cbrt(l) ^ 2.0 t_3 = cbrt(Float64(sin(k_m) * tan(k_m))) tmp = 0.0 if (k_m <= 1.8e-12) tmp = Float64(Float64(Float64(l / k_m) * Float64(sqrt(2.0) / sin(k_m))) * sqrt(Float64(cos(k_m) / t_m))) ^ 2.0; else tmp = Float64(Float64(Float64(t_m * Float64(sqrt(2.0) / k_m)) / Float64(t_3 * Float64(t_m / t_2))) * Float64(sqrt(2.0) / Float64((Float64(t_m * Float64(t_3 / t_2)) ^ 2.0) * Float64(k_m / t_m)))); end return Float64(t_s * tmp) end
k_m = N[Abs[k], $MachinePrecision]
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := Block[{t$95$2 = N[Power[N[Power[l, 1/3], $MachinePrecision], 2.0], $MachinePrecision]}, Block[{t$95$3 = N[Power[N[(N[Sin[k$95$m], $MachinePrecision] * N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision]}, N[(t$95$s * If[LessEqual[k$95$m, 1.8e-12], N[Power[N[(N[(N[(l / k$95$m), $MachinePrecision] * N[(N[Sqrt[2.0], $MachinePrecision] / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], N[(N[(N[(t$95$m * N[(N[Sqrt[2.0], $MachinePrecision] / k$95$m), $MachinePrecision]), $MachinePrecision] / N[(t$95$3 * N[(t$95$m / t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Sqrt[2.0], $MachinePrecision] / N[(N[Power[N[(t$95$m * N[(t$95$3 / t$95$2), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] * N[(k$95$m / t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]]]
\begin{array}{l}
k_m = \left|k\right|
\\
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := {\left(\sqrt[3]{\ell}\right)}^{2}\\
t_3 := \sqrt[3]{\sin k\_m \cdot \tan k\_m}\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k\_m \leq 1.8 \cdot 10^{-12}:\\
\;\;\;\;{\left(\left(\frac{\ell}{k\_m} \cdot \frac{\sqrt{2}}{\sin k\_m}\right) \cdot \sqrt{\frac{\cos k\_m}{t\_m}}\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{t\_m \cdot \frac{\sqrt{2}}{k\_m}}{t\_3 \cdot \frac{t\_m}{t\_2}} \cdot \frac{\sqrt{2}}{{\left(t\_m \cdot \frac{t\_3}{t\_2}\right)}^{2} \cdot \frac{k\_m}{t\_m}}\\
\end{array}
\end{array}
\end{array}
if k < 1.8e-12Initial program 32.1%
*-commutative32.1%
associate-/r*32.1%
Simplified38.2%
Applied egg-rr29.2%
Taylor expanded in t around 0 49.6%
times-frac51.0%
Simplified51.0%
if 1.8e-12 < k Initial program 22.5%
*-commutative22.5%
associate-/r*22.5%
Simplified39.3%
add-sqr-sqrt39.3%
add-cube-cbrt39.3%
times-frac39.3%
Applied egg-rr80.7%
associate-/l/80.7%
associate-/r/80.7%
Simplified80.7%
associate-*l/80.8%
Applied egg-rr80.8%
associate-/l*80.8%
Simplified80.8%
Final simplification57.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 26.5)
(pow
(* (* (/ l k_m) (/ (sqrt 2.0) (sin k_m))) (sqrt (/ (cos k_m) t_m)))
2.0)
(if (<= k_m 6.5e+144)
(/
2.0
(*
(/ (pow k_m 2.0) (pow l 2.0))
(/ (* t_m (pow (sin k_m) 2.0)) (cos k_m))))
(/
2.0
(pow
(*
(/ t_m (pow (cbrt l) 2.0))
(cbrt (* (sin k_m) (* (tan k_m) (pow (/ k_m t_m) 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 <= 26.5) {
tmp = pow((((l / k_m) * (sqrt(2.0) / sin(k_m))) * sqrt((cos(k_m) / t_m))), 2.0);
} else if (k_m <= 6.5e+144) {
tmp = 2.0 / ((pow(k_m, 2.0) / pow(l, 2.0)) * ((t_m * pow(sin(k_m), 2.0)) / cos(k_m)));
} else {
tmp = 2.0 / pow(((t_m / pow(cbrt(l), 2.0)) * cbrt((sin(k_m) * (tan(k_m) * pow((k_m / t_m), 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 <= 26.5) {
tmp = Math.pow((((l / k_m) * (Math.sqrt(2.0) / Math.sin(k_m))) * Math.sqrt((Math.cos(k_m) / t_m))), 2.0);
} else if (k_m <= 6.5e+144) {
tmp = 2.0 / ((Math.pow(k_m, 2.0) / Math.pow(l, 2.0)) * ((t_m * Math.pow(Math.sin(k_m), 2.0)) / Math.cos(k_m)));
} else {
tmp = 2.0 / Math.pow(((t_m / Math.pow(Math.cbrt(l), 2.0)) * Math.cbrt((Math.sin(k_m) * (Math.tan(k_m) * Math.pow((k_m / t_m), 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 <= 26.5) tmp = Float64(Float64(Float64(l / k_m) * Float64(sqrt(2.0) / sin(k_m))) * sqrt(Float64(cos(k_m) / t_m))) ^ 2.0; elseif (k_m <= 6.5e+144) tmp = Float64(2.0 / Float64(Float64((k_m ^ 2.0) / (l ^ 2.0)) * Float64(Float64(t_m * (sin(k_m) ^ 2.0)) / cos(k_m)))); else tmp = Float64(2.0 / (Float64(Float64(t_m / (cbrt(l) ^ 2.0)) * cbrt(Float64(sin(k_m) * Float64(tan(k_m) * (Float64(k_m / t_m) ^ 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, 26.5], N[Power[N[(N[(N[(l / k$95$m), $MachinePrecision] * N[(N[Sqrt[2.0], $MachinePrecision] / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], If[LessEqual[k$95$m, 6.5e+144], N[(2.0 / N[(N[(N[Power[k$95$m, 2.0], $MachinePrecision] / N[Power[l, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[(t$95$m * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[Power[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[(N[Tan[k$95$m], $MachinePrecision] * N[Power[N[(k$95$m / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 1/3], $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)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k\_m \leq 26.5:\\
\;\;\;\;{\left(\left(\frac{\ell}{k\_m} \cdot \frac{\sqrt{2}}{\sin k\_m}\right) \cdot \sqrt{\frac{\cos k\_m}{t\_m}}\right)}^{2}\\
\mathbf{elif}\;k\_m \leq 6.5 \cdot 10^{+144}:\\
\;\;\;\;\frac{2}{\frac{{k\_m}^{2}}{{\ell}^{2}} \cdot \frac{t\_m \cdot {\sin k\_m}^{2}}{\cos k\_m}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{{\left(\frac{t\_m}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \sqrt[3]{\sin k\_m \cdot \left(\tan k\_m \cdot {\left(\frac{k\_m}{t\_m}\right)}^{2}\right)}\right)}^{3}}\\
\end{array}
\end{array}
if k < 26.5Initial program 32.4%
*-commutative32.4%
associate-/r*32.4%
Simplified38.4%
Applied egg-rr29.1%
Taylor expanded in t around 0 49.4%
times-frac50.7%
Simplified50.7%
if 26.5 < k < 6.50000000000000007e144Initial program 13.8%
Simplified13.8%
Taylor expanded in t around 0 68.7%
times-frac72.3%
Simplified72.3%
if 6.50000000000000007e144 < k Initial program 30.1%
Simplified30.1%
add-cube-cbrt30.1%
pow330.1%
Applied egg-rr71.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 26.5)
(pow
(* (* (/ l k_m) (/ (sqrt 2.0) (sin k_m))) (sqrt (/ (cos k_m) t_m)))
2.0)
(/
2.0
(*
(/ (pow k_m 2.0) (pow l 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 <= 26.5) {
tmp = pow((((l / k_m) * (sqrt(2.0) / sin(k_m))) * sqrt((cos(k_m) / t_m))), 2.0);
} else {
tmp = 2.0 / ((pow(k_m, 2.0) / pow(l, 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 <= 26.5d0) then
tmp = (((l / k_m) * (sqrt(2.0d0) / sin(k_m))) * sqrt((cos(k_m) / t_m))) ** 2.0d0
else
tmp = 2.0d0 / (((k_m ** 2.0d0) / (l ** 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 <= 26.5) {
tmp = Math.pow((((l / k_m) * (Math.sqrt(2.0) / Math.sin(k_m))) * Math.sqrt((Math.cos(k_m) / t_m))), 2.0);
} else {
tmp = 2.0 / ((Math.pow(k_m, 2.0) / Math.pow(l, 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 <= 26.5: tmp = math.pow((((l / k_m) * (math.sqrt(2.0) / math.sin(k_m))) * math.sqrt((math.cos(k_m) / t_m))), 2.0) else: tmp = 2.0 / ((math.pow(k_m, 2.0) / math.pow(l, 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 <= 26.5) tmp = Float64(Float64(Float64(l / k_m) * Float64(sqrt(2.0) / sin(k_m))) * sqrt(Float64(cos(k_m) / t_m))) ^ 2.0; else tmp = Float64(2.0 / Float64(Float64((k_m ^ 2.0) / (l ^ 2.0)) * Float64(Float64(t_m * (sin(k_m) ^ 2.0)) / cos(k_m)))); end return Float64(t_s * tmp) end
k_m = abs(k); t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 26.5) tmp = (((l / k_m) * (sqrt(2.0) / sin(k_m))) * sqrt((cos(k_m) / t_m))) ^ 2.0; else tmp = 2.0 / (((k_m ^ 2.0) / (l ^ 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, 26.5], N[Power[N[(N[(N[(l / k$95$m), $MachinePrecision] * N[(N[Sqrt[2.0], $MachinePrecision] / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], N[(2.0 / N[(N[(N[Power[k$95$m, 2.0], $MachinePrecision] / N[Power[l, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[(t$95$m * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k\_m \leq 26.5:\\
\;\;\;\;{\left(\left(\frac{\ell}{k\_m} \cdot \frac{\sqrt{2}}{\sin k\_m}\right) \cdot \sqrt{\frac{\cos k\_m}{t\_m}}\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{{k\_m}^{2}}{{\ell}^{2}} \cdot \frac{t\_m \cdot {\sin k\_m}^{2}}{\cos k\_m}}\\
\end{array}
\end{array}
if k < 26.5Initial program 32.4%
*-commutative32.4%
associate-/r*32.4%
Simplified38.4%
Applied egg-rr29.1%
Taylor expanded in t around 0 49.4%
times-frac50.7%
Simplified50.7%
if 26.5 < k Initial program 21.4%
Simplified21.4%
Taylor expanded in t around 0 66.4%
times-frac68.3%
Simplified68.3%
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 25.0)
(pow
(* (* (/ l k_m) (/ (sqrt 2.0) (sin k_m))) (sqrt (/ (cos k_m) t_m)))
2.0)
(*
(* (/ 2.0 (* t_m (pow (sin k_m) 2.0))) (/ (cos k_m) (pow k_m 2.0)))
(* l l)))))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 <= 25.0) {
tmp = pow((((l / k_m) * (sqrt(2.0) / sin(k_m))) * sqrt((cos(k_m) / t_m))), 2.0);
} else {
tmp = ((2.0 / (t_m * pow(sin(k_m), 2.0))) * (cos(k_m) / pow(k_m, 2.0))) * (l * l);
}
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 <= 25.0d0) then
tmp = (((l / k_m) * (sqrt(2.0d0) / sin(k_m))) * sqrt((cos(k_m) / t_m))) ** 2.0d0
else
tmp = ((2.0d0 / (t_m * (sin(k_m) ** 2.0d0))) * (cos(k_m) / (k_m ** 2.0d0))) * (l * l)
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 <= 25.0) {
tmp = Math.pow((((l / k_m) * (Math.sqrt(2.0) / Math.sin(k_m))) * Math.sqrt((Math.cos(k_m) / t_m))), 2.0);
} else {
tmp = ((2.0 / (t_m * Math.pow(Math.sin(k_m), 2.0))) * (Math.cos(k_m) / Math.pow(k_m, 2.0))) * (l * l);
}
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 <= 25.0: tmp = math.pow((((l / k_m) * (math.sqrt(2.0) / math.sin(k_m))) * math.sqrt((math.cos(k_m) / t_m))), 2.0) else: tmp = ((2.0 / (t_m * math.pow(math.sin(k_m), 2.0))) * (math.cos(k_m) / math.pow(k_m, 2.0))) * (l * l) 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 <= 25.0) tmp = Float64(Float64(Float64(l / k_m) * Float64(sqrt(2.0) / sin(k_m))) * sqrt(Float64(cos(k_m) / t_m))) ^ 2.0; else tmp = Float64(Float64(Float64(2.0 / Float64(t_m * (sin(k_m) ^ 2.0))) * Float64(cos(k_m) / (k_m ^ 2.0))) * Float64(l * l)); 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 <= 25.0) tmp = (((l / k_m) * (sqrt(2.0) / sin(k_m))) * sqrt((cos(k_m) / t_m))) ^ 2.0; else tmp = ((2.0 / (t_m * (sin(k_m) ^ 2.0))) * (cos(k_m) / (k_m ^ 2.0))) * (l * l); 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, 25.0], N[Power[N[(N[(N[(l / k$95$m), $MachinePrecision] * N[(N[Sqrt[2.0], $MachinePrecision] / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(N[Cos[k$95$m], $MachinePrecision] / t$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], N[(N[(N[(2.0 / N[(t$95$m * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Cos[k$95$m], $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(l * l), $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 25:\\
\;\;\;\;{\left(\left(\frac{\ell}{k\_m} \cdot \frac{\sqrt{2}}{\sin k\_m}\right) \cdot \sqrt{\frac{\cos k\_m}{t\_m}}\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{2}{t\_m \cdot {\sin k\_m}^{2}} \cdot \frac{\cos k\_m}{{k\_m}^{2}}\right) \cdot \left(\ell \cdot \ell\right)\\
\end{array}
\end{array}
if k < 25Initial program 32.4%
*-commutative32.4%
associate-/r*32.4%
Simplified38.4%
Applied egg-rr29.1%
Taylor expanded in t around 0 49.4%
times-frac50.7%
Simplified50.7%
if 25 < k Initial program 21.4%
Simplified38.5%
Taylor expanded in t around 0 66.4%
associate-*r/66.4%
associate-*r*66.4%
Applied egg-rr66.4%
associate-*r*66.4%
*-commutative66.4%
times-frac66.9%
*-commutative66.9%
Simplified66.9%
Final simplification54.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.95e-41)
(/ 2.0 (pow (* (sqrt (/ t_m (cos k_m))) (* k_m (/ (sin k_m) l))) 2.0))
(*
(* (/ 2.0 (* t_m (pow (sin k_m) 2.0))) (/ (cos k_m) (pow k_m 2.0)))
(* l l)))))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.95e-41) {
tmp = 2.0 / pow((sqrt((t_m / cos(k_m))) * (k_m * (sin(k_m) / l))), 2.0);
} else {
tmp = ((2.0 / (t_m * pow(sin(k_m), 2.0))) * (cos(k_m) / pow(k_m, 2.0))) * (l * l);
}
return t_s * tmp;
}
k_m = abs(k)
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 1.95d-41) then
tmp = 2.0d0 / ((sqrt((t_m / cos(k_m))) * (k_m * (sin(k_m) / l))) ** 2.0d0)
else
tmp = ((2.0d0 / (t_m * (sin(k_m) ** 2.0d0))) * (cos(k_m) / (k_m ** 2.0d0))) * (l * l)
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 1.95e-41) {
tmp = 2.0 / Math.pow((Math.sqrt((t_m / Math.cos(k_m))) * (k_m * (Math.sin(k_m) / l))), 2.0);
} else {
tmp = ((2.0 / (t_m * Math.pow(Math.sin(k_m), 2.0))) * (Math.cos(k_m) / Math.pow(k_m, 2.0))) * (l * l);
}
return t_s * tmp;
}
k_m = math.fabs(k) t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if k_m <= 1.95e-41: tmp = 2.0 / math.pow((math.sqrt((t_m / math.cos(k_m))) * (k_m * (math.sin(k_m) / l))), 2.0) else: tmp = ((2.0 / (t_m * math.pow(math.sin(k_m), 2.0))) * (math.cos(k_m) / math.pow(k_m, 2.0))) * (l * l) 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.95e-41) tmp = Float64(2.0 / (Float64(sqrt(Float64(t_m / cos(k_m))) * Float64(k_m * Float64(sin(k_m) / l))) ^ 2.0)); else tmp = Float64(Float64(Float64(2.0 / Float64(t_m * (sin(k_m) ^ 2.0))) * Float64(cos(k_m) / (k_m ^ 2.0))) * Float64(l * l)); end return Float64(t_s * tmp) end
k_m = abs(k); t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 1.95e-41) tmp = 2.0 / ((sqrt((t_m / cos(k_m))) * (k_m * (sin(k_m) / l))) ^ 2.0); else tmp = ((2.0 / (t_m * (sin(k_m) ^ 2.0))) * (cos(k_m) / (k_m ^ 2.0))) * (l * l); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[k$95$m, 1.95e-41], N[(2.0 / N[Power[N[(N[Sqrt[N[(t$95$m / N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(k$95$m * N[(N[Sin[k$95$m], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], N[(N[(N[(2.0 / N[(t$95$m * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Cos[k$95$m], $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(l * l), $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.95 \cdot 10^{-41}:\\
\;\;\;\;\frac{2}{{\left(\sqrt{\frac{t\_m}{\cos k\_m}} \cdot \left(k\_m \cdot \frac{\sin k\_m}{\ell}\right)\right)}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\left(\frac{2}{t\_m \cdot {\sin k\_m}^{2}} \cdot \frac{\cos k\_m}{{k\_m}^{2}}\right) \cdot \left(\ell \cdot \ell\right)\\
\end{array}
\end{array}
if k < 1.94999999999999995e-41Initial program 32.9%
Simplified32.9%
Applied egg-rr12.6%
mul0-rgt29.4%
+-rgt-identity29.4%
associate-*r*29.4%
associate-*l/29.1%
associate-*l/29.1%
Simplified29.1%
Taylor expanded in t around 0 50.0%
*-commutative50.0%
associate-/l*51.5%
Simplified51.5%
if 1.94999999999999995e-41 < k Initial program 21.4%
Simplified37.7%
Taylor expanded in t around 0 70.6%
associate-*r/70.6%
associate-*r*70.7%
Applied egg-rr70.7%
associate-*r*70.6%
*-commutative70.6%
times-frac71.0%
*-commutative71.0%
Simplified71.0%
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 (<= k_m 1.95e-41)
(/ 2.0 (pow (* (sqrt (/ t_m (cos k_m))) (* k_m (/ (sin k_m) l))) 2.0))
(*
(* l l)
(* 2.0 (/ (/ (cos k_m) (* t_m (pow k_m 2.0))) (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 <= 1.95e-41) {
tmp = 2.0 / pow((sqrt((t_m / cos(k_m))) * (k_m * (sin(k_m) / l))), 2.0);
} else {
tmp = (l * l) * (2.0 * ((cos(k_m) / (t_m * pow(k_m, 2.0))) / 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 <= 1.95d-41) then
tmp = 2.0d0 / ((sqrt((t_m / cos(k_m))) * (k_m * (sin(k_m) / l))) ** 2.0d0)
else
tmp = (l * l) * (2.0d0 * ((cos(k_m) / (t_m * (k_m ** 2.0d0))) / (sin(k_m) ** 2.0d0)))
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 1.95e-41) {
tmp = 2.0 / Math.pow((Math.sqrt((t_m / Math.cos(k_m))) * (k_m * (Math.sin(k_m) / l))), 2.0);
} else {
tmp = (l * l) * (2.0 * ((Math.cos(k_m) / (t_m * Math.pow(k_m, 2.0))) / 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 <= 1.95e-41: tmp = 2.0 / math.pow((math.sqrt((t_m / math.cos(k_m))) * (k_m * (math.sin(k_m) / l))), 2.0) else: tmp = (l * l) * (2.0 * ((math.cos(k_m) / (t_m * math.pow(k_m, 2.0))) / 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 <= 1.95e-41) tmp = Float64(2.0 / (Float64(sqrt(Float64(t_m / cos(k_m))) * Float64(k_m * Float64(sin(k_m) / l))) ^ 2.0)); else tmp = Float64(Float64(l * l) * Float64(2.0 * Float64(Float64(cos(k_m) / Float64(t_m * (k_m ^ 2.0))) / (sin(k_m) ^ 2.0)))); end return Float64(t_s * tmp) end
k_m = abs(k); t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 1.95e-41) tmp = 2.0 / ((sqrt((t_m / cos(k_m))) * (k_m * (sin(k_m) / l))) ^ 2.0); else tmp = (l * l) * (2.0 * ((cos(k_m) / (t_m * (k_m ^ 2.0))) / (sin(k_m) ^ 2.0))); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[k$95$m, 1.95e-41], N[(2.0 / N[Power[N[(N[Sqrt[N[(t$95$m / N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(k$95$m * N[(N[Sin[k$95$m], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], N[(N[(l * l), $MachinePrecision] * N[(2.0 * N[(N[(N[Cos[k$95$m], $MachinePrecision] / N[(t$95$m * N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k\_m \leq 1.95 \cdot 10^{-41}:\\
\;\;\;\;\frac{2}{{\left(\sqrt{\frac{t\_m}{\cos k\_m}} \cdot \left(k\_m \cdot \frac{\sin k\_m}{\ell}\right)\right)}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\left(\ell \cdot \ell\right) \cdot \left(2 \cdot \frac{\frac{\cos k\_m}{t\_m \cdot {k\_m}^{2}}}{{\sin k\_m}^{2}}\right)\\
\end{array}
\end{array}
if k < 1.94999999999999995e-41Initial program 32.9%
Simplified32.9%
Applied egg-rr12.6%
mul0-rgt29.4%
+-rgt-identity29.4%
associate-*r*29.4%
associate-*l/29.1%
associate-*l/29.1%
Simplified29.1%
Taylor expanded in t around 0 50.0%
*-commutative50.0%
associate-/l*51.5%
Simplified51.5%
if 1.94999999999999995e-41 < k Initial program 21.4%
Simplified37.7%
Taylor expanded in t around 0 70.6%
associate-*r*70.7%
associate-/r*70.7%
Simplified70.7%
Final simplification56.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 1.8e-41)
(/ 2.0 (pow (* (sqrt (/ t_m (cos k_m))) (* k_m (/ (sin k_m) l))) 2.0))
(*
(* l l)
(* 2.0 (/ (cos k_m) (* (pow k_m 2.0) (* 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 <= 1.8e-41) {
tmp = 2.0 / pow((sqrt((t_m / cos(k_m))) * (k_m * (sin(k_m) / l))), 2.0);
} else {
tmp = (l * l) * (2.0 * (cos(k_m) / (pow(k_m, 2.0) * (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 <= 1.8d-41) then
tmp = 2.0d0 / ((sqrt((t_m / cos(k_m))) * (k_m * (sin(k_m) / l))) ** 2.0d0)
else
tmp = (l * l) * (2.0d0 * (cos(k_m) / ((k_m ** 2.0d0) * (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 <= 1.8e-41) {
tmp = 2.0 / Math.pow((Math.sqrt((t_m / Math.cos(k_m))) * (k_m * (Math.sin(k_m) / l))), 2.0);
} else {
tmp = (l * l) * (2.0 * (Math.cos(k_m) / (Math.pow(k_m, 2.0) * (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 <= 1.8e-41: tmp = 2.0 / math.pow((math.sqrt((t_m / math.cos(k_m))) * (k_m * (math.sin(k_m) / l))), 2.0) else: tmp = (l * l) * (2.0 * (math.cos(k_m) / (math.pow(k_m, 2.0) * (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 <= 1.8e-41) tmp = Float64(2.0 / (Float64(sqrt(Float64(t_m / cos(k_m))) * Float64(k_m * Float64(sin(k_m) / l))) ^ 2.0)); else tmp = Float64(Float64(l * l) * Float64(2.0 * Float64(cos(k_m) / Float64((k_m ^ 2.0) * 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 <= 1.8e-41) tmp = 2.0 / ((sqrt((t_m / cos(k_m))) * (k_m * (sin(k_m) / l))) ^ 2.0); else tmp = (l * l) * (2.0 * (cos(k_m) / ((k_m ^ 2.0) * (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, 1.8e-41], N[(2.0 / N[Power[N[(N[Sqrt[N[(t$95$m / N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(k$95$m * N[(N[Sin[k$95$m], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], N[(N[(l * l), $MachinePrecision] * N[(2.0 * N[(N[Cos[k$95$m], $MachinePrecision] / 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]), $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.8 \cdot 10^{-41}:\\
\;\;\;\;\frac{2}{{\left(\sqrt{\frac{t\_m}{\cos k\_m}} \cdot \left(k\_m \cdot \frac{\sin k\_m}{\ell}\right)\right)}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\left(\ell \cdot \ell\right) \cdot \left(2 \cdot \frac{\cos k\_m}{{k\_m}^{2} \cdot \left(t\_m \cdot {\sin k\_m}^{2}\right)}\right)\\
\end{array}
\end{array}
if k < 1.8e-41Initial program 32.9%
Simplified32.9%
Applied egg-rr12.6%
mul0-rgt29.4%
+-rgt-identity29.4%
associate-*r*29.4%
associate-*l/29.1%
associate-*l/29.1%
Simplified29.1%
Taylor expanded in t around 0 50.0%
*-commutative50.0%
associate-/l*51.5%
Simplified51.5%
if 1.8e-41 < k Initial program 21.4%
Simplified37.7%
Taylor expanded in t around 0 70.6%
Final simplification56.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 1.95e-41)
(/ 2.0 (pow (* (sqrt (/ t_m (cos k_m))) (* k_m (/ (sin k_m) l))) 2.0))
(*
(* l l)
(/ 2.0 (* (/ (* t_m (pow (sin k_m) 2.0)) (cos k_m)) (* k_m 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 <= 1.95e-41) {
tmp = 2.0 / pow((sqrt((t_m / cos(k_m))) * (k_m * (sin(k_m) / l))), 2.0);
} else {
tmp = (l * l) * (2.0 / (((t_m * pow(sin(k_m), 2.0)) / cos(k_m)) * (k_m * 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 <= 1.95d-41) then
tmp = 2.0d0 / ((sqrt((t_m / cos(k_m))) * (k_m * (sin(k_m) / l))) ** 2.0d0)
else
tmp = (l * l) * (2.0d0 / (((t_m * (sin(k_m) ** 2.0d0)) / cos(k_m)) * (k_m * 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 <= 1.95e-41) {
tmp = 2.0 / Math.pow((Math.sqrt((t_m / Math.cos(k_m))) * (k_m * (Math.sin(k_m) / l))), 2.0);
} else {
tmp = (l * l) * (2.0 / (((t_m * Math.pow(Math.sin(k_m), 2.0)) / Math.cos(k_m)) * (k_m * 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 <= 1.95e-41: tmp = 2.0 / math.pow((math.sqrt((t_m / math.cos(k_m))) * (k_m * (math.sin(k_m) / l))), 2.0) else: tmp = (l * l) * (2.0 / (((t_m * math.pow(math.sin(k_m), 2.0)) / math.cos(k_m)) * (k_m * 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 <= 1.95e-41) tmp = Float64(2.0 / (Float64(sqrt(Float64(t_m / cos(k_m))) * Float64(k_m * Float64(sin(k_m) / l))) ^ 2.0)); else tmp = Float64(Float64(l * l) * Float64(2.0 / Float64(Float64(Float64(t_m * (sin(k_m) ^ 2.0)) / cos(k_m)) * Float64(k_m * 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 <= 1.95e-41) tmp = 2.0 / ((sqrt((t_m / cos(k_m))) * (k_m * (sin(k_m) / l))) ^ 2.0); else tmp = (l * l) * (2.0 / (((t_m * (sin(k_m) ^ 2.0)) / cos(k_m)) * (k_m * 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, 1.95e-41], N[(2.0 / N[Power[N[(N[Sqrt[N[(t$95$m / N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]], $MachinePrecision] * N[(k$95$m * N[(N[Sin[k$95$m], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], N[(N[(l * l), $MachinePrecision] * N[(2.0 / N[(N[(N[(t$95$m * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision] * N[(k$95$m * 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 1.95 \cdot 10^{-41}:\\
\;\;\;\;\frac{2}{{\left(\sqrt{\frac{t\_m}{\cos k\_m}} \cdot \left(k\_m \cdot \frac{\sin k\_m}{\ell}\right)\right)}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\left(\ell \cdot \ell\right) \cdot \frac{2}{\frac{t\_m \cdot {\sin k\_m}^{2}}{\cos k\_m} \cdot \left(k\_m \cdot k\_m\right)}\\
\end{array}
\end{array}
if k < 1.94999999999999995e-41Initial program 32.9%
Simplified32.9%
Applied egg-rr12.6%
mul0-rgt29.4%
+-rgt-identity29.4%
associate-*r*29.4%
associate-*l/29.1%
associate-*l/29.1%
Simplified29.1%
Taylor expanded in t around 0 50.0%
*-commutative50.0%
associate-/l*51.5%
Simplified51.5%
if 1.94999999999999995e-41 < k Initial program 21.4%
Simplified37.7%
Taylor expanded in t around 0 70.6%
associate-/l*70.6%
Simplified70.6%
unpow270.6%
Applied egg-rr70.6%
Final simplification56.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 0.0004)
(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 (/ (- 1.0 (cos (* k_m 2.0))) 2.0)) (cos k_m))))))))k_m = fabs(k);
t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 0.0004) {
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 * ((1.0 - cos((k_m * 2.0))) / 2.0)) / cos(k_m))));
}
return t_s * tmp;
}
k_m = abs(k)
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 0.0004d0) 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 * ((1.0d0 - cos((k_m * 2.0d0))) / 2.0d0)) / cos(k_m))))
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 0.0004) {
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 * ((1.0 - Math.cos((k_m * 2.0))) / 2.0)) / Math.cos(k_m))));
}
return t_s * tmp;
}
k_m = math.fabs(k) t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if k_m <= 0.0004: 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 * ((1.0 - math.cos((k_m * 2.0))) / 2.0)) / math.cos(k_m)))) return t_s * tmp
k_m = abs(k) t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (k_m <= 0.0004) tmp = Float64(Float64(Float64(l * 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(Float64(t_m * Float64(Float64(1.0 - cos(Float64(k_m * 2.0))) / 2.0)) / cos(k_m))))); end return Float64(t_s * tmp) end
k_m = abs(k); t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 0.0004) 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 * ((1.0 - cos((k_m * 2.0))) / 2.0)) / cos(k_m)))); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[k$95$m, 0.0004], N[Power[N[(N[(N[(l * N[Sqrt[2.0], $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(1.0 / t$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], N[(N[(l * l), $MachinePrecision] * N[(2.0 / N[(N[Power[k$95$m, 2.0], $MachinePrecision] * N[(N[(t$95$m * N[(N[(1.0 - N[Cos[N[(k$95$m * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / 2.0), $MachinePrecision]), $MachinePrecision] / N[Cos[k$95$m], $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 0.0004:\\
\;\;\;\;{\left(\frac{\ell \cdot \sqrt{2}}{{k\_m}^{2}} \cdot \sqrt{\frac{1}{t\_m}}\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;\left(\ell \cdot \ell\right) \cdot \frac{2}{{k\_m}^{2} \cdot \frac{t\_m \cdot \frac{1 - \cos \left(k\_m \cdot 2\right)}{2}}{\cos k\_m}}\\
\end{array}
\end{array}
if k < 4.00000000000000019e-4Initial program 32.4%
*-commutative32.4%
associate-/r*32.4%
Simplified38.4%
Applied egg-rr29.1%
Taylor expanded in k around 0 34.6%
if 4.00000000000000019e-4 < k Initial program 21.4%
Simplified38.5%
Taylor expanded in t around 0 66.4%
associate-/l*66.4%
Simplified66.4%
unpow266.4%
sin-mult66.4%
Applied egg-rr66.4%
+-inverses66.4%
cos-066.4%
count-266.4%
*-commutative66.4%
Simplified66.4%
Final simplification41.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 0.00045)
(pow (/ (sqrt 2.0) (* (/ (pow k_m 2.0) l) (sqrt t_m))) 2.0)
(*
(* l l)
(/
2.0
(*
(pow k_m 2.0)
(/ (* t_m (/ (- 1.0 (cos (* k_m 2.0))) 2.0)) (cos k_m))))))))k_m = fabs(k);
t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 0.00045) {
tmp = pow((sqrt(2.0) / ((pow(k_m, 2.0) / l) * sqrt(t_m))), 2.0);
} else {
tmp = (l * l) * (2.0 / (pow(k_m, 2.0) * ((t_m * ((1.0 - cos((k_m * 2.0))) / 2.0)) / cos(k_m))));
}
return t_s * tmp;
}
k_m = abs(k)
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 0.00045d0) then
tmp = (sqrt(2.0d0) / (((k_m ** 2.0d0) / l) * sqrt(t_m))) ** 2.0d0
else
tmp = (l * l) * (2.0d0 / ((k_m ** 2.0d0) * ((t_m * ((1.0d0 - cos((k_m * 2.0d0))) / 2.0d0)) / cos(k_m))))
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 0.00045) {
tmp = Math.pow((Math.sqrt(2.0) / ((Math.pow(k_m, 2.0) / l) * Math.sqrt(t_m))), 2.0);
} else {
tmp = (l * l) * (2.0 / (Math.pow(k_m, 2.0) * ((t_m * ((1.0 - Math.cos((k_m * 2.0))) / 2.0)) / Math.cos(k_m))));
}
return t_s * tmp;
}
k_m = math.fabs(k) t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if k_m <= 0.00045: tmp = math.pow((math.sqrt(2.0) / ((math.pow(k_m, 2.0) / l) * math.sqrt(t_m))), 2.0) else: tmp = (l * l) * (2.0 / (math.pow(k_m, 2.0) * ((t_m * ((1.0 - math.cos((k_m * 2.0))) / 2.0)) / math.cos(k_m)))) return t_s * tmp
k_m = abs(k) t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (k_m <= 0.00045) tmp = Float64(sqrt(2.0) / Float64(Float64((k_m ^ 2.0) / l) * sqrt(t_m))) ^ 2.0; else tmp = Float64(Float64(l * l) * Float64(2.0 / Float64((k_m ^ 2.0) * Float64(Float64(t_m * Float64(Float64(1.0 - cos(Float64(k_m * 2.0))) / 2.0)) / cos(k_m))))); end return Float64(t_s * tmp) end
k_m = abs(k); t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 0.00045) tmp = (sqrt(2.0) / (((k_m ^ 2.0) / l) * sqrt(t_m))) ^ 2.0; else tmp = (l * l) * (2.0 / ((k_m ^ 2.0) * ((t_m * ((1.0 - cos((k_m * 2.0))) / 2.0)) / cos(k_m)))); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[k$95$m, 0.00045], N[Power[N[(N[Sqrt[2.0], $MachinePrecision] / N[(N[(N[Power[k$95$m, 2.0], $MachinePrecision] / l), $MachinePrecision] * N[Sqrt[t$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision], N[(N[(l * l), $MachinePrecision] * N[(2.0 / N[(N[Power[k$95$m, 2.0], $MachinePrecision] * N[(N[(t$95$m * N[(N[(1.0 - N[Cos[N[(k$95$m * 2.0), $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / 2.0), $MachinePrecision]), $MachinePrecision] / N[Cos[k$95$m], $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 0.00045:\\
\;\;\;\;{\left(\frac{\sqrt{2}}{\frac{{k\_m}^{2}}{\ell} \cdot \sqrt{t\_m}}\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;\left(\ell \cdot \ell\right) \cdot \frac{2}{{k\_m}^{2} \cdot \frac{t\_m \cdot \frac{1 - \cos \left(k\_m \cdot 2\right)}{2}}{\cos k\_m}}\\
\end{array}
\end{array}
if k < 4.4999999999999999e-4Initial program 32.4%
*-commutative32.4%
associate-/r*32.4%
Simplified38.4%
Applied egg-rr29.1%
Taylor expanded in k around 0 34.6%
if 4.4999999999999999e-4 < k Initial program 21.4%
Simplified38.5%
Taylor expanded in t around 0 66.4%
associate-/l*66.4%
Simplified66.4%
unpow266.4%
sin-mult66.4%
Applied egg-rr66.4%
+-inverses66.4%
cos-066.4%
count-266.4%
*-commutative66.4%
Simplified66.4%
Final simplification41.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 3.4e-47)
(/ 2.0 (pow (* (/ (pow k_m 2.0) l) (sqrt t_m)) 2.0))
(*
(* l l)
(/ 2.0 (* (/ (* t_m (pow (sin k_m) 2.0)) (cos k_m)) (* k_m 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 <= 3.4e-47) {
tmp = 2.0 / pow(((pow(k_m, 2.0) / l) * sqrt(t_m)), 2.0);
} else {
tmp = (l * l) * (2.0 / (((t_m * pow(sin(k_m), 2.0)) / cos(k_m)) * (k_m * 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 <= 3.4d-47) then
tmp = 2.0d0 / ((((k_m ** 2.0d0) / l) * sqrt(t_m)) ** 2.0d0)
else
tmp = (l * l) * (2.0d0 / (((t_m * (sin(k_m) ** 2.0d0)) / cos(k_m)) * (k_m * 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 <= 3.4e-47) {
tmp = 2.0 / Math.pow(((Math.pow(k_m, 2.0) / l) * Math.sqrt(t_m)), 2.0);
} else {
tmp = (l * l) * (2.0 / (((t_m * Math.pow(Math.sin(k_m), 2.0)) / Math.cos(k_m)) * (k_m * 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 <= 3.4e-47: tmp = 2.0 / math.pow(((math.pow(k_m, 2.0) / l) * math.sqrt(t_m)), 2.0) else: tmp = (l * l) * (2.0 / (((t_m * math.pow(math.sin(k_m), 2.0)) / math.cos(k_m)) * (k_m * 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 <= 3.4e-47) tmp = Float64(2.0 / (Float64(Float64((k_m ^ 2.0) / l) * sqrt(t_m)) ^ 2.0)); else tmp = Float64(Float64(l * l) * Float64(2.0 / Float64(Float64(Float64(t_m * (sin(k_m) ^ 2.0)) / cos(k_m)) * Float64(k_m * 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 <= 3.4e-47) tmp = 2.0 / ((((k_m ^ 2.0) / l) * sqrt(t_m)) ^ 2.0); else tmp = (l * l) * (2.0 / (((t_m * (sin(k_m) ^ 2.0)) / cos(k_m)) * (k_m * 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, 3.4e-47], N[(2.0 / N[Power[N[(N[(N[Power[k$95$m, 2.0], $MachinePrecision] / l), $MachinePrecision] * N[Sqrt[t$95$m], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], N[(N[(l * l), $MachinePrecision] * N[(2.0 / N[(N[(N[(t$95$m * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision] * N[(k$95$m * 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 3.4 \cdot 10^{-47}:\\
\;\;\;\;\frac{2}{{\left(\frac{{k\_m}^{2}}{\ell} \cdot \sqrt{t\_m}\right)}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\left(\ell \cdot \ell\right) \cdot \frac{2}{\frac{t\_m \cdot {\sin k\_m}^{2}}{\cos k\_m} \cdot \left(k\_m \cdot k\_m\right)}\\
\end{array}
\end{array}
if k < 3.4000000000000002e-47Initial program 32.7%
Simplified32.7%
Applied egg-rr12.8%
mul0-rgt29.7%
+-rgt-identity29.7%
associate-*r*29.7%
associate-*l/29.4%
associate-*l/29.4%
Simplified29.4%
Taylor expanded in k around 0 34.5%
if 3.4000000000000002e-47 < k Initial program 22.3%
Simplified38.0%
Taylor expanded in t around 0 71.5%
associate-/l*71.5%
Simplified71.5%
unpow271.5%
Applied egg-rr71.5%
Final simplification44.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 3.4e-47)
(/ 2.0 (pow (* (/ (pow k_m 2.0) l) (sqrt t_m)) 2.0))
(*
(* l l)
(* 2.0 (/ (cos k_m) (* (pow k_m 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 <= 3.4e-47) {
tmp = 2.0 / pow(((pow(k_m, 2.0) / l) * sqrt(t_m)), 2.0);
} else {
tmp = (l * l) * (2.0 * (cos(k_m) / (pow(k_m, 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 <= 3.4d-47) then
tmp = 2.0d0 / ((((k_m ** 2.0d0) / l) * sqrt(t_m)) ** 2.0d0)
else
tmp = (l * l) * (2.0d0 * (cos(k_m) / ((k_m ** 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 <= 3.4e-47) {
tmp = 2.0 / Math.pow(((Math.pow(k_m, 2.0) / l) * Math.sqrt(t_m)), 2.0);
} else {
tmp = (l * l) * (2.0 * (Math.cos(k_m) / (Math.pow(k_m, 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 <= 3.4e-47: tmp = 2.0 / math.pow(((math.pow(k_m, 2.0) / l) * math.sqrt(t_m)), 2.0) else: tmp = (l * l) * (2.0 * (math.cos(k_m) / (math.pow(k_m, 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 <= 3.4e-47) tmp = Float64(2.0 / (Float64(Float64((k_m ^ 2.0) / l) * sqrt(t_m)) ^ 2.0)); else tmp = Float64(Float64(l * l) * Float64(2.0 * Float64(cos(k_m) / Float64((k_m ^ 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 <= 3.4e-47) tmp = 2.0 / ((((k_m ^ 2.0) / l) * sqrt(t_m)) ^ 2.0); else tmp = (l * l) * (2.0 * (cos(k_m) / ((k_m ^ 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, 3.4e-47], N[(2.0 / N[Power[N[(N[(N[Power[k$95$m, 2.0], $MachinePrecision] / l), $MachinePrecision] * N[Sqrt[t$95$m], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], N[(N[(l * l), $MachinePrecision] * N[(2.0 * N[(N[Cos[k$95$m], $MachinePrecision] / N[(N[Power[k$95$m, 2.0], $MachinePrecision] * N[(t$95$m * N[Power[k$95$m, 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 3.4 \cdot 10^{-47}:\\
\;\;\;\;\frac{2}{{\left(\frac{{k\_m}^{2}}{\ell} \cdot \sqrt{t\_m}\right)}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\left(\ell \cdot \ell\right) \cdot \left(2 \cdot \frac{\cos k\_m}{{k\_m}^{2} \cdot \left(t\_m \cdot {k\_m}^{2}\right)}\right)\\
\end{array}
\end{array}
if k < 3.4000000000000002e-47Initial program 32.7%
Simplified32.7%
Applied egg-rr12.8%
mul0-rgt29.7%
+-rgt-identity29.7%
associate-*r*29.7%
associate-*l/29.4%
associate-*l/29.4%
Simplified29.4%
Taylor expanded in k around 0 34.5%
if 3.4000000000000002e-47 < k Initial program 22.3%
Simplified38.0%
Taylor expanded in t around 0 71.5%
Taylor expanded in k around 0 63.2%
Final simplification42.3%
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 (/ 2.0 (pow (* (/ (pow k_m 2.0) l) (sqrt 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) {
return t_s * (2.0 / pow(((pow(k_m, 2.0) / l) * sqrt(t_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 / ((((k_m ** 2.0d0) / l) * sqrt(t_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(((Math.pow(k_m, 2.0) / l) * Math.sqrt(t_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(((math.pow(k_m, 2.0) / l) * math.sqrt(t_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((k_m ^ 2.0) / l) * sqrt(t_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 / ((((k_m ^ 2.0) / l) * sqrt(t_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[Power[N[(N[(N[Power[k$95$m, 2.0], $MachinePrecision] / l), $MachinePrecision] * N[Sqrt[t$95$m], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \frac{2}{{\left(\frac{{k\_m}^{2}}{\ell} \cdot \sqrt{t\_m}\right)}^{2}}
\end{array}
Initial program 29.9%
Simplified29.9%
Applied egg-rr11.3%
mul0-rgt26.0%
+-rgt-identity26.0%
associate-*r*26.0%
associate-*l/26.2%
associate-*l/25.8%
Simplified25.8%
Taylor expanded in k around 0 31.3%
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 9.4e-119)
(/ 2.0 (pow (/ (* (/ k_m t_m) (* k_m (pow t_m 1.5))) l) 2.0))
(* (* l 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) {
double tmp;
if (l <= 9.4e-119) {
tmp = 2.0 / pow((((k_m / t_m) * (k_m * pow(t_m, 1.5))) / l), 2.0);
} else {
tmp = (l * l) * (2.0 * (cos(k_m) / (t_m * pow(k_m, 4.0))));
}
return t_s * tmp;
}
k_m = abs(k)
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (l <= 9.4d-119) then
tmp = 2.0d0 / ((((k_m / t_m) * (k_m * (t_m ** 1.5d0))) / l) ** 2.0d0)
else
tmp = (l * l) * (2.0d0 * (cos(k_m) / (t_m * (k_m ** 4.0d0))))
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (l <= 9.4e-119) {
tmp = 2.0 / Math.pow((((k_m / t_m) * (k_m * Math.pow(t_m, 1.5))) / l), 2.0);
} else {
tmp = (l * l) * (2.0 * (Math.cos(k_m) / (t_m * Math.pow(k_m, 4.0))));
}
return t_s * tmp;
}
k_m = math.fabs(k) t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if l <= 9.4e-119: tmp = 2.0 / math.pow((((k_m / t_m) * (k_m * math.pow(t_m, 1.5))) / l), 2.0) else: tmp = (l * l) * (2.0 * (math.cos(k_m) / (t_m * math.pow(k_m, 4.0)))) return t_s * tmp
k_m = abs(k) t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (l <= 9.4e-119) tmp = Float64(2.0 / (Float64(Float64(Float64(k_m / t_m) * Float64(k_m * (t_m ^ 1.5))) / l) ^ 2.0)); else tmp = Float64(Float64(l * l) * Float64(2.0 * Float64(cos(k_m) / Float64(t_m * (k_m ^ 4.0))))); end return Float64(t_s * tmp) end
k_m = abs(k); t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (l <= 9.4e-119) tmp = 2.0 / ((((k_m / t_m) * (k_m * (t_m ^ 1.5))) / l) ^ 2.0); else tmp = (l * l) * (2.0 * (cos(k_m) / (t_m * (k_m ^ 4.0)))); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[l, 9.4e-119], N[(2.0 / N[Power[N[(N[(N[(k$95$m / t$95$m), $MachinePrecision] * N[(k$95$m * N[Power[t$95$m, 1.5], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], N[(N[(l * l), $MachinePrecision] * N[(2.0 * N[(N[Cos[k$95$m], $MachinePrecision] / N[(t$95$m * N[Power[k$95$m, 4.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}\;\ell \leq 9.4 \cdot 10^{-119}:\\
\;\;\;\;\frac{2}{{\left(\frac{\frac{k\_m}{t\_m} \cdot \left(k\_m \cdot {t\_m}^{1.5}\right)}{\ell}\right)}^{2}}\\
\mathbf{else}:\\
\;\;\;\;\left(\ell \cdot \ell\right) \cdot \left(2 \cdot \frac{\cos k\_m}{t\_m \cdot {k\_m}^{4}}\right)\\
\end{array}
\end{array}
if l < 9.40000000000000004e-119Initial program 27.8%
Simplified27.8%
Applied egg-rr8.6%
mul0-rgt27.0%
+-rgt-identity27.0%
associate-*r*27.0%
associate-*l/27.2%
associate-*l/26.6%
Simplified26.6%
Taylor expanded in k around 0 27.5%
if 9.40000000000000004e-119 < l Initial program 33.5%
Simplified40.7%
Taylor expanded in t around 0 75.1%
Taylor expanded in k around 0 59.8%
Final simplification39.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 (* (* l 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 * ((l * 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 * ((l * 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 * ((l * 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 * ((l * 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(l * l) * Float64(2.0 * Float64(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 * ((l * 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[(l * l), $MachinePrecision] * N[(2.0 * N[(N[Cos[k$95$m], $MachinePrecision] / N[(t$95$m * N[Power[k$95$m, 4.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 \left(\left(\ell \cdot \ell\right) \cdot \left(2 \cdot \frac{\cos k\_m}{t\_m \cdot {k\_m}^{4}}\right)\right)
\end{array}
Initial program 29.9%
Simplified37.7%
Taylor expanded in t around 0 71.2%
Taylor expanded in k around 0 59.7%
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 (* (/ 2.0 t_m) (/ (pow l 2.0) (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 / t_m) * (pow(l, 2.0) / 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 / t_m) * ((l ** 2.0d0) / (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 / t_m) * (Math.pow(l, 2.0) / 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 / t_m) * (math.pow(l, 2.0) / 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 / t_m) * Float64((l ^ 2.0) / (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 / t_m) * ((l ^ 2.0) / (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 / t$95$m), $MachinePrecision] * N[(N[Power[l, 2.0], $MachinePrecision] / 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 \left(\frac{2}{t\_m} \cdot \frac{{\ell}^{2}}{{k\_m}^{4}}\right)
\end{array}
Initial program 29.9%
Simplified37.7%
Taylor expanded in k around 0 58.5%
Taylor expanded in k around 0 58.5%
associate-*r/58.5%
*-commutative58.5%
times-frac58.5%
Simplified58.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 (* (* 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 29.9%
Simplified37.7%
Taylor expanded in k around 0 58.5%
Final simplification58.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 (* (* 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(Float64(2.0 / 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[(N[(2.0 / t$95$m), $MachinePrecision] * 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 \left(\left(\ell \cdot \ell\right) \cdot \left(\frac{2}{t\_m} \cdot {k\_m}^{-4}\right)\right)
\end{array}
Initial program 29.9%
Simplified37.7%
Taylor expanded in k around 0 58.5%
*-commutative58.5%
associate-/r*58.4%
Simplified58.4%
div-inv58.4%
pow-flip58.5%
metadata-eval58.5%
Applied egg-rr58.5%
Final simplification58.5%
herbie shell --seed 2024135
(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))))