
(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 15 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (t l k) :precision binary64 (/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (+ (+ 1.0 (pow (/ k t) 2.0)) 1.0))))
double code(double t, double l, double k) {
return 2.0 / ((((pow(t, 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + pow((k / t), 2.0)) + 1.0));
}
real(8) function code(t, l, k)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k
code = 2.0d0 / (((((t ** 3.0d0) / (l * l)) * sin(k)) * tan(k)) * ((1.0d0 + ((k / t) ** 2.0d0)) + 1.0d0))
end function
public static double code(double t, double l, double k) {
return 2.0 / ((((Math.pow(t, 3.0) / (l * l)) * Math.sin(k)) * Math.tan(k)) * ((1.0 + Math.pow((k / t), 2.0)) + 1.0));
}
def code(t, l, k): return 2.0 / ((((math.pow(t, 3.0) / (l * l)) * math.sin(k)) * math.tan(k)) * ((1.0 + math.pow((k / t), 2.0)) + 1.0))
function code(t, l, k) return Float64(2.0 / Float64(Float64(Float64(Float64((t ^ 3.0) / Float64(l * l)) * sin(k)) * tan(k)) * Float64(Float64(1.0 + (Float64(k / t) ^ 2.0)) + 1.0))) end
function tmp = code(t, l, k) tmp = 2.0 / (((((t ^ 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + ((k / t) ^ 2.0)) + 1.0)); end
code[t_, l_, k_] := N[(2.0 / N[(N[(N[(N[(N[Power[t, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[(1.0 + N[Power[N[(k / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}
\end{array}
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(if (<= k_m 0.00086)
(/
2.0
(pow
(*
(* (cbrt (sin k_m)) (* t (pow (cbrt l) -2.0)))
(* (cbrt k_m) (cbrt 2.0)))
3.0))
(if (<= k_m 1.65e+33)
(*
2.0
(*
(/ (pow l 2.0) (pow k_m 2.0))
(/ (cos k_m) (* t (pow (sin k_m) 2.0)))))
(if (or (<= k_m 5e+89) (not (<= k_m 2.6e+126)))
(/
2.0
(pow
(*
(/ t (pow (cbrt l) 2.0))
(cbrt (* (sin k_m) (* (tan k_m) (+ 2.0 (pow (/ k_m t) 2.0))))))
3.0))
(/
2.0
(/
(* (pow k_m 2.0) (* t (- 0.5 (* 0.5 (cos (* 2.0 k_m))))))
(* (pow l 2.0) (cos k_m))))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.00086) {
tmp = 2.0 / pow(((cbrt(sin(k_m)) * (t * pow(cbrt(l), -2.0))) * (cbrt(k_m) * cbrt(2.0))), 3.0);
} else if (k_m <= 1.65e+33) {
tmp = 2.0 * ((pow(l, 2.0) / pow(k_m, 2.0)) * (cos(k_m) / (t * pow(sin(k_m), 2.0))));
} else if ((k_m <= 5e+89) || !(k_m <= 2.6e+126)) {
tmp = 2.0 / pow(((t / pow(cbrt(l), 2.0)) * cbrt((sin(k_m) * (tan(k_m) * (2.0 + pow((k_m / t), 2.0)))))), 3.0);
} else {
tmp = 2.0 / ((pow(k_m, 2.0) * (t * (0.5 - (0.5 * cos((2.0 * k_m)))))) / (pow(l, 2.0) * cos(k_m)));
}
return tmp;
}
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.00086) {
tmp = 2.0 / Math.pow(((Math.cbrt(Math.sin(k_m)) * (t * Math.pow(Math.cbrt(l), -2.0))) * (Math.cbrt(k_m) * Math.cbrt(2.0))), 3.0);
} else if (k_m <= 1.65e+33) {
tmp = 2.0 * ((Math.pow(l, 2.0) / Math.pow(k_m, 2.0)) * (Math.cos(k_m) / (t * Math.pow(Math.sin(k_m), 2.0))));
} else if ((k_m <= 5e+89) || !(k_m <= 2.6e+126)) {
tmp = 2.0 / Math.pow(((t / Math.pow(Math.cbrt(l), 2.0)) * Math.cbrt((Math.sin(k_m) * (Math.tan(k_m) * (2.0 + Math.pow((k_m / t), 2.0)))))), 3.0);
} else {
tmp = 2.0 / ((Math.pow(k_m, 2.0) * (t * (0.5 - (0.5 * Math.cos((2.0 * k_m)))))) / (Math.pow(l, 2.0) * Math.cos(k_m)));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 0.00086) tmp = Float64(2.0 / (Float64(Float64(cbrt(sin(k_m)) * Float64(t * (cbrt(l) ^ -2.0))) * Float64(cbrt(k_m) * cbrt(2.0))) ^ 3.0)); elseif (k_m <= 1.65e+33) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) / (k_m ^ 2.0)) * Float64(cos(k_m) / Float64(t * (sin(k_m) ^ 2.0))))); elseif ((k_m <= 5e+89) || !(k_m <= 2.6e+126)) tmp = Float64(2.0 / (Float64(Float64(t / (cbrt(l) ^ 2.0)) * cbrt(Float64(sin(k_m) * Float64(tan(k_m) * Float64(2.0 + (Float64(k_m / t) ^ 2.0)))))) ^ 3.0)); else tmp = Float64(2.0 / Float64(Float64((k_m ^ 2.0) * Float64(t * Float64(0.5 - Float64(0.5 * cos(Float64(2.0 * k_m)))))) / Float64((l ^ 2.0) * cos(k_m)))); end return tmp end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 0.00086], N[(2.0 / N[Power[N[(N[(N[Power[N[Sin[k$95$m], $MachinePrecision], 1/3], $MachinePrecision] * N[(t * N[Power[N[Power[l, 1/3], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Power[k$95$m, 1/3], $MachinePrecision] * N[Power[2.0, 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], If[LessEqual[k$95$m, 1.65e+33], 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 * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[Or[LessEqual[k$95$m, 5e+89], N[Not[LessEqual[k$95$m, 2.6e+126]], $MachinePrecision]], N[(2.0 / N[Power[N[(N[(t / 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[(2.0 + N[Power[N[(k$95$m / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Power[k$95$m, 2.0], $MachinePrecision] * N[(t * N[(0.5 - N[(0.5 * N[Cos[N[(2.0 * k$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 0.00086:\\
\;\;\;\;\frac{2}{{\left(\left(\sqrt[3]{\sin k\_m} \cdot \left(t \cdot {\left(\sqrt[3]{\ell}\right)}^{-2}\right)\right) \cdot \left(\sqrt[3]{k\_m} \cdot \sqrt[3]{2}\right)\right)}^{3}}\\
\mathbf{elif}\;k\_m \leq 1.65 \cdot 10^{+33}:\\
\;\;\;\;2 \cdot \left(\frac{{\ell}^{2}}{{k\_m}^{2}} \cdot \frac{\cos k\_m}{t \cdot {\sin k\_m}^{2}}\right)\\
\mathbf{elif}\;k\_m \leq 5 \cdot 10^{+89} \lor \neg \left(k\_m \leq 2.6 \cdot 10^{+126}\right):\\
\;\;\;\;\frac{2}{{\left(\frac{t}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \sqrt[3]{\sin k\_m \cdot \left(\tan k\_m \cdot \left(2 + {\left(\frac{k\_m}{t}\right)}^{2}\right)\right)}\right)}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{{k\_m}^{2} \cdot \left(t \cdot \left(0.5 - 0.5 \cdot \cos \left(2 \cdot k\_m\right)\right)\right)}{{\ell}^{2} \cdot \cos k\_m}}\\
\end{array}
\end{array}
if k < 8.59999999999999979e-4Initial program 59.0%
Simplified59.1%
add-cube-cbrt59.1%
pow359.1%
*-commutative59.1%
cbrt-prod59.1%
cbrt-div60.5%
rem-cbrt-cube68.6%
cbrt-prod81.7%
pow281.7%
Applied egg-rr81.7%
add-cube-cbrt81.6%
pow381.6%
Applied egg-rr81.6%
add-cube-cbrt81.6%
pow381.6%
Applied egg-rr87.6%
Taylor expanded in k around 0 78.0%
if 8.59999999999999979e-4 < k < 1.64999999999999988e33Initial program 33.3%
Simplified33.3%
Taylor expanded in t around 0 79.3%
times-frac79.3%
Simplified79.3%
if 1.64999999999999988e33 < k < 4.99999999999999983e89 or 2.6e126 < k Initial program 49.4%
Simplified49.4%
add-cube-cbrt49.4%
pow349.4%
Applied egg-rr77.9%
if 4.99999999999999983e89 < k < 2.6e126Initial program 21.5%
Simplified21.5%
Taylor expanded in t around 0 80.2%
associate-/l*61.9%
associate-/l*61.9%
Simplified61.9%
unpow261.9%
sin-mult62.2%
Applied egg-rr62.2%
div-sub62.2%
+-inverses62.2%
cos-062.2%
metadata-eval62.2%
count-262.2%
Simplified62.2%
Taylor expanded in k around inf 80.9%
Final simplification78.1%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(if (<= t 4.9e-132)
(*
2.0
(/ (* (/ (pow l 2.0) (pow (sin k_m) 2.0)) (/ (cos k_m) (pow k_m 2.0))) t))
(/
2.0
(pow
(*
(* (cbrt (sin k_m)) (* t (pow (cbrt l) -2.0)))
(cbrt (* (tan k_m) (+ 2.0 (pow (/ k_m t) 2.0)))))
3.0))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (t <= 4.9e-132) {
tmp = 2.0 * (((pow(l, 2.0) / pow(sin(k_m), 2.0)) * (cos(k_m) / pow(k_m, 2.0))) / t);
} else {
tmp = 2.0 / pow(((cbrt(sin(k_m)) * (t * pow(cbrt(l), -2.0))) * cbrt((tan(k_m) * (2.0 + pow((k_m / t), 2.0))))), 3.0);
}
return tmp;
}
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (t <= 4.9e-132) {
tmp = 2.0 * (((Math.pow(l, 2.0) / Math.pow(Math.sin(k_m), 2.0)) * (Math.cos(k_m) / Math.pow(k_m, 2.0))) / t);
} else {
tmp = 2.0 / Math.pow(((Math.cbrt(Math.sin(k_m)) * (t * Math.pow(Math.cbrt(l), -2.0))) * Math.cbrt((Math.tan(k_m) * (2.0 + Math.pow((k_m / t), 2.0))))), 3.0);
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (t <= 4.9e-132) tmp = Float64(2.0 * Float64(Float64(Float64((l ^ 2.0) / (sin(k_m) ^ 2.0)) * Float64(cos(k_m) / (k_m ^ 2.0))) / t)); else tmp = Float64(2.0 / (Float64(Float64(cbrt(sin(k_m)) * Float64(t * (cbrt(l) ^ -2.0))) * cbrt(Float64(tan(k_m) * Float64(2.0 + (Float64(k_m / t) ^ 2.0))))) ^ 3.0)); end return tmp end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[t, 4.9e-132], N[(2.0 * N[(N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[Cos[k$95$m], $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[Power[N[(N[(N[Power[N[Sin[k$95$m], $MachinePrecision], 1/3], $MachinePrecision] * N[(t * N[Power[N[Power[l, 1/3], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Power[N[(N[Tan[k$95$m], $MachinePrecision] * N[(2.0 + N[Power[N[(k$95$m / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;t \leq 4.9 \cdot 10^{-132}:\\
\;\;\;\;2 \cdot \frac{\frac{{\ell}^{2}}{{\sin k\_m}^{2}} \cdot \frac{\cos k\_m}{{k\_m}^{2}}}{t}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{{\left(\left(\sqrt[3]{\sin k\_m} \cdot \left(t \cdot {\left(\sqrt[3]{\ell}\right)}^{-2}\right)\right) \cdot \sqrt[3]{\tan k\_m \cdot \left(2 + {\left(\frac{k\_m}{t}\right)}^{2}\right)}\right)}^{3}}\\
\end{array}
\end{array}
if t < 4.89999999999999981e-132Initial program 51.8%
Simplified49.7%
associate-*r*57.9%
*-un-lft-identity57.9%
times-frac56.8%
associate-*r*59.1%
Applied egg-rr59.1%
/-rgt-identity59.1%
*-commutative59.1%
associate-/r*59.1%
Simplified59.1%
Taylor expanded in t around 0 64.9%
associate-/r*65.2%
*-commutative65.2%
associate-/r*65.7%
associate-/r*63.4%
*-commutative63.4%
times-frac65.2%
Simplified65.2%
if 4.89999999999999981e-132 < t Initial program 64.3%
Simplified64.3%
add-cube-cbrt64.2%
pow364.3%
*-commutative64.3%
cbrt-prod64.2%
cbrt-div65.4%
rem-cbrt-cube72.2%
cbrt-prod84.5%
pow284.5%
Applied egg-rr84.5%
add-cube-cbrt84.4%
pow384.4%
Applied egg-rr84.4%
add-cube-cbrt84.4%
pow384.4%
Applied egg-rr95.6%
Final simplification73.7%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(if (<= k_m 0.00098)
(/
2.0
(pow
(*
(* (cbrt (sin k_m)) (* t (pow (cbrt l) -2.0)))
(* (cbrt k_m) (cbrt 2.0)))
3.0))
(/
2.0
(/
(* (pow k_m 2.0) (* t (- 0.5 (* 0.5 (cos (* 2.0 k_m))))))
(* (pow l 2.0) (cos k_m))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.00098) {
tmp = 2.0 / pow(((cbrt(sin(k_m)) * (t * pow(cbrt(l), -2.0))) * (cbrt(k_m) * cbrt(2.0))), 3.0);
} else {
tmp = 2.0 / ((pow(k_m, 2.0) * (t * (0.5 - (0.5 * cos((2.0 * k_m)))))) / (pow(l, 2.0) * cos(k_m)));
}
return tmp;
}
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.00098) {
tmp = 2.0 / Math.pow(((Math.cbrt(Math.sin(k_m)) * (t * Math.pow(Math.cbrt(l), -2.0))) * (Math.cbrt(k_m) * Math.cbrt(2.0))), 3.0);
} else {
tmp = 2.0 / ((Math.pow(k_m, 2.0) * (t * (0.5 - (0.5 * Math.cos((2.0 * k_m)))))) / (Math.pow(l, 2.0) * Math.cos(k_m)));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 0.00098) tmp = Float64(2.0 / (Float64(Float64(cbrt(sin(k_m)) * Float64(t * (cbrt(l) ^ -2.0))) * Float64(cbrt(k_m) * cbrt(2.0))) ^ 3.0)); else tmp = Float64(2.0 / Float64(Float64((k_m ^ 2.0) * Float64(t * Float64(0.5 - Float64(0.5 * cos(Float64(2.0 * k_m)))))) / Float64((l ^ 2.0) * cos(k_m)))); end return tmp end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 0.00098], N[(2.0 / N[Power[N[(N[(N[Power[N[Sin[k$95$m], $MachinePrecision], 1/3], $MachinePrecision] * N[(t * N[Power[N[Power[l, 1/3], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Power[k$95$m, 1/3], $MachinePrecision] * N[Power[2.0, 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Power[k$95$m, 2.0], $MachinePrecision] * N[(t * N[(0.5 - N[(0.5 * N[Cos[N[(2.0 * k$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 0.00098:\\
\;\;\;\;\frac{2}{{\left(\left(\sqrt[3]{\sin k\_m} \cdot \left(t \cdot {\left(\sqrt[3]{\ell}\right)}^{-2}\right)\right) \cdot \left(\sqrt[3]{k\_m} \cdot \sqrt[3]{2}\right)\right)}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{{k\_m}^{2} \cdot \left(t \cdot \left(0.5 - 0.5 \cdot \cos \left(2 \cdot k\_m\right)\right)\right)}{{\ell}^{2} \cdot \cos k\_m}}\\
\end{array}
\end{array}
if k < 9.7999999999999997e-4Initial program 59.0%
Simplified59.1%
add-cube-cbrt59.1%
pow359.1%
*-commutative59.1%
cbrt-prod59.1%
cbrt-div60.5%
rem-cbrt-cube68.6%
cbrt-prod81.7%
pow281.7%
Applied egg-rr81.7%
add-cube-cbrt81.6%
pow381.6%
Applied egg-rr81.6%
add-cube-cbrt81.6%
pow381.6%
Applied egg-rr87.6%
Taylor expanded in k around 0 78.0%
if 9.7999999999999997e-4 < k Initial program 45.3%
Simplified45.3%
Taylor expanded in t around 0 73.3%
associate-/l*70.5%
associate-/l*70.5%
Simplified70.5%
unpow270.5%
sin-mult70.6%
Applied egg-rr70.6%
div-sub70.6%
+-inverses70.6%
cos-070.6%
metadata-eval70.6%
count-270.6%
Simplified70.6%
Taylor expanded in k around inf 73.3%
Final simplification76.7%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(if (<= k_m 5.4e-173)
(*
(pow (/ (cbrt (* 2.0 l)) (* t (pow (cbrt k_m) 2.0))) 3.0)
(/ l (+ 2.0 (pow (/ k_m t) 2.0))))
(if (<= k_m 0.0072)
(/
2.0
(pow (* t (* (pow (cbrt l) -2.0) (cbrt (* 2.0 (pow k_m 2.0))))) 3.0))
(/
2.0
(/
(* (pow k_m 2.0) (* t (- 0.5 (* 0.5 (cos (* 2.0 k_m))))))
(* (pow l 2.0) (cos k_m)))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 5.4e-173) {
tmp = pow((cbrt((2.0 * l)) / (t * pow(cbrt(k_m), 2.0))), 3.0) * (l / (2.0 + pow((k_m / t), 2.0)));
} else if (k_m <= 0.0072) {
tmp = 2.0 / pow((t * (pow(cbrt(l), -2.0) * cbrt((2.0 * pow(k_m, 2.0))))), 3.0);
} else {
tmp = 2.0 / ((pow(k_m, 2.0) * (t * (0.5 - (0.5 * cos((2.0 * k_m)))))) / (pow(l, 2.0) * cos(k_m)));
}
return tmp;
}
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 5.4e-173) {
tmp = Math.pow((Math.cbrt((2.0 * l)) / (t * Math.pow(Math.cbrt(k_m), 2.0))), 3.0) * (l / (2.0 + Math.pow((k_m / t), 2.0)));
} else if (k_m <= 0.0072) {
tmp = 2.0 / Math.pow((t * (Math.pow(Math.cbrt(l), -2.0) * Math.cbrt((2.0 * Math.pow(k_m, 2.0))))), 3.0);
} else {
tmp = 2.0 / ((Math.pow(k_m, 2.0) * (t * (0.5 - (0.5 * Math.cos((2.0 * k_m)))))) / (Math.pow(l, 2.0) * Math.cos(k_m)));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 5.4e-173) tmp = Float64((Float64(cbrt(Float64(2.0 * l)) / Float64(t * (cbrt(k_m) ^ 2.0))) ^ 3.0) * Float64(l / Float64(2.0 + (Float64(k_m / t) ^ 2.0)))); elseif (k_m <= 0.0072) tmp = Float64(2.0 / (Float64(t * Float64((cbrt(l) ^ -2.0) * cbrt(Float64(2.0 * (k_m ^ 2.0))))) ^ 3.0)); else tmp = Float64(2.0 / Float64(Float64((k_m ^ 2.0) * Float64(t * Float64(0.5 - Float64(0.5 * cos(Float64(2.0 * k_m)))))) / Float64((l ^ 2.0) * cos(k_m)))); end return tmp end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 5.4e-173], N[(N[Power[N[(N[Power[N[(2.0 * l), $MachinePrecision], 1/3], $MachinePrecision] / N[(t * N[Power[N[Power[k$95$m, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision] * N[(l / N[(2.0 + N[Power[N[(k$95$m / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k$95$m, 0.0072], N[(2.0 / N[Power[N[(t * N[(N[Power[N[Power[l, 1/3], $MachinePrecision], -2.0], $MachinePrecision] * N[Power[N[(2.0 * N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Power[k$95$m, 2.0], $MachinePrecision] * N[(t * N[(0.5 - N[(0.5 * N[Cos[N[(2.0 * k$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 5.4 \cdot 10^{-173}:\\
\;\;\;\;{\left(\frac{\sqrt[3]{2 \cdot \ell}}{t \cdot {\left(\sqrt[3]{k\_m}\right)}^{2}}\right)}^{3} \cdot \frac{\ell}{2 + {\left(\frac{k\_m}{t}\right)}^{2}}\\
\mathbf{elif}\;k\_m \leq 0.0072:\\
\;\;\;\;\frac{2}{{\left(t \cdot \left({\left(\sqrt[3]{\ell}\right)}^{-2} \cdot \sqrt[3]{2 \cdot {k\_m}^{2}}\right)\right)}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{{k\_m}^{2} \cdot \left(t \cdot \left(0.5 - 0.5 \cdot \cos \left(2 \cdot k\_m\right)\right)\right)}{{\ell}^{2} \cdot \cos k\_m}}\\
\end{array}
\end{array}
if k < 5.3999999999999999e-173Initial program 56.0%
Simplified52.9%
associate-*r*62.6%
*-un-lft-identity62.6%
times-frac61.4%
associate-*r*65.5%
Applied egg-rr65.5%
/-rgt-identity65.5%
*-commutative65.5%
associate-/r*65.5%
Simplified65.5%
Taylor expanded in k around 0 59.5%
add-cube-cbrt59.4%
pow359.4%
associate-*r/59.4%
cbrt-div59.4%
*-commutative59.4%
cbrt-prod60.6%
unpow360.6%
add-cbrt-cube66.1%
unpow266.1%
cbrt-prod75.8%
pow275.8%
Applied egg-rr75.8%
if 5.3999999999999999e-173 < k < 0.0071999999999999998Initial program 73.6%
Simplified81.0%
Taylor expanded in k around 0 81.3%
add-cube-cbrt81.3%
pow381.3%
cbrt-prod81.0%
associate-/l/74.7%
unpow274.7%
cbrt-div74.7%
unpow374.6%
add-cbrt-cube81.0%
unpow281.0%
cbrt-prod93.2%
unpow293.2%
div-inv93.2%
pow-flip93.2%
metadata-eval93.2%
Applied egg-rr93.2%
associate-*l*93.2%
Simplified93.2%
if 0.0071999999999999998 < k Initial program 45.3%
Simplified45.3%
Taylor expanded in t around 0 73.3%
associate-/l*70.5%
associate-/l*70.5%
Simplified70.5%
unpow270.5%
sin-mult70.6%
Applied egg-rr70.6%
div-sub70.6%
+-inverses70.6%
cos-070.6%
metadata-eval70.6%
count-270.6%
Simplified70.6%
Taylor expanded in k around inf 73.3%
Final simplification77.3%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(if (<= k_m 5.4e-173)
(*
(/ l (+ 2.0 (pow (/ k_m t) 2.0)))
(* l (/ 2.0 (pow (* t (pow (cbrt k_m) 2.0)) 3.0))))
(if (<= k_m 0.0045)
(/
2.0
(pow (* t (* (pow (cbrt l) -2.0) (cbrt (* 2.0 (pow k_m 2.0))))) 3.0))
(/
2.0
(/
(* (pow k_m 2.0) (* t (- 0.5 (* 0.5 (cos (* 2.0 k_m))))))
(* (pow l 2.0) (cos k_m)))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 5.4e-173) {
tmp = (l / (2.0 + pow((k_m / t), 2.0))) * (l * (2.0 / pow((t * pow(cbrt(k_m), 2.0)), 3.0)));
} else if (k_m <= 0.0045) {
tmp = 2.0 / pow((t * (pow(cbrt(l), -2.0) * cbrt((2.0 * pow(k_m, 2.0))))), 3.0);
} else {
tmp = 2.0 / ((pow(k_m, 2.0) * (t * (0.5 - (0.5 * cos((2.0 * k_m)))))) / (pow(l, 2.0) * cos(k_m)));
}
return tmp;
}
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 5.4e-173) {
tmp = (l / (2.0 + Math.pow((k_m / t), 2.0))) * (l * (2.0 / Math.pow((t * Math.pow(Math.cbrt(k_m), 2.0)), 3.0)));
} else if (k_m <= 0.0045) {
tmp = 2.0 / Math.pow((t * (Math.pow(Math.cbrt(l), -2.0) * Math.cbrt((2.0 * Math.pow(k_m, 2.0))))), 3.0);
} else {
tmp = 2.0 / ((Math.pow(k_m, 2.0) * (t * (0.5 - (0.5 * Math.cos((2.0 * k_m)))))) / (Math.pow(l, 2.0) * Math.cos(k_m)));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 5.4e-173) tmp = Float64(Float64(l / Float64(2.0 + (Float64(k_m / t) ^ 2.0))) * Float64(l * Float64(2.0 / (Float64(t * (cbrt(k_m) ^ 2.0)) ^ 3.0)))); elseif (k_m <= 0.0045) tmp = Float64(2.0 / (Float64(t * Float64((cbrt(l) ^ -2.0) * cbrt(Float64(2.0 * (k_m ^ 2.0))))) ^ 3.0)); else tmp = Float64(2.0 / Float64(Float64((k_m ^ 2.0) * Float64(t * Float64(0.5 - Float64(0.5 * cos(Float64(2.0 * k_m)))))) / Float64((l ^ 2.0) * cos(k_m)))); end return tmp end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 5.4e-173], N[(N[(l / N[(2.0 + N[Power[N[(k$95$m / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(l * N[(2.0 / N[Power[N[(t * N[Power[N[Power[k$95$m, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k$95$m, 0.0045], N[(2.0 / N[Power[N[(t * N[(N[Power[N[Power[l, 1/3], $MachinePrecision], -2.0], $MachinePrecision] * N[Power[N[(2.0 * N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Power[k$95$m, 2.0], $MachinePrecision] * N[(t * N[(0.5 - N[(0.5 * N[Cos[N[(2.0 * k$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 5.4 \cdot 10^{-173}:\\
\;\;\;\;\frac{\ell}{2 + {\left(\frac{k\_m}{t}\right)}^{2}} \cdot \left(\ell \cdot \frac{2}{{\left(t \cdot {\left(\sqrt[3]{k\_m}\right)}^{2}\right)}^{3}}\right)\\
\mathbf{elif}\;k\_m \leq 0.0045:\\
\;\;\;\;\frac{2}{{\left(t \cdot \left({\left(\sqrt[3]{\ell}\right)}^{-2} \cdot \sqrt[3]{2 \cdot {k\_m}^{2}}\right)\right)}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{{k\_m}^{2} \cdot \left(t \cdot \left(0.5 - 0.5 \cdot \cos \left(2 \cdot k\_m\right)\right)\right)}{{\ell}^{2} \cdot \cos k\_m}}\\
\end{array}
\end{array}
if k < 5.3999999999999999e-173Initial program 56.0%
Simplified52.9%
associate-*r*62.6%
*-un-lft-identity62.6%
times-frac61.4%
associate-*r*65.5%
Applied egg-rr65.5%
/-rgt-identity65.5%
*-commutative65.5%
associate-/r*65.5%
Simplified65.5%
Taylor expanded in k around 0 59.5%
add-cube-cbrt59.4%
pow359.4%
*-commutative59.4%
cbrt-prod59.4%
unpow359.4%
add-cbrt-cube63.7%
unpow263.7%
cbrt-prod70.5%
pow270.5%
Applied egg-rr70.5%
if 5.3999999999999999e-173 < k < 0.00449999999999999966Initial program 73.6%
Simplified81.0%
Taylor expanded in k around 0 81.3%
add-cube-cbrt81.3%
pow381.3%
cbrt-prod81.0%
associate-/l/74.7%
unpow274.7%
cbrt-div74.7%
unpow374.6%
add-cbrt-cube81.0%
unpow281.0%
cbrt-prod93.2%
unpow293.2%
div-inv93.2%
pow-flip93.2%
metadata-eval93.2%
Applied egg-rr93.2%
associate-*l*93.2%
Simplified93.2%
if 0.00449999999999999966 < k Initial program 45.3%
Simplified45.3%
Taylor expanded in t around 0 73.3%
associate-/l*70.5%
associate-/l*70.5%
Simplified70.5%
unpow270.5%
sin-mult70.6%
Applied egg-rr70.6%
div-sub70.6%
+-inverses70.6%
cos-070.6%
metadata-eval70.6%
count-270.6%
Simplified70.6%
Taylor expanded in k around inf 73.3%
Final simplification74.0%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(let* ((t_1 (/ l (+ 2.0 (pow (/ k_m t) 2.0)))))
(if (<= t 4.3e-103)
(/
2.0
(*
(pow k_m 2.0)
(* t (/ (- 0.5 (/ (cos (* 2.0 k_m)) 2.0)) (* (cos k_m) (* l l))))))
(if (<= t 7.7e+86)
(* t_1 (/ (* l (/ (/ 2.0 (pow t 3.0)) (sin k_m))) (tan k_m)))
(* t_1 (* l (/ 2.0 (pow (* t (pow (cbrt k_m) 2.0)) 3.0))))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double t_1 = l / (2.0 + pow((k_m / t), 2.0));
double tmp;
if (t <= 4.3e-103) {
tmp = 2.0 / (pow(k_m, 2.0) * (t * ((0.5 - (cos((2.0 * k_m)) / 2.0)) / (cos(k_m) * (l * l)))));
} else if (t <= 7.7e+86) {
tmp = t_1 * ((l * ((2.0 / pow(t, 3.0)) / sin(k_m))) / tan(k_m));
} else {
tmp = t_1 * (l * (2.0 / pow((t * pow(cbrt(k_m), 2.0)), 3.0)));
}
return tmp;
}
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double t_1 = l / (2.0 + Math.pow((k_m / t), 2.0));
double tmp;
if (t <= 4.3e-103) {
tmp = 2.0 / (Math.pow(k_m, 2.0) * (t * ((0.5 - (Math.cos((2.0 * k_m)) / 2.0)) / (Math.cos(k_m) * (l * l)))));
} else if (t <= 7.7e+86) {
tmp = t_1 * ((l * ((2.0 / Math.pow(t, 3.0)) / Math.sin(k_m))) / Math.tan(k_m));
} else {
tmp = t_1 * (l * (2.0 / Math.pow((t * Math.pow(Math.cbrt(k_m), 2.0)), 3.0)));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) t_1 = Float64(l / Float64(2.0 + (Float64(k_m / t) ^ 2.0))) tmp = 0.0 if (t <= 4.3e-103) tmp = Float64(2.0 / Float64((k_m ^ 2.0) * Float64(t * Float64(Float64(0.5 - Float64(cos(Float64(2.0 * k_m)) / 2.0)) / Float64(cos(k_m) * Float64(l * l)))))); elseif (t <= 7.7e+86) tmp = Float64(t_1 * Float64(Float64(l * Float64(Float64(2.0 / (t ^ 3.0)) / sin(k_m))) / tan(k_m))); else tmp = Float64(t_1 * Float64(l * Float64(2.0 / (Float64(t * (cbrt(k_m) ^ 2.0)) ^ 3.0)))); end return tmp end
k_m = N[Abs[k], $MachinePrecision]
code[t_, l_, k$95$m_] := Block[{t$95$1 = N[(l / N[(2.0 + N[Power[N[(k$95$m / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, 4.3e-103], N[(2.0 / N[(N[Power[k$95$m, 2.0], $MachinePrecision] * N[(t * N[(N[(0.5 - N[(N[Cos[N[(2.0 * k$95$m), $MachinePrecision]], $MachinePrecision] / 2.0), $MachinePrecision]), $MachinePrecision] / N[(N[Cos[k$95$m], $MachinePrecision] * N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 7.7e+86], N[(t$95$1 * N[(N[(l * N[(N[(2.0 / N[Power[t, 3.0], $MachinePrecision]), $MachinePrecision] / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(t$95$1 * N[(l * N[(2.0 / N[Power[N[(t * N[Power[N[Power[k$95$m, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
t_1 := \frac{\ell}{2 + {\left(\frac{k\_m}{t}\right)}^{2}}\\
\mathbf{if}\;t \leq 4.3 \cdot 10^{-103}:\\
\;\;\;\;\frac{2}{{k\_m}^{2} \cdot \left(t \cdot \frac{0.5 - \frac{\cos \left(2 \cdot k\_m\right)}{2}}{\cos k\_m \cdot \left(\ell \cdot \ell\right)}\right)}\\
\mathbf{elif}\;t \leq 7.7 \cdot 10^{+86}:\\
\;\;\;\;t\_1 \cdot \frac{\ell \cdot \frac{\frac{2}{{t}^{3}}}{\sin k\_m}}{\tan k\_m}\\
\mathbf{else}:\\
\;\;\;\;t\_1 \cdot \left(\ell \cdot \frac{2}{{\left(t \cdot {\left(\sqrt[3]{k\_m}\right)}^{2}\right)}^{3}}\right)\\
\end{array}
\end{array}
if t < 4.30000000000000023e-103Initial program 51.2%
Simplified51.4%
Taylor expanded in t around 0 65.3%
associate-/l*65.7%
associate-/l*66.2%
Simplified66.2%
unpow266.2%
sin-mult61.0%
Applied egg-rr61.0%
div-sub61.0%
+-inverses61.0%
cos-061.0%
metadata-eval61.0%
count-261.0%
Simplified61.0%
unpow259.4%
Applied egg-rr61.0%
if 4.30000000000000023e-103 < t < 7.70000000000000053e86Initial program 75.0%
Simplified73.4%
associate-*r*80.2%
*-un-lft-identity80.2%
times-frac84.6%
associate-*r*87.0%
Applied egg-rr87.0%
/-rgt-identity87.0%
*-commutative87.0%
associate-/r*87.1%
Simplified87.1%
associate-*r/91.8%
associate-/r*91.8%
Applied egg-rr91.8%
if 7.70000000000000053e86 < t Initial program 54.2%
Simplified50.1%
associate-*r*57.6%
*-un-lft-identity57.6%
times-frac57.6%
associate-*r*61.8%
Applied egg-rr61.8%
/-rgt-identity61.8%
*-commutative61.8%
associate-/r*61.8%
Simplified61.8%
Taylor expanded in k around 0 57.6%
add-cube-cbrt57.6%
pow357.6%
*-commutative57.6%
cbrt-prod57.6%
unpow357.6%
add-cbrt-cube61.5%
unpow261.5%
cbrt-prod80.5%
pow280.5%
Applied egg-rr80.5%
Final simplification68.1%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(if (<= k_m 0.00092)
(*
(/ l (+ 2.0 (pow (/ k_m t) 2.0)))
(* l (/ 2.0 (pow (* t (pow (cbrt k_m) 2.0)) 3.0))))
(/
2.0
(/
(* (pow k_m 2.0) (* t (- 0.5 (* 0.5 (cos (* 2.0 k_m))))))
(* (pow l 2.0) (cos k_m))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.00092) {
tmp = (l / (2.0 + pow((k_m / t), 2.0))) * (l * (2.0 / pow((t * pow(cbrt(k_m), 2.0)), 3.0)));
} else {
tmp = 2.0 / ((pow(k_m, 2.0) * (t * (0.5 - (0.5 * cos((2.0 * k_m)))))) / (pow(l, 2.0) * cos(k_m)));
}
return tmp;
}
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.00092) {
tmp = (l / (2.0 + Math.pow((k_m / t), 2.0))) * (l * (2.0 / Math.pow((t * Math.pow(Math.cbrt(k_m), 2.0)), 3.0)));
} else {
tmp = 2.0 / ((Math.pow(k_m, 2.0) * (t * (0.5 - (0.5 * Math.cos((2.0 * k_m)))))) / (Math.pow(l, 2.0) * Math.cos(k_m)));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 0.00092) tmp = Float64(Float64(l / Float64(2.0 + (Float64(k_m / t) ^ 2.0))) * Float64(l * Float64(2.0 / (Float64(t * (cbrt(k_m) ^ 2.0)) ^ 3.0)))); else tmp = Float64(2.0 / Float64(Float64((k_m ^ 2.0) * Float64(t * Float64(0.5 - Float64(0.5 * cos(Float64(2.0 * k_m)))))) / Float64((l ^ 2.0) * cos(k_m)))); end return tmp end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 0.00092], N[(N[(l / N[(2.0 + N[Power[N[(k$95$m / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(l * N[(2.0 / N[Power[N[(t * N[Power[N[Power[k$95$m, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Power[k$95$m, 2.0], $MachinePrecision] * N[(t * N[(0.5 - N[(0.5 * N[Cos[N[(2.0 * k$95$m), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 0.00092:\\
\;\;\;\;\frac{\ell}{2 + {\left(\frac{k\_m}{t}\right)}^{2}} \cdot \left(\ell \cdot \frac{2}{{\left(t \cdot {\left(\sqrt[3]{k\_m}\right)}^{2}\right)}^{3}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{{k\_m}^{2} \cdot \left(t \cdot \left(0.5 - 0.5 \cdot \cos \left(2 \cdot k\_m\right)\right)\right)}{{\ell}^{2} \cdot \cos k\_m}}\\
\end{array}
\end{array}
if k < 9.2000000000000003e-4Initial program 59.0%
Simplified56.0%
associate-*r*65.7%
*-un-lft-identity65.7%
times-frac64.6%
associate-*r*68.0%
Applied egg-rr68.0%
/-rgt-identity68.0%
*-commutative68.0%
associate-/r*68.0%
Simplified68.0%
Taylor expanded in k around 0 63.0%
add-cube-cbrt62.9%
pow362.9%
*-commutative62.9%
cbrt-prod62.9%
unpow362.9%
add-cbrt-cube67.6%
unpow267.6%
cbrt-prod73.7%
pow273.7%
Applied egg-rr73.7%
if 9.2000000000000003e-4 < k Initial program 45.3%
Simplified45.3%
Taylor expanded in t around 0 73.3%
associate-/l*70.5%
associate-/l*70.5%
Simplified70.5%
unpow270.5%
sin-mult70.6%
Applied egg-rr70.6%
div-sub70.6%
+-inverses70.6%
cos-070.6%
metadata-eval70.6%
count-270.6%
Simplified70.6%
Taylor expanded in k around inf 73.3%
Final simplification73.6%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(if (<= k_m 0.00047)
(*
(/ l (+ 2.0 (pow (/ k_m t) 2.0)))
(* l (/ 2.0 (pow (* t (pow (cbrt k_m) 2.0)) 3.0))))
(/
2.0
(*
(pow k_m 2.0)
(* t (/ (- 0.5 (/ (cos (* 2.0 k_m)) 2.0)) (* (cos k_m) (* l l))))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.00047) {
tmp = (l / (2.0 + pow((k_m / t), 2.0))) * (l * (2.0 / pow((t * pow(cbrt(k_m), 2.0)), 3.0)));
} else {
tmp = 2.0 / (pow(k_m, 2.0) * (t * ((0.5 - (cos((2.0 * k_m)) / 2.0)) / (cos(k_m) * (l * l)))));
}
return tmp;
}
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.00047) {
tmp = (l / (2.0 + Math.pow((k_m / t), 2.0))) * (l * (2.0 / Math.pow((t * Math.pow(Math.cbrt(k_m), 2.0)), 3.0)));
} else {
tmp = 2.0 / (Math.pow(k_m, 2.0) * (t * ((0.5 - (Math.cos((2.0 * k_m)) / 2.0)) / (Math.cos(k_m) * (l * l)))));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 0.00047) tmp = Float64(Float64(l / Float64(2.0 + (Float64(k_m / t) ^ 2.0))) * Float64(l * Float64(2.0 / (Float64(t * (cbrt(k_m) ^ 2.0)) ^ 3.0)))); else tmp = Float64(2.0 / Float64((k_m ^ 2.0) * Float64(t * Float64(Float64(0.5 - Float64(cos(Float64(2.0 * k_m)) / 2.0)) / Float64(cos(k_m) * Float64(l * l)))))); end return tmp end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 0.00047], N[(N[(l / N[(2.0 + N[Power[N[(k$95$m / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(l * N[(2.0 / N[Power[N[(t * N[Power[N[Power[k$95$m, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[Power[k$95$m, 2.0], $MachinePrecision] * N[(t * N[(N[(0.5 - N[(N[Cos[N[(2.0 * k$95$m), $MachinePrecision]], $MachinePrecision] / 2.0), $MachinePrecision]), $MachinePrecision] / N[(N[Cos[k$95$m], $MachinePrecision] * N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 0.00047:\\
\;\;\;\;\frac{\ell}{2 + {\left(\frac{k\_m}{t}\right)}^{2}} \cdot \left(\ell \cdot \frac{2}{{\left(t \cdot {\left(\sqrt[3]{k\_m}\right)}^{2}\right)}^{3}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{{k\_m}^{2} \cdot \left(t \cdot \frac{0.5 - \frac{\cos \left(2 \cdot k\_m\right)}{2}}{\cos k\_m \cdot \left(\ell \cdot \ell\right)}\right)}\\
\end{array}
\end{array}
if k < 4.69999999999999986e-4Initial program 59.0%
Simplified56.0%
associate-*r*65.7%
*-un-lft-identity65.7%
times-frac64.6%
associate-*r*68.0%
Applied egg-rr68.0%
/-rgt-identity68.0%
*-commutative68.0%
associate-/r*68.0%
Simplified68.0%
Taylor expanded in k around 0 63.0%
add-cube-cbrt62.9%
pow362.9%
*-commutative62.9%
cbrt-prod62.9%
unpow362.9%
add-cbrt-cube67.6%
unpow267.6%
cbrt-prod73.7%
pow273.7%
Applied egg-rr73.7%
if 4.69999999999999986e-4 < k Initial program 45.3%
Simplified45.3%
Taylor expanded in t around 0 73.3%
associate-/l*70.5%
associate-/l*70.5%
Simplified70.5%
unpow270.5%
sin-mult70.6%
Applied egg-rr70.6%
div-sub70.6%
+-inverses70.6%
cos-070.6%
metadata-eval70.6%
count-270.6%
Simplified70.6%
unpow261.6%
Applied egg-rr70.6%
Final simplification72.8%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(if (<= k_m 0.0054)
(* (* l (/ (/ 2.0 (* (sin k_m) (pow t 3.0))) (tan k_m))) (* l 0.5))
(/
2.0
(*
(pow k_m 2.0)
(* t (/ (- 0.5 (/ (cos (* 2.0 k_m)) 2.0)) (* (cos k_m) (* l l))))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.0054) {
tmp = (l * ((2.0 / (sin(k_m) * pow(t, 3.0))) / tan(k_m))) * (l * 0.5);
} else {
tmp = 2.0 / (pow(k_m, 2.0) * (t * ((0.5 - (cos((2.0 * k_m)) / 2.0)) / (cos(k_m) * (l * l)))));
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 0.0054d0) then
tmp = (l * ((2.0d0 / (sin(k_m) * (t ** 3.0d0))) / tan(k_m))) * (l * 0.5d0)
else
tmp = 2.0d0 / ((k_m ** 2.0d0) * (t * ((0.5d0 - (cos((2.0d0 * k_m)) / 2.0d0)) / (cos(k_m) * (l * l)))))
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.0054) {
tmp = (l * ((2.0 / (Math.sin(k_m) * Math.pow(t, 3.0))) / Math.tan(k_m))) * (l * 0.5);
} else {
tmp = 2.0 / (Math.pow(k_m, 2.0) * (t * ((0.5 - (Math.cos((2.0 * k_m)) / 2.0)) / (Math.cos(k_m) * (l * l)))));
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): tmp = 0 if k_m <= 0.0054: tmp = (l * ((2.0 / (math.sin(k_m) * math.pow(t, 3.0))) / math.tan(k_m))) * (l * 0.5) else: tmp = 2.0 / (math.pow(k_m, 2.0) * (t * ((0.5 - (math.cos((2.0 * k_m)) / 2.0)) / (math.cos(k_m) * (l * l))))) return tmp
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 0.0054) tmp = Float64(Float64(l * Float64(Float64(2.0 / Float64(sin(k_m) * (t ^ 3.0))) / tan(k_m))) * Float64(l * 0.5)); else tmp = Float64(2.0 / Float64((k_m ^ 2.0) * Float64(t * Float64(Float64(0.5 - Float64(cos(Float64(2.0 * k_m)) / 2.0)) / Float64(cos(k_m) * Float64(l * l)))))); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) tmp = 0.0; if (k_m <= 0.0054) tmp = (l * ((2.0 / (sin(k_m) * (t ^ 3.0))) / tan(k_m))) * (l * 0.5); else tmp = 2.0 / ((k_m ^ 2.0) * (t * ((0.5 - (cos((2.0 * k_m)) / 2.0)) / (cos(k_m) * (l * l))))); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 0.0054], N[(N[(l * N[(N[(2.0 / N[(N[Sin[k$95$m], $MachinePrecision] * N[Power[t, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(l * 0.5), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[Power[k$95$m, 2.0], $MachinePrecision] * N[(t * N[(N[(0.5 - N[(N[Cos[N[(2.0 * k$95$m), $MachinePrecision]], $MachinePrecision] / 2.0), $MachinePrecision]), $MachinePrecision] / N[(N[Cos[k$95$m], $MachinePrecision] * N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 0.0054:\\
\;\;\;\;\left(\ell \cdot \frac{\frac{2}{\sin k\_m \cdot {t}^{3}}}{\tan k\_m}\right) \cdot \left(\ell \cdot 0.5\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{{k\_m}^{2} \cdot \left(t \cdot \frac{0.5 - \frac{\cos \left(2 \cdot k\_m\right)}{2}}{\cos k\_m \cdot \left(\ell \cdot \ell\right)}\right)}\\
\end{array}
\end{array}
if k < 0.0054000000000000003Initial program 59.0%
Simplified56.0%
associate-*r*65.7%
*-un-lft-identity65.7%
times-frac64.6%
associate-*r*68.0%
Applied egg-rr68.0%
/-rgt-identity68.0%
*-commutative68.0%
associate-/r*68.0%
Simplified68.0%
Taylor expanded in k around 0 66.1%
*-commutative65.6%
Simplified66.1%
if 0.0054000000000000003 < k Initial program 45.3%
Simplified45.3%
Taylor expanded in t around 0 73.3%
associate-/l*70.5%
associate-/l*70.5%
Simplified70.5%
unpow270.5%
sin-mult70.6%
Applied egg-rr70.6%
div-sub70.6%
+-inverses70.6%
cos-070.6%
metadata-eval70.6%
count-270.6%
Simplified70.6%
unpow261.6%
Applied egg-rr70.6%
Final simplification67.3%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (if (<= k_m 0.00095) (* (* l (/ (/ 2.0 (* (sin k_m) (pow t 3.0))) (tan k_m))) (* l 0.5)) (/ 2.0 (/ (* t (pow k_m 4.0)) (* (pow l 2.0) (cos k_m))))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.00095) {
tmp = (l * ((2.0 / (sin(k_m) * pow(t, 3.0))) / tan(k_m))) * (l * 0.5);
} else {
tmp = 2.0 / ((t * pow(k_m, 4.0)) / (pow(l, 2.0) * cos(k_m)));
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 0.00095d0) then
tmp = (l * ((2.0d0 / (sin(k_m) * (t ** 3.0d0))) / tan(k_m))) * (l * 0.5d0)
else
tmp = 2.0d0 / ((t * (k_m ** 4.0d0)) / ((l ** 2.0d0) * cos(k_m)))
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.00095) {
tmp = (l * ((2.0 / (Math.sin(k_m) * Math.pow(t, 3.0))) / Math.tan(k_m))) * (l * 0.5);
} else {
tmp = 2.0 / ((t * Math.pow(k_m, 4.0)) / (Math.pow(l, 2.0) * Math.cos(k_m)));
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): tmp = 0 if k_m <= 0.00095: tmp = (l * ((2.0 / (math.sin(k_m) * math.pow(t, 3.0))) / math.tan(k_m))) * (l * 0.5) else: tmp = 2.0 / ((t * math.pow(k_m, 4.0)) / (math.pow(l, 2.0) * math.cos(k_m))) return tmp
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 0.00095) tmp = Float64(Float64(l * Float64(Float64(2.0 / Float64(sin(k_m) * (t ^ 3.0))) / tan(k_m))) * Float64(l * 0.5)); else tmp = Float64(2.0 / Float64(Float64(t * (k_m ^ 4.0)) / Float64((l ^ 2.0) * cos(k_m)))); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) tmp = 0.0; if (k_m <= 0.00095) tmp = (l * ((2.0 / (sin(k_m) * (t ^ 3.0))) / tan(k_m))) * (l * 0.5); else tmp = 2.0 / ((t * (k_m ^ 4.0)) / ((l ^ 2.0) * cos(k_m))); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 0.00095], N[(N[(l * N[(N[(2.0 / N[(N[Sin[k$95$m], $MachinePrecision] * N[Power[t, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(l * 0.5), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(t * N[Power[k$95$m, 4.0], $MachinePrecision]), $MachinePrecision] / N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 0.00095:\\
\;\;\;\;\left(\ell \cdot \frac{\frac{2}{\sin k\_m \cdot {t}^{3}}}{\tan k\_m}\right) \cdot \left(\ell \cdot 0.5\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{t \cdot {k\_m}^{4}}{{\ell}^{2} \cdot \cos k\_m}}\\
\end{array}
\end{array}
if k < 9.49999999999999998e-4Initial program 59.0%
Simplified56.0%
associate-*r*65.7%
*-un-lft-identity65.7%
times-frac64.6%
associate-*r*68.0%
Applied egg-rr68.0%
/-rgt-identity68.0%
*-commutative68.0%
associate-/r*68.0%
Simplified68.0%
Taylor expanded in k around 0 66.1%
*-commutative65.6%
Simplified66.1%
if 9.49999999999999998e-4 < k Initial program 45.3%
Simplified45.3%
Taylor expanded in t around 0 73.3%
associate-/l*70.5%
associate-/l*70.5%
Simplified70.5%
unpow270.5%
sin-mult70.6%
Applied egg-rr70.6%
div-sub70.6%
+-inverses70.6%
cos-070.6%
metadata-eval70.6%
count-270.6%
Simplified70.6%
Taylor expanded in k around inf 73.3%
Taylor expanded in k around 0 64.7%
Final simplification65.7%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (if (<= k_m 0.0024) (/ 2.0 (* (* 2.0 (pow k_m 2.0)) (/ (pow (/ t (cbrt l)) 3.0) l))) (/ 2.0 (/ (* t (pow k_m 4.0)) (* (pow l 2.0) (cos k_m))))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.0024) {
tmp = 2.0 / ((2.0 * pow(k_m, 2.0)) * (pow((t / cbrt(l)), 3.0) / l));
} else {
tmp = 2.0 / ((t * pow(k_m, 4.0)) / (pow(l, 2.0) * cos(k_m)));
}
return tmp;
}
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.0024) {
tmp = 2.0 / ((2.0 * Math.pow(k_m, 2.0)) * (Math.pow((t / Math.cbrt(l)), 3.0) / l));
} else {
tmp = 2.0 / ((t * Math.pow(k_m, 4.0)) / (Math.pow(l, 2.0) * Math.cos(k_m)));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 0.0024) tmp = Float64(2.0 / Float64(Float64(2.0 * (k_m ^ 2.0)) * Float64((Float64(t / cbrt(l)) ^ 3.0) / l))); else tmp = Float64(2.0 / Float64(Float64(t * (k_m ^ 4.0)) / Float64((l ^ 2.0) * cos(k_m)))); end return tmp end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 0.0024], N[(2.0 / N[(N[(2.0 * N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[Power[N[(t / N[Power[l, 1/3], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(t * N[Power[k$95$m, 4.0], $MachinePrecision]), $MachinePrecision] / N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 0.0024:\\
\;\;\;\;\frac{2}{\left(2 \cdot {k\_m}^{2}\right) \cdot \frac{{\left(\frac{t}{\sqrt[3]{\ell}}\right)}^{3}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{t \cdot {k\_m}^{4}}{{\ell}^{2} \cdot \cos k\_m}}\\
\end{array}
\end{array}
if k < 0.00239999999999999979Initial program 59.0%
Simplified66.1%
Taylor expanded in k around 0 64.7%
add-cube-cbrt64.6%
pow364.6%
cbrt-div64.6%
rem-cbrt-cube67.3%
Applied egg-rr67.3%
if 0.00239999999999999979 < k Initial program 45.3%
Simplified45.3%
Taylor expanded in t around 0 73.3%
associate-/l*70.5%
associate-/l*70.5%
Simplified70.5%
unpow270.5%
sin-mult70.6%
Applied egg-rr70.6%
div-sub70.6%
+-inverses70.6%
cos-070.6%
metadata-eval70.6%
count-270.6%
Simplified70.6%
Taylor expanded in k around inf 73.3%
Taylor expanded in k around 0 64.7%
Final simplification66.6%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (if (<= k_m 0.0053) (/ 2.0 (* (* 2.0 (pow k_m 2.0)) (/ (* (pow t 2.0) (/ t l)) l))) (/ 2.0 (/ (* t (pow k_m 4.0)) (* (pow l 2.0) (cos k_m))))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.0053) {
tmp = 2.0 / ((2.0 * pow(k_m, 2.0)) * ((pow(t, 2.0) * (t / l)) / l));
} else {
tmp = 2.0 / ((t * pow(k_m, 4.0)) / (pow(l, 2.0) * cos(k_m)));
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 0.0053d0) then
tmp = 2.0d0 / ((2.0d0 * (k_m ** 2.0d0)) * (((t ** 2.0d0) * (t / l)) / l))
else
tmp = 2.0d0 / ((t * (k_m ** 4.0d0)) / ((l ** 2.0d0) * cos(k_m)))
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.0053) {
tmp = 2.0 / ((2.0 * Math.pow(k_m, 2.0)) * ((Math.pow(t, 2.0) * (t / l)) / l));
} else {
tmp = 2.0 / ((t * Math.pow(k_m, 4.0)) / (Math.pow(l, 2.0) * Math.cos(k_m)));
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): tmp = 0 if k_m <= 0.0053: tmp = 2.0 / ((2.0 * math.pow(k_m, 2.0)) * ((math.pow(t, 2.0) * (t / l)) / l)) else: tmp = 2.0 / ((t * math.pow(k_m, 4.0)) / (math.pow(l, 2.0) * math.cos(k_m))) return tmp
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 0.0053) tmp = Float64(2.0 / Float64(Float64(2.0 * (k_m ^ 2.0)) * Float64(Float64((t ^ 2.0) * Float64(t / l)) / l))); else tmp = Float64(2.0 / Float64(Float64(t * (k_m ^ 4.0)) / Float64((l ^ 2.0) * cos(k_m)))); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) tmp = 0.0; if (k_m <= 0.0053) tmp = 2.0 / ((2.0 * (k_m ^ 2.0)) * (((t ^ 2.0) * (t / l)) / l)); else tmp = 2.0 / ((t * (k_m ^ 4.0)) / ((l ^ 2.0) * cos(k_m))); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 0.0053], N[(2.0 / N[(N[(2.0 * N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[(N[Power[t, 2.0], $MachinePrecision] * N[(t / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(t * N[Power[k$95$m, 4.0], $MachinePrecision]), $MachinePrecision] / N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 0.0053:\\
\;\;\;\;\frac{2}{\left(2 \cdot {k\_m}^{2}\right) \cdot \frac{{t}^{2} \cdot \frac{t}{\ell}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{t \cdot {k\_m}^{4}}{{\ell}^{2} \cdot \cos k\_m}}\\
\end{array}
\end{array}
if k < 0.00530000000000000002Initial program 59.0%
Simplified66.1%
Taylor expanded in k around 0 64.7%
unpow364.7%
*-un-lft-identity64.7%
times-frac66.3%
pow266.3%
Applied egg-rr66.3%
if 0.00530000000000000002 < k Initial program 45.3%
Simplified45.3%
Taylor expanded in t around 0 73.3%
associate-/l*70.5%
associate-/l*70.5%
Simplified70.5%
unpow270.5%
sin-mult70.6%
Applied egg-rr70.6%
div-sub70.6%
+-inverses70.6%
cos-070.6%
metadata-eval70.6%
count-270.6%
Simplified70.6%
Taylor expanded in k around inf 73.3%
Taylor expanded in k around 0 64.7%
Final simplification65.9%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (if (<= k_m 0.0013) (/ 2.0 (* (* 2.0 (pow k_m 2.0)) (/ (* (pow t 2.0) (/ t l)) l))) (/ 2.0 (* t (* (pow k_m 4.0) (pow l -2.0))))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.0013) {
tmp = 2.0 / ((2.0 * pow(k_m, 2.0)) * ((pow(t, 2.0) * (t / l)) / l));
} else {
tmp = 2.0 / (t * (pow(k_m, 4.0) * pow(l, -2.0)));
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 0.0013d0) then
tmp = 2.0d0 / ((2.0d0 * (k_m ** 2.0d0)) * (((t ** 2.0d0) * (t / l)) / l))
else
tmp = 2.0d0 / (t * ((k_m ** 4.0d0) * (l ** (-2.0d0))))
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.0013) {
tmp = 2.0 / ((2.0 * Math.pow(k_m, 2.0)) * ((Math.pow(t, 2.0) * (t / l)) / l));
} else {
tmp = 2.0 / (t * (Math.pow(k_m, 4.0) * Math.pow(l, -2.0)));
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): tmp = 0 if k_m <= 0.0013: tmp = 2.0 / ((2.0 * math.pow(k_m, 2.0)) * ((math.pow(t, 2.0) * (t / l)) / l)) else: tmp = 2.0 / (t * (math.pow(k_m, 4.0) * math.pow(l, -2.0))) return tmp
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 0.0013) tmp = Float64(2.0 / Float64(Float64(2.0 * (k_m ^ 2.0)) * Float64(Float64((t ^ 2.0) * Float64(t / l)) / l))); else tmp = Float64(2.0 / Float64(t * Float64((k_m ^ 4.0) * (l ^ -2.0)))); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) tmp = 0.0; if (k_m <= 0.0013) tmp = 2.0 / ((2.0 * (k_m ^ 2.0)) * (((t ^ 2.0) * (t / l)) / l)); else tmp = 2.0 / (t * ((k_m ^ 4.0) * (l ^ -2.0))); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 0.0013], N[(2.0 / N[(N[(2.0 * N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[(N[Power[t, 2.0], $MachinePrecision] * N[(t / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(t * N[(N[Power[k$95$m, 4.0], $MachinePrecision] * N[Power[l, -2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 0.0013:\\
\;\;\;\;\frac{2}{\left(2 \cdot {k\_m}^{2}\right) \cdot \frac{{t}^{2} \cdot \frac{t}{\ell}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{t \cdot \left({k\_m}^{4} \cdot {\ell}^{-2}\right)}\\
\end{array}
\end{array}
if k < 0.0012999999999999999Initial program 59.0%
Simplified66.1%
Taylor expanded in k around 0 64.7%
unpow364.7%
*-un-lft-identity64.7%
times-frac66.3%
pow266.3%
Applied egg-rr66.3%
if 0.0012999999999999999 < k Initial program 45.3%
Simplified45.3%
Taylor expanded in t around 0 73.3%
associate-/l*70.5%
associate-/l*70.5%
Simplified70.5%
Taylor expanded in k around 0 61.8%
associate-/l*61.6%
Simplified61.6%
pow161.6%
div-inv61.6%
pow-flip61.6%
metadata-eval61.6%
Applied egg-rr61.6%
unpow161.6%
associate-*r*61.8%
*-commutative61.8%
associate-*l*61.8%
Simplified61.8%
Final simplification65.1%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (if (<= k_m 0.0056) (* (* l 0.5) (* 2.0 (/ (/ l (pow t 3.0)) (pow k_m 2.0)))) (/ 2.0 (* t (* (pow k_m 4.0) (pow l -2.0))))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.0056) {
tmp = (l * 0.5) * (2.0 * ((l / pow(t, 3.0)) / pow(k_m, 2.0)));
} else {
tmp = 2.0 / (t * (pow(k_m, 4.0) * pow(l, -2.0)));
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 0.0056d0) then
tmp = (l * 0.5d0) * (2.0d0 * ((l / (t ** 3.0d0)) / (k_m ** 2.0d0)))
else
tmp = 2.0d0 / (t * ((k_m ** 4.0d0) * (l ** (-2.0d0))))
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 0.0056) {
tmp = (l * 0.5) * (2.0 * ((l / Math.pow(t, 3.0)) / Math.pow(k_m, 2.0)));
} else {
tmp = 2.0 / (t * (Math.pow(k_m, 4.0) * Math.pow(l, -2.0)));
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): tmp = 0 if k_m <= 0.0056: tmp = (l * 0.5) * (2.0 * ((l / math.pow(t, 3.0)) / math.pow(k_m, 2.0))) else: tmp = 2.0 / (t * (math.pow(k_m, 4.0) * math.pow(l, -2.0))) return tmp
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 0.0056) tmp = Float64(Float64(l * 0.5) * Float64(2.0 * Float64(Float64(l / (t ^ 3.0)) / (k_m ^ 2.0)))); else tmp = Float64(2.0 / Float64(t * Float64((k_m ^ 4.0) * (l ^ -2.0)))); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) tmp = 0.0; if (k_m <= 0.0056) tmp = (l * 0.5) * (2.0 * ((l / (t ^ 3.0)) / (k_m ^ 2.0))); else tmp = 2.0 / (t * ((k_m ^ 4.0) * (l ^ -2.0))); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 0.0056], N[(N[(l * 0.5), $MachinePrecision] * N[(2.0 * N[(N[(l / N[Power[t, 3.0], $MachinePrecision]), $MachinePrecision] / N[Power[k$95$m, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(t * N[(N[Power[k$95$m, 4.0], $MachinePrecision] * N[Power[l, -2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 0.0056:\\
\;\;\;\;\left(\ell \cdot 0.5\right) \cdot \left(2 \cdot \frac{\frac{\ell}{{t}^{3}}}{{k\_m}^{2}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{t \cdot \left({k\_m}^{4} \cdot {\ell}^{-2}\right)}\\
\end{array}
\end{array}
if k < 0.00559999999999999994Initial program 59.0%
Simplified56.0%
associate-*r*65.7%
*-un-lft-identity65.7%
times-frac64.6%
associate-*r*68.0%
Applied egg-rr68.0%
/-rgt-identity68.0%
*-commutative68.0%
associate-/r*68.0%
Simplified68.0%
Taylor expanded in k around 0 63.0%
*-commutative63.0%
associate-/r*63.8%
Simplified63.8%
Taylor expanded in k around 0 65.6%
*-commutative65.6%
Simplified65.6%
if 0.00559999999999999994 < k Initial program 45.3%
Simplified45.3%
Taylor expanded in t around 0 73.3%
associate-/l*70.5%
associate-/l*70.5%
Simplified70.5%
Taylor expanded in k around 0 61.8%
associate-/l*61.6%
Simplified61.6%
pow161.6%
div-inv61.6%
pow-flip61.6%
metadata-eval61.6%
Applied egg-rr61.6%
unpow161.6%
associate-*r*61.8%
*-commutative61.8%
associate-*l*61.8%
Simplified61.8%
Final simplification64.6%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (/ 2.0 (* (pow k_m 4.0) (/ t (* l l)))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
return 2.0 / (pow(k_m, 4.0) * (t / (l * l)));
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
code = 2.0d0 / ((k_m ** 4.0d0) * (t / (l * l)))
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
return 2.0 / (Math.pow(k_m, 4.0) * (t / (l * l)));
}
k_m = math.fabs(k) def code(t, l, k_m): return 2.0 / (math.pow(k_m, 4.0) * (t / (l * l)))
k_m = abs(k) function code(t, l, k_m) return Float64(2.0 / Float64((k_m ^ 4.0) * Float64(t / Float64(l * l)))) end
k_m = abs(k); function tmp = code(t, l, k_m) tmp = 2.0 / ((k_m ^ 4.0) * (t / (l * l))); end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := N[(2.0 / N[(N[Power[k$95$m, 4.0], $MachinePrecision] * N[(t / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
\frac{2}{{k\_m}^{4} \cdot \frac{t}{\ell \cdot \ell}}
\end{array}
Initial program 55.3%
Simplified55.4%
Taylor expanded in t around 0 61.7%
associate-/l*62.8%
associate-/l*63.2%
Simplified63.2%
Taylor expanded in k around 0 55.5%
associate-/l*56.5%
Simplified56.5%
unpow256.5%
Applied egg-rr56.5%
Final simplification56.5%
herbie shell --seed 2024072
(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))))