
(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 12 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (t l k) :precision binary64 (/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (- (+ 1.0 (pow (/ k t) 2.0)) 1.0))))
double code(double t, double l, double k) {
return 2.0 / ((((pow(t, 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + pow((k / t), 2.0)) - 1.0));
}
real(8) function code(t, l, k)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k
code = 2.0d0 / (((((t ** 3.0d0) / (l * l)) * sin(k)) * tan(k)) * ((1.0d0 + ((k / t) ** 2.0d0)) - 1.0d0))
end function
public static double code(double t, double l, double k) {
return 2.0 / ((((Math.pow(t, 3.0) / (l * l)) * Math.sin(k)) * Math.tan(k)) * ((1.0 + Math.pow((k / t), 2.0)) - 1.0));
}
def code(t, l, k): return 2.0 / ((((math.pow(t, 3.0) / (l * l)) * math.sin(k)) * math.tan(k)) * ((1.0 + math.pow((k / t), 2.0)) - 1.0))
function code(t, l, k) return Float64(2.0 / Float64(Float64(Float64(Float64((t ^ 3.0) / Float64(l * l)) * sin(k)) * tan(k)) * Float64(Float64(1.0 + (Float64(k / t) ^ 2.0)) - 1.0))) end
function tmp = code(t, l, k) tmp = 2.0 / (((((t ^ 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + ((k / t) ^ 2.0)) - 1.0)); end
code[t_, l_, k_] := N[(2.0 / N[(N[(N[(N[(N[Power[t, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[(1.0 + N[Power[N[(k / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] - 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) - 1\right)}
\end{array}
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 3e-24)
(* 2.0 (pow (* (/ k_m (/ l (sin k_m))) (sqrt (/ t_m (cos k_m)))) -2.0))
(*
2.0
(/ (/ (* (cos k_m) (pow (/ l k_m) 2.0)) (pow (sin k_m) 2.0)) t_m)))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 3e-24) {
tmp = 2.0 * pow(((k_m / (l / sin(k_m))) * sqrt((t_m / cos(k_m)))), -2.0);
} else {
tmp = 2.0 * (((cos(k_m) * pow((l / k_m), 2.0)) / pow(sin(k_m), 2.0)) / t_m);
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 3d-24) then
tmp = 2.0d0 * (((k_m / (l / sin(k_m))) * sqrt((t_m / cos(k_m)))) ** (-2.0d0))
else
tmp = 2.0d0 * (((cos(k_m) * ((l / k_m) ** 2.0d0)) / (sin(k_m) ** 2.0d0)) / t_m)
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 3e-24) {
tmp = 2.0 * Math.pow(((k_m / (l / Math.sin(k_m))) * Math.sqrt((t_m / Math.cos(k_m)))), -2.0);
} else {
tmp = 2.0 * (((Math.cos(k_m) * Math.pow((l / k_m), 2.0)) / Math.pow(Math.sin(k_m), 2.0)) / t_m);
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if k_m <= 3e-24: tmp = 2.0 * math.pow(((k_m / (l / math.sin(k_m))) * math.sqrt((t_m / math.cos(k_m)))), -2.0) else: tmp = 2.0 * (((math.cos(k_m) * math.pow((l / k_m), 2.0)) / math.pow(math.sin(k_m), 2.0)) / t_m) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (k_m <= 3e-24) tmp = Float64(2.0 * (Float64(Float64(k_m / Float64(l / sin(k_m))) * sqrt(Float64(t_m / cos(k_m)))) ^ -2.0)); else tmp = Float64(2.0 * Float64(Float64(Float64(cos(k_m) * (Float64(l / k_m) ^ 2.0)) / (sin(k_m) ^ 2.0)) / t_m)); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 3e-24) tmp = 2.0 * (((k_m / (l / sin(k_m))) * sqrt((t_m / cos(k_m)))) ^ -2.0); else tmp = 2.0 * (((cos(k_m) * ((l / k_m) ^ 2.0)) / (sin(k_m) ^ 2.0)) / t_m); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[k$95$m, 3e-24], N[(2.0 * N[Power[N[(N[(k$95$m / N[(l / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(t$95$m / N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision], N[(2.0 * N[(N[(N[(N[Cos[k$95$m], $MachinePrecision] * N[Power[N[(l / k$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k_m \leq 3 \cdot 10^{-24}:\\
\;\;\;\;2 \cdot {\left(\frac{k_m}{\frac{\ell}{\sin k_m}} \cdot \sqrt{\frac{t_m}{\cos k_m}}\right)}^{-2}\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \frac{\frac{\cos k_m \cdot {\left(\frac{\ell}{k_m}\right)}^{2}}{{\sin k_m}^{2}}}{t_m}\\
\end{array}
\end{array}
if k < 2.99999999999999995e-24Initial program 34.1%
associate-*l*34.1%
associate--l+34.1%
Simplified34.1%
expm1-log1p-u26.8%
expm1-udef15.1%
Applied egg-rr20.2%
expm1-def22.2%
expm1-log1p22.3%
Simplified22.3%
Taylor expanded in k around inf 40.6%
associate-*l/40.6%
Simplified40.6%
expm1-log1p-u40.2%
expm1-udef35.1%
div-inv35.1%
pow-flip35.1%
associate-/l*35.1%
metadata-eval35.1%
Applied egg-rr35.1%
expm1-def40.6%
expm1-log1p40.9%
associate-/r/40.9%
associate-/l*41.5%
Simplified41.5%
if 2.99999999999999995e-24 < k Initial program 31.9%
associate-*l*31.9%
associate-/r*31.9%
sub-neg31.9%
distribute-rgt-in31.9%
unpow231.9%
times-frac28.0%
sqr-neg28.0%
times-frac31.9%
unpow231.9%
distribute-rgt-in31.9%
+-commutative31.9%
associate-+l+37.8%
Simplified37.8%
Taylor expanded in t around 0 74.9%
times-frac76.1%
Simplified76.1%
expm1-log1p-u70.5%
expm1-udef62.5%
div-inv62.5%
pow-flip62.5%
metadata-eval62.5%
Applied egg-rr62.5%
expm1-def70.5%
expm1-log1p76.1%
associate-*r/76.2%
*-commutative76.2%
associate-/r*76.2%
associate-*l*76.2%
Simplified76.2%
expm1-log1p-u69.3%
expm1-udef58.8%
Applied egg-rr66.0%
expm1-def82.3%
expm1-log1p94.7%
*-commutative94.7%
Simplified94.7%
Final simplification57.3%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= (* l l) 2e+175)
(/ 2.0 (pow (* (/ (pow k_m 2.0) l) (sqrt t_m)) 2.0))
(* 2.0 (/ (pow (/ (* (/ l k_m) (sqrt (cos k_m))) (sin k_m)) 2.0) t_m)))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if ((l * l) <= 2e+175) {
tmp = 2.0 / pow(((pow(k_m, 2.0) / l) * sqrt(t_m)), 2.0);
} else {
tmp = 2.0 * (pow((((l / k_m) * sqrt(cos(k_m))) / sin(k_m)), 2.0) / t_m);
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if ((l * l) <= 2d+175) then
tmp = 2.0d0 / ((((k_m ** 2.0d0) / l) * sqrt(t_m)) ** 2.0d0)
else
tmp = 2.0d0 * (((((l / k_m) * sqrt(cos(k_m))) / sin(k_m)) ** 2.0d0) / t_m)
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if ((l * l) <= 2e+175) {
tmp = 2.0 / Math.pow(((Math.pow(k_m, 2.0) / l) * Math.sqrt(t_m)), 2.0);
} else {
tmp = 2.0 * (Math.pow((((l / k_m) * Math.sqrt(Math.cos(k_m))) / Math.sin(k_m)), 2.0) / t_m);
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if (l * l) <= 2e+175: tmp = 2.0 / math.pow(((math.pow(k_m, 2.0) / l) * math.sqrt(t_m)), 2.0) else: tmp = 2.0 * (math.pow((((l / k_m) * math.sqrt(math.cos(k_m))) / math.sin(k_m)), 2.0) / t_m) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (Float64(l * l) <= 2e+175) tmp = Float64(2.0 / (Float64(Float64((k_m ^ 2.0) / l) * sqrt(t_m)) ^ 2.0)); else tmp = Float64(2.0 * Float64((Float64(Float64(Float64(l / k_m) * sqrt(cos(k_m))) / sin(k_m)) ^ 2.0) / t_m)); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if ((l * l) <= 2e+175) tmp = 2.0 / ((((k_m ^ 2.0) / l) * sqrt(t_m)) ^ 2.0); else tmp = 2.0 * (((((l / k_m) * sqrt(cos(k_m))) / sin(k_m)) ^ 2.0) / t_m); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[N[(l * l), $MachinePrecision], 2e+175], 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[(2.0 * N[(N[Power[N[(N[(N[(l / k$95$m), $MachinePrecision] * N[Sqrt[N[Cos[k$95$m], $MachinePrecision]], $MachinePrecision]), $MachinePrecision] / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \cdot \ell \leq 2 \cdot 10^{+175}:\\
\;\;\;\;\frac{2}{{\left(\frac{{k_m}^{2}}{\ell} \cdot \sqrt{t_m}\right)}^{2}}\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \frac{{\left(\frac{\frac{\ell}{k_m} \cdot \sqrt{\cos k_m}}{\sin k_m}\right)}^{2}}{t_m}\\
\end{array}
\end{array}
if (*.f64 l l) < 1.9999999999999999e175Initial program 36.1%
associate-*l*36.1%
associate--l+36.1%
Simplified36.1%
expm1-log1p-u23.7%
expm1-udef20.0%
Applied egg-rr22.6%
expm1-def23.1%
expm1-log1p23.2%
Simplified23.2%
Taylor expanded in k around 0 36.2%
if 1.9999999999999999e175 < (*.f64 l l) Initial program 28.2%
associate-*l*28.2%
associate-/r*28.2%
sub-neg28.2%
distribute-rgt-in24.8%
unpow224.8%
times-frac16.7%
sqr-neg16.7%
times-frac24.8%
unpow224.8%
distribute-rgt-in28.2%
+-commutative28.2%
associate-+l+28.3%
Simplified28.3%
Taylor expanded in t around 0 61.7%
times-frac65.1%
Simplified65.1%
expm1-log1p-u27.5%
expm1-udef24.3%
div-inv24.3%
pow-flip25.4%
metadata-eval25.4%
Applied egg-rr25.4%
expm1-def28.7%
expm1-log1p66.3%
associate-*r/66.3%
*-commutative66.3%
associate-/r*65.3%
associate-*l*65.3%
Simplified65.3%
add-sqr-sqrt52.3%
pow252.3%
Applied egg-rr67.8%
Final simplification46.9%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= (* l l) 5e+147)
(/ 2.0 (pow (* (/ (pow k_m 2.0) l) (sqrt t_m)) 2.0))
(* 2.0 (pow (* (/ k_m (/ l (sin k_m))) (sqrt (/ t_m (cos 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 ((l * l) <= 5e+147) {
tmp = 2.0 / pow(((pow(k_m, 2.0) / l) * sqrt(t_m)), 2.0);
} else {
tmp = 2.0 * pow(((k_m / (l / sin(k_m))) * sqrt((t_m / cos(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 ((l * l) <= 5d+147) then
tmp = 2.0d0 / ((((k_m ** 2.0d0) / l) * sqrt(t_m)) ** 2.0d0)
else
tmp = 2.0d0 * (((k_m / (l / sin(k_m))) * sqrt((t_m / cos(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 ((l * l) <= 5e+147) {
tmp = 2.0 / Math.pow(((Math.pow(k_m, 2.0) / l) * Math.sqrt(t_m)), 2.0);
} else {
tmp = 2.0 * Math.pow(((k_m / (l / Math.sin(k_m))) * Math.sqrt((t_m / Math.cos(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 (l * l) <= 5e+147: tmp = 2.0 / math.pow(((math.pow(k_m, 2.0) / l) * math.sqrt(t_m)), 2.0) else: tmp = 2.0 * math.pow(((k_m / (l / math.sin(k_m))) * math.sqrt((t_m / math.cos(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 (Float64(l * l) <= 5e+147) tmp = Float64(2.0 / (Float64(Float64((k_m ^ 2.0) / l) * sqrt(t_m)) ^ 2.0)); else tmp = Float64(2.0 * (Float64(Float64(k_m / Float64(l / sin(k_m))) * sqrt(Float64(t_m / cos(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 ((l * l) <= 5e+147) tmp = 2.0 / ((((k_m ^ 2.0) / l) * sqrt(t_m)) ^ 2.0); else tmp = 2.0 * (((k_m / (l / sin(k_m))) * sqrt((t_m / cos(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[N[(l * l), $MachinePrecision], 5e+147], 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[(2.0 * N[Power[N[(N[(k$95$m / N[(l / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(t$95$m / N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \cdot \ell \leq 5 \cdot 10^{+147}:\\
\;\;\;\;\frac{2}{{\left(\frac{{k_m}^{2}}{\ell} \cdot \sqrt{t_m}\right)}^{2}}\\
\mathbf{else}:\\
\;\;\;\;2 \cdot {\left(\frac{k_m}{\frac{\ell}{\sin k_m}} \cdot \sqrt{\frac{t_m}{\cos k_m}}\right)}^{-2}\\
\end{array}
\end{array}
if (*.f64 l l) < 5.0000000000000002e147Initial program 35.6%
associate-*l*35.6%
associate--l+35.6%
Simplified35.6%
expm1-log1p-u23.5%
expm1-udef19.8%
Applied egg-rr22.4%
expm1-def22.9%
expm1-log1p23.0%
Simplified23.0%
Taylor expanded in k around 0 36.2%
if 5.0000000000000002e147 < (*.f64 l l) Initial program 29.5%
associate-*l*29.5%
associate--l+29.5%
Simplified29.5%
expm1-log1p-u27.2%
expm1-udef9.4%
Applied egg-rr16.8%
expm1-def19.9%
expm1-log1p20.0%
Simplified20.0%
Taylor expanded in k around inf 46.3%
associate-*l/46.3%
Simplified46.3%
expm1-log1p-u45.1%
expm1-udef37.8%
div-inv37.8%
pow-flip37.8%
associate-/l*36.8%
metadata-eval36.8%
Applied egg-rr36.8%
expm1-def44.2%
expm1-log1p45.3%
associate-/r/46.3%
associate-/l*46.3%
Simplified46.3%
Final simplification39.7%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 1.4e-24)
(* 2.0 (pow (* (/ k_m (/ l (sin k_m))) (sqrt (/ t_m (cos k_m)))) -2.0))
(*
2.0
(/ (* (* (cos k_m) (pow (/ l k_m) 2.0)) (pow (sin k_m) -2.0)) t_m)))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 1.4e-24) {
tmp = 2.0 * pow(((k_m / (l / sin(k_m))) * sqrt((t_m / cos(k_m)))), -2.0);
} else {
tmp = 2.0 * (((cos(k_m) * pow((l / k_m), 2.0)) * pow(sin(k_m), -2.0)) / t_m);
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 1.4d-24) then
tmp = 2.0d0 * (((k_m / (l / sin(k_m))) * sqrt((t_m / cos(k_m)))) ** (-2.0d0))
else
tmp = 2.0d0 * (((cos(k_m) * ((l / k_m) ** 2.0d0)) * (sin(k_m) ** (-2.0d0))) / t_m)
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 1.4e-24) {
tmp = 2.0 * Math.pow(((k_m / (l / Math.sin(k_m))) * Math.sqrt((t_m / Math.cos(k_m)))), -2.0);
} else {
tmp = 2.0 * (((Math.cos(k_m) * Math.pow((l / k_m), 2.0)) * Math.pow(Math.sin(k_m), -2.0)) / t_m);
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if k_m <= 1.4e-24: tmp = 2.0 * math.pow(((k_m / (l / math.sin(k_m))) * math.sqrt((t_m / math.cos(k_m)))), -2.0) else: tmp = 2.0 * (((math.cos(k_m) * math.pow((l / k_m), 2.0)) * math.pow(math.sin(k_m), -2.0)) / t_m) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (k_m <= 1.4e-24) tmp = Float64(2.0 * (Float64(Float64(k_m / Float64(l / sin(k_m))) * sqrt(Float64(t_m / cos(k_m)))) ^ -2.0)); else tmp = Float64(2.0 * Float64(Float64(Float64(cos(k_m) * (Float64(l / k_m) ^ 2.0)) * (sin(k_m) ^ -2.0)) / t_m)); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 1.4e-24) tmp = 2.0 * (((k_m / (l / sin(k_m))) * sqrt((t_m / cos(k_m)))) ^ -2.0); else tmp = 2.0 * (((cos(k_m) * ((l / k_m) ^ 2.0)) * (sin(k_m) ^ -2.0)) / t_m); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[k$95$m, 1.4e-24], N[(2.0 * N[Power[N[(N[(k$95$m / N[(l / N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sqrt[N[(t$95$m / N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]], $MachinePrecision]), $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision], N[(2.0 * N[(N[(N[(N[Cos[k$95$m], $MachinePrecision] * N[Power[N[(l / k$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] * N[Power[N[Sin[k$95$m], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k_m \leq 1.4 \cdot 10^{-24}:\\
\;\;\;\;2 \cdot {\left(\frac{k_m}{\frac{\ell}{\sin k_m}} \cdot \sqrt{\frac{t_m}{\cos k_m}}\right)}^{-2}\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \frac{\left(\cos k_m \cdot {\left(\frac{\ell}{k_m}\right)}^{2}\right) \cdot {\sin k_m}^{-2}}{t_m}\\
\end{array}
\end{array}
if k < 1.4000000000000001e-24Initial program 34.1%
associate-*l*34.1%
associate--l+34.1%
Simplified34.1%
expm1-log1p-u26.8%
expm1-udef15.1%
Applied egg-rr20.2%
expm1-def22.2%
expm1-log1p22.3%
Simplified22.3%
Taylor expanded in k around inf 40.6%
associate-*l/40.6%
Simplified40.6%
expm1-log1p-u40.2%
expm1-udef35.1%
div-inv35.1%
pow-flip35.1%
associate-/l*35.1%
metadata-eval35.1%
Applied egg-rr35.1%
expm1-def40.6%
expm1-log1p40.9%
associate-/r/40.9%
associate-/l*41.5%
Simplified41.5%
if 1.4000000000000001e-24 < k Initial program 31.9%
associate-*l*31.9%
associate-/r*31.9%
sub-neg31.9%
distribute-rgt-in31.9%
unpow231.9%
times-frac28.0%
sqr-neg28.0%
times-frac31.9%
unpow231.9%
distribute-rgt-in31.9%
+-commutative31.9%
associate-+l+37.8%
Simplified37.8%
Taylor expanded in t around 0 74.9%
times-frac76.1%
Simplified76.1%
expm1-log1p-u70.5%
expm1-udef62.5%
div-inv62.5%
pow-flip62.5%
metadata-eval62.5%
Applied egg-rr62.5%
expm1-def70.5%
expm1-log1p76.1%
associate-*r/76.2%
*-commutative76.2%
associate-/r*76.2%
associate-*l*76.2%
Simplified76.2%
div-inv76.1%
metadata-eval76.1%
pow-flip76.2%
associate-*r*76.2%
div-inv76.1%
add-sqr-sqrt76.1%
pow276.1%
sqrt-div76.1%
unpow276.1%
sqrt-prod50.1%
add-sqr-sqrt84.7%
unpow284.7%
sqrt-prod94.5%
add-sqr-sqrt94.6%
pow-flip94.6%
metadata-eval94.6%
Applied egg-rr94.6%
Final simplification57.2%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= t_m 5.5e-93)
(* 2.0 (/ (/ (pow (/ l k_m) 2.0) (pow (sin k_m) 2.0)) t_m))
(if (<= t_m 7.2e+74)
(/
2.0
(*
(/ (/ k_m t_m) (/ t_m k_m))
(* (* (sin k_m) (tan k_m)) (* (/ (pow t_m 2.0) l) (/ t_m l)))))
(/ 2.0 (pow (/ (* (pow k_m 2.0) (sqrt t_m)) l) 2.0))))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (t_m <= 5.5e-93) {
tmp = 2.0 * ((pow((l / k_m), 2.0) / pow(sin(k_m), 2.0)) / t_m);
} else if (t_m <= 7.2e+74) {
tmp = 2.0 / (((k_m / t_m) / (t_m / k_m)) * ((sin(k_m) * tan(k_m)) * ((pow(t_m, 2.0) / l) * (t_m / l))));
} else {
tmp = 2.0 / pow(((pow(k_m, 2.0) * sqrt(t_m)) / l), 2.0);
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (t_m <= 5.5d-93) then
tmp = 2.0d0 * ((((l / k_m) ** 2.0d0) / (sin(k_m) ** 2.0d0)) / t_m)
else if (t_m <= 7.2d+74) then
tmp = 2.0d0 / (((k_m / t_m) / (t_m / k_m)) * ((sin(k_m) * tan(k_m)) * (((t_m ** 2.0d0) / l) * (t_m / l))))
else
tmp = 2.0d0 / ((((k_m ** 2.0d0) * sqrt(t_m)) / l) ** 2.0d0)
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (t_m <= 5.5e-93) {
tmp = 2.0 * ((Math.pow((l / k_m), 2.0) / Math.pow(Math.sin(k_m), 2.0)) / t_m);
} else if (t_m <= 7.2e+74) {
tmp = 2.0 / (((k_m / t_m) / (t_m / k_m)) * ((Math.sin(k_m) * Math.tan(k_m)) * ((Math.pow(t_m, 2.0) / l) * (t_m / l))));
} else {
tmp = 2.0 / Math.pow(((Math.pow(k_m, 2.0) * Math.sqrt(t_m)) / l), 2.0);
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if t_m <= 5.5e-93: tmp = 2.0 * ((math.pow((l / k_m), 2.0) / math.pow(math.sin(k_m), 2.0)) / t_m) elif t_m <= 7.2e+74: tmp = 2.0 / (((k_m / t_m) / (t_m / k_m)) * ((math.sin(k_m) * math.tan(k_m)) * ((math.pow(t_m, 2.0) / l) * (t_m / l)))) else: tmp = 2.0 / math.pow(((math.pow(k_m, 2.0) * math.sqrt(t_m)) / l), 2.0) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (t_m <= 5.5e-93) tmp = Float64(2.0 * Float64(Float64((Float64(l / k_m) ^ 2.0) / (sin(k_m) ^ 2.0)) / t_m)); elseif (t_m <= 7.2e+74) tmp = Float64(2.0 / Float64(Float64(Float64(k_m / t_m) / Float64(t_m / k_m)) * Float64(Float64(sin(k_m) * tan(k_m)) * Float64(Float64((t_m ^ 2.0) / l) * Float64(t_m / l))))); else tmp = Float64(2.0 / (Float64(Float64((k_m ^ 2.0) * sqrt(t_m)) / l) ^ 2.0)); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (t_m <= 5.5e-93) tmp = 2.0 * ((((l / k_m) ^ 2.0) / (sin(k_m) ^ 2.0)) / t_m); elseif (t_m <= 7.2e+74) tmp = 2.0 / (((k_m / t_m) / (t_m / k_m)) * ((sin(k_m) * tan(k_m)) * (((t_m ^ 2.0) / l) * (t_m / l)))); else tmp = 2.0 / ((((k_m ^ 2.0) * sqrt(t_m)) / l) ^ 2.0); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[t$95$m, 5.5e-93], N[(2.0 * N[(N[(N[Power[N[(l / k$95$m), $MachinePrecision], 2.0], $MachinePrecision] / N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 7.2e+74], N[(2.0 / N[(N[(N[(k$95$m / t$95$m), $MachinePrecision] / N[(t$95$m / k$95$m), $MachinePrecision]), $MachinePrecision] * N[(N[(N[Sin[k$95$m], $MachinePrecision] * N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision] * N[(N[(N[Power[t$95$m, 2.0], $MachinePrecision] / l), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[Power[N[(N[(N[Power[k$95$m, 2.0], $MachinePrecision] * N[Sqrt[t$95$m], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 5.5 \cdot 10^{-93}:\\
\;\;\;\;2 \cdot \frac{\frac{{\left(\frac{\ell}{k_m}\right)}^{2}}{{\sin k_m}^{2}}}{t_m}\\
\mathbf{elif}\;t_m \leq 7.2 \cdot 10^{+74}:\\
\;\;\;\;\frac{2}{\frac{\frac{k_m}{t_m}}{\frac{t_m}{k_m}} \cdot \left(\left(\sin k_m \cdot \tan k_m\right) \cdot \left(\frac{{t_m}^{2}}{\ell} \cdot \frac{t_m}{\ell}\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{{\left(\frac{{k_m}^{2} \cdot \sqrt{t_m}}{\ell}\right)}^{2}}\\
\end{array}
\end{array}
if t < 5.49999999999999968e-93Initial program 28.4%
associate-*l*28.4%
associate-/r*28.4%
sub-neg28.4%
distribute-rgt-in25.1%
unpow225.1%
times-frac14.0%
sqr-neg14.0%
times-frac25.1%
unpow225.1%
distribute-rgt-in28.4%
+-commutative28.4%
associate-+l+37.3%
Simplified37.3%
Taylor expanded in t around 0 75.9%
times-frac76.5%
Simplified76.5%
expm1-log1p-u48.5%
expm1-udef43.8%
div-inv43.8%
pow-flip44.4%
metadata-eval44.4%
Applied egg-rr44.4%
expm1-def49.1%
expm1-log1p76.6%
associate-*r/76.6%
*-commutative76.6%
associate-/r*77.2%
associate-*l*77.2%
Simplified77.2%
Taylor expanded in k around 0 64.3%
unpow264.3%
unpow264.3%
times-frac70.0%
unpow270.0%
Simplified70.0%
if 5.49999999999999968e-93 < t < 7.19999999999999975e74Initial program 77.5%
associate-*l*77.5%
associate--l+77.5%
Simplified77.5%
associate-+r-77.5%
add-exp-log76.0%
log1p-udef76.0%
expm1-udef77.8%
expm1-log1p-u79.3%
unpow279.3%
clear-num79.3%
un-div-inv79.4%
Applied egg-rr79.4%
unpow379.2%
times-frac85.4%
pow285.4%
Applied egg-rr85.4%
if 7.19999999999999975e74 < t Initial program 22.9%
associate-*l*22.9%
associate--l+22.9%
Simplified22.9%
expm1-log1p-u13.9%
expm1-udef13.9%
Applied egg-rr47.5%
expm1-def51.5%
expm1-log1p51.7%
Simplified51.7%
Taylor expanded in k around inf 67.2%
associate-*l/67.2%
Simplified67.2%
Taylor expanded in k around 0 83.6%
Final simplification74.2%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= t_m 7.5e-93)
(* 2.0 (/ (/ (pow (/ l k_m) 2.0) (pow (sin k_m) 2.0)) t_m))
(if (<= t_m 7e+74)
(/
2.0
(*
(* (* (/ (pow t_m 3.0) l) (/ 1.0 l)) (* (sin k_m) (tan k_m)))
(/ (/ k_m t_m) (/ t_m k_m))))
(/ 2.0 (pow (/ (* (pow k_m 2.0) (sqrt t_m)) l) 2.0))))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (t_m <= 7.5e-93) {
tmp = 2.0 * ((pow((l / k_m), 2.0) / pow(sin(k_m), 2.0)) / t_m);
} else if (t_m <= 7e+74) {
tmp = 2.0 / ((((pow(t_m, 3.0) / l) * (1.0 / l)) * (sin(k_m) * tan(k_m))) * ((k_m / t_m) / (t_m / k_m)));
} else {
tmp = 2.0 / pow(((pow(k_m, 2.0) * sqrt(t_m)) / l), 2.0);
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (t_m <= 7.5d-93) then
tmp = 2.0d0 * ((((l / k_m) ** 2.0d0) / (sin(k_m) ** 2.0d0)) / t_m)
else if (t_m <= 7d+74) then
tmp = 2.0d0 / (((((t_m ** 3.0d0) / l) * (1.0d0 / l)) * (sin(k_m) * tan(k_m))) * ((k_m / t_m) / (t_m / k_m)))
else
tmp = 2.0d0 / ((((k_m ** 2.0d0) * sqrt(t_m)) / l) ** 2.0d0)
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (t_m <= 7.5e-93) {
tmp = 2.0 * ((Math.pow((l / k_m), 2.0) / Math.pow(Math.sin(k_m), 2.0)) / t_m);
} else if (t_m <= 7e+74) {
tmp = 2.0 / ((((Math.pow(t_m, 3.0) / l) * (1.0 / l)) * (Math.sin(k_m) * Math.tan(k_m))) * ((k_m / t_m) / (t_m / k_m)));
} else {
tmp = 2.0 / Math.pow(((Math.pow(k_m, 2.0) * Math.sqrt(t_m)) / l), 2.0);
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if t_m <= 7.5e-93: tmp = 2.0 * ((math.pow((l / k_m), 2.0) / math.pow(math.sin(k_m), 2.0)) / t_m) elif t_m <= 7e+74: tmp = 2.0 / ((((math.pow(t_m, 3.0) / l) * (1.0 / l)) * (math.sin(k_m) * math.tan(k_m))) * ((k_m / t_m) / (t_m / k_m))) else: tmp = 2.0 / math.pow(((math.pow(k_m, 2.0) * math.sqrt(t_m)) / l), 2.0) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (t_m <= 7.5e-93) tmp = Float64(2.0 * Float64(Float64((Float64(l / k_m) ^ 2.0) / (sin(k_m) ^ 2.0)) / t_m)); elseif (t_m <= 7e+74) tmp = Float64(2.0 / Float64(Float64(Float64(Float64((t_m ^ 3.0) / l) * Float64(1.0 / l)) * Float64(sin(k_m) * tan(k_m))) * Float64(Float64(k_m / t_m) / Float64(t_m / k_m)))); else tmp = Float64(2.0 / (Float64(Float64((k_m ^ 2.0) * sqrt(t_m)) / l) ^ 2.0)); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (t_m <= 7.5e-93) tmp = 2.0 * ((((l / k_m) ^ 2.0) / (sin(k_m) ^ 2.0)) / t_m); elseif (t_m <= 7e+74) tmp = 2.0 / (((((t_m ^ 3.0) / l) * (1.0 / l)) * (sin(k_m) * tan(k_m))) * ((k_m / t_m) / (t_m / k_m))); else tmp = 2.0 / ((((k_m ^ 2.0) * sqrt(t_m)) / l) ^ 2.0); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[t$95$m, 7.5e-93], N[(2.0 * N[(N[(N[Power[N[(l / k$95$m), $MachinePrecision], 2.0], $MachinePrecision] / N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 7e+74], N[(2.0 / N[(N[(N[(N[(N[Power[t$95$m, 3.0], $MachinePrecision] / l), $MachinePrecision] * N[(1.0 / l), $MachinePrecision]), $MachinePrecision] * N[(N[Sin[k$95$m], $MachinePrecision] * N[Tan[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(k$95$m / t$95$m), $MachinePrecision] / N[(t$95$m / k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[Power[N[(N[(N[Power[k$95$m, 2.0], $MachinePrecision] * N[Sqrt[t$95$m], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;t_m \leq 7.5 \cdot 10^{-93}:\\
\;\;\;\;2 \cdot \frac{\frac{{\left(\frac{\ell}{k_m}\right)}^{2}}{{\sin k_m}^{2}}}{t_m}\\
\mathbf{elif}\;t_m \leq 7 \cdot 10^{+74}:\\
\;\;\;\;\frac{2}{\left(\left(\frac{{t_m}^{3}}{\ell} \cdot \frac{1}{\ell}\right) \cdot \left(\sin k_m \cdot \tan k_m\right)\right) \cdot \frac{\frac{k_m}{t_m}}{\frac{t_m}{k_m}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{{\left(\frac{{k_m}^{2} \cdot \sqrt{t_m}}{\ell}\right)}^{2}}\\
\end{array}
\end{array}
if t < 7.50000000000000034e-93Initial program 28.4%
associate-*l*28.4%
associate-/r*28.4%
sub-neg28.4%
distribute-rgt-in25.1%
unpow225.1%
times-frac14.0%
sqr-neg14.0%
times-frac25.1%
unpow225.1%
distribute-rgt-in28.4%
+-commutative28.4%
associate-+l+37.3%
Simplified37.3%
Taylor expanded in t around 0 75.9%
times-frac76.5%
Simplified76.5%
expm1-log1p-u48.5%
expm1-udef43.8%
div-inv43.8%
pow-flip44.4%
metadata-eval44.4%
Applied egg-rr44.4%
expm1-def49.1%
expm1-log1p76.6%
associate-*r/76.6%
*-commutative76.6%
associate-/r*77.2%
associate-*l*77.2%
Simplified77.2%
Taylor expanded in k around 0 64.3%
unpow264.3%
unpow264.3%
times-frac70.0%
unpow270.0%
Simplified70.0%
if 7.50000000000000034e-93 < t < 7.00000000000000029e74Initial program 77.5%
associate-*l*77.5%
associate--l+77.5%
Simplified77.5%
associate-+r-77.5%
add-exp-log76.0%
log1p-udef76.0%
expm1-udef77.8%
expm1-log1p-u79.3%
unpow279.3%
clear-num79.3%
un-div-inv79.4%
Applied egg-rr79.4%
associate-/r*85.5%
div-inv85.6%
Applied egg-rr85.6%
if 7.00000000000000029e74 < t Initial program 22.9%
associate-*l*22.9%
associate--l+22.9%
Simplified22.9%
expm1-log1p-u13.9%
expm1-udef13.9%
Applied egg-rr47.5%
expm1-def51.5%
expm1-log1p51.7%
Simplified51.7%
Taylor expanded in k around inf 67.2%
associate-*l/67.2%
Simplified67.2%
Taylor expanded in k around 0 83.6%
Final simplification74.3%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= (* l l) 1e+204)
(/ 2.0 (pow (* (/ (pow k_m 2.0) l) (sqrt t_m)) 2.0))
(* 2.0 (/ (/ (pow (/ l k_m) 2.0) (pow (sin k_m) 2.0)) t_m)))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if ((l * l) <= 1e+204) {
tmp = 2.0 / pow(((pow(k_m, 2.0) / l) * sqrt(t_m)), 2.0);
} else {
tmp = 2.0 * ((pow((l / k_m), 2.0) / pow(sin(k_m), 2.0)) / t_m);
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if ((l * l) <= 1d+204) then
tmp = 2.0d0 / ((((k_m ** 2.0d0) / l) * sqrt(t_m)) ** 2.0d0)
else
tmp = 2.0d0 * ((((l / k_m) ** 2.0d0) / (sin(k_m) ** 2.0d0)) / t_m)
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if ((l * l) <= 1e+204) {
tmp = 2.0 / Math.pow(((Math.pow(k_m, 2.0) / l) * Math.sqrt(t_m)), 2.0);
} else {
tmp = 2.0 * ((Math.pow((l / k_m), 2.0) / Math.pow(Math.sin(k_m), 2.0)) / t_m);
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if (l * l) <= 1e+204: tmp = 2.0 / math.pow(((math.pow(k_m, 2.0) / l) * math.sqrt(t_m)), 2.0) else: tmp = 2.0 * ((math.pow((l / k_m), 2.0) / math.pow(math.sin(k_m), 2.0)) / t_m) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (Float64(l * l) <= 1e+204) tmp = Float64(2.0 / (Float64(Float64((k_m ^ 2.0) / l) * sqrt(t_m)) ^ 2.0)); else tmp = Float64(2.0 * Float64(Float64((Float64(l / k_m) ^ 2.0) / (sin(k_m) ^ 2.0)) / t_m)); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if ((l * l) <= 1e+204) tmp = 2.0 / ((((k_m ^ 2.0) / l) * sqrt(t_m)) ^ 2.0); else tmp = 2.0 * ((((l / k_m) ^ 2.0) / (sin(k_m) ^ 2.0)) / t_m); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[N[(l * l), $MachinePrecision], 1e+204], 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[(2.0 * N[(N[(N[Power[N[(l / k$95$m), $MachinePrecision], 2.0], $MachinePrecision] / N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \cdot \ell \leq 10^{+204}:\\
\;\;\;\;\frac{2}{{\left(\frac{{k_m}^{2}}{\ell} \cdot \sqrt{t_m}\right)}^{2}}\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \frac{\frac{{\left(\frac{\ell}{k_m}\right)}^{2}}{{\sin k_m}^{2}}}{t_m}\\
\end{array}
\end{array}
if (*.f64 l l) < 9.99999999999999989e203Initial program 36.1%
associate-*l*36.1%
associate--l+36.1%
Simplified36.1%
expm1-log1p-u23.9%
expm1-udef20.3%
Applied egg-rr22.8%
expm1-def23.9%
expm1-log1p24.0%
Simplified24.0%
Taylor expanded in k around 0 36.7%
if 9.99999999999999989e203 < (*.f64 l l) Initial program 27.9%
associate-*l*27.9%
associate-/r*27.9%
sub-neg27.9%
distribute-rgt-in24.3%
unpow224.3%
times-frac16.0%
sqr-neg16.0%
times-frac24.3%
unpow224.3%
distribute-rgt-in27.9%
+-commutative27.9%
associate-+l+28.0%
Simplified28.0%
Taylor expanded in t around 0 61.5%
times-frac63.9%
Simplified63.9%
expm1-log1p-u25.1%
expm1-udef22.8%
div-inv22.8%
pow-flip24.0%
metadata-eval24.0%
Applied egg-rr24.0%
expm1-def26.3%
expm1-log1p65.1%
associate-*r/65.1%
*-commutative65.1%
associate-/r*65.1%
associate-*l*65.1%
Simplified65.1%
Taylor expanded in k around 0 49.0%
unpow249.0%
unpow249.0%
times-frac55.7%
unpow255.7%
Simplified55.7%
Final simplification42.9%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= l 5.4e-101)
(/ 2.0 (pow (* (/ (pow k_m 2.0) l) (sqrt t_m)) 2.0))
(*
2.0
(*
(pow (/ l k_m) 2.0)
(/ (+ (pow k_m -2.0) -0.16666666666666666) t_m))))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (l <= 5.4e-101) {
tmp = 2.0 / pow(((pow(k_m, 2.0) / l) * sqrt(t_m)), 2.0);
} else {
tmp = 2.0 * (pow((l / k_m), 2.0) * ((pow(k_m, -2.0) + -0.16666666666666666) / t_m));
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (l <= 5.4d-101) then
tmp = 2.0d0 / ((((k_m ** 2.0d0) / l) * sqrt(t_m)) ** 2.0d0)
else
tmp = 2.0d0 * (((l / k_m) ** 2.0d0) * (((k_m ** (-2.0d0)) + (-0.16666666666666666d0)) / t_m))
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (l <= 5.4e-101) {
tmp = 2.0 / Math.pow(((Math.pow(k_m, 2.0) / l) * Math.sqrt(t_m)), 2.0);
} else {
tmp = 2.0 * (Math.pow((l / k_m), 2.0) * ((Math.pow(k_m, -2.0) + -0.16666666666666666) / t_m));
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if l <= 5.4e-101: tmp = 2.0 / math.pow(((math.pow(k_m, 2.0) / l) * math.sqrt(t_m)), 2.0) else: tmp = 2.0 * (math.pow((l / k_m), 2.0) * ((math.pow(k_m, -2.0) + -0.16666666666666666) / t_m)) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (l <= 5.4e-101) tmp = Float64(2.0 / (Float64(Float64((k_m ^ 2.0) / l) * sqrt(t_m)) ^ 2.0)); else tmp = Float64(2.0 * Float64((Float64(l / k_m) ^ 2.0) * Float64(Float64((k_m ^ -2.0) + -0.16666666666666666) / t_m))); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (l <= 5.4e-101) tmp = 2.0 / ((((k_m ^ 2.0) / l) * sqrt(t_m)) ^ 2.0); else tmp = 2.0 * (((l / k_m) ^ 2.0) * (((k_m ^ -2.0) + -0.16666666666666666) / t_m)); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[l, 5.4e-101], 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[(2.0 * N[(N[Power[N[(l / k$95$m), $MachinePrecision], 2.0], $MachinePrecision] * N[(N[(N[Power[k$95$m, -2.0], $MachinePrecision] + -0.16666666666666666), $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \leq 5.4 \cdot 10^{-101}:\\
\;\;\;\;\frac{2}{{\left(\frac{{k_m}^{2}}{\ell} \cdot \sqrt{t_m}\right)}^{2}}\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \left({\left(\frac{\ell}{k_m}\right)}^{2} \cdot \frac{{k_m}^{-2} + -0.16666666666666666}{t_m}\right)\\
\end{array}
\end{array}
if l < 5.4000000000000003e-101Initial program 31.8%
associate-*l*31.8%
associate--l+31.8%
Simplified31.8%
expm1-log1p-u22.1%
expm1-udef16.4%
Applied egg-rr20.1%
expm1-def21.6%
expm1-log1p21.8%
Simplified21.8%
Taylor expanded in k around 0 32.8%
if 5.4000000000000003e-101 < l Initial program 37.1%
associate-*l*37.1%
associate-/r*37.1%
sub-neg37.1%
distribute-rgt-in34.5%
unpow234.5%
times-frac23.1%
sqr-neg23.1%
times-frac34.5%
unpow234.5%
distribute-rgt-in37.1%
+-commutative37.1%
associate-+l+42.1%
Simplified42.1%
Taylor expanded in t around 0 77.1%
times-frac78.2%
Simplified78.2%
Taylor expanded in k around 0 58.5%
associate-/r*58.5%
associate-*r/58.5%
metadata-eval58.5%
Simplified58.5%
Taylor expanded in t around 0 58.3%
times-frac58.5%
unpow258.5%
unpow258.5%
times-frac60.7%
unpow260.7%
sub-neg60.7%
unpow-160.7%
exp-to-pow43.2%
*-commutative43.2%
exp-prod43.2%
*-commutative43.2%
associate-*r*43.2%
metadata-eval43.2%
*-commutative43.2%
exp-to-pow60.7%
metadata-eval60.7%
Simplified60.7%
Final simplification41.4%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 7.2e+49)
(* (/ 2.0 (* t_m (pow k_m 4.0))) (pow l 2.0))
(* 2.0 (* (pow (/ l k_m) 2.0) (/ -0.16666666666666666 t_m))))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 7.2e+49) {
tmp = (2.0 / (t_m * pow(k_m, 4.0))) * pow(l, 2.0);
} else {
tmp = 2.0 * (pow((l / k_m), 2.0) * (-0.16666666666666666 / t_m));
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 7.2d+49) then
tmp = (2.0d0 / (t_m * (k_m ** 4.0d0))) * (l ** 2.0d0)
else
tmp = 2.0d0 * (((l / k_m) ** 2.0d0) * ((-0.16666666666666666d0) / t_m))
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 7.2e+49) {
tmp = (2.0 / (t_m * Math.pow(k_m, 4.0))) * Math.pow(l, 2.0);
} else {
tmp = 2.0 * (Math.pow((l / k_m), 2.0) * (-0.16666666666666666 / t_m));
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if k_m <= 7.2e+49: tmp = (2.0 / (t_m * math.pow(k_m, 4.0))) * math.pow(l, 2.0) else: tmp = 2.0 * (math.pow((l / k_m), 2.0) * (-0.16666666666666666 / t_m)) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (k_m <= 7.2e+49) tmp = Float64(Float64(2.0 / Float64(t_m * (k_m ^ 4.0))) * (l ^ 2.0)); else tmp = Float64(2.0 * Float64((Float64(l / k_m) ^ 2.0) * Float64(-0.16666666666666666 / t_m))); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 7.2e+49) tmp = (2.0 / (t_m * (k_m ^ 4.0))) * (l ^ 2.0); else tmp = 2.0 * (((l / k_m) ^ 2.0) * (-0.16666666666666666 / t_m)); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[k$95$m, 7.2e+49], N[(N[(2.0 / N[(t$95$m * N[Power[k$95$m, 4.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Power[l, 2.0], $MachinePrecision]), $MachinePrecision], N[(2.0 * N[(N[Power[N[(l / k$95$m), $MachinePrecision], 2.0], $MachinePrecision] * N[(-0.16666666666666666 / t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k_m \leq 7.2 \cdot 10^{+49}:\\
\;\;\;\;\frac{2}{t_m \cdot {k_m}^{4}} \cdot {\ell}^{2}\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \left({\left(\frac{\ell}{k_m}\right)}^{2} \cdot \frac{-0.16666666666666666}{t_m}\right)\\
\end{array}
\end{array}
if k < 7.19999999999999993e49Initial program 32.4%
associate-*l*32.4%
associate--l+32.4%
Simplified32.4%
Taylor expanded in k around 0 64.3%
associate-/r/64.3%
*-commutative64.3%
Applied egg-rr64.3%
if 7.19999999999999993e49 < k Initial program 37.2%
associate-*l*37.2%
associate-/r*37.2%
sub-neg37.2%
distribute-rgt-in37.2%
unpow237.2%
times-frac31.9%
sqr-neg31.9%
times-frac37.2%
unpow237.2%
distribute-rgt-in37.2%
+-commutative37.2%
associate-+l+44.2%
Simplified44.2%
Taylor expanded in t around 0 74.2%
times-frac74.2%
Simplified74.2%
Taylor expanded in k around 0 63.3%
associate-/r*63.3%
associate-*r/63.3%
metadata-eval63.3%
Simplified63.3%
Taylor expanded in k around inf 63.2%
associate-*r/63.2%
*-commutative63.2%
times-frac63.3%
unpow263.3%
unpow263.3%
times-frac66.6%
unpow266.6%
Simplified66.6%
Final simplification64.8%
k_m = (fabs.f64 k)
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k_m)
:precision binary64
(*
t_s
(if (<= k_m 7.2e+49)
(/ 2.0 (* (* t_m (pow k_m 4.0)) (pow l -2.0)))
(* 2.0 (* (pow (/ l k_m) 2.0) (/ -0.16666666666666666 t_m))))))k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 7.2e+49) {
tmp = 2.0 / ((t_m * pow(k_m, 4.0)) * pow(l, -2.0));
} else {
tmp = 2.0 * (pow((l / k_m), 2.0) * (-0.16666666666666666 / t_m));
}
return t_s * tmp;
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 7.2d+49) then
tmp = 2.0d0 / ((t_m * (k_m ** 4.0d0)) * (l ** (-2.0d0)))
else
tmp = 2.0d0 * (((l / k_m) ** 2.0d0) * ((-0.16666666666666666d0) / t_m))
end if
code = t_s * tmp
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
double tmp;
if (k_m <= 7.2e+49) {
tmp = 2.0 / ((t_m * Math.pow(k_m, 4.0)) * Math.pow(l, -2.0));
} else {
tmp = 2.0 * (Math.pow((l / k_m), 2.0) * (-0.16666666666666666 / t_m));
}
return t_s * tmp;
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): tmp = 0 if k_m <= 7.2e+49: tmp = 2.0 / ((t_m * math.pow(k_m, 4.0)) * math.pow(l, -2.0)) else: tmp = 2.0 * (math.pow((l / k_m), 2.0) * (-0.16666666666666666 / t_m)) return t_s * tmp
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) tmp = 0.0 if (k_m <= 7.2e+49) tmp = Float64(2.0 / Float64(Float64(t_m * (k_m ^ 4.0)) * (l ^ -2.0))); else tmp = Float64(2.0 * Float64((Float64(l / k_m) ^ 2.0) * Float64(-0.16666666666666666 / t_m))); end return Float64(t_s * tmp) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k_m) tmp = 0.0; if (k_m <= 7.2e+49) tmp = 2.0 / ((t_m * (k_m ^ 4.0)) * (l ^ -2.0)); else tmp = 2.0 * (((l / k_m) ^ 2.0) * (-0.16666666666666666 / t_m)); end tmp_2 = t_s * tmp; end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * If[LessEqual[k$95$m, 7.2e+49], N[(2.0 / N[(N[(t$95$m * N[Power[k$95$m, 4.0], $MachinePrecision]), $MachinePrecision] * N[Power[l, -2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 * N[(N[Power[N[(l / k$95$m), $MachinePrecision], 2.0], $MachinePrecision] * N[(-0.16666666666666666 / t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \begin{array}{l}
\mathbf{if}\;k_m \leq 7.2 \cdot 10^{+49}:\\
\;\;\;\;\frac{2}{\left(t_m \cdot {k_m}^{4}\right) \cdot {\ell}^{-2}}\\
\mathbf{else}:\\
\;\;\;\;2 \cdot \left({\left(\frac{\ell}{k_m}\right)}^{2} \cdot \frac{-0.16666666666666666}{t_m}\right)\\
\end{array}
\end{array}
if k < 7.19999999999999993e49Initial program 32.4%
associate-*l*32.4%
associate--l+32.4%
Simplified32.4%
Taylor expanded in k around 0 64.3%
expm1-log1p-u46.5%
expm1-udef25.8%
div-inv25.8%
*-commutative25.8%
pow-flip25.8%
metadata-eval25.8%
Applied egg-rr25.8%
expm1-def46.5%
expm1-log1p64.4%
Simplified64.4%
if 7.19999999999999993e49 < k Initial program 37.2%
associate-*l*37.2%
associate-/r*37.2%
sub-neg37.2%
distribute-rgt-in37.2%
unpow237.2%
times-frac31.9%
sqr-neg31.9%
times-frac37.2%
unpow237.2%
distribute-rgt-in37.2%
+-commutative37.2%
associate-+l+44.2%
Simplified44.2%
Taylor expanded in t around 0 74.2%
times-frac74.2%
Simplified74.2%
Taylor expanded in k around 0 63.3%
associate-/r*63.3%
associate-*r/63.3%
metadata-eval63.3%
Simplified63.3%
Taylor expanded in k around inf 63.2%
associate-*r/63.2%
*-commutative63.2%
times-frac63.3%
unpow263.3%
unpow263.3%
times-frac66.6%
unpow266.6%
Simplified66.6%
Final simplification64.9%
k_m = (fabs.f64 k) t_m = (fabs.f64 t) t_s = (copysign.f64 1 t) (FPCore (t_s t_m l k_m) :precision binary64 (* t_s (* 2.0 (* (pow (/ l k_m) 2.0) (/ (+ (pow k_m -2.0) -0.16666666666666666) t_m)))))
k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
return t_s * (2.0 * (pow((l / k_m), 2.0) * ((pow(k_m, -2.0) + -0.16666666666666666) / t_m)));
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
code = t_s * (2.0d0 * (((l / k_m) ** 2.0d0) * (((k_m ** (-2.0d0)) + (-0.16666666666666666d0)) / t_m)))
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
return t_s * (2.0 * (Math.pow((l / k_m), 2.0) * ((Math.pow(k_m, -2.0) + -0.16666666666666666) / t_m)));
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): return t_s * (2.0 * (math.pow((l / k_m), 2.0) * ((math.pow(k_m, -2.0) + -0.16666666666666666) / t_m)))
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) return Float64(t_s * Float64(2.0 * Float64((Float64(l / k_m) ^ 2.0) * Float64(Float64((k_m ^ -2.0) + -0.16666666666666666) / t_m)))) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp = code(t_s, t_m, l, k_m) tmp = t_s * (2.0 * (((l / k_m) ^ 2.0) * (((k_m ^ -2.0) + -0.16666666666666666) / t_m))); end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * N[(2.0 * N[(N[Power[N[(l / k$95$m), $MachinePrecision], 2.0], $MachinePrecision] * N[(N[(N[Power[k$95$m, -2.0], $MachinePrecision] + -0.16666666666666666), $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \left(2 \cdot \left({\left(\frac{\ell}{k_m}\right)}^{2} \cdot \frac{{k_m}^{-2} + -0.16666666666666666}{t_m}\right)\right)
\end{array}
Initial program 33.4%
associate-*l*33.4%
associate-/r*33.4%
sub-neg33.4%
distribute-rgt-in31.1%
unpow231.1%
times-frac22.1%
sqr-neg22.1%
times-frac31.1%
unpow231.1%
distribute-rgt-in33.4%
+-commutative33.4%
associate-+l+41.1%
Simplified41.1%
Taylor expanded in t around 0 76.2%
times-frac77.4%
Simplified77.4%
Taylor expanded in k around 0 64.8%
associate-/r*64.5%
associate-*r/64.5%
metadata-eval64.5%
Simplified64.5%
Taylor expanded in t around 0 64.3%
times-frac64.5%
unpow264.5%
unpow264.5%
times-frac71.4%
unpow271.4%
sub-neg71.4%
unpow-171.4%
exp-to-pow42.4%
*-commutative42.4%
exp-prod42.4%
*-commutative42.4%
associate-*r*42.4%
metadata-eval42.4%
*-commutative42.4%
exp-to-pow71.4%
metadata-eval71.4%
Simplified71.4%
Final simplification71.4%
k_m = (fabs.f64 k) t_m = (fabs.f64 t) t_s = (copysign.f64 1 t) (FPCore (t_s t_m l k_m) :precision binary64 (* t_s (* 2.0 (* (pow (/ l k_m) 2.0) (/ -0.16666666666666666 t_m)))))
k_m = fabs(k);
t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k_m) {
return t_s * (2.0 * (pow((l / k_m), 2.0) * (-0.16666666666666666 / t_m)));
}
k_m = abs(k)
t_m = abs(t)
t_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k_m)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k_m
code = t_s * (2.0d0 * (((l / k_m) ** 2.0d0) * ((-0.16666666666666666d0) / t_m)))
end function
k_m = Math.abs(k);
t_m = Math.abs(t);
t_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k_m) {
return t_s * (2.0 * (Math.pow((l / k_m), 2.0) * (-0.16666666666666666 / t_m)));
}
k_m = math.fabs(k) t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k_m): return t_s * (2.0 * (math.pow((l / k_m), 2.0) * (-0.16666666666666666 / t_m)))
k_m = abs(k) t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k_m) return Float64(t_s * Float64(2.0 * Float64((Float64(l / k_m) ^ 2.0) * Float64(-0.16666666666666666 / t_m)))) end
k_m = abs(k); t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp = code(t_s, t_m, l, k_m) tmp = t_s * (2.0 * (((l / k_m) ^ 2.0) * (-0.16666666666666666 / t_m))); end
k_m = N[Abs[k], $MachinePrecision]
t_m = N[Abs[t], $MachinePrecision]
t_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k$95$m_] := N[(t$95$s * N[(2.0 * N[(N[Power[N[(l / k$95$m), $MachinePrecision], 2.0], $MachinePrecision] * N[(-0.16666666666666666 / t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t_s \cdot \left(2 \cdot \left({\left(\frac{\ell}{k_m}\right)}^{2} \cdot \frac{-0.16666666666666666}{t_m}\right)\right)
\end{array}
Initial program 33.4%
associate-*l*33.4%
associate-/r*33.4%
sub-neg33.4%
distribute-rgt-in31.1%
unpow231.1%
times-frac22.1%
sqr-neg22.1%
times-frac31.1%
unpow231.1%
distribute-rgt-in33.4%
+-commutative33.4%
associate-+l+41.1%
Simplified41.1%
Taylor expanded in t around 0 76.2%
times-frac77.4%
Simplified77.4%
Taylor expanded in k around 0 64.8%
associate-/r*64.5%
associate-*r/64.5%
metadata-eval64.5%
Simplified64.5%
Taylor expanded in k around inf 37.1%
associate-*r/37.1%
*-commutative37.1%
times-frac37.2%
unpow237.2%
unpow237.2%
times-frac39.4%
unpow239.4%
Simplified39.4%
Final simplification39.4%
herbie shell --seed 2024024
(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))))