
(FPCore (t l k) :precision binary64 (/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (+ (+ 1.0 (pow (/ k t) 2.0)) 1.0))))
double code(double t, double l, double k) {
return 2.0 / ((((pow(t, 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + pow((k / t), 2.0)) + 1.0));
}
real(8) function code(t, l, k)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k
code = 2.0d0 / (((((t ** 3.0d0) / (l * l)) * sin(k)) * tan(k)) * ((1.0d0 + ((k / t) ** 2.0d0)) + 1.0d0))
end function
public static double code(double t, double l, double k) {
return 2.0 / ((((Math.pow(t, 3.0) / (l * l)) * Math.sin(k)) * Math.tan(k)) * ((1.0 + Math.pow((k / t), 2.0)) + 1.0));
}
def code(t, l, k): return 2.0 / ((((math.pow(t, 3.0) / (l * l)) * math.sin(k)) * math.tan(k)) * ((1.0 + math.pow((k / t), 2.0)) + 1.0))
function code(t, l, k) return Float64(2.0 / Float64(Float64(Float64(Float64((t ^ 3.0) / Float64(l * l)) * sin(k)) * tan(k)) * Float64(Float64(1.0 + (Float64(k / t) ^ 2.0)) + 1.0))) end
function tmp = code(t, l, k) tmp = 2.0 / (((((t ^ 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + ((k / t) ^ 2.0)) + 1.0)); end
code[t_, l_, k_] := N[(2.0 / N[(N[(N[(N[(N[Power[t, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[(1.0 + N[Power[N[(k / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 16 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (t l k) :precision binary64 (/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (+ (+ 1.0 (pow (/ k t) 2.0)) 1.0))))
double code(double t, double l, double k) {
return 2.0 / ((((pow(t, 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + pow((k / t), 2.0)) + 1.0));
}
real(8) function code(t, l, k)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k
code = 2.0d0 / (((((t ** 3.0d0) / (l * l)) * sin(k)) * tan(k)) * ((1.0d0 + ((k / t) ** 2.0d0)) + 1.0d0))
end function
public static double code(double t, double l, double k) {
return 2.0 / ((((Math.pow(t, 3.0) / (l * l)) * Math.sin(k)) * Math.tan(k)) * ((1.0 + Math.pow((k / t), 2.0)) + 1.0));
}
def code(t, l, k): return 2.0 / ((((math.pow(t, 3.0) / (l * l)) * math.sin(k)) * math.tan(k)) * ((1.0 + math.pow((k / t), 2.0)) + 1.0))
function code(t, l, k) return Float64(2.0 / Float64(Float64(Float64(Float64((t ^ 3.0) / Float64(l * l)) * sin(k)) * tan(k)) * Float64(Float64(1.0 + (Float64(k / t) ^ 2.0)) + 1.0))) end
function tmp = code(t, l, k) tmp = 2.0 / (((((t ^ 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + ((k / t) ^ 2.0)) + 1.0)); end
code[t_, l_, k_] := N[(2.0 / N[(N[(N[(N[(N[Power[t, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[(1.0 + N[Power[N[(k / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}
\end{array}
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 1.05e-75)
(/ (* (* 2.0 (* l l)) (cos k)) (* k (* k (* t_m (pow (sin k) 2.0)))))
(/
2.0
(*
(/ (* (tan k) (* t_m (fma k (/ k (* t_m t_m)) 2.0))) l)
(/ (* t_m (* t_m (sin k))) l))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 1.05e-75) {
tmp = ((2.0 * (l * l)) * cos(k)) / (k * (k * (t_m * pow(sin(k), 2.0))));
} else {
tmp = 2.0 / (((tan(k) * (t_m * fma(k, (k / (t_m * t_m)), 2.0))) / l) * ((t_m * (t_m * sin(k))) / l));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 1.05e-75) tmp = Float64(Float64(Float64(2.0 * Float64(l * l)) * cos(k)) / Float64(k * Float64(k * Float64(t_m * (sin(k) ^ 2.0))))); else tmp = Float64(2.0 / Float64(Float64(Float64(tan(k) * Float64(t_m * fma(k, Float64(k / Float64(t_m * t_m)), 2.0))) / l) * Float64(Float64(t_m * Float64(t_m * sin(k))) / l))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 1.05e-75], N[(N[(N[(2.0 * N[(l * l), $MachinePrecision]), $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision] / N[(k * N[(k * N[(t$95$m * N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[Tan[k], $MachinePrecision] * N[(t$95$m * N[(k * N[(k / N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision] * N[(N[(t$95$m * N[(t$95$m * N[Sin[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 1.05 \cdot 10^{-75}:\\
\;\;\;\;\frac{\left(2 \cdot \left(\ell \cdot \ell\right)\right) \cdot \cos k}{k \cdot \left(k \cdot \left(t\_m \cdot {\sin k}^{2}\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{\tan k \cdot \left(t\_m \cdot \mathsf{fma}\left(k, \frac{k}{t\_m \cdot t\_m}, 2\right)\right)}{\ell} \cdot \frac{t\_m \cdot \left(t\_m \cdot \sin k\right)}{\ell}}\\
\end{array}
\end{array}
if t < 1.0500000000000001e-75Initial program 49.2%
associate-*l/N/A
div-invN/A
cube-multN/A
associate-*l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6453.1
Applied egg-rr53.1%
un-div-invN/A
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f6466.1
Applied egg-rr66.1%
Taylor expanded in t around 0
associate-*r/N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f6469.4
Simplified69.4%
if 1.0500000000000001e-75 < t Initial program 69.2%
associate-*l*N/A
*-commutativeN/A
associate-*l/N/A
div-invN/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr65.1%
un-div-invN/A
associate-*r*N/A
times-fracN/A
*-lowering-*.f64N/A
Applied egg-rr93.1%
Final simplification76.9%
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 (sin k))))
(*
t_s
(if (<=
(/
2.0
(*
(+ (+ (pow (/ k t_m) 2.0) 1.0) 1.0)
(* (tan k) (* (sin k) (/ (pow t_m 3.0) (* l l))))))
5e+101)
(*
l
(/
(* 2.0 l)
(* (fma k (/ k (* t_m t_m)) 2.0) (* (* t_m t_2) (* t_m (tan k))))))
(/ 2.0 (* 2.0 (* (tan k) (* t_m (/ (* t_2 (/ t_m l)) l)))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double t_2 = t_m * sin(k);
double tmp;
if ((2.0 / (((pow((k / t_m), 2.0) + 1.0) + 1.0) * (tan(k) * (sin(k) * (pow(t_m, 3.0) / (l * l)))))) <= 5e+101) {
tmp = l * ((2.0 * l) / (fma(k, (k / (t_m * t_m)), 2.0) * ((t_m * t_2) * (t_m * tan(k)))));
} else {
tmp = 2.0 / (2.0 * (tan(k) * (t_m * ((t_2 * (t_m / l)) / 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 * sin(k)) tmp = 0.0 if (Float64(2.0 / Float64(Float64(Float64((Float64(k / t_m) ^ 2.0) + 1.0) + 1.0) * Float64(tan(k) * Float64(sin(k) * Float64((t_m ^ 3.0) / Float64(l * l)))))) <= 5e+101) tmp = Float64(l * Float64(Float64(2.0 * l) / Float64(fma(k, Float64(k / Float64(t_m * t_m)), 2.0) * Float64(Float64(t_m * t_2) * Float64(t_m * tan(k)))))); else tmp = Float64(2.0 / Float64(2.0 * Float64(tan(k) * Float64(t_m * Float64(Float64(t_2 * Float64(t_m / l)) / l))))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := Block[{t$95$2 = N[(t$95$m * N[Sin[k], $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[N[(2.0 / N[(N[(N[(N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision] + 1.0), $MachinePrecision] + 1.0), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[(N[Power[t$95$m, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 5e+101], N[(l * N[(N[(2.0 * l), $MachinePrecision] / N[(N[(k * N[(k / N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision] + 2.0), $MachinePrecision] * N[(N[(t$95$m * t$95$2), $MachinePrecision] * N[(t$95$m * N[Tan[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(2.0 * N[(N[Tan[k], $MachinePrecision] * N[(t$95$m * N[(N[(t$95$2 * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := t\_m \cdot \sin k\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;\frac{2}{\left(\left({\left(\frac{k}{t\_m}\right)}^{2} + 1\right) + 1\right) \cdot \left(\tan k \cdot \left(\sin k \cdot \frac{{t\_m}^{3}}{\ell \cdot \ell}\right)\right)} \leq 5 \cdot 10^{+101}:\\
\;\;\;\;\ell \cdot \frac{2 \cdot \ell}{\mathsf{fma}\left(k, \frac{k}{t\_m \cdot t\_m}, 2\right) \cdot \left(\left(t\_m \cdot t\_2\right) \cdot \left(t\_m \cdot \tan k\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{2 \cdot \left(\tan k \cdot \left(t\_m \cdot \frac{t\_2 \cdot \frac{t\_m}{\ell}}{\ell}\right)\right)}\\
\end{array}
\end{array}
\end{array}
if (/.f64 #s(literal 2 binary64) (*.f64 (*.f64 (*.f64 (/.f64 (pow.f64 t #s(literal 3 binary64)) (*.f64 l l)) (sin.f64 k)) (tan.f64 k)) (+.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (/.f64 k t) #s(literal 2 binary64))) #s(literal 1 binary64)))) < 4.99999999999999989e101Initial program 81.5%
pow-to-expN/A
pow2N/A
pow-to-expN/A
div-expN/A
exp-lowering-exp.f64N/A
--lowering--.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
log-lowering-log.f64N/A
*-lowering-*.f64N/A
log-lowering-log.f6420.2
Applied egg-rr20.2%
Applied egg-rr79.8%
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr87.8%
if 4.99999999999999989e101 < (/.f64 #s(literal 2 binary64) (*.f64 (*.f64 (*.f64 (/.f64 (pow.f64 t #s(literal 3 binary64)) (*.f64 l l)) (sin.f64 k)) (tan.f64 k)) (+.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (/.f64 k t) #s(literal 2 binary64))) #s(literal 1 binary64)))) Initial program 23.7%
associate-*l/N/A
div-invN/A
cube-multN/A
associate-*l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6429.8
Applied egg-rr29.8%
un-div-invN/A
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f6455.7
Applied egg-rr55.7%
*-commutativeN/A
frac-2negN/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
neg-lowering-neg.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
neg-lowering-neg.f6455.8
Applied egg-rr55.8%
Taylor expanded in k around 0
Simplified58.8%
Final simplification74.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 1.9e-74)
(* (* 2.0 (* l l)) (/ (cos k) (* (pow (sin k) 2.0) (* t_m (* k k)))))
(/
2.0
(*
(/ (* (tan k) (* t_m (fma k (/ k (* t_m t_m)) 2.0))) l)
(/ (* t_m (* t_m (sin k))) l))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 1.9e-74) {
tmp = (2.0 * (l * l)) * (cos(k) / (pow(sin(k), 2.0) * (t_m * (k * k))));
} else {
tmp = 2.0 / (((tan(k) * (t_m * fma(k, (k / (t_m * t_m)), 2.0))) / l) * ((t_m * (t_m * sin(k))) / l));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 1.9e-74) tmp = Float64(Float64(2.0 * Float64(l * l)) * Float64(cos(k) / Float64((sin(k) ^ 2.0) * Float64(t_m * Float64(k * k))))); else tmp = Float64(2.0 / Float64(Float64(Float64(tan(k) * Float64(t_m * fma(k, Float64(k / Float64(t_m * t_m)), 2.0))) / l) * Float64(Float64(t_m * Float64(t_m * sin(k))) / l))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 1.9e-74], N[(N[(2.0 * N[(l * l), $MachinePrecision]), $MachinePrecision] * N[(N[Cos[k], $MachinePrecision] / N[(N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision] * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[Tan[k], $MachinePrecision] * N[(t$95$m * N[(k * N[(k / N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision] * N[(N[(t$95$m * N[(t$95$m * N[Sin[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 1.9 \cdot 10^{-74}:\\
\;\;\;\;\left(2 \cdot \left(\ell \cdot \ell\right)\right) \cdot \frac{\cos k}{{\sin k}^{2} \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{\tan k \cdot \left(t\_m \cdot \mathsf{fma}\left(k, \frac{k}{t\_m \cdot t\_m}, 2\right)\right)}{\ell} \cdot \frac{t\_m \cdot \left(t\_m \cdot \sin k\right)}{\ell}}\\
\end{array}
\end{array}
if t < 1.8999999999999998e-74Initial program 49.2%
Taylor expanded in t around 0
associate-/l*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
cos-lowering-cos.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6463.6
Simplified63.6%
if 1.8999999999999998e-74 < t Initial program 69.2%
associate-*l*N/A
*-commutativeN/A
associate-*l/N/A
div-invN/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr65.1%
un-div-invN/A
associate-*r*N/A
times-fracN/A
*-lowering-*.f64N/A
Applied egg-rr93.1%
Final simplification73.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 (* t_m (sin k))))
(*
t_s
(if (<= t_m 1.05e-279)
(/ 2.0 (* 2.0 (* (tan k) (* t_m (* (/ t_2 l) (/ t_m l))))))
(if (<= t_m 1.2e-145)
(/ 2.0 (* (* k (* k k)) (/ t_2 (* (* l l) (cos k)))))
(if (<= t_m 2.25e+110)
(/
2.0
(*
(/ t_m l)
(*
(* (tan k) (fma k (/ k (* t_m t_m)) 2.0))
(* (sin k) (/ (* t_m t_m) l)))))
(/ 2.0 (* 2.0 (* (tan k) (* t_m (/ (* t_2 (/ t_m l)) l)))))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double t_2 = t_m * sin(k);
double tmp;
if (t_m <= 1.05e-279) {
tmp = 2.0 / (2.0 * (tan(k) * (t_m * ((t_2 / l) * (t_m / l)))));
} else if (t_m <= 1.2e-145) {
tmp = 2.0 / ((k * (k * k)) * (t_2 / ((l * l) * cos(k))));
} else if (t_m <= 2.25e+110) {
tmp = 2.0 / ((t_m / l) * ((tan(k) * fma(k, (k / (t_m * t_m)), 2.0)) * (sin(k) * ((t_m * t_m) / l))));
} else {
tmp = 2.0 / (2.0 * (tan(k) * (t_m * ((t_2 * (t_m / l)) / 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 * sin(k)) tmp = 0.0 if (t_m <= 1.05e-279) tmp = Float64(2.0 / Float64(2.0 * Float64(tan(k) * Float64(t_m * Float64(Float64(t_2 / l) * Float64(t_m / l)))))); elseif (t_m <= 1.2e-145) tmp = Float64(2.0 / Float64(Float64(k * Float64(k * k)) * Float64(t_2 / Float64(Float64(l * l) * cos(k))))); elseif (t_m <= 2.25e+110) tmp = Float64(2.0 / Float64(Float64(t_m / l) * Float64(Float64(tan(k) * fma(k, Float64(k / Float64(t_m * t_m)), 2.0)) * Float64(sin(k) * Float64(Float64(t_m * t_m) / l))))); else tmp = Float64(2.0 / Float64(2.0 * Float64(tan(k) * Float64(t_m * Float64(Float64(t_2 * Float64(t_m / l)) / l))))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := Block[{t$95$2 = N[(t$95$m * N[Sin[k], $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 1.05e-279], N[(2.0 / N[(2.0 * N[(N[Tan[k], $MachinePrecision] * N[(t$95$m * N[(N[(t$95$2 / l), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 1.2e-145], N[(2.0 / N[(N[(k * N[(k * k), $MachinePrecision]), $MachinePrecision] * N[(t$95$2 / N[(N[(l * l), $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 2.25e+110], N[(2.0 / N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(N[Tan[k], $MachinePrecision] * N[(k * N[(k / N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[(N[(t$95$m * t$95$m), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(2.0 * N[(N[Tan[k], $MachinePrecision] * N[(t$95$m * N[(N[(t$95$2 * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]), $MachinePrecision]]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := t\_m \cdot \sin k\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 1.05 \cdot 10^{-279}:\\
\;\;\;\;\frac{2}{2 \cdot \left(\tan k \cdot \left(t\_m \cdot \left(\frac{t\_2}{\ell} \cdot \frac{t\_m}{\ell}\right)\right)\right)}\\
\mathbf{elif}\;t\_m \leq 1.2 \cdot 10^{-145}:\\
\;\;\;\;\frac{2}{\left(k \cdot \left(k \cdot k\right)\right) \cdot \frac{t\_2}{\left(\ell \cdot \ell\right) \cdot \cos k}}\\
\mathbf{elif}\;t\_m \leq 2.25 \cdot 10^{+110}:\\
\;\;\;\;\frac{2}{\frac{t\_m}{\ell} \cdot \left(\left(\tan k \cdot \mathsf{fma}\left(k, \frac{k}{t\_m \cdot t\_m}, 2\right)\right) \cdot \left(\sin k \cdot \frac{t\_m \cdot t\_m}{\ell}\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{2 \cdot \left(\tan k \cdot \left(t\_m \cdot \frac{t\_2 \cdot \frac{t\_m}{\ell}}{\ell}\right)\right)}\\
\end{array}
\end{array}
\end{array}
if t < 1.05000000000000003e-279Initial program 53.5%
associate-*l/N/A
div-invN/A
cube-multN/A
associate-*l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6456.6
Applied egg-rr56.6%
un-div-invN/A
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f6468.9
Applied egg-rr68.9%
Taylor expanded in k around 0
Simplified69.8%
if 1.05000000000000003e-279 < t < 1.20000000000000008e-145Initial program 34.5%
Taylor expanded in k around 0
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6434.5
Simplified34.5%
Taylor expanded in t around 0
associate-/l*N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
unpow2N/A
*-lowering-*.f6469.9
Simplified69.9%
if 1.20000000000000008e-145 < t < 2.2500000000000001e110Initial program 66.8%
associate-*l*N/A
*-commutativeN/A
associate-*l/N/A
div-invN/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr66.6%
associate-*l*N/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr75.6%
associate-*l*N/A
*-commutativeN/A
times-fracN/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
associate-*r/N/A
*-lowering-*.f64N/A
Applied egg-rr85.2%
if 2.2500000000000001e110 < t Initial program 62.9%
associate-*l/N/A
div-invN/A
cube-multN/A
associate-*l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6470.0
Applied egg-rr70.0%
un-div-invN/A
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f6492.2
Applied egg-rr92.2%
*-commutativeN/A
frac-2negN/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
neg-lowering-neg.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
neg-lowering-neg.f6492.2
Applied egg-rr92.2%
Taylor expanded in k around 0
Simplified92.2%
Final simplification76.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 (<= (* l l) 2e+193)
(/
2.0
(*
(* (tan k) (* t_m (* (/ t_m l) (/ (* t_m k) l))))
(+ (+ (pow (/ k t_m) 2.0) 1.0) 1.0)))
(/ 2.0 (* 2.0 (* (tan k) (* t_m (/ (* (* t_m (sin k)) (/ t_m l)) l))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if ((l * l) <= 2e+193) {
tmp = 2.0 / ((tan(k) * (t_m * ((t_m / l) * ((t_m * k) / l)))) * ((pow((k / t_m), 2.0) + 1.0) + 1.0));
} else {
tmp = 2.0 / (2.0 * (tan(k) * (t_m * (((t_m * sin(k)) * (t_m / l)) / 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 ((l * l) <= 2d+193) then
tmp = 2.0d0 / ((tan(k) * (t_m * ((t_m / l) * ((t_m * k) / l)))) * ((((k / t_m) ** 2.0d0) + 1.0d0) + 1.0d0))
else
tmp = 2.0d0 / (2.0d0 * (tan(k) * (t_m * (((t_m * sin(k)) * (t_m / l)) / 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 ((l * l) <= 2e+193) {
tmp = 2.0 / ((Math.tan(k) * (t_m * ((t_m / l) * ((t_m * k) / l)))) * ((Math.pow((k / t_m), 2.0) + 1.0) + 1.0));
} else {
tmp = 2.0 / (2.0 * (Math.tan(k) * (t_m * (((t_m * Math.sin(k)) * (t_m / l)) / 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 (l * l) <= 2e+193: tmp = 2.0 / ((math.tan(k) * (t_m * ((t_m / l) * ((t_m * k) / l)))) * ((math.pow((k / t_m), 2.0) + 1.0) + 1.0)) else: tmp = 2.0 / (2.0 * (math.tan(k) * (t_m * (((t_m * math.sin(k)) * (t_m / l)) / l)))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (Float64(l * l) <= 2e+193) tmp = Float64(2.0 / Float64(Float64(tan(k) * Float64(t_m * Float64(Float64(t_m / l) * Float64(Float64(t_m * k) / l)))) * Float64(Float64((Float64(k / t_m) ^ 2.0) + 1.0) + 1.0))); else tmp = Float64(2.0 / Float64(2.0 * Float64(tan(k) * Float64(t_m * Float64(Float64(Float64(t_m * sin(k)) * Float64(t_m / l)) / 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 ((l * l) <= 2e+193) tmp = 2.0 / ((tan(k) * (t_m * ((t_m / l) * ((t_m * k) / l)))) * ((((k / t_m) ^ 2.0) + 1.0) + 1.0)); else tmp = 2.0 / (2.0 * (tan(k) * (t_m * (((t_m * sin(k)) * (t_m / l)) / 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[N[(l * l), $MachinePrecision], 2e+193], N[(2.0 / N[(N[(N[Tan[k], $MachinePrecision] * N[(t$95$m * N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(t$95$m * k), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision] + 1.0), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(2.0 * N[(N[Tan[k], $MachinePrecision] * N[(t$95$m * N[(N[(N[(t$95$m * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \cdot \ell \leq 2 \cdot 10^{+193}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \left(t\_m \cdot \left(\frac{t\_m}{\ell} \cdot \frac{t\_m \cdot k}{\ell}\right)\right)\right) \cdot \left(\left({\left(\frac{k}{t\_m}\right)}^{2} + 1\right) + 1\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{2 \cdot \left(\tan k \cdot \left(t\_m \cdot \frac{\left(t\_m \cdot \sin k\right) \cdot \frac{t\_m}{\ell}}{\ell}\right)\right)}\\
\end{array}
\end{array}
if (*.f64 l l) < 2.00000000000000013e193Initial program 60.6%
associate-*l/N/A
div-invN/A
cube-multN/A
associate-*l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6465.4
Applied egg-rr65.4%
un-div-invN/A
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f6474.6
Applied egg-rr74.6%
Taylor expanded in k around 0
/-lowering-/.f64N/A
*-lowering-*.f6474.4
Simplified74.4%
if 2.00000000000000013e193 < (*.f64 l l) Initial program 44.6%
associate-*l/N/A
div-invN/A
cube-multN/A
associate-*l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6449.8
Applied egg-rr49.8%
un-div-invN/A
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f6472.7
Applied egg-rr72.7%
*-commutativeN/A
frac-2negN/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
neg-lowering-neg.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
neg-lowering-neg.f6472.7
Applied egg-rr72.7%
Taylor expanded in k around 0
Simplified84.8%
Final simplification77.7%
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 (sin k)) l)))
(*
t_s
(if (<= k 3.4e-24)
(/ 2.0 (* t_m (/ (* (* t_m t_2) (* 2.0 k)) l)))
(/
2.0
(*
t_m
(* (/ t_m l) (* t_2 (* (tan k) (fma k (/ k (* t_m 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 t_2 = (t_m * sin(k)) / l;
double tmp;
if (k <= 3.4e-24) {
tmp = 2.0 / (t_m * (((t_m * t_2) * (2.0 * k)) / l));
} else {
tmp = 2.0 / (t_m * ((t_m / l) * (t_2 * (tan(k) * fma(k, (k / (t_m * 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) t_2 = Float64(Float64(t_m * sin(k)) / l) tmp = 0.0 if (k <= 3.4e-24) tmp = Float64(2.0 / Float64(t_m * Float64(Float64(Float64(t_m * t_2) * Float64(2.0 * k)) / l))); else tmp = Float64(2.0 / Float64(t_m * Float64(Float64(t_m / l) * Float64(t_2 * Float64(tan(k) * fma(k, Float64(k / Float64(t_m * 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_] := Block[{t$95$2 = N[(N[(t$95$m * N[Sin[k], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]}, N[(t$95$s * If[LessEqual[k, 3.4e-24], N[(2.0 / N[(t$95$m * N[(N[(N[(t$95$m * t$95$2), $MachinePrecision] * N[(2.0 * k), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(t$95$m * N[(N[(t$95$m / l), $MachinePrecision] * N[(t$95$2 * N[(N[Tan[k], $MachinePrecision] * N[(k * N[(k / N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := \frac{t\_m \cdot \sin k}{\ell}\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 3.4 \cdot 10^{-24}:\\
\;\;\;\;\frac{2}{t\_m \cdot \frac{\left(t\_m \cdot t\_2\right) \cdot \left(2 \cdot k\right)}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{t\_m \cdot \left(\frac{t\_m}{\ell} \cdot \left(t\_2 \cdot \left(\tan k \cdot \mathsf{fma}\left(k, \frac{k}{t\_m \cdot t\_m}, 2\right)\right)\right)\right)}\\
\end{array}
\end{array}
\end{array}
if k < 3.39999999999999992e-24Initial program 57.7%
associate-*l*N/A
*-commutativeN/A
associate-*l/N/A
div-invN/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr47.4%
associate-*l*N/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr58.4%
Taylor expanded in k around 0
*-commutativeN/A
*-lowering-*.f6467.8
Simplified67.8%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr77.3%
if 3.39999999999999992e-24 < k Initial program 50.5%
associate-*l*N/A
*-commutativeN/A
associate-*l/N/A
div-invN/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr45.3%
associate-*l*N/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr53.4%
*-commutativeN/A
times-fracN/A
associate-*l*N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
metadata-evalN/A
associate-+l+N/A
associate-*r/N/A
frac-timesN/A
unpow2N/A
+-commutativeN/A
Applied egg-rr74.4%
Final simplification76.4%
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 3.4e-24)
(/ 2.0 (* t_m (/ (* (* t_m (/ (* t_m (sin k)) l)) (* 2.0 k)) l)))
(/
2.0
(*
t_m
(*
(* (tan k) (fma k (/ k (* t_m t_m)) 2.0))
(* (* t_m (/ t_m l)) (/ (sin k) l))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 3.4e-24) {
tmp = 2.0 / (t_m * (((t_m * ((t_m * sin(k)) / l)) * (2.0 * k)) / l));
} else {
tmp = 2.0 / (t_m * ((tan(k) * fma(k, (k / (t_m * t_m)), 2.0)) * ((t_m * (t_m / l)) * (sin(k) / l))));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 3.4e-24) tmp = Float64(2.0 / Float64(t_m * Float64(Float64(Float64(t_m * Float64(Float64(t_m * sin(k)) / l)) * Float64(2.0 * k)) / l))); else tmp = Float64(2.0 / Float64(t_m * Float64(Float64(tan(k) * fma(k, Float64(k / Float64(t_m * t_m)), 2.0)) * Float64(Float64(t_m * Float64(t_m / l)) * Float64(sin(k) / l))))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 3.4e-24], N[(2.0 / N[(t$95$m * N[(N[(N[(t$95$m * N[(N[(t$95$m * N[Sin[k], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] * N[(2.0 * k), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(t$95$m * N[(N[(N[Tan[k], $MachinePrecision] * N[(k * N[(k / N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision] * N[(N[(t$95$m * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 3.4 \cdot 10^{-24}:\\
\;\;\;\;\frac{2}{t\_m \cdot \frac{\left(t\_m \cdot \frac{t\_m \cdot \sin k}{\ell}\right) \cdot \left(2 \cdot k\right)}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{t\_m \cdot \left(\left(\tan k \cdot \mathsf{fma}\left(k, \frac{k}{t\_m \cdot t\_m}, 2\right)\right) \cdot \left(\left(t\_m \cdot \frac{t\_m}{\ell}\right) \cdot \frac{\sin k}{\ell}\right)\right)}\\
\end{array}
\end{array}
if k < 3.39999999999999992e-24Initial program 57.7%
associate-*l*N/A
*-commutativeN/A
associate-*l/N/A
div-invN/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr47.4%
associate-*l*N/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr58.4%
Taylor expanded in k around 0
*-commutativeN/A
*-lowering-*.f6467.8
Simplified67.8%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr77.3%
if 3.39999999999999992e-24 < k Initial program 50.5%
associate-*l*N/A
*-commutativeN/A
associate-*l/N/A
div-invN/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr45.3%
associate-*l*N/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr53.4%
times-fracN/A
associate-/l*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f6471.4
Applied egg-rr71.4%
Final simplification75.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 (* t_m (sin k))))
(*
t_s
(if (<= t_m 7.3e-280)
(/ 2.0 (* 2.0 (* (tan k) (* t_m (* (/ t_2 l) (/ t_m l))))))
(if (<= t_m 3.1e-74)
(/ 2.0 (* (* k (* k k)) (/ t_2 (* (* l l) (cos k)))))
(if (<= t_m 1.46e+75)
(* (/ l (* t_m k)) (/ l (* k (* t_m t_m))))
(/ 2.0 (* 2.0 (* (tan k) (* t_m (/ (* t_2 (/ t_m l)) l)))))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double t_2 = t_m * sin(k);
double tmp;
if (t_m <= 7.3e-280) {
tmp = 2.0 / (2.0 * (tan(k) * (t_m * ((t_2 / l) * (t_m / l)))));
} else if (t_m <= 3.1e-74) {
tmp = 2.0 / ((k * (k * k)) * (t_2 / ((l * l) * cos(k))));
} else if (t_m <= 1.46e+75) {
tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m)));
} else {
tmp = 2.0 / (2.0 * (tan(k) * (t_m * ((t_2 * (t_m / l)) / 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 = t_m * sin(k)
if (t_m <= 7.3d-280) then
tmp = 2.0d0 / (2.0d0 * (tan(k) * (t_m * ((t_2 / l) * (t_m / l)))))
else if (t_m <= 3.1d-74) then
tmp = 2.0d0 / ((k * (k * k)) * (t_2 / ((l * l) * cos(k))))
else if (t_m <= 1.46d+75) then
tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m)))
else
tmp = 2.0d0 / (2.0d0 * (tan(k) * (t_m * ((t_2 * (t_m / l)) / 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 = t_m * Math.sin(k);
double tmp;
if (t_m <= 7.3e-280) {
tmp = 2.0 / (2.0 * (Math.tan(k) * (t_m * ((t_2 / l) * (t_m / l)))));
} else if (t_m <= 3.1e-74) {
tmp = 2.0 / ((k * (k * k)) * (t_2 / ((l * l) * Math.cos(k))));
} else if (t_m <= 1.46e+75) {
tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m)));
} else {
tmp = 2.0 / (2.0 * (Math.tan(k) * (t_m * ((t_2 * (t_m / l)) / 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 = t_m * math.sin(k) tmp = 0 if t_m <= 7.3e-280: tmp = 2.0 / (2.0 * (math.tan(k) * (t_m * ((t_2 / l) * (t_m / l))))) elif t_m <= 3.1e-74: tmp = 2.0 / ((k * (k * k)) * (t_2 / ((l * l) * math.cos(k)))) elif t_m <= 1.46e+75: tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m))) else: tmp = 2.0 / (2.0 * (math.tan(k) * (t_m * ((t_2 * (t_m / l)) / 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 * sin(k)) tmp = 0.0 if (t_m <= 7.3e-280) tmp = Float64(2.0 / Float64(2.0 * Float64(tan(k) * Float64(t_m * Float64(Float64(t_2 / l) * Float64(t_m / l)))))); elseif (t_m <= 3.1e-74) tmp = Float64(2.0 / Float64(Float64(k * Float64(k * k)) * Float64(t_2 / Float64(Float64(l * l) * cos(k))))); elseif (t_m <= 1.46e+75) tmp = Float64(Float64(l / Float64(t_m * k)) * Float64(l / Float64(k * Float64(t_m * t_m)))); else tmp = Float64(2.0 / Float64(2.0 * Float64(tan(k) * Float64(t_m * Float64(Float64(t_2 * Float64(t_m / l)) / 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 = t_m * sin(k); tmp = 0.0; if (t_m <= 7.3e-280) tmp = 2.0 / (2.0 * (tan(k) * (t_m * ((t_2 / l) * (t_m / l))))); elseif (t_m <= 3.1e-74) tmp = 2.0 / ((k * (k * k)) * (t_2 / ((l * l) * cos(k)))); elseif (t_m <= 1.46e+75) tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m))); else tmp = 2.0 / (2.0 * (tan(k) * (t_m * ((t_2 * (t_m / l)) / 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[(t$95$m * N[Sin[k], $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 7.3e-280], N[(2.0 / N[(2.0 * N[(N[Tan[k], $MachinePrecision] * N[(t$95$m * N[(N[(t$95$2 / l), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 3.1e-74], N[(2.0 / N[(N[(k * N[(k * k), $MachinePrecision]), $MachinePrecision] * N[(t$95$2 / N[(N[(l * l), $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 1.46e+75], N[(N[(l / N[(t$95$m * k), $MachinePrecision]), $MachinePrecision] * N[(l / N[(k * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(2.0 * N[(N[Tan[k], $MachinePrecision] * N[(t$95$m * N[(N[(t$95$2 * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]), $MachinePrecision]]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := t\_m \cdot \sin k\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 7.3 \cdot 10^{-280}:\\
\;\;\;\;\frac{2}{2 \cdot \left(\tan k \cdot \left(t\_m \cdot \left(\frac{t\_2}{\ell} \cdot \frac{t\_m}{\ell}\right)\right)\right)}\\
\mathbf{elif}\;t\_m \leq 3.1 \cdot 10^{-74}:\\
\;\;\;\;\frac{2}{\left(k \cdot \left(k \cdot k\right)\right) \cdot \frac{t\_2}{\left(\ell \cdot \ell\right) \cdot \cos k}}\\
\mathbf{elif}\;t\_m \leq 1.46 \cdot 10^{+75}:\\
\;\;\;\;\frac{\ell}{t\_m \cdot k} \cdot \frac{\ell}{k \cdot \left(t\_m \cdot t\_m\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{2 \cdot \left(\tan k \cdot \left(t\_m \cdot \frac{t\_2 \cdot \frac{t\_m}{\ell}}{\ell}\right)\right)}\\
\end{array}
\end{array}
\end{array}
if t < 7.30000000000000023e-280Initial program 53.5%
associate-*l/N/A
div-invN/A
cube-multN/A
associate-*l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6456.6
Applied egg-rr56.6%
un-div-invN/A
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f6468.9
Applied egg-rr68.9%
Taylor expanded in k around 0
Simplified69.8%
if 7.30000000000000023e-280 < t < 3.1000000000000002e-74Initial program 37.7%
Taylor expanded in k around 0
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6435.7
Simplified35.7%
Taylor expanded in t around 0
associate-/l*N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
unpow2N/A
*-lowering-*.f6465.6
Simplified65.6%
if 3.1000000000000002e-74 < t < 1.4600000000000001e75Initial program 80.3%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6468.9
Simplified68.9%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6477.7
Applied egg-rr77.7%
associate-*l/N/A
associate-*r*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6488.9
Applied egg-rr88.9%
if 1.4600000000000001e75 < t Initial program 61.2%
associate-*l/N/A
div-invN/A
cube-multN/A
associate-*l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6469.8
Applied egg-rr69.8%
un-div-invN/A
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f6492.7
Applied egg-rr92.7%
*-commutativeN/A
frac-2negN/A
associate-*r/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
neg-lowering-neg.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
neg-lowering-neg.f6492.7
Applied egg-rr92.7%
Taylor expanded in k around 0
Simplified90.7%
Final simplification75.4%
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 (sin k)))
(t_3 (/ 2.0 (* 2.0 (* (tan k) (* t_m (* (/ t_2 l) (/ t_m l))))))))
(*
t_s
(if (<= t_m 2.5e-279)
t_3
(if (<= t_m 6.2e-72)
(/ 2.0 (* (* k (* k k)) (/ t_2 (* (* l l) (cos k)))))
(if (<= t_m 4.6e+75)
(* (/ l (* t_m k)) (/ l (* k (* t_m t_m))))
t_3))))))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 * sin(k);
double t_3 = 2.0 / (2.0 * (tan(k) * (t_m * ((t_2 / l) * (t_m / l)))));
double tmp;
if (t_m <= 2.5e-279) {
tmp = t_3;
} else if (t_m <= 6.2e-72) {
tmp = 2.0 / ((k * (k * k)) * (t_2 / ((l * l) * cos(k))));
} else if (t_m <= 4.6e+75) {
tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m)));
} else {
tmp = t_3;
}
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 = t_m * sin(k)
t_3 = 2.0d0 / (2.0d0 * (tan(k) * (t_m * ((t_2 / l) * (t_m / l)))))
if (t_m <= 2.5d-279) then
tmp = t_3
else if (t_m <= 6.2d-72) then
tmp = 2.0d0 / ((k * (k * k)) * (t_2 / ((l * l) * cos(k))))
else if (t_m <= 4.6d+75) then
tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m)))
else
tmp = t_3
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 * Math.sin(k);
double t_3 = 2.0 / (2.0 * (Math.tan(k) * (t_m * ((t_2 / l) * (t_m / l)))));
double tmp;
if (t_m <= 2.5e-279) {
tmp = t_3;
} else if (t_m <= 6.2e-72) {
tmp = 2.0 / ((k * (k * k)) * (t_2 / ((l * l) * Math.cos(k))));
} else if (t_m <= 4.6e+75) {
tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m)));
} else {
tmp = t_3;
}
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 * math.sin(k) t_3 = 2.0 / (2.0 * (math.tan(k) * (t_m * ((t_2 / l) * (t_m / l))))) tmp = 0 if t_m <= 2.5e-279: tmp = t_3 elif t_m <= 6.2e-72: tmp = 2.0 / ((k * (k * k)) * (t_2 / ((l * l) * math.cos(k)))) elif t_m <= 4.6e+75: tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m))) else: tmp = t_3 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 * sin(k)) t_3 = Float64(2.0 / Float64(2.0 * Float64(tan(k) * Float64(t_m * Float64(Float64(t_2 / l) * Float64(t_m / l)))))) tmp = 0.0 if (t_m <= 2.5e-279) tmp = t_3; elseif (t_m <= 6.2e-72) tmp = Float64(2.0 / Float64(Float64(k * Float64(k * k)) * Float64(t_2 / Float64(Float64(l * l) * cos(k))))); elseif (t_m <= 4.6e+75) tmp = Float64(Float64(l / Float64(t_m * k)) * Float64(l / Float64(k * Float64(t_m * t_m)))); else tmp = t_3; 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 * sin(k); t_3 = 2.0 / (2.0 * (tan(k) * (t_m * ((t_2 / l) * (t_m / l))))); tmp = 0.0; if (t_m <= 2.5e-279) tmp = t_3; elseif (t_m <= 6.2e-72) tmp = 2.0 / ((k * (k * k)) * (t_2 / ((l * l) * cos(k)))); elseif (t_m <= 4.6e+75) tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m))); else tmp = t_3; 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[(t$95$m * N[Sin[k], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[(2.0 / N[(2.0 * N[(N[Tan[k], $MachinePrecision] * N[(t$95$m * N[(N[(t$95$2 / l), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 2.5e-279], t$95$3, If[LessEqual[t$95$m, 6.2e-72], N[(2.0 / N[(N[(k * N[(k * k), $MachinePrecision]), $MachinePrecision] * N[(t$95$2 / N[(N[(l * l), $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 4.6e+75], N[(N[(l / N[(t$95$m * k), $MachinePrecision]), $MachinePrecision] * N[(l / N[(k * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], t$95$3]]]), $MachinePrecision]]]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := t\_m \cdot \sin k\\
t_3 := \frac{2}{2 \cdot \left(\tan k \cdot \left(t\_m \cdot \left(\frac{t\_2}{\ell} \cdot \frac{t\_m}{\ell}\right)\right)\right)}\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 2.5 \cdot 10^{-279}:\\
\;\;\;\;t\_3\\
\mathbf{elif}\;t\_m \leq 6.2 \cdot 10^{-72}:\\
\;\;\;\;\frac{2}{\left(k \cdot \left(k \cdot k\right)\right) \cdot \frac{t\_2}{\left(\ell \cdot \ell\right) \cdot \cos k}}\\
\mathbf{elif}\;t\_m \leq 4.6 \cdot 10^{+75}:\\
\;\;\;\;\frac{\ell}{t\_m \cdot k} \cdot \frac{\ell}{k \cdot \left(t\_m \cdot t\_m\right)}\\
\mathbf{else}:\\
\;\;\;\;t\_3\\
\end{array}
\end{array}
\end{array}
if t < 2.49999999999999984e-279 or 4.5999999999999997e75 < t Initial program 55.6%
associate-*l/N/A
div-invN/A
cube-multN/A
associate-*l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6460.2
Applied egg-rr60.2%
un-div-invN/A
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
/-lowering-/.f6475.4
Applied egg-rr75.4%
Taylor expanded in k around 0
Simplified75.4%
if 2.49999999999999984e-279 < t < 6.1999999999999996e-72Initial program 37.7%
Taylor expanded in k around 0
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f6435.7
Simplified35.7%
Taylor expanded in t around 0
associate-/l*N/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
sin-lowering-sin.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
unpow2N/A
*-lowering-*.f6465.6
Simplified65.6%
if 6.1999999999999996e-72 < t < 4.5999999999999997e75Initial program 80.3%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6468.9
Simplified68.9%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6477.7
Applied egg-rr77.7%
associate-*l/N/A
associate-*r*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6488.9
Applied egg-rr88.9%
Final simplification75.4%
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.45e+56)
(/ 2.0 (* t_m (/ (* (* t_m (/ (* t_m (sin k)) l)) (* 2.0 k)) l)))
(/ 2.0 (* (* k k) (/ (* k (* t_m k)) (* l l)))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 1.45e+56) {
tmp = 2.0 / (t_m * (((t_m * ((t_m * sin(k)) / l)) * (2.0 * k)) / l));
} else {
tmp = 2.0 / ((k * k) * ((k * (t_m * k)) / (l * 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 (k <= 1.45d+56) then
tmp = 2.0d0 / (t_m * (((t_m * ((t_m * sin(k)) / l)) * (2.0d0 * k)) / l))
else
tmp = 2.0d0 / ((k * k) * ((k * (t_m * k)) / (l * 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 (k <= 1.45e+56) {
tmp = 2.0 / (t_m * (((t_m * ((t_m * Math.sin(k)) / l)) * (2.0 * k)) / l));
} else {
tmp = 2.0 / ((k * k) * ((k * (t_m * k)) / (l * 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 k <= 1.45e+56: tmp = 2.0 / (t_m * (((t_m * ((t_m * math.sin(k)) / l)) * (2.0 * k)) / l)) else: tmp = 2.0 / ((k * k) * ((k * (t_m * k)) / (l * l))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 1.45e+56) tmp = Float64(2.0 / Float64(t_m * Float64(Float64(Float64(t_m * Float64(Float64(t_m * sin(k)) / l)) * Float64(2.0 * k)) / l))); else tmp = Float64(2.0 / Float64(Float64(k * k) * Float64(Float64(k * Float64(t_m * k)) / Float64(l * 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 (k <= 1.45e+56) tmp = 2.0 / (t_m * (((t_m * ((t_m * sin(k)) / l)) * (2.0 * k)) / l)); else tmp = 2.0 / ((k * k) * ((k * (t_m * k)) / (l * 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[k, 1.45e+56], N[(2.0 / N[(t$95$m * N[(N[(N[(t$95$m * N[(N[(t$95$m * N[Sin[k], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] * N[(2.0 * k), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(k * k), $MachinePrecision] * N[(N[(k * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 1.45 \cdot 10^{+56}:\\
\;\;\;\;\frac{2}{t\_m \cdot \frac{\left(t\_m \cdot \frac{t\_m \cdot \sin k}{\ell}\right) \cdot \left(2 \cdot k\right)}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(k \cdot k\right) \cdot \frac{k \cdot \left(t\_m \cdot k\right)}{\ell \cdot \ell}}\\
\end{array}
\end{array}
if k < 1.45000000000000004e56Initial program 57.9%
associate-*l*N/A
*-commutativeN/A
associate-*l/N/A
div-invN/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr48.9%
associate-*l*N/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
Applied egg-rr58.6%
Taylor expanded in k around 0
*-commutativeN/A
*-lowering-*.f6466.4
Simplified66.4%
*-commutativeN/A
associate-/r*N/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr75.4%
if 1.45000000000000004e56 < k Initial program 46.4%
Taylor expanded in k around 0
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
Simplified52.8%
Taylor expanded in t around 0
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6462.3
Simplified62.3%
Final simplification72.7%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 1.7e-71)
(/ 2.0 (* (* k k) (/ (* k (* t_m k)) (* l l))))
(if (<= t_m 5e+132)
(* (/ l (* t_m k)) (/ l (* k (* t_m t_m))))
(* l (/ l (* t_m (* (* t_m k) (* 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 <= 1.7e-71) {
tmp = 2.0 / ((k * k) * ((k * (t_m * k)) / (l * l)));
} else if (t_m <= 5e+132) {
tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m)));
} else {
tmp = l * (l / (t_m * ((t_m * k) * (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 <= 1.7d-71) then
tmp = 2.0d0 / ((k * k) * ((k * (t_m * k)) / (l * l)))
else if (t_m <= 5d+132) then
tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m)))
else
tmp = l * (l / (t_m * ((t_m * k) * (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 <= 1.7e-71) {
tmp = 2.0 / ((k * k) * ((k * (t_m * k)) / (l * l)));
} else if (t_m <= 5e+132) {
tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m)));
} else {
tmp = l * (l / (t_m * ((t_m * k) * (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 <= 1.7e-71: tmp = 2.0 / ((k * k) * ((k * (t_m * k)) / (l * l))) elif t_m <= 5e+132: tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m))) else: tmp = l * (l / (t_m * ((t_m * k) * (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 <= 1.7e-71) tmp = Float64(2.0 / Float64(Float64(k * k) * Float64(Float64(k * Float64(t_m * k)) / Float64(l * l)))); elseif (t_m <= 5e+132) tmp = Float64(Float64(l / Float64(t_m * k)) * Float64(l / Float64(k * Float64(t_m * t_m)))); else tmp = Float64(l * Float64(l / Float64(t_m * Float64(Float64(t_m * k) * 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 <= 1.7e-71) tmp = 2.0 / ((k * k) * ((k * (t_m * k)) / (l * l))); elseif (t_m <= 5e+132) tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m))); else tmp = l * (l / (t_m * ((t_m * k) * (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, 1.7e-71], N[(2.0 / N[(N[(k * k), $MachinePrecision] * N[(N[(k * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 5e+132], N[(N[(l / N[(t$95$m * k), $MachinePrecision]), $MachinePrecision] * N[(l / N[(k * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(l * N[(l / N[(t$95$m * N[(N[(t$95$m * k), $MachinePrecision] * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 1.7 \cdot 10^{-71}:\\
\;\;\;\;\frac{2}{\left(k \cdot k\right) \cdot \frac{k \cdot \left(t\_m \cdot k\right)}{\ell \cdot \ell}}\\
\mathbf{elif}\;t\_m \leq 5 \cdot 10^{+132}:\\
\;\;\;\;\frac{\ell}{t\_m \cdot k} \cdot \frac{\ell}{k \cdot \left(t\_m \cdot t\_m\right)}\\
\mathbf{else}:\\
\;\;\;\;\ell \cdot \frac{\ell}{t\_m \cdot \left(\left(t\_m \cdot k\right) \cdot \left(t\_m \cdot k\right)\right)}\\
\end{array}
\end{array}
if t < 1.70000000000000002e-71Initial program 49.2%
Taylor expanded in k around 0
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
/-lowering-/.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
Simplified55.8%
Taylor expanded in t around 0
/-lowering-/.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6456.8
Simplified56.8%
if 1.70000000000000002e-71 < t < 5.0000000000000001e132Initial program 75.3%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6466.2
Simplified66.2%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6477.8
Applied egg-rr77.8%
associate-*l/N/A
associate-*r*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6486.6
Applied egg-rr86.6%
if 5.0000000000000001e132 < t Initial program 62.3%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6456.3
Simplified56.3%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6470.7
Applied egg-rr70.7%
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f6477.9
Applied egg-rr77.9%
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6488.1
Applied egg-rr88.1%
Final simplification66.4%
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-69)
(/ (/ (* l l) t_m) (* t_m (* t_m (* k k))))
(if (<= t_m 8.5e+133)
(* (/ l (* t_m k)) (/ l (* k (* t_m t_m))))
(* l (/ l (* t_m (* (* t_m k) (* 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 <= 5e-69) {
tmp = ((l * l) / t_m) / (t_m * (t_m * (k * k)));
} else if (t_m <= 8.5e+133) {
tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m)));
} else {
tmp = l * (l / (t_m * ((t_m * k) * (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 <= 5d-69) then
tmp = ((l * l) / t_m) / (t_m * (t_m * (k * k)))
else if (t_m <= 8.5d+133) then
tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m)))
else
tmp = l * (l / (t_m * ((t_m * k) * (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 <= 5e-69) {
tmp = ((l * l) / t_m) / (t_m * (t_m * (k * k)));
} else if (t_m <= 8.5e+133) {
tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m)));
} else {
tmp = l * (l / (t_m * ((t_m * k) * (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 <= 5e-69: tmp = ((l * l) / t_m) / (t_m * (t_m * (k * k))) elif t_m <= 8.5e+133: tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m))) else: tmp = l * (l / (t_m * ((t_m * k) * (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 <= 5e-69) tmp = Float64(Float64(Float64(l * l) / t_m) / Float64(t_m * Float64(t_m * Float64(k * k)))); elseif (t_m <= 8.5e+133) tmp = Float64(Float64(l / Float64(t_m * k)) * Float64(l / Float64(k * Float64(t_m * t_m)))); else tmp = Float64(l * Float64(l / Float64(t_m * Float64(Float64(t_m * k) * 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 <= 5e-69) tmp = ((l * l) / t_m) / (t_m * (t_m * (k * k))); elseif (t_m <= 8.5e+133) tmp = (l / (t_m * k)) * (l / (k * (t_m * t_m))); else tmp = l * (l / (t_m * ((t_m * k) * (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, 5e-69], N[(N[(N[(l * l), $MachinePrecision] / t$95$m), $MachinePrecision] / N[(t$95$m * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 8.5e+133], N[(N[(l / N[(t$95$m * k), $MachinePrecision]), $MachinePrecision] * N[(l / N[(k * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(l * N[(l / N[(t$95$m * N[(N[(t$95$m * k), $MachinePrecision] * N[(t$95$m * k), $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^{-69}:\\
\;\;\;\;\frac{\frac{\ell \cdot \ell}{t\_m}}{t\_m \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)}\\
\mathbf{elif}\;t\_m \leq 8.5 \cdot 10^{+133}:\\
\;\;\;\;\frac{\ell}{t\_m \cdot k} \cdot \frac{\ell}{k \cdot \left(t\_m \cdot t\_m\right)}\\
\mathbf{else}:\\
\;\;\;\;\ell \cdot \frac{\ell}{t\_m \cdot \left(\left(t\_m \cdot k\right) \cdot \left(t\_m \cdot k\right)\right)}\\
\end{array}
\end{array}
if t < 5.00000000000000033e-69Initial program 49.2%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6449.8
Simplified49.8%
associate-*l*N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6459.5
Applied egg-rr59.5%
if 5.00000000000000033e-69 < t < 8.50000000000000044e133Initial program 75.3%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6466.2
Simplified66.2%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6477.8
Applied egg-rr77.8%
associate-*l/N/A
associate-*r*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f6486.6
Applied egg-rr86.6%
if 8.50000000000000044e133 < t Initial program 62.3%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6456.3
Simplified56.3%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6470.7
Applied egg-rr70.7%
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f6477.9
Applied egg-rr77.9%
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6488.1
Applied egg-rr88.1%
Final simplification68.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 (<= k 2.26e-156)
(* l (/ l (* t_m (* (* t_m k) (* t_m k)))))
(* (/ l t_m) (/ l (* t_m (* t_m (* k k))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 2.26e-156) {
tmp = l * (l / (t_m * ((t_m * k) * (t_m * k))));
} else {
tmp = (l / t_m) * (l / (t_m * (t_m * (k * 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 (k <= 2.26d-156) then
tmp = l * (l / (t_m * ((t_m * k) * (t_m * k))))
else
tmp = (l / t_m) * (l / (t_m * (t_m * (k * 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 (k <= 2.26e-156) {
tmp = l * (l / (t_m * ((t_m * k) * (t_m * k))));
} else {
tmp = (l / t_m) * (l / (t_m * (t_m * (k * 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 k <= 2.26e-156: tmp = l * (l / (t_m * ((t_m * k) * (t_m * k)))) else: tmp = (l / t_m) * (l / (t_m * (t_m * (k * k)))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 2.26e-156) tmp = Float64(l * Float64(l / Float64(t_m * Float64(Float64(t_m * k) * Float64(t_m * k))))); else tmp = Float64(Float64(l / t_m) * Float64(l / Float64(t_m * Float64(t_m * Float64(k * 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 (k <= 2.26e-156) tmp = l * (l / (t_m * ((t_m * k) * (t_m * k)))); else tmp = (l / t_m) * (l / (t_m * (t_m * (k * 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[k, 2.26e-156], N[(l * N[(l / N[(t$95$m * N[(N[(t$95$m * k), $MachinePrecision] * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(l / t$95$m), $MachinePrecision] * N[(l / N[(t$95$m * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 2.26 \cdot 10^{-156}:\\
\;\;\;\;\ell \cdot \frac{\ell}{t\_m \cdot \left(\left(t\_m \cdot k\right) \cdot \left(t\_m \cdot k\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\ell}{t\_m} \cdot \frac{\ell}{t\_m \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)}\\
\end{array}
\end{array}
if k < 2.26e-156Initial program 59.2%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6454.0
Simplified54.0%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6468.4
Applied egg-rr68.4%
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f6471.4
Applied egg-rr71.4%
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6474.4
Applied egg-rr74.4%
if 2.26e-156 < k Initial program 49.5%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6452.6
Simplified52.6%
associate-*l*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6460.7
Applied egg-rr60.7%
Final simplification69.2%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 9.5e+170)
(* l (/ l (* t_m (* (* t_m k) (* t_m k)))))
(/ (* l l) (* t_m (* t_m (* t_m (* k k))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 9.5e+170) {
tmp = l * (l / (t_m * ((t_m * k) * (t_m * k))));
} else {
tmp = (l * l) / (t_m * (t_m * (t_m * (k * 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 (k <= 9.5d+170) then
tmp = l * (l / (t_m * ((t_m * k) * (t_m * k))))
else
tmp = (l * l) / (t_m * (t_m * (t_m * (k * 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 (k <= 9.5e+170) {
tmp = l * (l / (t_m * ((t_m * k) * (t_m * k))));
} else {
tmp = (l * l) / (t_m * (t_m * (t_m * (k * 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 k <= 9.5e+170: tmp = l * (l / (t_m * ((t_m * k) * (t_m * k)))) else: tmp = (l * l) / (t_m * (t_m * (t_m * (k * k)))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 9.5e+170) tmp = Float64(l * Float64(l / Float64(t_m * Float64(Float64(t_m * k) * Float64(t_m * k))))); else tmp = Float64(Float64(l * l) / Float64(t_m * Float64(t_m * Float64(t_m * Float64(k * 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 (k <= 9.5e+170) tmp = l * (l / (t_m * ((t_m * k) * (t_m * k)))); else tmp = (l * l) / (t_m * (t_m * (t_m * (k * 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[k, 9.5e+170], N[(l * N[(l / N[(t$95$m * N[(N[(t$95$m * k), $MachinePrecision] * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(l * l), $MachinePrecision] / N[(t$95$m * N[(t$95$m * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 9.5 \cdot 10^{+170}:\\
\;\;\;\;\ell \cdot \frac{\ell}{t\_m \cdot \left(\left(t\_m \cdot k\right) \cdot \left(t\_m \cdot k\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\ell \cdot \ell}{t\_m \cdot \left(t\_m \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)\right)}\\
\end{array}
\end{array}
if k < 9.5000000000000005e170Initial program 55.6%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6453.3
Simplified53.3%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6464.1
Applied egg-rr64.1%
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f6466.2
Applied egg-rr66.2%
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6468.4
Applied egg-rr68.4%
if 9.5000000000000005e170 < k Initial program 54.8%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6454.8
Simplified54.8%
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6465.4
Applied egg-rr65.4%
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 (* l (/ l (* t_m (* (* t_m k) (* 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 * (l / (t_m * ((t_m * k) * (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 * (l / (t_m * ((t_m * k) * (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 * (l / (t_m * ((t_m * k) * (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 * (l / (t_m * ((t_m * k) * (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(l * Float64(l / Float64(t_m * Float64(Float64(t_m * k) * 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 * (l / (t_m * ((t_m * k) * (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[(l * N[(l / N[(t$95$m * N[(N[(t$95$m * k), $MachinePrecision] * N[(t$95$m * k), $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 \left(\ell \cdot \frac{\ell}{t\_m \cdot \left(\left(t\_m \cdot k\right) \cdot \left(t\_m \cdot k\right)\right)}\right)
\end{array}
Initial program 55.5%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6453.5
Simplified53.5%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6463.2
Applied egg-rr63.2%
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f6465.1
Applied egg-rr65.1%
associate-*r*N/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6467.0
Applied egg-rr67.0%
Final simplification67.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 (* l (/ l (* k (* t_m (* 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 * (l / (k * (t_m * (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 * (l / (k * (t_m * (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 * (l / (k * (t_m * (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 * (l / (k * (t_m * (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(l * Float64(l / Float64(k * Float64(t_m * Float64(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 * (l / (k * (t_m * (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[(l * N[(l / N[(k * N[(t$95$m * N[(t$95$m * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \left(\ell \cdot \frac{\ell}{k \cdot \left(t\_m \cdot \left(t\_m \cdot \left(t\_m \cdot k\right)\right)\right)}\right)
\end{array}
Initial program 55.5%
Taylor expanded in k around 0
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
cube-multN/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f6453.5
Simplified53.5%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6463.2
Applied egg-rr63.2%
*-commutativeN/A
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f6465.1
Applied egg-rr65.1%
Final simplification65.1%
herbie shell --seed 2024204
(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))))