
(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 21 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 5.4e-11)
(/ 2.0 (* (/ (* (* (/ k l) t_m) k) (cos k)) (/ (pow (sin k) 2.0) l)))
(/
2.0
(*
(* t_m (* (/ t_m l) (* (/ (* (sin k) t_m) l) (tan k))))
(+ (+ 1.0 (pow (/ k t_m) 2.0)) 1.0))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 5.4e-11) {
tmp = 2.0 / (((((k / l) * t_m) * k) / cos(k)) * (pow(sin(k), 2.0) / l));
} else {
tmp = 2.0 / ((t_m * ((t_m / l) * (((sin(k) * t_m) / l) * tan(k)))) * ((1.0 + pow((k / t_m), 2.0)) + 1.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.4d-11) then
tmp = 2.0d0 / (((((k / l) * t_m) * k) / cos(k)) * ((sin(k) ** 2.0d0) / l))
else
tmp = 2.0d0 / ((t_m * ((t_m / l) * (((sin(k) * t_m) / l) * tan(k)))) * ((1.0d0 + ((k / t_m) ** 2.0d0)) + 1.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.4e-11) {
tmp = 2.0 / (((((k / l) * t_m) * k) / Math.cos(k)) * (Math.pow(Math.sin(k), 2.0) / l));
} else {
tmp = 2.0 / ((t_m * ((t_m / l) * (((Math.sin(k) * t_m) / l) * Math.tan(k)))) * ((1.0 + Math.pow((k / t_m), 2.0)) + 1.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.4e-11: tmp = 2.0 / (((((k / l) * t_m) * k) / math.cos(k)) * (math.pow(math.sin(k), 2.0) / l)) else: tmp = 2.0 / ((t_m * ((t_m / l) * (((math.sin(k) * t_m) / l) * math.tan(k)))) * ((1.0 + math.pow((k / t_m), 2.0)) + 1.0)) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 5.4e-11) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(k / l) * t_m) * k) / cos(k)) * Float64((sin(k) ^ 2.0) / l))); else tmp = Float64(2.0 / Float64(Float64(t_m * Float64(Float64(t_m / l) * Float64(Float64(Float64(sin(k) * t_m) / l) * tan(k)))) * Float64(Float64(1.0 + (Float64(k / t_m) ^ 2.0)) + 1.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.4e-11) tmp = 2.0 / (((((k / l) * t_m) * k) / cos(k)) * ((sin(k) ^ 2.0) / l)); else tmp = 2.0 / ((t_m * ((t_m / l) * (((sin(k) * t_m) / l) * tan(k)))) * ((1.0 + ((k / t_m) ^ 2.0)) + 1.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.4e-11], N[(2.0 / N[(N[(N[(N[(N[(k / l), $MachinePrecision] * t$95$m), $MachinePrecision] * k), $MachinePrecision] / N[Cos[k], $MachinePrecision]), $MachinePrecision] * N[(N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(t$95$m * N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(N[(N[Sin[k], $MachinePrecision] * t$95$m), $MachinePrecision] / l), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(1.0 + N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 5.4 \cdot 10^{-11}:\\
\;\;\;\;\frac{2}{\frac{\left(\frac{k}{\ell} \cdot t\_m\right) \cdot k}{\cos k} \cdot \frac{{\sin k}^{2}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(t\_m \cdot \left(\frac{t\_m}{\ell} \cdot \left(\frac{\sin k \cdot t\_m}{\ell} \cdot \tan k\right)\right)\right) \cdot \left(\left(1 + {\left(\frac{k}{t\_m}\right)}^{2}\right) + 1\right)}\\
\end{array}
\end{array}
if t < 5.40000000000000009e-11Initial program 45.1%
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.f6471.1
Applied rewrites71.1%
Applied rewrites80.8%
Applied rewrites81.3%
if 5.40000000000000009e-11 < t Initial program 60.6%
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
lift-*.f64N/A
lift-pow.f64N/A
unpow3N/A
associate-*l*N/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f6476.2
Applied rewrites76.2%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-/.f64N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6489.6
lift-*.f64N/A
*-commutativeN/A
lower-*.f6489.6
Applied rewrites89.6%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(let* ((t_2
(*
(* (* (/ (pow t_m 3.0) (* l l)) (sin k)) (tan k))
(+ (+ 1.0 (pow (/ k t_m) 2.0)) 1.0))))
(*
t_s
(if (or (<= t_2 0.0) (not (<= t_2 INFINITY)))
(/ 2.0 (* (* (* (/ k l) t_m) k) (/ (* (tan k) (sin k)) l)))
(/ 2.0 (* (pow (* (/ (pow t_m 1.5) l) k) 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 t_2 = (((pow(t_m, 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + pow((k / t_m), 2.0)) + 1.0);
double tmp;
if ((t_2 <= 0.0) || !(t_2 <= ((double) INFINITY))) {
tmp = 2.0 / ((((k / l) * t_m) * k) * ((tan(k) * sin(k)) / l));
} else {
tmp = 2.0 / (pow(((pow(t_m, 1.5) / l) * k), 2.0) * 2.0);
}
return t_s * tmp;
}
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double t_2 = (((Math.pow(t_m, 3.0) / (l * l)) * Math.sin(k)) * Math.tan(k)) * ((1.0 + Math.pow((k / t_m), 2.0)) + 1.0);
double tmp;
if ((t_2 <= 0.0) || !(t_2 <= Double.POSITIVE_INFINITY)) {
tmp = 2.0 / ((((k / l) * t_m) * k) * ((Math.tan(k) * Math.sin(k)) / l));
} else {
tmp = 2.0 / (Math.pow(((Math.pow(t_m, 1.5) / l) * k), 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): t_2 = (((math.pow(t_m, 3.0) / (l * l)) * math.sin(k)) * math.tan(k)) * ((1.0 + math.pow((k / t_m), 2.0)) + 1.0) tmp = 0 if (t_2 <= 0.0) or not (t_2 <= math.inf): tmp = 2.0 / ((((k / l) * t_m) * k) * ((math.tan(k) * math.sin(k)) / l)) else: tmp = 2.0 / (math.pow(((math.pow(t_m, 1.5) / l) * k), 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) t_2 = Float64(Float64(Float64(Float64((t_m ^ 3.0) / Float64(l * l)) * sin(k)) * tan(k)) * Float64(Float64(1.0 + (Float64(k / t_m) ^ 2.0)) + 1.0)) tmp = 0.0 if ((t_2 <= 0.0) || !(t_2 <= Inf)) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(k / l) * t_m) * k) * Float64(Float64(tan(k) * sin(k)) / l))); else tmp = Float64(2.0 / Float64((Float64(Float64((t_m ^ 1.5) / l) * k) ^ 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) t_2 = ((((t_m ^ 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + ((k / t_m) ^ 2.0)) + 1.0); tmp = 0.0; if ((t_2 <= 0.0) || ~((t_2 <= Inf))) tmp = 2.0 / ((((k / l) * t_m) * k) * ((tan(k) * sin(k)) / l)); else tmp = 2.0 / (((((t_m ^ 1.5) / l) * k) ^ 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_] := Block[{t$95$2 = N[(N[(N[(N[(N[Power[t$95$m, 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$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[Or[LessEqual[t$95$2, 0.0], N[Not[LessEqual[t$95$2, Infinity]], $MachinePrecision]], N[(2.0 / N[(N[(N[(N[(k / l), $MachinePrecision] * t$95$m), $MachinePrecision] * k), $MachinePrecision] * N[(N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[Power[N[(N[(N[Power[t$95$m, 1.5], $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision], 2.0], $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := \left(\left(\frac{{t\_m}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t\_m}\right)}^{2}\right) + 1\right)\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_2 \leq 0 \lor \neg \left(t\_2 \leq \infty\right):\\
\;\;\;\;\frac{2}{\left(\left(\frac{k}{\ell} \cdot t\_m\right) \cdot k\right) \cdot \frac{\tan k \cdot \sin k}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{{\left(\frac{{t\_m}^{1.5}}{\ell} \cdot k\right)}^{2} \cdot 2}\\
\end{array}
\end{array}
\end{array}
if (*.f64 (*.f64 (*.f64 (/.f64 (pow.f64 t #s(literal 3 binary64)) (*.f64 l l)) (sin.f64 k)) (tan.f64 k)) (+.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (/.f64 k t) #s(literal 2 binary64))) #s(literal 1 binary64))) < 0.0 or +inf.0 < (*.f64 (*.f64 (*.f64 (/.f64 (pow.f64 t #s(literal 3 binary64)) (*.f64 l l)) (sin.f64 k)) (tan.f64 k)) (+.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (/.f64 k t) #s(literal 2 binary64))) #s(literal 1 binary64))) Initial program 44.1%
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.f6470.7
Applied rewrites70.7%
Applied rewrites81.0%
Applied rewrites81.0%
if 0.0 < (*.f64 (*.f64 (*.f64 (/.f64 (pow.f64 t #s(literal 3 binary64)) (*.f64 l l)) (sin.f64 k)) (tan.f64 k)) (+.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (/.f64 k t) #s(literal 2 binary64))) #s(literal 1 binary64))) < +inf.0Initial program 65.9%
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.f6456.0
Applied rewrites56.0%
Applied rewrites61.6%
Final simplification77.2%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(let* ((t_2
(*
(* (* (/ (pow t_m 3.0) (* l l)) (sin k)) (tan k))
(+ (+ 1.0 (pow (/ k t_m) 2.0)) 1.0))))
(*
t_s
(if (or (<= t_2 0.0) (not (<= t_2 INFINITY)))
(/ 2.0 (* t_m (* (/ (/ (* k k) l) l) (* (tan k) (sin k)))))
(/ 2.0 (* (pow (* (/ (pow t_m 1.5) l) k) 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 t_2 = (((pow(t_m, 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + pow((k / t_m), 2.0)) + 1.0);
double tmp;
if ((t_2 <= 0.0) || !(t_2 <= ((double) INFINITY))) {
tmp = 2.0 / (t_m * ((((k * k) / l) / l) * (tan(k) * sin(k))));
} else {
tmp = 2.0 / (pow(((pow(t_m, 1.5) / l) * k), 2.0) * 2.0);
}
return t_s * tmp;
}
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double t_2 = (((Math.pow(t_m, 3.0) / (l * l)) * Math.sin(k)) * Math.tan(k)) * ((1.0 + Math.pow((k / t_m), 2.0)) + 1.0);
double tmp;
if ((t_2 <= 0.0) || !(t_2 <= Double.POSITIVE_INFINITY)) {
tmp = 2.0 / (t_m * ((((k * k) / l) / l) * (Math.tan(k) * Math.sin(k))));
} else {
tmp = 2.0 / (Math.pow(((Math.pow(t_m, 1.5) / l) * k), 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): t_2 = (((math.pow(t_m, 3.0) / (l * l)) * math.sin(k)) * math.tan(k)) * ((1.0 + math.pow((k / t_m), 2.0)) + 1.0) tmp = 0 if (t_2 <= 0.0) or not (t_2 <= math.inf): tmp = 2.0 / (t_m * ((((k * k) / l) / l) * (math.tan(k) * math.sin(k)))) else: tmp = 2.0 / (math.pow(((math.pow(t_m, 1.5) / l) * k), 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) t_2 = Float64(Float64(Float64(Float64((t_m ^ 3.0) / Float64(l * l)) * sin(k)) * tan(k)) * Float64(Float64(1.0 + (Float64(k / t_m) ^ 2.0)) + 1.0)) tmp = 0.0 if ((t_2 <= 0.0) || !(t_2 <= Inf)) tmp = Float64(2.0 / Float64(t_m * Float64(Float64(Float64(Float64(k * k) / l) / l) * Float64(tan(k) * sin(k))))); else tmp = Float64(2.0 / Float64((Float64(Float64((t_m ^ 1.5) / l) * k) ^ 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) t_2 = ((((t_m ^ 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + ((k / t_m) ^ 2.0)) + 1.0); tmp = 0.0; if ((t_2 <= 0.0) || ~((t_2 <= Inf))) tmp = 2.0 / (t_m * ((((k * k) / l) / l) * (tan(k) * sin(k)))); else tmp = 2.0 / (((((t_m ^ 1.5) / l) * k) ^ 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_] := Block[{t$95$2 = N[(N[(N[(N[(N[Power[t$95$m, 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$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[Or[LessEqual[t$95$2, 0.0], N[Not[LessEqual[t$95$2, Infinity]], $MachinePrecision]], N[(2.0 / N[(t$95$m * N[(N[(N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision] / l), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[Power[N[(N[(N[Power[t$95$m, 1.5], $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision], 2.0], $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := \left(\left(\frac{{t\_m}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t\_m}\right)}^{2}\right) + 1\right)\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_2 \leq 0 \lor \neg \left(t\_2 \leq \infty\right):\\
\;\;\;\;\frac{2}{t\_m \cdot \left(\frac{\frac{k \cdot k}{\ell}}{\ell} \cdot \left(\tan k \cdot \sin k\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{{\left(\frac{{t\_m}^{1.5}}{\ell} \cdot k\right)}^{2} \cdot 2}\\
\end{array}
\end{array}
\end{array}
if (*.f64 (*.f64 (*.f64 (/.f64 (pow.f64 t #s(literal 3 binary64)) (*.f64 l l)) (sin.f64 k)) (tan.f64 k)) (+.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (/.f64 k t) #s(literal 2 binary64))) #s(literal 1 binary64))) < 0.0 or +inf.0 < (*.f64 (*.f64 (*.f64 (/.f64 (pow.f64 t #s(literal 3 binary64)) (*.f64 l l)) (sin.f64 k)) (tan.f64 k)) (+.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (/.f64 k t) #s(literal 2 binary64))) #s(literal 1 binary64))) Initial program 44.1%
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.f6470.7
Applied rewrites70.7%
Applied rewrites68.6%
if 0.0 < (*.f64 (*.f64 (*.f64 (/.f64 (pow.f64 t #s(literal 3 binary64)) (*.f64 l l)) (sin.f64 k)) (tan.f64 k)) (+.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (/.f64 k t) #s(literal 2 binary64))) #s(literal 1 binary64))) < +inf.0Initial program 65.9%
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.f6456.0
Applied rewrites56.0%
Applied rewrites61.6%
Final simplification67.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 (<=
(/
2.0
(*
(* (* (/ (pow t_m 3.0) (* l l)) (sin k)) (tan k))
(+ (+ 1.0 (pow (/ k t_m) 2.0)) 1.0)))
5e+291)
(/ 2.0 (/ (* (* (* (* k k) 2.0) t_m) (* t_m t_m)) (* l l)))
(/ 2.0 (* (/ (/ (* k k) l) l) (* t_m (* k k)))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if ((2.0 / ((((pow(t_m, 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + pow((k / t_m), 2.0)) + 1.0))) <= 5e+291) {
tmp = 2.0 / (((((k * k) * 2.0) * t_m) * (t_m * t_m)) / (l * l));
} else {
tmp = 2.0 / ((((k * k) / l) / l) * (t_m * (k * k)));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if ((2.0d0 / (((((t_m ** 3.0d0) / (l * l)) * sin(k)) * tan(k)) * ((1.0d0 + ((k / t_m) ** 2.0d0)) + 1.0d0))) <= 5d+291) then
tmp = 2.0d0 / (((((k * k) * 2.0d0) * t_m) * (t_m * t_m)) / (l * l))
else
tmp = 2.0d0 / ((((k * k) / l) / l) * (t_m * (k * k)))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if ((2.0 / ((((Math.pow(t_m, 3.0) / (l * l)) * Math.sin(k)) * Math.tan(k)) * ((1.0 + Math.pow((k / t_m), 2.0)) + 1.0))) <= 5e+291) {
tmp = 2.0 / (((((k * k) * 2.0) * t_m) * (t_m * t_m)) / (l * l));
} else {
tmp = 2.0 / ((((k * k) / l) / l) * (t_m * (k * k)));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if (2.0 / ((((math.pow(t_m, 3.0) / (l * l)) * math.sin(k)) * math.tan(k)) * ((1.0 + math.pow((k / t_m), 2.0)) + 1.0))) <= 5e+291: tmp = 2.0 / (((((k * k) * 2.0) * t_m) * (t_m * t_m)) / (l * l)) else: tmp = 2.0 / ((((k * k) / l) / l) * (t_m * (k * k))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (Float64(2.0 / Float64(Float64(Float64(Float64((t_m ^ 3.0) / Float64(l * l)) * sin(k)) * tan(k)) * Float64(Float64(1.0 + (Float64(k / t_m) ^ 2.0)) + 1.0))) <= 5e+291) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(k * k) * 2.0) * t_m) * Float64(t_m * t_m)) / Float64(l * l))); else tmp = Float64(2.0 / Float64(Float64(Float64(Float64(k * k) / l) / l) * Float64(t_m * Float64(k * k)))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if ((2.0 / (((((t_m ^ 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + ((k / t_m) ^ 2.0)) + 1.0))) <= 5e+291) tmp = 2.0 / (((((k * k) * 2.0) * t_m) * (t_m * t_m)) / (l * l)); else tmp = 2.0 / ((((k * k) / l) / l) * (t_m * (k * k))); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[N[(2.0 / N[(N[(N[(N[(N[Power[t$95$m, 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$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 5e+291], N[(2.0 / N[(N[(N[(N[(N[(k * k), $MachinePrecision] * 2.0), $MachinePrecision] * t$95$m), $MachinePrecision] * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision] / l), $MachinePrecision] * N[(t$95$m * 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}\;\frac{2}{\left(\left(\frac{{t\_m}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t\_m}\right)}^{2}\right) + 1\right)} \leq 5 \cdot 10^{+291}:\\
\;\;\;\;\frac{2}{\frac{\left(\left(\left(k \cdot k\right) \cdot 2\right) \cdot t\_m\right) \cdot \left(t\_m \cdot t\_m\right)}{\ell \cdot \ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{\frac{k \cdot k}{\ell}}{\ell} \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)}\\
\end{array}
\end{array}
if (/.f64 #s(literal 2 binary64) (*.f64 (*.f64 (*.f64 (/.f64 (pow.f64 t #s(literal 3 binary64)) (*.f64 l l)) (sin.f64 k)) (tan.f64 k)) (+.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (/.f64 k t) #s(literal 2 binary64))) #s(literal 1 binary64)))) < 5.0000000000000001e291Initial program 73.2%
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.f6465.3
Applied rewrites65.3%
Applied rewrites66.7%
Applied rewrites65.6%
Applied rewrites66.9%
if 5.0000000000000001e291 < (/.f64 #s(literal 2 binary64) (*.f64 (*.f64 (*.f64 (/.f64 (pow.f64 t #s(literal 3 binary64)) (*.f64 l l)) (sin.f64 k)) (tan.f64 k)) (+.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (/.f64 k t) #s(literal 2 binary64))) #s(literal 1 binary64)))) Initial program 20.9%
Taylor expanded in t around 0
distribute-rgt-inN/A
associate-*l*N/A
associate-*l/N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
Applied rewrites59.1%
Taylor expanded in k around 0
Applied rewrites41.5%
Taylor expanded in t around 0
Applied rewrites44.3%
Taylor expanded in k around 0
Applied rewrites51.1%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 7.5e-32)
(/ 2.0 (* (/ (* (* (/ k l) t_m) k) (cos k)) (/ (pow (sin k) 2.0) l)))
(/
2.0
(*
(/ (* (sin k) t_m) l)
(* (* (/ t_m l) t_m) (* (+ (pow (/ k t_m) 2.0) 2.0) (tan k))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 7.5e-32) {
tmp = 2.0 / (((((k / l) * t_m) * k) / cos(k)) * (pow(sin(k), 2.0) / l));
} else {
tmp = 2.0 / (((sin(k) * t_m) / l) * (((t_m / l) * t_m) * ((pow((k / t_m), 2.0) + 2.0) * tan(k))));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (t_m <= 7.5d-32) then
tmp = 2.0d0 / (((((k / l) * t_m) * k) / cos(k)) * ((sin(k) ** 2.0d0) / l))
else
tmp = 2.0d0 / (((sin(k) * t_m) / l) * (((t_m / l) * t_m) * ((((k / t_m) ** 2.0d0) + 2.0d0) * tan(k))))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 7.5e-32) {
tmp = 2.0 / (((((k / l) * t_m) * k) / Math.cos(k)) * (Math.pow(Math.sin(k), 2.0) / l));
} else {
tmp = 2.0 / (((Math.sin(k) * t_m) / l) * (((t_m / l) * t_m) * ((Math.pow((k / t_m), 2.0) + 2.0) * Math.tan(k))));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if t_m <= 7.5e-32: tmp = 2.0 / (((((k / l) * t_m) * k) / math.cos(k)) * (math.pow(math.sin(k), 2.0) / l)) else: tmp = 2.0 / (((math.sin(k) * t_m) / l) * (((t_m / l) * t_m) * ((math.pow((k / t_m), 2.0) + 2.0) * math.tan(k)))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 7.5e-32) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(k / l) * t_m) * k) / cos(k)) * Float64((sin(k) ^ 2.0) / l))); else tmp = Float64(2.0 / Float64(Float64(Float64(sin(k) * t_m) / l) * Float64(Float64(Float64(t_m / l) * t_m) * Float64(Float64((Float64(k / t_m) ^ 2.0) + 2.0) * tan(k))))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (t_m <= 7.5e-32) tmp = 2.0 / (((((k / l) * t_m) * k) / cos(k)) * ((sin(k) ^ 2.0) / l)); else tmp = 2.0 / (((sin(k) * t_m) / l) * (((t_m / l) * t_m) * ((((k / t_m) ^ 2.0) + 2.0) * tan(k)))); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 7.5e-32], N[(2.0 / N[(N[(N[(N[(N[(k / l), $MachinePrecision] * t$95$m), $MachinePrecision] * k), $MachinePrecision] / N[Cos[k], $MachinePrecision]), $MachinePrecision] * N[(N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[Sin[k], $MachinePrecision] * t$95$m), $MachinePrecision] / l), $MachinePrecision] * N[(N[(N[(t$95$m / l), $MachinePrecision] * t$95$m), $MachinePrecision] * N[(N[(N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision] + 2.0), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 7.5 \cdot 10^{-32}:\\
\;\;\;\;\frac{2}{\frac{\left(\frac{k}{\ell} \cdot t\_m\right) \cdot k}{\cos k} \cdot \frac{{\sin k}^{2}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{\sin k \cdot t\_m}{\ell} \cdot \left(\left(\frac{t\_m}{\ell} \cdot t\_m\right) \cdot \left(\left({\left(\frac{k}{t\_m}\right)}^{2} + 2\right) \cdot \tan k\right)\right)}\\
\end{array}
\end{array}
if t < 7.49999999999999953e-32Initial program 45.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.f6471.9
Applied rewrites71.9%
Applied rewrites81.3%
Applied rewrites81.8%
if 7.49999999999999953e-32 < t Initial program 59.0%
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
lift-*.f64N/A
lift-pow.f64N/A
unpow3N/A
associate-*l*N/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f64N/A
lower-/.f64N/A
lower-*.f6475.6
Applied rewrites75.6%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lower-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-*.f64N/A
Applied rewrites88.2%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 3.8e-138)
(/ 2.0 (* (pow (* (/ (pow t_m 1.5) l) k) 2.0) 2.0))
(if (<= k 1.4e+61)
(/
2.0
(*
(fma (* t_m t_m) 2.0 (* k k))
(* (/ (tan k) l) (* (/ (sin k) l) t_m))))
(/ 2.0 (* (/ (* (* (/ k l) t_m) k) (cos k)) (/ (pow (sin k) 2.0) l)))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 3.8e-138) {
tmp = 2.0 / (pow(((pow(t_m, 1.5) / l) * k), 2.0) * 2.0);
} else if (k <= 1.4e+61) {
tmp = 2.0 / (fma((t_m * t_m), 2.0, (k * k)) * ((tan(k) / l) * ((sin(k) / l) * t_m)));
} else {
tmp = 2.0 / (((((k / l) * t_m) * k) / cos(k)) * (pow(sin(k), 2.0) / l));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 3.8e-138) tmp = Float64(2.0 / Float64((Float64(Float64((t_m ^ 1.5) / l) * k) ^ 2.0) * 2.0)); elseif (k <= 1.4e+61) tmp = Float64(2.0 / Float64(fma(Float64(t_m * t_m), 2.0, Float64(k * k)) * Float64(Float64(tan(k) / l) * Float64(Float64(sin(k) / l) * t_m)))); else tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(k / l) * t_m) * k) / cos(k)) * Float64((sin(k) ^ 2.0) / l))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 3.8e-138], N[(2.0 / N[(N[Power[N[(N[(N[Power[t$95$m, 1.5], $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision], 2.0], $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 1.4e+61], N[(2.0 / N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] * 2.0 + N[(k * k), $MachinePrecision]), $MachinePrecision] * N[(N[(N[Tan[k], $MachinePrecision] / l), $MachinePrecision] * N[(N[(N[Sin[k], $MachinePrecision] / l), $MachinePrecision] * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[(N[(k / l), $MachinePrecision] * t$95$m), $MachinePrecision] * k), $MachinePrecision] / N[Cos[k], $MachinePrecision]), $MachinePrecision] * N[(N[Power[N[Sin[k], $MachinePrecision], 2.0], $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}\;k \leq 3.8 \cdot 10^{-138}:\\
\;\;\;\;\frac{2}{{\left(\frac{{t\_m}^{1.5}}{\ell} \cdot k\right)}^{2} \cdot 2}\\
\mathbf{elif}\;k \leq 1.4 \cdot 10^{+61}:\\
\;\;\;\;\frac{2}{\mathsf{fma}\left(t\_m \cdot t\_m, 2, k \cdot k\right) \cdot \left(\frac{\tan k}{\ell} \cdot \left(\frac{\sin k}{\ell} \cdot t\_m\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\frac{\left(\frac{k}{\ell} \cdot t\_m\right) \cdot k}{\cos k} \cdot \frac{{\sin k}^{2}}{\ell}}\\
\end{array}
\end{array}
if k < 3.8000000000000002e-138Initial program 49.1%
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.f6456.0
Applied rewrites56.0%
Applied rewrites32.7%
if 3.8000000000000002e-138 < k < 1.4000000000000001e61Initial program 47.2%
Taylor expanded in t around 0
distribute-rgt-inN/A
associate-*l*N/A
associate-*l/N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
Applied rewrites71.6%
Applied rewrites73.7%
Applied rewrites73.8%
Applied rewrites83.3%
if 1.4000000000000001e61 < k Initial program 47.1%
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.f6474.3
Applied rewrites74.3%
Applied rewrites90.8%
Applied rewrites90.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 3.8e-138)
(/ 2.0 (* (pow (* (/ (pow t_m 1.5) l) k) 2.0) 2.0))
(if (<= k 1.4e+61)
(/
2.0
(*
(fma (* t_m t_m) 2.0 (* k k))
(* (/ (tan k) l) (* (/ (sin k) l) t_m))))
(/
2.0
(pow (/ l (* (* (tan k) (sin k)) (* (* (/ k l) t_m) k))) -1.0))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 3.8e-138) {
tmp = 2.0 / (pow(((pow(t_m, 1.5) / l) * k), 2.0) * 2.0);
} else if (k <= 1.4e+61) {
tmp = 2.0 / (fma((t_m * t_m), 2.0, (k * k)) * ((tan(k) / l) * ((sin(k) / l) * t_m)));
} else {
tmp = 2.0 / pow((l / ((tan(k) * sin(k)) * (((k / l) * t_m) * k))), -1.0);
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 3.8e-138) tmp = Float64(2.0 / Float64((Float64(Float64((t_m ^ 1.5) / l) * k) ^ 2.0) * 2.0)); elseif (k <= 1.4e+61) tmp = Float64(2.0 / Float64(fma(Float64(t_m * t_m), 2.0, Float64(k * k)) * Float64(Float64(tan(k) / l) * Float64(Float64(sin(k) / l) * t_m)))); else tmp = Float64(2.0 / (Float64(l / Float64(Float64(tan(k) * sin(k)) * Float64(Float64(Float64(k / l) * t_m) * k))) ^ -1.0)); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 3.8e-138], N[(2.0 / N[(N[Power[N[(N[(N[Power[t$95$m, 1.5], $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision], 2.0], $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 1.4e+61], N[(2.0 / N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] * 2.0 + N[(k * k), $MachinePrecision]), $MachinePrecision] * N[(N[(N[Tan[k], $MachinePrecision] / l), $MachinePrecision] * N[(N[(N[Sin[k], $MachinePrecision] / l), $MachinePrecision] * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[Power[N[(l / N[(N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[(N[(N[(k / l), $MachinePrecision] * t$95$m), $MachinePrecision] * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], -1.0], $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 3.8 \cdot 10^{-138}:\\
\;\;\;\;\frac{2}{{\left(\frac{{t\_m}^{1.5}}{\ell} \cdot k\right)}^{2} \cdot 2}\\
\mathbf{elif}\;k \leq 1.4 \cdot 10^{+61}:\\
\;\;\;\;\frac{2}{\mathsf{fma}\left(t\_m \cdot t\_m, 2, k \cdot k\right) \cdot \left(\frac{\tan k}{\ell} \cdot \left(\frac{\sin k}{\ell} \cdot t\_m\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{{\left(\frac{\ell}{\left(\tan k \cdot \sin k\right) \cdot \left(\left(\frac{k}{\ell} \cdot t\_m\right) \cdot k\right)}\right)}^{-1}}\\
\end{array}
\end{array}
if k < 3.8000000000000002e-138Initial program 49.1%
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.f6456.0
Applied rewrites56.0%
Applied rewrites32.7%
if 3.8000000000000002e-138 < k < 1.4000000000000001e61Initial program 47.2%
Taylor expanded in t around 0
distribute-rgt-inN/A
associate-*l*N/A
associate-*l/N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
Applied rewrites71.6%
Applied rewrites73.7%
Applied rewrites73.8%
Applied rewrites83.3%
if 1.4000000000000001e61 < k Initial program 47.1%
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.f6474.3
Applied rewrites74.3%
Applied rewrites90.8%
Applied rewrites90.8%
Final simplification50.3%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 2.6e-77)
(/
2.0
(*
(/ (* (* (/ k l) t_m) k) (cos k))
(*
(fma
(fma (* (/ 0.044444444444444446 l) k) k (/ -0.3333333333333333 l))
(* k k)
(pow l -1.0))
(* k k))))
(if (<= t_m 3.2e+205)
(/ 2.0 (* (pow (* (/ (pow t_m 1.5) l) k) 2.0) 2.0))
(/ 2.0 (* k (* k (/ 2.0 (/ (pow (/ t_m l) -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 (t_m <= 2.6e-77) {
tmp = 2.0 / (((((k / l) * t_m) * k) / cos(k)) * (fma(fma(((0.044444444444444446 / l) * k), k, (-0.3333333333333333 / l)), (k * k), pow(l, -1.0)) * (k * k)));
} else if (t_m <= 3.2e+205) {
tmp = 2.0 / (pow(((pow(t_m, 1.5) / l) * k), 2.0) * 2.0);
} else {
tmp = 2.0 / (k * (k * (2.0 / (pow((t_m / l), -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 (t_m <= 2.6e-77) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(k / l) * t_m) * k) / cos(k)) * Float64(fma(fma(Float64(Float64(0.044444444444444446 / l) * k), k, Float64(-0.3333333333333333 / l)), Float64(k * k), (l ^ -1.0)) * Float64(k * k)))); elseif (t_m <= 3.2e+205) tmp = Float64(2.0 / Float64((Float64(Float64((t_m ^ 1.5) / l) * k) ^ 2.0) * 2.0)); else tmp = Float64(2.0 / Float64(k * Float64(k * Float64(2.0 / Float64((Float64(t_m / l) ^ -2.0) / t_m))))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 2.6e-77], N[(2.0 / N[(N[(N[(N[(N[(k / l), $MachinePrecision] * t$95$m), $MachinePrecision] * k), $MachinePrecision] / N[Cos[k], $MachinePrecision]), $MachinePrecision] * N[(N[(N[(N[(N[(0.044444444444444446 / l), $MachinePrecision] * k), $MachinePrecision] * k + N[(-0.3333333333333333 / l), $MachinePrecision]), $MachinePrecision] * N[(k * k), $MachinePrecision] + N[Power[l, -1.0], $MachinePrecision]), $MachinePrecision] * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 3.2e+205], N[(2.0 / N[(N[Power[N[(N[(N[Power[t$95$m, 1.5], $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision], 2.0], $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(k * N[(k * N[(2.0 / N[(N[Power[N[(t$95$m / l), $MachinePrecision], -2.0], $MachinePrecision] / t$95$m), $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 2.6 \cdot 10^{-77}:\\
\;\;\;\;\frac{2}{\frac{\left(\frac{k}{\ell} \cdot t\_m\right) \cdot k}{\cos k} \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{0.044444444444444446}{\ell} \cdot k, k, \frac{-0.3333333333333333}{\ell}\right), k \cdot k, {\ell}^{-1}\right) \cdot \left(k \cdot k\right)\right)}\\
\mathbf{elif}\;t\_m \leq 3.2 \cdot 10^{+205}:\\
\;\;\;\;\frac{2}{{\left(\frac{{t\_m}^{1.5}}{\ell} \cdot k\right)}^{2} \cdot 2}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{k \cdot \left(k \cdot \frac{2}{\frac{{\left(\frac{t\_m}{\ell}\right)}^{-2}}{t\_m}}\right)}\\
\end{array}
\end{array}
if t < 2.6000000000000001e-77Initial program 44.3%
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.f6472.1
Applied rewrites72.1%
Applied rewrites81.6%
Applied rewrites82.2%
Taylor expanded in k around 0
Applied rewrites60.6%
if 2.6000000000000001e-77 < t < 3.19999999999999996e205Initial program 56.2%
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.f6450.7
Applied rewrites50.7%
Applied rewrites71.6%
if 3.19999999999999996e205 < t Initial program 69.0%
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.f6468.9
Applied rewrites68.9%
Applied rewrites68.9%
Applied rewrites62.5%
Applied rewrites94.0%
Final simplification65.1%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 1.6e-90)
(/
2.0
(*
(/ (* (* (/ k l) t_m) k) (cos k))
(*
(fma
(fma (* (/ 0.044444444444444446 l) k) k (/ -0.3333333333333333 l))
(* k k)
(pow l -1.0))
(* k k))))
(if (<= t_m 1e+104)
(/
2.0
(*
(/
(* (* (fma -0.3333333333333333 (/ (* k k) l) (pow l -1.0)) k) k)
(* l (cos k)))
(* t_m (fma (* t_m t_m) 2.0 (* k k)))))
(/ 2.0 (* k (* k (/ 2.0 (/ (pow (/ t_m l) -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 (t_m <= 1.6e-90) {
tmp = 2.0 / (((((k / l) * t_m) * k) / cos(k)) * (fma(fma(((0.044444444444444446 / l) * k), k, (-0.3333333333333333 / l)), (k * k), pow(l, -1.0)) * (k * k)));
} else if (t_m <= 1e+104) {
tmp = 2.0 / ((((fma(-0.3333333333333333, ((k * k) / l), pow(l, -1.0)) * k) * k) / (l * cos(k))) * (t_m * fma((t_m * t_m), 2.0, (k * k))));
} else {
tmp = 2.0 / (k * (k * (2.0 / (pow((t_m / l), -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 (t_m <= 1.6e-90) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(k / l) * t_m) * k) / cos(k)) * Float64(fma(fma(Float64(Float64(0.044444444444444446 / l) * k), k, Float64(-0.3333333333333333 / l)), Float64(k * k), (l ^ -1.0)) * Float64(k * k)))); elseif (t_m <= 1e+104) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(fma(-0.3333333333333333, Float64(Float64(k * k) / l), (l ^ -1.0)) * k) * k) / Float64(l * cos(k))) * Float64(t_m * fma(Float64(t_m * t_m), 2.0, Float64(k * k))))); else tmp = Float64(2.0 / Float64(k * Float64(k * Float64(2.0 / Float64((Float64(t_m / l) ^ -2.0) / t_m))))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 1.6e-90], N[(2.0 / N[(N[(N[(N[(N[(k / l), $MachinePrecision] * t$95$m), $MachinePrecision] * k), $MachinePrecision] / N[Cos[k], $MachinePrecision]), $MachinePrecision] * N[(N[(N[(N[(N[(0.044444444444444446 / l), $MachinePrecision] * k), $MachinePrecision] * k + N[(-0.3333333333333333 / l), $MachinePrecision]), $MachinePrecision] * N[(k * k), $MachinePrecision] + N[Power[l, -1.0], $MachinePrecision]), $MachinePrecision] * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 1e+104], N[(2.0 / N[(N[(N[(N[(N[(-0.3333333333333333 * N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision] + N[Power[l, -1.0], $MachinePrecision]), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision] / N[(l * N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(t$95$m * N[(N[(t$95$m * t$95$m), $MachinePrecision] * 2.0 + N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(k * N[(k * N[(2.0 / N[(N[Power[N[(t$95$m / l), $MachinePrecision], -2.0], $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 1.6 \cdot 10^{-90}:\\
\;\;\;\;\frac{2}{\frac{\left(\frac{k}{\ell} \cdot t\_m\right) \cdot k}{\cos k} \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(\frac{0.044444444444444446}{\ell} \cdot k, k, \frac{-0.3333333333333333}{\ell}\right), k \cdot k, {\ell}^{-1}\right) \cdot \left(k \cdot k\right)\right)}\\
\mathbf{elif}\;t\_m \leq 10^{+104}:\\
\;\;\;\;\frac{2}{\frac{\left(\mathsf{fma}\left(-0.3333333333333333, \frac{k \cdot k}{\ell}, {\ell}^{-1}\right) \cdot k\right) \cdot k}{\ell \cdot \cos k} \cdot \left(t\_m \cdot \mathsf{fma}\left(t\_m \cdot t\_m, 2, k \cdot k\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{k \cdot \left(k \cdot \frac{2}{\frac{{\left(\frac{t\_m}{\ell}\right)}^{-2}}{t\_m}}\right)}\\
\end{array}
\end{array}
if t < 1.60000000000000004e-90Initial program 44.0%
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.f6472.0
Applied rewrites72.0%
Applied rewrites81.5%
Applied rewrites82.1%
Taylor expanded in k around 0
Applied rewrites60.3%
if 1.60000000000000004e-90 < t < 1e104Initial program 66.6%
Taylor expanded in t around 0
distribute-rgt-inN/A
associate-*l*N/A
associate-*l/N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
Applied rewrites71.4%
Taylor expanded in k around 0
Applied rewrites69.2%
if 1e104 < t Initial program 50.8%
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.f6450.5
Applied rewrites50.5%
Applied rewrites59.5%
Applied rewrites56.2%
Applied rewrites74.9%
Final simplification63.6%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(let* ((t_2 (/ (* k k) l)) (t_3 (fma (* t_m t_m) 2.0 (* k k))))
(*
t_s
(if (<= t_m 7.2e-105)
(/ 2.0 (* t_3 (* t_m (/ t_2 l))))
(if (<= t_m 1e+104)
(/
2.0
(*
(/
(* (* (fma -0.3333333333333333 t_2 (pow l -1.0)) k) k)
(* l (cos k)))
(* t_m t_3)))
(/ 2.0 (* k (* k (/ 2.0 (/ (pow (/ t_m l) -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 t_2 = (k * k) / l;
double t_3 = fma((t_m * t_m), 2.0, (k * k));
double tmp;
if (t_m <= 7.2e-105) {
tmp = 2.0 / (t_3 * (t_m * (t_2 / l)));
} else if (t_m <= 1e+104) {
tmp = 2.0 / ((((fma(-0.3333333333333333, t_2, pow(l, -1.0)) * k) * k) / (l * cos(k))) * (t_m * t_3));
} else {
tmp = 2.0 / (k * (k * (2.0 / (pow((t_m / l), -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) t_2 = Float64(Float64(k * k) / l) t_3 = fma(Float64(t_m * t_m), 2.0, Float64(k * k)) tmp = 0.0 if (t_m <= 7.2e-105) tmp = Float64(2.0 / Float64(t_3 * Float64(t_m * Float64(t_2 / l)))); elseif (t_m <= 1e+104) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(fma(-0.3333333333333333, t_2, (l ^ -1.0)) * k) * k) / Float64(l * cos(k))) * Float64(t_m * t_3))); else tmp = Float64(2.0 / Float64(k * Float64(k * Float64(2.0 / Float64((Float64(t_m / l) ^ -2.0) / t_m))))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := Block[{t$95$2 = N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision]}, Block[{t$95$3 = N[(N[(t$95$m * t$95$m), $MachinePrecision] * 2.0 + N[(k * k), $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[t$95$m, 7.2e-105], N[(2.0 / N[(t$95$3 * N[(t$95$m * N[(t$95$2 / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 1e+104], N[(2.0 / N[(N[(N[(N[(N[(-0.3333333333333333 * t$95$2 + N[Power[l, -1.0], $MachinePrecision]), $MachinePrecision] * k), $MachinePrecision] * k), $MachinePrecision] / N[(l * N[Cos[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(t$95$m * t$95$3), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(k * N[(k * N[(2.0 / N[(N[Power[N[(t$95$m / l), $MachinePrecision], -2.0], $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]]]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := \frac{k \cdot k}{\ell}\\
t_3 := \mathsf{fma}\left(t\_m \cdot t\_m, 2, k \cdot k\right)\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 7.2 \cdot 10^{-105}:\\
\;\;\;\;\frac{2}{t\_3 \cdot \left(t\_m \cdot \frac{t\_2}{\ell}\right)}\\
\mathbf{elif}\;t\_m \leq 10^{+104}:\\
\;\;\;\;\frac{2}{\frac{\left(\mathsf{fma}\left(-0.3333333333333333, t\_2, {\ell}^{-1}\right) \cdot k\right) \cdot k}{\ell \cdot \cos k} \cdot \left(t\_m \cdot t\_3\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{k \cdot \left(k \cdot \frac{2}{\frac{{\left(\frac{t\_m}{\ell}\right)}^{-2}}{t\_m}}\right)}\\
\end{array}
\end{array}
\end{array}
if t < 7.19999999999999929e-105Initial program 43.8%
Taylor expanded in t around 0
distribute-rgt-inN/A
associate-*l*N/A
associate-*l/N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
Applied rewrites68.7%
Applied rewrites66.3%
Applied rewrites66.2%
Taylor expanded in k around 0
Applied rewrites63.5%
if 7.19999999999999929e-105 < t < 1e104Initial program 65.2%
Taylor expanded in t around 0
distribute-rgt-inN/A
associate-*l*N/A
associate-*l/N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
Applied rewrites71.7%
Taylor expanded in k around 0
Applied rewrites67.5%
if 1e104 < t Initial program 50.8%
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.f6450.5
Applied rewrites50.5%
Applied rewrites59.5%
Applied rewrites56.2%
Applied rewrites74.9%
Final simplification65.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 (<= k 3.8e-138)
(/ 2.0 (* (pow (* (/ (pow t_m 1.5) l) k) 2.0) 2.0))
(if (<= k 1.5e+90)
(/
2.0
(*
(fma (* t_m t_m) 2.0 (* k k))
(* (/ (tan k) l) (* (/ (sin k) l) t_m))))
(/ 2.0 (* (* (* (/ k l) t_m) k) (/ (* (tan k) (sin k)) l)))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 3.8e-138) {
tmp = 2.0 / (pow(((pow(t_m, 1.5) / l) * k), 2.0) * 2.0);
} else if (k <= 1.5e+90) {
tmp = 2.0 / (fma((t_m * t_m), 2.0, (k * k)) * ((tan(k) / l) * ((sin(k) / l) * t_m)));
} else {
tmp = 2.0 / ((((k / l) * t_m) * k) * ((tan(k) * sin(k)) / l));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 3.8e-138) tmp = Float64(2.0 / Float64((Float64(Float64((t_m ^ 1.5) / l) * k) ^ 2.0) * 2.0)); elseif (k <= 1.5e+90) tmp = Float64(2.0 / Float64(fma(Float64(t_m * t_m), 2.0, Float64(k * k)) * Float64(Float64(tan(k) / l) * Float64(Float64(sin(k) / l) * t_m)))); else tmp = Float64(2.0 / Float64(Float64(Float64(Float64(k / l) * t_m) * k) * Float64(Float64(tan(k) * sin(k)) / l))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 3.8e-138], N[(2.0 / N[(N[Power[N[(N[(N[Power[t$95$m, 1.5], $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision], 2.0], $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 1.5e+90], N[(2.0 / N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] * 2.0 + N[(k * k), $MachinePrecision]), $MachinePrecision] * N[(N[(N[Tan[k], $MachinePrecision] / l), $MachinePrecision] * N[(N[(N[Sin[k], $MachinePrecision] / l), $MachinePrecision] * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[(k / l), $MachinePrecision] * t$95$m), $MachinePrecision] * k), $MachinePrecision] * N[(N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $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}\;k \leq 3.8 \cdot 10^{-138}:\\
\;\;\;\;\frac{2}{{\left(\frac{{t\_m}^{1.5}}{\ell} \cdot k\right)}^{2} \cdot 2}\\
\mathbf{elif}\;k \leq 1.5 \cdot 10^{+90}:\\
\;\;\;\;\frac{2}{\mathsf{fma}\left(t\_m \cdot t\_m, 2, k \cdot k\right) \cdot \left(\frac{\tan k}{\ell} \cdot \left(\frac{\sin k}{\ell} \cdot t\_m\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\left(\frac{k}{\ell} \cdot t\_m\right) \cdot k\right) \cdot \frac{\tan k \cdot \sin k}{\ell}}\\
\end{array}
\end{array}
if k < 3.8000000000000002e-138Initial program 49.1%
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.f6456.0
Applied rewrites56.0%
Applied rewrites32.7%
if 3.8000000000000002e-138 < k < 1.49999999999999989e90Initial program 47.4%
Taylor expanded in t around 0
distribute-rgt-inN/A
associate-*l*N/A
associate-*l/N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
Applied rewrites74.0%
Applied rewrites76.0%
Applied rewrites76.1%
Applied rewrites84.8%
if 1.49999999999999989e90 < k Initial program 46.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.f6471.5
Applied rewrites71.5%
Applied rewrites89.8%
Applied rewrites89.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 (<= k 5e-138)
(/ 2.0 (* (pow (* (/ (pow t_m 1.5) l) k) 2.0) 2.0))
(if (<= k 340000.0)
(/ 2.0 (* (fma (* t_m t_m) 2.0 (* k k)) (* t_m (/ (/ (* k k) l) l))))
(if (<= k 1.1e+151)
(/ 2.0 (* (* k k) (* (/ (* (tan k) (sin k)) (* l l)) t_m)))
(/ 2.0 (* (* (/ (* k t_m) l) k) (/ (pow (sin k) 2.0) 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 <= 5e-138) {
tmp = 2.0 / (pow(((pow(t_m, 1.5) / l) * k), 2.0) * 2.0);
} else if (k <= 340000.0) {
tmp = 2.0 / (fma((t_m * t_m), 2.0, (k * k)) * (t_m * (((k * k) / l) / l)));
} else if (k <= 1.1e+151) {
tmp = 2.0 / ((k * k) * (((tan(k) * sin(k)) / (l * l)) * t_m));
} else {
tmp = 2.0 / ((((k * t_m) / l) * k) * (pow(sin(k), 2.0) / 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 <= 5e-138) tmp = Float64(2.0 / Float64((Float64(Float64((t_m ^ 1.5) / l) * k) ^ 2.0) * 2.0)); elseif (k <= 340000.0) tmp = Float64(2.0 / Float64(fma(Float64(t_m * t_m), 2.0, Float64(k * k)) * Float64(t_m * Float64(Float64(Float64(k * k) / l) / l)))); elseif (k <= 1.1e+151) tmp = Float64(2.0 / Float64(Float64(k * k) * Float64(Float64(Float64(tan(k) * sin(k)) / Float64(l * l)) * t_m))); else tmp = Float64(2.0 / Float64(Float64(Float64(Float64(k * t_m) / l) * k) * Float64((sin(k) ^ 2.0) / 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, 5e-138], N[(2.0 / N[(N[Power[N[(N[(N[Power[t$95$m, 1.5], $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision], 2.0], $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 340000.0], N[(2.0 / N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] * 2.0 + N[(k * k), $MachinePrecision]), $MachinePrecision] * N[(t$95$m * N[(N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 1.1e+151], N[(2.0 / N[(N[(k * k), $MachinePrecision] * N[(N[(N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision] * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[(k * t$95$m), $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision] * N[(N[Power[N[Sin[k], $MachinePrecision], 2.0], $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}\;k \leq 5 \cdot 10^{-138}:\\
\;\;\;\;\frac{2}{{\left(\frac{{t\_m}^{1.5}}{\ell} \cdot k\right)}^{2} \cdot 2}\\
\mathbf{elif}\;k \leq 340000:\\
\;\;\;\;\frac{2}{\mathsf{fma}\left(t\_m \cdot t\_m, 2, k \cdot k\right) \cdot \left(t\_m \cdot \frac{\frac{k \cdot k}{\ell}}{\ell}\right)}\\
\mathbf{elif}\;k \leq 1.1 \cdot 10^{+151}:\\
\;\;\;\;\frac{2}{\left(k \cdot k\right) \cdot \left(\frac{\tan k \cdot \sin k}{\ell \cdot \ell} \cdot t\_m\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\frac{k \cdot t\_m}{\ell} \cdot k\right) \cdot \frac{{\sin k}^{2}}{\ell}}\\
\end{array}
\end{array}
if k < 4.99999999999999989e-138Initial program 49.1%
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.f6456.0
Applied rewrites56.0%
Applied rewrites32.7%
if 4.99999999999999989e-138 < k < 3.4e5Initial program 48.3%
Taylor expanded in t around 0
distribute-rgt-inN/A
associate-*l*N/A
associate-*l/N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
Applied rewrites65.3%
Applied rewrites68.6%
Applied rewrites68.7%
Taylor expanded in k around 0
Applied rewrites72.5%
if 3.4e5 < k < 1.10000000000000003e151Initial program 47.1%
Taylor expanded in t around 0
distribute-rgt-inN/A
associate-*l*N/A
associate-*l/N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
Applied rewrites80.6%
Applied rewrites78.9%
Applied rewrites79.0%
Taylor expanded in t around 0
Applied rewrites73.9%
if 1.10000000000000003e151 < k Initial program 45.9%
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.f6460.7
Applied rewrites60.7%
Applied rewrites91.4%
Applied rewrites91.5%
Taylor expanded in k around 0
Applied rewrites61.9%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(let* ((t_2 (/ (/ (* k k) l) l)))
(*
t_s
(if (<= k 5e-138)
(/ 2.0 (* (pow (* (/ (pow t_m 1.5) l) k) 2.0) 2.0))
(if (<= k 340000.0)
(/ 2.0 (* (fma (* t_m t_m) 2.0 (* k k)) (* t_m t_2)))
(if (<= k 1.15e+151)
(/ 2.0 (* (* k k) (* (/ (* (tan k) (sin k)) (* l l)) t_m)))
(/ 2.0 (* t_2 (* t_m (* k k))))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double t_2 = ((k * k) / l) / l;
double tmp;
if (k <= 5e-138) {
tmp = 2.0 / (pow(((pow(t_m, 1.5) / l) * k), 2.0) * 2.0);
} else if (k <= 340000.0) {
tmp = 2.0 / (fma((t_m * t_m), 2.0, (k * k)) * (t_m * t_2));
} else if (k <= 1.15e+151) {
tmp = 2.0 / ((k * k) * (((tan(k) * sin(k)) / (l * l)) * t_m));
} else {
tmp = 2.0 / (t_2 * (t_m * (k * k)));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) t_2 = Float64(Float64(Float64(k * k) / l) / l) tmp = 0.0 if (k <= 5e-138) tmp = Float64(2.0 / Float64((Float64(Float64((t_m ^ 1.5) / l) * k) ^ 2.0) * 2.0)); elseif (k <= 340000.0) tmp = Float64(2.0 / Float64(fma(Float64(t_m * t_m), 2.0, Float64(k * k)) * Float64(t_m * t_2))); elseif (k <= 1.15e+151) tmp = Float64(2.0 / Float64(Float64(k * k) * Float64(Float64(Float64(tan(k) * sin(k)) / Float64(l * l)) * t_m))); else tmp = Float64(2.0 / Float64(t_2 * Float64(t_m * 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_] := Block[{t$95$2 = N[(N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision] / l), $MachinePrecision]}, N[(t$95$s * If[LessEqual[k, 5e-138], N[(2.0 / N[(N[Power[N[(N[(N[Power[t$95$m, 1.5], $MachinePrecision] / l), $MachinePrecision] * k), $MachinePrecision], 2.0], $MachinePrecision] * 2.0), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 340000.0], N[(2.0 / N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] * 2.0 + N[(k * k), $MachinePrecision]), $MachinePrecision] * N[(t$95$m * t$95$2), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 1.15e+151], N[(2.0 / N[(N[(k * k), $MachinePrecision] * N[(N[(N[(N[Tan[k], $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision] * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(t$95$2 * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]]), $MachinePrecision]]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
\begin{array}{l}
t_2 := \frac{\frac{k \cdot k}{\ell}}{\ell}\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 5 \cdot 10^{-138}:\\
\;\;\;\;\frac{2}{{\left(\frac{{t\_m}^{1.5}}{\ell} \cdot k\right)}^{2} \cdot 2}\\
\mathbf{elif}\;k \leq 340000:\\
\;\;\;\;\frac{2}{\mathsf{fma}\left(t\_m \cdot t\_m, 2, k \cdot k\right) \cdot \left(t\_m \cdot t\_2\right)}\\
\mathbf{elif}\;k \leq 1.15 \cdot 10^{+151}:\\
\;\;\;\;\frac{2}{\left(k \cdot k\right) \cdot \left(\frac{\tan k \cdot \sin k}{\ell \cdot \ell} \cdot t\_m\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{t\_2 \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)}\\
\end{array}
\end{array}
\end{array}
if k < 4.99999999999999989e-138Initial program 49.1%
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.f6456.0
Applied rewrites56.0%
Applied rewrites32.7%
if 4.99999999999999989e-138 < k < 3.4e5Initial program 48.3%
Taylor expanded in t around 0
distribute-rgt-inN/A
associate-*l*N/A
associate-*l/N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
Applied rewrites65.3%
Applied rewrites68.6%
Applied rewrites68.7%
Taylor expanded in k around 0
Applied rewrites72.5%
if 3.4e5 < k < 1.15e151Initial program 47.1%
Taylor expanded in t around 0
distribute-rgt-inN/A
associate-*l*N/A
associate-*l/N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
Applied rewrites80.6%
Applied rewrites78.9%
Applied rewrites79.0%
Taylor expanded in t around 0
Applied rewrites73.9%
if 1.15e151 < k Initial program 45.9%
Taylor expanded in t around 0
distribute-rgt-inN/A
associate-*l*N/A
associate-*l/N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
Applied rewrites60.2%
Taylor expanded in k around 0
Applied rewrites60.7%
Taylor expanded in t around 0
Applied rewrites60.7%
Taylor expanded in k around 0
Applied rewrites60.7%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 2.8e+67)
(/ 2.0 (* (fma (* t_m t_m) 2.0 (* k k)) (* t_m (/ (/ (* k k) l) l))))
(/ 2.0 (* k (* k (/ 2.0 (/ (pow (/ t_m l) -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 (t_m <= 2.8e+67) {
tmp = 2.0 / (fma((t_m * t_m), 2.0, (k * k)) * (t_m * (((k * k) / l) / l)));
} else {
tmp = 2.0 / (k * (k * (2.0 / (pow((t_m / l), -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 (t_m <= 2.8e+67) tmp = Float64(2.0 / Float64(fma(Float64(t_m * t_m), 2.0, Float64(k * k)) * Float64(t_m * Float64(Float64(Float64(k * k) / l) / l)))); else tmp = Float64(2.0 / Float64(k * Float64(k * Float64(2.0 / Float64((Float64(t_m / l) ^ -2.0) / t_m))))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 2.8e+67], N[(2.0 / N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] * 2.0 + N[(k * k), $MachinePrecision]), $MachinePrecision] * N[(t$95$m * N[(N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(k * N[(k * N[(2.0 / N[(N[Power[N[(t$95$m / l), $MachinePrecision], -2.0], $MachinePrecision] / t$95$m), $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 2.8 \cdot 10^{+67}:\\
\;\;\;\;\frac{2}{\mathsf{fma}\left(t\_m \cdot t\_m, 2, k \cdot k\right) \cdot \left(t\_m \cdot \frac{\frac{k \cdot k}{\ell}}{\ell}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{k \cdot \left(k \cdot \frac{2}{\frac{{\left(\frac{t\_m}{\ell}\right)}^{-2}}{t\_m}}\right)}\\
\end{array}
\end{array}
if t < 2.7999999999999998e67Initial program 46.9%
Taylor expanded in t around 0
distribute-rgt-inN/A
associate-*l*N/A
associate-*l/N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
Applied rewrites68.6%
Applied rewrites65.9%
Applied rewrites65.8%
Taylor expanded in k around 0
Applied rewrites62.2%
if 2.7999999999999998e67 < t Initial program 57.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.f6457.0
Applied rewrites57.0%
Applied rewrites64.8%
Applied rewrites62.0%
Applied rewrites78.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 (<= t_m 1.85e-62)
(/ 2.0 (* (fma (* t_m t_m) 2.0 (* k k)) (* t_m (/ (/ (* k k) l) l))))
(/ 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 (t_m <= 1.85e-62) {
tmp = 2.0 / (fma((t_m * t_m), 2.0, (k * k)) * (t_m * (((k * k) / l) / l)));
} 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 (t_m <= 1.85e-62) tmp = Float64(2.0 / Float64(fma(Float64(t_m * t_m), 2.0, Float64(k * k)) * Float64(t_m * Float64(Float64(Float64(k * k) / l) / l)))); else tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(k * k) * 2.0) * t_m) * Float64(t_m / l)) * Float64(t_m / l))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 1.85e-62], N[(2.0 / N[(N[(N[(t$95$m * t$95$m), $MachinePrecision] * 2.0 + N[(k * k), $MachinePrecision]), $MachinePrecision] * N[(t$95$m * N[(N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[(N[(k * k), $MachinePrecision] * 2.0), $MachinePrecision] * t$95$m), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $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.85 \cdot 10^{-62}:\\
\;\;\;\;\frac{2}{\mathsf{fma}\left(t\_m \cdot t\_m, 2, k \cdot k\right) \cdot \left(t\_m \cdot \frac{\frac{k \cdot k}{\ell}}{\ell}\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\left(\left(\left(k \cdot k\right) \cdot 2\right) \cdot t\_m\right) \cdot \frac{t\_m}{\ell}\right) \cdot \frac{t\_m}{\ell}}\\
\end{array}
\end{array}
if t < 1.8499999999999999e-62Initial program 44.2%
Taylor expanded in t around 0
distribute-rgt-inN/A
associate-*l*N/A
associate-*l/N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
Applied rewrites68.8%
Applied rewrites66.0%
Applied rewrites65.9%
Taylor expanded in k around 0
Applied rewrites63.4%
if 1.8499999999999999e-62 < t Initial program 60.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.f6454.3
Applied rewrites54.3%
Applied rewrites58.7%
Applied rewrites57.1%
Applied rewrites62.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 (<= l 1.25e+31)
(/ 2.0 (* (/ (/ (* k k) l) l) (* t_m (fma (* t_m t_m) 2.0 (* 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.25e+31) {
tmp = 2.0 / ((((k * k) / l) / l) * (t_m * fma((t_m * t_m), 2.0, (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.25e+31) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(k * k) / l) / l) * Float64(t_m * fma(Float64(t_m * t_m), 2.0, Float64(k * k))))); else tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(k * k) * 2.0) * t_m) * Float64(t_m / l)) * Float64(t_m / l))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[l, 1.25e+31], N[(2.0 / N[(N[(N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision] / l), $MachinePrecision] * N[(t$95$m * N[(N[(t$95$m * t$95$m), $MachinePrecision] * 2.0 + N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[(N[(k * k), $MachinePrecision] * 2.0), $MachinePrecision] * t$95$m), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $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}\;\ell \leq 1.25 \cdot 10^{+31}:\\
\;\;\;\;\frac{2}{\frac{\frac{k \cdot k}{\ell}}{\ell} \cdot \left(t\_m \cdot \mathsf{fma}\left(t\_m \cdot t\_m, 2, k \cdot k\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\left(\left(\left(k \cdot k\right) \cdot 2\right) \cdot t\_m\right) \cdot \frac{t\_m}{\ell}\right) \cdot \frac{t\_m}{\ell}}\\
\end{array}
\end{array}
if l < 1.25000000000000007e31Initial program 48.4%
Taylor expanded in t around 0
distribute-rgt-inN/A
associate-*l*N/A
associate-*l/N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
Applied rewrites67.9%
Taylor expanded in k around 0
Applied rewrites59.2%
if 1.25000000000000007e31 < l Initial program 48.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.f6458.9
Applied rewrites58.9%
Applied rewrites62.8%
Applied rewrites54.7%
Applied rewrites67.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 (<= t_m 4.8e-77)
(/ 2.0 (* (/ (/ (* k k) l) l) (* t_m (* 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 (t_m <= 4.8e-77) {
tmp = 2.0 / ((((k * k) / l) / l) * (t_m * (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 (t_m <= 4.8d-77) then
tmp = 2.0d0 / ((((k * k) / l) / l) * (t_m * (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 (t_m <= 4.8e-77) {
tmp = 2.0 / ((((k * k) / l) / l) * (t_m * (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 t_m <= 4.8e-77: tmp = 2.0 / ((((k * k) / l) / l) * (t_m * (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 (t_m <= 4.8e-77) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(k * k) / l) / l) * Float64(t_m * Float64(k * k)))); else tmp = Float64(2.0 / Float64(Float64(Float64(Float64(Float64(k * k) * 2.0) * t_m) * Float64(t_m / l)) * Float64(t_m / l))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (t_m <= 4.8e-77) tmp = 2.0 / ((((k * k) / l) / l) * (t_m * (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[t$95$m, 4.8e-77], N[(2.0 / N[(N[(N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision] / l), $MachinePrecision] * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(N[(N[(k * k), $MachinePrecision] * 2.0), $MachinePrecision] * t$95$m), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $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 4.8 \cdot 10^{-77}:\\
\;\;\;\;\frac{2}{\frac{\frac{k \cdot k}{\ell}}{\ell} \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\left(\left(\left(k \cdot k\right) \cdot 2\right) \cdot t\_m\right) \cdot \frac{t\_m}{\ell}\right) \cdot \frac{t\_m}{\ell}}\\
\end{array}
\end{array}
if t < 4.7999999999999998e-77Initial program 44.3%
Taylor expanded in t around 0
distribute-rgt-inN/A
associate-*l*N/A
associate-*l/N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
Applied rewrites69.0%
Taylor expanded in k around 0
Applied rewrites55.3%
Taylor expanded in t around 0
Applied rewrites52.4%
Taylor expanded in k around 0
Applied rewrites55.9%
if 4.7999999999999998e-77 < t Initial program 59.0%
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.f6454.7
Applied rewrites54.7%
Applied rewrites58.8%
Applied rewrites56.0%
Applied rewrites62.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 (<= t_m 2.9e-75)
(/ 2.0 (* (/ (/ (* k k) l) l) (* t_m (* k k))))
(/ 2.0 (* (* (* k k) 2.0) (* (/ t_m l) (* (/ t_m l) 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 (t_m <= 2.9e-75) {
tmp = 2.0 / ((((k * k) / l) / l) * (t_m * (k * k)));
} else {
tmp = 2.0 / (((k * k) * 2.0) * ((t_m / l) * ((t_m / l) * 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 (t_m <= 2.9d-75) then
tmp = 2.0d0 / ((((k * k) / l) / l) * (t_m * (k * k)))
else
tmp = 2.0d0 / (((k * k) * 2.0d0) * ((t_m / l) * ((t_m / l) * 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 (t_m <= 2.9e-75) {
tmp = 2.0 / ((((k * k) / l) / l) * (t_m * (k * k)));
} else {
tmp = 2.0 / (((k * k) * 2.0) * ((t_m / l) * ((t_m / l) * 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 t_m <= 2.9e-75: tmp = 2.0 / ((((k * k) / l) / l) * (t_m * (k * k))) else: tmp = 2.0 / (((k * k) * 2.0) * ((t_m / l) * ((t_m / l) * 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 (t_m <= 2.9e-75) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(k * k) / l) / l) * Float64(t_m * Float64(k * k)))); else tmp = Float64(2.0 / Float64(Float64(Float64(k * k) * 2.0) * Float64(Float64(t_m / l) * Float64(Float64(t_m / l) * 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 (t_m <= 2.9e-75) tmp = 2.0 / ((((k * k) / l) / l) * (t_m * (k * k))); else tmp = 2.0 / (((k * k) * 2.0) * ((t_m / l) * ((t_m / l) * 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[t$95$m, 2.9e-75], N[(2.0 / N[(N[(N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision] / l), $MachinePrecision] * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(k * k), $MachinePrecision] * 2.0), $MachinePrecision] * N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(t$95$m / l), $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}\;t\_m \leq 2.9 \cdot 10^{-75}:\\
\;\;\;\;\frac{2}{\frac{\frac{k \cdot k}{\ell}}{\ell} \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\left(k \cdot k\right) \cdot 2\right) \cdot \left(\frac{t\_m}{\ell} \cdot \left(\frac{t\_m}{\ell} \cdot t\_m\right)\right)}\\
\end{array}
\end{array}
if t < 2.9000000000000002e-75Initial program 44.1%
Taylor expanded in t around 0
distribute-rgt-inN/A
associate-*l*N/A
associate-*l/N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
Applied rewrites68.5%
Taylor expanded in k around 0
Applied rewrites54.9%
Taylor expanded in t around 0
Applied rewrites52.1%
Taylor expanded in k around 0
Applied rewrites55.5%
if 2.9000000000000002e-75 < t Initial program 60.1%
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.f6455.6
Applied rewrites55.6%
Applied rewrites59.9%
Applied rewrites61.4%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 2.9e-75)
(/ 2.0 (* (/ (/ (* k k) l) l) (* t_m (* 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 (t_m <= 2.9e-75) {
tmp = 2.0 / ((((k * k) / l) / l) * (t_m * (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 (t_m <= 2.9d-75) then
tmp = 2.0d0 / ((((k * k) / l) / l) * (t_m * (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 (t_m <= 2.9e-75) {
tmp = 2.0 / ((((k * k) / l) / l) * (t_m * (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 t_m <= 2.9e-75: tmp = 2.0 / ((((k * k) / l) / l) * (t_m * (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 (t_m <= 2.9e-75) tmp = Float64(2.0 / Float64(Float64(Float64(Float64(k * k) / l) / l) * Float64(t_m * Float64(k * k)))); else tmp = Float64(2.0 / Float64(Float64(Float64(k * k) * 2.0) * Float64(t_m * Float64(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 (t_m <= 2.9e-75) tmp = 2.0 / ((((k * k) / l) / l) * (t_m * (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[t$95$m, 2.9e-75], N[(2.0 / N[(N[(N[(N[(k * k), $MachinePrecision] / l), $MachinePrecision] / l), $MachinePrecision] * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[(k * k), $MachinePrecision] * 2.0), $MachinePrecision] * N[(t$95$m * N[(N[(N[(t$95$m / l), $MachinePrecision] * t$95$m), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 2.9 \cdot 10^{-75}:\\
\;\;\;\;\frac{2}{\frac{\frac{k \cdot k}{\ell}}{\ell} \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\left(k \cdot k\right) \cdot 2\right) \cdot \left(t\_m \cdot \frac{\frac{t\_m}{\ell} \cdot t\_m}{\ell}\right)}\\
\end{array}
\end{array}
if t < 2.9000000000000002e-75Initial program 44.1%
Taylor expanded in t around 0
distribute-rgt-inN/A
associate-*l*N/A
associate-*l/N/A
*-commutativeN/A
associate-*r*N/A
unpow2N/A
unpow3N/A
*-commutativeN/A
associate-/l*N/A
associate-*r*N/A
Applied rewrites68.5%
Taylor expanded in k around 0
Applied rewrites54.9%
Taylor expanded in t around 0
Applied rewrites52.1%
Taylor expanded in k around 0
Applied rewrites55.5%
if 2.9000000000000002e-75 < t Initial program 60.1%
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.f6455.6
Applied rewrites55.6%
Applied rewrites59.9%
Applied rewrites61.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 (/ (* (* (* (* k k) 2.0) t_m) (* t_m 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) {
return t_s * (2.0 / (((((k * k) * 2.0) * t_m) * (t_m * t_m)) / (l * l)));
}
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) * 2.0d0) * t_m) * (t_m * t_m)) / (l * l)))
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) * 2.0) * t_m) * (t_m * t_m)) / (l * l)));
}
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) * 2.0) * t_m) * (t_m * t_m)) / (l * l)))
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(k * k) * 2.0) * t_m) * Float64(t_m * t_m)) / Float64(l * l)))) 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) * 2.0) * t_m) * (t_m * t_m)) / (l * l))); 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[(k * k), $MachinePrecision] * 2.0), $MachinePrecision] * t$95$m), $MachinePrecision] * N[(t$95$m * t$95$m), $MachinePrecision]), $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 \frac{2}{\frac{\left(\left(\left(k \cdot k\right) \cdot 2\right) \cdot t\_m\right) \cdot \left(t\_m \cdot t\_m\right)}{\ell \cdot \ell}}
\end{array}
Initial program 48.5%
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.f6452.5
Applied rewrites52.5%
Applied rewrites56.0%
Applied rewrites51.5%
Applied rewrites52.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 (/ 2.0 (* (* (* k k) 2.0) (* t_m (/ (* t_m 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) {
return t_s * (2.0 / (((k * k) * 2.0) * (t_m * ((t_m * t_m) / (l * l)))));
}
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) * 2.0d0) * (t_m * ((t_m * t_m) / (l * l)))))
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) * 2.0) * (t_m * ((t_m * t_m) / (l * l)))));
}
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) * 2.0) * (t_m * ((t_m * t_m) / (l * l)))))
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(k * k) * 2.0) * Float64(t_m * Float64(Float64(t_m * t_m) / Float64(l * l)))))) 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) * 2.0) * (t_m * ((t_m * t_m) / (l * l))))); 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[(k * k), $MachinePrecision] * 2.0), $MachinePrecision] * N[(t$95$m * N[(N[(t$95$m * t$95$m), $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \frac{2}{\left(\left(k \cdot k\right) \cdot 2\right) \cdot \left(t\_m \cdot \frac{t\_m \cdot t\_m}{\ell \cdot \ell}\right)}
\end{array}
Initial program 48.5%
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.f6452.5
Applied rewrites52.5%
Applied rewrites56.0%
Applied rewrites51.5%
herbie shell --seed 2024307
(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))))