
(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 16 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}
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 1.12e-189)
(/ 2.0 (/ (/ (* (pow k 2.0) (* t_m (pow (sin k) 2.0))) (* l (cos k))) l))
(/
2.0
(pow
(*
(/ t_m (pow (cbrt l) 2.0))
(* (cbrt (sin k)) (cbrt (* (tan k) (+ 2.0 (pow (/ k t_m) 2.0))))))
3.0)))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 1.12e-189) {
tmp = 2.0 / (((pow(k, 2.0) * (t_m * pow(sin(k), 2.0))) / (l * cos(k))) / l);
} else {
tmp = 2.0 / pow(((t_m / pow(cbrt(l), 2.0)) * (cbrt(sin(k)) * cbrt((tan(k) * (2.0 + pow((k / t_m), 2.0)))))), 3.0);
}
return t_s * tmp;
}
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) {
double tmp;
if (t_m <= 1.12e-189) {
tmp = 2.0 / (((Math.pow(k, 2.0) * (t_m * Math.pow(Math.sin(k), 2.0))) / (l * Math.cos(k))) / l);
} else {
tmp = 2.0 / Math.pow(((t_m / Math.pow(Math.cbrt(l), 2.0)) * (Math.cbrt(Math.sin(k)) * Math.cbrt((Math.tan(k) * (2.0 + Math.pow((k / t_m), 2.0)))))), 3.0);
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 1.12e-189) tmp = Float64(2.0 / Float64(Float64(Float64((k ^ 2.0) * Float64(t_m * (sin(k) ^ 2.0))) / Float64(l * cos(k))) / l)); else tmp = Float64(2.0 / (Float64(Float64(t_m / (cbrt(l) ^ 2.0)) * Float64(cbrt(sin(k)) * cbrt(Float64(tan(k) * Float64(2.0 + (Float64(k / t_m) ^ 2.0)))))) ^ 3.0)); end return Float64(t_s * tmp) end
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_] := N[(t$95$s * If[LessEqual[t$95$m, 1.12e-189], N[(2.0 / N[(N[(N[(N[Power[k, 2.0], $MachinePrecision] * N[(t$95$m * N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(l * N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[Power[N[(N[(t$95$m / N[Power[N[Power[l, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[Power[N[Sin[k], $MachinePrecision], 1/3], $MachinePrecision] * N[Power[N[(N[Tan[k], $MachinePrecision] * N[(2.0 + N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 1.12 \cdot 10^{-189}:\\
\;\;\;\;\frac{2}{\frac{\frac{{k}^{2} \cdot \left(t\_m \cdot {\sin k}^{2}\right)}{\ell \cdot \cos k}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{{\left(\frac{t\_m}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \left(\sqrt[3]{\sin k} \cdot \sqrt[3]{\tan k \cdot \left(2 + {\left(\frac{k}{t\_m}\right)}^{2}\right)}\right)\right)}^{3}}\\
\end{array}
\end{array}
if t < 1.12000000000000002e-189Initial program 53.0%
Simplified56.2%
associate-*l/57.3%
Applied egg-rr57.3%
Taylor expanded in t around 0 67.4%
if 1.12000000000000002e-189 < t Initial program 61.4%
Simplified61.5%
associate-/r*55.7%
metadata-eval55.7%
associate-+r+55.7%
associate-*l*55.7%
associate-*l*61.4%
add-cube-cbrt61.3%
pow361.3%
Applied egg-rr79.8%
pow1/368.0%
associate-*l*68.6%
unpow-prod-down44.3%
pow1/353.2%
Applied egg-rr53.2%
unpow1/391.8%
Simplified91.8%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 5.5e-116)
(/ 2.0 (/ (* (pow k 2.0) (* (/ t_m l) (/ (pow (sin k) 2.0) (cos k)))) l))
(/
2.0
(*
(* (sin k) (pow (/ t_m (pow (cbrt l) 2.0)) 3.0))
(* (tan k) (+ 1.0 (+ (pow (/ k t_m) 2.0) 1.0))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 5.5e-116) {
tmp = 2.0 / ((pow(k, 2.0) * ((t_m / l) * (pow(sin(k), 2.0) / cos(k)))) / l);
} else {
tmp = 2.0 / ((sin(k) * pow((t_m / pow(cbrt(l), 2.0)), 3.0)) * (tan(k) * (1.0 + (pow((k / t_m), 2.0) + 1.0))));
}
return t_s * tmp;
}
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) {
double tmp;
if (t_m <= 5.5e-116) {
tmp = 2.0 / ((Math.pow(k, 2.0) * ((t_m / l) * (Math.pow(Math.sin(k), 2.0) / Math.cos(k)))) / l);
} else {
tmp = 2.0 / ((Math.sin(k) * Math.pow((t_m / Math.pow(Math.cbrt(l), 2.0)), 3.0)) * (Math.tan(k) * (1.0 + (Math.pow((k / t_m), 2.0) + 1.0))));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 5.5e-116) tmp = Float64(2.0 / Float64(Float64((k ^ 2.0) * Float64(Float64(t_m / l) * Float64((sin(k) ^ 2.0) / cos(k)))) / l)); else tmp = Float64(2.0 / Float64(Float64(sin(k) * (Float64(t_m / (cbrt(l) ^ 2.0)) ^ 3.0)) * Float64(tan(k) * Float64(1.0 + Float64((Float64(k / t_m) ^ 2.0) + 1.0))))); end return Float64(t_s * tmp) end
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_] := N[(t$95$s * If[LessEqual[t$95$m, 5.5e-116], N[(2.0 / N[(N[(N[Power[k, 2.0], $MachinePrecision] * N[(N[(t$95$m / l), $MachinePrecision] * N[(N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision] / N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[Power[N[(t$95$m / N[Power[N[Power[l, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(1.0 + N[(N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
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^{-116}:\\
\;\;\;\;\frac{2}{\frac{{k}^{2} \cdot \left(\frac{t\_m}{\ell} \cdot \frac{{\sin k}^{2}}{\cos k}\right)}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\sin k \cdot {\left(\frac{t\_m}{{\left(\sqrt[3]{\ell}\right)}^{2}}\right)}^{3}\right) \cdot \left(\tan k \cdot \left(1 + \left({\left(\frac{k}{t\_m}\right)}^{2} + 1\right)\right)\right)}\\
\end{array}
\end{array}
if t < 5.4999999999999998e-116Initial program 51.1%
Simplified55.3%
associate-*l/56.3%
Applied egg-rr56.3%
Taylor expanded in t around 0 66.9%
associate-/l*66.6%
times-frac68.6%
Simplified68.6%
if 5.4999999999999998e-116 < t Initial program 66.9%
Simplified66.9%
associate-/r*70.9%
add-cube-cbrt70.8%
associate-*l*70.8%
associate-/r*66.9%
cbrt-div66.8%
rem-cbrt-cube66.8%
cbrt-prod70.8%
pow270.8%
pow270.8%
associate-/r*66.8%
cbrt-div66.7%
rem-cbrt-cube75.8%
cbrt-prod89.8%
pow289.8%
Applied egg-rr89.8%
unpow289.8%
cube-mult89.8%
Simplified89.8%
Final simplification75.2%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 6.8e-117)
(/ 2.0 (/ (* (pow k 2.0) (* (/ t_m l) (/ (pow (sin k) 2.0) (cos k)))) l))
(/
2.0
(*
(* (tan k) (+ 1.0 (+ (pow (/ k t_m) 2.0) 1.0)))
(* (sin k) (pow (/ (pow t_m 1.5) l) 2.0)))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 6.8e-117) {
tmp = 2.0 / ((pow(k, 2.0) * ((t_m / l) * (pow(sin(k), 2.0) / cos(k)))) / l);
} else {
tmp = 2.0 / ((tan(k) * (1.0 + (pow((k / t_m), 2.0) + 1.0))) * (sin(k) * pow((pow(t_m, 1.5) / l), 2.0)));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (t_m <= 6.8d-117) then
tmp = 2.0d0 / (((k ** 2.0d0) * ((t_m / l) * ((sin(k) ** 2.0d0) / cos(k)))) / l)
else
tmp = 2.0d0 / ((tan(k) * (1.0d0 + (((k / t_m) ** 2.0d0) + 1.0d0))) * (sin(k) * (((t_m ** 1.5d0) / l) ** 2.0d0)))
end if
code = t_s * tmp
end function
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) {
double tmp;
if (t_m <= 6.8e-117) {
tmp = 2.0 / ((Math.pow(k, 2.0) * ((t_m / l) * (Math.pow(Math.sin(k), 2.0) / Math.cos(k)))) / l);
} else {
tmp = 2.0 / ((Math.tan(k) * (1.0 + (Math.pow((k / t_m), 2.0) + 1.0))) * (Math.sin(k) * Math.pow((Math.pow(t_m, 1.5) / l), 2.0)));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if t_m <= 6.8e-117: tmp = 2.0 / ((math.pow(k, 2.0) * ((t_m / l) * (math.pow(math.sin(k), 2.0) / math.cos(k)))) / l) else: tmp = 2.0 / ((math.tan(k) * (1.0 + (math.pow((k / t_m), 2.0) + 1.0))) * (math.sin(k) * math.pow((math.pow(t_m, 1.5) / l), 2.0))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 6.8e-117) tmp = Float64(2.0 / Float64(Float64((k ^ 2.0) * Float64(Float64(t_m / l) * Float64((sin(k) ^ 2.0) / cos(k)))) / l)); else tmp = Float64(2.0 / Float64(Float64(tan(k) * Float64(1.0 + Float64((Float64(k / t_m) ^ 2.0) + 1.0))) * Float64(sin(k) * (Float64((t_m ^ 1.5) / l) ^ 2.0)))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (t_m <= 6.8e-117) tmp = 2.0 / (((k ^ 2.0) * ((t_m / l) * ((sin(k) ^ 2.0) / cos(k)))) / l); else tmp = 2.0 / ((tan(k) * (1.0 + (((k / t_m) ^ 2.0) + 1.0))) * (sin(k) * (((t_m ^ 1.5) / l) ^ 2.0))); end tmp_2 = t_s * tmp; end
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_] := N[(t$95$s * If[LessEqual[t$95$m, 6.8e-117], N[(2.0 / N[(N[(N[Power[k, 2.0], $MachinePrecision] * N[(N[(t$95$m / l), $MachinePrecision] * N[(N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision] / N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Tan[k], $MachinePrecision] * N[(1.0 + N[(N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[Power[N[(N[Power[t$95$m, 1.5], $MachinePrecision] / l), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 6.8 \cdot 10^{-117}:\\
\;\;\;\;\frac{2}{\frac{{k}^{2} \cdot \left(\frac{t\_m}{\ell} \cdot \frac{{\sin k}^{2}}{\cos k}\right)}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \left(1 + \left({\left(\frac{k}{t\_m}\right)}^{2} + 1\right)\right)\right) \cdot \left(\sin k \cdot {\left(\frac{{t\_m}^{1.5}}{\ell}\right)}^{2}\right)}\\
\end{array}
\end{array}
if t < 6.80000000000000069e-117Initial program 51.1%
Simplified55.3%
associate-*l/56.3%
Applied egg-rr56.3%
Taylor expanded in t around 0 66.9%
associate-/l*66.6%
times-frac68.6%
Simplified68.6%
if 6.80000000000000069e-117 < t Initial program 66.9%
Simplified66.9%
associate-/r*70.9%
add-sqr-sqrt70.9%
pow270.9%
associate-/r*66.9%
sqrt-div66.9%
sqrt-pow175.9%
metadata-eval75.9%
sqrt-prod48.5%
add-sqr-sqrt89.1%
Applied egg-rr89.1%
Final simplification75.0%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 2e-116)
(/ 2.0 (/ (* (pow k 2.0) (* (/ t_m l) (/ (pow (sin k) 2.0) (cos k)))) l))
(if (<= t_m 5.2e+137)
(/
2.0
(*
(* (tan k) (+ 1.0 (+ (pow (/ k t_m) 2.0) 1.0)))
(* (sin k) (* (/ t_m l) (/ (pow t_m 2.0) l)))))
(/ 2.0 (/ (* 2.0 (/ (pow (* t_m (pow (cbrt k) 2.0)) 3.0) l)) l))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 2e-116) {
tmp = 2.0 / ((pow(k, 2.0) * ((t_m / l) * (pow(sin(k), 2.0) / cos(k)))) / l);
} else if (t_m <= 5.2e+137) {
tmp = 2.0 / ((tan(k) * (1.0 + (pow((k / t_m), 2.0) + 1.0))) * (sin(k) * ((t_m / l) * (pow(t_m, 2.0) / l))));
} else {
tmp = 2.0 / ((2.0 * (pow((t_m * pow(cbrt(k), 2.0)), 3.0) / l)) / l);
}
return t_s * tmp;
}
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) {
double tmp;
if (t_m <= 2e-116) {
tmp = 2.0 / ((Math.pow(k, 2.0) * ((t_m / l) * (Math.pow(Math.sin(k), 2.0) / Math.cos(k)))) / l);
} else if (t_m <= 5.2e+137) {
tmp = 2.0 / ((Math.tan(k) * (1.0 + (Math.pow((k / t_m), 2.0) + 1.0))) * (Math.sin(k) * ((t_m / l) * (Math.pow(t_m, 2.0) / l))));
} else {
tmp = 2.0 / ((2.0 * (Math.pow((t_m * Math.pow(Math.cbrt(k), 2.0)), 3.0) / l)) / l);
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 2e-116) tmp = Float64(2.0 / Float64(Float64((k ^ 2.0) * Float64(Float64(t_m / l) * Float64((sin(k) ^ 2.0) / cos(k)))) / l)); elseif (t_m <= 5.2e+137) tmp = Float64(2.0 / Float64(Float64(tan(k) * Float64(1.0 + Float64((Float64(k / t_m) ^ 2.0) + 1.0))) * Float64(sin(k) * Float64(Float64(t_m / l) * Float64((t_m ^ 2.0) / l))))); else tmp = Float64(2.0 / Float64(Float64(2.0 * Float64((Float64(t_m * (cbrt(k) ^ 2.0)) ^ 3.0) / l)) / l)); end return Float64(t_s * tmp) end
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_] := N[(t$95$s * If[LessEqual[t$95$m, 2e-116], N[(2.0 / N[(N[(N[Power[k, 2.0], $MachinePrecision] * N[(N[(t$95$m / l), $MachinePrecision] * N[(N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision] / N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 5.2e+137], N[(2.0 / N[(N[(N[Tan[k], $MachinePrecision] * N[(1.0 + N[(N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[(N[(t$95$m / l), $MachinePrecision] * N[(N[Power[t$95$m, 2.0], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(2.0 * N[(N[Power[N[(t$95$m * N[Power[N[Power[k, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 2 \cdot 10^{-116}:\\
\;\;\;\;\frac{2}{\frac{{k}^{2} \cdot \left(\frac{t\_m}{\ell} \cdot \frac{{\sin k}^{2}}{\cos k}\right)}{\ell}}\\
\mathbf{elif}\;t\_m \leq 5.2 \cdot 10^{+137}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \left(1 + \left({\left(\frac{k}{t\_m}\right)}^{2} + 1\right)\right)\right) \cdot \left(\sin k \cdot \left(\frac{t\_m}{\ell} \cdot \frac{{t\_m}^{2}}{\ell}\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{2 \cdot \frac{{\left(t\_m \cdot {\left(\sqrt[3]{k}\right)}^{2}\right)}^{3}}{\ell}}{\ell}}\\
\end{array}
\end{array}
if t < 2e-116Initial program 51.1%
Simplified55.3%
associate-*l/56.3%
Applied egg-rr56.3%
Taylor expanded in t around 0 66.9%
associate-/l*66.6%
times-frac68.6%
Simplified68.6%
if 2e-116 < t < 5.1999999999999998e137Initial program 64.0%
Simplified64.0%
unpow364.0%
times-frac88.9%
pow288.9%
Applied egg-rr88.9%
if 5.1999999999999998e137 < t Initial program 72.2%
Simplified58.0%
associate-*l/58.0%
Applied egg-rr58.0%
Taylor expanded in k around 0 58.0%
add-cube-cbrt58.0%
pow358.0%
*-commutative58.0%
cbrt-prod58.0%
rem-cbrt-cube62.2%
unpow262.2%
cbrt-prod82.9%
pow282.9%
Applied egg-rr82.9%
Final simplification74.2%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 1.6e-92)
(/ 2.0 (/ (* 2.0 (/ (pow (* t_m (pow (cbrt k) 2.0)) 3.0) l)) l))
(if (<= k 8000000000000.0)
(/ 2.0 (* (* k (pow (* t_m (pow (cbrt l) -2.0)) 3.0)) (* 2.0 k)))
(/
2.0
(/ (/ (* (pow k 2.0) (* t_m (pow (sin k) 2.0))) (* l (cos k))) l))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 1.6e-92) {
tmp = 2.0 / ((2.0 * (pow((t_m * pow(cbrt(k), 2.0)), 3.0) / l)) / l);
} else if (k <= 8000000000000.0) {
tmp = 2.0 / ((k * pow((t_m * pow(cbrt(l), -2.0)), 3.0)) * (2.0 * k));
} else {
tmp = 2.0 / (((pow(k, 2.0) * (t_m * pow(sin(k), 2.0))) / (l * cos(k))) / l);
}
return t_s * tmp;
}
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) {
double tmp;
if (k <= 1.6e-92) {
tmp = 2.0 / ((2.0 * (Math.pow((t_m * Math.pow(Math.cbrt(k), 2.0)), 3.0) / l)) / l);
} else if (k <= 8000000000000.0) {
tmp = 2.0 / ((k * Math.pow((t_m * Math.pow(Math.cbrt(l), -2.0)), 3.0)) * (2.0 * k));
} else {
tmp = 2.0 / (((Math.pow(k, 2.0) * (t_m * Math.pow(Math.sin(k), 2.0))) / (l * Math.cos(k))) / l);
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 1.6e-92) tmp = Float64(2.0 / Float64(Float64(2.0 * Float64((Float64(t_m * (cbrt(k) ^ 2.0)) ^ 3.0) / l)) / l)); elseif (k <= 8000000000000.0) tmp = Float64(2.0 / Float64(Float64(k * (Float64(t_m * (cbrt(l) ^ -2.0)) ^ 3.0)) * Float64(2.0 * k))); else tmp = Float64(2.0 / Float64(Float64(Float64((k ^ 2.0) * Float64(t_m * (sin(k) ^ 2.0))) / Float64(l * cos(k))) / l)); end return Float64(t_s * tmp) end
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_] := N[(t$95$s * If[LessEqual[k, 1.6e-92], N[(2.0 / N[(N[(2.0 * N[(N[Power[N[(t$95$m * N[Power[N[Power[k, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 8000000000000.0], N[(2.0 / N[(N[(k * N[Power[N[(t$95$m * N[Power[N[Power[l, 1/3], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision] * N[(2.0 * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[Power[k, 2.0], $MachinePrecision] * N[(t$95$m * N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(l * N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 1.6 \cdot 10^{-92}:\\
\;\;\;\;\frac{2}{\frac{2 \cdot \frac{{\left(t\_m \cdot {\left(\sqrt[3]{k}\right)}^{2}\right)}^{3}}{\ell}}{\ell}}\\
\mathbf{elif}\;k \leq 8000000000000:\\
\;\;\;\;\frac{2}{\left(k \cdot {\left(t\_m \cdot {\left(\sqrt[3]{\ell}\right)}^{-2}\right)}^{3}\right) \cdot \left(2 \cdot k\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{\frac{{k}^{2} \cdot \left(t\_m \cdot {\sin k}^{2}\right)}{\ell \cdot \cos k}}{\ell}}\\
\end{array}
\end{array}
if k < 1.5999999999999998e-92Initial program 56.6%
Simplified58.2%
associate-*l/59.7%
Applied egg-rr59.7%
Taylor expanded in k around 0 54.4%
add-cube-cbrt54.4%
pow354.4%
*-commutative54.4%
cbrt-prod54.4%
rem-cbrt-cube63.6%
unpow263.6%
cbrt-prod71.5%
pow271.5%
Applied egg-rr71.5%
if 1.5999999999999998e-92 < k < 8e12Initial program 51.8%
Simplified51.8%
Taylor expanded in k around 0 68.7%
*-commutative68.7%
Simplified68.7%
associate-/r*72.5%
div-inv72.5%
add-sqr-sqrt34.1%
associate-*l*34.2%
sqrt-div26.3%
sqrt-pow126.3%
metadata-eval26.3%
sqrt-div26.3%
sqrt-pow126.2%
metadata-eval26.2%
Applied egg-rr26.2%
associate-*r/26.2%
*-rgt-identity26.2%
associate-/l/26.2%
Simplified26.2%
Taylor expanded in k around 0 68.7%
associate-/l*68.7%
Simplified68.7%
rem-cube-cbrt68.5%
cbrt-div68.5%
rem-cbrt-cube69.3%
unpow269.3%
cbrt-prod83.0%
unpow283.0%
div-inv83.0%
unpow-prod-down68.0%
pow-flip68.0%
metadata-eval68.0%
Applied egg-rr68.0%
cube-prod83.1%
Simplified83.1%
if 8e12 < k Initial program 56.0%
Simplified58.6%
associate-*l/58.6%
Applied egg-rr58.6%
Taylor expanded in t around 0 71.4%
Final simplification72.7%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 8.2e-93)
(/ 2.0 (/ (* 2.0 (/ (pow (* t_m (pow (cbrt k) 2.0)) 3.0) l)) l))
(if (<= k 12000000000000.0)
(/ 2.0 (* (* k (pow (* t_m (pow (cbrt l) -2.0)) 3.0)) (* 2.0 k)))
(/
2.0
(/ (* (pow k 2.0) (* (/ t_m l) (/ (pow (sin k) 2.0) (cos k)))) l))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 8.2e-93) {
tmp = 2.0 / ((2.0 * (pow((t_m * pow(cbrt(k), 2.0)), 3.0) / l)) / l);
} else if (k <= 12000000000000.0) {
tmp = 2.0 / ((k * pow((t_m * pow(cbrt(l), -2.0)), 3.0)) * (2.0 * k));
} else {
tmp = 2.0 / ((pow(k, 2.0) * ((t_m / l) * (pow(sin(k), 2.0) / cos(k)))) / l);
}
return t_s * tmp;
}
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) {
double tmp;
if (k <= 8.2e-93) {
tmp = 2.0 / ((2.0 * (Math.pow((t_m * Math.pow(Math.cbrt(k), 2.0)), 3.0) / l)) / l);
} else if (k <= 12000000000000.0) {
tmp = 2.0 / ((k * Math.pow((t_m * Math.pow(Math.cbrt(l), -2.0)), 3.0)) * (2.0 * k));
} else {
tmp = 2.0 / ((Math.pow(k, 2.0) * ((t_m / l) * (Math.pow(Math.sin(k), 2.0) / Math.cos(k)))) / l);
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 8.2e-93) tmp = Float64(2.0 / Float64(Float64(2.0 * Float64((Float64(t_m * (cbrt(k) ^ 2.0)) ^ 3.0) / l)) / l)); elseif (k <= 12000000000000.0) tmp = Float64(2.0 / Float64(Float64(k * (Float64(t_m * (cbrt(l) ^ -2.0)) ^ 3.0)) * Float64(2.0 * k))); else tmp = Float64(2.0 / Float64(Float64((k ^ 2.0) * Float64(Float64(t_m / l) * Float64((sin(k) ^ 2.0) / cos(k)))) / l)); end return Float64(t_s * tmp) end
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_] := N[(t$95$s * If[LessEqual[k, 8.2e-93], N[(2.0 / N[(N[(2.0 * N[(N[Power[N[(t$95$m * N[Power[N[Power[k, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 12000000000000.0], N[(2.0 / N[(N[(k * N[Power[N[(t$95$m * N[Power[N[Power[l, 1/3], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision] * N[(2.0 * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Power[k, 2.0], $MachinePrecision] * N[(N[(t$95$m / l), $MachinePrecision] * N[(N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision] / N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 8.2 \cdot 10^{-93}:\\
\;\;\;\;\frac{2}{\frac{2 \cdot \frac{{\left(t\_m \cdot {\left(\sqrt[3]{k}\right)}^{2}\right)}^{3}}{\ell}}{\ell}}\\
\mathbf{elif}\;k \leq 12000000000000:\\
\;\;\;\;\frac{2}{\left(k \cdot {\left(t\_m \cdot {\left(\sqrt[3]{\ell}\right)}^{-2}\right)}^{3}\right) \cdot \left(2 \cdot k\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{{k}^{2} \cdot \left(\frac{t\_m}{\ell} \cdot \frac{{\sin k}^{2}}{\cos k}\right)}{\ell}}\\
\end{array}
\end{array}
if k < 8.1999999999999998e-93Initial program 56.6%
Simplified58.2%
associate-*l/59.7%
Applied egg-rr59.7%
Taylor expanded in k around 0 54.4%
add-cube-cbrt54.4%
pow354.4%
*-commutative54.4%
cbrt-prod54.4%
rem-cbrt-cube63.6%
unpow263.6%
cbrt-prod71.5%
pow271.5%
Applied egg-rr71.5%
if 8.1999999999999998e-93 < k < 1.2e13Initial program 51.8%
Simplified51.8%
Taylor expanded in k around 0 68.7%
*-commutative68.7%
Simplified68.7%
associate-/r*72.5%
div-inv72.5%
add-sqr-sqrt34.1%
associate-*l*34.2%
sqrt-div26.3%
sqrt-pow126.3%
metadata-eval26.3%
sqrt-div26.3%
sqrt-pow126.2%
metadata-eval26.2%
Applied egg-rr26.2%
associate-*r/26.2%
*-rgt-identity26.2%
associate-/l/26.2%
Simplified26.2%
Taylor expanded in k around 0 68.7%
associate-/l*68.7%
Simplified68.7%
rem-cube-cbrt68.5%
cbrt-div68.5%
rem-cbrt-cube69.3%
unpow269.3%
cbrt-prod83.0%
unpow283.0%
div-inv83.0%
unpow-prod-down68.0%
pow-flip68.0%
metadata-eval68.0%
Applied egg-rr68.0%
cube-prod83.1%
Simplified83.1%
if 1.2e13 < k Initial program 56.0%
Simplified58.6%
associate-*l/58.6%
Applied egg-rr58.6%
Taylor expanded in t around 0 71.4%
associate-/l*71.3%
times-frac71.3%
Simplified71.3%
Final simplification72.7%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= l 7.2e+246)
(/ 2.0 (/ (* 2.0 (/ (pow (* t_m (pow (cbrt k) 2.0)) 3.0) l)) l))
(/
2.0
(* (* 2.0 k) (* (sin k) (/ 1.0 (pow (/ (pow (cbrt l) 2.0) t_m) 3.0))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (l <= 7.2e+246) {
tmp = 2.0 / ((2.0 * (pow((t_m * pow(cbrt(k), 2.0)), 3.0) / l)) / l);
} else {
tmp = 2.0 / ((2.0 * k) * (sin(k) * (1.0 / pow((pow(cbrt(l), 2.0) / t_m), 3.0))));
}
return t_s * tmp;
}
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) {
double tmp;
if (l <= 7.2e+246) {
tmp = 2.0 / ((2.0 * (Math.pow((t_m * Math.pow(Math.cbrt(k), 2.0)), 3.0) / l)) / l);
} else {
tmp = 2.0 / ((2.0 * k) * (Math.sin(k) * (1.0 / Math.pow((Math.pow(Math.cbrt(l), 2.0) / t_m), 3.0))));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (l <= 7.2e+246) tmp = Float64(2.0 / Float64(Float64(2.0 * Float64((Float64(t_m * (cbrt(k) ^ 2.0)) ^ 3.0) / l)) / l)); else tmp = Float64(2.0 / Float64(Float64(2.0 * k) * Float64(sin(k) * Float64(1.0 / (Float64((cbrt(l) ^ 2.0) / t_m) ^ 3.0))))); end return Float64(t_s * tmp) end
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_] := N[(t$95$s * If[LessEqual[l, 7.2e+246], N[(2.0 / N[(N[(2.0 * N[(N[Power[N[(t$95$m * N[Power[N[Power[k, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(2.0 * k), $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[(1.0 / N[Power[N[(N[Power[N[Power[l, 1/3], $MachinePrecision], 2.0], $MachinePrecision] / t$95$m), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \leq 7.2 \cdot 10^{+246}:\\
\;\;\;\;\frac{2}{\frac{2 \cdot \frac{{\left(t\_m \cdot {\left(\sqrt[3]{k}\right)}^{2}\right)}^{3}}{\ell}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(2 \cdot k\right) \cdot \left(\sin k \cdot \frac{1}{{\left(\frac{{\left(\sqrt[3]{\ell}\right)}^{2}}{t\_m}\right)}^{3}}\right)}\\
\end{array}
\end{array}
if l < 7.2e246Initial program 56.7%
Simplified58.9%
associate-*l/59.6%
Applied egg-rr59.6%
Taylor expanded in k around 0 57.2%
add-cube-cbrt57.1%
pow357.1%
*-commutative57.1%
cbrt-prod57.1%
rem-cbrt-cube64.9%
unpow264.9%
cbrt-prod70.8%
pow270.8%
Applied egg-rr70.8%
if 7.2e246 < l Initial program 43.5%
Simplified43.5%
Taylor expanded in k around 0 58.1%
*-commutative58.1%
Simplified58.1%
unpow358.1%
*-un-lft-identity58.1%
times-frac58.1%
pow258.1%
pow258.1%
Applied egg-rr58.1%
/-rgt-identity58.1%
associate-*r/58.1%
unpow258.1%
unpow358.1%
rem-cube-cbrt58.1%
cbrt-div58.1%
rem-cbrt-cube59.3%
unpow259.3%
cbrt-prod79.0%
unpow279.0%
clear-num78.9%
cube-div79.0%
metadata-eval79.0%
Applied egg-rr79.0%
Final simplification71.2%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= l 1.15e+247)
(/ 2.0 (/ (* 2.0 (/ (pow (* t_m (pow (cbrt k) 2.0)) 3.0) l)) l))
(/ 2.0 (* (* (sin k) (pow (/ t_m (pow (cbrt l) 2.0)) 3.0)) (* 2.0 k))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (l <= 1.15e+247) {
tmp = 2.0 / ((2.0 * (pow((t_m * pow(cbrt(k), 2.0)), 3.0) / l)) / l);
} else {
tmp = 2.0 / ((sin(k) * pow((t_m / pow(cbrt(l), 2.0)), 3.0)) * (2.0 * k));
}
return t_s * tmp;
}
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) {
double tmp;
if (l <= 1.15e+247) {
tmp = 2.0 / ((2.0 * (Math.pow((t_m * Math.pow(Math.cbrt(k), 2.0)), 3.0) / l)) / l);
} else {
tmp = 2.0 / ((Math.sin(k) * Math.pow((t_m / Math.pow(Math.cbrt(l), 2.0)), 3.0)) * (2.0 * k));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (l <= 1.15e+247) tmp = Float64(2.0 / Float64(Float64(2.0 * Float64((Float64(t_m * (cbrt(k) ^ 2.0)) ^ 3.0) / l)) / l)); else tmp = Float64(2.0 / Float64(Float64(sin(k) * (Float64(t_m / (cbrt(l) ^ 2.0)) ^ 3.0)) * Float64(2.0 * k))); end return Float64(t_s * tmp) end
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_] := N[(t$95$s * If[LessEqual[l, 1.15e+247], N[(2.0 / N[(N[(2.0 * N[(N[Power[N[(t$95$m * N[Power[N[Power[k, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[Power[N[(t$95$m / N[Power[N[Power[l, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision] * N[(2.0 * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \leq 1.15 \cdot 10^{+247}:\\
\;\;\;\;\frac{2}{\frac{2 \cdot \frac{{\left(t\_m \cdot {\left(\sqrt[3]{k}\right)}^{2}\right)}^{3}}{\ell}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\sin k \cdot {\left(\frac{t\_m}{{\left(\sqrt[3]{\ell}\right)}^{2}}\right)}^{3}\right) \cdot \left(2 \cdot k\right)}\\
\end{array}
\end{array}
if l < 1.14999999999999995e247Initial program 56.7%
Simplified58.9%
associate-*l/59.6%
Applied egg-rr59.6%
Taylor expanded in k around 0 57.2%
add-cube-cbrt57.1%
pow357.1%
*-commutative57.1%
cbrt-prod57.1%
rem-cbrt-cube64.9%
unpow264.9%
cbrt-prod70.8%
pow270.8%
Applied egg-rr70.8%
if 1.14999999999999995e247 < l Initial program 43.5%
Simplified43.5%
Taylor expanded in k around 0 58.1%
*-commutative58.1%
Simplified58.1%
associate-/r*44.3%
add-cube-cbrt44.3%
associate-*l*44.3%
associate-/r*43.5%
cbrt-div43.5%
rem-cbrt-cube43.5%
cbrt-prod44.3%
pow244.3%
pow244.3%
associate-/r*43.5%
cbrt-div43.5%
rem-cbrt-cube44.7%
cbrt-prod71.1%
pow271.1%
Applied egg-rr79.2%
unpow271.1%
cube-mult70.8%
Simplified79.0%
Final simplification71.2%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= l 5.4e+246)
(/ 2.0 (/ (* 2.0 (/ (pow (* t_m (pow (cbrt k) 2.0)) 3.0) l)) l))
(/ 2.0 (* (* (sin k) (pow (/ (pow t_m 1.5) l) 2.0)) (* 2.0 k))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (l <= 5.4e+246) {
tmp = 2.0 / ((2.0 * (pow((t_m * pow(cbrt(k), 2.0)), 3.0) / l)) / l);
} else {
tmp = 2.0 / ((sin(k) * pow((pow(t_m, 1.5) / l), 2.0)) * (2.0 * k));
}
return t_s * tmp;
}
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) {
double tmp;
if (l <= 5.4e+246) {
tmp = 2.0 / ((2.0 * (Math.pow((t_m * Math.pow(Math.cbrt(k), 2.0)), 3.0) / l)) / l);
} else {
tmp = 2.0 / ((Math.sin(k) * Math.pow((Math.pow(t_m, 1.5) / l), 2.0)) * (2.0 * k));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (l <= 5.4e+246) tmp = Float64(2.0 / Float64(Float64(2.0 * Float64((Float64(t_m * (cbrt(k) ^ 2.0)) ^ 3.0) / l)) / l)); else tmp = Float64(2.0 / Float64(Float64(sin(k) * (Float64((t_m ^ 1.5) / l) ^ 2.0)) * Float64(2.0 * k))); end return Float64(t_s * tmp) end
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_] := N[(t$95$s * If[LessEqual[l, 5.4e+246], N[(2.0 / N[(N[(2.0 * N[(N[Power[N[(t$95$m * N[Power[N[Power[k, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[Power[N[(N[Power[t$95$m, 1.5], $MachinePrecision] / l), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] * N[(2.0 * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
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^{+246}:\\
\;\;\;\;\frac{2}{\frac{2 \cdot \frac{{\left(t\_m \cdot {\left(\sqrt[3]{k}\right)}^{2}\right)}^{3}}{\ell}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\sin k \cdot {\left(\frac{{t\_m}^{1.5}}{\ell}\right)}^{2}\right) \cdot \left(2 \cdot k\right)}\\
\end{array}
\end{array}
if l < 5.4e246Initial program 56.7%
Simplified58.9%
associate-*l/59.6%
Applied egg-rr59.6%
Taylor expanded in k around 0 57.2%
add-cube-cbrt57.1%
pow357.1%
*-commutative57.1%
cbrt-prod57.1%
rem-cbrt-cube64.9%
unpow264.9%
cbrt-prod70.8%
pow270.8%
Applied egg-rr70.8%
if 5.4e246 < l Initial program 43.5%
Simplified43.5%
Taylor expanded in k around 0 58.1%
*-commutative58.1%
Simplified58.1%
associate-/r*44.3%
add-sqr-sqrt22.4%
pow222.4%
associate-/r*22.1%
sqrt-div22.1%
sqrt-pow122.2%
metadata-eval22.2%
sqrt-prod29.0%
add-sqr-sqrt29.0%
Applied egg-rr22.4%
Final simplification68.1%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= l 4.9e+246)
(/ 2.0 (/ (* 2.0 (/ (pow (* k (pow t_m 1.5)) 2.0) l)) l))
(/ 2.0 (* (* (sin k) (pow (/ (pow t_m 1.5) l) 2.0)) (* 2.0 k))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (l <= 4.9e+246) {
tmp = 2.0 / ((2.0 * (pow((k * pow(t_m, 1.5)), 2.0) / l)) / l);
} else {
tmp = 2.0 / ((sin(k) * pow((pow(t_m, 1.5) / l), 2.0)) * (2.0 * k));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (l <= 4.9d+246) then
tmp = 2.0d0 / ((2.0d0 * (((k * (t_m ** 1.5d0)) ** 2.0d0) / l)) / l)
else
tmp = 2.0d0 / ((sin(k) * (((t_m ** 1.5d0) / l) ** 2.0d0)) * (2.0d0 * k))
end if
code = t_s * tmp
end function
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) {
double tmp;
if (l <= 4.9e+246) {
tmp = 2.0 / ((2.0 * (Math.pow((k * Math.pow(t_m, 1.5)), 2.0) / l)) / l);
} else {
tmp = 2.0 / ((Math.sin(k) * Math.pow((Math.pow(t_m, 1.5) / l), 2.0)) * (2.0 * k));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if l <= 4.9e+246: tmp = 2.0 / ((2.0 * (math.pow((k * math.pow(t_m, 1.5)), 2.0) / l)) / l) else: tmp = 2.0 / ((math.sin(k) * math.pow((math.pow(t_m, 1.5) / l), 2.0)) * (2.0 * k)) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (l <= 4.9e+246) tmp = Float64(2.0 / Float64(Float64(2.0 * Float64((Float64(k * (t_m ^ 1.5)) ^ 2.0) / l)) / l)); else tmp = Float64(2.0 / Float64(Float64(sin(k) * (Float64((t_m ^ 1.5) / l) ^ 2.0)) * Float64(2.0 * k))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (l <= 4.9e+246) tmp = 2.0 / ((2.0 * (((k * (t_m ^ 1.5)) ^ 2.0) / l)) / l); else tmp = 2.0 / ((sin(k) * (((t_m ^ 1.5) / l) ^ 2.0)) * (2.0 * k)); end tmp_2 = t_s * tmp; end
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_] := N[(t$95$s * If[LessEqual[l, 4.9e+246], N[(2.0 / N[(N[(2.0 * N[(N[Power[N[(k * N[Power[t$95$m, 1.5], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[Power[N[(N[Power[t$95$m, 1.5], $MachinePrecision] / l), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] * N[(2.0 * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \leq 4.9 \cdot 10^{+246}:\\
\;\;\;\;\frac{2}{\frac{2 \cdot \frac{{\left(k \cdot {t\_m}^{1.5}\right)}^{2}}{\ell}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\sin k \cdot {\left(\frac{{t\_m}^{1.5}}{\ell}\right)}^{2}\right) \cdot \left(2 \cdot k\right)}\\
\end{array}
\end{array}
if l < 4.90000000000000028e246Initial program 56.7%
Simplified58.9%
associate-*l/59.6%
Applied egg-rr59.6%
Taylor expanded in k around 0 57.2%
pow157.2%
add-sqr-sqrt24.4%
pow224.4%
sqrt-prod24.4%
sqrt-pow127.0%
metadata-eval27.0%
pow127.0%
sqrt-pow129.3%
metadata-eval29.3%
Applied egg-rr29.3%
unpow129.3%
Simplified29.3%
if 4.90000000000000028e246 < l Initial program 43.5%
Simplified43.5%
Taylor expanded in k around 0 58.1%
*-commutative58.1%
Simplified58.1%
associate-/r*44.3%
add-sqr-sqrt22.4%
pow222.4%
associate-/r*22.1%
sqrt-div22.1%
sqrt-pow122.2%
metadata-eval22.2%
sqrt-prod29.0%
add-sqr-sqrt29.0%
Applied egg-rr22.4%
Final simplification28.9%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 1.1e-92)
(/ 2.0 (/ (* 2.0 (/ (pow (* k (pow t_m 1.5)) 2.0) l)) l))
(/ 2.0 (* (* k (pow (* t_m (pow (cbrt l) -2.0)) 3.0)) (* 2.0 k))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 1.1e-92) {
tmp = 2.0 / ((2.0 * (pow((k * pow(t_m, 1.5)), 2.0) / l)) / l);
} else {
tmp = 2.0 / ((k * pow((t_m * pow(cbrt(l), -2.0)), 3.0)) * (2.0 * k));
}
return t_s * tmp;
}
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) {
double tmp;
if (k <= 1.1e-92) {
tmp = 2.0 / ((2.0 * (Math.pow((k * Math.pow(t_m, 1.5)), 2.0) / l)) / l);
} else {
tmp = 2.0 / ((k * Math.pow((t_m * Math.pow(Math.cbrt(l), -2.0)), 3.0)) * (2.0 * k));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 1.1e-92) tmp = Float64(2.0 / Float64(Float64(2.0 * Float64((Float64(k * (t_m ^ 1.5)) ^ 2.0) / l)) / l)); else tmp = Float64(2.0 / Float64(Float64(k * (Float64(t_m * (cbrt(l) ^ -2.0)) ^ 3.0)) * Float64(2.0 * k))); end return Float64(t_s * tmp) end
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_] := N[(t$95$s * If[LessEqual[k, 1.1e-92], N[(2.0 / N[(N[(2.0 * N[(N[Power[N[(k * N[Power[t$95$m, 1.5], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(k * N[Power[N[(t$95$m * N[Power[N[Power[l, 1/3], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision] * N[(2.0 * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 1.1 \cdot 10^{-92}:\\
\;\;\;\;\frac{2}{\frac{2 \cdot \frac{{\left(k \cdot {t\_m}^{1.5}\right)}^{2}}{\ell}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(k \cdot {\left(t\_m \cdot {\left(\sqrt[3]{\ell}\right)}^{-2}\right)}^{3}\right) \cdot \left(2 \cdot k\right)}\\
\end{array}
\end{array}
if k < 1.09999999999999994e-92Initial program 56.6%
Simplified58.2%
associate-*l/59.7%
Applied egg-rr59.7%
Taylor expanded in k around 0 54.4%
pow154.4%
add-sqr-sqrt21.5%
pow221.5%
sqrt-prod21.5%
sqrt-pow125.0%
metadata-eval25.0%
pow125.0%
sqrt-pow127.0%
metadata-eval27.0%
Applied egg-rr27.0%
unpow127.0%
Simplified27.0%
if 1.09999999999999994e-92 < k Initial program 54.5%
Simplified54.5%
Taylor expanded in k around 0 57.4%
*-commutative57.4%
Simplified57.4%
associate-/r*59.1%
div-inv59.1%
add-sqr-sqrt31.7%
associate-*l*31.8%
sqrt-div19.2%
sqrt-pow119.2%
metadata-eval19.2%
sqrt-div19.2%
sqrt-pow119.1%
metadata-eval19.1%
Applied egg-rr19.1%
associate-*r/19.1%
*-rgt-identity19.1%
associate-/l/20.3%
Simplified20.3%
Taylor expanded in k around 0 58.3%
associate-/l*58.3%
Simplified58.3%
rem-cube-cbrt58.3%
cbrt-div58.3%
rem-cbrt-cube61.4%
unpow261.4%
cbrt-prod66.5%
unpow266.5%
div-inv66.5%
unpow-prod-down58.1%
pow-flip58.1%
metadata-eval58.1%
Applied egg-rr58.1%
cube-prod66.5%
Simplified66.5%
Final simplification38.6%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 2.2e-92)
(/ 2.0 (/ (* 2.0 (/ (pow (* k (pow t_m 1.5)) 2.0) l)) l))
(/ 2.0 (* (* 2.0 k) (* k (pow (/ (sqrt t_m) (cbrt l)) 6.0)))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 2.2e-92) {
tmp = 2.0 / ((2.0 * (pow((k * pow(t_m, 1.5)), 2.0) / l)) / l);
} else {
tmp = 2.0 / ((2.0 * k) * (k * pow((sqrt(t_m) / cbrt(l)), 6.0)));
}
return t_s * tmp;
}
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) {
double tmp;
if (k <= 2.2e-92) {
tmp = 2.0 / ((2.0 * (Math.pow((k * Math.pow(t_m, 1.5)), 2.0) / l)) / l);
} else {
tmp = 2.0 / ((2.0 * k) * (k * Math.pow((Math.sqrt(t_m) / Math.cbrt(l)), 6.0)));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 2.2e-92) tmp = Float64(2.0 / Float64(Float64(2.0 * Float64((Float64(k * (t_m ^ 1.5)) ^ 2.0) / l)) / l)); else tmp = Float64(2.0 / Float64(Float64(2.0 * k) * Float64(k * (Float64(sqrt(t_m) / cbrt(l)) ^ 6.0)))); end return Float64(t_s * tmp) end
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_] := N[(t$95$s * If[LessEqual[k, 2.2e-92], N[(2.0 / N[(N[(2.0 * N[(N[Power[N[(k * N[Power[t$95$m, 1.5], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(2.0 * k), $MachinePrecision] * N[(k * N[Power[N[(N[Sqrt[t$95$m], $MachinePrecision] / N[Power[l, 1/3], $MachinePrecision]), $MachinePrecision], 6.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 2.2 \cdot 10^{-92}:\\
\;\;\;\;\frac{2}{\frac{2 \cdot \frac{{\left(k \cdot {t\_m}^{1.5}\right)}^{2}}{\ell}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(2 \cdot k\right) \cdot \left(k \cdot {\left(\frac{\sqrt{t\_m}}{\sqrt[3]{\ell}}\right)}^{6}\right)}\\
\end{array}
\end{array}
if k < 2.19999999999999987e-92Initial program 56.6%
Simplified58.2%
associate-*l/59.7%
Applied egg-rr59.7%
Taylor expanded in k around 0 54.4%
pow154.4%
add-sqr-sqrt21.5%
pow221.5%
sqrt-prod21.5%
sqrt-pow125.0%
metadata-eval25.0%
pow125.0%
sqrt-pow127.0%
metadata-eval27.0%
Applied egg-rr27.0%
unpow127.0%
Simplified27.0%
if 2.19999999999999987e-92 < k Initial program 54.5%
Simplified54.5%
Taylor expanded in k around 0 57.4%
*-commutative57.4%
Simplified57.4%
associate-/r*59.1%
div-inv59.1%
add-sqr-sqrt31.7%
associate-*l*31.8%
sqrt-div19.2%
sqrt-pow119.2%
metadata-eval19.2%
sqrt-div19.2%
sqrt-pow119.1%
metadata-eval19.1%
Applied egg-rr19.1%
associate-*r/19.1%
*-rgt-identity19.1%
associate-/l/20.3%
Simplified20.3%
Taylor expanded in k around 0 58.3%
associate-/l*58.3%
Simplified58.3%
rem-cube-cbrt58.3%
cbrt-div58.3%
rem-cbrt-cube61.4%
unpow261.4%
cbrt-prod66.5%
unpow266.5%
add-sqr-sqrt34.7%
unpow-prod-down34.7%
sqrt-div33.3%
sqrt-pow126.8%
metadata-eval26.8%
pow126.8%
sqrt-div26.8%
sqrt-pow133.3%
metadata-eval33.3%
pow133.3%
Applied egg-rr33.3%
pow-sqr33.3%
metadata-eval33.3%
Simplified33.3%
Final simplification28.8%
t\_m = (fabs.f64 t) t\_s = (copysign.f64 #s(literal 1 binary64) t) (FPCore (t_s t_m l k) :precision binary64 (* t_s (/ 2.0 (/ (* 2.0 (/ (pow (* k (pow t_m 1.5)) 2.0) l)) l))))
t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
return t_s * (2.0 / ((2.0 * (pow((k * pow(t_m, 1.5)), 2.0) / l)) / l));
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
code = t_s * (2.0d0 / ((2.0d0 * (((k * (t_m ** 1.5d0)) ** 2.0d0) / l)) / l))
end function
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) {
return t_s * (2.0 / ((2.0 * (Math.pow((k * Math.pow(t_m, 1.5)), 2.0) / l)) / l));
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): return t_s * (2.0 / ((2.0 * (math.pow((k * math.pow(t_m, 1.5)), 2.0) / l)) / l))
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) return Float64(t_s * Float64(2.0 / Float64(Float64(2.0 * Float64((Float64(k * (t_m ^ 1.5)) ^ 2.0) / l)) / l))) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp = code(t_s, t_m, l, k) tmp = t_s * (2.0 / ((2.0 * (((k * (t_m ^ 1.5)) ^ 2.0) / l)) / l)); end
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_] := N[(t$95$s * N[(2.0 / N[(N[(2.0 * N[(N[Power[N[(k * N[Power[t$95$m, 1.5], $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \frac{2}{\frac{2 \cdot \frac{{\left(k \cdot {t\_m}^{1.5}\right)}^{2}}{\ell}}{\ell}}
\end{array}
Initial program 56.0%
Simplified58.1%
associate-*l/59.2%
Applied egg-rr59.2%
Taylor expanded in k around 0 56.4%
pow156.4%
add-sqr-sqrt23.8%
pow223.8%
sqrt-prod23.8%
sqrt-pow126.7%
metadata-eval26.7%
pow126.7%
sqrt-pow128.5%
metadata-eval28.5%
Applied egg-rr28.5%
unpow128.5%
Simplified28.5%
t\_m = (fabs.f64 t) t\_s = (copysign.f64 #s(literal 1 binary64) t) (FPCore (t_s t_m l k) :precision binary64 (* t_s (/ 2.0 (* (* 2.0 k) (* k (pow (/ (pow t_m 1.5) l) 2.0))))))
t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
return t_s * (2.0 / ((2.0 * k) * (k * pow((pow(t_m, 1.5) / l), 2.0))));
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
code = t_s * (2.0d0 / ((2.0d0 * k) * (k * (((t_m ** 1.5d0) / l) ** 2.0d0))))
end function
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) {
return t_s * (2.0 / ((2.0 * k) * (k * Math.pow((Math.pow(t_m, 1.5) / l), 2.0))));
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): return t_s * (2.0 / ((2.0 * k) * (k * math.pow((math.pow(t_m, 1.5) / l), 2.0))))
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) return Float64(t_s * Float64(2.0 / Float64(Float64(2.0 * k) * Float64(k * (Float64((t_m ^ 1.5) / l) ^ 2.0))))) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp = code(t_s, t_m, l, k) tmp = t_s * (2.0 / ((2.0 * k) * (k * (((t_m ^ 1.5) / l) ^ 2.0)))); end
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_] := N[(t$95$s * N[(2.0 / N[(N[(2.0 * k), $MachinePrecision] * N[(k * N[Power[N[(N[Power[t$95$m, 1.5], $MachinePrecision] / l), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \frac{2}{\left(2 \cdot k\right) \cdot \left(k \cdot {\left(\frac{{t\_m}^{1.5}}{\ell}\right)}^{2}\right)}
\end{array}
Initial program 56.0%
Simplified56.0%
Taylor expanded in k around 0 55.1%
*-commutative55.1%
Simplified55.1%
associate-/r*59.4%
div-inv59.4%
add-sqr-sqrt31.7%
associate-*l*31.7%
sqrt-div13.6%
sqrt-pow113.5%
metadata-eval13.5%
sqrt-div13.5%
sqrt-pow115.1%
metadata-eval15.1%
Applied egg-rr15.1%
associate-*r/15.1%
*-rgt-identity15.1%
associate-/l/14.3%
Simplified14.3%
Taylor expanded in k around 0 56.5%
associate-/l*56.2%
Simplified56.2%
add-sqr-sqrt24.5%
sqrt-div24.5%
sqrt-pow123.3%
metadata-eval23.3%
sqrt-pow117.4%
metadata-eval17.4%
pow117.4%
sqrt-div17.4%
sqrt-pow119.4%
metadata-eval19.4%
sqrt-pow128.2%
metadata-eval28.2%
pow128.2%
Applied egg-rr28.2%
unpow228.2%
Simplified28.2%
Final simplification28.2%
t\_m = (fabs.f64 t) t\_s = (copysign.f64 #s(literal 1 binary64) t) (FPCore (t_s t_m l k) :precision binary64 (* t_s (/ 2.0 (* (* 2.0 k) (* k (/ (pow t_m 3.0) (pow l 2.0)))))))
t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
return t_s * (2.0 / ((2.0 * k) * (k * (pow(t_m, 3.0) / pow(l, 2.0)))));
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
code = t_s * (2.0d0 / ((2.0d0 * k) * (k * ((t_m ** 3.0d0) / (l ** 2.0d0)))))
end function
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) {
return t_s * (2.0 / ((2.0 * k) * (k * (Math.pow(t_m, 3.0) / Math.pow(l, 2.0)))));
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): return t_s * (2.0 / ((2.0 * k) * (k * (math.pow(t_m, 3.0) / math.pow(l, 2.0)))))
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) return Float64(t_s * Float64(2.0 / Float64(Float64(2.0 * k) * Float64(k * Float64((t_m ^ 3.0) / (l ^ 2.0)))))) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp = code(t_s, t_m, l, k) tmp = t_s * (2.0 / ((2.0 * k) * (k * ((t_m ^ 3.0) / (l ^ 2.0))))); end
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_] := N[(t$95$s * N[(2.0 / N[(N[(2.0 * k), $MachinePrecision] * N[(k * N[(N[Power[t$95$m, 3.0], $MachinePrecision] / N[Power[l, 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \frac{2}{\left(2 \cdot k\right) \cdot \left(k \cdot \frac{{t\_m}^{3}}{{\ell}^{2}}\right)}
\end{array}
Initial program 56.0%
Simplified56.0%
Taylor expanded in k around 0 55.1%
*-commutative55.1%
Simplified55.1%
associate-/r*59.4%
div-inv59.4%
add-sqr-sqrt31.7%
associate-*l*31.7%
sqrt-div13.6%
sqrt-pow113.5%
metadata-eval13.5%
sqrt-div13.5%
sqrt-pow115.1%
metadata-eval15.1%
Applied egg-rr15.1%
associate-*r/15.1%
*-rgt-identity15.1%
associate-/l/14.3%
Simplified14.3%
Taylor expanded in k around 0 56.5%
associate-/l*56.2%
Simplified56.2%
Final simplification56.2%
t\_m = (fabs.f64 t) t\_s = (copysign.f64 #s(literal 1 binary64) t) (FPCore (t_s t_m l k) :precision binary64 (* t_s (/ 2.0 (* (* 2.0 k) (* k (* (pow t_m 3.0) (pow l -2.0)))))))
t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
return t_s * (2.0 / ((2.0 * k) * (k * (pow(t_m, 3.0) * pow(l, -2.0)))));
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
code = t_s * (2.0d0 / ((2.0d0 * k) * (k * ((t_m ** 3.0d0) * (l ** (-2.0d0))))))
end function
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) {
return t_s * (2.0 / ((2.0 * k) * (k * (Math.pow(t_m, 3.0) * Math.pow(l, -2.0)))));
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): return t_s * (2.0 / ((2.0 * k) * (k * (math.pow(t_m, 3.0) * math.pow(l, -2.0)))))
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) return Float64(t_s * Float64(2.0 / Float64(Float64(2.0 * k) * Float64(k * Float64((t_m ^ 3.0) * (l ^ -2.0)))))) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp = code(t_s, t_m, l, k) tmp = t_s * (2.0 / ((2.0 * k) * (k * ((t_m ^ 3.0) * (l ^ -2.0))))); end
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_] := N[(t$95$s * N[(2.0 / N[(N[(2.0 * k), $MachinePrecision] * N[(k * N[(N[Power[t$95$m, 3.0], $MachinePrecision] * N[Power[l, -2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \frac{2}{\left(2 \cdot k\right) \cdot \left(k \cdot \left({t\_m}^{3} \cdot {\ell}^{-2}\right)\right)}
\end{array}
Initial program 56.0%
Simplified56.0%
Taylor expanded in k around 0 55.1%
*-commutative55.1%
Simplified55.1%
associate-/r*59.4%
div-inv59.4%
add-sqr-sqrt31.7%
associate-*l*31.7%
sqrt-div13.6%
sqrt-pow113.5%
metadata-eval13.5%
sqrt-div13.5%
sqrt-pow115.1%
metadata-eval15.1%
Applied egg-rr15.1%
associate-*r/15.1%
*-rgt-identity15.1%
associate-/l/14.3%
Simplified14.3%
Taylor expanded in k around 0 56.5%
associate-/l*56.2%
Simplified56.2%
div-inv56.1%
pow-flip56.1%
metadata-eval56.1%
Applied egg-rr56.1%
Final simplification56.1%
herbie shell --seed 2024111
(FPCore (t l k)
:name "Toniolo and Linder, Equation (10+)"
:precision binary64
(/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (+ (+ 1.0 (pow (/ k t) 2.0)) 1.0))))