
(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}
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(let* ((t_1 (* (tan k_m) (/ (sin k_m) l))))
(if (<= k_m 1.12e-108)
(/
2.0
(*
(* t (* (/ t l) (* (tan k_m) (* k_m (/ t l)))))
(+ 1.0 (+ 1.0 (pow (/ k_m t) 2.0)))))
(/ 2.0 (/ (fma (* k_m t) (* k_m t_1) (* (* 2.0 t) (* t_1 (* t t)))) l)))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double t_1 = tan(k_m) * (sin(k_m) / l);
double tmp;
if (k_m <= 1.12e-108) {
tmp = 2.0 / ((t * ((t / l) * (tan(k_m) * (k_m * (t / l))))) * (1.0 + (1.0 + pow((k_m / t), 2.0))));
} else {
tmp = 2.0 / (fma((k_m * t), (k_m * t_1), ((2.0 * t) * (t_1 * (t * t)))) / l);
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) t_1 = Float64(tan(k_m) * Float64(sin(k_m) / l)) tmp = 0.0 if (k_m <= 1.12e-108) tmp = Float64(2.0 / Float64(Float64(t * Float64(Float64(t / l) * Float64(tan(k_m) * Float64(k_m * Float64(t / l))))) * Float64(1.0 + Float64(1.0 + (Float64(k_m / t) ^ 2.0))))); else tmp = Float64(2.0 / Float64(fma(Float64(k_m * t), Float64(k_m * t_1), Float64(Float64(2.0 * t) * Float64(t_1 * Float64(t * t)))) / l)); end return tmp end
k_m = N[Abs[k], $MachinePrecision]
code[t_, l_, k$95$m_] := Block[{t$95$1 = N[(N[Tan[k$95$m], $MachinePrecision] * N[(N[Sin[k$95$m], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[k$95$m, 1.12e-108], N[(2.0 / N[(N[(t * N[(N[(t / l), $MachinePrecision] * N[(N[Tan[k$95$m], $MachinePrecision] * N[(k$95$m * N[(t / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(1.0 + N[(1.0 + N[Power[N[(k$95$m / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(k$95$m * t), $MachinePrecision] * N[(k$95$m * t$95$1), $MachinePrecision] + N[(N[(2.0 * t), $MachinePrecision] * N[(t$95$1 * N[(t * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
t_1 := \tan k\_m \cdot \frac{\sin k\_m}{\ell}\\
\mathbf{if}\;k\_m \leq 1.12 \cdot 10^{-108}:\\
\;\;\;\;\frac{2}{\left(t \cdot \left(\frac{t}{\ell} \cdot \left(\tan k\_m \cdot \left(k\_m \cdot \frac{t}{\ell}\right)\right)\right)\right) \cdot \left(1 + \left(1 + {\left(\frac{k\_m}{t}\right)}^{2}\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{\mathsf{fma}\left(k\_m \cdot t, k\_m \cdot t\_1, \left(2 \cdot t\right) \cdot \left(t\_1 \cdot \left(t \cdot t\right)\right)\right)}{\ell}}\\
\end{array}
\end{array}
if k < 1.11999999999999992e-108Initial program 61.1%
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.f6417.6
Applied egg-rr17.6%
div-expN/A
*-commutativeN/A
pow-to-expN/A
cube-unmultN/A
pow-to-expN/A
pow2N/A
associate-*l/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*l*N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
Applied egg-rr86.4%
Taylor expanded in k around 0
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f6480.1
Simplified80.1%
if 1.11999999999999992e-108 < k Initial program 61.4%
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
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
tan-lowering-tan.f64N/A
+-commutativeN/A
associate-+r+N/A
metadata-evalN/A
+-lowering-+.f64N/A
unpow2N/A
frac-timesN/A
Applied egg-rr53.4%
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*r/N/A
metadata-evalN/A
associate-+r+N/A
times-fracN/A
unpow2N/A
+-commutativeN/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr67.4%
Taylor expanded in t around 0
*-lowering-*.f64N/A
+-commutativeN/A
associate-/l*N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
Simplified87.5%
distribute-lft-inN/A
associate-*l*N/A
associate-*r*N/A
*-commutativeN/A
*-commutativeN/A
accelerator-lowering-fma.f64N/A
Applied egg-rr95.0%
Final simplification86.0%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(let* ((t_1 (* (tan k_m) (/ (sin k_m) l))))
(if (<= k_m 7.4e-110)
(/
2.0
(*
(* t (* (/ t l) (* (tan k_m) (* k_m (/ t l)))))
(+ 1.0 (+ 1.0 (pow (/ k_m t) 2.0)))))
(/ 2.0 (* (/ t l) (fma k_m (* k_m t_1) (* 2.0 (* t_1 (* t t)))))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double t_1 = tan(k_m) * (sin(k_m) / l);
double tmp;
if (k_m <= 7.4e-110) {
tmp = 2.0 / ((t * ((t / l) * (tan(k_m) * (k_m * (t / l))))) * (1.0 + (1.0 + pow((k_m / t), 2.0))));
} else {
tmp = 2.0 / ((t / l) * fma(k_m, (k_m * t_1), (2.0 * (t_1 * (t * t)))));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) t_1 = Float64(tan(k_m) * Float64(sin(k_m) / l)) tmp = 0.0 if (k_m <= 7.4e-110) tmp = Float64(2.0 / Float64(Float64(t * Float64(Float64(t / l) * Float64(tan(k_m) * Float64(k_m * Float64(t / l))))) * Float64(1.0 + Float64(1.0 + (Float64(k_m / t) ^ 2.0))))); else tmp = Float64(2.0 / Float64(Float64(t / l) * fma(k_m, Float64(k_m * t_1), Float64(2.0 * Float64(t_1 * Float64(t * t)))))); end return tmp end
k_m = N[Abs[k], $MachinePrecision]
code[t_, l_, k$95$m_] := Block[{t$95$1 = N[(N[Tan[k$95$m], $MachinePrecision] * N[(N[Sin[k$95$m], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[k$95$m, 7.4e-110], N[(2.0 / N[(N[(t * N[(N[(t / l), $MachinePrecision] * N[(N[Tan[k$95$m], $MachinePrecision] * N[(k$95$m * N[(t / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(1.0 + N[(1.0 + N[Power[N[(k$95$m / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(t / l), $MachinePrecision] * N[(k$95$m * N[(k$95$m * t$95$1), $MachinePrecision] + N[(2.0 * N[(t$95$1 * N[(t * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
t_1 := \tan k\_m \cdot \frac{\sin k\_m}{\ell}\\
\mathbf{if}\;k\_m \leq 7.4 \cdot 10^{-110}:\\
\;\;\;\;\frac{2}{\left(t \cdot \left(\frac{t}{\ell} \cdot \left(\tan k\_m \cdot \left(k\_m \cdot \frac{t}{\ell}\right)\right)\right)\right) \cdot \left(1 + \left(1 + {\left(\frac{k\_m}{t}\right)}^{2}\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{t}{\ell} \cdot \mathsf{fma}\left(k\_m, k\_m \cdot t\_1, 2 \cdot \left(t\_1 \cdot \left(t \cdot t\right)\right)\right)}\\
\end{array}
\end{array}
if k < 7.40000000000000032e-110Initial program 61.1%
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.f6417.6
Applied egg-rr17.6%
div-expN/A
*-commutativeN/A
pow-to-expN/A
cube-unmultN/A
pow-to-expN/A
pow2N/A
associate-*l/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*l*N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
Applied egg-rr86.4%
Taylor expanded in k around 0
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f6480.1
Simplified80.1%
if 7.40000000000000032e-110 < k Initial program 61.4%
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
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
tan-lowering-tan.f64N/A
+-commutativeN/A
associate-+r+N/A
metadata-evalN/A
+-lowering-+.f64N/A
unpow2N/A
frac-timesN/A
Applied egg-rr53.4%
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*r/N/A
metadata-evalN/A
associate-+r+N/A
times-fracN/A
unpow2N/A
+-commutativeN/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr67.4%
Taylor expanded in t around 0
*-lowering-*.f64N/A
+-commutativeN/A
associate-/l*N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
Simplified87.5%
*-commutativeN/A
associate-/l*N/A
*-lowering-*.f64N/A
Applied egg-rr90.4%
Final simplification84.2%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(let* ((t_1 (* (tan k_m) (/ (sin k_m) l))))
(if (<= k_m 7.8e-106)
(/
2.0
(*
(* t (* (/ t l) (* (tan k_m) (* k_m (/ t l)))))
(+ 1.0 (+ 1.0 (pow (/ k_m t) 2.0)))))
(/ (* 2.0 l) (* t (fma k_m (* k_m t_1) (* 2.0 (* t_1 (* t t)))))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double t_1 = tan(k_m) * (sin(k_m) / l);
double tmp;
if (k_m <= 7.8e-106) {
tmp = 2.0 / ((t * ((t / l) * (tan(k_m) * (k_m * (t / l))))) * (1.0 + (1.0 + pow((k_m / t), 2.0))));
} else {
tmp = (2.0 * l) / (t * fma(k_m, (k_m * t_1), (2.0 * (t_1 * (t * t)))));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) t_1 = Float64(tan(k_m) * Float64(sin(k_m) / l)) tmp = 0.0 if (k_m <= 7.8e-106) tmp = Float64(2.0 / Float64(Float64(t * Float64(Float64(t / l) * Float64(tan(k_m) * Float64(k_m * Float64(t / l))))) * Float64(1.0 + Float64(1.0 + (Float64(k_m / t) ^ 2.0))))); else tmp = Float64(Float64(2.0 * l) / Float64(t * fma(k_m, Float64(k_m * t_1), Float64(2.0 * Float64(t_1 * Float64(t * t)))))); end return tmp end
k_m = N[Abs[k], $MachinePrecision]
code[t_, l_, k$95$m_] := Block[{t$95$1 = N[(N[Tan[k$95$m], $MachinePrecision] * N[(N[Sin[k$95$m], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[k$95$m, 7.8e-106], N[(2.0 / N[(N[(t * N[(N[(t / l), $MachinePrecision] * N[(N[Tan[k$95$m], $MachinePrecision] * N[(k$95$m * N[(t / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(1.0 + N[(1.0 + N[Power[N[(k$95$m / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(2.0 * l), $MachinePrecision] / N[(t * N[(k$95$m * N[(k$95$m * t$95$1), $MachinePrecision] + N[(2.0 * N[(t$95$1 * N[(t * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
t_1 := \tan k\_m \cdot \frac{\sin k\_m}{\ell}\\
\mathbf{if}\;k\_m \leq 7.8 \cdot 10^{-106}:\\
\;\;\;\;\frac{2}{\left(t \cdot \left(\frac{t}{\ell} \cdot \left(\tan k\_m \cdot \left(k\_m \cdot \frac{t}{\ell}\right)\right)\right)\right) \cdot \left(1 + \left(1 + {\left(\frac{k\_m}{t}\right)}^{2}\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot \ell}{t \cdot \mathsf{fma}\left(k\_m, k\_m \cdot t\_1, 2 \cdot \left(t\_1 \cdot \left(t \cdot t\right)\right)\right)}\\
\end{array}
\end{array}
if k < 7.80000000000000019e-106Initial program 61.1%
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.f6417.6
Applied egg-rr17.6%
div-expN/A
*-commutativeN/A
pow-to-expN/A
cube-unmultN/A
pow-to-expN/A
pow2N/A
associate-*l/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*l*N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
Applied egg-rr86.4%
Taylor expanded in k around 0
associate-/l*N/A
*-lowering-*.f64N/A
/-lowering-/.f6480.1
Simplified80.1%
if 7.80000000000000019e-106 < k Initial program 61.4%
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
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
tan-lowering-tan.f64N/A
+-commutativeN/A
associate-+r+N/A
metadata-evalN/A
+-lowering-+.f64N/A
unpow2N/A
frac-timesN/A
Applied egg-rr53.4%
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*r/N/A
metadata-evalN/A
associate-+r+N/A
times-fracN/A
unpow2N/A
+-commutativeN/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr67.4%
Taylor expanded in t around 0
*-lowering-*.f64N/A
+-commutativeN/A
associate-/l*N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
Simplified87.5%
associate-/r/N/A
associate-*l/N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*l*N/A
accelerator-lowering-fma.f64N/A
Applied egg-rr91.5%
Final simplification84.6%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(if (<= t 2.8e-76)
(/ 2.0 (/ (/ (* (* k_m k_m) (* t (pow (sin k_m) 2.0))) (* l (cos k_m))) l))
(/
(* 2.0 l)
(*
t
(*
(/ (* t (* t (sin k_m))) l)
(* (tan k_m) (fma k_m (/ k_m (* t t)) 2.0)))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (t <= 2.8e-76) {
tmp = 2.0 / ((((k_m * k_m) * (t * pow(sin(k_m), 2.0))) / (l * cos(k_m))) / l);
} else {
tmp = (2.0 * l) / (t * (((t * (t * sin(k_m))) / l) * (tan(k_m) * fma(k_m, (k_m / (t * t)), 2.0))));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (t <= 2.8e-76) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(k_m * k_m) * Float64(t * (sin(k_m) ^ 2.0))) / Float64(l * cos(k_m))) / l)); else tmp = Float64(Float64(2.0 * l) / Float64(t * Float64(Float64(Float64(t * Float64(t * sin(k_m))) / l) * Float64(tan(k_m) * fma(k_m, Float64(k_m / Float64(t * t)), 2.0))))); end return tmp end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[t, 2.8e-76], N[(2.0 / N[(N[(N[(N[(k$95$m * k$95$m), $MachinePrecision] * N[(t * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(l * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(N[(2.0 * l), $MachinePrecision] / N[(t * N[(N[(N[(t * N[(t * N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision] * N[(N[Tan[k$95$m], $MachinePrecision] * N[(k$95$m * N[(k$95$m / N[(t * t), $MachinePrecision]), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;t \leq 2.8 \cdot 10^{-76}:\\
\;\;\;\;\frac{2}{\frac{\frac{\left(k\_m \cdot k\_m\right) \cdot \left(t \cdot {\sin k\_m}^{2}\right)}{\ell \cdot \cos k\_m}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot \ell}{t \cdot \left(\frac{t \cdot \left(t \cdot \sin k\_m\right)}{\ell} \cdot \left(\tan k\_m \cdot \mathsf{fma}\left(k\_m, \frac{k\_m}{t \cdot t}, 2\right)\right)\right)}\\
\end{array}
\end{array}
if t < 2.8000000000000001e-76Initial program 55.1%
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
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
tan-lowering-tan.f64N/A
+-commutativeN/A
associate-+r+N/A
metadata-evalN/A
+-lowering-+.f64N/A
unpow2N/A
frac-timesN/A
Applied egg-rr43.8%
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*r/N/A
metadata-evalN/A
associate-+r+N/A
times-fracN/A
unpow2N/A
+-commutativeN/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr58.7%
Taylor expanded in t around 0
/-lowering-/.f64N/A
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f6471.0
Simplified71.0%
if 2.8000000000000001e-76 < t Initial program 73.4%
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.f6438.2
Applied egg-rr38.2%
div-expN/A
*-commutativeN/A
pow-to-expN/A
cube-unmultN/A
pow-to-expN/A
pow2N/A
associate-*l/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*l*N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
Applied egg-rr96.3%
Applied egg-rr94.2%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(if (<= t 8.5e-115)
(/ 2.0 (/ (* (pow (sin k_m) 2.0) (* t (* k_m k_m))) (* l (* l (cos k_m)))))
(/
(* 2.0 l)
(*
t
(*
(/ (* t (* t (sin k_m))) l)
(* (tan k_m) (fma k_m (/ k_m (* t t)) 2.0)))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (t <= 8.5e-115) {
tmp = 2.0 / ((pow(sin(k_m), 2.0) * (t * (k_m * k_m))) / (l * (l * cos(k_m))));
} else {
tmp = (2.0 * l) / (t * (((t * (t * sin(k_m))) / l) * (tan(k_m) * fma(k_m, (k_m / (t * t)), 2.0))));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (t <= 8.5e-115) tmp = Float64(2.0 / Float64(Float64((sin(k_m) ^ 2.0) * Float64(t * Float64(k_m * k_m))) / Float64(l * Float64(l * cos(k_m))))); else tmp = Float64(Float64(2.0 * l) / Float64(t * Float64(Float64(Float64(t * Float64(t * sin(k_m))) / l) * Float64(tan(k_m) * fma(k_m, Float64(k_m / Float64(t * t)), 2.0))))); end return tmp end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[t, 8.5e-115], N[(2.0 / N[(N[(N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision] * N[(t * N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(l * N[(l * N[Cos[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(2.0 * l), $MachinePrecision] / N[(t * N[(N[(N[(t * N[(t * N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision] * N[(N[Tan[k$95$m], $MachinePrecision] * N[(k$95$m * N[(k$95$m / N[(t * t), $MachinePrecision]), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;t \leq 8.5 \cdot 10^{-115}:\\
\;\;\;\;\frac{2}{\frac{{\sin k\_m}^{2} \cdot \left(t \cdot \left(k\_m \cdot k\_m\right)\right)}{\ell \cdot \left(\ell \cdot \cos k\_m\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot \ell}{t \cdot \left(\frac{t \cdot \left(t \cdot \sin k\_m\right)}{\ell} \cdot \left(\tan k\_m \cdot \mathsf{fma}\left(k\_m, \frac{k\_m}{t \cdot t}, 2\right)\right)\right)}\\
\end{array}
\end{array}
if t < 8.49999999999999953e-115Initial program 53.6%
Taylor expanded in t around 0
/-lowering-/.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-*.f64N/A
unpow2N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f6468.3
Simplified68.3%
if 8.49999999999999953e-115 < t Initial program 73.6%
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.f6438.5
Applied egg-rr38.5%
div-expN/A
*-commutativeN/A
pow-to-expN/A
cube-unmultN/A
pow-to-expN/A
pow2N/A
associate-*l/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*l*N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
Applied egg-rr95.0%
Applied egg-rr91.9%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(if (<= t 8e-115)
(/ (* (cos k_m) (* 2.0 (* l l))) (* (pow (sin k_m) 2.0) (* t (* k_m k_m))))
(/
(* 2.0 l)
(*
t
(*
(/ (* t (* t (sin k_m))) l)
(* (tan k_m) (fma k_m (/ k_m (* t t)) 2.0)))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (t <= 8e-115) {
tmp = (cos(k_m) * (2.0 * (l * l))) / (pow(sin(k_m), 2.0) * (t * (k_m * k_m)));
} else {
tmp = (2.0 * l) / (t * (((t * (t * sin(k_m))) / l) * (tan(k_m) * fma(k_m, (k_m / (t * t)), 2.0))));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (t <= 8e-115) tmp = Float64(Float64(cos(k_m) * Float64(2.0 * Float64(l * l))) / Float64((sin(k_m) ^ 2.0) * Float64(t * Float64(k_m * k_m)))); else tmp = Float64(Float64(2.0 * l) / Float64(t * Float64(Float64(Float64(t * Float64(t * sin(k_m))) / l) * Float64(tan(k_m) * fma(k_m, Float64(k_m / Float64(t * t)), 2.0))))); end return tmp end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[t, 8e-115], N[(N[(N[Cos[k$95$m], $MachinePrecision] * N[(2.0 * N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision] * N[(t * N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(2.0 * l), $MachinePrecision] / N[(t * N[(N[(N[(t * N[(t * N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision] * N[(N[Tan[k$95$m], $MachinePrecision] * N[(k$95$m * N[(k$95$m / N[(t * t), $MachinePrecision]), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;t \leq 8 \cdot 10^{-115}:\\
\;\;\;\;\frac{\cos k\_m \cdot \left(2 \cdot \left(\ell \cdot \ell\right)\right)}{{\sin k\_m}^{2} \cdot \left(t \cdot \left(k\_m \cdot k\_m\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot \ell}{t \cdot \left(\frac{t \cdot \left(t \cdot \sin k\_m\right)}{\ell} \cdot \left(\tan k\_m \cdot \mathsf{fma}\left(k\_m, \frac{k\_m}{t \cdot t}, 2\right)\right)\right)}\\
\end{array}
\end{array}
if t < 8.0000000000000004e-115Initial program 53.6%
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
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-*.f6468.3
Simplified68.3%
if 8.0000000000000004e-115 < t Initial program 73.6%
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.f6438.5
Applied egg-rr38.5%
div-expN/A
*-commutativeN/A
pow-to-expN/A
cube-unmultN/A
pow-to-expN/A
pow2N/A
associate-*l/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*l*N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
Applied egg-rr95.0%
Applied egg-rr91.9%
Final simplification77.2%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(if (<= t 5.5e-116)
(* (* 2.0 (* l l)) (/ (cos k_m) (* (* k_m k_m) (* t (pow (sin k_m) 2.0)))))
(/
(* 2.0 l)
(*
t
(*
(/ (* t (* t (sin k_m))) l)
(* (tan k_m) (fma k_m (/ k_m (* t t)) 2.0)))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (t <= 5.5e-116) {
tmp = (2.0 * (l * l)) * (cos(k_m) / ((k_m * k_m) * (t * pow(sin(k_m), 2.0))));
} else {
tmp = (2.0 * l) / (t * (((t * (t * sin(k_m))) / l) * (tan(k_m) * fma(k_m, (k_m / (t * t)), 2.0))));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (t <= 5.5e-116) tmp = Float64(Float64(2.0 * Float64(l * l)) * Float64(cos(k_m) / Float64(Float64(k_m * k_m) * Float64(t * (sin(k_m) ^ 2.0))))); else tmp = Float64(Float64(2.0 * l) / Float64(t * Float64(Float64(Float64(t * Float64(t * sin(k_m))) / l) * Float64(tan(k_m) * fma(k_m, Float64(k_m / Float64(t * t)), 2.0))))); end return tmp end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[t, 5.5e-116], N[(N[(2.0 * N[(l * l), $MachinePrecision]), $MachinePrecision] * N[(N[Cos[k$95$m], $MachinePrecision] / N[(N[(k$95$m * k$95$m), $MachinePrecision] * N[(t * N[Power[N[Sin[k$95$m], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(2.0 * l), $MachinePrecision] / N[(t * N[(N[(N[(t * N[(t * N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision] * N[(N[Tan[k$95$m], $MachinePrecision] * N[(k$95$m * N[(k$95$m / N[(t * t), $MachinePrecision]), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;t \leq 5.5 \cdot 10^{-116}:\\
\;\;\;\;\left(2 \cdot \left(\ell \cdot \ell\right)\right) \cdot \frac{\cos k\_m}{\left(k\_m \cdot k\_m\right) \cdot \left(t \cdot {\sin k\_m}^{2}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot \ell}{t \cdot \left(\frac{t \cdot \left(t \cdot \sin k\_m\right)}{\ell} \cdot \left(\tan k\_m \cdot \mathsf{fma}\left(k\_m, \frac{k\_m}{t \cdot t}, 2\right)\right)\right)}\\
\end{array}
\end{array}
if t < 5.4999999999999998e-116Initial program 53.6%
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.f645.6
Applied egg-rr5.6%
div-expN/A
*-commutativeN/A
pow-to-expN/A
cube-unmultN/A
pow-to-expN/A
pow2N/A
associate-*l/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*l*N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
Applied egg-rr71.1%
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
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f6468.3
Simplified68.3%
if 5.4999999999999998e-116 < t Initial program 73.6%
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.f6438.5
Applied egg-rr38.5%
div-expN/A
*-commutativeN/A
pow-to-expN/A
cube-unmultN/A
pow-to-expN/A
pow2N/A
associate-*l/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*l*N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
Applied egg-rr95.0%
Applied egg-rr91.9%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(let* ((t_1 (/ (* t t) l)) (t_2 (* t (sin k_m))))
(if (<= t 9e-84)
(/
2.0
(/
(*
t
(*
(* k_m k_m)
(fma
(* k_m k_m)
(fma 2.0 (* t_1 0.16666666666666666) (/ 1.0 l))
(* 2.0 t_1))))
l))
(if (<= t 1.2e+52)
(/
2.0
(*
(tan k_m)
(* (fma k_m (/ k_m (* t t)) 2.0) (/ (* t (* t t_2)) (* l l)))))
(/ 2.0 (* 2.0 (* t (* (/ t l) (* (tan k_m) (/ t_2 l))))))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double t_1 = (t * t) / l;
double t_2 = t * sin(k_m);
double tmp;
if (t <= 9e-84) {
tmp = 2.0 / ((t * ((k_m * k_m) * fma((k_m * k_m), fma(2.0, (t_1 * 0.16666666666666666), (1.0 / l)), (2.0 * t_1)))) / l);
} else if (t <= 1.2e+52) {
tmp = 2.0 / (tan(k_m) * (fma(k_m, (k_m / (t * t)), 2.0) * ((t * (t * t_2)) / (l * l))));
} else {
tmp = 2.0 / (2.0 * (t * ((t / l) * (tan(k_m) * (t_2 / l)))));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) t_1 = Float64(Float64(t * t) / l) t_2 = Float64(t * sin(k_m)) tmp = 0.0 if (t <= 9e-84) tmp = Float64(2.0 / Float64(Float64(t * Float64(Float64(k_m * k_m) * fma(Float64(k_m * k_m), fma(2.0, Float64(t_1 * 0.16666666666666666), Float64(1.0 / l)), Float64(2.0 * t_1)))) / l)); elseif (t <= 1.2e+52) tmp = Float64(2.0 / Float64(tan(k_m) * Float64(fma(k_m, Float64(k_m / Float64(t * t)), 2.0) * Float64(Float64(t * Float64(t * t_2)) / Float64(l * l))))); else tmp = Float64(2.0 / Float64(2.0 * Float64(t * Float64(Float64(t / l) * Float64(tan(k_m) * Float64(t_2 / l)))))); end return tmp end
k_m = N[Abs[k], $MachinePrecision]
code[t_, l_, k$95$m_] := Block[{t$95$1 = N[(N[(t * t), $MachinePrecision] / l), $MachinePrecision]}, Block[{t$95$2 = N[(t * N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, 9e-84], N[(2.0 / N[(N[(t * N[(N[(k$95$m * k$95$m), $MachinePrecision] * N[(N[(k$95$m * k$95$m), $MachinePrecision] * N[(2.0 * N[(t$95$1 * 0.16666666666666666), $MachinePrecision] + N[(1.0 / l), $MachinePrecision]), $MachinePrecision] + N[(2.0 * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1.2e+52], N[(2.0 / N[(N[Tan[k$95$m], $MachinePrecision] * N[(N[(k$95$m * N[(k$95$m / N[(t * t), $MachinePrecision]), $MachinePrecision] + 2.0), $MachinePrecision] * N[(N[(t * N[(t * t$95$2), $MachinePrecision]), $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(2.0 * N[(t * N[(N[(t / l), $MachinePrecision] * N[(N[Tan[k$95$m], $MachinePrecision] * N[(t$95$2 / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
t_1 := \frac{t \cdot t}{\ell}\\
t_2 := t \cdot \sin k\_m\\
\mathbf{if}\;t \leq 9 \cdot 10^{-84}:\\
\;\;\;\;\frac{2}{\frac{t \cdot \left(\left(k\_m \cdot k\_m\right) \cdot \mathsf{fma}\left(k\_m \cdot k\_m, \mathsf{fma}\left(2, t\_1 \cdot 0.16666666666666666, \frac{1}{\ell}\right), 2 \cdot t\_1\right)\right)}{\ell}}\\
\mathbf{elif}\;t \leq 1.2 \cdot 10^{+52}:\\
\;\;\;\;\frac{2}{\tan k\_m \cdot \left(\mathsf{fma}\left(k\_m, \frac{k\_m}{t \cdot t}, 2\right) \cdot \frac{t \cdot \left(t \cdot t\_2\right)}{\ell \cdot \ell}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{2 \cdot \left(t \cdot \left(\frac{t}{\ell} \cdot \left(\tan k\_m \cdot \frac{t\_2}{\ell}\right)\right)\right)}\\
\end{array}
\end{array}
if t < 9.00000000000000031e-84Initial program 54.6%
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
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
tan-lowering-tan.f64N/A
+-commutativeN/A
associate-+r+N/A
metadata-evalN/A
+-lowering-+.f64N/A
unpow2N/A
frac-timesN/A
Applied egg-rr43.1%
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*r/N/A
metadata-evalN/A
associate-+r+N/A
times-fracN/A
unpow2N/A
+-commutativeN/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr58.7%
Taylor expanded in t around 0
*-lowering-*.f64N/A
+-commutativeN/A
associate-/l*N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
Simplified84.9%
Taylor expanded in k around 0
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
distribute-rgt-out--N/A
metadata-evalN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
Simplified72.4%
if 9.00000000000000031e-84 < t < 1.2e52Initial program 82.3%
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
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
tan-lowering-tan.f64N/A
+-commutativeN/A
associate-+r+N/A
metadata-evalN/A
+-lowering-+.f64N/A
unpow2N/A
frac-timesN/A
Applied egg-rr85.9%
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
*-commutativeN/A
*-commutativeN/A
metadata-evalN/A
associate-+r+N/A
times-fracN/A
unpow2N/A
+-commutativeN/A
Applied egg-rr79.1%
if 1.2e52 < t Initial program 70.1%
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.f6438.5
Applied egg-rr38.5%
div-expN/A
*-commutativeN/A
pow-to-expN/A
cube-unmultN/A
pow-to-expN/A
pow2N/A
associate-*l/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*l*N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
Applied egg-rr99.7%
Taylor expanded in k around 0
Simplified99.7%
Final simplification79.4%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(let* ((t_1 (/ (* t t) l)))
(if (<= t 8e-84)
(/
2.0
(/
(*
t
(*
(* k_m k_m)
(fma
(* k_m k_m)
(fma 2.0 (* t_1 0.16666666666666666) (/ 1.0 l))
(* 2.0 t_1))))
l))
(if (<= t 1.2e+52)
(*
(* l l)
(/
(/ 2.0 (* t (* t t)))
(* (sin k_m) (* (tan k_m) (fma k_m (/ k_m (* t t)) 2.0)))))
(/
2.0
(* 2.0 (* t (* (/ t l) (* (tan k_m) (/ (* t (sin k_m)) l))))))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double t_1 = (t * t) / l;
double tmp;
if (t <= 8e-84) {
tmp = 2.0 / ((t * ((k_m * k_m) * fma((k_m * k_m), fma(2.0, (t_1 * 0.16666666666666666), (1.0 / l)), (2.0 * t_1)))) / l);
} else if (t <= 1.2e+52) {
tmp = (l * l) * ((2.0 / (t * (t * t))) / (sin(k_m) * (tan(k_m) * fma(k_m, (k_m / (t * t)), 2.0))));
} else {
tmp = 2.0 / (2.0 * (t * ((t / l) * (tan(k_m) * ((t * sin(k_m)) / l)))));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) t_1 = Float64(Float64(t * t) / l) tmp = 0.0 if (t <= 8e-84) tmp = Float64(2.0 / Float64(Float64(t * Float64(Float64(k_m * k_m) * fma(Float64(k_m * k_m), fma(2.0, Float64(t_1 * 0.16666666666666666), Float64(1.0 / l)), Float64(2.0 * t_1)))) / l)); elseif (t <= 1.2e+52) tmp = Float64(Float64(l * l) * Float64(Float64(2.0 / Float64(t * Float64(t * t))) / Float64(sin(k_m) * Float64(tan(k_m) * fma(k_m, Float64(k_m / Float64(t * t)), 2.0))))); else tmp = Float64(2.0 / Float64(2.0 * Float64(t * Float64(Float64(t / l) * Float64(tan(k_m) * Float64(Float64(t * sin(k_m)) / l)))))); end return tmp end
k_m = N[Abs[k], $MachinePrecision]
code[t_, l_, k$95$m_] := Block[{t$95$1 = N[(N[(t * t), $MachinePrecision] / l), $MachinePrecision]}, If[LessEqual[t, 8e-84], N[(2.0 / N[(N[(t * N[(N[(k$95$m * k$95$m), $MachinePrecision] * N[(N[(k$95$m * k$95$m), $MachinePrecision] * N[(2.0 * N[(t$95$1 * 0.16666666666666666), $MachinePrecision] + N[(1.0 / l), $MachinePrecision]), $MachinePrecision] + N[(2.0 * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1.2e+52], N[(N[(l * l), $MachinePrecision] * N[(N[(2.0 / N[(t * N[(t * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[Sin[k$95$m], $MachinePrecision] * N[(N[Tan[k$95$m], $MachinePrecision] * N[(k$95$m * N[(k$95$m / N[(t * t), $MachinePrecision]), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(2.0 * N[(t * N[(N[(t / l), $MachinePrecision] * N[(N[Tan[k$95$m], $MachinePrecision] * N[(N[(t * N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
t_1 := \frac{t \cdot t}{\ell}\\
\mathbf{if}\;t \leq 8 \cdot 10^{-84}:\\
\;\;\;\;\frac{2}{\frac{t \cdot \left(\left(k\_m \cdot k\_m\right) \cdot \mathsf{fma}\left(k\_m \cdot k\_m, \mathsf{fma}\left(2, t\_1 \cdot 0.16666666666666666, \frac{1}{\ell}\right), 2 \cdot t\_1\right)\right)}{\ell}}\\
\mathbf{elif}\;t \leq 1.2 \cdot 10^{+52}:\\
\;\;\;\;\left(\ell \cdot \ell\right) \cdot \frac{\frac{2}{t \cdot \left(t \cdot t\right)}}{\sin k\_m \cdot \left(\tan k\_m \cdot \mathsf{fma}\left(k\_m, \frac{k\_m}{t \cdot t}, 2\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{2 \cdot \left(t \cdot \left(\frac{t}{\ell} \cdot \left(\tan k\_m \cdot \frac{t \cdot \sin k\_m}{\ell}\right)\right)\right)}\\
\end{array}
\end{array}
if t < 8.0000000000000003e-84Initial program 54.6%
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
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
tan-lowering-tan.f64N/A
+-commutativeN/A
associate-+r+N/A
metadata-evalN/A
+-lowering-+.f64N/A
unpow2N/A
frac-timesN/A
Applied egg-rr43.1%
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*r/N/A
metadata-evalN/A
associate-+r+N/A
times-fracN/A
unpow2N/A
+-commutativeN/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr58.7%
Taylor expanded in t around 0
*-lowering-*.f64N/A
+-commutativeN/A
associate-/l*N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
Simplified84.9%
Taylor expanded in k around 0
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
distribute-rgt-out--N/A
metadata-evalN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
Simplified72.4%
if 8.0000000000000003e-84 < t < 1.2e52Initial program 82.3%
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.f6437.9
Applied egg-rr37.9%
Applied egg-rr82.5%
if 1.2e52 < t Initial program 70.1%
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.f6438.5
Applied egg-rr38.5%
div-expN/A
*-commutativeN/A
pow-to-expN/A
cube-unmultN/A
pow-to-expN/A
pow2N/A
associate-*l/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*l*N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
Applied egg-rr99.7%
Taylor expanded in k around 0
Simplified99.7%
Final simplification79.8%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(let* ((t_1 (/ (* t t) l)))
(if (<= t 2e-141)
(/
2.0
(/
(*
t
(*
(* k_m k_m)
(fma
(* k_m k_m)
(fma 2.0 (* t_1 0.16666666666666666) (/ 1.0 l))
(* 2.0 t_1))))
l))
(/
(* 2.0 l)
(*
t
(*
(/ (* t (* t (sin k_m))) l)
(* (tan k_m) (fma k_m (/ k_m (* t t)) 2.0))))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double t_1 = (t * t) / l;
double tmp;
if (t <= 2e-141) {
tmp = 2.0 / ((t * ((k_m * k_m) * fma((k_m * k_m), fma(2.0, (t_1 * 0.16666666666666666), (1.0 / l)), (2.0 * t_1)))) / l);
} else {
tmp = (2.0 * l) / (t * (((t * (t * sin(k_m))) / l) * (tan(k_m) * fma(k_m, (k_m / (t * t)), 2.0))));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) t_1 = Float64(Float64(t * t) / l) tmp = 0.0 if (t <= 2e-141) tmp = Float64(2.0 / Float64(Float64(t * Float64(Float64(k_m * k_m) * fma(Float64(k_m * k_m), fma(2.0, Float64(t_1 * 0.16666666666666666), Float64(1.0 / l)), Float64(2.0 * t_1)))) / l)); else tmp = Float64(Float64(2.0 * l) / Float64(t * Float64(Float64(Float64(t * Float64(t * sin(k_m))) / l) * Float64(tan(k_m) * fma(k_m, Float64(k_m / Float64(t * t)), 2.0))))); end return tmp end
k_m = N[Abs[k], $MachinePrecision]
code[t_, l_, k$95$m_] := Block[{t$95$1 = N[(N[(t * t), $MachinePrecision] / l), $MachinePrecision]}, If[LessEqual[t, 2e-141], N[(2.0 / N[(N[(t * N[(N[(k$95$m * k$95$m), $MachinePrecision] * N[(N[(k$95$m * k$95$m), $MachinePrecision] * N[(2.0 * N[(t$95$1 * 0.16666666666666666), $MachinePrecision] + N[(1.0 / l), $MachinePrecision]), $MachinePrecision] + N[(2.0 * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(N[(2.0 * l), $MachinePrecision] / N[(t * N[(N[(N[(t * N[(t * N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision] * N[(N[Tan[k$95$m], $MachinePrecision] * N[(k$95$m * N[(k$95$m / N[(t * t), $MachinePrecision]), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
t_1 := \frac{t \cdot t}{\ell}\\
\mathbf{if}\;t \leq 2 \cdot 10^{-141}:\\
\;\;\;\;\frac{2}{\frac{t \cdot \left(\left(k\_m \cdot k\_m\right) \cdot \mathsf{fma}\left(k\_m \cdot k\_m, \mathsf{fma}\left(2, t\_1 \cdot 0.16666666666666666, \frac{1}{\ell}\right), 2 \cdot t\_1\right)\right)}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot \ell}{t \cdot \left(\frac{t \cdot \left(t \cdot \sin k\_m\right)}{\ell} \cdot \left(\tan k\_m \cdot \mathsf{fma}\left(k\_m, \frac{k\_m}{t \cdot t}, 2\right)\right)\right)}\\
\end{array}
\end{array}
if t < 2.0000000000000001e-141Initial program 54.0%
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
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
tan-lowering-tan.f64N/A
+-commutativeN/A
associate-+r+N/A
metadata-evalN/A
+-lowering-+.f64N/A
unpow2N/A
frac-timesN/A
Applied egg-rr41.6%
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*r/N/A
metadata-evalN/A
associate-+r+N/A
times-fracN/A
unpow2N/A
+-commutativeN/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr57.2%
Taylor expanded in t around 0
*-lowering-*.f64N/A
+-commutativeN/A
associate-/l*N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
Simplified84.9%
Taylor expanded in k around 0
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
distribute-rgt-out--N/A
metadata-evalN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
Simplified72.6%
if 2.0000000000000001e-141 < t Initial program 72.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.f6437.3
Applied egg-rr37.3%
div-expN/A
*-commutativeN/A
pow-to-expN/A
cube-unmultN/A
pow-to-expN/A
pow2N/A
associate-*l/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*l*N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
Applied egg-rr94.1%
Applied egg-rr91.1%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(let* ((t_1 (/ (* t t) l)))
(if (<= k_m 1.65e-94)
(/ 2.0 (* 2.0 (* t (* (/ t l) (* (tan k_m) (/ (* t (sin k_m)) l))))))
(/
2.0
(/
(*
t
(*
(* k_m k_m)
(fma
(* k_m k_m)
(fma 2.0 (* t_1 0.16666666666666666) (/ 1.0 l))
(* 2.0 t_1))))
l)))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double t_1 = (t * t) / l;
double tmp;
if (k_m <= 1.65e-94) {
tmp = 2.0 / (2.0 * (t * ((t / l) * (tan(k_m) * ((t * sin(k_m)) / l)))));
} else {
tmp = 2.0 / ((t * ((k_m * k_m) * fma((k_m * k_m), fma(2.0, (t_1 * 0.16666666666666666), (1.0 / l)), (2.0 * t_1)))) / l);
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) t_1 = Float64(Float64(t * t) / l) tmp = 0.0 if (k_m <= 1.65e-94) tmp = Float64(2.0 / Float64(2.0 * Float64(t * Float64(Float64(t / l) * Float64(tan(k_m) * Float64(Float64(t * sin(k_m)) / l)))))); else tmp = Float64(2.0 / Float64(Float64(t * Float64(Float64(k_m * k_m) * fma(Float64(k_m * k_m), fma(2.0, Float64(t_1 * 0.16666666666666666), Float64(1.0 / l)), Float64(2.0 * t_1)))) / l)); end return tmp end
k_m = N[Abs[k], $MachinePrecision]
code[t_, l_, k$95$m_] := Block[{t$95$1 = N[(N[(t * t), $MachinePrecision] / l), $MachinePrecision]}, If[LessEqual[k$95$m, 1.65e-94], N[(2.0 / N[(2.0 * N[(t * N[(N[(t / l), $MachinePrecision] * N[(N[Tan[k$95$m], $MachinePrecision] * N[(N[(t * N[Sin[k$95$m], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(t * N[(N[(k$95$m * k$95$m), $MachinePrecision] * N[(N[(k$95$m * k$95$m), $MachinePrecision] * N[(2.0 * N[(t$95$1 * 0.16666666666666666), $MachinePrecision] + N[(1.0 / l), $MachinePrecision]), $MachinePrecision] + N[(2.0 * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
t_1 := \frac{t \cdot t}{\ell}\\
\mathbf{if}\;k\_m \leq 1.65 \cdot 10^{-94}:\\
\;\;\;\;\frac{2}{2 \cdot \left(t \cdot \left(\frac{t}{\ell} \cdot \left(\tan k\_m \cdot \frac{t \cdot \sin k\_m}{\ell}\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{t \cdot \left(\left(k\_m \cdot k\_m\right) \cdot \mathsf{fma}\left(k\_m \cdot k\_m, \mathsf{fma}\left(2, t\_1 \cdot 0.16666666666666666, \frac{1}{\ell}\right), 2 \cdot t\_1\right)\right)}{\ell}}\\
\end{array}
\end{array}
if k < 1.6500000000000001e-94Initial program 61.4%
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.f6417.1
Applied egg-rr17.1%
div-expN/A
*-commutativeN/A
pow-to-expN/A
cube-unmultN/A
pow-to-expN/A
pow2N/A
associate-*l/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*l*N/A
associate-/l*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
Applied egg-rr86.1%
Taylor expanded in k around 0
Simplified76.5%
if 1.6500000000000001e-94 < k Initial program 60.8%
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
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
tan-lowering-tan.f64N/A
+-commutativeN/A
associate-+r+N/A
metadata-evalN/A
+-lowering-+.f64N/A
unpow2N/A
frac-timesN/A
Applied egg-rr52.5%
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*r/N/A
metadata-evalN/A
associate-+r+N/A
times-fracN/A
unpow2N/A
+-commutativeN/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr67.1%
Taylor expanded in t around 0
*-lowering-*.f64N/A
+-commutativeN/A
associate-/l*N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
Simplified87.0%
Taylor expanded in k around 0
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
distribute-rgt-out--N/A
metadata-evalN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
Simplified74.0%
Final simplification75.6%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(let* ((t_1 (/ (* t t) l)))
(if (<= t 2.9e-84)
(/
2.0
(/
(*
t
(*
(* k_m k_m)
(fma
(* k_m k_m)
(fma 2.0 (* t_1 0.16666666666666666) (/ 1.0 l))
(* 2.0 t_1))))
l))
(if (<= t 1e+143)
(* (/ l (* k_m (* t t))) (/ l (* k_m t)))
(* (/ l t) (/ l (* t (* k_m (* k_m t)))))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double t_1 = (t * t) / l;
double tmp;
if (t <= 2.9e-84) {
tmp = 2.0 / ((t * ((k_m * k_m) * fma((k_m * k_m), fma(2.0, (t_1 * 0.16666666666666666), (1.0 / l)), (2.0 * t_1)))) / l);
} else if (t <= 1e+143) {
tmp = (l / (k_m * (t * t))) * (l / (k_m * t));
} else {
tmp = (l / t) * (l / (t * (k_m * (k_m * t))));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) t_1 = Float64(Float64(t * t) / l) tmp = 0.0 if (t <= 2.9e-84) tmp = Float64(2.0 / Float64(Float64(t * Float64(Float64(k_m * k_m) * fma(Float64(k_m * k_m), fma(2.0, Float64(t_1 * 0.16666666666666666), Float64(1.0 / l)), Float64(2.0 * t_1)))) / l)); elseif (t <= 1e+143) tmp = Float64(Float64(l / Float64(k_m * Float64(t * t))) * Float64(l / Float64(k_m * t))); else tmp = Float64(Float64(l / t) * Float64(l / Float64(t * Float64(k_m * Float64(k_m * t))))); end return tmp end
k_m = N[Abs[k], $MachinePrecision]
code[t_, l_, k$95$m_] := Block[{t$95$1 = N[(N[(t * t), $MachinePrecision] / l), $MachinePrecision]}, If[LessEqual[t, 2.9e-84], N[(2.0 / N[(N[(t * N[(N[(k$95$m * k$95$m), $MachinePrecision] * N[(N[(k$95$m * k$95$m), $MachinePrecision] * N[(2.0 * N[(t$95$1 * 0.16666666666666666), $MachinePrecision] + N[(1.0 / l), $MachinePrecision]), $MachinePrecision] + N[(2.0 * t$95$1), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1e+143], N[(N[(l / N[(k$95$m * N[(t * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(l / N[(k$95$m * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(l / t), $MachinePrecision] * N[(l / N[(t * N[(k$95$m * N[(k$95$m * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
t_1 := \frac{t \cdot t}{\ell}\\
\mathbf{if}\;t \leq 2.9 \cdot 10^{-84}:\\
\;\;\;\;\frac{2}{\frac{t \cdot \left(\left(k\_m \cdot k\_m\right) \cdot \mathsf{fma}\left(k\_m \cdot k\_m, \mathsf{fma}\left(2, t\_1 \cdot 0.16666666666666666, \frac{1}{\ell}\right), 2 \cdot t\_1\right)\right)}{\ell}}\\
\mathbf{elif}\;t \leq 10^{+143}:\\
\;\;\;\;\frac{\ell}{k\_m \cdot \left(t \cdot t\right)} \cdot \frac{\ell}{k\_m \cdot t}\\
\mathbf{else}:\\
\;\;\;\;\frac{\ell}{t} \cdot \frac{\ell}{t \cdot \left(k\_m \cdot \left(k\_m \cdot t\right)\right)}\\
\end{array}
\end{array}
if t < 2.90000000000000019e-84Initial program 54.3%
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
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
tan-lowering-tan.f64N/A
+-commutativeN/A
associate-+r+N/A
metadata-evalN/A
+-lowering-+.f64N/A
unpow2N/A
frac-timesN/A
Applied egg-rr42.8%
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*r/N/A
metadata-evalN/A
associate-+r+N/A
times-fracN/A
unpow2N/A
+-commutativeN/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr58.5%
Taylor expanded in t around 0
*-lowering-*.f64N/A
+-commutativeN/A
associate-/l*N/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
pow-lowering-pow.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
cos-lowering-cos.f64N/A
associate-*r/N/A
/-lowering-/.f64N/A
Simplified84.8%
Taylor expanded in k around 0
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-commutativeN/A
accelerator-lowering-fma.f64N/A
unpow2N/A
*-lowering-*.f64N/A
accelerator-lowering-fma.f64N/A
distribute-rgt-out--N/A
metadata-evalN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
unpow2N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
Simplified72.2%
if 2.90000000000000019e-84 < t < 1e143Initial program 76.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-*.f6462.1
Simplified62.1%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6470.9
Applied egg-rr70.9%
*-commutativeN/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6477.1
Applied egg-rr77.1%
associate-*l/N/A
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6482.1
Applied egg-rr82.1%
if 1e143 < t Initial program 71.9%
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-*.f6464.4
Simplified64.4%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6471.5
Applied egg-rr71.5%
associate-*l/N/A
associate-*l*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6495.3
Applied egg-rr95.3%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(let* ((t_1 (* t (* t t))))
(if (<= t 3.5e-84)
(/
2.0
(/
(*
(* k_m k_m)
(fma
(fma t 1.0 (* t_1 0.3333333333333333))
(/ (* k_m k_m) l)
(/ (* 2.0 t_1) l)))
l))
(if (<= t 2e+141)
(* (/ l (* k_m (* t t))) (/ l (* k_m t)))
(* (/ l t) (/ l (* t (* k_m (* k_m t)))))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double t_1 = t * (t * t);
double tmp;
if (t <= 3.5e-84) {
tmp = 2.0 / (((k_m * k_m) * fma(fma(t, 1.0, (t_1 * 0.3333333333333333)), ((k_m * k_m) / l), ((2.0 * t_1) / l))) / l);
} else if (t <= 2e+141) {
tmp = (l / (k_m * (t * t))) * (l / (k_m * t));
} else {
tmp = (l / t) * (l / (t * (k_m * (k_m * t))));
}
return tmp;
}
k_m = abs(k) function code(t, l, k_m) t_1 = Float64(t * Float64(t * t)) tmp = 0.0 if (t <= 3.5e-84) tmp = Float64(2.0 / Float64(Float64(Float64(k_m * k_m) * fma(fma(t, 1.0, Float64(t_1 * 0.3333333333333333)), Float64(Float64(k_m * k_m) / l), Float64(Float64(2.0 * t_1) / l))) / l)); elseif (t <= 2e+141) tmp = Float64(Float64(l / Float64(k_m * Float64(t * t))) * Float64(l / Float64(k_m * t))); else tmp = Float64(Float64(l / t) * Float64(l / Float64(t * Float64(k_m * Float64(k_m * t))))); end return tmp end
k_m = N[Abs[k], $MachinePrecision]
code[t_, l_, k$95$m_] := Block[{t$95$1 = N[(t * N[(t * t), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, 3.5e-84], N[(2.0 / N[(N[(N[(k$95$m * k$95$m), $MachinePrecision] * N[(N[(t * 1.0 + N[(t$95$1 * 0.3333333333333333), $MachinePrecision]), $MachinePrecision] * N[(N[(k$95$m * k$95$m), $MachinePrecision] / l), $MachinePrecision] + N[(N[(2.0 * t$95$1), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 2e+141], N[(N[(l / N[(k$95$m * N[(t * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(l / N[(k$95$m * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(l / t), $MachinePrecision] * N[(l / N[(t * N[(k$95$m * N[(k$95$m * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
t_1 := t \cdot \left(t \cdot t\right)\\
\mathbf{if}\;t \leq 3.5 \cdot 10^{-84}:\\
\;\;\;\;\frac{2}{\frac{\left(k\_m \cdot k\_m\right) \cdot \mathsf{fma}\left(\mathsf{fma}\left(t, 1, t\_1 \cdot 0.3333333333333333\right), \frac{k\_m \cdot k\_m}{\ell}, \frac{2 \cdot t\_1}{\ell}\right)}{\ell}}\\
\mathbf{elif}\;t \leq 2 \cdot 10^{+141}:\\
\;\;\;\;\frac{\ell}{k\_m \cdot \left(t \cdot t\right)} \cdot \frac{\ell}{k\_m \cdot t}\\
\mathbf{else}:\\
\;\;\;\;\frac{\ell}{t} \cdot \frac{\ell}{t \cdot \left(k\_m \cdot \left(k\_m \cdot t\right)\right)}\\
\end{array}
\end{array}
if t < 3.5000000000000001e-84Initial program 54.3%
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
*-lowering-*.f64N/A
/-lowering-/.f64N/A
sin-lowering-sin.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
tan-lowering-tan.f64N/A
+-commutativeN/A
associate-+r+N/A
metadata-evalN/A
+-lowering-+.f64N/A
unpow2N/A
frac-timesN/A
Applied egg-rr42.8%
associate-*r*N/A
associate-*r/N/A
associate-*r*N/A
associate-*r*N/A
frac-timesN/A
associate-*r/N/A
metadata-evalN/A
associate-+r+N/A
times-fracN/A
unpow2N/A
+-commutativeN/A
associate-*l/N/A
/-lowering-/.f64N/A
Applied egg-rr58.5%
Taylor expanded in k around 0
*-lowering-*.f64N/A
unpow2N/A
*-lowering-*.f64N/A
+-commutativeN/A
*-commutativeN/A
associate-/l*N/A
accelerator-lowering-fma.f64N/A
Simplified71.0%
if 3.5000000000000001e-84 < t < 2.00000000000000003e141Initial program 76.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-*.f6462.1
Simplified62.1%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6470.9
Applied egg-rr70.9%
*-commutativeN/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6477.1
Applied egg-rr77.1%
associate-*l/N/A
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6482.1
Applied egg-rr82.1%
if 2.00000000000000003e141 < t Initial program 71.9%
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-*.f6464.4
Simplified64.4%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6471.5
Applied egg-rr71.5%
associate-*l/N/A
associate-*l*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6495.3
Applied egg-rr95.3%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(if (<= t 5e-91)
(/ (/ (* l l) t) (* t (* t (* k_m k_m))))
(if (<= t 1.66e+143)
(* (/ l (* k_m (* t t))) (/ l (* k_m t)))
(* (/ l t) (/ l (* t (* k_m (* k_m t))))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (t <= 5e-91) {
tmp = ((l * l) / t) / (t * (t * (k_m * k_m)));
} else if (t <= 1.66e+143) {
tmp = (l / (k_m * (t * t))) * (l / (k_m * t));
} else {
tmp = (l / t) * (l / (t * (k_m * (k_m * t))));
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (t <= 5d-91) then
tmp = ((l * l) / t) / (t * (t * (k_m * k_m)))
else if (t <= 1.66d+143) then
tmp = (l / (k_m * (t * t))) * (l / (k_m * t))
else
tmp = (l / t) * (l / (t * (k_m * (k_m * t))))
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (t <= 5e-91) {
tmp = ((l * l) / t) / (t * (t * (k_m * k_m)));
} else if (t <= 1.66e+143) {
tmp = (l / (k_m * (t * t))) * (l / (k_m * t));
} else {
tmp = (l / t) * (l / (t * (k_m * (k_m * t))));
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): tmp = 0 if t <= 5e-91: tmp = ((l * l) / t) / (t * (t * (k_m * k_m))) elif t <= 1.66e+143: tmp = (l / (k_m * (t * t))) * (l / (k_m * t)) else: tmp = (l / t) * (l / (t * (k_m * (k_m * t)))) return tmp
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (t <= 5e-91) tmp = Float64(Float64(Float64(l * l) / t) / Float64(t * Float64(t * Float64(k_m * k_m)))); elseif (t <= 1.66e+143) tmp = Float64(Float64(l / Float64(k_m * Float64(t * t))) * Float64(l / Float64(k_m * t))); else tmp = Float64(Float64(l / t) * Float64(l / Float64(t * Float64(k_m * Float64(k_m * t))))); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) tmp = 0.0; if (t <= 5e-91) tmp = ((l * l) / t) / (t * (t * (k_m * k_m))); elseif (t <= 1.66e+143) tmp = (l / (k_m * (t * t))) * (l / (k_m * t)); else tmp = (l / t) * (l / (t * (k_m * (k_m * t)))); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[t, 5e-91], N[(N[(N[(l * l), $MachinePrecision] / t), $MachinePrecision] / N[(t * N[(t * N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 1.66e+143], N[(N[(l / N[(k$95$m * N[(t * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(l / N[(k$95$m * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(l / t), $MachinePrecision] * N[(l / N[(t * N[(k$95$m * N[(k$95$m * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;t \leq 5 \cdot 10^{-91}:\\
\;\;\;\;\frac{\frac{\ell \cdot \ell}{t}}{t \cdot \left(t \cdot \left(k\_m \cdot k\_m\right)\right)}\\
\mathbf{elif}\;t \leq 1.66 \cdot 10^{+143}:\\
\;\;\;\;\frac{\ell}{k\_m \cdot \left(t \cdot t\right)} \cdot \frac{\ell}{k\_m \cdot t}\\
\mathbf{else}:\\
\;\;\;\;\frac{\ell}{t} \cdot \frac{\ell}{t \cdot \left(k\_m \cdot \left(k\_m \cdot t\right)\right)}\\
\end{array}
\end{array}
if t < 4.99999999999999997e-91Initial program 54.4%
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-*.f6455.3
Simplified55.3%
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-*.f6464.6
Applied egg-rr64.6%
if 4.99999999999999997e-91 < t < 1.66000000000000007e143Initial program 74.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-*.f6459.3
Simplified59.3%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6467.5
Applied egg-rr67.5%
*-commutativeN/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6473.2
Applied egg-rr73.2%
associate-*l/N/A
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6477.8
Applied egg-rr77.8%
if 1.66000000000000007e143 < t Initial program 71.9%
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-*.f6464.4
Simplified64.4%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6471.5
Applied egg-rr71.5%
associate-*l/N/A
associate-*l*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6495.3
Applied egg-rr95.3%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(let* ((t_1 (* t (* k_m (* k_m t)))))
(if (<= t 4.15e-106)
(/ (/ (* l l) t) t_1)
(if (<= t 4.2e+141)
(* (/ l (* k_m (* t t))) (/ l (* k_m t)))
(* (/ l t) (/ l t_1))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double t_1 = t * (k_m * (k_m * t));
double tmp;
if (t <= 4.15e-106) {
tmp = ((l * l) / t) / t_1;
} else if (t <= 4.2e+141) {
tmp = (l / (k_m * (t * t))) * (l / (k_m * t));
} else {
tmp = (l / t) * (l / t_1);
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: t_1
real(8) :: tmp
t_1 = t * (k_m * (k_m * t))
if (t <= 4.15d-106) then
tmp = ((l * l) / t) / t_1
else if (t <= 4.2d+141) then
tmp = (l / (k_m * (t * t))) * (l / (k_m * t))
else
tmp = (l / t) * (l / t_1)
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double t_1 = t * (k_m * (k_m * t));
double tmp;
if (t <= 4.15e-106) {
tmp = ((l * l) / t) / t_1;
} else if (t <= 4.2e+141) {
tmp = (l / (k_m * (t * t))) * (l / (k_m * t));
} else {
tmp = (l / t) * (l / t_1);
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): t_1 = t * (k_m * (k_m * t)) tmp = 0 if t <= 4.15e-106: tmp = ((l * l) / t) / t_1 elif t <= 4.2e+141: tmp = (l / (k_m * (t * t))) * (l / (k_m * t)) else: tmp = (l / t) * (l / t_1) return tmp
k_m = abs(k) function code(t, l, k_m) t_1 = Float64(t * Float64(k_m * Float64(k_m * t))) tmp = 0.0 if (t <= 4.15e-106) tmp = Float64(Float64(Float64(l * l) / t) / t_1); elseif (t <= 4.2e+141) tmp = Float64(Float64(l / Float64(k_m * Float64(t * t))) * Float64(l / Float64(k_m * t))); else tmp = Float64(Float64(l / t) * Float64(l / t_1)); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) t_1 = t * (k_m * (k_m * t)); tmp = 0.0; if (t <= 4.15e-106) tmp = ((l * l) / t) / t_1; elseif (t <= 4.2e+141) tmp = (l / (k_m * (t * t))) * (l / (k_m * t)); else tmp = (l / t) * (l / t_1); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision]
code[t_, l_, k$95$m_] := Block[{t$95$1 = N[(t * N[(k$95$m * N[(k$95$m * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[t, 4.15e-106], N[(N[(N[(l * l), $MachinePrecision] / t), $MachinePrecision] / t$95$1), $MachinePrecision], If[LessEqual[t, 4.2e+141], N[(N[(l / N[(k$95$m * N[(t * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(l / N[(k$95$m * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(l / t), $MachinePrecision] * N[(l / t$95$1), $MachinePrecision]), $MachinePrecision]]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
t_1 := t \cdot \left(k\_m \cdot \left(k\_m \cdot t\right)\right)\\
\mathbf{if}\;t \leq 4.15 \cdot 10^{-106}:\\
\;\;\;\;\frac{\frac{\ell \cdot \ell}{t}}{t\_1}\\
\mathbf{elif}\;t \leq 4.2 \cdot 10^{+141}:\\
\;\;\;\;\frac{\ell}{k\_m \cdot \left(t \cdot t\right)} \cdot \frac{\ell}{k\_m \cdot t}\\
\mathbf{else}:\\
\;\;\;\;\frac{\ell}{t} \cdot \frac{\ell}{t\_1}\\
\end{array}
\end{array}
if t < 4.15000000000000023e-106Initial program 53.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-*.f6454.2
Simplified54.2%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6460.8
Applied egg-rr60.8%
associate-*l/N/A
associate-*l*N/A
associate-/r*N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6465.0
Applied egg-rr65.0%
if 4.15000000000000023e-106 < t < 4.1999999999999997e141Initial program 76.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-*.f6462.3
Simplified62.3%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6469.9
Applied egg-rr69.9%
*-commutativeN/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6474.5
Applied egg-rr74.5%
associate-*l/N/A
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6478.7
Applied egg-rr78.7%
if 4.1999999999999997e141 < t Initial program 71.9%
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-*.f6464.4
Simplified64.4%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6471.5
Applied egg-rr71.5%
associate-*l/N/A
associate-*l*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6495.3
Applied egg-rr95.3%
k_m = (fabs.f64 k)
(FPCore (t l k_m)
:precision binary64
(if (<= t 4.4e-91)
(* (/ l t) (/ l (* t (* t (* k_m k_m)))))
(if (<= t 3.6e+141)
(* (/ l (* k_m (* t t))) (/ l (* k_m t)))
(* (/ l t) (/ l (* t (* k_m (* k_m t))))))))k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (t <= 4.4e-91) {
tmp = (l / t) * (l / (t * (t * (k_m * k_m))));
} else if (t <= 3.6e+141) {
tmp = (l / (k_m * (t * t))) * (l / (k_m * t));
} else {
tmp = (l / t) * (l / (t * (k_m * (k_m * t))));
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (t <= 4.4d-91) then
tmp = (l / t) * (l / (t * (t * (k_m * k_m))))
else if (t <= 3.6d+141) then
tmp = (l / (k_m * (t * t))) * (l / (k_m * t))
else
tmp = (l / t) * (l / (t * (k_m * (k_m * t))))
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (t <= 4.4e-91) {
tmp = (l / t) * (l / (t * (t * (k_m * k_m))));
} else if (t <= 3.6e+141) {
tmp = (l / (k_m * (t * t))) * (l / (k_m * t));
} else {
tmp = (l / t) * (l / (t * (k_m * (k_m * t))));
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): tmp = 0 if t <= 4.4e-91: tmp = (l / t) * (l / (t * (t * (k_m * k_m)))) elif t <= 3.6e+141: tmp = (l / (k_m * (t * t))) * (l / (k_m * t)) else: tmp = (l / t) * (l / (t * (k_m * (k_m * t)))) return tmp
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (t <= 4.4e-91) tmp = Float64(Float64(l / t) * Float64(l / Float64(t * Float64(t * Float64(k_m * k_m))))); elseif (t <= 3.6e+141) tmp = Float64(Float64(l / Float64(k_m * Float64(t * t))) * Float64(l / Float64(k_m * t))); else tmp = Float64(Float64(l / t) * Float64(l / Float64(t * Float64(k_m * Float64(k_m * t))))); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) tmp = 0.0; if (t <= 4.4e-91) tmp = (l / t) * (l / (t * (t * (k_m * k_m)))); elseif (t <= 3.6e+141) tmp = (l / (k_m * (t * t))) * (l / (k_m * t)); else tmp = (l / t) * (l / (t * (k_m * (k_m * t)))); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[t, 4.4e-91], N[(N[(l / t), $MachinePrecision] * N[(l / N[(t * N[(t * N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t, 3.6e+141], N[(N[(l / N[(k$95$m * N[(t * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(l / N[(k$95$m * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(l / t), $MachinePrecision] * N[(l / N[(t * N[(k$95$m * N[(k$95$m * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;t \leq 4.4 \cdot 10^{-91}:\\
\;\;\;\;\frac{\ell}{t} \cdot \frac{\ell}{t \cdot \left(t \cdot \left(k\_m \cdot k\_m\right)\right)}\\
\mathbf{elif}\;t \leq 3.6 \cdot 10^{+141}:\\
\;\;\;\;\frac{\ell}{k\_m \cdot \left(t \cdot t\right)} \cdot \frac{\ell}{k\_m \cdot t}\\
\mathbf{else}:\\
\;\;\;\;\frac{\ell}{t} \cdot \frac{\ell}{t \cdot \left(k\_m \cdot \left(k\_m \cdot t\right)\right)}\\
\end{array}
\end{array}
if t < 4.4000000000000002e-91Initial program 54.4%
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-*.f6455.3
Simplified55.3%
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-*.f6467.0
Applied egg-rr67.0%
if 4.4000000000000002e-91 < t < 3.6000000000000001e141Initial program 74.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-*.f6459.3
Simplified59.3%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6467.5
Applied egg-rr67.5%
*-commutativeN/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6473.2
Applied egg-rr73.2%
associate-*l/N/A
*-commutativeN/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f6477.8
Applied egg-rr77.8%
if 3.6000000000000001e141 < t Initial program 71.9%
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-*.f6464.4
Simplified64.4%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6471.5
Applied egg-rr71.5%
associate-*l/N/A
associate-*l*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6495.3
Applied egg-rr95.3%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (if (<= t 2.1e-160) (* (/ l t) (/ l (* t (* t (* k_m k_m))))) (* (/ l t) (/ l (* t (* k_m (* k_m t)))))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (t <= 2.1e-160) {
tmp = (l / t) * (l / (t * (t * (k_m * k_m))));
} else {
tmp = (l / t) * (l / (t * (k_m * (k_m * t))));
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (t <= 2.1d-160) then
tmp = (l / t) * (l / (t * (t * (k_m * k_m))))
else
tmp = (l / t) * (l / (t * (k_m * (k_m * t))))
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (t <= 2.1e-160) {
tmp = (l / t) * (l / (t * (t * (k_m * k_m))));
} else {
tmp = (l / t) * (l / (t * (k_m * (k_m * t))));
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): tmp = 0 if t <= 2.1e-160: tmp = (l / t) * (l / (t * (t * (k_m * k_m)))) else: tmp = (l / t) * (l / (t * (k_m * (k_m * t)))) return tmp
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (t <= 2.1e-160) tmp = Float64(Float64(l / t) * Float64(l / Float64(t * Float64(t * Float64(k_m * k_m))))); else tmp = Float64(Float64(l / t) * Float64(l / Float64(t * Float64(k_m * Float64(k_m * t))))); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) tmp = 0.0; if (t <= 2.1e-160) tmp = (l / t) * (l / (t * (t * (k_m * k_m)))); else tmp = (l / t) * (l / (t * (k_m * (k_m * t)))); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[t, 2.1e-160], N[(N[(l / t), $MachinePrecision] * N[(l / N[(t * N[(t * N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(l / t), $MachinePrecision] * N[(l / N[(t * N[(k$95$m * N[(k$95$m * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;t \leq 2.1 \cdot 10^{-160}:\\
\;\;\;\;\frac{\ell}{t} \cdot \frac{\ell}{t \cdot \left(t \cdot \left(k\_m \cdot k\_m\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\ell}{t} \cdot \frac{\ell}{t \cdot \left(k\_m \cdot \left(k\_m \cdot t\right)\right)}\\
\end{array}
\end{array}
if t < 2.1e-160Initial program 54.0%
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-*.f6455.0
Simplified55.0%
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-*.f6466.8
Applied egg-rr66.8%
if 2.1e-160 < t Initial program 72.0%
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-*.f6461.5
Simplified61.5%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6469.4
Applied egg-rr69.4%
associate-*l/N/A
associate-*l*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6481.6
Applied egg-rr81.6%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (if (<= k_m 5.5e+185) (* l (/ l (* (* k_m t) (* t (* k_m t))))) (/ (* l l) (* t (* t (* t (* k_m k_m)))))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 5.5e+185) {
tmp = l * (l / ((k_m * t) * (t * (k_m * t))));
} else {
tmp = (l * l) / (t * (t * (t * (k_m * k_m))));
}
return tmp;
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
real(8) :: tmp
if (k_m <= 5.5d+185) then
tmp = l * (l / ((k_m * t) * (t * (k_m * t))))
else
tmp = (l * l) / (t * (t * (t * (k_m * k_m))))
end if
code = tmp
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
double tmp;
if (k_m <= 5.5e+185) {
tmp = l * (l / ((k_m * t) * (t * (k_m * t))));
} else {
tmp = (l * l) / (t * (t * (t * (k_m * k_m))));
}
return tmp;
}
k_m = math.fabs(k) def code(t, l, k_m): tmp = 0 if k_m <= 5.5e+185: tmp = l * (l / ((k_m * t) * (t * (k_m * t)))) else: tmp = (l * l) / (t * (t * (t * (k_m * k_m)))) return tmp
k_m = abs(k) function code(t, l, k_m) tmp = 0.0 if (k_m <= 5.5e+185) tmp = Float64(l * Float64(l / Float64(Float64(k_m * t) * Float64(t * Float64(k_m * t))))); else tmp = Float64(Float64(l * l) / Float64(t * Float64(t * Float64(t * Float64(k_m * k_m))))); end return tmp end
k_m = abs(k); function tmp_2 = code(t, l, k_m) tmp = 0.0; if (k_m <= 5.5e+185) tmp = l * (l / ((k_m * t) * (t * (k_m * t)))); else tmp = (l * l) / (t * (t * (t * (k_m * k_m)))); end tmp_2 = tmp; end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := If[LessEqual[k$95$m, 5.5e+185], N[(l * N[(l / N[(N[(k$95$m * t), $MachinePrecision] * N[(t * N[(k$95$m * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(l * l), $MachinePrecision] / N[(t * N[(t * N[(t * N[(k$95$m * k$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]
\begin{array}{l}
k_m = \left|k\right|
\\
\begin{array}{l}
\mathbf{if}\;k\_m \leq 5.5 \cdot 10^{+185}:\\
\;\;\;\;\ell \cdot \frac{\ell}{\left(k\_m \cdot t\right) \cdot \left(t \cdot \left(k\_m \cdot t\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\ell \cdot \ell}{t \cdot \left(t \cdot \left(t \cdot \left(k\_m \cdot k\_m\right)\right)\right)}\\
\end{array}
\end{array}
if k < 5.4999999999999996e185Initial program 62.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-*.f6458.6
Simplified58.6%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6465.7
Applied egg-rr65.7%
*-commutativeN/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6469.6
Applied egg-rr69.6%
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f6473.1
Applied egg-rr73.1%
if 5.4999999999999996e185 < k Initial program 48.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-*.f6448.2
Simplified48.2%
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6468.5
Applied egg-rr68.5%
Final simplification72.6%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (* (/ l t) (/ l (* t (* k_m (* k_m t))))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
return (l / t) * (l / (t * (k_m * (k_m * t))));
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
code = (l / t) * (l / (t * (k_m * (k_m * t))))
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
return (l / t) * (l / (t * (k_m * (k_m * t))));
}
k_m = math.fabs(k) def code(t, l, k_m): return (l / t) * (l / (t * (k_m * (k_m * t))))
k_m = abs(k) function code(t, l, k_m) return Float64(Float64(l / t) * Float64(l / Float64(t * Float64(k_m * Float64(k_m * t))))) end
k_m = abs(k); function tmp = code(t, l, k_m) tmp = (l / t) * (l / (t * (k_m * (k_m * t)))); end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := N[(N[(l / t), $MachinePrecision] * N[(l / N[(t * N[(k$95$m * N[(k$95$m * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
\frac{\ell}{t} \cdot \frac{\ell}{t \cdot \left(k\_m \cdot \left(k\_m \cdot t\right)\right)}
\end{array}
Initial program 61.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-*.f6457.6
Simplified57.6%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6464.5
Applied egg-rr64.5%
associate-*l/N/A
associate-*l*N/A
times-fracN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
/-lowering-/.f64N/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6472.8
Applied egg-rr72.8%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (* l (/ l (* t (* t (* k_m (* k_m t)))))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
return l * (l / (t * (t * (k_m * (k_m * t)))));
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
code = l * (l / (t * (t * (k_m * (k_m * t)))))
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
return l * (l / (t * (t * (k_m * (k_m * t)))));
}
k_m = math.fabs(k) def code(t, l, k_m): return l * (l / (t * (t * (k_m * (k_m * t)))))
k_m = abs(k) function code(t, l, k_m) return Float64(l * Float64(l / Float64(t * Float64(t * Float64(k_m * Float64(k_m * t)))))) end
k_m = abs(k); function tmp = code(t, l, k_m) tmp = l * (l / (t * (t * (k_m * (k_m * t))))); end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := N[(l * N[(l / N[(t * N[(t * N[(k$95$m * N[(k$95$m * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
\ell \cdot \frac{\ell}{t \cdot \left(t \cdot \left(k\_m \cdot \left(k\_m \cdot t\right)\right)\right)}
\end{array}
Initial program 61.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-*.f6457.6
Simplified57.6%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6464.5
Applied egg-rr64.5%
associate-*l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
associate-*r*N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f6470.8
Applied egg-rr70.8%
Final simplification70.8%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (* l (/ l (* (* k_m t) (* t (* k_m t))))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
return l * (l / ((k_m * t) * (t * (k_m * t))));
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
code = l * (l / ((k_m * t) * (t * (k_m * t))))
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
return l * (l / ((k_m * t) * (t * (k_m * t))));
}
k_m = math.fabs(k) def code(t, l, k_m): return l * (l / ((k_m * t) * (t * (k_m * t))))
k_m = abs(k) function code(t, l, k_m) return Float64(l * Float64(l / Float64(Float64(k_m * t) * Float64(t * Float64(k_m * t))))) end
k_m = abs(k); function tmp = code(t, l, k_m) tmp = l * (l / ((k_m * t) * (t * (k_m * t)))); end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := N[(l * N[(l / N[(N[(k$95$m * t), $MachinePrecision] * N[(t * N[(k$95$m * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
\ell \cdot \frac{\ell}{\left(k\_m \cdot t\right) \cdot \left(t \cdot \left(k\_m \cdot t\right)\right)}
\end{array}
Initial program 61.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-*.f6457.6
Simplified57.6%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6464.5
Applied egg-rr64.5%
*-commutativeN/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6467.5
Applied egg-rr67.5%
associate-*r*N/A
*-lowering-*.f64N/A
*-lowering-*.f6470.6
Applied egg-rr70.6%
Final simplification70.6%
k_m = (fabs.f64 k) (FPCore (t l k_m) :precision binary64 (* l (/ l (* (* k_m t) (* k_m (* t t))))))
k_m = fabs(k);
double code(double t, double l, double k_m) {
return l * (l / ((k_m * t) * (k_m * (t * t))));
}
k_m = abs(k)
real(8) function code(t, l, k_m)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k_m
code = l * (l / ((k_m * t) * (k_m * (t * t))))
end function
k_m = Math.abs(k);
public static double code(double t, double l, double k_m) {
return l * (l / ((k_m * t) * (k_m * (t * t))));
}
k_m = math.fabs(k) def code(t, l, k_m): return l * (l / ((k_m * t) * (k_m * (t * t))))
k_m = abs(k) function code(t, l, k_m) return Float64(l * Float64(l / Float64(Float64(k_m * t) * Float64(k_m * Float64(t * t))))) end
k_m = abs(k); function tmp = code(t, l, k_m) tmp = l * (l / ((k_m * t) * (k_m * (t * t)))); end
k_m = N[Abs[k], $MachinePrecision] code[t_, l_, k$95$m_] := N[(l * N[(l / N[(N[(k$95$m * t), $MachinePrecision] * N[(k$95$m * N[(t * t), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
k_m = \left|k\right|
\\
\ell \cdot \frac{\ell}{\left(k\_m \cdot t\right) \cdot \left(k\_m \cdot \left(t \cdot t\right)\right)}
\end{array}
Initial program 61.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-*.f6457.6
Simplified57.6%
associate-/l*N/A
*-commutativeN/A
*-lowering-*.f64N/A
/-lowering-/.f64N/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6464.5
Applied egg-rr64.5%
*-commutativeN/A
associate-*r*N/A
associate-*l*N/A
*-lowering-*.f64N/A
*-commutativeN/A
*-lowering-*.f64N/A
*-lowering-*.f64N/A
*-lowering-*.f6467.5
Applied egg-rr67.5%
Final simplification67.5%
herbie shell --seed 2024196
(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))))