
(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 22 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
(let* ((t_2 (/ (pow t_m 1.5) l)))
(*
t_s
(if (<= t_m 2.6e+55)
(/
2.0
(/
(*
(*
t_m
(fma k (* k (/ (tan k) l)) (* (/ (* t_m t_m) l) (* 2.0 (tan k)))))
(sin k))
l))
(if (<= t_m 2.45e+231)
(/
2.0
(*
(+ 1.0 (+ 1.0 (pow (/ k t_m) 2.0)))
(* (tan k) (* t_2 (* (sin k) t_2)))))
(/
(/
(/
2.0
(*
(+ 2.0 (/ k (/ (* t_m t_m) k)))
(* (* (tan k) (sin k)) (/ t_m l))))
t_m)
(/ 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 t_2 = pow(t_m, 1.5) / l;
double tmp;
if (t_m <= 2.6e+55) {
tmp = 2.0 / (((t_m * fma(k, (k * (tan(k) / l)), (((t_m * t_m) / l) * (2.0 * tan(k))))) * sin(k)) / l);
} else if (t_m <= 2.45e+231) {
tmp = 2.0 / ((1.0 + (1.0 + pow((k / t_m), 2.0))) * (tan(k) * (t_2 * (sin(k) * t_2))));
} else {
tmp = ((2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * ((tan(k) * sin(k)) * (t_m / l)))) / t_m) / (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) t_2 = Float64((t_m ^ 1.5) / l) tmp = 0.0 if (t_m <= 2.6e+55) tmp = Float64(2.0 / Float64(Float64(Float64(t_m * fma(k, Float64(k * Float64(tan(k) / l)), Float64(Float64(Float64(t_m * t_m) / l) * Float64(2.0 * tan(k))))) * sin(k)) / l)); elseif (t_m <= 2.45e+231) tmp = Float64(2.0 / Float64(Float64(1.0 + Float64(1.0 + (Float64(k / t_m) ^ 2.0))) * Float64(tan(k) * Float64(t_2 * Float64(sin(k) * t_2))))); else tmp = Float64(Float64(Float64(2.0 / Float64(Float64(2.0 + Float64(k / Float64(Float64(t_m * t_m) / k))) * Float64(Float64(tan(k) * sin(k)) * Float64(t_m / l)))) / t_m) / Float64(t_m / 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_] := Block[{t$95$2 = N[(N[Power[t$95$m, 1.5], $MachinePrecision] / l), $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 2.6e+55], N[(2.0 / N[(N[(N[(t$95$m * N[(k * N[(k * N[(N[Tan[k], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] / l), $MachinePrecision] * N[(2.0 * N[Tan[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 2.45e+231], N[(2.0 / N[(N[(1.0 + N[(1.0 + N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(t$95$2 * N[(N[Sin[k], $MachinePrecision] * t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(2.0 / N[(N[(2.0 + N[(k / N[(N[(t$95$m * t$95$m), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision] / N[(t$95$m / l), $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}^{1.5}}{\ell}\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 2.6 \cdot 10^{+55}:\\
\;\;\;\;\frac{2}{\frac{\left(t\_m \cdot \mathsf{fma}\left(k, k \cdot \frac{\tan k}{\ell}, \frac{t\_m \cdot t\_m}{\ell} \cdot \left(2 \cdot \tan k\right)\right)\right) \cdot \sin k}{\ell}}\\
\mathbf{elif}\;t\_m \leq 2.45 \cdot 10^{+231}:\\
\;\;\;\;\frac{2}{\left(1 + \left(1 + {\left(\frac{k}{t\_m}\right)}^{2}\right)\right) \cdot \left(\tan k \cdot \left(t\_2 \cdot \left(\sin k \cdot t\_2\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{2}{\left(2 + \frac{k}{\frac{t\_m \cdot t\_m}{k}}\right) \cdot \left(\left(\tan k \cdot \sin k\right) \cdot \frac{t\_m}{\ell}\right)}}{t\_m}}{\frac{t\_m}{\ell}}\\
\end{array}
\end{array}
\end{array}
if t < 2.6e55Initial program 61.1%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified58.1%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr66.6%
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr54.5%
Taylor expanded in t around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f6485.3%
Simplified85.3%
+-commutativeN/A
associate-/l*N/A
associate-*l*N/A
fma-defineN/A
fma-lowering-fma.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
tan-quotN/A
/-lowering-/.f64N/A
tan-lowering-tan.f64N/A
*-commutativeN/A
times-fracN/A
tan-quotN/A
Applied egg-rr92.1%
if 2.6e55 < t < 2.4500000000000001e231Initial program 54.5%
sqr-powN/A
times-fracN/A
pow2N/A
pow-lowering-pow.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
metadata-eval88.9%
Applied egg-rr88.9%
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f6498.8%
Applied egg-rr98.8%
if 2.4500000000000001e231 < t Initial program 45.1%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified38.9%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr57.7%
associate-*r*N/A
associate-/l*N/A
*-lowering-*.f64N/A
Applied egg-rr58.0%
associate-/r*N/A
associate-/l*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr88.8%
Final simplification92.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 (<= t_m 5e+121)
(/
2.0
(/
(*
(*
t_m
(fma k (* k (/ (tan k) l)) (* (/ (* t_m t_m) l) (* 2.0 (tan k)))))
(sin k))
l))
(/
2.0
(*
(* (tan k) (* (sin k) (pow (* (pow t_m 0.75) (/ (pow t_m 0.75) l)) 2.0)))
(+ 1.0 (+ 1.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 <= 5e+121) {
tmp = 2.0 / (((t_m * fma(k, (k * (tan(k) / l)), (((t_m * t_m) / l) * (2.0 * tan(k))))) * sin(k)) / l);
} else {
tmp = 2.0 / ((tan(k) * (sin(k) * pow((pow(t_m, 0.75) * (pow(t_m, 0.75) / l)), 2.0))) * (1.0 + (1.0 + 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 <= 5e+121) tmp = Float64(2.0 / Float64(Float64(Float64(t_m * fma(k, Float64(k * Float64(tan(k) / l)), Float64(Float64(Float64(t_m * t_m) / l) * Float64(2.0 * tan(k))))) * sin(k)) / l)); else tmp = Float64(2.0 / Float64(Float64(tan(k) * Float64(sin(k) * (Float64((t_m ^ 0.75) * Float64((t_m ^ 0.75) / l)) ^ 2.0))) * Float64(1.0 + Float64(1.0 + (Float64(k / t_m) ^ 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[t$95$m, 5e+121], N[(2.0 / N[(N[(N[(t$95$m * N[(k * N[(k * N[(N[Tan[k], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] / l), $MachinePrecision] * N[(2.0 * N[Tan[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Tan[k], $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[Power[N[(N[Power[t$95$m, 0.75], $MachinePrecision] * N[(N[Power[t$95$m, 0.75], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(1.0 + N[(1.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 5 \cdot 10^{+121}:\\
\;\;\;\;\frac{2}{\frac{\left(t\_m \cdot \mathsf{fma}\left(k, k \cdot \frac{\tan k}{\ell}, \frac{t\_m \cdot t\_m}{\ell} \cdot \left(2 \cdot \tan k\right)\right)\right) \cdot \sin k}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \left(\sin k \cdot {\left({t\_m}^{0.75} \cdot \frac{{t\_m}^{0.75}}{\ell}\right)}^{2}\right)\right) \cdot \left(1 + \left(1 + {\left(\frac{k}{t\_m}\right)}^{2}\right)\right)}\\
\end{array}
\end{array}
if t < 5.00000000000000007e121Initial program 61.8%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified59.0%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr66.9%
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr56.1%
Taylor expanded in t around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f6486.2%
Simplified86.2%
+-commutativeN/A
associate-/l*N/A
associate-*l*N/A
fma-defineN/A
fma-lowering-fma.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
tan-quotN/A
/-lowering-/.f64N/A
tan-lowering-tan.f64N/A
*-commutativeN/A
times-fracN/A
tan-quotN/A
Applied egg-rr92.6%
if 5.00000000000000007e121 < t Initial program 44.9%
sqr-powN/A
times-fracN/A
pow2N/A
pow-lowering-pow.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
metadata-eval77.2%
Applied egg-rr77.2%
sqr-powN/A
associate-/l*N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
metadata-evalN/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
metadata-eval87.6%
Applied egg-rr87.6%
Final simplification91.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 (<= t_m 7.5e+121)
(/
2.0
(/
(*
(*
t_m
(fma k (* k (/ (tan k) l)) (* (/ (* t_m t_m) l) (* 2.0 (tan k)))))
(sin k))
l))
(if (<= t_m 5.1e+231)
(/
2.0
(*
(+ 1.0 (+ 1.0 (pow (/ k t_m) 2.0)))
(* (tan k) (* (sin k) (pow (/ (pow t_m 1.5) l) 2.0)))))
(/
(/
(/
2.0
(* (+ 2.0 (/ k (/ (* t_m t_m) k))) (* (* (tan k) (sin k)) (/ t_m l))))
t_m)
(/ 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 <= 7.5e+121) {
tmp = 2.0 / (((t_m * fma(k, (k * (tan(k) / l)), (((t_m * t_m) / l) * (2.0 * tan(k))))) * sin(k)) / l);
} else if (t_m <= 5.1e+231) {
tmp = 2.0 / ((1.0 + (1.0 + pow((k / t_m), 2.0))) * (tan(k) * (sin(k) * pow((pow(t_m, 1.5) / l), 2.0))));
} else {
tmp = ((2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * ((tan(k) * sin(k)) * (t_m / l)))) / t_m) / (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 <= 7.5e+121) tmp = Float64(2.0 / Float64(Float64(Float64(t_m * fma(k, Float64(k * Float64(tan(k) / l)), Float64(Float64(Float64(t_m * t_m) / l) * Float64(2.0 * tan(k))))) * sin(k)) / l)); elseif (t_m <= 5.1e+231) tmp = Float64(2.0 / Float64(Float64(1.0 + Float64(1.0 + (Float64(k / t_m) ^ 2.0))) * Float64(tan(k) * Float64(sin(k) * (Float64((t_m ^ 1.5) / l) ^ 2.0))))); else tmp = Float64(Float64(Float64(2.0 / Float64(Float64(2.0 + Float64(k / Float64(Float64(t_m * t_m) / k))) * Float64(Float64(tan(k) * sin(k)) * Float64(t_m / l)))) / t_m) / Float64(t_m / 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, 7.5e+121], N[(2.0 / N[(N[(N[(t$95$m * N[(k * N[(k * N[(N[Tan[k], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] / l), $MachinePrecision] * N[(2.0 * N[Tan[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 5.1e+231], N[(2.0 / N[(N[(1.0 + N[(1.0 + N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $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], N[(N[(N[(2.0 / N[(N[(2.0 + N[(k / N[(N[(t$95$m * t$95$m), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision] / N[(t$95$m / 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 7.5 \cdot 10^{+121}:\\
\;\;\;\;\frac{2}{\frac{\left(t\_m \cdot \mathsf{fma}\left(k, k \cdot \frac{\tan k}{\ell}, \frac{t\_m \cdot t\_m}{\ell} \cdot \left(2 \cdot \tan k\right)\right)\right) \cdot \sin k}{\ell}}\\
\mathbf{elif}\;t\_m \leq 5.1 \cdot 10^{+231}:\\
\;\;\;\;\frac{2}{\left(1 + \left(1 + {\left(\frac{k}{t\_m}\right)}^{2}\right)\right) \cdot \left(\tan k \cdot \left(\sin k \cdot {\left(\frac{{t\_m}^{1.5}}{\ell}\right)}^{2}\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{2}{\left(2 + \frac{k}{\frac{t\_m \cdot t\_m}{k}}\right) \cdot \left(\left(\tan k \cdot \sin k\right) \cdot \frac{t\_m}{\ell}\right)}}{t\_m}}{\frac{t\_m}{\ell}}\\
\end{array}
\end{array}
if t < 7.49999999999999965e121Initial program 61.8%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified59.0%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr66.9%
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr56.1%
Taylor expanded in t around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f6486.2%
Simplified86.2%
+-commutativeN/A
associate-/l*N/A
associate-*l*N/A
fma-defineN/A
fma-lowering-fma.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
tan-quotN/A
/-lowering-/.f64N/A
tan-lowering-tan.f64N/A
*-commutativeN/A
times-fracN/A
tan-quotN/A
Applied egg-rr92.6%
if 7.49999999999999965e121 < t < 5.0999999999999997e231Initial program 44.8%
sqr-powN/A
times-fracN/A
pow2N/A
pow-lowering-pow.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
metadata-eval90.7%
Applied egg-rr90.7%
if 5.0999999999999997e231 < t Initial program 45.1%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified38.9%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr57.7%
associate-*r*N/A
associate-/l*N/A
*-lowering-*.f64N/A
Applied egg-rr58.0%
associate-/r*N/A
associate-/l*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr88.8%
Final simplification92.1%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(let* ((t_2 (/ (/ k t_m) (/ t_m k))))
(*
t_s
(if (<= t_m 3.5e-100)
(/ 2.0 (/ (* (sin k) (* (sin k) (/ (* t_m (/ (* k k) l)) l))) (cos k)))
(if (<= t_m 6.8e+90)
(/
(/ (/ 2.0 (* t_m (* t_m t_m))) (/ (sin k) l))
(/ (* (tan k) (+ 2.0 t_2)) l))
(if (<= t_m 4.8e+230)
(/
2.0
(*
(* (tan k) (* (sin k) (pow (/ (pow t_m 1.5) l) 2.0)))
(+ 1.0 (+ 1.0 t_2))))
(/
(/
(/
2.0
(*
(+ 2.0 (/ k (/ (* t_m t_m) k)))
(* (* (tan k) (sin k)) (/ t_m l))))
t_m)
(/ 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 t_2 = (k / t_m) / (t_m / k);
double tmp;
if (t_m <= 3.5e-100) {
tmp = 2.0 / ((sin(k) * (sin(k) * ((t_m * ((k * k) / l)) / l))) / cos(k));
} else if (t_m <= 6.8e+90) {
tmp = ((2.0 / (t_m * (t_m * t_m))) / (sin(k) / l)) / ((tan(k) * (2.0 + t_2)) / l);
} else if (t_m <= 4.8e+230) {
tmp = 2.0 / ((tan(k) * (sin(k) * pow((pow(t_m, 1.5) / l), 2.0))) * (1.0 + (1.0 + t_2)));
} else {
tmp = ((2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * ((tan(k) * sin(k)) * (t_m / l)))) / t_m) / (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) :: t_2
real(8) :: tmp
t_2 = (k / t_m) / (t_m / k)
if (t_m <= 3.5d-100) then
tmp = 2.0d0 / ((sin(k) * (sin(k) * ((t_m * ((k * k) / l)) / l))) / cos(k))
else if (t_m <= 6.8d+90) then
tmp = ((2.0d0 / (t_m * (t_m * t_m))) / (sin(k) / l)) / ((tan(k) * (2.0d0 + t_2)) / l)
else if (t_m <= 4.8d+230) then
tmp = 2.0d0 / ((tan(k) * (sin(k) * (((t_m ** 1.5d0) / l) ** 2.0d0))) * (1.0d0 + (1.0d0 + t_2)))
else
tmp = ((2.0d0 / ((2.0d0 + (k / ((t_m * t_m) / k))) * ((tan(k) * sin(k)) * (t_m / l)))) / t_m) / (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 t_2 = (k / t_m) / (t_m / k);
double tmp;
if (t_m <= 3.5e-100) {
tmp = 2.0 / ((Math.sin(k) * (Math.sin(k) * ((t_m * ((k * k) / l)) / l))) / Math.cos(k));
} else if (t_m <= 6.8e+90) {
tmp = ((2.0 / (t_m * (t_m * t_m))) / (Math.sin(k) / l)) / ((Math.tan(k) * (2.0 + t_2)) / l);
} else if (t_m <= 4.8e+230) {
tmp = 2.0 / ((Math.tan(k) * (Math.sin(k) * Math.pow((Math.pow(t_m, 1.5) / l), 2.0))) * (1.0 + (1.0 + t_2)));
} else {
tmp = ((2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * ((Math.tan(k) * Math.sin(k)) * (t_m / l)))) / t_m) / (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): t_2 = (k / t_m) / (t_m / k) tmp = 0 if t_m <= 3.5e-100: tmp = 2.0 / ((math.sin(k) * (math.sin(k) * ((t_m * ((k * k) / l)) / l))) / math.cos(k)) elif t_m <= 6.8e+90: tmp = ((2.0 / (t_m * (t_m * t_m))) / (math.sin(k) / l)) / ((math.tan(k) * (2.0 + t_2)) / l) elif t_m <= 4.8e+230: tmp = 2.0 / ((math.tan(k) * (math.sin(k) * math.pow((math.pow(t_m, 1.5) / l), 2.0))) * (1.0 + (1.0 + t_2))) else: tmp = ((2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * ((math.tan(k) * math.sin(k)) * (t_m / l)))) / t_m) / (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) t_2 = Float64(Float64(k / t_m) / Float64(t_m / k)) tmp = 0.0 if (t_m <= 3.5e-100) tmp = Float64(2.0 / Float64(Float64(sin(k) * Float64(sin(k) * Float64(Float64(t_m * Float64(Float64(k * k) / l)) / l))) / cos(k))); elseif (t_m <= 6.8e+90) tmp = Float64(Float64(Float64(2.0 / Float64(t_m * Float64(t_m * t_m))) / Float64(sin(k) / l)) / Float64(Float64(tan(k) * Float64(2.0 + t_2)) / l)); elseif (t_m <= 4.8e+230) tmp = Float64(2.0 / Float64(Float64(tan(k) * Float64(sin(k) * (Float64((t_m ^ 1.5) / l) ^ 2.0))) * Float64(1.0 + Float64(1.0 + t_2)))); else tmp = Float64(Float64(Float64(2.0 / Float64(Float64(2.0 + Float64(k / Float64(Float64(t_m * t_m) / k))) * Float64(Float64(tan(k) * sin(k)) * Float64(t_m / l)))) / t_m) / 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) t_2 = (k / t_m) / (t_m / k); tmp = 0.0; if (t_m <= 3.5e-100) tmp = 2.0 / ((sin(k) * (sin(k) * ((t_m * ((k * k) / l)) / l))) / cos(k)); elseif (t_m <= 6.8e+90) tmp = ((2.0 / (t_m * (t_m * t_m))) / (sin(k) / l)) / ((tan(k) * (2.0 + t_2)) / l); elseif (t_m <= 4.8e+230) tmp = 2.0 / ((tan(k) * (sin(k) * (((t_m ^ 1.5) / l) ^ 2.0))) * (1.0 + (1.0 + t_2))); else tmp = ((2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * ((tan(k) * sin(k)) * (t_m / l)))) / t_m) / (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_] := Block[{t$95$2 = N[(N[(k / t$95$m), $MachinePrecision] / N[(t$95$m / k), $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 3.5e-100], N[(2.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[(N[(t$95$m * N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 6.8e+90], N[(N[(N[(2.0 / N[(t$95$m * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[Sin[k], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / N[(N[(N[Tan[k], $MachinePrecision] * N[(2.0 + t$95$2), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 4.8e+230], N[(2.0 / N[(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] * N[(1.0 + N[(1.0 + t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(2.0 / N[(N[(2.0 + N[(k / N[(N[(t$95$m * t$95$m), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision] / N[(t$95$m / l), $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{\frac{k}{t\_m}}{\frac{t\_m}{k}}\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 3.5 \cdot 10^{-100}:\\
\;\;\;\;\frac{2}{\frac{\sin k \cdot \left(\sin k \cdot \frac{t\_m \cdot \frac{k \cdot k}{\ell}}{\ell}\right)}{\cos k}}\\
\mathbf{elif}\;t\_m \leq 6.8 \cdot 10^{+90}:\\
\;\;\;\;\frac{\frac{\frac{2}{t\_m \cdot \left(t\_m \cdot t\_m\right)}}{\frac{\sin k}{\ell}}}{\frac{\tan k \cdot \left(2 + t\_2\right)}{\ell}}\\
\mathbf{elif}\;t\_m \leq 4.8 \cdot 10^{+230}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \left(\sin k \cdot {\left(\frac{{t\_m}^{1.5}}{\ell}\right)}^{2}\right)\right) \cdot \left(1 + \left(1 + t\_2\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{2}{\left(2 + \frac{k}{\frac{t\_m \cdot t\_m}{k}}\right) \cdot \left(\left(\tan k \cdot \sin k\right) \cdot \frac{t\_m}{\ell}\right)}}{t\_m}}{\frac{t\_m}{\ell}}\\
\end{array}
\end{array}
\end{array}
if t < 3.5000000000000001e-100Initial program 57.7%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified54.7%
Taylor expanded in t around 0
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
cos-lowering-cos.f6462.9%
Simplified62.9%
associate-/l*N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6472.6%
Applied egg-rr72.6%
if 3.5000000000000001e-100 < t < 6.80000000000000036e90Initial program 83.5%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified83.3%
associate-/r*N/A
times-fracN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
Applied egg-rr94.1%
if 6.80000000000000036e90 < t < 4.79999999999999996e230Initial program 45.9%
sqr-powN/A
times-fracN/A
pow2N/A
pow-lowering-pow.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
metadata-eval89.2%
Applied egg-rr89.2%
unpow2N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f6489.2%
Applied egg-rr89.2%
if 4.79999999999999996e230 < t Initial program 45.1%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified38.9%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr57.7%
associate-*r*N/A
associate-/l*N/A
*-lowering-*.f64N/A
Applied egg-rr58.0%
associate-/r*N/A
associate-/l*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr88.8%
Final simplification78.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 9.5e+121)
(/
2.0
(/
(*
(*
t_m
(fma k (* k (/ (tan k) l)) (* (/ (* t_m t_m) l) (* 2.0 (tan k)))))
(sin k))
l))
(if (<= t_m 6.8e+230)
(/
2.0
(*
(* (tan k) (* (sin k) (pow (/ (pow t_m 1.5) l) 2.0)))
(+ 1.0 (+ 1.0 (/ (/ k t_m) (/ t_m k))))))
(/
(/
(/
2.0
(* (+ 2.0 (/ k (/ (* t_m t_m) k))) (* (* (tan k) (sin k)) (/ t_m l))))
t_m)
(/ 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 <= 9.5e+121) {
tmp = 2.0 / (((t_m * fma(k, (k * (tan(k) / l)), (((t_m * t_m) / l) * (2.0 * tan(k))))) * sin(k)) / l);
} else if (t_m <= 6.8e+230) {
tmp = 2.0 / ((tan(k) * (sin(k) * pow((pow(t_m, 1.5) / l), 2.0))) * (1.0 + (1.0 + ((k / t_m) / (t_m / k)))));
} else {
tmp = ((2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * ((tan(k) * sin(k)) * (t_m / l)))) / t_m) / (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 <= 9.5e+121) tmp = Float64(2.0 / Float64(Float64(Float64(t_m * fma(k, Float64(k * Float64(tan(k) / l)), Float64(Float64(Float64(t_m * t_m) / l) * Float64(2.0 * tan(k))))) * sin(k)) / l)); elseif (t_m <= 6.8e+230) tmp = Float64(2.0 / Float64(Float64(tan(k) * Float64(sin(k) * (Float64((t_m ^ 1.5) / l) ^ 2.0))) * Float64(1.0 + Float64(1.0 + Float64(Float64(k / t_m) / Float64(t_m / k)))))); else tmp = Float64(Float64(Float64(2.0 / Float64(Float64(2.0 + Float64(k / Float64(Float64(t_m * t_m) / k))) * Float64(Float64(tan(k) * sin(k)) * Float64(t_m / l)))) / t_m) / Float64(t_m / 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, 9.5e+121], N[(2.0 / N[(N[(N[(t$95$m * N[(k * N[(k * N[(N[Tan[k], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] / l), $MachinePrecision] * N[(2.0 * N[Tan[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 6.8e+230], N[(2.0 / N[(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] * N[(1.0 + N[(1.0 + N[(N[(k / t$95$m), $MachinePrecision] / N[(t$95$m / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(2.0 / N[(N[(2.0 + N[(k / N[(N[(t$95$m * t$95$m), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision] / N[(t$95$m / 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 9.5 \cdot 10^{+121}:\\
\;\;\;\;\frac{2}{\frac{\left(t\_m \cdot \mathsf{fma}\left(k, k \cdot \frac{\tan k}{\ell}, \frac{t\_m \cdot t\_m}{\ell} \cdot \left(2 \cdot \tan k\right)\right)\right) \cdot \sin k}{\ell}}\\
\mathbf{elif}\;t\_m \leq 6.8 \cdot 10^{+230}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \left(\sin k \cdot {\left(\frac{{t\_m}^{1.5}}{\ell}\right)}^{2}\right)\right) \cdot \left(1 + \left(1 + \frac{\frac{k}{t\_m}}{\frac{t\_m}{k}}\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{2}{\left(2 + \frac{k}{\frac{t\_m \cdot t\_m}{k}}\right) \cdot \left(\left(\tan k \cdot \sin k\right) \cdot \frac{t\_m}{\ell}\right)}}{t\_m}}{\frac{t\_m}{\ell}}\\
\end{array}
\end{array}
if t < 9.49999999999999949e121Initial program 61.8%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified59.0%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr66.9%
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr56.1%
Taylor expanded in t around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f6486.2%
Simplified86.2%
+-commutativeN/A
associate-/l*N/A
associate-*l*N/A
fma-defineN/A
fma-lowering-fma.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
tan-quotN/A
/-lowering-/.f64N/A
tan-lowering-tan.f64N/A
*-commutativeN/A
times-fracN/A
tan-quotN/A
Applied egg-rr92.6%
if 9.49999999999999949e121 < t < 6.79999999999999973e230Initial program 44.8%
sqr-powN/A
times-fracN/A
pow2N/A
pow-lowering-pow.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
metadata-eval90.7%
Applied egg-rr90.7%
unpow2N/A
clear-numN/A
un-div-invN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f6490.7%
Applied egg-rr90.7%
if 6.79999999999999973e230 < t Initial program 45.1%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified38.9%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr57.7%
associate-*r*N/A
associate-/l*N/A
*-lowering-*.f64N/A
Applied egg-rr58.0%
associate-/r*N/A
associate-/l*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr88.8%
Final simplification92.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 (<= t_m 8.3e-101)
(/ 2.0 (/ (* (sin k) (* (sin k) (/ (* t_m (/ (* k k) l)) l))) (cos k)))
(if (<= t_m 5.6e+102)
(/
(/ (/ 2.0 (* t_m (* t_m t_m))) (/ (sin k) l))
(/ (* (tan k) (+ 2.0 (/ (/ k t_m) (/ t_m k)))) l))
(/
(/
(/
2.0
(* (+ 2.0 (/ k (/ (* t_m t_m) k))) (* (* (tan k) (sin k)) (/ t_m l))))
t_m)
(/ 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 <= 8.3e-101) {
tmp = 2.0 / ((sin(k) * (sin(k) * ((t_m * ((k * k) / l)) / l))) / cos(k));
} else if (t_m <= 5.6e+102) {
tmp = ((2.0 / (t_m * (t_m * t_m))) / (sin(k) / l)) / ((tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l);
} else {
tmp = ((2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * ((tan(k) * sin(k)) * (t_m / l)))) / t_m) / (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 <= 8.3d-101) then
tmp = 2.0d0 / ((sin(k) * (sin(k) * ((t_m * ((k * k) / l)) / l))) / cos(k))
else if (t_m <= 5.6d+102) then
tmp = ((2.0d0 / (t_m * (t_m * t_m))) / (sin(k) / l)) / ((tan(k) * (2.0d0 + ((k / t_m) / (t_m / k)))) / l)
else
tmp = ((2.0d0 / ((2.0d0 + (k / ((t_m * t_m) / k))) * ((tan(k) * sin(k)) * (t_m / l)))) / t_m) / (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 <= 8.3e-101) {
tmp = 2.0 / ((Math.sin(k) * (Math.sin(k) * ((t_m * ((k * k) / l)) / l))) / Math.cos(k));
} else if (t_m <= 5.6e+102) {
tmp = ((2.0 / (t_m * (t_m * t_m))) / (Math.sin(k) / l)) / ((Math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l);
} else {
tmp = ((2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * ((Math.tan(k) * Math.sin(k)) * (t_m / l)))) / t_m) / (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 <= 8.3e-101: tmp = 2.0 / ((math.sin(k) * (math.sin(k) * ((t_m * ((k * k) / l)) / l))) / math.cos(k)) elif t_m <= 5.6e+102: tmp = ((2.0 / (t_m * (t_m * t_m))) / (math.sin(k) / l)) / ((math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l) else: tmp = ((2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * ((math.tan(k) * math.sin(k)) * (t_m / l)))) / t_m) / (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 <= 8.3e-101) tmp = Float64(2.0 / Float64(Float64(sin(k) * Float64(sin(k) * Float64(Float64(t_m * Float64(Float64(k * k) / l)) / l))) / cos(k))); elseif (t_m <= 5.6e+102) tmp = Float64(Float64(Float64(2.0 / Float64(t_m * Float64(t_m * t_m))) / Float64(sin(k) / l)) / Float64(Float64(tan(k) * Float64(2.0 + Float64(Float64(k / t_m) / Float64(t_m / k)))) / l)); else tmp = Float64(Float64(Float64(2.0 / Float64(Float64(2.0 + Float64(k / Float64(Float64(t_m * t_m) / k))) * Float64(Float64(tan(k) * sin(k)) * Float64(t_m / l)))) / t_m) / 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 <= 8.3e-101) tmp = 2.0 / ((sin(k) * (sin(k) * ((t_m * ((k * k) / l)) / l))) / cos(k)); elseif (t_m <= 5.6e+102) tmp = ((2.0 / (t_m * (t_m * t_m))) / (sin(k) / l)) / ((tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l); else tmp = ((2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * ((tan(k) * sin(k)) * (t_m / l)))) / t_m) / (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, 8.3e-101], N[(2.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[(N[(t$95$m * N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 5.6e+102], N[(N[(N[(2.0 / N[(t$95$m * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[Sin[k], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / N[(N[(N[Tan[k], $MachinePrecision] * N[(2.0 + N[(N[(k / t$95$m), $MachinePrecision] / N[(t$95$m / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(N[(N[(2.0 / N[(N[(2.0 + N[(k / N[(N[(t$95$m * t$95$m), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision] / N[(t$95$m / 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 8.3 \cdot 10^{-101}:\\
\;\;\;\;\frac{2}{\frac{\sin k \cdot \left(\sin k \cdot \frac{t\_m \cdot \frac{k \cdot k}{\ell}}{\ell}\right)}{\cos k}}\\
\mathbf{elif}\;t\_m \leq 5.6 \cdot 10^{+102}:\\
\;\;\;\;\frac{\frac{\frac{2}{t\_m \cdot \left(t\_m \cdot t\_m\right)}}{\frac{\sin k}{\ell}}}{\frac{\tan k \cdot \left(2 + \frac{\frac{k}{t\_m}}{\frac{t\_m}{k}}\right)}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{2}{\left(2 + \frac{k}{\frac{t\_m \cdot t\_m}{k}}\right) \cdot \left(\left(\tan k \cdot \sin k\right) \cdot \frac{t\_m}{\ell}\right)}}{t\_m}}{\frac{t\_m}{\ell}}\\
\end{array}
\end{array}
if t < 8.3000000000000006e-101Initial program 57.7%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified54.7%
Taylor expanded in t around 0
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
cos-lowering-cos.f6462.9%
Simplified62.9%
associate-/l*N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6472.6%
Applied egg-rr72.6%
if 8.3000000000000006e-101 < t < 5.60000000000000037e102Initial program 84.4%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified81.8%
associate-/r*N/A
times-fracN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
Applied egg-rr94.4%
if 5.60000000000000037e102 < t Initial program 43.3%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified38.5%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr48.2%
associate-*r*N/A
associate-/l*N/A
*-lowering-*.f64N/A
Applied egg-rr60.7%
associate-/r*N/A
associate-/l*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr78.8%
Final simplification77.0%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(let* ((t_2 (* (tan k) (sin k))))
(*
t_s
(if (<= t_m 3.5e-100)
(/ 2.0 (* t_2 (/ (* t_m (/ (* k k) l)) l)))
(if (<= t_m 5.6e+102)
(/
(/ (/ 2.0 (* t_m (* t_m t_m))) (/ (sin k) l))
(/ (* (tan k) (+ 2.0 (/ (/ k t_m) (/ t_m k)))) l))
(/
(/ (/ 2.0 (* (+ 2.0 (/ k (/ (* t_m t_m) k))) (* t_2 (/ t_m l)))) t_m)
(/ 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 t_2 = tan(k) * sin(k);
double tmp;
if (t_m <= 3.5e-100) {
tmp = 2.0 / (t_2 * ((t_m * ((k * k) / l)) / l));
} else if (t_m <= 5.6e+102) {
tmp = ((2.0 / (t_m * (t_m * t_m))) / (sin(k) / l)) / ((tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l);
} else {
tmp = ((2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * (t_2 * (t_m / l)))) / t_m) / (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) :: t_2
real(8) :: tmp
t_2 = tan(k) * sin(k)
if (t_m <= 3.5d-100) then
tmp = 2.0d0 / (t_2 * ((t_m * ((k * k) / l)) / l))
else if (t_m <= 5.6d+102) then
tmp = ((2.0d0 / (t_m * (t_m * t_m))) / (sin(k) / l)) / ((tan(k) * (2.0d0 + ((k / t_m) / (t_m / k)))) / l)
else
tmp = ((2.0d0 / ((2.0d0 + (k / ((t_m * t_m) / k))) * (t_2 * (t_m / l)))) / t_m) / (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 t_2 = Math.tan(k) * Math.sin(k);
double tmp;
if (t_m <= 3.5e-100) {
tmp = 2.0 / (t_2 * ((t_m * ((k * k) / l)) / l));
} else if (t_m <= 5.6e+102) {
tmp = ((2.0 / (t_m * (t_m * t_m))) / (Math.sin(k) / l)) / ((Math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l);
} else {
tmp = ((2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * (t_2 * (t_m / l)))) / t_m) / (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): t_2 = math.tan(k) * math.sin(k) tmp = 0 if t_m <= 3.5e-100: tmp = 2.0 / (t_2 * ((t_m * ((k * k) / l)) / l)) elif t_m <= 5.6e+102: tmp = ((2.0 / (t_m * (t_m * t_m))) / (math.sin(k) / l)) / ((math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l) else: tmp = ((2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * (t_2 * (t_m / l)))) / t_m) / (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) t_2 = Float64(tan(k) * sin(k)) tmp = 0.0 if (t_m <= 3.5e-100) tmp = Float64(2.0 / Float64(t_2 * Float64(Float64(t_m * Float64(Float64(k * k) / l)) / l))); elseif (t_m <= 5.6e+102) tmp = Float64(Float64(Float64(2.0 / Float64(t_m * Float64(t_m * t_m))) / Float64(sin(k) / l)) / Float64(Float64(tan(k) * Float64(2.0 + Float64(Float64(k / t_m) / Float64(t_m / k)))) / l)); else tmp = Float64(Float64(Float64(2.0 / Float64(Float64(2.0 + Float64(k / Float64(Float64(t_m * t_m) / k))) * Float64(t_2 * Float64(t_m / l)))) / t_m) / 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) t_2 = tan(k) * sin(k); tmp = 0.0; if (t_m <= 3.5e-100) tmp = 2.0 / (t_2 * ((t_m * ((k * k) / l)) / l)); elseif (t_m <= 5.6e+102) tmp = ((2.0 / (t_m * (t_m * t_m))) / (sin(k) / l)) / ((tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l); else tmp = ((2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * (t_2 * (t_m / l)))) / t_m) / (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_] := Block[{t$95$2 = N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 3.5e-100], N[(2.0 / N[(t$95$2 * N[(N[(t$95$m * N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 5.6e+102], N[(N[(N[(2.0 / N[(t$95$m * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[Sin[k], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / N[(N[(N[Tan[k], $MachinePrecision] * N[(2.0 + N[(N[(k / t$95$m), $MachinePrecision] / N[(t$95$m / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(N[(N[(2.0 / N[(N[(2.0 + N[(k / N[(N[(t$95$m * t$95$m), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(t$95$2 * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision] / N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := \tan k \cdot \sin k\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 3.5 \cdot 10^{-100}:\\
\;\;\;\;\frac{2}{t\_2 \cdot \frac{t\_m \cdot \frac{k \cdot k}{\ell}}{\ell}}\\
\mathbf{elif}\;t\_m \leq 5.6 \cdot 10^{+102}:\\
\;\;\;\;\frac{\frac{\frac{2}{t\_m \cdot \left(t\_m \cdot t\_m\right)}}{\frac{\sin k}{\ell}}}{\frac{\tan k \cdot \left(2 + \frac{\frac{k}{t\_m}}{\frac{t\_m}{k}}\right)}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{2}{\left(2 + \frac{k}{\frac{t\_m \cdot t\_m}{k}}\right) \cdot \left(t\_2 \cdot \frac{t\_m}{\ell}\right)}}{t\_m}}{\frac{t\_m}{\ell}}\\
\end{array}
\end{array}
\end{array}
if t < 3.5000000000000001e-100Initial program 57.7%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified54.7%
Taylor expanded in t around 0
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
cos-lowering-cos.f6462.9%
Simplified62.9%
/-lowering-/.f64N/A
associate-/l/N/A
times-fracN/A
unpow2N/A
associate-*r/N/A
tan-quotN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
tan-lowering-tan.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6472.6%
Applied egg-rr72.6%
if 3.5000000000000001e-100 < t < 5.60000000000000037e102Initial program 84.4%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified81.8%
associate-/r*N/A
times-fracN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
Applied egg-rr94.4%
if 5.60000000000000037e102 < t Initial program 43.3%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified38.5%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr48.2%
associate-*r*N/A
associate-/l*N/A
*-lowering-*.f64N/A
Applied egg-rr60.7%
associate-/r*N/A
associate-/l*N/A
associate-/r*N/A
/-lowering-/.f64N/A
Applied egg-rr78.8%
Final simplification77.0%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(let* ((t_2 (* (tan k) (sin k))))
(*
t_s
(if (<= t_m 2.9e-100)
(/ 2.0 (* t_2 (/ (* t_m (/ (* k k) l)) l)))
(if (<= t_m 6.9e+102)
(/
(/ (/ 2.0 (* t_m (* t_m t_m))) (/ (sin k) l))
(/ (* (tan k) (+ 2.0 (/ (/ k t_m) (/ t_m k)))) l))
(/
2.0
(*
(/ (* t_m (* (+ 2.0 (/ k (/ (* t_m t_m) k))) t_2)) l)
(* t_m (/ 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 t_2 = tan(k) * sin(k);
double tmp;
if (t_m <= 2.9e-100) {
tmp = 2.0 / (t_2 * ((t_m * ((k * k) / l)) / l));
} else if (t_m <= 6.9e+102) {
tmp = ((2.0 / (t_m * (t_m * t_m))) / (sin(k) / l)) / ((tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l);
} else {
tmp = 2.0 / (((t_m * ((2.0 + (k / ((t_m * t_m) / k))) * t_2)) / l) * (t_m * (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) :: t_2
real(8) :: tmp
t_2 = tan(k) * sin(k)
if (t_m <= 2.9d-100) then
tmp = 2.0d0 / (t_2 * ((t_m * ((k * k) / l)) / l))
else if (t_m <= 6.9d+102) then
tmp = ((2.0d0 / (t_m * (t_m * t_m))) / (sin(k) / l)) / ((tan(k) * (2.0d0 + ((k / t_m) / (t_m / k)))) / l)
else
tmp = 2.0d0 / (((t_m * ((2.0d0 + (k / ((t_m * t_m) / k))) * t_2)) / l) * (t_m * (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 t_2 = Math.tan(k) * Math.sin(k);
double tmp;
if (t_m <= 2.9e-100) {
tmp = 2.0 / (t_2 * ((t_m * ((k * k) / l)) / l));
} else if (t_m <= 6.9e+102) {
tmp = ((2.0 / (t_m * (t_m * t_m))) / (Math.sin(k) / l)) / ((Math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l);
} else {
tmp = 2.0 / (((t_m * ((2.0 + (k / ((t_m * t_m) / k))) * t_2)) / l) * (t_m * (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): t_2 = math.tan(k) * math.sin(k) tmp = 0 if t_m <= 2.9e-100: tmp = 2.0 / (t_2 * ((t_m * ((k * k) / l)) / l)) elif t_m <= 6.9e+102: tmp = ((2.0 / (t_m * (t_m * t_m))) / (math.sin(k) / l)) / ((math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l) else: tmp = 2.0 / (((t_m * ((2.0 + (k / ((t_m * t_m) / k))) * t_2)) / l) * (t_m * (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) t_2 = Float64(tan(k) * sin(k)) tmp = 0.0 if (t_m <= 2.9e-100) tmp = Float64(2.0 / Float64(t_2 * Float64(Float64(t_m * Float64(Float64(k * k) / l)) / l))); elseif (t_m <= 6.9e+102) tmp = Float64(Float64(Float64(2.0 / Float64(t_m * Float64(t_m * t_m))) / Float64(sin(k) / l)) / Float64(Float64(tan(k) * Float64(2.0 + Float64(Float64(k / t_m) / Float64(t_m / k)))) / l)); else tmp = Float64(2.0 / Float64(Float64(Float64(t_m * Float64(Float64(2.0 + Float64(k / Float64(Float64(t_m * t_m) / k))) * t_2)) / l) * Float64(t_m * 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) t_2 = tan(k) * sin(k); tmp = 0.0; if (t_m <= 2.9e-100) tmp = 2.0 / (t_2 * ((t_m * ((k * k) / l)) / l)); elseif (t_m <= 6.9e+102) tmp = ((2.0 / (t_m * (t_m * t_m))) / (sin(k) / l)) / ((tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l); else tmp = 2.0 / (((t_m * ((2.0 + (k / ((t_m * t_m) / k))) * t_2)) / l) * (t_m * (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_] := Block[{t$95$2 = N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 2.9e-100], N[(2.0 / N[(t$95$2 * N[(N[(t$95$m * N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 6.9e+102], N[(N[(N[(2.0 / N[(t$95$m * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[Sin[k], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / N[(N[(N[Tan[k], $MachinePrecision] * N[(2.0 + N[(N[(k / t$95$m), $MachinePrecision] / N[(t$95$m / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(t$95$m * N[(N[(2.0 + N[(k / N[(N[(t$95$m * t$95$m), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * t$95$2), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision] * N[(t$95$m * N[(t$95$m / l), $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 := \tan k \cdot \sin k\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 2.9 \cdot 10^{-100}:\\
\;\;\;\;\frac{2}{t\_2 \cdot \frac{t\_m \cdot \frac{k \cdot k}{\ell}}{\ell}}\\
\mathbf{elif}\;t\_m \leq 6.9 \cdot 10^{+102}:\\
\;\;\;\;\frac{\frac{\frac{2}{t\_m \cdot \left(t\_m \cdot t\_m\right)}}{\frac{\sin k}{\ell}}}{\frac{\tan k \cdot \left(2 + \frac{\frac{k}{t\_m}}{\frac{t\_m}{k}}\right)}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{t\_m \cdot \left(\left(2 + \frac{k}{\frac{t\_m \cdot t\_m}{k}}\right) \cdot t\_2\right)}{\ell} \cdot \left(t\_m \cdot \frac{t\_m}{\ell}\right)}\\
\end{array}
\end{array}
\end{array}
if t < 2.89999999999999975e-100Initial program 57.7%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified54.7%
Taylor expanded in t around 0
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
cos-lowering-cos.f6462.9%
Simplified62.9%
/-lowering-/.f64N/A
associate-/l/N/A
times-fracN/A
unpow2N/A
associate-*r/N/A
tan-quotN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
tan-lowering-tan.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6472.6%
Applied egg-rr72.6%
if 2.89999999999999975e-100 < t < 6.89999999999999966e102Initial program 84.4%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified81.8%
associate-/r*N/A
times-fracN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
Applied egg-rr94.4%
if 6.89999999999999966e102 < t Initial program 43.3%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified38.5%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr48.2%
associate-*r*N/A
associate-/l*N/A
*-lowering-*.f64N/A
Applied egg-rr60.7%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f6478.8%
Applied egg-rr78.8%
Final simplification77.0%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(let* ((t_2 (+ 2.0 (/ k (/ (* t_m t_m) k)))) (t_3 (* (tan k) (sin k))))
(*
t_s
(if (<= t_m 7.4e-53)
(/ 2.0 (* t_3 (/ (* t_m (/ (* k k) l)) l)))
(if (<= t_m 1.22e+101)
(/ 2.0 (/ (* (sin k) (/ (* (* t_m (* t_m t_m)) (* (tan k) t_2)) l)) l))
(/ 2.0 (* (/ (* t_m (* t_2 t_3)) l) (* t_m (/ 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 t_2 = 2.0 + (k / ((t_m * t_m) / k));
double t_3 = tan(k) * sin(k);
double tmp;
if (t_m <= 7.4e-53) {
tmp = 2.0 / (t_3 * ((t_m * ((k * k) / l)) / l));
} else if (t_m <= 1.22e+101) {
tmp = 2.0 / ((sin(k) * (((t_m * (t_m * t_m)) * (tan(k) * t_2)) / l)) / l);
} else {
tmp = 2.0 / (((t_m * (t_2 * t_3)) / l) * (t_m * (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) :: t_2
real(8) :: t_3
real(8) :: tmp
t_2 = 2.0d0 + (k / ((t_m * t_m) / k))
t_3 = tan(k) * sin(k)
if (t_m <= 7.4d-53) then
tmp = 2.0d0 / (t_3 * ((t_m * ((k * k) / l)) / l))
else if (t_m <= 1.22d+101) then
tmp = 2.0d0 / ((sin(k) * (((t_m * (t_m * t_m)) * (tan(k) * t_2)) / l)) / l)
else
tmp = 2.0d0 / (((t_m * (t_2 * t_3)) / l) * (t_m * (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 t_2 = 2.0 + (k / ((t_m * t_m) / k));
double t_3 = Math.tan(k) * Math.sin(k);
double tmp;
if (t_m <= 7.4e-53) {
tmp = 2.0 / (t_3 * ((t_m * ((k * k) / l)) / l));
} else if (t_m <= 1.22e+101) {
tmp = 2.0 / ((Math.sin(k) * (((t_m * (t_m * t_m)) * (Math.tan(k) * t_2)) / l)) / l);
} else {
tmp = 2.0 / (((t_m * (t_2 * t_3)) / l) * (t_m * (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): t_2 = 2.0 + (k / ((t_m * t_m) / k)) t_3 = math.tan(k) * math.sin(k) tmp = 0 if t_m <= 7.4e-53: tmp = 2.0 / (t_3 * ((t_m * ((k * k) / l)) / l)) elif t_m <= 1.22e+101: tmp = 2.0 / ((math.sin(k) * (((t_m * (t_m * t_m)) * (math.tan(k) * t_2)) / l)) / l) else: tmp = 2.0 / (((t_m * (t_2 * t_3)) / l) * (t_m * (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) t_2 = Float64(2.0 + Float64(k / Float64(Float64(t_m * t_m) / k))) t_3 = Float64(tan(k) * sin(k)) tmp = 0.0 if (t_m <= 7.4e-53) tmp = Float64(2.0 / Float64(t_3 * Float64(Float64(t_m * Float64(Float64(k * k) / l)) / l))); elseif (t_m <= 1.22e+101) tmp = Float64(2.0 / Float64(Float64(sin(k) * Float64(Float64(Float64(t_m * Float64(t_m * t_m)) * Float64(tan(k) * t_2)) / l)) / l)); else tmp = Float64(2.0 / Float64(Float64(Float64(t_m * Float64(t_2 * t_3)) / l) * Float64(t_m * 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) t_2 = 2.0 + (k / ((t_m * t_m) / k)); t_3 = tan(k) * sin(k); tmp = 0.0; if (t_m <= 7.4e-53) tmp = 2.0 / (t_3 * ((t_m * ((k * k) / l)) / l)); elseif (t_m <= 1.22e+101) tmp = 2.0 / ((sin(k) * (((t_m * (t_m * t_m)) * (tan(k) * t_2)) / l)) / l); else tmp = 2.0 / (((t_m * (t_2 * t_3)) / l) * (t_m * (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_] := Block[{t$95$2 = N[(2.0 + N[(k / N[(N[(t$95$m * t$95$m), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 7.4e-53], N[(2.0 / N[(t$95$3 * N[(N[(t$95$m * N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 1.22e+101], N[(2.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[(N[(N[(t$95$m * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * t$95$2), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(t$95$m * N[(t$95$2 * t$95$3), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision] * N[(t$95$m * N[(t$95$m / l), $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 := 2 + \frac{k}{\frac{t\_m \cdot t\_m}{k}}\\
t_3 := \tan k \cdot \sin k\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 7.4 \cdot 10^{-53}:\\
\;\;\;\;\frac{2}{t\_3 \cdot \frac{t\_m \cdot \frac{k \cdot k}{\ell}}{\ell}}\\
\mathbf{elif}\;t\_m \leq 1.22 \cdot 10^{+101}:\\
\;\;\;\;\frac{2}{\frac{\sin k \cdot \frac{\left(t\_m \cdot \left(t\_m \cdot t\_m\right)\right) \cdot \left(\tan k \cdot t\_2\right)}{\ell}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{t\_m \cdot \left(t\_2 \cdot t\_3\right)}{\ell} \cdot \left(t\_m \cdot \frac{t\_m}{\ell}\right)}\\
\end{array}
\end{array}
\end{array}
if t < 7.39999999999999965e-53Initial program 57.7%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified54.8%
Taylor expanded in t around 0
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
cos-lowering-cos.f6462.7%
Simplified62.7%
/-lowering-/.f64N/A
associate-/l/N/A
times-fracN/A
unpow2N/A
associate-*r/N/A
tan-quotN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
tan-lowering-tan.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6473.1%
Applied egg-rr73.1%
if 7.39999999999999965e-53 < t < 1.22e101Initial program 90.4%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified87.3%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr93.9%
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr94.7%
if 1.22e101 < t Initial program 43.3%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified38.5%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr48.2%
associate-*r*N/A
associate-/l*N/A
*-lowering-*.f64N/A
Applied egg-rr60.7%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f6478.8%
Applied egg-rr78.8%
Final simplification76.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 3.1e-54)
(/ 2.0 (* (* (tan k) (sin k)) (/ (* t_m (/ (* k k) l)) l)))
(if (<= t_m 3.9e+99)
(/
2.0
(/
(*
(* t_m (* t_m t_m))
(* (sin k) (/ (* (tan k) (+ 2.0 (/ (/ k t_m) (/ t_m k)))) l)))
l))
(* (/ (/ l t_m) k) (/ (/ l t_m) (* t_m 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 (t_m <= 3.1e-54) {
tmp = 2.0 / ((tan(k) * sin(k)) * ((t_m * ((k * k) / l)) / l));
} else if (t_m <= 3.9e+99) {
tmp = 2.0 / (((t_m * (t_m * t_m)) * (sin(k) * ((tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l))) / l);
} else {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 (t_m <= 3.1d-54) then
tmp = 2.0d0 / ((tan(k) * sin(k)) * ((t_m * ((k * k) / l)) / l))
else if (t_m <= 3.9d+99) then
tmp = 2.0d0 / (((t_m * (t_m * t_m)) * (sin(k) * ((tan(k) * (2.0d0 + ((k / t_m) / (t_m / k)))) / l))) / l)
else
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 (t_m <= 3.1e-54) {
tmp = 2.0 / ((Math.tan(k) * Math.sin(k)) * ((t_m * ((k * k) / l)) / l));
} else if (t_m <= 3.9e+99) {
tmp = 2.0 / (((t_m * (t_m * t_m)) * (Math.sin(k) * ((Math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l))) / l);
} else {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 t_m <= 3.1e-54: tmp = 2.0 / ((math.tan(k) * math.sin(k)) * ((t_m * ((k * k) / l)) / l)) elif t_m <= 3.9e+99: tmp = 2.0 / (((t_m * (t_m * t_m)) * (math.sin(k) * ((math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l))) / l) else: tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 (t_m <= 3.1e-54) tmp = Float64(2.0 / Float64(Float64(tan(k) * sin(k)) * Float64(Float64(t_m * Float64(Float64(k * k) / l)) / l))); elseif (t_m <= 3.9e+99) tmp = Float64(2.0 / Float64(Float64(Float64(t_m * Float64(t_m * t_m)) * Float64(sin(k) * Float64(Float64(tan(k) * Float64(2.0 + Float64(Float64(k / t_m) / Float64(t_m / k)))) / l))) / l)); else tmp = Float64(Float64(Float64(l / t_m) / k) * Float64(Float64(l / t_m) / Float64(t_m * 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 (t_m <= 3.1e-54) tmp = 2.0 / ((tan(k) * sin(k)) * ((t_m * ((k * k) / l)) / l)); elseif (t_m <= 3.9e+99) tmp = 2.0 / (((t_m * (t_m * t_m)) * (sin(k) * ((tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l))) / l); else tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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[t$95$m, 3.1e-54], N[(2.0 / N[(N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[(N[(t$95$m * N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 3.9e+99], N[(2.0 / N[(N[(N[(t$95$m * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[(N[(N[Tan[k], $MachinePrecision] * N[(2.0 + N[(N[(k / t$95$m), $MachinePrecision] / N[(t$95$m / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(N[(N[(l / t$95$m), $MachinePrecision] / k), $MachinePrecision] * N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * 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}\;t\_m \leq 3.1 \cdot 10^{-54}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \sin k\right) \cdot \frac{t\_m \cdot \frac{k \cdot k}{\ell}}{\ell}}\\
\mathbf{elif}\;t\_m \leq 3.9 \cdot 10^{+99}:\\
\;\;\;\;\frac{2}{\frac{\left(t\_m \cdot \left(t\_m \cdot t\_m\right)\right) \cdot \left(\sin k \cdot \frac{\tan k \cdot \left(2 + \frac{\frac{k}{t\_m}}{\frac{t\_m}{k}}\right)}{\ell}\right)}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\ell}{t\_m}}{k} \cdot \frac{\frac{\ell}{t\_m}}{t\_m \cdot k}\\
\end{array}
\end{array}
if t < 3.10000000000000004e-54Initial program 57.7%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified54.8%
Taylor expanded in t around 0
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
cos-lowering-cos.f6462.7%
Simplified62.7%
/-lowering-/.f64N/A
associate-/l/N/A
times-fracN/A
unpow2N/A
associate-*r/N/A
tan-quotN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
tan-lowering-tan.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6473.1%
Applied egg-rr73.1%
if 3.10000000000000004e-54 < t < 3.89999999999999995e99Initial program 90.1%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified89.9%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr96.6%
if 3.89999999999999995e99 < t Initial program 44.4%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified37.9%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
unpow3N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6444.5%
Simplified44.5%
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6451.9%
Applied egg-rr51.9%
associate-*l/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6460.2%
Applied egg-rr60.2%
associate-/r*N/A
associate-/l/N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6476.4%
Applied egg-rr76.4%
Final simplification76.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
(if (<= t_m 2.75e-39)
(/ 2.0 (* (* (tan k) (sin k)) (/ (* t_m (/ (* k k) l)) l)))
(if (<= t_m 2e+99)
(*
l
(/
(/ 2.0 (* t_m (* t_m t_m)))
(* (sin k) (/ (* (tan k) (+ 2.0 (/ (/ k t_m) (/ t_m k)))) l))))
(* (/ (/ l t_m) k) (/ (/ l t_m) (* t_m 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 (t_m <= 2.75e-39) {
tmp = 2.0 / ((tan(k) * sin(k)) * ((t_m * ((k * k) / l)) / l));
} else if (t_m <= 2e+99) {
tmp = l * ((2.0 / (t_m * (t_m * t_m))) / (sin(k) * ((tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l)));
} else {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 (t_m <= 2.75d-39) then
tmp = 2.0d0 / ((tan(k) * sin(k)) * ((t_m * ((k * k) / l)) / l))
else if (t_m <= 2d+99) then
tmp = l * ((2.0d0 / (t_m * (t_m * t_m))) / (sin(k) * ((tan(k) * (2.0d0 + ((k / t_m) / (t_m / k)))) / l)))
else
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 (t_m <= 2.75e-39) {
tmp = 2.0 / ((Math.tan(k) * Math.sin(k)) * ((t_m * ((k * k) / l)) / l));
} else if (t_m <= 2e+99) {
tmp = l * ((2.0 / (t_m * (t_m * t_m))) / (Math.sin(k) * ((Math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l)));
} else {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 t_m <= 2.75e-39: tmp = 2.0 / ((math.tan(k) * math.sin(k)) * ((t_m * ((k * k) / l)) / l)) elif t_m <= 2e+99: tmp = l * ((2.0 / (t_m * (t_m * t_m))) / (math.sin(k) * ((math.tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l))) else: tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 (t_m <= 2.75e-39) tmp = Float64(2.0 / Float64(Float64(tan(k) * sin(k)) * Float64(Float64(t_m * Float64(Float64(k * k) / l)) / l))); elseif (t_m <= 2e+99) tmp = Float64(l * Float64(Float64(2.0 / Float64(t_m * Float64(t_m * t_m))) / Float64(sin(k) * Float64(Float64(tan(k) * Float64(2.0 + Float64(Float64(k / t_m) / Float64(t_m / k)))) / l)))); else tmp = Float64(Float64(Float64(l / t_m) / k) * Float64(Float64(l / t_m) / Float64(t_m * 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 (t_m <= 2.75e-39) tmp = 2.0 / ((tan(k) * sin(k)) * ((t_m * ((k * k) / l)) / l)); elseif (t_m <= 2e+99) tmp = l * ((2.0 / (t_m * (t_m * t_m))) / (sin(k) * ((tan(k) * (2.0 + ((k / t_m) / (t_m / k)))) / l))); else tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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[t$95$m, 2.75e-39], N[(2.0 / N[(N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[(N[(t$95$m * N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 2e+99], N[(l * N[(N[(2.0 / N[(t$95$m * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[Sin[k], $MachinePrecision] * N[(N[(N[Tan[k], $MachinePrecision] * N[(2.0 + N[(N[(k / t$95$m), $MachinePrecision] / N[(t$95$m / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(l / t$95$m), $MachinePrecision] / k), $MachinePrecision] * N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * 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}\;t\_m \leq 2.75 \cdot 10^{-39}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \sin k\right) \cdot \frac{t\_m \cdot \frac{k \cdot k}{\ell}}{\ell}}\\
\mathbf{elif}\;t\_m \leq 2 \cdot 10^{+99}:\\
\;\;\;\;\ell \cdot \frac{\frac{2}{t\_m \cdot \left(t\_m \cdot t\_m\right)}}{\sin k \cdot \frac{\tan k \cdot \left(2 + \frac{\frac{k}{t\_m}}{\frac{t\_m}{k}}\right)}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\ell}{t\_m}}{k} \cdot \frac{\frac{\ell}{t\_m}}{t\_m \cdot k}\\
\end{array}
\end{array}
if t < 2.75000000000000009e-39Initial program 58.8%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified56.1%
Taylor expanded in t around 0
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
cos-lowering-cos.f6463.7%
Simplified63.7%
/-lowering-/.f64N/A
associate-/l/N/A
times-fracN/A
unpow2N/A
associate-*r/N/A
tan-quotN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
tan-lowering-tan.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6473.9%
Applied egg-rr73.9%
if 2.75000000000000009e-39 < t < 1.9999999999999999e99Initial program 88.1%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified87.8%
associate-/r*N/A
associate-/r*N/A
associate-/r/N/A
*-lowering-*.f64N/A
Applied egg-rr96.1%
if 1.9999999999999999e99 < t Initial program 44.4%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified37.9%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
unpow3N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6444.5%
Simplified44.5%
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6451.9%
Applied egg-rr51.9%
associate-*l/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6460.2%
Applied egg-rr60.2%
associate-/r*N/A
associate-/l/N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6476.4%
Applied egg-rr76.4%
Final simplification76.5%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(let* ((t_2 (* (tan k) (sin k))))
(*
t_s
(if (<= t_m 2.7e-99)
(/ 2.0 (* t_2 (/ (* t_m (/ (* k k) l)) l)))
(if (<= t_m 8.5e+134)
(*
(/ 2.0 (* (+ 2.0 (/ k (/ (* t_m t_m) k))) (* t_2 (/ t_m l))))
(/ l (* t_m t_m)))
(* (/ (/ l t_m) k) (/ (/ l t_m) (* t_m 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 = tan(k) * sin(k);
double tmp;
if (t_m <= 2.7e-99) {
tmp = 2.0 / (t_2 * ((t_m * ((k * k) / l)) / l));
} else if (t_m <= 8.5e+134) {
tmp = (2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * (t_2 * (t_m / l)))) * (l / (t_m * t_m));
} else {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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) :: t_2
real(8) :: tmp
t_2 = tan(k) * sin(k)
if (t_m <= 2.7d-99) then
tmp = 2.0d0 / (t_2 * ((t_m * ((k * k) / l)) / l))
else if (t_m <= 8.5d+134) then
tmp = (2.0d0 / ((2.0d0 + (k / ((t_m * t_m) / k))) * (t_2 * (t_m / l)))) * (l / (t_m * t_m))
else
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 t_2 = Math.tan(k) * Math.sin(k);
double tmp;
if (t_m <= 2.7e-99) {
tmp = 2.0 / (t_2 * ((t_m * ((k * k) / l)) / l));
} else if (t_m <= 8.5e+134) {
tmp = (2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * (t_2 * (t_m / l)))) * (l / (t_m * t_m));
} else {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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): t_2 = math.tan(k) * math.sin(k) tmp = 0 if t_m <= 2.7e-99: tmp = 2.0 / (t_2 * ((t_m * ((k * k) / l)) / l)) elif t_m <= 8.5e+134: tmp = (2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * (t_2 * (t_m / l)))) * (l / (t_m * t_m)) else: tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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(tan(k) * sin(k)) tmp = 0.0 if (t_m <= 2.7e-99) tmp = Float64(2.0 / Float64(t_2 * Float64(Float64(t_m * Float64(Float64(k * k) / l)) / l))); elseif (t_m <= 8.5e+134) tmp = Float64(Float64(2.0 / Float64(Float64(2.0 + Float64(k / Float64(Float64(t_m * t_m) / k))) * Float64(t_2 * Float64(t_m / l)))) * Float64(l / Float64(t_m * t_m))); else tmp = Float64(Float64(Float64(l / t_m) / k) * Float64(Float64(l / t_m) / Float64(t_m * 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) t_2 = tan(k) * sin(k); tmp = 0.0; if (t_m <= 2.7e-99) tmp = 2.0 / (t_2 * ((t_m * ((k * k) / l)) / l)); elseif (t_m <= 8.5e+134) tmp = (2.0 / ((2.0 + (k / ((t_m * t_m) / k))) * (t_2 * (t_m / l)))) * (l / (t_m * t_m)); else tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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_] := Block[{t$95$2 = N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 2.7e-99], N[(2.0 / N[(t$95$2 * N[(N[(t$95$m * N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 8.5e+134], N[(N[(2.0 / N[(N[(2.0 + N[(k / N[(N[(t$95$m * t$95$m), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(t$95$2 * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(l / N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(l / t$95$m), $MachinePrecision] / k), $MachinePrecision] * N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * k), $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 := \tan k \cdot \sin k\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 2.7 \cdot 10^{-99}:\\
\;\;\;\;\frac{2}{t\_2 \cdot \frac{t\_m \cdot \frac{k \cdot k}{\ell}}{\ell}}\\
\mathbf{elif}\;t\_m \leq 8.5 \cdot 10^{+134}:\\
\;\;\;\;\frac{2}{\left(2 + \frac{k}{\frac{t\_m \cdot t\_m}{k}}\right) \cdot \left(t\_2 \cdot \frac{t\_m}{\ell}\right)} \cdot \frac{\ell}{t\_m \cdot t\_m}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\ell}{t\_m}}{k} \cdot \frac{\frac{\ell}{t\_m}}{t\_m \cdot k}\\
\end{array}
\end{array}
\end{array}
if t < 2.7e-99Initial program 57.7%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified54.7%
Taylor expanded in t around 0
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
cos-lowering-cos.f6462.9%
Simplified62.9%
/-lowering-/.f64N/A
associate-/l/N/A
times-fracN/A
unpow2N/A
associate-*r/N/A
tan-quotN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
tan-lowering-tan.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6472.6%
Applied egg-rr72.6%
if 2.7e-99 < t < 8.50000000000000024e134Initial program 76.9%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified74.6%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr81.7%
associate-*r*N/A
associate-/l*N/A
*-lowering-*.f64N/A
Applied egg-rr83.8%
clear-numN/A
inv-powN/A
*-commutativeN/A
associate-/l*N/A
unpow-prod-downN/A
inv-powN/A
clear-numN/A
inv-powN/A
clear-numN/A
*-lowering-*.f64N/A
Applied egg-rr84.5%
if 8.50000000000000024e134 < t Initial program 45.3%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified39.9%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
unpow3N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6447.4%
Simplified47.4%
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6455.9%
Applied egg-rr55.9%
associate-*l/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6461.2%
Applied egg-rr61.2%
associate-/r*N/A
associate-/l/N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6480.1%
Applied egg-rr80.1%
Final simplification75.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 2.8e-39)
(/ 2.0 (* (* (tan k) (sin k)) (/ (* t_m (/ (* k k) l)) l)))
(* (/ (/ l t_m) k) (/ (/ l t_m) (* t_m 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 (t_m <= 2.8e-39) {
tmp = 2.0 / ((tan(k) * sin(k)) * ((t_m * ((k * k) / l)) / l));
} else {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 (t_m <= 2.8d-39) then
tmp = 2.0d0 / ((tan(k) * sin(k)) * ((t_m * ((k * k) / l)) / l))
else
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 (t_m <= 2.8e-39) {
tmp = 2.0 / ((Math.tan(k) * Math.sin(k)) * ((t_m * ((k * k) / l)) / l));
} else {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 t_m <= 2.8e-39: tmp = 2.0 / ((math.tan(k) * math.sin(k)) * ((t_m * ((k * k) / l)) / l)) else: tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 (t_m <= 2.8e-39) tmp = Float64(2.0 / Float64(Float64(tan(k) * sin(k)) * Float64(Float64(t_m * Float64(Float64(k * k) / l)) / l))); else tmp = Float64(Float64(Float64(l / t_m) / k) * Float64(Float64(l / t_m) / Float64(t_m * 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 (t_m <= 2.8e-39) tmp = 2.0 / ((tan(k) * sin(k)) * ((t_m * ((k * k) / l)) / l)); else tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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[t$95$m, 2.8e-39], N[(2.0 / N[(N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[(N[(t$95$m * N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(l / t$95$m), $MachinePrecision] / k), $MachinePrecision] * N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * 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}\;t\_m \leq 2.8 \cdot 10^{-39}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \sin k\right) \cdot \frac{t\_m \cdot \frac{k \cdot k}{\ell}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\ell}{t\_m}}{k} \cdot \frac{\frac{\ell}{t\_m}}{t\_m \cdot k}\\
\end{array}
\end{array}
if t < 2.8000000000000001e-39Initial program 58.8%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified56.1%
Taylor expanded in t around 0
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
cos-lowering-cos.f6463.7%
Simplified63.7%
/-lowering-/.f64N/A
associate-/l/N/A
times-fracN/A
unpow2N/A
associate-*r/N/A
tan-quotN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
tan-lowering-tan.f64N/A
associate-/r*N/A
/-lowering-/.f64N/A
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6473.9%
Applied egg-rr73.9%
if 2.8000000000000001e-39 < t Initial program 59.4%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified55.0%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
unpow3N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6454.1%
Simplified54.1%
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6459.1%
Applied egg-rr59.1%
associate-*l/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6468.5%
Applied egg-rr68.5%
associate-/r*N/A
associate-/l/N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6479.1%
Applied egg-rr79.1%
Final simplification75.3%
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 2.75e-39)
(/ 2.0 (* (/ (* k k) l) (/ (/ (* k k) (/ l t_m)) (cos k))))
(* (/ (/ l t_m) k) (/ (/ l t_m) (* t_m 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 (t_m <= 2.75e-39) {
tmp = 2.0 / (((k * k) / l) * (((k * k) / (l / t_m)) / cos(k)));
} else {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 (t_m <= 2.75d-39) then
tmp = 2.0d0 / (((k * k) / l) * (((k * k) / (l / t_m)) / cos(k)))
else
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 (t_m <= 2.75e-39) {
tmp = 2.0 / (((k * k) / l) * (((k * k) / (l / t_m)) / Math.cos(k)));
} else {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 t_m <= 2.75e-39: tmp = 2.0 / (((k * k) / l) * (((k * k) / (l / t_m)) / math.cos(k))) else: tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 (t_m <= 2.75e-39) tmp = Float64(2.0 / Float64(Float64(Float64(k * k) / l) * Float64(Float64(Float64(k * k) / Float64(l / t_m)) / cos(k)))); else tmp = Float64(Float64(Float64(l / t_m) / k) * Float64(Float64(l / t_m) / Float64(t_m * 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 (t_m <= 2.75e-39) tmp = 2.0 / (((k * k) / l) * (((k * k) / (l / t_m)) / cos(k))); else tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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[t$95$m, 2.75e-39], N[(2.0 / N[(N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision] * N[(N[(N[(k * k), $MachinePrecision] / N[(l / t$95$m), $MachinePrecision]), $MachinePrecision] / N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(l / t$95$m), $MachinePrecision] / k), $MachinePrecision] * N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * 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}\;t\_m \leq 2.75 \cdot 10^{-39}:\\
\;\;\;\;\frac{2}{\frac{k \cdot k}{\ell} \cdot \frac{\frac{k \cdot k}{\frac{\ell}{t\_m}}}{\cos k}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\ell}{t\_m}}{k} \cdot \frac{\frac{\ell}{t\_m}}{t\_m \cdot k}\\
\end{array}
\end{array}
if t < 2.75000000000000009e-39Initial program 58.8%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified56.1%
Taylor expanded in t around 0
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
cos-lowering-cos.f6463.7%
Simplified63.7%
Taylor expanded in k around 0
unpow2N/A
*-lowering-*.f6461.4%
Simplified61.4%
times-fracN/A
clear-numN/A
associate-/l/N/A
clear-numN/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
cos-lowering-cos.f6467.7%
Applied egg-rr67.7%
if 2.75000000000000009e-39 < t Initial program 59.4%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified55.0%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
unpow3N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6454.1%
Simplified54.1%
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6459.1%
Applied egg-rr59.1%
associate-*l/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6468.5%
Applied egg-rr68.5%
associate-/r*N/A
associate-/l/N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6479.1%
Applied egg-rr79.1%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(let* ((t_2 (/ (* t_m t_m) l)))
(*
t_s
(if (<= t_m 1.06e-38)
(/
2.0
(/
(*
(* k k)
(+
(/ (* 2.0 (* t_m (* t_m t_m))) l)
(*
(* k k)
(+
(*
t_m
(+
(* (/ (* 2.0 (* t_m t_m)) l) 0.3333333333333333)
(+ (/ 1.0 l) (/ (* (* t_m t_m) -0.3333333333333333) l))))
(*
(+
(+
(/ (* (* t_m t_m) 0.016666666666666666) l)
(/ 0.3333333333333333 l))
(+
(*
2.0
(+
(-
(/ (* (* t_m t_m) 0.008333333333333333) l)
(* 0.3333333333333333 (/ (* (* t_m t_m) -0.5) l)))
(* t_2 -0.041666666666666664)))
(+
(* -0.3333333333333333 (* t_2 0.3333333333333333))
(* (/ 1.0 l) -0.16666666666666666))))
(* t_m (* k k)))))))
l))
(* (/ (/ l t_m) k) (/ (/ l t_m) (* t_m 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 = (t_m * t_m) / l;
double tmp;
if (t_m <= 1.06e-38) {
tmp = 2.0 / (((k * k) * (((2.0 * (t_m * (t_m * t_m))) / l) + ((k * k) * ((t_m * ((((2.0 * (t_m * t_m)) / l) * 0.3333333333333333) + ((1.0 / l) + (((t_m * t_m) * -0.3333333333333333) / l)))) + ((((((t_m * t_m) * 0.016666666666666666) / l) + (0.3333333333333333 / l)) + ((2.0 * (((((t_m * t_m) * 0.008333333333333333) / l) - (0.3333333333333333 * (((t_m * t_m) * -0.5) / l))) + (t_2 * -0.041666666666666664))) + ((-0.3333333333333333 * (t_2 * 0.3333333333333333)) + ((1.0 / l) * -0.16666666666666666)))) * (t_m * (k * k))))))) / l);
} else {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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) :: t_2
real(8) :: tmp
t_2 = (t_m * t_m) / l
if (t_m <= 1.06d-38) then
tmp = 2.0d0 / (((k * k) * (((2.0d0 * (t_m * (t_m * t_m))) / l) + ((k * k) * ((t_m * ((((2.0d0 * (t_m * t_m)) / l) * 0.3333333333333333d0) + ((1.0d0 / l) + (((t_m * t_m) * (-0.3333333333333333d0)) / l)))) + ((((((t_m * t_m) * 0.016666666666666666d0) / l) + (0.3333333333333333d0 / l)) + ((2.0d0 * (((((t_m * t_m) * 0.008333333333333333d0) / l) - (0.3333333333333333d0 * (((t_m * t_m) * (-0.5d0)) / l))) + (t_2 * (-0.041666666666666664d0)))) + (((-0.3333333333333333d0) * (t_2 * 0.3333333333333333d0)) + ((1.0d0 / l) * (-0.16666666666666666d0))))) * (t_m * (k * k))))))) / l)
else
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 t_2 = (t_m * t_m) / l;
double tmp;
if (t_m <= 1.06e-38) {
tmp = 2.0 / (((k * k) * (((2.0 * (t_m * (t_m * t_m))) / l) + ((k * k) * ((t_m * ((((2.0 * (t_m * t_m)) / l) * 0.3333333333333333) + ((1.0 / l) + (((t_m * t_m) * -0.3333333333333333) / l)))) + ((((((t_m * t_m) * 0.016666666666666666) / l) + (0.3333333333333333 / l)) + ((2.0 * (((((t_m * t_m) * 0.008333333333333333) / l) - (0.3333333333333333 * (((t_m * t_m) * -0.5) / l))) + (t_2 * -0.041666666666666664))) + ((-0.3333333333333333 * (t_2 * 0.3333333333333333)) + ((1.0 / l) * -0.16666666666666666)))) * (t_m * (k * k))))))) / l);
} else {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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): t_2 = (t_m * t_m) / l tmp = 0 if t_m <= 1.06e-38: tmp = 2.0 / (((k * k) * (((2.0 * (t_m * (t_m * t_m))) / l) + ((k * k) * ((t_m * ((((2.0 * (t_m * t_m)) / l) * 0.3333333333333333) + ((1.0 / l) + (((t_m * t_m) * -0.3333333333333333) / l)))) + ((((((t_m * t_m) * 0.016666666666666666) / l) + (0.3333333333333333 / l)) + ((2.0 * (((((t_m * t_m) * 0.008333333333333333) / l) - (0.3333333333333333 * (((t_m * t_m) * -0.5) / l))) + (t_2 * -0.041666666666666664))) + ((-0.3333333333333333 * (t_2 * 0.3333333333333333)) + ((1.0 / l) * -0.16666666666666666)))) * (t_m * (k * k))))))) / l) else: tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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(Float64(t_m * t_m) / l) tmp = 0.0 if (t_m <= 1.06e-38) tmp = Float64(2.0 / Float64(Float64(Float64(k * k) * Float64(Float64(Float64(2.0 * Float64(t_m * Float64(t_m * t_m))) / l) + Float64(Float64(k * k) * Float64(Float64(t_m * Float64(Float64(Float64(Float64(2.0 * Float64(t_m * t_m)) / l) * 0.3333333333333333) + Float64(Float64(1.0 / l) + Float64(Float64(Float64(t_m * t_m) * -0.3333333333333333) / l)))) + Float64(Float64(Float64(Float64(Float64(Float64(t_m * t_m) * 0.016666666666666666) / l) + Float64(0.3333333333333333 / l)) + Float64(Float64(2.0 * Float64(Float64(Float64(Float64(Float64(t_m * t_m) * 0.008333333333333333) / l) - Float64(0.3333333333333333 * Float64(Float64(Float64(t_m * t_m) * -0.5) / l))) + Float64(t_2 * -0.041666666666666664))) + Float64(Float64(-0.3333333333333333 * Float64(t_2 * 0.3333333333333333)) + Float64(Float64(1.0 / l) * -0.16666666666666666)))) * Float64(t_m * Float64(k * k))))))) / l)); else tmp = Float64(Float64(Float64(l / t_m) / k) * Float64(Float64(l / t_m) / Float64(t_m * 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) t_2 = (t_m * t_m) / l; tmp = 0.0; if (t_m <= 1.06e-38) tmp = 2.0 / (((k * k) * (((2.0 * (t_m * (t_m * t_m))) / l) + ((k * k) * ((t_m * ((((2.0 * (t_m * t_m)) / l) * 0.3333333333333333) + ((1.0 / l) + (((t_m * t_m) * -0.3333333333333333) / l)))) + ((((((t_m * t_m) * 0.016666666666666666) / l) + (0.3333333333333333 / l)) + ((2.0 * (((((t_m * t_m) * 0.008333333333333333) / l) - (0.3333333333333333 * (((t_m * t_m) * -0.5) / l))) + (t_2 * -0.041666666666666664))) + ((-0.3333333333333333 * (t_2 * 0.3333333333333333)) + ((1.0 / l) * -0.16666666666666666)))) * (t_m * (k * k))))))) / l); else tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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_] := Block[{t$95$2 = N[(N[(t$95$m * t$95$m), $MachinePrecision] / l), $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 1.06e-38], N[(2.0 / N[(N[(N[(k * k), $MachinePrecision] * N[(N[(N[(2.0 * N[(t$95$m * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision] + N[(N[(k * k), $MachinePrecision] * N[(N[(t$95$m * N[(N[(N[(N[(2.0 * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision] * 0.3333333333333333), $MachinePrecision] + N[(N[(1.0 / l), $MachinePrecision] + N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] * -0.3333333333333333), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(N[(N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] * 0.016666666666666666), $MachinePrecision] / l), $MachinePrecision] + N[(0.3333333333333333 / l), $MachinePrecision]), $MachinePrecision] + N[(N[(2.0 * N[(N[(N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] * 0.008333333333333333), $MachinePrecision] / l), $MachinePrecision] - N[(0.3333333333333333 * N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] * -0.5), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(t$95$2 * -0.041666666666666664), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] + N[(N[(-0.3333333333333333 * N[(t$95$2 * 0.3333333333333333), $MachinePrecision]), $MachinePrecision] + N[(N[(1.0 / l), $MachinePrecision] * -0.16666666666666666), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(N[(N[(l / t$95$m), $MachinePrecision] / k), $MachinePrecision] * N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * k), $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 \cdot t\_m}{\ell}\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 1.06 \cdot 10^{-38}:\\
\;\;\;\;\frac{2}{\frac{\left(k \cdot k\right) \cdot \left(\frac{2 \cdot \left(t\_m \cdot \left(t\_m \cdot t\_m\right)\right)}{\ell} + \left(k \cdot k\right) \cdot \left(t\_m \cdot \left(\frac{2 \cdot \left(t\_m \cdot t\_m\right)}{\ell} \cdot 0.3333333333333333 + \left(\frac{1}{\ell} + \frac{\left(t\_m \cdot t\_m\right) \cdot -0.3333333333333333}{\ell}\right)\right) + \left(\left(\frac{\left(t\_m \cdot t\_m\right) \cdot 0.016666666666666666}{\ell} + \frac{0.3333333333333333}{\ell}\right) + \left(2 \cdot \left(\left(\frac{\left(t\_m \cdot t\_m\right) \cdot 0.008333333333333333}{\ell} - 0.3333333333333333 \cdot \frac{\left(t\_m \cdot t\_m\right) \cdot -0.5}{\ell}\right) + t\_2 \cdot -0.041666666666666664\right) + \left(-0.3333333333333333 \cdot \left(t\_2 \cdot 0.3333333333333333\right) + \frac{1}{\ell} \cdot -0.16666666666666666\right)\right)\right) \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)\right)\right)}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\ell}{t\_m}}{k} \cdot \frac{\frac{\ell}{t\_m}}{t\_m \cdot k}\\
\end{array}
\end{array}
\end{array}
if t < 1.06000000000000001e-38Initial program 58.8%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified56.1%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr64.2%
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
Applied egg-rr51.4%
Taylor expanded in t around 0
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f6484.6%
Simplified84.6%
Taylor expanded in k around 0
Simplified57.2%
if 1.06000000000000001e-38 < t Initial program 59.4%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified55.0%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
unpow3N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6454.1%
Simplified54.1%
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6459.1%
Applied egg-rr59.1%
associate-*l/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6468.5%
Applied egg-rr68.5%
associate-/r*N/A
associate-/l/N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6479.1%
Applied egg-rr79.1%
Final simplification63.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
(if (<= t_m 2.75e-39)
(/ 2.0 (* t_m (/ (/ (* k (* k (* k k))) l) l)))
(* (/ (/ l t_m) k) (/ (/ l t_m) (* t_m 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 (t_m <= 2.75e-39) {
tmp = 2.0 / (t_m * (((k * (k * (k * k))) / l) / l));
} else {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 (t_m <= 2.75d-39) then
tmp = 2.0d0 / (t_m * (((k * (k * (k * k))) / l) / l))
else
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 (t_m <= 2.75e-39) {
tmp = 2.0 / (t_m * (((k * (k * (k * k))) / l) / l));
} else {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 t_m <= 2.75e-39: tmp = 2.0 / (t_m * (((k * (k * (k * k))) / l) / l)) else: tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 (t_m <= 2.75e-39) tmp = Float64(2.0 / Float64(t_m * Float64(Float64(Float64(k * Float64(k * Float64(k * k))) / l) / l))); else tmp = Float64(Float64(Float64(l / t_m) / k) * Float64(Float64(l / t_m) / Float64(t_m * 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 (t_m <= 2.75e-39) tmp = 2.0 / (t_m * (((k * (k * (k * k))) / l) / l)); else tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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[t$95$m, 2.75e-39], N[(2.0 / N[(t$95$m * N[(N[(N[(k * N[(k * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(l / t$95$m), $MachinePrecision] / k), $MachinePrecision] * N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * 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}\;t\_m \leq 2.75 \cdot 10^{-39}:\\
\;\;\;\;\frac{2}{t\_m \cdot \frac{\frac{k \cdot \left(k \cdot \left(k \cdot k\right)\right)}{\ell}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\ell}{t\_m}}{k} \cdot \frac{\frac{\ell}{t\_m}}{t\_m \cdot k}\\
\end{array}
\end{array}
if t < 2.75000000000000009e-39Initial program 58.8%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified56.1%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr64.2%
Taylor expanded in k around 0
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f6442.6%
Simplified42.6%
Taylor expanded in t around 0
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
pow-lowering-pow.f6462.9%
Simplified62.9%
associate-/l*N/A
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
metadata-evalN/A
pow-sqrN/A
pow2N/A
pow2N/A
associate-*l*N/A
cube-unmultN/A
*-lowering-*.f64N/A
cube-unmultN/A
*-lowering-*.f64N/A
*-lowering-*.f6463.7%
Applied egg-rr63.7%
if 2.75000000000000009e-39 < t Initial program 59.4%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified55.0%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
unpow3N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6454.1%
Simplified54.1%
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6459.1%
Applied egg-rr59.1%
associate-*l/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6468.5%
Applied egg-rr68.5%
associate-/r*N/A
associate-/l/N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6479.1%
Applied egg-rr79.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 (<= t_m 2.75e-39)
(* l (/ (/ 2.0 t_m) (/ (* k (* k (* k k))) l)))
(* (/ (/ l t_m) k) (/ (/ l t_m) (* t_m 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 (t_m <= 2.75e-39) {
tmp = l * ((2.0 / t_m) / ((k * (k * (k * k))) / l));
} else {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 (t_m <= 2.75d-39) then
tmp = l * ((2.0d0 / t_m) / ((k * (k * (k * k))) / l))
else
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 (t_m <= 2.75e-39) {
tmp = l * ((2.0 / t_m) / ((k * (k * (k * k))) / l));
} else {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 t_m <= 2.75e-39: tmp = l * ((2.0 / t_m) / ((k * (k * (k * k))) / l)) else: tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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 (t_m <= 2.75e-39) tmp = Float64(l * Float64(Float64(2.0 / t_m) / Float64(Float64(k * Float64(k * Float64(k * k))) / l))); else tmp = Float64(Float64(Float64(l / t_m) / k) * Float64(Float64(l / t_m) / Float64(t_m * 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 (t_m <= 2.75e-39) tmp = l * ((2.0 / t_m) / ((k * (k * (k * k))) / l)); else tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * 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[t$95$m, 2.75e-39], N[(l * N[(N[(2.0 / t$95$m), $MachinePrecision] / N[(N[(k * N[(k * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(l / t$95$m), $MachinePrecision] / k), $MachinePrecision] * N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * 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}\;t\_m \leq 2.75 \cdot 10^{-39}:\\
\;\;\;\;\ell \cdot \frac{\frac{2}{t\_m}}{\frac{k \cdot \left(k \cdot \left(k \cdot k\right)\right)}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\ell}{t\_m}}{k} \cdot \frac{\frac{\ell}{t\_m}}{t\_m \cdot k}\\
\end{array}
\end{array}
if t < 2.75000000000000009e-39Initial program 58.8%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified56.1%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr64.2%
Taylor expanded in k around 0
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-lowering-+.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
associate-*r/N/A
metadata-evalN/A
/-lowering-/.f6442.6%
Simplified42.6%
Taylor expanded in t around 0
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
pow-lowering-pow.f6462.9%
Simplified62.9%
associate-/r/N/A
*-lowering-*.f64N/A
associate-/l*N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
metadata-evalN/A
pow-sqrN/A
pow2N/A
pow2N/A
associate-*l*N/A
cube-unmultN/A
*-lowering-*.f64N/A
cube-unmultN/A
*-lowering-*.f64N/A
*-lowering-*.f6463.6%
Applied egg-rr63.6%
if 2.75000000000000009e-39 < t Initial program 59.4%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified55.0%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
unpow3N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6454.1%
Simplified54.1%
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6459.1%
Applied egg-rr59.1%
associate-*l/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6468.5%
Applied egg-rr68.5%
associate-/r*N/A
associate-/l/N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6479.1%
Applied egg-rr79.1%
Final simplification68.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 (<= k 1.55e+78)
(* (/ (/ l t_m) k) (/ (/ l t_m) (* t_m k)))
(/ (/ (/ (* l l) (* t_m (* k k))) t_m) t_m))))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.55e+78) {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * k));
} else {
tmp = (((l * l) / (t_m * (k * k))) / t_m) / t_m;
}
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 (k <= 1.55d+78) then
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * k))
else
tmp = (((l * l) / (t_m * (k * k))) / t_m) / t_m
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 (k <= 1.55e+78) {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * k));
} else {
tmp = (((l * l) / (t_m * (k * k))) / t_m) / t_m;
}
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 k <= 1.55e+78: tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * k)) else: tmp = (((l * l) / (t_m * (k * k))) / t_m) / t_m 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.55e+78) tmp = Float64(Float64(Float64(l / t_m) / k) * Float64(Float64(l / t_m) / Float64(t_m * k))); else tmp = Float64(Float64(Float64(Float64(l * l) / Float64(t_m * Float64(k * k))) / t_m) / t_m); 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 (k <= 1.55e+78) tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * k)); else tmp = (((l * l) / (t_m * (k * k))) / t_m) / t_m; 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[k, 1.55e+78], N[(N[(N[(l / t$95$m), $MachinePrecision] / k), $MachinePrecision] * N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(N[(l * l), $MachinePrecision] / N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision] / t$95$m), $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.55 \cdot 10^{+78}:\\
\;\;\;\;\frac{\frac{\ell}{t\_m}}{k} \cdot \frac{\frac{\ell}{t\_m}}{t\_m \cdot k}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{\ell \cdot \ell}{t\_m \cdot \left(k \cdot k\right)}}{t\_m}}{t\_m}\\
\end{array}
\end{array}
if k < 1.55e78Initial program 58.7%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified54.7%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
unpow3N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6458.3%
Simplified58.3%
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6464.3%
Applied egg-rr64.3%
associate-*l/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6470.1%
Applied egg-rr70.1%
associate-/r*N/A
associate-/l/N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6474.7%
Applied egg-rr74.7%
if 1.55e78 < k Initial program 60.4%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified60.5%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
unpow3N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6459.1%
Simplified59.1%
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6459.5%
Applied egg-rr59.5%
associate-*r/N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-/l/N/A
associate-*l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6469.6%
Applied egg-rr69.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 1e+62)
(* (/ (/ l t_m) k) (/ (/ l t_m) (* t_m k)))
(/ (* (/ l t_m) (/ l (* t_m (* k k)))) t_m))))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 <= 1e+62) {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * k));
} else {
tmp = ((l / t_m) * (l / (t_m * (k * k)))) / t_m;
}
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 (k <= 1d+62) then
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * k))
else
tmp = ((l / t_m) * (l / (t_m * (k * k)))) / t_m
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 (k <= 1e+62) {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * k));
} else {
tmp = ((l / t_m) * (l / (t_m * (k * k)))) / t_m;
}
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 k <= 1e+62: tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * k)) else: tmp = ((l / t_m) * (l / (t_m * (k * k)))) / t_m 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 <= 1e+62) tmp = Float64(Float64(Float64(l / t_m) / k) * Float64(Float64(l / t_m) / Float64(t_m * k))); else tmp = Float64(Float64(Float64(l / t_m) * Float64(l / Float64(t_m * Float64(k * k)))) / t_m); 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 (k <= 1e+62) tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * k)); else tmp = ((l / t_m) * (l / (t_m * (k * k)))) / t_m; 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[k, 1e+62], N[(N[(N[(l / t$95$m), $MachinePrecision] / k), $MachinePrecision] * N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(N[(l / t$95$m), $MachinePrecision] * N[(l / N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $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 10^{+62}:\\
\;\;\;\;\frac{\frac{\ell}{t\_m}}{k} \cdot \frac{\frac{\ell}{t\_m}}{t\_m \cdot k}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\ell}{t\_m} \cdot \frac{\ell}{t\_m \cdot \left(k \cdot k\right)}}{t\_m}\\
\end{array}
\end{array}
if k < 1.00000000000000004e62Initial program 58.2%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified54.2%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
unpow3N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6458.3%
Simplified58.3%
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6464.4%
Applied egg-rr64.4%
associate-*l/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6470.3%
Applied egg-rr70.3%
associate-/r*N/A
associate-/l/N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6475.0%
Applied egg-rr75.0%
if 1.00000000000000004e62 < k Initial program 62.0%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified62.2%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
unpow3N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6459.1%
Simplified59.1%
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6459.4%
Applied egg-rr59.4%
associate-/r*N/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
associate-/l/N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f6465.5%
Applied egg-rr65.5%
Final simplification73.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 (<= k 5e+24)
(* (/ (/ l t_m) k) (/ (/ l t_m) (* t_m k)))
(/ (* l (/ (/ l t_m) (* k k))) (* t_m t_m)))))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 <= 5e+24) {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * k));
} else {
tmp = (l * ((l / t_m) / (k * k))) / (t_m * t_m);
}
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 (k <= 5d+24) then
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * k))
else
tmp = (l * ((l / t_m) / (k * k))) / (t_m * t_m)
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 (k <= 5e+24) {
tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * k));
} else {
tmp = (l * ((l / t_m) / (k * k))) / (t_m * t_m);
}
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 k <= 5e+24: tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * k)) else: tmp = (l * ((l / t_m) / (k * k))) / (t_m * t_m) 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 <= 5e+24) tmp = Float64(Float64(Float64(l / t_m) / k) * Float64(Float64(l / t_m) / Float64(t_m * k))); else tmp = Float64(Float64(l * Float64(Float64(l / t_m) / Float64(k * k))) / Float64(t_m * t_m)); 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 (k <= 5e+24) tmp = ((l / t_m) / k) * ((l / t_m) / (t_m * k)); else tmp = (l * ((l / t_m) / (k * k))) / (t_m * t_m); 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[k, 5e+24], N[(N[(N[(l / t$95$m), $MachinePrecision] / k), $MachinePrecision] * N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(l * N[(N[(l / t$95$m), $MachinePrecision] / N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(t$95$m * t$95$m), $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 \cdot 10^{+24}:\\
\;\;\;\;\frac{\frac{\ell}{t\_m}}{k} \cdot \frac{\frac{\ell}{t\_m}}{t\_m \cdot k}\\
\mathbf{else}:\\
\;\;\;\;\frac{\ell \cdot \frac{\frac{\ell}{t\_m}}{k \cdot k}}{t\_m \cdot t\_m}\\
\end{array}
\end{array}
if k < 5.00000000000000045e24Initial program 58.5%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified54.3%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
unpow3N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6459.1%
Simplified59.1%
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6465.3%
Applied egg-rr65.3%
associate-*l/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6471.4%
Applied egg-rr71.4%
associate-/r*N/A
associate-/l/N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6476.2%
Applied egg-rr76.2%
if 5.00000000000000045e24 < k Initial program 60.8%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified60.9%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
unpow3N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6456.3%
Simplified56.3%
times-fracN/A
associate-*l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6456.8%
Applied egg-rr56.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 (* (/ (/ l t_m) k) (/ (/ l t_m) (* t_m 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 * (((l / t_m) / k) * ((l / t_m) / (t_m * 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 / t_m) / k) * ((l / t_m) / (t_m * 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 * (((l / t_m) / k) * ((l / t_m) / (t_m * k)));
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): return t_s * (((l / t_m) / k) * ((l / t_m) / (t_m * k)))
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) return Float64(t_s * Float64(Float64(Float64(l / t_m) / k) * Float64(Float64(l / t_m) / Float64(t_m * 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 / t_m) / k) * ((l / t_m) / (t_m * 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[(N[(l / t$95$m), $MachinePrecision] / k), $MachinePrecision] * N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * k), $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{\frac{\ell}{t\_m}}{k} \cdot \frac{\frac{\ell}{t\_m}}{t\_m \cdot k}\right)
\end{array}
Initial program 59.0%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified55.8%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
unpow3N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6458.5%
Simplified58.5%
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6463.4%
Applied egg-rr63.4%
associate-*l/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6467.9%
Applied egg-rr67.9%
associate-/r*N/A
associate-/l/N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f6471.6%
Applied egg-rr71.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 (* (/ (/ l k) t_m) (/ (/ l (* t_m t_m)) 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 * (((l / k) / t_m) * ((l / (t_m * t_m)) / 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 / k) / t_m) * ((l / (t_m * t_m)) / 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 * (((l / k) / t_m) * ((l / (t_m * t_m)) / k));
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): return t_s * (((l / k) / t_m) * ((l / (t_m * t_m)) / k))
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) return Float64(t_s * Float64(Float64(Float64(l / k) / t_m) * Float64(Float64(l / Float64(t_m * t_m)) / 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 / k) / t_m) * ((l / (t_m * t_m)) / 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[(N[(l / k), $MachinePrecision] / t$95$m), $MachinePrecision] * N[(N[(l / N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \left(\frac{\frac{\ell}{k}}{t\_m} \cdot \frac{\frac{\ell}{t\_m \cdot t\_m}}{k}\right)
\end{array}
Initial program 59.0%
/-lowering-/.f64N/A
associate-*l*N/A
associate-*l/N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
cube-multN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l/N/A
/-lowering-/.f64N/A
Simplified55.8%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
unpow3N/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6458.5%
Simplified58.5%
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
*-commutativeN/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6463.4%
Applied egg-rr63.4%
associate-*l/N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6467.9%
Applied egg-rr67.9%
associate-/l/N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f6468.2%
Applied egg-rr68.2%
herbie shell --seed 2024162
(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))))