
(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 19 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 1 t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 1.85e-55)
(*
2.0
(* (/ (pow l 2.0) (pow k 2.0)) (/ (/ (cos k) t_m) (pow (sin k) 2.0))))
(/
2.0
(pow
(*
(/ t_m (pow (cbrt l) 2.0))
(* (cbrt (* (sin k) (+ 2.0 (pow (/ k t_m) 2.0)))) (cbrt (tan k))))
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.85e-55) {
tmp = 2.0 * ((pow(l, 2.0) / pow(k, 2.0)) * ((cos(k) / t_m) / pow(sin(k), 2.0)));
} else {
tmp = 2.0 / pow(((t_m / pow(cbrt(l), 2.0)) * (cbrt((sin(k) * (2.0 + pow((k / t_m), 2.0)))) * cbrt(tan(k)))), 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.85e-55) {
tmp = 2.0 * ((Math.pow(l, 2.0) / Math.pow(k, 2.0)) * ((Math.cos(k) / t_m) / Math.pow(Math.sin(k), 2.0)));
} else {
tmp = 2.0 / Math.pow(((t_m / Math.pow(Math.cbrt(l), 2.0)) * (Math.cbrt((Math.sin(k) * (2.0 + Math.pow((k / t_m), 2.0)))) * Math.cbrt(Math.tan(k)))), 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.85e-55) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) / (k ^ 2.0)) * Float64(Float64(cos(k) / t_m) / (sin(k) ^ 2.0)))); else tmp = Float64(2.0 / (Float64(Float64(t_m / (cbrt(l) ^ 2.0)) * Float64(cbrt(Float64(sin(k) * Float64(2.0 + (Float64(k / t_m) ^ 2.0)))) * cbrt(tan(k)))) ^ 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.85e-55], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[(N[Cos[k], $MachinePrecision] / t$95$m), $MachinePrecision] / N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[Power[N[(N[(t$95$m / N[Power[N[Power[l, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[Power[N[(N[Sin[k], $MachinePrecision] * N[(2.0 + N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision] * N[Power[N[Tan[k], $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.85 \cdot 10^{-55}:\\
\;\;\;\;2 \cdot \left(\frac{{\ell}^{2}}{{k}^{2}} \cdot \frac{\frac{\cos k}{t\_m}}{{\sin k}^{2}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{{\left(\frac{t\_m}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \left(\sqrt[3]{\sin k \cdot \left(2 + {\left(\frac{k}{t\_m}\right)}^{2}\right)} \cdot \sqrt[3]{\tan k}\right)\right)}^{3}}\\
\end{array}
\end{array}
if t < 1.84999999999999993e-55Initial program 46.4%
associate-/r*46.4%
sqr-neg46.4%
associate-*l*44.2%
sqr-neg44.2%
associate-/r*50.2%
associate-+l+50.2%
unpow250.2%
times-frac33.7%
sqr-neg33.7%
times-frac50.2%
unpow250.2%
Simplified50.2%
Taylor expanded in t around 0 62.4%
times-frac63.8%
associate-/r*63.8%
Simplified63.8%
if 1.84999999999999993e-55 < t Initial program 79.2%
associate-*l*70.4%
associate-/r*74.2%
associate-*r*83.0%
+-commutative83.0%
associate-+r+83.0%
metadata-eval83.0%
associate-*r*83.0%
add-cube-cbrt83.0%
pow382.9%
Applied egg-rr86.2%
*-commutative86.2%
Simplified86.2%
associate-*r*86.2%
cbrt-prod96.2%
Applied egg-rr96.2%
Final simplification72.4%
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
:precision binary64
(let* ((t_2 (pow (/ k t_m) 2.0))
(t_3
(*
(+ 1.0 (+ t_2 1.0))
(* (tan k) (* (sin k) (/ (pow t_m 3.0) (* l l)))))))
(*
t_s
(if (<= t_3 1e+307)
(/ 2.0 (* (* (sin k) (/ (/ (pow t_m 3.0) l) l)) (* (+ 2.0 t_2) (tan k))))
(if (<= t_3 INFINITY)
(/ (pow l 2.0) (pow (* t_m (pow (cbrt k) 2.0)) 3.0))
(/
(* (pow l 2.0) (cos k))
(* (pow t_m 3.0) (- 0.5 (/ (cos (* 2.0 k)) 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 t_2 = pow((k / t_m), 2.0);
double t_3 = (1.0 + (t_2 + 1.0)) * (tan(k) * (sin(k) * (pow(t_m, 3.0) / (l * l))));
double tmp;
if (t_3 <= 1e+307) {
tmp = 2.0 / ((sin(k) * ((pow(t_m, 3.0) / l) / l)) * ((2.0 + t_2) * tan(k)));
} else if (t_3 <= ((double) INFINITY)) {
tmp = pow(l, 2.0) / pow((t_m * pow(cbrt(k), 2.0)), 3.0);
} else {
tmp = (pow(l, 2.0) * cos(k)) / (pow(t_m, 3.0) * (0.5 - (cos((2.0 * k)) / 2.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 t_2 = Math.pow((k / t_m), 2.0);
double t_3 = (1.0 + (t_2 + 1.0)) * (Math.tan(k) * (Math.sin(k) * (Math.pow(t_m, 3.0) / (l * l))));
double tmp;
if (t_3 <= 1e+307) {
tmp = 2.0 / ((Math.sin(k) * ((Math.pow(t_m, 3.0) / l) / l)) * ((2.0 + t_2) * Math.tan(k)));
} else if (t_3 <= Double.POSITIVE_INFINITY) {
tmp = Math.pow(l, 2.0) / Math.pow((t_m * Math.pow(Math.cbrt(k), 2.0)), 3.0);
} else {
tmp = (Math.pow(l, 2.0) * Math.cos(k)) / (Math.pow(t_m, 3.0) * (0.5 - (Math.cos((2.0 * k)) / 2.0)));
}
return t_s * tmp;
}
t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k) t_2 = Float64(k / t_m) ^ 2.0 t_3 = Float64(Float64(1.0 + Float64(t_2 + 1.0)) * Float64(tan(k) * Float64(sin(k) * Float64((t_m ^ 3.0) / Float64(l * l))))) tmp = 0.0 if (t_3 <= 1e+307) tmp = Float64(2.0 / Float64(Float64(sin(k) * Float64(Float64((t_m ^ 3.0) / l) / l)) * Float64(Float64(2.0 + t_2) * tan(k)))); elseif (t_3 <= Inf) tmp = Float64((l ^ 2.0) / (Float64(t_m * (cbrt(k) ^ 2.0)) ^ 3.0)); else tmp = Float64(Float64((l ^ 2.0) * cos(k)) / Float64((t_m ^ 3.0) * Float64(0.5 - Float64(cos(Float64(2.0 * k)) / 2.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_] := Block[{t$95$2 = N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]}, Block[{t$95$3 = N[(N[(1.0 + N[(t$95$2 + 1.0), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[(N[Power[t$95$m, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$3, 1e+307], N[(2.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[(N[(N[Power[t$95$m, 3.0], $MachinePrecision] / l), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] * N[(N[(2.0 + t$95$2), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$3, Infinity], N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[N[(t$95$m * N[Power[N[Power[k, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision] / N[(N[Power[t$95$m, 3.0], $MachinePrecision] * N[(0.5 - N[(N[Cos[N[(2.0 * k), $MachinePrecision]], $MachinePrecision] / 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]]]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := {\left(\frac{k}{t\_m}\right)}^{2}\\
t_3 := \left(1 + \left(t\_2 + 1\right)\right) \cdot \left(\tan k \cdot \left(\sin k \cdot \frac{{t\_m}^{3}}{\ell \cdot \ell}\right)\right)\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_3 \leq 10^{+307}:\\
\;\;\;\;\frac{2}{\left(\sin k \cdot \frac{\frac{{t\_m}^{3}}{\ell}}{\ell}\right) \cdot \left(\left(2 + t\_2\right) \cdot \tan k\right)}\\
\mathbf{elif}\;t\_3 \leq \infty:\\
\;\;\;\;\frac{{\ell}^{2}}{{\left(t\_m \cdot {\left(\sqrt[3]{k}\right)}^{2}\right)}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{{\ell}^{2} \cdot \cos k}{{t\_m}^{3} \cdot \left(0.5 - \frac{\cos \left(2 \cdot k\right)}{2}\right)}\\
\end{array}
\end{array}
\end{array}
if (*.f64 (*.f64 (*.f64 (/.f64 (pow.f64 t 3) (*.f64 l l)) (sin.f64 k)) (tan.f64 k)) (+.f64 (+.f64 1 (pow.f64 (/.f64 k t) 2)) 1)) < 9.99999999999999986e306Initial program 80.0%
associate-*l*80.0%
sqr-neg80.0%
sqr-neg80.0%
associate-/r*85.5%
distribute-rgt-in85.5%
unpow285.5%
times-frac66.8%
sqr-neg66.8%
times-frac85.5%
unpow285.5%
distribute-rgt-in85.5%
Simplified85.5%
if 9.99999999999999986e306 < (*.f64 (*.f64 (*.f64 (/.f64 (pow.f64 t 3) (*.f64 l l)) (sin.f64 k)) (tan.f64 k)) (+.f64 (+.f64 1 (pow.f64 (/.f64 k t) 2)) 1)) < +inf.0Initial program 87.0%
associate-/r*87.0%
sqr-neg87.0%
associate-*l*76.9%
sqr-neg76.9%
associate-/r*76.9%
associate-+l+76.9%
unpow276.9%
times-frac62.9%
sqr-neg62.9%
times-frac76.9%
unpow276.9%
Simplified76.9%
Taylor expanded in k around 0 77.8%
add-cube-cbrt77.8%
pow377.8%
*-commutative77.8%
cbrt-prod77.7%
unpow377.7%
add-cbrt-cube77.9%
unpow277.9%
cbrt-prod86.0%
pow286.0%
Applied egg-rr86.0%
if +inf.0 < (*.f64 (*.f64 (*.f64 (/.f64 (pow.f64 t 3) (*.f64 l l)) (sin.f64 k)) (tan.f64 k)) (+.f64 (+.f64 1 (pow.f64 (/.f64 k t) 2)) 1)) Initial program 0.0%
associate-/r*0.0%
sqr-neg0.0%
associate-*l*0.0%
sqr-neg0.0%
associate-/r*9.2%
associate-+l+9.2%
unpow29.2%
times-frac2.0%
sqr-neg2.0%
times-frac9.2%
unpow29.2%
Simplified9.2%
Taylor expanded in t around inf 28.6%
unpow228.6%
sin-mult28.6%
Applied egg-rr28.6%
div-sub28.6%
+-inverses28.6%
cos-028.6%
metadata-eval28.6%
count-228.6%
*-commutative28.6%
Simplified28.6%
Final simplification67.0%
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
:precision binary64
(let* ((t_2 (+ 1.0 (+ (pow (/ k t_m) 2.0) 1.0))))
(*
t_s
(if (<= (* t_2 (* (tan k) (* (sin k) (/ (pow t_m 3.0) (* l l))))) INFINITY)
(/ 2.0 (* t_2 (* (tan k) (* (sin k) (* (/ (pow t_m 2.0) l) (/ t_m l))))))
(/
2.0
(pow (* (/ t_m (pow (cbrt l) 2.0)) (cbrt (* 2.0 (pow k 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 t_2 = 1.0 + (pow((k / t_m), 2.0) + 1.0);
double tmp;
if ((t_2 * (tan(k) * (sin(k) * (pow(t_m, 3.0) / (l * l))))) <= ((double) INFINITY)) {
tmp = 2.0 / (t_2 * (tan(k) * (sin(k) * ((pow(t_m, 2.0) / l) * (t_m / l)))));
} else {
tmp = 2.0 / pow(((t_m / pow(cbrt(l), 2.0)) * cbrt((2.0 * pow(k, 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 t_2 = 1.0 + (Math.pow((k / t_m), 2.0) + 1.0);
double tmp;
if ((t_2 * (Math.tan(k) * (Math.sin(k) * (Math.pow(t_m, 3.0) / (l * l))))) <= Double.POSITIVE_INFINITY) {
tmp = 2.0 / (t_2 * (Math.tan(k) * (Math.sin(k) * ((Math.pow(t_m, 2.0) / l) * (t_m / l)))));
} else {
tmp = 2.0 / Math.pow(((t_m / Math.pow(Math.cbrt(l), 2.0)) * Math.cbrt((2.0 * Math.pow(k, 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) t_2 = Float64(1.0 + Float64((Float64(k / t_m) ^ 2.0) + 1.0)) tmp = 0.0 if (Float64(t_2 * Float64(tan(k) * Float64(sin(k) * Float64((t_m ^ 3.0) / Float64(l * l))))) <= Inf) tmp = Float64(2.0 / Float64(t_2 * Float64(tan(k) * Float64(sin(k) * Float64(Float64((t_m ^ 2.0) / l) * Float64(t_m / l)))))); else tmp = Float64(2.0 / (Float64(Float64(t_m / (cbrt(l) ^ 2.0)) * cbrt(Float64(2.0 * (k ^ 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_] := Block[{t$95$2 = N[(1.0 + N[(N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[N[(t$95$2 * N[(N[Tan[k], $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[(N[Power[t$95$m, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], Infinity], N[(2.0 / N[(t$95$2 * N[(N[Tan[k], $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[(N[(N[Power[t$95$m, 2.0], $MachinePrecision] / l), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[Power[N[(N[(t$95$m / N[Power[N[Power[l, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] * N[Power[N[(2.0 * N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := 1 + \left({\left(\frac{k}{t\_m}\right)}^{2} + 1\right)\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_2 \cdot \left(\tan k \cdot \left(\sin k \cdot \frac{{t\_m}^{3}}{\ell \cdot \ell}\right)\right) \leq \infty:\\
\;\;\;\;\frac{2}{t\_2 \cdot \left(\tan k \cdot \left(\sin k \cdot \left(\frac{{t\_m}^{2}}{\ell} \cdot \frac{t\_m}{\ell}\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{{\left(\frac{t\_m}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \sqrt[3]{2 \cdot {k}^{2}}\right)}^{3}}\\
\end{array}
\end{array}
\end{array}
if (*.f64 (*.f64 (*.f64 (/.f64 (pow.f64 t 3) (*.f64 l l)) (sin.f64 k)) (tan.f64 k)) (+.f64 (+.f64 1 (pow.f64 (/.f64 k t) 2)) 1)) < +inf.0Initial program 82.0%
unpow382.0%
times-frac90.2%
pow290.2%
Applied egg-rr90.2%
if +inf.0 < (*.f64 (*.f64 (*.f64 (/.f64 (pow.f64 t 3) (*.f64 l l)) (sin.f64 k)) (tan.f64 k)) (+.f64 (+.f64 1 (pow.f64 (/.f64 k t) 2)) 1)) Initial program 0.0%
associate-*l*0.0%
associate-/r*9.2%
associate-*r*9.2%
+-commutative9.2%
associate-+r+9.2%
metadata-eval9.2%
associate-*r*9.2%
add-cube-cbrt9.2%
pow39.2%
Applied egg-rr39.4%
*-commutative39.4%
Simplified39.4%
Taylor expanded in k around 0 40.2%
Final simplification73.8%
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 1.16e-55)
(*
2.0
(* (/ (pow l 2.0) (pow k 2.0)) (/ (/ (cos k) t_m) (pow (sin k) 2.0))))
(if (<= t_m 4.2e+207)
(/
2.0
(pow
(*
(* t_m (pow (cbrt l) -2.0))
(cbrt (* (+ 2.0 (pow (/ k t_m) 2.0)) (* (sin k) (tan k)))))
3.0))
(/
2.0
(pow
(*
(/ t_m (pow (cbrt l) 2.0))
(* (cbrt (tan k)) (cbrt (* 2.0 (sin k)))))
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.16e-55) {
tmp = 2.0 * ((pow(l, 2.0) / pow(k, 2.0)) * ((cos(k) / t_m) / pow(sin(k), 2.0)));
} else if (t_m <= 4.2e+207) {
tmp = 2.0 / pow(((t_m * pow(cbrt(l), -2.0)) * cbrt(((2.0 + pow((k / t_m), 2.0)) * (sin(k) * tan(k))))), 3.0);
} else {
tmp = 2.0 / pow(((t_m / pow(cbrt(l), 2.0)) * (cbrt(tan(k)) * cbrt((2.0 * sin(k))))), 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.16e-55) {
tmp = 2.0 * ((Math.pow(l, 2.0) / Math.pow(k, 2.0)) * ((Math.cos(k) / t_m) / Math.pow(Math.sin(k), 2.0)));
} else if (t_m <= 4.2e+207) {
tmp = 2.0 / Math.pow(((t_m * Math.pow(Math.cbrt(l), -2.0)) * Math.cbrt(((2.0 + Math.pow((k / t_m), 2.0)) * (Math.sin(k) * Math.tan(k))))), 3.0);
} else {
tmp = 2.0 / Math.pow(((t_m / Math.pow(Math.cbrt(l), 2.0)) * (Math.cbrt(Math.tan(k)) * Math.cbrt((2.0 * Math.sin(k))))), 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.16e-55) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) / (k ^ 2.0)) * Float64(Float64(cos(k) / t_m) / (sin(k) ^ 2.0)))); elseif (t_m <= 4.2e+207) tmp = Float64(2.0 / (Float64(Float64(t_m * (cbrt(l) ^ -2.0)) * cbrt(Float64(Float64(2.0 + (Float64(k / t_m) ^ 2.0)) * Float64(sin(k) * tan(k))))) ^ 3.0)); else tmp = Float64(2.0 / (Float64(Float64(t_m / (cbrt(l) ^ 2.0)) * Float64(cbrt(tan(k)) * cbrt(Float64(2.0 * sin(k))))) ^ 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.16e-55], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[(N[Cos[k], $MachinePrecision] / t$95$m), $MachinePrecision] / N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 4.2e+207], N[(2.0 / N[Power[N[(N[(t$95$m * N[Power[N[Power[l, 1/3], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision] * N[Power[N[(N[(2.0 + N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision], 3.0], $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[Tan[k], $MachinePrecision], 1/3], $MachinePrecision] * N[Power[N[(2.0 * N[Sin[k], $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.16 \cdot 10^{-55}:\\
\;\;\;\;2 \cdot \left(\frac{{\ell}^{2}}{{k}^{2}} \cdot \frac{\frac{\cos k}{t\_m}}{{\sin k}^{2}}\right)\\
\mathbf{elif}\;t\_m \leq 4.2 \cdot 10^{+207}:\\
\;\;\;\;\frac{2}{{\left(\left(t\_m \cdot {\left(\sqrt[3]{\ell}\right)}^{-2}\right) \cdot \sqrt[3]{\left(2 + {\left(\frac{k}{t\_m}\right)}^{2}\right) \cdot \left(\sin k \cdot \tan k\right)}\right)}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{{\left(\frac{t\_m}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \left(\sqrt[3]{\tan k} \cdot \sqrt[3]{2 \cdot \sin k}\right)\right)}^{3}}\\
\end{array}
\end{array}
if t < 1.15999999999999996e-55Initial program 46.4%
associate-/r*46.4%
sqr-neg46.4%
associate-*l*44.2%
sqr-neg44.2%
associate-/r*50.2%
associate-+l+50.2%
unpow250.2%
times-frac33.7%
sqr-neg33.7%
times-frac50.2%
unpow250.2%
Simplified50.2%
Taylor expanded in t around 0 62.4%
times-frac63.8%
associate-/r*63.8%
Simplified63.8%
if 1.15999999999999996e-55 < t < 4.1999999999999999e207Initial program 78.8%
associate-*l*77.1%
associate-/r*80.0%
associate-*r*81.8%
+-commutative81.8%
associate-+r+81.8%
metadata-eval81.8%
associate-*r*81.7%
add-cube-cbrt81.7%
pow381.6%
Applied egg-rr93.6%
*-commutative93.6%
Simplified93.6%
pow193.6%
*-commutative93.6%
div-inv93.6%
pow-flip93.6%
metadata-eval93.6%
Applied egg-rr93.6%
unpow193.6%
Simplified93.6%
if 4.1999999999999999e207 < t Initial program 80.5%
associate-*l*46.7%
associate-/r*53.8%
associate-*r*87.6%
+-commutative87.6%
associate-+r+87.6%
metadata-eval87.6%
associate-*r*87.6%
add-cube-cbrt87.6%
pow387.6%
Applied egg-rr60.2%
*-commutative60.2%
Simplified60.2%
associate-*r*60.2%
cbrt-prod99.3%
Applied egg-rr99.3%
Taylor expanded in t around inf 99.3%
*-commutative99.3%
Simplified99.3%
Final simplification72.1%
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 1.52e-55)
(*
2.0
(* (/ (pow l 2.0) (pow k 2.0)) (/ (/ (cos k) t_m) (pow (sin k) 2.0))))
(/
2.0
(*
(* (tan k) (pow (* (* t_m (pow (cbrt l) -2.0)) (cbrt (sin k))) 3.0))
(+ 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 <= 1.52e-55) {
tmp = 2.0 * ((pow(l, 2.0) / pow(k, 2.0)) * ((cos(k) / t_m) / pow(sin(k), 2.0)));
} else {
tmp = 2.0 / ((tan(k) * pow(((t_m * pow(cbrt(l), -2.0)) * cbrt(sin(k))), 3.0)) * (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 <= 1.52e-55) {
tmp = 2.0 * ((Math.pow(l, 2.0) / Math.pow(k, 2.0)) * ((Math.cos(k) / t_m) / Math.pow(Math.sin(k), 2.0)));
} else {
tmp = 2.0 / ((Math.tan(k) * Math.pow(((t_m * Math.pow(Math.cbrt(l), -2.0)) * Math.cbrt(Math.sin(k))), 3.0)) * (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 <= 1.52e-55) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) / (k ^ 2.0)) * Float64(Float64(cos(k) / t_m) / (sin(k) ^ 2.0)))); else tmp = Float64(2.0 / Float64(Float64(tan(k) * (Float64(Float64(t_m * (cbrt(l) ^ -2.0)) * cbrt(sin(k))) ^ 3.0)) * 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, 1.52e-55], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[(N[Cos[k], $MachinePrecision] / t$95$m), $MachinePrecision] / N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Tan[k], $MachinePrecision] * N[Power[N[(N[(t$95$m * N[Power[N[Power[l, 1/3], $MachinePrecision], -2.0], $MachinePrecision]), $MachinePrecision] * N[Power[N[Sin[k], $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision] * N[(1.0 + N[(N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision] + 1.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 1.52 \cdot 10^{-55}:\\
\;\;\;\;2 \cdot \left(\frac{{\ell}^{2}}{{k}^{2}} \cdot \frac{\frac{\cos k}{t\_m}}{{\sin k}^{2}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot {\left(\left(t\_m \cdot {\left(\sqrt[3]{\ell}\right)}^{-2}\right) \cdot \sqrt[3]{\sin k}\right)}^{3}\right) \cdot \left(1 + \left({\left(\frac{k}{t\_m}\right)}^{2} + 1\right)\right)}\\
\end{array}
\end{array}
if t < 1.5200000000000001e-55Initial program 46.4%
associate-/r*46.4%
sqr-neg46.4%
associate-*l*44.2%
sqr-neg44.2%
associate-/r*50.2%
associate-+l+50.2%
unpow250.2%
times-frac33.7%
sqr-neg33.7%
times-frac50.2%
unpow250.2%
Simplified50.2%
Taylor expanded in t around 0 62.4%
times-frac63.8%
associate-/r*63.8%
Simplified63.8%
if 1.5200000000000001e-55 < t Initial program 79.2%
unpow379.2%
times-frac88.7%
pow288.7%
Applied egg-rr88.7%
add-cube-cbrt88.5%
pow388.5%
cbrt-prod88.4%
frac-times79.1%
unpow279.1%
unpow379.1%
unpow279.1%
cbrt-div79.0%
unpow379.0%
add-cbrt-cube80.7%
unpow280.7%
cbrt-prod92.5%
unpow292.5%
div-inv92.6%
pow-flip92.5%
metadata-eval92.5%
Applied egg-rr92.5%
Final simplification71.4%
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
:precision binary64
(let* ((t_2 (/ t_m (pow (cbrt l) 2.0))))
(*
t_s
(if (<= k 2e+15)
(/ 2.0 (pow (* t_2 (* (cbrt (tan k)) (cbrt (* 2.0 (sin k))))) 3.0))
(if (<= k 2.4e+132)
(*
2.0
(/ (* (pow l 2.0) (cos k)) (* (pow k 2.0) (* t_m (pow (sin k) 2.0)))))
(/
2.0
(*
(+ 1.0 (+ (pow (/ k t_m) 2.0) 1.0))
(* (tan k) (* (sin k) (pow t_2 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 t_2 = t_m / pow(cbrt(l), 2.0);
double tmp;
if (k <= 2e+15) {
tmp = 2.0 / pow((t_2 * (cbrt(tan(k)) * cbrt((2.0 * sin(k))))), 3.0);
} else if (k <= 2.4e+132) {
tmp = 2.0 * ((pow(l, 2.0) * cos(k)) / (pow(k, 2.0) * (t_m * pow(sin(k), 2.0))));
} else {
tmp = 2.0 / ((1.0 + (pow((k / t_m), 2.0) + 1.0)) * (tan(k) * (sin(k) * pow(t_2, 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 t_2 = t_m / Math.pow(Math.cbrt(l), 2.0);
double tmp;
if (k <= 2e+15) {
tmp = 2.0 / Math.pow((t_2 * (Math.cbrt(Math.tan(k)) * Math.cbrt((2.0 * Math.sin(k))))), 3.0);
} else if (k <= 2.4e+132) {
tmp = 2.0 * ((Math.pow(l, 2.0) * Math.cos(k)) / (Math.pow(k, 2.0) * (t_m * Math.pow(Math.sin(k), 2.0))));
} else {
tmp = 2.0 / ((1.0 + (Math.pow((k / t_m), 2.0) + 1.0)) * (Math.tan(k) * (Math.sin(k) * Math.pow(t_2, 3.0))));
}
return t_s * tmp;
}
t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k) t_2 = Float64(t_m / (cbrt(l) ^ 2.0)) tmp = 0.0 if (k <= 2e+15) tmp = Float64(2.0 / (Float64(t_2 * Float64(cbrt(tan(k)) * cbrt(Float64(2.0 * sin(k))))) ^ 3.0)); elseif (k <= 2.4e+132) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) * cos(k)) / Float64((k ^ 2.0) * Float64(t_m * (sin(k) ^ 2.0))))); else tmp = Float64(2.0 / Float64(Float64(1.0 + Float64((Float64(k / t_m) ^ 2.0) + 1.0)) * Float64(tan(k) * Float64(sin(k) * (t_2 ^ 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_] := Block[{t$95$2 = N[(t$95$m / N[Power[N[Power[l, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[k, 2e+15], N[(2.0 / N[Power[N[(t$95$2 * N[(N[Power[N[Tan[k], $MachinePrecision], 1/3], $MachinePrecision] * N[Power[N[(2.0 * N[Sin[k], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 2.4e+132], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision] / N[(N[Power[k, 2.0], $MachinePrecision] * N[(t$95$m * N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(1.0 + N[(N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[Power[t$95$2, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := \frac{t\_m}{{\left(\sqrt[3]{\ell}\right)}^{2}}\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 2 \cdot 10^{+15}:\\
\;\;\;\;\frac{2}{{\left(t\_2 \cdot \left(\sqrt[3]{\tan k} \cdot \sqrt[3]{2 \cdot \sin k}\right)\right)}^{3}}\\
\mathbf{elif}\;k \leq 2.4 \cdot 10^{+132}:\\
\;\;\;\;2 \cdot \frac{{\ell}^{2} \cdot \cos k}{{k}^{2} \cdot \left(t\_m \cdot {\sin k}^{2}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(1 + \left({\left(\frac{k}{t\_m}\right)}^{2} + 1\right)\right) \cdot \left(\tan k \cdot \left(\sin k \cdot {t\_2}^{3}\right)\right)}\\
\end{array}
\end{array}
\end{array}
if k < 2e15Initial program 57.9%
associate-*l*52.9%
associate-/r*58.7%
associate-*r*63.7%
+-commutative63.7%
associate-+r+63.8%
metadata-eval63.8%
associate-*r*63.7%
add-cube-cbrt63.6%
pow363.6%
Applied egg-rr73.5%
*-commutative73.5%
Simplified73.5%
associate-*r*73.6%
cbrt-prod81.3%
Applied egg-rr81.3%
Taylor expanded in t around inf 77.9%
*-commutative77.9%
Simplified77.9%
if 2e15 < k < 2.4000000000000001e132Initial program 47.0%
associate-/r*47.1%
sqr-neg47.1%
associate-*l*47.1%
sqr-neg47.1%
associate-/r*47.4%
associate-+l+47.4%
unpow247.4%
times-frac47.5%
sqr-neg47.5%
times-frac47.4%
unpow247.4%
Simplified47.4%
Taylor expanded in t around 0 86.8%
if 2.4000000000000001e132 < k Initial program 42.9%
associate-/r*51.0%
add-cube-cbrt50.9%
pow350.9%
associate-/r*42.8%
cbrt-div42.9%
rem-cbrt-cube58.5%
cbrt-prod69.4%
pow269.4%
Applied egg-rr69.4%
Final simplification78.1%
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 2.65e-5)
(/
2.0
(pow
(* (/ t_m (pow (cbrt l) 2.0)) (* (cbrt (tan k)) (cbrt (* 2.0 k))))
3.0))
(if (<= k 4e+130)
(*
2.0
(/ (* (pow l 2.0) (cos k)) (* (pow k 2.0) (* t_m (pow (sin k) 2.0)))))
(/
2.0
(*
(+ 1.0 (+ (pow (/ k t_m) 2.0) 1.0))
(* (tan k) (* (sin k) (pow (* t_m (pow (cbrt l) -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 (k <= 2.65e-5) {
tmp = 2.0 / pow(((t_m / pow(cbrt(l), 2.0)) * (cbrt(tan(k)) * cbrt((2.0 * k)))), 3.0);
} else if (k <= 4e+130) {
tmp = 2.0 * ((pow(l, 2.0) * cos(k)) / (pow(k, 2.0) * (t_m * pow(sin(k), 2.0))));
} else {
tmp = 2.0 / ((1.0 + (pow((k / t_m), 2.0) + 1.0)) * (tan(k) * (sin(k) * pow((t_m * pow(cbrt(l), -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 (k <= 2.65e-5) {
tmp = 2.0 / Math.pow(((t_m / Math.pow(Math.cbrt(l), 2.0)) * (Math.cbrt(Math.tan(k)) * Math.cbrt((2.0 * k)))), 3.0);
} else if (k <= 4e+130) {
tmp = 2.0 * ((Math.pow(l, 2.0) * Math.cos(k)) / (Math.pow(k, 2.0) * (t_m * Math.pow(Math.sin(k), 2.0))));
} else {
tmp = 2.0 / ((1.0 + (Math.pow((k / t_m), 2.0) + 1.0)) * (Math.tan(k) * (Math.sin(k) * Math.pow((t_m * Math.pow(Math.cbrt(l), -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 (k <= 2.65e-5) tmp = Float64(2.0 / (Float64(Float64(t_m / (cbrt(l) ^ 2.0)) * Float64(cbrt(tan(k)) * cbrt(Float64(2.0 * k)))) ^ 3.0)); elseif (k <= 4e+130) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) * cos(k)) / Float64((k ^ 2.0) * Float64(t_m * (sin(k) ^ 2.0))))); else tmp = Float64(2.0 / Float64(Float64(1.0 + Float64((Float64(k / t_m) ^ 2.0) + 1.0)) * Float64(tan(k) * Float64(sin(k) * (Float64(t_m * (cbrt(l) ^ -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[k, 2.65e-5], 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[Tan[k], $MachinePrecision], 1/3], $MachinePrecision] * N[Power[N[(2.0 * k), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 4e+130], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision] / N[(N[Power[k, 2.0], $MachinePrecision] * N[(t$95$m * N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(1.0 + N[(N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * 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]), $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.65 \cdot 10^{-5}:\\
\;\;\;\;\frac{2}{{\left(\frac{t\_m}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \left(\sqrt[3]{\tan k} \cdot \sqrt[3]{2 \cdot k}\right)\right)}^{3}}\\
\mathbf{elif}\;k \leq 4 \cdot 10^{+130}:\\
\;\;\;\;2 \cdot \frac{{\ell}^{2} \cdot \cos k}{{k}^{2} \cdot \left(t\_m \cdot {\sin k}^{2}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(1 + \left({\left(\frac{k}{t\_m}\right)}^{2} + 1\right)\right) \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(t\_m \cdot {\left(\sqrt[3]{\ell}\right)}^{-2}\right)}^{3}\right)\right)}\\
\end{array}
\end{array}
if k < 2.65e-5Initial program 59.6%
associate-*l*54.3%
associate-/r*59.4%
associate-*r*64.7%
+-commutative64.7%
associate-+r+64.7%
metadata-eval64.7%
associate-*r*64.6%
add-cube-cbrt64.6%
pow364.5%
Applied egg-rr74.3%
*-commutative74.3%
Simplified74.3%
associate-*r*74.4%
cbrt-prod82.5%
Applied egg-rr82.5%
Taylor expanded in k around 0 75.0%
*-commutative75.0%
Simplified75.0%
if 2.65e-5 < k < 4.0000000000000002e130Initial program 41.5%
associate-/r*41.5%
sqr-neg41.5%
associate-*l*41.5%
sqr-neg41.5%
associate-/r*46.8%
associate-+l+46.8%
unpow246.8%
times-frac46.8%
sqr-neg46.8%
times-frac46.8%
unpow246.8%
Simplified46.8%
Taylor expanded in t around 0 78.3%
if 4.0000000000000002e130 < k Initial program 42.9%
unpow342.9%
times-frac58.1%
pow258.1%
Applied egg-rr58.1%
add-cube-cbrt57.8%
pow357.8%
cbrt-prod57.6%
frac-times42.8%
unpow242.8%
unpow342.8%
unpow242.8%
cbrt-div42.9%
unpow342.9%
add-cbrt-cube58.5%
unpow258.5%
cbrt-prod69.2%
unpow269.2%
div-inv69.3%
pow-flip69.2%
metadata-eval69.2%
Applied egg-rr69.2%
*-commutative69.2%
cube-prod69.2%
rem-cube-cbrt69.3%
Simplified69.3%
Final simplification75.0%
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
:precision binary64
(let* ((t_2 (/ t_m (pow (cbrt l) 2.0))))
(*
t_s
(if (<= k 5.4e-5)
(/ 2.0 (pow (* t_2 (* (cbrt (tan k)) (cbrt (* 2.0 k)))) 3.0))
(if (<= k 2.3e+132)
(*
2.0
(/ (* (pow l 2.0) (cos k)) (* (pow k 2.0) (* t_m (pow (sin k) 2.0)))))
(/
2.0
(*
(+ 1.0 (+ (pow (/ k t_m) 2.0) 1.0))
(* (tan k) (* (sin k) (pow t_2 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 t_2 = t_m / pow(cbrt(l), 2.0);
double tmp;
if (k <= 5.4e-5) {
tmp = 2.0 / pow((t_2 * (cbrt(tan(k)) * cbrt((2.0 * k)))), 3.0);
} else if (k <= 2.3e+132) {
tmp = 2.0 * ((pow(l, 2.0) * cos(k)) / (pow(k, 2.0) * (t_m * pow(sin(k), 2.0))));
} else {
tmp = 2.0 / ((1.0 + (pow((k / t_m), 2.0) + 1.0)) * (tan(k) * (sin(k) * pow(t_2, 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 t_2 = t_m / Math.pow(Math.cbrt(l), 2.0);
double tmp;
if (k <= 5.4e-5) {
tmp = 2.0 / Math.pow((t_2 * (Math.cbrt(Math.tan(k)) * Math.cbrt((2.0 * k)))), 3.0);
} else if (k <= 2.3e+132) {
tmp = 2.0 * ((Math.pow(l, 2.0) * Math.cos(k)) / (Math.pow(k, 2.0) * (t_m * Math.pow(Math.sin(k), 2.0))));
} else {
tmp = 2.0 / ((1.0 + (Math.pow((k / t_m), 2.0) + 1.0)) * (Math.tan(k) * (Math.sin(k) * Math.pow(t_2, 3.0))));
}
return t_s * tmp;
}
t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k) t_2 = Float64(t_m / (cbrt(l) ^ 2.0)) tmp = 0.0 if (k <= 5.4e-5) tmp = Float64(2.0 / (Float64(t_2 * Float64(cbrt(tan(k)) * cbrt(Float64(2.0 * k)))) ^ 3.0)); elseif (k <= 2.3e+132) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) * cos(k)) / Float64((k ^ 2.0) * Float64(t_m * (sin(k) ^ 2.0))))); else tmp = Float64(2.0 / Float64(Float64(1.0 + Float64((Float64(k / t_m) ^ 2.0) + 1.0)) * Float64(tan(k) * Float64(sin(k) * (t_2 ^ 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_] := Block[{t$95$2 = N[(t$95$m / N[Power[N[Power[l, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[k, 5.4e-5], N[(2.0 / N[Power[N[(t$95$2 * N[(N[Power[N[Tan[k], $MachinePrecision], 1/3], $MachinePrecision] * N[Power[N[(2.0 * k), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 2.3e+132], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision] / N[(N[Power[k, 2.0], $MachinePrecision] * N[(t$95$m * N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(1.0 + N[(N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[Power[t$95$2, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := \frac{t\_m}{{\left(\sqrt[3]{\ell}\right)}^{2}}\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 5.4 \cdot 10^{-5}:\\
\;\;\;\;\frac{2}{{\left(t\_2 \cdot \left(\sqrt[3]{\tan k} \cdot \sqrt[3]{2 \cdot k}\right)\right)}^{3}}\\
\mathbf{elif}\;k \leq 2.3 \cdot 10^{+132}:\\
\;\;\;\;2 \cdot \frac{{\ell}^{2} \cdot \cos k}{{k}^{2} \cdot \left(t\_m \cdot {\sin k}^{2}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(1 + \left({\left(\frac{k}{t\_m}\right)}^{2} + 1\right)\right) \cdot \left(\tan k \cdot \left(\sin k \cdot {t\_2}^{3}\right)\right)}\\
\end{array}
\end{array}
\end{array}
if k < 5.3999999999999998e-5Initial program 59.6%
associate-*l*54.3%
associate-/r*59.4%
associate-*r*64.7%
+-commutative64.7%
associate-+r+64.7%
metadata-eval64.7%
associate-*r*64.6%
add-cube-cbrt64.6%
pow364.5%
Applied egg-rr74.3%
*-commutative74.3%
Simplified74.3%
associate-*r*74.4%
cbrt-prod82.5%
Applied egg-rr82.5%
Taylor expanded in k around 0 75.0%
*-commutative75.0%
Simplified75.0%
if 5.3999999999999998e-5 < k < 2.3000000000000002e132Initial program 41.5%
associate-/r*41.5%
sqr-neg41.5%
associate-*l*41.5%
sqr-neg41.5%
associate-/r*46.8%
associate-+l+46.8%
unpow246.8%
times-frac46.8%
sqr-neg46.8%
times-frac46.8%
unpow246.8%
Simplified46.8%
Taylor expanded in t around 0 78.3%
if 2.3000000000000002e132 < k Initial program 42.9%
associate-/r*51.0%
add-cube-cbrt50.9%
pow350.9%
associate-/r*42.8%
cbrt-div42.9%
rem-cbrt-cube58.5%
cbrt-prod69.4%
pow269.4%
Applied egg-rr69.4%
Final simplification75.0%
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 5.8e-6)
(/
2.0
(pow
(* (/ t_m (pow (cbrt l) 2.0)) (* (cbrt (tan k)) (cbrt (* 2.0 k))))
3.0))
(if (<= k 2.6e+132)
(*
2.0
(/ (* (pow l 2.0) (cos k)) (* (pow k 2.0) (* t_m (pow (sin k) 2.0)))))
(/
2.0
(*
(+ 1.0 (+ (pow (/ k t_m) 2.0) 1.0))
(* (tan k) (* (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 (k <= 5.8e-6) {
tmp = 2.0 / pow(((t_m / pow(cbrt(l), 2.0)) * (cbrt(tan(k)) * cbrt((2.0 * k)))), 3.0);
} else if (k <= 2.6e+132) {
tmp = 2.0 * ((pow(l, 2.0) * cos(k)) / (pow(k, 2.0) * (t_m * pow(sin(k), 2.0))));
} else {
tmp = 2.0 / ((1.0 + (pow((k / t_m), 2.0) + 1.0)) * (tan(k) * (sin(k) * pow((pow(t_m, 1.5) / l), 2.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 <= 5.8e-6) {
tmp = 2.0 / Math.pow(((t_m / Math.pow(Math.cbrt(l), 2.0)) * (Math.cbrt(Math.tan(k)) * Math.cbrt((2.0 * k)))), 3.0);
} else if (k <= 2.6e+132) {
tmp = 2.0 * ((Math.pow(l, 2.0) * Math.cos(k)) / (Math.pow(k, 2.0) * (t_m * Math.pow(Math.sin(k), 2.0))));
} else {
tmp = 2.0 / ((1.0 + (Math.pow((k / t_m), 2.0) + 1.0)) * (Math.tan(k) * (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 (k <= 5.8e-6) tmp = Float64(2.0 / (Float64(Float64(t_m / (cbrt(l) ^ 2.0)) * Float64(cbrt(tan(k)) * cbrt(Float64(2.0 * k)))) ^ 3.0)); elseif (k <= 2.6e+132) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) * cos(k)) / Float64((k ^ 2.0) * Float64(t_m * (sin(k) ^ 2.0))))); else tmp = Float64(2.0 / Float64(Float64(1.0 + Float64((Float64(k / t_m) ^ 2.0) + 1.0)) * Float64(tan(k) * Float64(sin(k) * (Float64((t_m ^ 1.5) / l) ^ 2.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, 5.8e-6], 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[Tan[k], $MachinePrecision], 1/3], $MachinePrecision] * N[Power[N[(2.0 * k), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 2.6e+132], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision] / N[(N[Power[k, 2.0], $MachinePrecision] * N[(t$95$m * N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(1.0 + N[(N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $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]]]), $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 5.8 \cdot 10^{-6}:\\
\;\;\;\;\frac{2}{{\left(\frac{t\_m}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \left(\sqrt[3]{\tan k} \cdot \sqrt[3]{2 \cdot k}\right)\right)}^{3}}\\
\mathbf{elif}\;k \leq 2.6 \cdot 10^{+132}:\\
\;\;\;\;2 \cdot \frac{{\ell}^{2} \cdot \cos k}{{k}^{2} \cdot \left(t\_m \cdot {\sin k}^{2}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(1 + \left({\left(\frac{k}{t\_m}\right)}^{2} + 1\right)\right) \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{{t\_m}^{1.5}}{\ell}\right)}^{2}\right)\right)}\\
\end{array}
\end{array}
if k < 5.8000000000000004e-6Initial program 59.6%
associate-*l*54.3%
associate-/r*59.4%
associate-*r*64.7%
+-commutative64.7%
associate-+r+64.7%
metadata-eval64.7%
associate-*r*64.6%
add-cube-cbrt64.6%
pow364.5%
Applied egg-rr74.3%
*-commutative74.3%
Simplified74.3%
associate-*r*74.4%
cbrt-prod82.5%
Applied egg-rr82.5%
Taylor expanded in k around 0 75.0%
*-commutative75.0%
Simplified75.0%
if 5.8000000000000004e-6 < k < 2.6e132Initial program 41.5%
associate-/r*41.5%
sqr-neg41.5%
associate-*l*41.5%
sqr-neg41.5%
associate-/r*46.8%
associate-+l+46.8%
unpow246.8%
times-frac46.8%
sqr-neg46.8%
times-frac46.8%
unpow246.8%
Simplified46.8%
Taylor expanded in t around 0 78.3%
if 2.6e132 < k Initial program 42.9%
associate-/r*51.0%
add-sqr-sqrt27.4%
pow227.4%
associate-/r*23.6%
sqrt-div23.6%
sqrt-pow131.3%
metadata-eval31.3%
sqrt-prod27.4%
add-sqr-sqrt35.1%
Applied egg-rr35.1%
Final simplification71.5%
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
:precision binary64
(let* ((t_2 (pow (/ k t_m) 2.0)))
(*
t_s
(if (<= t_m 2.45e-55)
(*
2.0
(* (/ (pow l 2.0) (pow k 2.0)) (/ (cos k) (* t_m (pow (sin k) 2.0)))))
(if (<= t_m 1.35e+154)
(/
2.0
(*
(+ 1.0 (+ t_2 1.0))
(* (tan k) (* (sin k) (* (/ (pow t_m 2.0) l) (/ t_m l))))))
(if (<= t_m 2.4e+214)
(/
2.0
(pow (* (/ t_m (pow (cbrt l) 2.0)) (cbrt (* 2.0 (pow k 2.0)))) 3.0))
(/
2.0
(*
(* (sin k) (/ (/ (pow t_m 3.0) l) l))
(* (+ 2.0 t_2) (tan k))))))))))t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double t_2 = pow((k / t_m), 2.0);
double tmp;
if (t_m <= 2.45e-55) {
tmp = 2.0 * ((pow(l, 2.0) / pow(k, 2.0)) * (cos(k) / (t_m * pow(sin(k), 2.0))));
} else if (t_m <= 1.35e+154) {
tmp = 2.0 / ((1.0 + (t_2 + 1.0)) * (tan(k) * (sin(k) * ((pow(t_m, 2.0) / l) * (t_m / l)))));
} else if (t_m <= 2.4e+214) {
tmp = 2.0 / pow(((t_m / pow(cbrt(l), 2.0)) * cbrt((2.0 * pow(k, 2.0)))), 3.0);
} else {
tmp = 2.0 / ((sin(k) * ((pow(t_m, 3.0) / l) / l)) * ((2.0 + t_2) * tan(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 t_2 = Math.pow((k / t_m), 2.0);
double tmp;
if (t_m <= 2.45e-55) {
tmp = 2.0 * ((Math.pow(l, 2.0) / Math.pow(k, 2.0)) * (Math.cos(k) / (t_m * Math.pow(Math.sin(k), 2.0))));
} else if (t_m <= 1.35e+154) {
tmp = 2.0 / ((1.0 + (t_2 + 1.0)) * (Math.tan(k) * (Math.sin(k) * ((Math.pow(t_m, 2.0) / l) * (t_m / l)))));
} else if (t_m <= 2.4e+214) {
tmp = 2.0 / Math.pow(((t_m / Math.pow(Math.cbrt(l), 2.0)) * Math.cbrt((2.0 * Math.pow(k, 2.0)))), 3.0);
} else {
tmp = 2.0 / ((Math.sin(k) * ((Math.pow(t_m, 3.0) / l) / l)) * ((2.0 + t_2) * Math.tan(k)));
}
return t_s * tmp;
}
t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k) t_2 = Float64(k / t_m) ^ 2.0 tmp = 0.0 if (t_m <= 2.45e-55) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) / (k ^ 2.0)) * Float64(cos(k) / Float64(t_m * (sin(k) ^ 2.0))))); elseif (t_m <= 1.35e+154) tmp = Float64(2.0 / Float64(Float64(1.0 + Float64(t_2 + 1.0)) * Float64(tan(k) * Float64(sin(k) * Float64(Float64((t_m ^ 2.0) / l) * Float64(t_m / l)))))); elseif (t_m <= 2.4e+214) tmp = Float64(2.0 / (Float64(Float64(t_m / (cbrt(l) ^ 2.0)) * cbrt(Float64(2.0 * (k ^ 2.0)))) ^ 3.0)); else tmp = Float64(2.0 / Float64(Float64(sin(k) * Float64(Float64((t_m ^ 3.0) / l) / l)) * Float64(Float64(2.0 + t_2) * tan(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_] := Block[{t$95$2 = N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 2.45e-55], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[Cos[k], $MachinePrecision] / N[(t$95$m * N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 1.35e+154], N[(2.0 / N[(N[(1.0 + N[(t$95$2 + 1.0), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[(N[(N[Power[t$95$m, 2.0], $MachinePrecision] / l), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 2.4e+214], N[(2.0 / N[Power[N[(N[(t$95$m / N[Power[N[Power[l, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] * N[Power[N[(2.0 * N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[(N[(N[Power[t$95$m, 3.0], $MachinePrecision] / l), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] * N[(N[(2.0 + t$95$2), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]), $MachinePrecision]]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := {\left(\frac{k}{t\_m}\right)}^{2}\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 2.45 \cdot 10^{-55}:\\
\;\;\;\;2 \cdot \left(\frac{{\ell}^{2}}{{k}^{2}} \cdot \frac{\cos k}{t\_m \cdot {\sin k}^{2}}\right)\\
\mathbf{elif}\;t\_m \leq 1.35 \cdot 10^{+154}:\\
\;\;\;\;\frac{2}{\left(1 + \left(t\_2 + 1\right)\right) \cdot \left(\tan k \cdot \left(\sin k \cdot \left(\frac{{t\_m}^{2}}{\ell} \cdot \frac{t\_m}{\ell}\right)\right)\right)}\\
\mathbf{elif}\;t\_m \leq 2.4 \cdot 10^{+214}:\\
\;\;\;\;\frac{2}{{\left(\frac{t\_m}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \sqrt[3]{2 \cdot {k}^{2}}\right)}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\sin k \cdot \frac{\frac{{t\_m}^{3}}{\ell}}{\ell}\right) \cdot \left(\left(2 + t\_2\right) \cdot \tan k\right)}\\
\end{array}
\end{array}
\end{array}
if t < 2.45000000000000018e-55Initial program 46.4%
associate-/r*46.4%
sqr-neg46.4%
associate-*l*44.2%
sqr-neg44.2%
associate-/r*50.2%
associate-+l+50.2%
unpow250.2%
times-frac33.7%
sqr-neg33.7%
times-frac50.2%
unpow250.2%
Simplified50.2%
Taylor expanded in t around 0 62.4%
times-frac63.8%
Simplified63.8%
if 2.45000000000000018e-55 < t < 1.35000000000000003e154Initial program 78.7%
unpow378.8%
times-frac89.9%
pow289.9%
Applied egg-rr89.9%
if 1.35000000000000003e154 < t < 2.4000000000000001e214Initial program 83.3%
associate-*l*83.3%
associate-/r*83.8%
associate-*r*83.8%
+-commutative83.8%
associate-+r+83.8%
metadata-eval83.8%
associate-*r*83.8%
add-cube-cbrt83.8%
pow383.8%
Applied egg-rr99.3%
*-commutative99.3%
Simplified99.3%
Taylor expanded in k around 0 99.3%
if 2.4000000000000001e214 < t Initial program 79.1%
associate-*l*79.1%
sqr-neg79.1%
sqr-neg79.1%
associate-/r*86.7%
distribute-rgt-in86.7%
unpow286.7%
times-frac65.2%
sqr-neg65.2%
times-frac86.7%
unpow286.7%
distribute-rgt-in86.7%
Simplified86.7%
Final simplification70.8%
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
:precision binary64
(let* ((t_2 (pow (/ k t_m) 2.0)))
(*
t_s
(if (<= t_m 1.9e-55)
(*
2.0
(* (/ (pow l 2.0) (pow k 2.0)) (/ (/ (cos k) t_m) (pow (sin k) 2.0))))
(if (<= t_m 1.35e+154)
(/
2.0
(*
(+ 1.0 (+ t_2 1.0))
(* (tan k) (* (sin k) (* (/ (pow t_m 2.0) l) (/ t_m l))))))
(if (<= t_m 2.56e+213)
(/
2.0
(pow (* (/ t_m (pow (cbrt l) 2.0)) (cbrt (* 2.0 (pow k 2.0)))) 3.0))
(/
2.0
(*
(* (sin k) (/ (/ (pow t_m 3.0) l) l))
(* (+ 2.0 t_2) (tan k))))))))))t_m = fabs(t);
t_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double t_2 = pow((k / t_m), 2.0);
double tmp;
if (t_m <= 1.9e-55) {
tmp = 2.0 * ((pow(l, 2.0) / pow(k, 2.0)) * ((cos(k) / t_m) / pow(sin(k), 2.0)));
} else if (t_m <= 1.35e+154) {
tmp = 2.0 / ((1.0 + (t_2 + 1.0)) * (tan(k) * (sin(k) * ((pow(t_m, 2.0) / l) * (t_m / l)))));
} else if (t_m <= 2.56e+213) {
tmp = 2.0 / pow(((t_m / pow(cbrt(l), 2.0)) * cbrt((2.0 * pow(k, 2.0)))), 3.0);
} else {
tmp = 2.0 / ((sin(k) * ((pow(t_m, 3.0) / l) / l)) * ((2.0 + t_2) * tan(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 t_2 = Math.pow((k / t_m), 2.0);
double tmp;
if (t_m <= 1.9e-55) {
tmp = 2.0 * ((Math.pow(l, 2.0) / Math.pow(k, 2.0)) * ((Math.cos(k) / t_m) / Math.pow(Math.sin(k), 2.0)));
} else if (t_m <= 1.35e+154) {
tmp = 2.0 / ((1.0 + (t_2 + 1.0)) * (Math.tan(k) * (Math.sin(k) * ((Math.pow(t_m, 2.0) / l) * (t_m / l)))));
} else if (t_m <= 2.56e+213) {
tmp = 2.0 / Math.pow(((t_m / Math.pow(Math.cbrt(l), 2.0)) * Math.cbrt((2.0 * Math.pow(k, 2.0)))), 3.0);
} else {
tmp = 2.0 / ((Math.sin(k) * ((Math.pow(t_m, 3.0) / l) / l)) * ((2.0 + t_2) * Math.tan(k)));
}
return t_s * tmp;
}
t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k) t_2 = Float64(k / t_m) ^ 2.0 tmp = 0.0 if (t_m <= 1.9e-55) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) / (k ^ 2.0)) * Float64(Float64(cos(k) / t_m) / (sin(k) ^ 2.0)))); elseif (t_m <= 1.35e+154) tmp = Float64(2.0 / Float64(Float64(1.0 + Float64(t_2 + 1.0)) * Float64(tan(k) * Float64(sin(k) * Float64(Float64((t_m ^ 2.0) / l) * Float64(t_m / l)))))); elseif (t_m <= 2.56e+213) tmp = Float64(2.0 / (Float64(Float64(t_m / (cbrt(l) ^ 2.0)) * cbrt(Float64(2.0 * (k ^ 2.0)))) ^ 3.0)); else tmp = Float64(2.0 / Float64(Float64(sin(k) * Float64(Float64((t_m ^ 3.0) / l) / l)) * Float64(Float64(2.0 + t_2) * tan(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_] := Block[{t$95$2 = N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 1.9e-55], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[(N[Cos[k], $MachinePrecision] / t$95$m), $MachinePrecision] / N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 1.35e+154], N[(2.0 / N[(N[(1.0 + N[(t$95$2 + 1.0), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[(N[(N[Power[t$95$m, 2.0], $MachinePrecision] / l), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 2.56e+213], N[(2.0 / N[Power[N[(N[(t$95$m / N[Power[N[Power[l, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] * N[Power[N[(2.0 * N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[(N[(N[Power[t$95$m, 3.0], $MachinePrecision] / l), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] * N[(N[(2.0 + t$95$2), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]), $MachinePrecision]]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := {\left(\frac{k}{t\_m}\right)}^{2}\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 1.9 \cdot 10^{-55}:\\
\;\;\;\;2 \cdot \left(\frac{{\ell}^{2}}{{k}^{2}} \cdot \frac{\frac{\cos k}{t\_m}}{{\sin k}^{2}}\right)\\
\mathbf{elif}\;t\_m \leq 1.35 \cdot 10^{+154}:\\
\;\;\;\;\frac{2}{\left(1 + \left(t\_2 + 1\right)\right) \cdot \left(\tan k \cdot \left(\sin k \cdot \left(\frac{{t\_m}^{2}}{\ell} \cdot \frac{t\_m}{\ell}\right)\right)\right)}\\
\mathbf{elif}\;t\_m \leq 2.56 \cdot 10^{+213}:\\
\;\;\;\;\frac{2}{{\left(\frac{t\_m}{{\left(\sqrt[3]{\ell}\right)}^{2}} \cdot \sqrt[3]{2 \cdot {k}^{2}}\right)}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\sin k \cdot \frac{\frac{{t\_m}^{3}}{\ell}}{\ell}\right) \cdot \left(\left(2 + t\_2\right) \cdot \tan k\right)}\\
\end{array}
\end{array}
\end{array}
if t < 1.8999999999999998e-55Initial program 46.4%
associate-/r*46.4%
sqr-neg46.4%
associate-*l*44.2%
sqr-neg44.2%
associate-/r*50.2%
associate-+l+50.2%
unpow250.2%
times-frac33.7%
sqr-neg33.7%
times-frac50.2%
unpow250.2%
Simplified50.2%
Taylor expanded in t around 0 62.4%
times-frac63.8%
associate-/r*63.8%
Simplified63.8%
if 1.8999999999999998e-55 < t < 1.35000000000000003e154Initial program 78.7%
unpow378.8%
times-frac89.9%
pow289.9%
Applied egg-rr89.9%
if 1.35000000000000003e154 < t < 2.5599999999999999e213Initial program 83.3%
associate-*l*83.3%
associate-/r*83.8%
associate-*r*83.8%
+-commutative83.8%
associate-+r+83.8%
metadata-eval83.8%
associate-*r*83.8%
add-cube-cbrt83.8%
pow383.8%
Applied egg-rr99.3%
*-commutative99.3%
Simplified99.3%
Taylor expanded in k around 0 99.3%
if 2.5599999999999999e213 < t Initial program 79.1%
associate-*l*79.1%
sqr-neg79.1%
sqr-neg79.1%
associate-/r*86.7%
distribute-rgt-in86.7%
unpow286.7%
times-frac65.2%
sqr-neg65.2%
times-frac86.7%
unpow286.7%
distribute-rgt-in86.7%
Simplified86.7%
Final simplification70.8%
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 8.8e-55)
(*
2.0
(* (/ (pow l 2.0) (pow k 2.0)) (/ (/ (cos k) t_m) (pow (sin k) 2.0))))
(/
2.0
(*
(+ 1.0 (+ (pow (/ k t_m) 2.0) 1.0))
(* (tan k) (* (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 <= 8.8e-55) {
tmp = 2.0 * ((pow(l, 2.0) / pow(k, 2.0)) * ((cos(k) / t_m) / pow(sin(k), 2.0)));
} else {
tmp = 2.0 / ((1.0 + (pow((k / t_m), 2.0) + 1.0)) * (tan(k) * (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 <= 8.8d-55) then
tmp = 2.0d0 * (((l ** 2.0d0) / (k ** 2.0d0)) * ((cos(k) / t_m) / (sin(k) ** 2.0d0)))
else
tmp = 2.0d0 / ((1.0d0 + (((k / t_m) ** 2.0d0) + 1.0d0)) * (tan(k) * (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 <= 8.8e-55) {
tmp = 2.0 * ((Math.pow(l, 2.0) / Math.pow(k, 2.0)) * ((Math.cos(k) / t_m) / Math.pow(Math.sin(k), 2.0)));
} else {
tmp = 2.0 / ((1.0 + (Math.pow((k / t_m), 2.0) + 1.0)) * (Math.tan(k) * (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 <= 8.8e-55: tmp = 2.0 * ((math.pow(l, 2.0) / math.pow(k, 2.0)) * ((math.cos(k) / t_m) / math.pow(math.sin(k), 2.0))) else: tmp = 2.0 / ((1.0 + (math.pow((k / t_m), 2.0) + 1.0)) * (math.tan(k) * (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 <= 8.8e-55) tmp = Float64(2.0 * Float64(Float64((l ^ 2.0) / (k ^ 2.0)) * Float64(Float64(cos(k) / t_m) / (sin(k) ^ 2.0)))); else tmp = Float64(2.0 / Float64(Float64(1.0 + Float64((Float64(k / t_m) ^ 2.0) + 1.0)) * Float64(tan(k) * 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 <= 8.8e-55) tmp = 2.0 * (((l ^ 2.0) / (k ^ 2.0)) * ((cos(k) / t_m) / (sin(k) ^ 2.0))); else tmp = 2.0 / ((1.0 + (((k / t_m) ^ 2.0) + 1.0)) * (tan(k) * (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, 8.8e-55], N[(2.0 * N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision] * N[(N[(N[Cos[k], $MachinePrecision] / t$95$m), $MachinePrecision] / N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(1.0 + N[(N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $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]]), $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 8.8 \cdot 10^{-55}:\\
\;\;\;\;2 \cdot \left(\frac{{\ell}^{2}}{{k}^{2}} \cdot \frac{\frac{\cos k}{t\_m}}{{\sin k}^{2}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(1 + \left({\left(\frac{k}{t\_m}\right)}^{2} + 1\right)\right) \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{{t\_m}^{1.5}}{\ell}\right)}^{2}\right)\right)}\\
\end{array}
\end{array}
if t < 8.7999999999999998e-55Initial program 47.0%
associate-/r*47.0%
sqr-neg47.0%
associate-*l*44.8%
sqr-neg44.8%
associate-/r*50.7%
associate-+l+50.7%
unpow250.7%
times-frac34.4%
sqr-neg34.4%
times-frac50.7%
unpow250.7%
Simplified50.7%
Taylor expanded in t around 0 62.8%
times-frac64.2%
associate-/r*64.2%
Simplified64.2%
if 8.7999999999999998e-55 < t Initial program 78.6%
associate-/r*82.6%
add-sqr-sqrt82.5%
pow282.5%
associate-/r*78.5%
sqrt-div78.5%
sqrt-pow180.2%
metadata-eval80.2%
sqrt-prod47.4%
add-sqr-sqrt89.8%
Applied egg-rr89.8%
Final simplification70.8%
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 1.42e-115)
(/
(* (pow l 2.0) (cos k))
(* (pow t_m 3.0) (- 0.5 (/ (cos (* 2.0 k)) 2.0))))
(/
2.0
(*
(+ 1.0 (+ (pow (/ k t_m) 2.0) 1.0))
(* (tan k) (* (sin k) (* (/ (pow t_m 2.0) l) (/ t_m 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 <= 1.42e-115) {
tmp = (pow(l, 2.0) * cos(k)) / (pow(t_m, 3.0) * (0.5 - (cos((2.0 * k)) / 2.0)));
} else {
tmp = 2.0 / ((1.0 + (pow((k / t_m), 2.0) + 1.0)) * (tan(k) * (sin(k) * ((pow(t_m, 2.0) / l) * (t_m / l)))));
}
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 <= 1.42d-115) then
tmp = ((l ** 2.0d0) * cos(k)) / ((t_m ** 3.0d0) * (0.5d0 - (cos((2.0d0 * k)) / 2.0d0)))
else
tmp = 2.0d0 / ((1.0d0 + (((k / t_m) ** 2.0d0) + 1.0d0)) * (tan(k) * (sin(k) * (((t_m ** 2.0d0) / l) * (t_m / l)))))
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 <= 1.42e-115) {
tmp = (Math.pow(l, 2.0) * Math.cos(k)) / (Math.pow(t_m, 3.0) * (0.5 - (Math.cos((2.0 * k)) / 2.0)));
} else {
tmp = 2.0 / ((1.0 + (Math.pow((k / t_m), 2.0) + 1.0)) * (Math.tan(k) * (Math.sin(k) * ((Math.pow(t_m, 2.0) / l) * (t_m / l)))));
}
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 <= 1.42e-115: tmp = (math.pow(l, 2.0) * math.cos(k)) / (math.pow(t_m, 3.0) * (0.5 - (math.cos((2.0 * k)) / 2.0))) else: tmp = 2.0 / ((1.0 + (math.pow((k / t_m), 2.0) + 1.0)) * (math.tan(k) * (math.sin(k) * ((math.pow(t_m, 2.0) / l) * (t_m / 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 <= 1.42e-115) tmp = Float64(Float64((l ^ 2.0) * cos(k)) / Float64((t_m ^ 3.0) * Float64(0.5 - Float64(cos(Float64(2.0 * k)) / 2.0)))); else tmp = Float64(2.0 / Float64(Float64(1.0 + Float64((Float64(k / t_m) ^ 2.0) + 1.0)) * Float64(tan(k) * Float64(sin(k) * Float64(Float64((t_m ^ 2.0) / l) * Float64(t_m / l)))))); 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 <= 1.42e-115) tmp = ((l ^ 2.0) * cos(k)) / ((t_m ^ 3.0) * (0.5 - (cos((2.0 * k)) / 2.0))); else tmp = 2.0 / ((1.0 + (((k / t_m) ^ 2.0) + 1.0)) * (tan(k) * (sin(k) * (((t_m ^ 2.0) / l) * (t_m / l))))); 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, 1.42e-115], N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision] / N[(N[Power[t$95$m, 3.0], $MachinePrecision] * N[(0.5 - N[(N[Cos[N[(2.0 * k), $MachinePrecision]], $MachinePrecision] / 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(1.0 + N[(N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[(N[(N[Power[t$95$m, 2.0], $MachinePrecision] / l), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $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 1.42 \cdot 10^{-115}:\\
\;\;\;\;\frac{{\ell}^{2} \cdot \cos k}{{t\_m}^{3} \cdot \left(0.5 - \frac{\cos \left(2 \cdot k\right)}{2}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(1 + \left({\left(\frac{k}{t\_m}\right)}^{2} + 1\right)\right) \cdot \left(\tan k \cdot \left(\sin k \cdot \left(\frac{{t\_m}^{2}}{\ell} \cdot \frac{t\_m}{\ell}\right)\right)\right)}\\
\end{array}
\end{array}
if t < 1.41999999999999992e-115Initial program 44.6%
associate-/r*44.6%
sqr-neg44.6%
associate-*l*42.4%
sqr-neg42.4%
associate-/r*48.6%
associate-+l+48.6%
unpow248.6%
times-frac31.3%
sqr-neg31.3%
times-frac48.6%
unpow248.6%
Simplified48.7%
Taylor expanded in t around inf 51.9%
unpow251.9%
sin-mult44.4%
Applied egg-rr44.4%
div-sub44.4%
+-inverses44.4%
cos-044.4%
metadata-eval44.4%
count-244.4%
*-commutative44.4%
Simplified44.4%
if 1.41999999999999992e-115 < t Initial program 79.5%
unpow379.5%
times-frac88.8%
pow288.8%
Applied egg-rr88.8%
Final simplification57.7%
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= l 7.2e-104)
(pow (/ (cbrt (/ (pow l 2.0) (pow k 2.0))) t_m) 3.0)
(if (<= l 2.05e+150)
(/ (pow l 2.0) (pow (* t_m (pow (cbrt k) 2.0)) 3.0))
(/
(* (pow l 2.0) (cos k))
(* (pow t_m 3.0) (- 0.5 (/ (cos (* 2.0 k)) 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 (l <= 7.2e-104) {
tmp = pow((cbrt((pow(l, 2.0) / pow(k, 2.0))) / t_m), 3.0);
} else if (l <= 2.05e+150) {
tmp = pow(l, 2.0) / pow((t_m * pow(cbrt(k), 2.0)), 3.0);
} else {
tmp = (pow(l, 2.0) * cos(k)) / (pow(t_m, 3.0) * (0.5 - (cos((2.0 * k)) / 2.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-104) {
tmp = Math.pow((Math.cbrt((Math.pow(l, 2.0) / Math.pow(k, 2.0))) / t_m), 3.0);
} else if (l <= 2.05e+150) {
tmp = Math.pow(l, 2.0) / Math.pow((t_m * Math.pow(Math.cbrt(k), 2.0)), 3.0);
} else {
tmp = (Math.pow(l, 2.0) * Math.cos(k)) / (Math.pow(t_m, 3.0) * (0.5 - (Math.cos((2.0 * k)) / 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 (l <= 7.2e-104) tmp = Float64(cbrt(Float64((l ^ 2.0) / (k ^ 2.0))) / t_m) ^ 3.0; elseif (l <= 2.05e+150) tmp = Float64((l ^ 2.0) / (Float64(t_m * (cbrt(k) ^ 2.0)) ^ 3.0)); else tmp = Float64(Float64((l ^ 2.0) * cos(k)) / Float64((t_m ^ 3.0) * Float64(0.5 - Float64(cos(Float64(2.0 * k)) / 2.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-104], N[Power[N[(N[Power[N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision] / t$95$m), $MachinePrecision], 3.0], $MachinePrecision], If[LessEqual[l, 2.05e+150], N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[N[(t$95$m * N[Power[N[Power[k, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], N[(N[(N[Power[l, 2.0], $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision] / N[(N[Power[t$95$m, 3.0], $MachinePrecision] * N[(0.5 - N[(N[Cos[N[(2.0 * k), $MachinePrecision]], $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}\;\ell \leq 7.2 \cdot 10^{-104}:\\
\;\;\;\;{\left(\frac{\sqrt[3]{\frac{{\ell}^{2}}{{k}^{2}}}}{t\_m}\right)}^{3}\\
\mathbf{elif}\;\ell \leq 2.05 \cdot 10^{+150}:\\
\;\;\;\;\frac{{\ell}^{2}}{{\left(t\_m \cdot {\left(\sqrt[3]{k}\right)}^{2}\right)}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{{\ell}^{2} \cdot \cos k}{{t\_m}^{3} \cdot \left(0.5 - \frac{\cos \left(2 \cdot k\right)}{2}\right)}\\
\end{array}
\end{array}
if l < 7.1999999999999996e-104Initial program 57.3%
associate-/r*57.3%
sqr-neg57.3%
associate-*l*53.7%
sqr-neg53.7%
associate-/r*59.6%
associate-+l+59.6%
unpow259.6%
times-frac46.8%
sqr-neg46.8%
times-frac59.6%
unpow259.6%
Simplified59.6%
Taylor expanded in k around 0 53.9%
add-cube-cbrt53.9%
pow353.9%
associate-/r*52.9%
cbrt-div52.9%
unpow352.9%
add-cbrt-cube59.0%
Applied egg-rr59.0%
if 7.1999999999999996e-104 < l < 2.04999999999999997e150Initial program 63.1%
associate-/r*63.1%
sqr-neg63.1%
associate-*l*55.4%
sqr-neg55.4%
associate-/r*55.4%
associate-+l+55.4%
unpow255.4%
times-frac38.3%
sqr-neg38.3%
times-frac55.4%
unpow255.4%
Simplified55.4%
Taylor expanded in k around 0 52.8%
add-cube-cbrt52.8%
pow352.8%
*-commutative52.8%
cbrt-prod52.8%
unpow352.8%
add-cbrt-cube58.5%
unpow258.5%
cbrt-prod65.9%
pow265.9%
Applied egg-rr65.9%
if 2.04999999999999997e150 < l Initial program 34.3%
associate-/r*34.3%
sqr-neg34.3%
associate-*l*34.3%
sqr-neg34.3%
associate-/r*45.5%
associate-+l+45.5%
unpow245.5%
times-frac29.9%
sqr-neg29.9%
times-frac45.5%
unpow245.5%
Simplified45.5%
Taylor expanded in t around inf 58.7%
unpow258.7%
sin-mult58.7%
Applied egg-rr58.7%
div-sub58.7%
+-inverses58.7%
cos-058.7%
metadata-eval58.7%
count-258.7%
*-commutative58.7%
Simplified58.7%
Final simplification60.4%
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 4.6e-79)
(/ (pow l 2.0) (pow (* t_m (pow (cbrt k) 2.0)) 3.0))
(if (<= k 1.35e+130)
(* (/ (pow l 2.0) (* k k)) (/ (cos k) (pow t_m 3.0)))
(pow (/ (cbrt (/ (pow l 2.0) (pow k 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 (k <= 4.6e-79) {
tmp = pow(l, 2.0) / pow((t_m * pow(cbrt(k), 2.0)), 3.0);
} else if (k <= 1.35e+130) {
tmp = (pow(l, 2.0) / (k * k)) * (cos(k) / pow(t_m, 3.0));
} else {
tmp = pow((cbrt((pow(l, 2.0) / pow(k, 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 (k <= 4.6e-79) {
tmp = Math.pow(l, 2.0) / Math.pow((t_m * Math.pow(Math.cbrt(k), 2.0)), 3.0);
} else if (k <= 1.35e+130) {
tmp = (Math.pow(l, 2.0) / (k * k)) * (Math.cos(k) / Math.pow(t_m, 3.0));
} else {
tmp = Math.pow((Math.cbrt((Math.pow(l, 2.0) / Math.pow(k, 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 (k <= 4.6e-79) tmp = Float64((l ^ 2.0) / (Float64(t_m * (cbrt(k) ^ 2.0)) ^ 3.0)); elseif (k <= 1.35e+130) tmp = Float64(Float64((l ^ 2.0) / Float64(k * k)) * Float64(cos(k) / (t_m ^ 3.0))); else tmp = Float64(cbrt(Float64((l ^ 2.0) / (k ^ 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[k, 4.6e-79], N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[N[(t$95$m * N[Power[N[Power[k, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 1.35e+130], N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[(k * k), $MachinePrecision]), $MachinePrecision] * N[(N[Cos[k], $MachinePrecision] / N[Power[t$95$m, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[Power[N[(N[Power[N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[k, 2.0], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision] / t$95$m), $MachinePrecision], 3.0], $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 4.6 \cdot 10^{-79}:\\
\;\;\;\;\frac{{\ell}^{2}}{{\left(t\_m \cdot {\left(\sqrt[3]{k}\right)}^{2}\right)}^{3}}\\
\mathbf{elif}\;k \leq 1.35 \cdot 10^{+130}:\\
\;\;\;\;\frac{{\ell}^{2}}{k \cdot k} \cdot \frac{\cos k}{{t\_m}^{3}}\\
\mathbf{else}:\\
\;\;\;\;{\left(\frac{\sqrt[3]{\frac{{\ell}^{2}}{{k}^{2}}}}{t\_m}\right)}^{3}\\
\end{array}
\end{array}
if k < 4.60000000000000023e-79Initial program 60.3%
associate-/r*60.3%
sqr-neg60.3%
associate-*l*54.4%
sqr-neg54.4%
associate-/r*59.5%
associate-+l+59.5%
unpow259.5%
times-frac44.4%
sqr-neg44.4%
times-frac59.5%
unpow259.5%
Simplified59.5%
Taylor expanded in k around 0 54.7%
add-cube-cbrt54.6%
pow354.6%
*-commutative54.6%
cbrt-prod54.6%
unpow354.6%
add-cbrt-cube59.9%
unpow259.9%
cbrt-prod65.1%
pow265.1%
Applied egg-rr65.1%
if 4.60000000000000023e-79 < k < 1.3499999999999999e130Initial program 46.0%
associate-/r*46.0%
sqr-neg46.0%
associate-*l*46.0%
sqr-neg46.0%
associate-/r*51.5%
associate-+l+51.5%
unpow251.5%
times-frac48.0%
sqr-neg48.0%
times-frac51.5%
unpow251.5%
Simplified51.5%
Taylor expanded in t around inf 54.0%
Taylor expanded in k around 0 56.0%
Taylor expanded in l around 0 56.0%
times-frac57.7%
Simplified57.7%
unpow248.7%
Applied egg-rr57.7%
if 1.3499999999999999e130 < k Initial program 41.3%
associate-/r*41.3%
sqr-neg41.3%
associate-*l*41.3%
sqr-neg41.3%
associate-/r*49.1%
associate-+l+49.1%
unpow249.1%
times-frac19.7%
sqr-neg19.7%
times-frac49.1%
unpow249.1%
Simplified49.1%
Taylor expanded in k around 0 41.5%
add-cube-cbrt41.5%
pow341.5%
associate-/r*41.5%
cbrt-div41.5%
unpow341.5%
add-cbrt-cube56.7%
Applied egg-rr56.7%
Final simplification62.6%
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= l 3.5e+149)
(/ (pow l 2.0) (pow (* t_m (pow (cbrt k) 2.0)) 3.0))
(* (/ (pow l 2.0) (* k k)) (/ (cos k) (pow 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 <= 3.5e+149) {
tmp = pow(l, 2.0) / pow((t_m * pow(cbrt(k), 2.0)), 3.0);
} else {
tmp = (pow(l, 2.0) / (k * k)) * (cos(k) / pow(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 <= 3.5e+149) {
tmp = Math.pow(l, 2.0) / Math.pow((t_m * Math.pow(Math.cbrt(k), 2.0)), 3.0);
} else {
tmp = (Math.pow(l, 2.0) / (k * k)) * (Math.cos(k) / Math.pow(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 <= 3.5e+149) tmp = Float64((l ^ 2.0) / (Float64(t_m * (cbrt(k) ^ 2.0)) ^ 3.0)); else tmp = Float64(Float64((l ^ 2.0) / Float64(k * k)) * Float64(cos(k) / (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, 3.5e+149], N[(N[Power[l, 2.0], $MachinePrecision] / N[Power[N[(t$95$m * N[Power[N[Power[k, 1/3], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision], N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[(k * k), $MachinePrecision]), $MachinePrecision] * N[(N[Cos[k], $MachinePrecision] / N[Power[t$95$m, 3.0], $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 3.5 \cdot 10^{+149}:\\
\;\;\;\;\frac{{\ell}^{2}}{{\left(t\_m \cdot {\left(\sqrt[3]{k}\right)}^{2}\right)}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{{\ell}^{2}}{k \cdot k} \cdot \frac{\cos k}{{t\_m}^{3}}\\
\end{array}
\end{array}
if l < 3.50000000000000011e149Initial program 58.7%
associate-/r*58.7%
sqr-neg58.7%
associate-*l*54.1%
sqr-neg54.1%
associate-/r*58.5%
associate-+l+58.5%
unpow258.5%
times-frac44.8%
sqr-neg44.8%
times-frac58.5%
unpow258.5%
Simplified58.5%
Taylor expanded in k around 0 53.7%
add-cube-cbrt53.6%
pow353.6%
*-commutative53.6%
cbrt-prod53.6%
unpow353.6%
add-cbrt-cube58.7%
unpow258.7%
cbrt-prod62.3%
pow262.3%
Applied egg-rr62.3%
if 3.50000000000000011e149 < l Initial program 34.3%
associate-/r*34.3%
sqr-neg34.3%
associate-*l*34.3%
sqr-neg34.3%
associate-/r*45.5%
associate-+l+45.5%
unpow245.5%
times-frac29.9%
sqr-neg29.9%
times-frac45.5%
unpow245.5%
Simplified45.5%
Taylor expanded in t around inf 58.7%
Taylor expanded in k around 0 55.3%
Taylor expanded in l around 0 55.3%
times-frac55.3%
Simplified55.3%
unpow242.1%
Applied egg-rr55.3%
Final simplification61.3%
t_m = (fabs.f64 t)
t_s = (copysign.f64 1 t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 6e+92)
(* (/ (pow l 2.0) (* k k)) (/ (cos k) (pow t_m 3.0)))
(/
2.0
(/
(* 4.0 (/ (* (pow k 2.0) (pow t_m 3.0)) l))
(* l (- 2.0 (pow (/ k t_m) 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 <= 6e+92) {
tmp = (pow(l, 2.0) / (k * k)) * (cos(k) / pow(t_m, 3.0));
} else {
tmp = 2.0 / ((4.0 * ((pow(k, 2.0) * pow(t_m, 3.0)) / l)) / (l * (2.0 - pow((k / t_m), 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 <= 6d+92) then
tmp = ((l ** 2.0d0) / (k * k)) * (cos(k) / (t_m ** 3.0d0))
else
tmp = 2.0d0 / ((4.0d0 * (((k ** 2.0d0) * (t_m ** 3.0d0)) / l)) / (l * (2.0d0 - ((k / t_m) ** 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 <= 6e+92) {
tmp = (Math.pow(l, 2.0) / (k * k)) * (Math.cos(k) / Math.pow(t_m, 3.0));
} else {
tmp = 2.0 / ((4.0 * ((Math.pow(k, 2.0) * Math.pow(t_m, 3.0)) / l)) / (l * (2.0 - Math.pow((k / t_m), 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 <= 6e+92: tmp = (math.pow(l, 2.0) / (k * k)) * (math.cos(k) / math.pow(t_m, 3.0)) else: tmp = 2.0 / ((4.0 * ((math.pow(k, 2.0) * math.pow(t_m, 3.0)) / l)) / (l * (2.0 - math.pow((k / t_m), 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 <= 6e+92) tmp = Float64(Float64((l ^ 2.0) / Float64(k * k)) * Float64(cos(k) / (t_m ^ 3.0))); else tmp = Float64(2.0 / Float64(Float64(4.0 * Float64(Float64((k ^ 2.0) * (t_m ^ 3.0)) / l)) / Float64(l * Float64(2.0 - (Float64(k / t_m) ^ 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 <= 6e+92) tmp = ((l ^ 2.0) / (k * k)) * (cos(k) / (t_m ^ 3.0)); else tmp = 2.0 / ((4.0 * (((k ^ 2.0) * (t_m ^ 3.0)) / l)) / (l * (2.0 - ((k / t_m) ^ 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, 6e+92], N[(N[(N[Power[l, 2.0], $MachinePrecision] / N[(k * k), $MachinePrecision]), $MachinePrecision] * N[(N[Cos[k], $MachinePrecision] / N[Power[t$95$m, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(4.0 * N[(N[(N[Power[k, 2.0], $MachinePrecision] * N[Power[t$95$m, 3.0], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / N[(l * N[(2.0 - N[Power[N[(k / t$95$m), $MachinePrecision], 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 \begin{array}{l}
\mathbf{if}\;t\_m \leq 6 \cdot 10^{+92}:\\
\;\;\;\;\frac{{\ell}^{2}}{k \cdot k} \cdot \frac{\cos k}{{t\_m}^{3}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{4 \cdot \frac{{k}^{2} \cdot {t\_m}^{3}}{\ell}}{\ell \cdot \left(2 - {\left(\frac{k}{t\_m}\right)}^{2}\right)}}\\
\end{array}
\end{array}
if t < 6.00000000000000026e92Initial program 52.0%
associate-/r*52.0%
sqr-neg52.0%
associate-*l*49.8%
sqr-neg49.8%
associate-/r*55.5%
associate-+l+55.5%
unpow255.5%
times-frac41.6%
sqr-neg41.6%
times-frac55.5%
unpow255.5%
Simplified55.5%
Taylor expanded in t around inf 53.0%
Taylor expanded in k around 0 54.5%
Taylor expanded in l around 0 54.5%
times-frac53.7%
Simplified53.7%
unpow250.6%
Applied egg-rr53.7%
if 6.00000000000000026e92 < t Initial program 76.1%
*-commutative76.1%
associate-*l*60.7%
associate-/r*64.3%
+-commutative64.3%
associate-+r+64.3%
metadata-eval64.3%
flip-+61.2%
associate-*l/61.2%
frac-times61.2%
Applied egg-rr61.2%
Taylor expanded in k around 0 61.2%
Final simplification54.7%
t_m = (fabs.f64 t) t_s = (copysign.f64 1 t) (FPCore (t_s t_m l k) :precision binary64 (* t_s (* (/ (pow l 2.0) (* k k)) (/ (cos k) (pow 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) {
return t_s * ((pow(l, 2.0) / (k * k)) * (cos(k) / pow(t_m, 3.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 * (((l ** 2.0d0) / (k * k)) * (cos(k) / (t_m ** 3.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 * ((Math.pow(l, 2.0) / (k * k)) * (Math.cos(k) / Math.pow(t_m, 3.0)));
}
t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): return t_s * ((math.pow(l, 2.0) / (k * k)) * (math.cos(k) / math.pow(t_m, 3.0)))
t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k) return Float64(t_s * Float64(Float64((l ^ 2.0) / Float64(k * k)) * Float64(cos(k) / (t_m ^ 3.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 * (((l ^ 2.0) / (k * k)) * (cos(k) / (t_m ^ 3.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[(N[(N[Power[l, 2.0], $MachinePrecision] / N[(k * k), $MachinePrecision]), $MachinePrecision] * N[(N[Cos[k], $MachinePrecision] / N[Power[t$95$m, 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \left(\frac{{\ell}^{2}}{k \cdot k} \cdot \frac{\cos k}{{t\_m}^{3}}\right)
\end{array}
Initial program 55.1%
associate-/r*55.1%
sqr-neg55.1%
associate-*l*51.2%
sqr-neg51.2%
associate-/r*56.6%
associate-+l+56.6%
unpow256.6%
times-frac42.6%
sqr-neg42.6%
times-frac56.6%
unpow256.6%
Simplified56.6%
Taylor expanded in t around inf 54.0%
Taylor expanded in k around 0 55.3%
Taylor expanded in l around 0 55.3%
times-frac54.6%
Simplified54.6%
unpow251.9%
Applied egg-rr54.6%
Final simplification54.6%
t_m = (fabs.f64 t) t_s = (copysign.f64 1 t) (FPCore (t_s t_m l k) :precision binary64 (* t_s (/ (pow l 2.0) (* (pow t_m 3.0) (* k k)))))
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 * (pow(l, 2.0) / (pow(t_m, 3.0) * (k * k)));
}
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 * ((l ** 2.0d0) / ((t_m ** 3.0d0) * (k * k)))
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 * (Math.pow(l, 2.0) / (Math.pow(t_m, 3.0) * (k * k)));
}
t_m = math.fabs(t) t_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): return t_s * (math.pow(l, 2.0) / (math.pow(t_m, 3.0) * (k * k)))
t_m = abs(t) t_s = copysign(1.0, t) function code(t_s, t_m, l, k) return Float64(t_s * Float64((l ^ 2.0) / Float64((t_m ^ 3.0) * Float64(k * k)))) end
t_m = abs(t); t_s = sign(t) * abs(1.0); function tmp = code(t_s, t_m, l, k) tmp = t_s * ((l ^ 2.0) / ((t_m ^ 3.0) * (k * k))); 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[(N[Power[l, 2.0], $MachinePrecision] / N[(N[Power[t$95$m, 3.0], $MachinePrecision] * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
t_m = \left|t\right|
\\
t_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \frac{{\ell}^{2}}{{t\_m}^{3} \cdot \left(k \cdot k\right)}
\end{array}
Initial program 55.1%
associate-/r*55.1%
sqr-neg55.1%
associate-*l*51.2%
sqr-neg51.2%
associate-/r*56.6%
associate-+l+56.6%
unpow256.6%
times-frac42.6%
sqr-neg42.6%
times-frac56.6%
unpow256.6%
Simplified56.6%
Taylor expanded in k around 0 51.9%
unpow251.9%
Applied egg-rr51.9%
Final simplification51.9%
herbie shell --seed 2024039
(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))))