
(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 23 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (t l k) :precision binary64 (/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (+ (+ 1.0 (pow (/ k t) 2.0)) 1.0))))
double code(double t, double l, double k) {
return 2.0 / ((((pow(t, 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + pow((k / t), 2.0)) + 1.0));
}
real(8) function code(t, l, k)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k
code = 2.0d0 / (((((t ** 3.0d0) / (l * l)) * sin(k)) * tan(k)) * ((1.0d0 + ((k / t) ** 2.0d0)) + 1.0d0))
end function
public static double code(double t, double l, double k) {
return 2.0 / ((((Math.pow(t, 3.0) / (l * l)) * Math.sin(k)) * Math.tan(k)) * ((1.0 + Math.pow((k / t), 2.0)) + 1.0));
}
def code(t, l, k): return 2.0 / ((((math.pow(t, 3.0) / (l * l)) * math.sin(k)) * math.tan(k)) * ((1.0 + math.pow((k / t), 2.0)) + 1.0))
function code(t, l, k) return Float64(2.0 / Float64(Float64(Float64(Float64((t ^ 3.0) / Float64(l * l)) * sin(k)) * tan(k)) * Float64(Float64(1.0 + (Float64(k / t) ^ 2.0)) + 1.0))) end
function tmp = code(t, l, k) tmp = 2.0 / (((((t ^ 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + ((k / t) ^ 2.0)) + 1.0)); end
code[t_, l_, k_] := N[(2.0 / N[(N[(N[(N[(N[Power[t, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[(1.0 + N[Power[N[(k / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}
\end{array}
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 1.25e-18)
(/ 2.0 (/ (* (* (tan k) (sin k)) (* k (* (/ k l) t_m))) l))
(/
(/ (* (/ 2.0 t_m) l) (* (+ (pow (/ k t_m) 2.0) 2.0) (sin k)))
(* (* (tan k) t_m) (/ t_m l))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 1.25e-18) {
tmp = 2.0 / (((tan(k) * sin(k)) * (k * ((k / l) * t_m))) / l);
} else {
tmp = (((2.0 / t_m) * l) / ((pow((k / t_m), 2.0) + 2.0) * sin(k))) / ((tan(k) * t_m) * (t_m / l));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (t_m <= 1.25d-18) then
tmp = 2.0d0 / (((tan(k) * sin(k)) * (k * ((k / l) * t_m))) / l)
else
tmp = (((2.0d0 / t_m) * l) / ((((k / t_m) ** 2.0d0) + 2.0d0) * sin(k))) / ((tan(k) * t_m) * (t_m / l))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 1.25e-18) {
tmp = 2.0 / (((Math.tan(k) * Math.sin(k)) * (k * ((k / l) * t_m))) / l);
} else {
tmp = (((2.0 / t_m) * l) / ((Math.pow((k / t_m), 2.0) + 2.0) * Math.sin(k))) / ((Math.tan(k) * t_m) * (t_m / l));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if t_m <= 1.25e-18: tmp = 2.0 / (((math.tan(k) * math.sin(k)) * (k * ((k / l) * t_m))) / l) else: tmp = (((2.0 / t_m) * l) / ((math.pow((k / t_m), 2.0) + 2.0) * math.sin(k))) / ((math.tan(k) * t_m) * (t_m / l)) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 1.25e-18) tmp = Float64(2.0 / Float64(Float64(Float64(tan(k) * sin(k)) * Float64(k * Float64(Float64(k / l) * t_m))) / l)); else tmp = Float64(Float64(Float64(Float64(2.0 / t_m) * l) / Float64(Float64((Float64(k / t_m) ^ 2.0) + 2.0) * sin(k))) / Float64(Float64(tan(k) * t_m) * Float64(t_m / l))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (t_m <= 1.25e-18) tmp = 2.0 / (((tan(k) * sin(k)) * (k * ((k / l) * t_m))) / l); else tmp = (((2.0 / t_m) * l) / ((((k / t_m) ^ 2.0) + 2.0) * sin(k))) / ((tan(k) * t_m) * (t_m / l)); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 1.25e-18], N[(2.0 / N[(N[(N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[(k * N[(N[(k / l), $MachinePrecision] * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(N[(N[(N[(2.0 / t$95$m), $MachinePrecision] * l), $MachinePrecision] / N[(N[(N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision] + 2.0), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(N[Tan[k], $MachinePrecision] * t$95$m), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 1.25 \cdot 10^{-18}:\\
\;\;\;\;\frac{2}{\frac{\left(\tan k \cdot \sin k\right) \cdot \left(k \cdot \left(\frac{k}{\ell} \cdot t\_m\right)\right)}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{2}{t\_m} \cdot \ell}{\left({\left(\frac{k}{t\_m}\right)}^{2} + 2\right) \cdot \sin k}}{\left(\tan k \cdot t\_m\right) \cdot \frac{t\_m}{\ell}}\\
\end{array}
\end{array}
if t < 1.25000000000000009e-18Initial program 56.8%
Taylor expanded in t around 0
associate-/l*N/A
times-fracN/A
associate-*r*N/A
lower-*.f64N/A
associate-*r/N/A
unpow2N/A
associate-/r*N/A
lower-/.f64N/A
*-commutativeN/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-sin.f64N/A
lower-cos.f6479.4
Applied rewrites79.4%
Applied rewrites78.2%
Applied rewrites83.1%
if 1.25000000000000009e-18 < t Initial program 73.7%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites75.9%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites91.0%
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lower-/.f64N/A
Applied rewrites96.8%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 5.8e-12)
(/ 2.0 (/ (* (* (tan k) (sin k)) (* k (* (/ k l) t_m))) l))
(/
2.0
(*
(/ t_m l)
(*
(* (* (tan k) (/ t_m l)) t_m)
(* (sin k) (+ (pow (/ k t_m) 2.0) 2.0))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 5.8e-12) {
tmp = 2.0 / (((tan(k) * sin(k)) * (k * ((k / l) * t_m))) / l);
} else {
tmp = 2.0 / ((t_m / l) * (((tan(k) * (t_m / l)) * t_m) * (sin(k) * (pow((k / t_m), 2.0) + 2.0))));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (t_m <= 5.8d-12) then
tmp = 2.0d0 / (((tan(k) * sin(k)) * (k * ((k / l) * t_m))) / l)
else
tmp = 2.0d0 / ((t_m / l) * (((tan(k) * (t_m / l)) * t_m) * (sin(k) * (((k / t_m) ** 2.0d0) + 2.0d0))))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 5.8e-12) {
tmp = 2.0 / (((Math.tan(k) * Math.sin(k)) * (k * ((k / l) * t_m))) / l);
} else {
tmp = 2.0 / ((t_m / l) * (((Math.tan(k) * (t_m / l)) * t_m) * (Math.sin(k) * (Math.pow((k / t_m), 2.0) + 2.0))));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if t_m <= 5.8e-12: tmp = 2.0 / (((math.tan(k) * math.sin(k)) * (k * ((k / l) * t_m))) / l) else: tmp = 2.0 / ((t_m / l) * (((math.tan(k) * (t_m / l)) * t_m) * (math.sin(k) * (math.pow((k / t_m), 2.0) + 2.0)))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 5.8e-12) tmp = Float64(2.0 / Float64(Float64(Float64(tan(k) * sin(k)) * Float64(k * Float64(Float64(k / l) * t_m))) / l)); else tmp = Float64(2.0 / Float64(Float64(t_m / l) * Float64(Float64(Float64(tan(k) * Float64(t_m / l)) * t_m) * Float64(sin(k) * Float64((Float64(k / t_m) ^ 2.0) + 2.0))))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (t_m <= 5.8e-12) tmp = 2.0 / (((tan(k) * sin(k)) * (k * ((k / l) * t_m))) / l); else tmp = 2.0 / ((t_m / l) * (((tan(k) * (t_m / l)) * t_m) * (sin(k) * (((k / t_m) ^ 2.0) + 2.0)))); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 5.8e-12], N[(2.0 / N[(N[(N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[(k * N[(N[(k / l), $MachinePrecision] * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(N[(N[Tan[k], $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision] * t$95$m), $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[(N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 5.8 \cdot 10^{-12}:\\
\;\;\;\;\frac{2}{\frac{\left(\tan k \cdot \sin k\right) \cdot \left(k \cdot \left(\frac{k}{\ell} \cdot t\_m\right)\right)}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{t\_m}{\ell} \cdot \left(\left(\left(\tan k \cdot \frac{t\_m}{\ell}\right) \cdot t\_m\right) \cdot \left(\sin k \cdot \left({\left(\frac{k}{t\_m}\right)}^{2} + 2\right)\right)\right)}\\
\end{array}
\end{array}
if t < 5.8000000000000003e-12Initial program 57.2%
Taylor expanded in t around 0
associate-/l*N/A
times-fracN/A
associate-*r*N/A
lower-*.f64N/A
associate-*r/N/A
unpow2N/A
associate-/r*N/A
lower-/.f64N/A
*-commutativeN/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-sin.f64N/A
lower-cos.f6479.5
Applied rewrites79.5%
Applied rewrites78.3%
Applied rewrites83.1%
if 5.8000000000000003e-12 < t Initial program 74.2%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites75.1%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites91.7%
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6495.0
Applied rewrites95.0%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 1.5e-83)
(/ (/ (* (/ 2.0 t_m) l) (* 2.0 k)) (* (* (tan k) t_m) (/ t_m l)))
(if (<= k 0.0275)
(/
2.0
(*
(/ t_m l)
(*
(fma
(* (/ (fma 0.3333333333333333 (* t_m t_m) 1.0) l) k)
k
(* (/ (* t_m t_m) l) 2.0))
(* k k))))
(if (<= k 1.4e+154)
(/ 2.0 (* (* (/ (* k k) l) t_m) (/ (* (tan k) (sin k)) l)))
(/ 2.0 (* (* (/ (* (* (sin k) (tan k)) (/ t_m l)) l) k) k)))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 1.5e-83) {
tmp = (((2.0 / t_m) * l) / (2.0 * k)) / ((tan(k) * t_m) * (t_m / l));
} else if (k <= 0.0275) {
tmp = 2.0 / ((t_m / l) * (fma(((fma(0.3333333333333333, (t_m * t_m), 1.0) / l) * k), k, (((t_m * t_m) / l) * 2.0)) * (k * k)));
} else if (k <= 1.4e+154) {
tmp = 2.0 / ((((k * k) / l) * t_m) * ((tan(k) * sin(k)) / l));
} else {
tmp = 2.0 / (((((sin(k) * tan(k)) * (t_m / l)) / l) * k) * k);
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 1.5e-83) tmp = Float64(Float64(Float64(Float64(2.0 / t_m) * l) / Float64(2.0 * k)) / Float64(Float64(tan(k) * t_m) * Float64(t_m / l))); elseif (k <= 0.0275) tmp = Float64(2.0 / Float64(Float64(t_m / l) * Float64(fma(Float64(Float64(fma(0.3333333333333333, Float64(t_m * t_m), 1.0) / l) * k), k, Float64(Float64(Float64(t_m * t_m) / l) * 2.0)) * Float64(k * k)))); elseif (k <= 1.4e+154) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(k * k) / l) * t_m) * Float64(Float64(tan(k) * sin(k)) / l))); else tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(sin(k) * tan(k)) * Float64(t_m / l)) / l) * k) * k)); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 1.5e-83], N[(N[(N[(N[(2.0 / t$95$m), $MachinePrecision] * l), $MachinePrecision] / N[(2.0 * k), $MachinePrecision]), $MachinePrecision] / N[(N[(N[Tan[k], $MachinePrecision] * t$95$m), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 0.0275], N[(2.0 / N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(N[(N[(N[(0.3333333333333333 * N[(t$95$m * t$95$m), $MachinePrecision] + 1.0), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k + N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] / l), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision] * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 1.4e+154], N[(2.0 / N[(N[(N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision] * t$95$m), $MachinePrecision] * N[(N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[(N[(N[Sin[k], $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 1.5 \cdot 10^{-83}:\\
\;\;\;\;\frac{\frac{\frac{2}{t\_m} \cdot \ell}{2 \cdot k}}{\left(\tan k \cdot t\_m\right) \cdot \frac{t\_m}{\ell}}\\
\mathbf{elif}\;k \leq 0.0275:\\
\;\;\;\;\frac{2}{\frac{t\_m}{\ell} \cdot \left(\mathsf{fma}\left(\frac{\mathsf{fma}\left(0.3333333333333333, t\_m \cdot t\_m, 1\right)}{\ell} \cdot k, k, \frac{t\_m \cdot t\_m}{\ell} \cdot 2\right) \cdot \left(k \cdot k\right)\right)}\\
\mathbf{elif}\;k \leq 1.4 \cdot 10^{+154}:\\
\;\;\;\;\frac{2}{\left(\frac{k \cdot k}{\ell} \cdot t\_m\right) \cdot \frac{\tan k \cdot \sin k}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\frac{\left(\sin k \cdot \tan k\right) \cdot \frac{t\_m}{\ell}}{\ell} \cdot k\right) \cdot k}\\
\end{array}
\end{array}
if k < 1.50000000000000005e-83Initial program 62.7%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites65.1%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites79.4%
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lower-/.f64N/A
Applied rewrites85.6%
Taylor expanded in k around 0
lower-*.f6481.3
Applied rewrites81.3%
if 1.50000000000000005e-83 < k < 0.0275000000000000001Initial program 59.1%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites78.5%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites82.2%
Taylor expanded in k around 0
*-commutativeN/A
lower-*.f64N/A
Applied rewrites99.6%
if 0.0275000000000000001 < k < 1.4e154Initial program 57.2%
Taylor expanded in t around 0
associate-/l*N/A
times-fracN/A
associate-*r*N/A
lower-*.f64N/A
associate-*r/N/A
unpow2N/A
associate-/r*N/A
lower-/.f64N/A
*-commutativeN/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-sin.f64N/A
lower-cos.f6481.5
Applied rewrites81.5%
Applied rewrites81.7%
if 1.4e154 < k Initial program 58.2%
Taylor expanded in k around inf
*-commutativeN/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites84.5%
Taylor expanded in t around 0
Applied rewrites82.0%
Applied rewrites84.6%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 1.5e-83)
(/ (/ (* (/ 2.0 t_m) l) (* 2.0 k)) (* (* (tan k) t_m) (/ t_m l)))
(if (<= k 0.0275)
(/
2.0
(*
(/ t_m l)
(*
(fma
(* (/ (fma 0.3333333333333333 (* t_m t_m) 1.0) l) k)
k
(* (/ (* t_m t_m) l) 2.0))
(* k k))))
(if (<= k 1.4e+154)
(/ 2.0 (* (* (/ (* k k) l) t_m) (* (/ (sin k) l) (tan k))))
(/ 2.0 (* (* (/ (* (* (sin k) (tan k)) (/ t_m l)) l) k) k)))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 1.5e-83) {
tmp = (((2.0 / t_m) * l) / (2.0 * k)) / ((tan(k) * t_m) * (t_m / l));
} else if (k <= 0.0275) {
tmp = 2.0 / ((t_m / l) * (fma(((fma(0.3333333333333333, (t_m * t_m), 1.0) / l) * k), k, (((t_m * t_m) / l) * 2.0)) * (k * k)));
} else if (k <= 1.4e+154) {
tmp = 2.0 / ((((k * k) / l) * t_m) * ((sin(k) / l) * tan(k)));
} else {
tmp = 2.0 / (((((sin(k) * tan(k)) * (t_m / l)) / l) * k) * k);
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 1.5e-83) tmp = Float64(Float64(Float64(Float64(2.0 / t_m) * l) / Float64(2.0 * k)) / Float64(Float64(tan(k) * t_m) * Float64(t_m / l))); elseif (k <= 0.0275) tmp = Float64(2.0 / Float64(Float64(t_m / l) * Float64(fma(Float64(Float64(fma(0.3333333333333333, Float64(t_m * t_m), 1.0) / l) * k), k, Float64(Float64(Float64(t_m * t_m) / l) * 2.0)) * Float64(k * k)))); elseif (k <= 1.4e+154) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(k * k) / l) * t_m) * Float64(Float64(sin(k) / l) * tan(k)))); else tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(sin(k) * tan(k)) * Float64(t_m / l)) / l) * k) * k)); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 1.5e-83], N[(N[(N[(N[(2.0 / t$95$m), $MachinePrecision] * l), $MachinePrecision] / N[(2.0 * k), $MachinePrecision]), $MachinePrecision] / N[(N[(N[Tan[k], $MachinePrecision] * t$95$m), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 0.0275], N[(2.0 / N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(N[(N[(N[(0.3333333333333333 * N[(t$95$m * t$95$m), $MachinePrecision] + 1.0), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k + N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] / l), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision] * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 1.4e+154], N[(2.0 / N[(N[(N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision] * t$95$m), $MachinePrecision] * N[(N[(N[Sin[k], $MachinePrecision] / l), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[(N[(N[Sin[k], $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 1.5 \cdot 10^{-83}:\\
\;\;\;\;\frac{\frac{\frac{2}{t\_m} \cdot \ell}{2 \cdot k}}{\left(\tan k \cdot t\_m\right) \cdot \frac{t\_m}{\ell}}\\
\mathbf{elif}\;k \leq 0.0275:\\
\;\;\;\;\frac{2}{\frac{t\_m}{\ell} \cdot \left(\mathsf{fma}\left(\frac{\mathsf{fma}\left(0.3333333333333333, t\_m \cdot t\_m, 1\right)}{\ell} \cdot k, k, \frac{t\_m \cdot t\_m}{\ell} \cdot 2\right) \cdot \left(k \cdot k\right)\right)}\\
\mathbf{elif}\;k \leq 1.4 \cdot 10^{+154}:\\
\;\;\;\;\frac{2}{\left(\frac{k \cdot k}{\ell} \cdot t\_m\right) \cdot \left(\frac{\sin k}{\ell} \cdot \tan k\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\frac{\left(\sin k \cdot \tan k\right) \cdot \frac{t\_m}{\ell}}{\ell} \cdot k\right) \cdot k}\\
\end{array}
\end{array}
if k < 1.50000000000000005e-83Initial program 62.7%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites65.1%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites79.4%
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lower-/.f64N/A
Applied rewrites85.6%
Taylor expanded in k around 0
lower-*.f6481.3
Applied rewrites81.3%
if 1.50000000000000005e-83 < k < 0.0275000000000000001Initial program 59.1%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites78.5%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites82.2%
Taylor expanded in k around 0
*-commutativeN/A
lower-*.f64N/A
Applied rewrites99.6%
if 0.0275000000000000001 < k < 1.4e154Initial program 57.2%
Taylor expanded in t around 0
associate-/l*N/A
times-fracN/A
associate-*r*N/A
lower-*.f64N/A
associate-*r/N/A
unpow2N/A
associate-/r*N/A
lower-/.f64N/A
*-commutativeN/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-sin.f64N/A
lower-cos.f6481.5
Applied rewrites81.5%
Applied rewrites81.6%
Applied rewrites81.6%
if 1.4e154 < k Initial program 58.2%
Taylor expanded in k around inf
*-commutativeN/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites84.5%
Taylor expanded in t around 0
Applied rewrites82.0%
Applied rewrites84.6%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 1.5e-83)
(/ (/ (* (/ 2.0 t_m) l) (* 2.0 k)) (* (* (tan k) t_m) (/ t_m l)))
(if (<= k 0.0275)
(/
2.0
(*
(/ t_m l)
(*
(fma
(* (/ (fma 0.3333333333333333 (* t_m t_m) 1.0) l) k)
k
(* (/ (* t_m t_m) l) 2.0))
(* k k))))
(/ 2.0 (/ (* (* (tan k) (sin k)) (* (* k t_m) (/ k l))) l))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 1.5e-83) {
tmp = (((2.0 / t_m) * l) / (2.0 * k)) / ((tan(k) * t_m) * (t_m / l));
} else if (k <= 0.0275) {
tmp = 2.0 / ((t_m / l) * (fma(((fma(0.3333333333333333, (t_m * t_m), 1.0) / l) * k), k, (((t_m * t_m) / l) * 2.0)) * (k * k)));
} else {
tmp = 2.0 / (((tan(k) * sin(k)) * ((k * t_m) * (k / l))) / l);
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 1.5e-83) tmp = Float64(Float64(Float64(Float64(2.0 / t_m) * l) / Float64(2.0 * k)) / Float64(Float64(tan(k) * t_m) * Float64(t_m / l))); elseif (k <= 0.0275) tmp = Float64(2.0 / Float64(Float64(t_m / l) * Float64(fma(Float64(Float64(fma(0.3333333333333333, Float64(t_m * t_m), 1.0) / l) * k), k, Float64(Float64(Float64(t_m * t_m) / l) * 2.0)) * Float64(k * k)))); else tmp = Float64(2.0 / Float64(Float64(Float64(tan(k) * sin(k)) * Float64(Float64(k * t_m) * Float64(k / l))) / l)); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 1.5e-83], N[(N[(N[(N[(2.0 / t$95$m), $MachinePrecision] * l), $MachinePrecision] / N[(2.0 * k), $MachinePrecision]), $MachinePrecision] / N[(N[(N[Tan[k], $MachinePrecision] * t$95$m), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 0.0275], N[(2.0 / N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(N[(N[(N[(0.3333333333333333 * N[(t$95$m * t$95$m), $MachinePrecision] + 1.0), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k + N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] / l), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision] * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[(N[(k * t$95$m), $MachinePrecision] * N[(k / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 1.5 \cdot 10^{-83}:\\
\;\;\;\;\frac{\frac{\frac{2}{t\_m} \cdot \ell}{2 \cdot k}}{\left(\tan k \cdot t\_m\right) \cdot \frac{t\_m}{\ell}}\\
\mathbf{elif}\;k \leq 0.0275:\\
\;\;\;\;\frac{2}{\frac{t\_m}{\ell} \cdot \left(\mathsf{fma}\left(\frac{\mathsf{fma}\left(0.3333333333333333, t\_m \cdot t\_m, 1\right)}{\ell} \cdot k, k, \frac{t\_m \cdot t\_m}{\ell} \cdot 2\right) \cdot \left(k \cdot k\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{\left(\tan k \cdot \sin k\right) \cdot \left(\left(k \cdot t\_m\right) \cdot \frac{k}{\ell}\right)}{\ell}}\\
\end{array}
\end{array}
if k < 1.50000000000000005e-83Initial program 62.7%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites65.1%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites79.4%
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lower-/.f64N/A
Applied rewrites85.6%
Taylor expanded in k around 0
lower-*.f6481.3
Applied rewrites81.3%
if 1.50000000000000005e-83 < k < 0.0275000000000000001Initial program 59.1%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites78.5%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites82.2%
Taylor expanded in k around 0
*-commutativeN/A
lower-*.f64N/A
Applied rewrites99.6%
if 0.0275000000000000001 < k Initial program 57.7%
Taylor expanded in t around 0
associate-/l*N/A
times-fracN/A
associate-*r*N/A
lower-*.f64N/A
associate-*r/N/A
unpow2N/A
associate-/r*N/A
lower-/.f64N/A
*-commutativeN/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-sin.f64N/A
lower-cos.f6476.5
Applied rewrites76.5%
Applied rewrites76.6%
Applied rewrites87.5%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 1.5e-83)
(/ (/ (* (/ 2.0 t_m) l) (* 2.0 k)) (* (* (tan k) t_m) (/ t_m l)))
(if (<= k 0.0275)
(/
2.0
(*
(/ t_m l)
(*
(fma
(* (/ (fma 0.3333333333333333 (* t_m t_m) 1.0) l) k)
k
(* (/ (* t_m t_m) l) 2.0))
(* k k))))
(/ 2.0 (/ (* (* (tan k) (sin k)) (* k (* (/ k l) t_m))) l))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 1.5e-83) {
tmp = (((2.0 / t_m) * l) / (2.0 * k)) / ((tan(k) * t_m) * (t_m / l));
} else if (k <= 0.0275) {
tmp = 2.0 / ((t_m / l) * (fma(((fma(0.3333333333333333, (t_m * t_m), 1.0) / l) * k), k, (((t_m * t_m) / l) * 2.0)) * (k * k)));
} else {
tmp = 2.0 / (((tan(k) * sin(k)) * (k * ((k / l) * t_m))) / l);
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 1.5e-83) tmp = Float64(Float64(Float64(Float64(2.0 / t_m) * l) / Float64(2.0 * k)) / Float64(Float64(tan(k) * t_m) * Float64(t_m / l))); elseif (k <= 0.0275) tmp = Float64(2.0 / Float64(Float64(t_m / l) * Float64(fma(Float64(Float64(fma(0.3333333333333333, Float64(t_m * t_m), 1.0) / l) * k), k, Float64(Float64(Float64(t_m * t_m) / l) * 2.0)) * Float64(k * k)))); else tmp = Float64(2.0 / Float64(Float64(Float64(tan(k) * sin(k)) * Float64(k * Float64(Float64(k / l) * t_m))) / l)); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 1.5e-83], N[(N[(N[(N[(2.0 / t$95$m), $MachinePrecision] * l), $MachinePrecision] / N[(2.0 * k), $MachinePrecision]), $MachinePrecision] / N[(N[(N[Tan[k], $MachinePrecision] * t$95$m), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 0.0275], N[(2.0 / N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(N[(N[(N[(0.3333333333333333 * N[(t$95$m * t$95$m), $MachinePrecision] + 1.0), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k + N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] / l), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision] * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[(k * N[(N[(k / l), $MachinePrecision] * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 1.5 \cdot 10^{-83}:\\
\;\;\;\;\frac{\frac{\frac{2}{t\_m} \cdot \ell}{2 \cdot k}}{\left(\tan k \cdot t\_m\right) \cdot \frac{t\_m}{\ell}}\\
\mathbf{elif}\;k \leq 0.0275:\\
\;\;\;\;\frac{2}{\frac{t\_m}{\ell} \cdot \left(\mathsf{fma}\left(\frac{\mathsf{fma}\left(0.3333333333333333, t\_m \cdot t\_m, 1\right)}{\ell} \cdot k, k, \frac{t\_m \cdot t\_m}{\ell} \cdot 2\right) \cdot \left(k \cdot k\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{\left(\tan k \cdot \sin k\right) \cdot \left(k \cdot \left(\frac{k}{\ell} \cdot t\_m\right)\right)}{\ell}}\\
\end{array}
\end{array}
if k < 1.50000000000000005e-83Initial program 62.7%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites65.1%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites79.4%
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lower-/.f64N/A
Applied rewrites85.6%
Taylor expanded in k around 0
lower-*.f6481.3
Applied rewrites81.3%
if 1.50000000000000005e-83 < k < 0.0275000000000000001Initial program 59.1%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites78.5%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites82.2%
Taylor expanded in k around 0
*-commutativeN/A
lower-*.f64N/A
Applied rewrites99.6%
if 0.0275000000000000001 < k Initial program 57.7%
Taylor expanded in t around 0
associate-/l*N/A
times-fracN/A
associate-*r*N/A
lower-*.f64N/A
associate-*r/N/A
unpow2N/A
associate-/r*N/A
lower-/.f64N/A
*-commutativeN/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-sin.f64N/A
lower-cos.f6476.5
Applied rewrites76.5%
Applied rewrites76.6%
Applied rewrites87.5%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 1.5e-83)
(/ (/ (* (/ 2.0 t_m) l) (* 2.0 k)) (* (* (tan k) t_m) (/ t_m l)))
(if (<= k 0.0275)
(/
2.0
(*
(/ t_m l)
(*
(fma
(* (/ (fma 0.3333333333333333 (* t_m t_m) 1.0) l) k)
k
(* (/ (* t_m t_m) l) 2.0))
(* k k))))
(/ 2.0 (* (* (/ (* (* (sin k) (tan k)) (/ t_m l)) l) k) k))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 1.5e-83) {
tmp = (((2.0 / t_m) * l) / (2.0 * k)) / ((tan(k) * t_m) * (t_m / l));
} else if (k <= 0.0275) {
tmp = 2.0 / ((t_m / l) * (fma(((fma(0.3333333333333333, (t_m * t_m), 1.0) / l) * k), k, (((t_m * t_m) / l) * 2.0)) * (k * k)));
} else {
tmp = 2.0 / (((((sin(k) * tan(k)) * (t_m / l)) / l) * k) * k);
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 1.5e-83) tmp = Float64(Float64(Float64(Float64(2.0 / t_m) * l) / Float64(2.0 * k)) / Float64(Float64(tan(k) * t_m) * Float64(t_m / l))); elseif (k <= 0.0275) tmp = Float64(2.0 / Float64(Float64(t_m / l) * Float64(fma(Float64(Float64(fma(0.3333333333333333, Float64(t_m * t_m), 1.0) / l) * k), k, Float64(Float64(Float64(t_m * t_m) / l) * 2.0)) * Float64(k * k)))); else tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(sin(k) * tan(k)) * Float64(t_m / l)) / l) * k) * k)); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 1.5e-83], N[(N[(N[(N[(2.0 / t$95$m), $MachinePrecision] * l), $MachinePrecision] / N[(2.0 * k), $MachinePrecision]), $MachinePrecision] / N[(N[(N[Tan[k], $MachinePrecision] * t$95$m), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 0.0275], N[(2.0 / N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(N[(N[(N[(0.3333333333333333 * N[(t$95$m * t$95$m), $MachinePrecision] + 1.0), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k + N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] / l), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision] * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[(N[(N[Sin[k], $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 1.5 \cdot 10^{-83}:\\
\;\;\;\;\frac{\frac{\frac{2}{t\_m} \cdot \ell}{2 \cdot k}}{\left(\tan k \cdot t\_m\right) \cdot \frac{t\_m}{\ell}}\\
\mathbf{elif}\;k \leq 0.0275:\\
\;\;\;\;\frac{2}{\frac{t\_m}{\ell} \cdot \left(\mathsf{fma}\left(\frac{\mathsf{fma}\left(0.3333333333333333, t\_m \cdot t\_m, 1\right)}{\ell} \cdot k, k, \frac{t\_m \cdot t\_m}{\ell} \cdot 2\right) \cdot \left(k \cdot k\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\frac{\left(\sin k \cdot \tan k\right) \cdot \frac{t\_m}{\ell}}{\ell} \cdot k\right) \cdot k}\\
\end{array}
\end{array}
if k < 1.50000000000000005e-83Initial program 62.7%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites65.1%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites79.4%
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lower-/.f64N/A
Applied rewrites85.6%
Taylor expanded in k around 0
lower-*.f6481.3
Applied rewrites81.3%
if 1.50000000000000005e-83 < k < 0.0275000000000000001Initial program 59.1%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites78.5%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites82.2%
Taylor expanded in k around 0
*-commutativeN/A
lower-*.f64N/A
Applied rewrites99.6%
if 0.0275000000000000001 < k Initial program 57.7%
Taylor expanded in k around inf
*-commutativeN/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites78.2%
Taylor expanded in t around 0
Applied rewrites75.5%
Applied rewrites81.1%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 1.5e-83)
(/ (/ (* (/ 2.0 t_m) l) (* 2.0 k)) (* (* (tan k) t_m) (/ t_m l)))
(if (<= k 0.029)
(/
2.0
(*
(/ t_m l)
(*
(fma
(* (/ (fma 0.3333333333333333 (* t_m t_m) 1.0) l) k)
k
(* (/ (* t_m t_m) l) 2.0))
(* k k))))
(/ 2.0 (* (* (* (/ t_m (* l l)) k) k) (* (tan k) (sin k))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 1.5e-83) {
tmp = (((2.0 / t_m) * l) / (2.0 * k)) / ((tan(k) * t_m) * (t_m / l));
} else if (k <= 0.029) {
tmp = 2.0 / ((t_m / l) * (fma(((fma(0.3333333333333333, (t_m * t_m), 1.0) / l) * k), k, (((t_m * t_m) / l) * 2.0)) * (k * k)));
} else {
tmp = 2.0 / ((((t_m / (l * l)) * k) * k) * (tan(k) * sin(k)));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 1.5e-83) tmp = Float64(Float64(Float64(Float64(2.0 / t_m) * l) / Float64(2.0 * k)) / Float64(Float64(tan(k) * t_m) * Float64(t_m / l))); elseif (k <= 0.029) tmp = Float64(2.0 / Float64(Float64(t_m / l) * Float64(fma(Float64(Float64(fma(0.3333333333333333, Float64(t_m * t_m), 1.0) / l) * k), k, Float64(Float64(Float64(t_m * t_m) / l) * 2.0)) * Float64(k * k)))); else tmp = Float64(2.0 / Float64(Float64(Float64(Float64(t_m / Float64(l * l)) * k) * k) * Float64(tan(k) * sin(k)))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 1.5e-83], N[(N[(N[(N[(2.0 / t$95$m), $MachinePrecision] * l), $MachinePrecision] / N[(2.0 * k), $MachinePrecision]), $MachinePrecision] / N[(N[(N[Tan[k], $MachinePrecision] * t$95$m), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 0.029], N[(2.0 / N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(N[(N[(N[(0.3333333333333333 * N[(t$95$m * t$95$m), $MachinePrecision] + 1.0), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k + N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] / l), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision] * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[(t$95$m / N[(l * l), $MachinePrecision]), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 1.5 \cdot 10^{-83}:\\
\;\;\;\;\frac{\frac{\frac{2}{t\_m} \cdot \ell}{2 \cdot k}}{\left(\tan k \cdot t\_m\right) \cdot \frac{t\_m}{\ell}}\\
\mathbf{elif}\;k \leq 0.029:\\
\;\;\;\;\frac{2}{\frac{t\_m}{\ell} \cdot \left(\mathsf{fma}\left(\frac{\mathsf{fma}\left(0.3333333333333333, t\_m \cdot t\_m, 1\right)}{\ell} \cdot k, k, \frac{t\_m \cdot t\_m}{\ell} \cdot 2\right) \cdot \left(k \cdot k\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\left(\frac{t\_m}{\ell \cdot \ell} \cdot k\right) \cdot k\right) \cdot \left(\tan k \cdot \sin k\right)}\\
\end{array}
\end{array}
if k < 1.50000000000000005e-83Initial program 62.7%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites65.1%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites79.4%
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lower-/.f64N/A
Applied rewrites85.6%
Taylor expanded in k around 0
lower-*.f6481.3
Applied rewrites81.3%
if 1.50000000000000005e-83 < k < 0.0290000000000000015Initial program 59.1%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites78.5%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites82.2%
Taylor expanded in k around 0
*-commutativeN/A
lower-*.f64N/A
Applied rewrites99.6%
if 0.0290000000000000015 < k Initial program 57.7%
Taylor expanded in t around 0
associate-/l*N/A
times-fracN/A
associate-*r*N/A
lower-*.f64N/A
associate-*r/N/A
unpow2N/A
associate-/r*N/A
lower-/.f64N/A
*-commutativeN/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-sin.f64N/A
lower-cos.f6476.5
Applied rewrites76.5%
Applied rewrites76.6%
Applied rewrites75.6%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 1.5e-83)
(/ (/ (* (/ 2.0 t_m) l) (* 2.0 k)) (* (* (tan k) t_m) (/ t_m l)))
(if (<= k 0.029)
(/
2.0
(*
(/ t_m l)
(*
(fma
(* (/ (fma 0.3333333333333333 (* t_m t_m) 1.0) l) k)
k
(* (/ (* t_m t_m) l) 2.0))
(* k k))))
(/ 2.0 (* (tan k) (* (sin k) (* (* (/ t_m (* l l)) k) k))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 1.5e-83) {
tmp = (((2.0 / t_m) * l) / (2.0 * k)) / ((tan(k) * t_m) * (t_m / l));
} else if (k <= 0.029) {
tmp = 2.0 / ((t_m / l) * (fma(((fma(0.3333333333333333, (t_m * t_m), 1.0) / l) * k), k, (((t_m * t_m) / l) * 2.0)) * (k * k)));
} else {
tmp = 2.0 / (tan(k) * (sin(k) * (((t_m / (l * l)) * k) * k)));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 1.5e-83) tmp = Float64(Float64(Float64(Float64(2.0 / t_m) * l) / Float64(2.0 * k)) / Float64(Float64(tan(k) * t_m) * Float64(t_m / l))); elseif (k <= 0.029) tmp = Float64(2.0 / Float64(Float64(t_m / l) * Float64(fma(Float64(Float64(fma(0.3333333333333333, Float64(t_m * t_m), 1.0) / l) * k), k, Float64(Float64(Float64(t_m * t_m) / l) * 2.0)) * Float64(k * k)))); else tmp = Float64(2.0 / Float64(tan(k) * Float64(sin(k) * Float64(Float64(Float64(t_m / Float64(l * l)) * k) * k)))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 1.5e-83], N[(N[(N[(N[(2.0 / t$95$m), $MachinePrecision] * l), $MachinePrecision] / N[(2.0 * k), $MachinePrecision]), $MachinePrecision] / N[(N[(N[Tan[k], $MachinePrecision] * t$95$m), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 0.029], N[(2.0 / N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(N[(N[(N[(0.3333333333333333 * N[(t$95$m * t$95$m), $MachinePrecision] + 1.0), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k + N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] / l), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision] * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[Tan[k], $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[(N[(N[(t$95$m / N[(l * l), $MachinePrecision]), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 1.5 \cdot 10^{-83}:\\
\;\;\;\;\frac{\frac{\frac{2}{t\_m} \cdot \ell}{2 \cdot k}}{\left(\tan k \cdot t\_m\right) \cdot \frac{t\_m}{\ell}}\\
\mathbf{elif}\;k \leq 0.029:\\
\;\;\;\;\frac{2}{\frac{t\_m}{\ell} \cdot \left(\mathsf{fma}\left(\frac{\mathsf{fma}\left(0.3333333333333333, t\_m \cdot t\_m, 1\right)}{\ell} \cdot k, k, \frac{t\_m \cdot t\_m}{\ell} \cdot 2\right) \cdot \left(k \cdot k\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\tan k \cdot \left(\sin k \cdot \left(\left(\frac{t\_m}{\ell \cdot \ell} \cdot k\right) \cdot k\right)\right)}\\
\end{array}
\end{array}
if k < 1.50000000000000005e-83Initial program 62.7%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites65.1%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites79.4%
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lower-/.f64N/A
Applied rewrites85.6%
Taylor expanded in k around 0
lower-*.f6481.3
Applied rewrites81.3%
if 1.50000000000000005e-83 < k < 0.0290000000000000015Initial program 59.1%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites78.5%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites82.2%
Taylor expanded in k around 0
*-commutativeN/A
lower-*.f64N/A
Applied rewrites99.6%
if 0.0290000000000000015 < k Initial program 57.7%
Taylor expanded in t around 0
associate-/l*N/A
times-fracN/A
associate-*r*N/A
lower-*.f64N/A
associate-*r/N/A
unpow2N/A
associate-/r*N/A
lower-/.f64N/A
*-commutativeN/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
lower-sin.f64N/A
lower-cos.f6476.5
Applied rewrites76.5%
Applied rewrites76.6%
Applied rewrites75.6%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 1.5e-83)
(/ (/ (* (/ 2.0 t_m) l) (* 2.0 k)) (* (* (tan k) t_m) (/ t_m l)))
(if (<= k 1.56)
(/
2.0
(*
(/ t_m l)
(*
(fma
(* (/ (fma 0.3333333333333333 (* t_m t_m) 1.0) l) k)
k
(* (/ (* t_m t_m) l) 2.0))
(* k k))))
(/ 2.0 (* (* (/ (* (* k k) t_m) (* (* (cos k) l) l)) k) k))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 1.5e-83) {
tmp = (((2.0 / t_m) * l) / (2.0 * k)) / ((tan(k) * t_m) * (t_m / l));
} else if (k <= 1.56) {
tmp = 2.0 / ((t_m / l) * (fma(((fma(0.3333333333333333, (t_m * t_m), 1.0) / l) * k), k, (((t_m * t_m) / l) * 2.0)) * (k * k)));
} else {
tmp = 2.0 / (((((k * k) * t_m) / ((cos(k) * l) * l)) * k) * k);
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 1.5e-83) tmp = Float64(Float64(Float64(Float64(2.0 / t_m) * l) / Float64(2.0 * k)) / Float64(Float64(tan(k) * t_m) * Float64(t_m / l))); elseif (k <= 1.56) tmp = Float64(2.0 / Float64(Float64(t_m / l) * Float64(fma(Float64(Float64(fma(0.3333333333333333, Float64(t_m * t_m), 1.0) / l) * k), k, Float64(Float64(Float64(t_m * t_m) / l) * 2.0)) * Float64(k * k)))); else tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(k * k) * t_m) / Float64(Float64(cos(k) * l) * l)) * k) * k)); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 1.5e-83], N[(N[(N[(N[(2.0 / t$95$m), $MachinePrecision] * l), $MachinePrecision] / N[(2.0 * k), $MachinePrecision]), $MachinePrecision] / N[(N[(N[Tan[k], $MachinePrecision] * t$95$m), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 1.56], N[(2.0 / N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(N[(N[(N[(0.3333333333333333 * N[(t$95$m * t$95$m), $MachinePrecision] + 1.0), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k + N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] / l), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision] * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[(N[(k * k), $MachinePrecision] * t$95$m), $MachinePrecision] / N[(N[(N[Cos[k], $MachinePrecision] * l), $MachinePrecision] * l), $MachinePrecision]), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 1.5 \cdot 10^{-83}:\\
\;\;\;\;\frac{\frac{\frac{2}{t\_m} \cdot \ell}{2 \cdot k}}{\left(\tan k \cdot t\_m\right) \cdot \frac{t\_m}{\ell}}\\
\mathbf{elif}\;k \leq 1.56:\\
\;\;\;\;\frac{2}{\frac{t\_m}{\ell} \cdot \left(\mathsf{fma}\left(\frac{\mathsf{fma}\left(0.3333333333333333, t\_m \cdot t\_m, 1\right)}{\ell} \cdot k, k, \frac{t\_m \cdot t\_m}{\ell} \cdot 2\right) \cdot \left(k \cdot k\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\frac{\left(k \cdot k\right) \cdot t\_m}{\left(\cos k \cdot \ell\right) \cdot \ell} \cdot k\right) \cdot k}\\
\end{array}
\end{array}
if k < 1.50000000000000005e-83Initial program 62.7%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites65.1%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites79.4%
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lower-/.f64N/A
Applied rewrites85.6%
Taylor expanded in k around 0
lower-*.f6481.3
Applied rewrites81.3%
if 1.50000000000000005e-83 < k < 1.5600000000000001Initial program 59.1%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites78.5%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites82.2%
Taylor expanded in k around 0
*-commutativeN/A
lower-*.f64N/A
Applied rewrites99.6%
if 1.5600000000000001 < k Initial program 57.7%
Taylor expanded in k around inf
*-commutativeN/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites78.2%
Taylor expanded in t around 0
Applied rewrites75.5%
Taylor expanded in k around 0
Applied rewrites63.3%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 1.5e-83)
(/ (/ l (* k t_m)) (* (* (tan k) t_m) (/ t_m l)))
(if (<= k 1.56)
(/
2.0
(*
(/ t_m l)
(*
(fma
(* (/ (fma 0.3333333333333333 (* t_m t_m) 1.0) l) k)
k
(* (/ (* t_m t_m) l) 2.0))
(* k k))))
(/ 2.0 (* (* (/ (* (* k k) t_m) (* (* (cos k) l) l)) k) k))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 1.5e-83) {
tmp = (l / (k * t_m)) / ((tan(k) * t_m) * (t_m / l));
} else if (k <= 1.56) {
tmp = 2.0 / ((t_m / l) * (fma(((fma(0.3333333333333333, (t_m * t_m), 1.0) / l) * k), k, (((t_m * t_m) / l) * 2.0)) * (k * k)));
} else {
tmp = 2.0 / (((((k * k) * t_m) / ((cos(k) * l) * l)) * k) * k);
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 1.5e-83) tmp = Float64(Float64(l / Float64(k * t_m)) / Float64(Float64(tan(k) * t_m) * Float64(t_m / l))); elseif (k <= 1.56) tmp = Float64(2.0 / Float64(Float64(t_m / l) * Float64(fma(Float64(Float64(fma(0.3333333333333333, Float64(t_m * t_m), 1.0) / l) * k), k, Float64(Float64(Float64(t_m * t_m) / l) * 2.0)) * Float64(k * k)))); else tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(k * k) * t_m) / Float64(Float64(cos(k) * l) * l)) * k) * k)); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 1.5e-83], N[(N[(l / N[(k * t$95$m), $MachinePrecision]), $MachinePrecision] / N[(N[(N[Tan[k], $MachinePrecision] * t$95$m), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 1.56], N[(2.0 / N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(N[(N[(N[(0.3333333333333333 * N[(t$95$m * t$95$m), $MachinePrecision] + 1.0), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k + N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] / l), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision] * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[(N[(k * k), $MachinePrecision] * t$95$m), $MachinePrecision] / N[(N[(N[Cos[k], $MachinePrecision] * l), $MachinePrecision] * l), $MachinePrecision]), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 1.5 \cdot 10^{-83}:\\
\;\;\;\;\frac{\frac{\ell}{k \cdot t\_m}}{\left(\tan k \cdot t\_m\right) \cdot \frac{t\_m}{\ell}}\\
\mathbf{elif}\;k \leq 1.56:\\
\;\;\;\;\frac{2}{\frac{t\_m}{\ell} \cdot \left(\mathsf{fma}\left(\frac{\mathsf{fma}\left(0.3333333333333333, t\_m \cdot t\_m, 1\right)}{\ell} \cdot k, k, \frac{t\_m \cdot t\_m}{\ell} \cdot 2\right) \cdot \left(k \cdot k\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\frac{\left(k \cdot k\right) \cdot t\_m}{\left(\cos k \cdot \ell\right) \cdot \ell} \cdot k\right) \cdot k}\\
\end{array}
\end{array}
if k < 1.50000000000000005e-83Initial program 62.7%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites65.1%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites79.4%
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lower-/.f64N/A
Applied rewrites85.6%
Taylor expanded in k around 0
lower-/.f64N/A
lower-*.f6481.3
Applied rewrites81.3%
if 1.50000000000000005e-83 < k < 1.5600000000000001Initial program 59.1%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites78.5%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites82.2%
Taylor expanded in k around 0
*-commutativeN/A
lower-*.f64N/A
Applied rewrites99.6%
if 1.5600000000000001 < k Initial program 57.7%
Taylor expanded in k around inf
*-commutativeN/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites78.2%
Taylor expanded in t around 0
Applied rewrites75.5%
Taylor expanded in k around 0
Applied rewrites63.3%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 1.5e-83)
(/ (/ l (* k t_m)) (* (* (tan k) t_m) (/ t_m l)))
(/
2.0
(*
(/ t_m l)
(*
(fma
(* (/ (fma 0.3333333333333333 (* t_m t_m) 1.0) l) k)
k
(* (/ (* t_m t_m) l) 2.0))
(* k k)))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 1.5e-83) {
tmp = (l / (k * t_m)) / ((tan(k) * t_m) * (t_m / l));
} else {
tmp = 2.0 / ((t_m / l) * (fma(((fma(0.3333333333333333, (t_m * t_m), 1.0) / l) * k), k, (((t_m * t_m) / l) * 2.0)) * (k * k)));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 1.5e-83) tmp = Float64(Float64(l / Float64(k * t_m)) / Float64(Float64(tan(k) * t_m) * Float64(t_m / l))); else tmp = Float64(2.0 / Float64(Float64(t_m / l) * Float64(fma(Float64(Float64(fma(0.3333333333333333, Float64(t_m * t_m), 1.0) / l) * k), k, Float64(Float64(Float64(t_m * t_m) / l) * 2.0)) * Float64(k * k)))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 1.5e-83], N[(N[(l / N[(k * t$95$m), $MachinePrecision]), $MachinePrecision] / N[(N[(N[Tan[k], $MachinePrecision] * t$95$m), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(N[(N[(N[(0.3333333333333333 * N[(t$95$m * t$95$m), $MachinePrecision] + 1.0), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k + N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] / l), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision] * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 1.5 \cdot 10^{-83}:\\
\;\;\;\;\frac{\frac{\ell}{k \cdot t\_m}}{\left(\tan k \cdot t\_m\right) \cdot \frac{t\_m}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{t\_m}{\ell} \cdot \left(\mathsf{fma}\left(\frac{\mathsf{fma}\left(0.3333333333333333, t\_m \cdot t\_m, 1\right)}{\ell} \cdot k, k, \frac{t\_m \cdot t\_m}{\ell} \cdot 2\right) \cdot \left(k \cdot k\right)\right)}\\
\end{array}
\end{array}
if k < 1.50000000000000005e-83Initial program 62.7%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites65.1%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites79.4%
lift-/.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lower-/.f64N/A
Applied rewrites85.6%
Taylor expanded in k around 0
lower-/.f64N/A
lower-*.f6481.3
Applied rewrites81.3%
if 1.50000000000000005e-83 < k Initial program 58.0%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites71.7%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites76.1%
Taylor expanded in k around 0
*-commutativeN/A
lower-*.f64N/A
Applied rewrites68.8%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 1.5e-83)
(/ 2.0 (* (pow (* (/ t_m l) k) 2.0) (* t_m 2.0)))
(/
2.0
(*
(/ t_m l)
(*
(fma
(* (/ (fma 0.3333333333333333 (* t_m t_m) 1.0) l) k)
k
(* (/ (* t_m t_m) l) 2.0))
(* k k)))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 1.5e-83) {
tmp = 2.0 / (pow(((t_m / l) * k), 2.0) * (t_m * 2.0));
} else {
tmp = 2.0 / ((t_m / l) * (fma(((fma(0.3333333333333333, (t_m * t_m), 1.0) / l) * k), k, (((t_m * t_m) / l) * 2.0)) * (k * k)));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 1.5e-83) tmp = Float64(2.0 / Float64((Float64(Float64(t_m / l) * k) ^ 2.0) * Float64(t_m * 2.0))); else tmp = Float64(2.0 / Float64(Float64(t_m / l) * Float64(fma(Float64(Float64(fma(0.3333333333333333, Float64(t_m * t_m), 1.0) / l) * k), k, Float64(Float64(Float64(t_m * t_m) / l) * 2.0)) * Float64(k * k)))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 1.5e-83], N[(2.0 / N[(N[Power[N[(N[(t$95$m / l), $MachinePrecision] * k), $MachinePrecision], 2.0], $MachinePrecision] * N[(t$95$m * 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(N[(N[(N[(0.3333333333333333 * N[(t$95$m * t$95$m), $MachinePrecision] + 1.0), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k + N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] / l), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision] * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 1.5 \cdot 10^{-83}:\\
\;\;\;\;\frac{2}{{\left(\frac{t\_m}{\ell} \cdot k\right)}^{2} \cdot \left(t\_m \cdot 2\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{t\_m}{\ell} \cdot \left(\mathsf{fma}\left(\frac{\mathsf{fma}\left(0.3333333333333333, t\_m \cdot t\_m, 1\right)}{\ell} \cdot k, k, \frac{t\_m \cdot t\_m}{\ell} \cdot 2\right) \cdot \left(k \cdot k\right)\right)}\\
\end{array}
\end{array}
if k < 1.50000000000000005e-83Initial program 62.7%
Taylor expanded in k around 0
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f64N/A
lower-pow.f6463.2
Applied rewrites63.2%
Applied rewrites65.4%
Applied rewrites68.4%
Applied rewrites82.2%
if 1.50000000000000005e-83 < k Initial program 58.0%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites71.7%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites76.1%
Taylor expanded in k around 0
*-commutativeN/A
lower-*.f64N/A
Applied rewrites68.8%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 5.4e-167)
(/ 2.0 (* (* (* (/ (* (/ t_m l) k) l) k) k) k))
(/
2.0
(*
(/ t_m l)
(*
(fma
(* (/ (fma 0.3333333333333333 (* t_m t_m) 1.0) l) k)
k
(* (/ (* t_m t_m) l) 2.0))
(* k k)))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 5.4e-167) {
tmp = 2.0 / ((((((t_m / l) * k) / l) * k) * k) * k);
} else {
tmp = 2.0 / ((t_m / l) * (fma(((fma(0.3333333333333333, (t_m * t_m), 1.0) / l) * k), k, (((t_m * t_m) / l) * 2.0)) * (k * k)));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 5.4e-167) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(Float64(t_m / l) * k) / l) * k) * k) * k)); else tmp = Float64(2.0 / Float64(Float64(t_m / l) * Float64(fma(Float64(Float64(fma(0.3333333333333333, Float64(t_m * t_m), 1.0) / l) * k), k, Float64(Float64(Float64(t_m * t_m) / l) * 2.0)) * Float64(k * k)))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 5.4e-167], N[(2.0 / N[(N[(N[(N[(N[(N[(t$95$m / l), $MachinePrecision] * k), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(N[(N[(N[(0.3333333333333333 * N[(t$95$m * t$95$m), $MachinePrecision] + 1.0), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k + N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] / l), $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision] * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 5.4 \cdot 10^{-167}:\\
\;\;\;\;\frac{2}{\left(\left(\frac{\frac{t\_m}{\ell} \cdot k}{\ell} \cdot k\right) \cdot k\right) \cdot k}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{t\_m}{\ell} \cdot \left(\mathsf{fma}\left(\frac{\mathsf{fma}\left(0.3333333333333333, t\_m \cdot t\_m, 1\right)}{\ell} \cdot k, k, \frac{t\_m \cdot t\_m}{\ell} \cdot 2\right) \cdot \left(k \cdot k\right)\right)}\\
\end{array}
\end{array}
if k < 5.4000000000000001e-167Initial program 63.0%
Taylor expanded in k around inf
*-commutativeN/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites65.5%
Taylor expanded in t around 0
Applied rewrites66.7%
Taylor expanded in k around 0
Applied rewrites64.0%
Applied rewrites69.9%
if 5.4000000000000001e-167 < k Initial program 58.5%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-pow.f64N/A
cube-multN/A
lift-*.f64N/A
times-fracN/A
associate-*l*N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
Applied rewrites71.3%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-+.f64N/A
metadata-evalN/A
associate-+l+N/A
+-commutativeN/A
lift-+.f64N/A
lift-+.f64N/A
Applied rewrites76.0%
Taylor expanded in k around 0
*-commutativeN/A
lower-*.f64N/A
Applied rewrites70.8%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (or (<= l 8.8e-94) (not (<= l 1.1e+148)))
(/ 2.0 (* (* (* (/ (* (/ t_m l) k) l) k) k) k))
(/ 2.0 (/ (* (* (* (* (* k k) t_m) t_m) 2.0) t_m) (* l l))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if ((l <= 8.8e-94) || !(l <= 1.1e+148)) {
tmp = 2.0 / ((((((t_m / l) * k) / l) * k) * k) * k);
} else {
tmp = 2.0 / ((((((k * k) * t_m) * t_m) * 2.0) * t_m) / (l * l));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if ((l <= 8.8d-94) .or. (.not. (l <= 1.1d+148))) then
tmp = 2.0d0 / ((((((t_m / l) * k) / l) * k) * k) * k)
else
tmp = 2.0d0 / ((((((k * k) * t_m) * t_m) * 2.0d0) * t_m) / (l * l))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if ((l <= 8.8e-94) || !(l <= 1.1e+148)) {
tmp = 2.0 / ((((((t_m / l) * k) / l) * k) * k) * k);
} else {
tmp = 2.0 / ((((((k * k) * t_m) * t_m) * 2.0) * t_m) / (l * l));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if (l <= 8.8e-94) or not (l <= 1.1e+148): tmp = 2.0 / ((((((t_m / l) * k) / l) * k) * k) * k) else: tmp = 2.0 / ((((((k * k) * t_m) * t_m) * 2.0) * t_m) / (l * l)) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if ((l <= 8.8e-94) || !(l <= 1.1e+148)) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(Float64(t_m / l) * k) / l) * k) * k) * k)); else tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(Float64(k * k) * t_m) * t_m) * 2.0) * t_m) / Float64(l * l))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if ((l <= 8.8e-94) || ~((l <= 1.1e+148))) tmp = 2.0 / ((((((t_m / l) * k) / l) * k) * k) * k); else tmp = 2.0 / ((((((k * k) * t_m) * t_m) * 2.0) * t_m) / (l * l)); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[Or[LessEqual[l, 8.8e-94], N[Not[LessEqual[l, 1.1e+148]], $MachinePrecision]], N[(2.0 / N[(N[(N[(N[(N[(N[(t$95$m / l), $MachinePrecision] * k), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[(N[(N[(k * k), $MachinePrecision] * t$95$m), $MachinePrecision] * t$95$m), $MachinePrecision] * 2.0), $MachinePrecision] * t$95$m), $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \leq 8.8 \cdot 10^{-94} \lor \neg \left(\ell \leq 1.1 \cdot 10^{+148}\right):\\
\;\;\;\;\frac{2}{\left(\left(\frac{\frac{t\_m}{\ell} \cdot k}{\ell} \cdot k\right) \cdot k\right) \cdot k}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{\left(\left(\left(\left(k \cdot k\right) \cdot t\_m\right) \cdot t\_m\right) \cdot 2\right) \cdot t\_m}{\ell \cdot \ell}}\\
\end{array}
\end{array}
if l < 8.80000000000000004e-94 or 1.0999999999999999e148 < l Initial program 57.9%
Taylor expanded in k around inf
*-commutativeN/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites69.5%
Taylor expanded in t around 0
Applied rewrites66.0%
Taylor expanded in k around 0
Applied rewrites61.0%
Applied rewrites68.7%
if 8.80000000000000004e-94 < l < 1.0999999999999999e148Initial program 72.6%
lift-/.f64N/A
lift-pow.f64N/A
pow-to-expN/A
lift-*.f64N/A
pow2N/A
pow-to-expN/A
div-expN/A
lower-exp.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-log.f64N/A
lower-*.f64N/A
lower-log.f6437.6
Applied rewrites37.6%
Applied rewrites71.3%
Taylor expanded in k around 0
*-commutativeN/A
lower-*.f64N/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6469.7
Applied rewrites69.7%
Final simplification68.9%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= l 8.8e-94)
(/ 2.0 (* (* (* (/ (* (/ t_m l) k) l) k) k) k))
(/ 2.0 (* (/ t_m l) (* (/ t_m l) (* (* (* k k) 2.0) t_m)))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (l <= 8.8e-94) {
tmp = 2.0 / ((((((t_m / l) * k) / l) * k) * k) * k);
} else {
tmp = 2.0 / ((t_m / l) * ((t_m / l) * (((k * k) * 2.0) * t_m)));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (l <= 8.8d-94) then
tmp = 2.0d0 / ((((((t_m / l) * k) / l) * k) * k) * k)
else
tmp = 2.0d0 / ((t_m / l) * ((t_m / l) * (((k * k) * 2.0d0) * t_m)))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (l <= 8.8e-94) {
tmp = 2.0 / ((((((t_m / l) * k) / l) * k) * k) * k);
} else {
tmp = 2.0 / ((t_m / l) * ((t_m / l) * (((k * k) * 2.0) * t_m)));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if l <= 8.8e-94: tmp = 2.0 / ((((((t_m / l) * k) / l) * k) * k) * k) else: tmp = 2.0 / ((t_m / l) * ((t_m / l) * (((k * k) * 2.0) * t_m))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (l <= 8.8e-94) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(Float64(t_m / l) * k) / l) * k) * k) * k)); else tmp = Float64(2.0 / Float64(Float64(t_m / l) * Float64(Float64(t_m / l) * Float64(Float64(Float64(k * k) * 2.0) * t_m)))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (l <= 8.8e-94) tmp = 2.0 / ((((((t_m / l) * k) / l) * k) * k) * k); else tmp = 2.0 / ((t_m / l) * ((t_m / l) * (((k * k) * 2.0) * t_m))); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[l, 8.8e-94], N[(2.0 / N[(N[(N[(N[(N[(N[(t$95$m / l), $MachinePrecision] * k), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(N[(k * k), $MachinePrecision] * 2.0), $MachinePrecision] * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \leq 8.8 \cdot 10^{-94}:\\
\;\;\;\;\frac{2}{\left(\left(\frac{\frac{t\_m}{\ell} \cdot k}{\ell} \cdot k\right) \cdot k\right) \cdot k}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{t\_m}{\ell} \cdot \left(\frac{t\_m}{\ell} \cdot \left(\left(\left(k \cdot k\right) \cdot 2\right) \cdot t\_m\right)\right)}\\
\end{array}
\end{array}
if l < 8.80000000000000004e-94Initial program 59.5%
Taylor expanded in k around inf
*-commutativeN/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites72.4%
Taylor expanded in t around 0
Applied rewrites64.7%
Taylor expanded in k around 0
Applied rewrites60.6%
Applied rewrites69.1%
if 8.80000000000000004e-94 < l Initial program 64.3%
Taylor expanded in k around 0
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f64N/A
lower-pow.f6464.7
Applied rewrites64.7%
Applied rewrites67.0%
Applied rewrites68.5%
Applied rewrites69.7%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= l 1.55e-82)
(/ 2.0 (* (* (* (/ (* (/ t_m l) k) l) k) k) k))
(/ 2.0 (* (* (* k k) 2.0) (/ (* t_m (* (/ t_m l) t_m)) l))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (l <= 1.55e-82) {
tmp = 2.0 / ((((((t_m / l) * k) / l) * k) * k) * k);
} else {
tmp = 2.0 / (((k * k) * 2.0) * ((t_m * ((t_m / l) * t_m)) / l));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (l <= 1.55d-82) then
tmp = 2.0d0 / ((((((t_m / l) * k) / l) * k) * k) * k)
else
tmp = 2.0d0 / (((k * k) * 2.0d0) * ((t_m * ((t_m / l) * t_m)) / l))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (l <= 1.55e-82) {
tmp = 2.0 / ((((((t_m / l) * k) / l) * k) * k) * k);
} else {
tmp = 2.0 / (((k * k) * 2.0) * ((t_m * ((t_m / l) * t_m)) / l));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if l <= 1.55e-82: tmp = 2.0 / ((((((t_m / l) * k) / l) * k) * k) * k) else: tmp = 2.0 / (((k * k) * 2.0) * ((t_m * ((t_m / l) * t_m)) / l)) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (l <= 1.55e-82) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(Float64(t_m / l) * k) / l) * k) * k) * k)); else tmp = Float64(2.0 / Float64(Float64(Float64(k * k) * 2.0) * Float64(Float64(t_m * Float64(Float64(t_m / l) * t_m)) / l))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (l <= 1.55e-82) tmp = 2.0 / ((((((t_m / l) * k) / l) * k) * k) * k); else tmp = 2.0 / (((k * k) * 2.0) * ((t_m * ((t_m / l) * t_m)) / l)); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[l, 1.55e-82], N[(2.0 / N[(N[(N[(N[(N[(N[(t$95$m / l), $MachinePrecision] * k), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(k * k), $MachinePrecision] * 2.0), $MachinePrecision] * N[(N[(t$95$m * N[(N[(t$95$m / l), $MachinePrecision] * t$95$m), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \leq 1.55 \cdot 10^{-82}:\\
\;\;\;\;\frac{2}{\left(\left(\frac{\frac{t\_m}{\ell} \cdot k}{\ell} \cdot k\right) \cdot k\right) \cdot k}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\left(k \cdot k\right) \cdot 2\right) \cdot \frac{t\_m \cdot \left(\frac{t\_m}{\ell} \cdot t\_m\right)}{\ell}}\\
\end{array}
\end{array}
if l < 1.55e-82Initial program 60.0%
Taylor expanded in k around inf
*-commutativeN/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites72.7%
Taylor expanded in t around 0
Applied rewrites65.1%
Taylor expanded in k around 0
Applied rewrites61.1%
Applied rewrites69.4%
if 1.55e-82 < l Initial program 63.4%
Taylor expanded in k around 0
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f64N/A
lower-pow.f6463.9
Applied rewrites63.9%
Applied rewrites66.2%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= (* l l) 5e-188)
(/ 2.0 (* (* (* (/ k (* l (/ l t_m))) k) k) k))
(/ 2.0 (/ (* (* (* (* (* k k) t_m) t_m) 2.0) t_m) (* l l))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if ((l * l) <= 5e-188) {
tmp = 2.0 / ((((k / (l * (l / t_m))) * k) * k) * k);
} else {
tmp = 2.0 / ((((((k * k) * t_m) * t_m) * 2.0) * t_m) / (l * l));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if ((l * l) <= 5d-188) then
tmp = 2.0d0 / ((((k / (l * (l / t_m))) * k) * k) * k)
else
tmp = 2.0d0 / ((((((k * k) * t_m) * t_m) * 2.0d0) * t_m) / (l * l))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if ((l * l) <= 5e-188) {
tmp = 2.0 / ((((k / (l * (l / t_m))) * k) * k) * k);
} else {
tmp = 2.0 / ((((((k * k) * t_m) * t_m) * 2.0) * t_m) / (l * l));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if (l * l) <= 5e-188: tmp = 2.0 / ((((k / (l * (l / t_m))) * k) * k) * k) else: tmp = 2.0 / ((((((k * k) * t_m) * t_m) * 2.0) * t_m) / (l * l)) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (Float64(l * l) <= 5e-188) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(k / Float64(l * Float64(l / t_m))) * k) * k) * k)); else tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(Float64(k * k) * t_m) * t_m) * 2.0) * t_m) / Float64(l * l))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if ((l * l) <= 5e-188) tmp = 2.0 / ((((k / (l * (l / t_m))) * k) * k) * k); else tmp = 2.0 / ((((((k * k) * t_m) * t_m) * 2.0) * t_m) / (l * l)); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[N[(l * l), $MachinePrecision], 5e-188], N[(2.0 / N[(N[(N[(N[(k / N[(l * N[(l / t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[(N[(N[(k * k), $MachinePrecision] * t$95$m), $MachinePrecision] * t$95$m), $MachinePrecision] * 2.0), $MachinePrecision] * t$95$m), $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \cdot \ell \leq 5 \cdot 10^{-188}:\\
\;\;\;\;\frac{2}{\left(\left(\frac{k}{\ell \cdot \frac{\ell}{t\_m}} \cdot k\right) \cdot k\right) \cdot k}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{\left(\left(\left(\left(k \cdot k\right) \cdot t\_m\right) \cdot t\_m\right) \cdot 2\right) \cdot t\_m}{\ell \cdot \ell}}\\
\end{array}
\end{array}
if (*.f64 l l) < 5.0000000000000001e-188Initial program 61.1%
Taylor expanded in k around inf
*-commutativeN/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites79.0%
Taylor expanded in t around 0
Applied rewrites65.5%
Taylor expanded in k around 0
Applied rewrites70.9%
Applied rewrites79.1%
if 5.0000000000000001e-188 < (*.f64 l l) Initial program 61.1%
lift-/.f64N/A
lift-pow.f64N/A
pow-to-expN/A
lift-*.f64N/A
pow2N/A
pow-to-expN/A
div-expN/A
lower-exp.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-log.f64N/A
lower-*.f64N/A
lower-log.f6419.4
Applied rewrites19.4%
Applied rewrites59.5%
Taylor expanded in k around 0
*-commutativeN/A
lower-*.f64N/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6460.4
Applied rewrites60.4%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= (* l l) 5e-188)
(/ 2.0 (* (* (* (* (/ (/ t_m l) l) k) k) k) k))
(/ 2.0 (/ (* (* (* (* (* k k) t_m) t_m) 2.0) t_m) (* l l))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if ((l * l) <= 5e-188) {
tmp = 2.0 / ((((((t_m / l) / l) * k) * k) * k) * k);
} else {
tmp = 2.0 / ((((((k * k) * t_m) * t_m) * 2.0) * t_m) / (l * l));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if ((l * l) <= 5d-188) then
tmp = 2.0d0 / ((((((t_m / l) / l) * k) * k) * k) * k)
else
tmp = 2.0d0 / ((((((k * k) * t_m) * t_m) * 2.0d0) * t_m) / (l * l))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if ((l * l) <= 5e-188) {
tmp = 2.0 / ((((((t_m / l) / l) * k) * k) * k) * k);
} else {
tmp = 2.0 / ((((((k * k) * t_m) * t_m) * 2.0) * t_m) / (l * l));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if (l * l) <= 5e-188: tmp = 2.0 / ((((((t_m / l) / l) * k) * k) * k) * k) else: tmp = 2.0 / ((((((k * k) * t_m) * t_m) * 2.0) * t_m) / (l * l)) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (Float64(l * l) <= 5e-188) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(Float64(t_m / l) / l) * k) * k) * k) * k)); else tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(Float64(k * k) * t_m) * t_m) * 2.0) * t_m) / Float64(l * l))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if ((l * l) <= 5e-188) tmp = 2.0 / ((((((t_m / l) / l) * k) * k) * k) * k); else tmp = 2.0 / ((((((k * k) * t_m) * t_m) * 2.0) * t_m) / (l * l)); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[N[(l * l), $MachinePrecision], 5e-188], N[(2.0 / N[(N[(N[(N[(N[(N[(t$95$m / l), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[(N[(N[(k * k), $MachinePrecision] * t$95$m), $MachinePrecision] * t$95$m), $MachinePrecision] * 2.0), $MachinePrecision] * t$95$m), $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \cdot \ell \leq 5 \cdot 10^{-188}:\\
\;\;\;\;\frac{2}{\left(\left(\left(\frac{\frac{t\_m}{\ell}}{\ell} \cdot k\right) \cdot k\right) \cdot k\right) \cdot k}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{\left(\left(\left(\left(k \cdot k\right) \cdot t\_m\right) \cdot t\_m\right) \cdot 2\right) \cdot t\_m}{\ell \cdot \ell}}\\
\end{array}
\end{array}
if (*.f64 l l) < 5.0000000000000001e-188Initial program 61.1%
Taylor expanded in k around inf
*-commutativeN/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites79.0%
Taylor expanded in t around 0
Applied rewrites65.5%
Taylor expanded in k around 0
Applied rewrites70.9%
Applied rewrites78.6%
if 5.0000000000000001e-188 < (*.f64 l l) Initial program 61.1%
lift-/.f64N/A
lift-pow.f64N/A
pow-to-expN/A
lift-*.f64N/A
pow2N/A
pow-to-expN/A
div-expN/A
lower-exp.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-log.f64N/A
lower-*.f64N/A
lower-log.f6419.4
Applied rewrites19.4%
Applied rewrites59.5%
Taylor expanded in k around 0
*-commutativeN/A
lower-*.f64N/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6460.4
Applied rewrites60.4%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= (* l l) 1.8e-187)
(/ 2.0 (* (* (* (* (/ t_m (* l l)) k) k) k) k))
(/ 2.0 (/ (* (* (* (* (* k k) t_m) t_m) 2.0) t_m) (* l l))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if ((l * l) <= 1.8e-187) {
tmp = 2.0 / (((((t_m / (l * l)) * k) * k) * k) * k);
} else {
tmp = 2.0 / ((((((k * k) * t_m) * t_m) * 2.0) * t_m) / (l * l));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if ((l * l) <= 1.8d-187) then
tmp = 2.0d0 / (((((t_m / (l * l)) * k) * k) * k) * k)
else
tmp = 2.0d0 / ((((((k * k) * t_m) * t_m) * 2.0d0) * t_m) / (l * l))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if ((l * l) <= 1.8e-187) {
tmp = 2.0 / (((((t_m / (l * l)) * k) * k) * k) * k);
} else {
tmp = 2.0 / ((((((k * k) * t_m) * t_m) * 2.0) * t_m) / (l * l));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if (l * l) <= 1.8e-187: tmp = 2.0 / (((((t_m / (l * l)) * k) * k) * k) * k) else: tmp = 2.0 / ((((((k * k) * t_m) * t_m) * 2.0) * t_m) / (l * l)) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (Float64(l * l) <= 1.8e-187) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(t_m / Float64(l * l)) * k) * k) * k) * k)); else tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(Float64(k * k) * t_m) * t_m) * 2.0) * t_m) / Float64(l * l))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if ((l * l) <= 1.8e-187) tmp = 2.0 / (((((t_m / (l * l)) * k) * k) * k) * k); else tmp = 2.0 / ((((((k * k) * t_m) * t_m) * 2.0) * t_m) / (l * l)); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[N[(l * l), $MachinePrecision], 1.8e-187], N[(2.0 / N[(N[(N[(N[(N[(t$95$m / N[(l * l), $MachinePrecision]), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[(N[(N[(k * k), $MachinePrecision] * t$95$m), $MachinePrecision] * t$95$m), $MachinePrecision] * 2.0), $MachinePrecision] * t$95$m), $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \cdot \ell \leq 1.8 \cdot 10^{-187}:\\
\;\;\;\;\frac{2}{\left(\left(\left(\frac{t\_m}{\ell \cdot \ell} \cdot k\right) \cdot k\right) \cdot k\right) \cdot k}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{\left(\left(\left(\left(k \cdot k\right) \cdot t\_m\right) \cdot t\_m\right) \cdot 2\right) \cdot t\_m}{\ell \cdot \ell}}\\
\end{array}
\end{array}
if (*.f64 l l) < 1.79999999999999997e-187Initial program 61.1%
Taylor expanded in k around inf
*-commutativeN/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites79.0%
Taylor expanded in t around 0
Applied rewrites65.5%
Taylor expanded in k around 0
Applied rewrites70.9%
if 1.79999999999999997e-187 < (*.f64 l l) Initial program 61.1%
lift-/.f64N/A
lift-pow.f64N/A
pow-to-expN/A
lift-*.f64N/A
pow2N/A
pow-to-expN/A
div-expN/A
lower-exp.f64N/A
lower--.f64N/A
lower-*.f64N/A
lower-log.f64N/A
lower-*.f64N/A
lower-log.f6419.4
Applied rewrites19.4%
Applied rewrites59.5%
Taylor expanded in k around 0
*-commutativeN/A
lower-*.f64N/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6460.4
Applied rewrites60.4%
t\_m = (fabs.f64 t) t\_s = (copysign.f64 #s(literal 1 binary64) t) (FPCore (t_s t_m l k) :precision binary64 (* t_s (/ 2.0 (* (* (* (* (/ t_m (* l l)) k) k) k) k))))
t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
return t_s * (2.0 / (((((t_m / (l * l)) * k) * k) * k) * k));
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
code = t_s * (2.0d0 / (((((t_m / (l * l)) * k) * k) * k) * k))
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
return t_s * (2.0 / (((((t_m / (l * l)) * k) * k) * k) * k));
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): return t_s * (2.0 / (((((t_m / (l * l)) * k) * k) * k) * k))
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) return Float64(t_s * Float64(2.0 / Float64(Float64(Float64(Float64(Float64(t_m / Float64(l * l)) * k) * k) * k) * k))) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp = code(t_s, t_m, l, k) tmp = t_s * (2.0 / (((((t_m / (l * l)) * k) * k) * k) * k)); end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * N[(2.0 / N[(N[(N[(N[(N[(t$95$m / N[(l * l), $MachinePrecision]), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \frac{2}{\left(\left(\left(\frac{t\_m}{\ell \cdot \ell} \cdot k\right) \cdot k\right) \cdot k\right) \cdot k}
\end{array}
Initial program 61.1%
Taylor expanded in k around inf
*-commutativeN/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites69.0%
Taylor expanded in t around 0
Applied rewrites66.8%
Taylor expanded in k around 0
Applied rewrites61.1%
t\_m = (fabs.f64 t) t\_s = (copysign.f64 #s(literal 1 binary64) t) (FPCore (t_s t_m l k) :precision binary64 (* t_s (/ 2.0 (* (* (* (* t_m (/ k (* l l))) k) k) k))))
t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
return t_s * (2.0 / ((((t_m * (k / (l * l))) * k) * k) * k));
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
code = t_s * (2.0d0 / ((((t_m * (k / (l * l))) * k) * k) * k))
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
return t_s * (2.0 / ((((t_m * (k / (l * l))) * k) * k) * k));
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): return t_s * (2.0 / ((((t_m * (k / (l * l))) * k) * k) * k))
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) return Float64(t_s * Float64(2.0 / Float64(Float64(Float64(Float64(t_m * Float64(k / Float64(l * l))) * k) * k) * k))) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp = code(t_s, t_m, l, k) tmp = t_s * (2.0 / ((((t_m * (k / (l * l))) * k) * k) * k)); end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * N[(2.0 / N[(N[(N[(N[(t$95$m * N[(k / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \frac{2}{\left(\left(\left(t\_m \cdot \frac{k}{\ell \cdot \ell}\right) \cdot k\right) \cdot k\right) \cdot k}
\end{array}
Initial program 61.1%
Taylor expanded in k around inf
*-commutativeN/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites69.0%
Taylor expanded in t around 0
Applied rewrites66.8%
Taylor expanded in k around 0
Applied rewrites61.1%
Applied rewrites59.9%
t\_m = (fabs.f64 t) t\_s = (copysign.f64 #s(literal 1 binary64) t) (FPCore (t_s t_m l k) :precision binary64 (* t_s (/ 2.0 (* (* k k) (* (* (/ t_m (* l l)) k) k)))))
t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
return t_s * (2.0 / ((k * k) * (((t_m / (l * l)) * k) * k)));
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
code = t_s * (2.0d0 / ((k * k) * (((t_m / (l * l)) * k) * k)))
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
return t_s * (2.0 / ((k * k) * (((t_m / (l * l)) * k) * k)));
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): return t_s * (2.0 / ((k * k) * (((t_m / (l * l)) * k) * k)))
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) return Float64(t_s * Float64(2.0 / Float64(Float64(k * k) * Float64(Float64(Float64(t_m / Float64(l * l)) * k) * k)))) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp = code(t_s, t_m, l, k) tmp = t_s * (2.0 / ((k * k) * (((t_m / (l * l)) * k) * k))); end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * N[(2.0 / N[(N[(k * k), $MachinePrecision] * N[(N[(N[(t$95$m / N[(l * l), $MachinePrecision]), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \frac{2}{\left(k \cdot k\right) \cdot \left(\left(\frac{t\_m}{\ell \cdot \ell} \cdot k\right) \cdot k\right)}
\end{array}
Initial program 61.1%
Taylor expanded in k around inf
*-commutativeN/A
unpow2N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites69.0%
Taylor expanded in t around 0
Applied rewrites66.8%
Taylor expanded in k around 0
Applied rewrites61.1%
Applied rewrites58.5%
herbie shell --seed 2024314
(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))))