
(FPCore (t l k) :precision binary64 (/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (+ (+ 1.0 (pow (/ k t) 2.0)) 1.0))))
double code(double t, double l, double k) {
return 2.0 / ((((pow(t, 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + pow((k / t), 2.0)) + 1.0));
}
real(8) function code(t, l, k)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k
code = 2.0d0 / (((((t ** 3.0d0) / (l * l)) * sin(k)) * tan(k)) * ((1.0d0 + ((k / t) ** 2.0d0)) + 1.0d0))
end function
public static double code(double t, double l, double k) {
return 2.0 / ((((Math.pow(t, 3.0) / (l * l)) * Math.sin(k)) * Math.tan(k)) * ((1.0 + Math.pow((k / t), 2.0)) + 1.0));
}
def code(t, l, k): return 2.0 / ((((math.pow(t, 3.0) / (l * l)) * math.sin(k)) * math.tan(k)) * ((1.0 + math.pow((k / t), 2.0)) + 1.0))
function code(t, l, k) return Float64(2.0 / Float64(Float64(Float64(Float64((t ^ 3.0) / Float64(l * l)) * sin(k)) * tan(k)) * Float64(Float64(1.0 + (Float64(k / t) ^ 2.0)) + 1.0))) end
function tmp = code(t, l, k) tmp = 2.0 / (((((t ^ 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + ((k / t) ^ 2.0)) + 1.0)); end
code[t_, l_, k_] := N[(2.0 / N[(N[(N[(N[(N[Power[t, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[(1.0 + N[Power[N[(k / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 16 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (t l k) :precision binary64 (/ 2.0 (* (* (* (/ (pow t 3.0) (* l l)) (sin k)) (tan k)) (+ (+ 1.0 (pow (/ k t) 2.0)) 1.0))))
double code(double t, double l, double k) {
return 2.0 / ((((pow(t, 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + pow((k / t), 2.0)) + 1.0));
}
real(8) function code(t, l, k)
real(8), intent (in) :: t
real(8), intent (in) :: l
real(8), intent (in) :: k
code = 2.0d0 / (((((t ** 3.0d0) / (l * l)) * sin(k)) * tan(k)) * ((1.0d0 + ((k / t) ** 2.0d0)) + 1.0d0))
end function
public static double code(double t, double l, double k) {
return 2.0 / ((((Math.pow(t, 3.0) / (l * l)) * Math.sin(k)) * Math.tan(k)) * ((1.0 + Math.pow((k / t), 2.0)) + 1.0));
}
def code(t, l, k): return 2.0 / ((((math.pow(t, 3.0) / (l * l)) * math.sin(k)) * math.tan(k)) * ((1.0 + math.pow((k / t), 2.0)) + 1.0))
function code(t, l, k) return Float64(2.0 / Float64(Float64(Float64(Float64((t ^ 3.0) / Float64(l * l)) * sin(k)) * tan(k)) * Float64(Float64(1.0 + (Float64(k / t) ^ 2.0)) + 1.0))) end
function tmp = code(t, l, k) tmp = 2.0 / (((((t ^ 3.0) / (l * l)) * sin(k)) * tan(k)) * ((1.0 + ((k / t) ^ 2.0)) + 1.0)); end
code[t_, l_, k_] := N[(2.0 / N[(N[(N[(N[(N[Power[t, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision] * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[(1.0 + N[Power[N[(k / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision] + 1.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
\\
\frac{2}{\left(\left(\frac{{t}^{3}}{\ell \cdot \ell} \cdot \sin k\right) \cdot \tan k\right) \cdot \left(\left(1 + {\left(\frac{k}{t}\right)}^{2}\right) + 1\right)}
\end{array}
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 4.7e-160)
(/ (* (* 2.0 (* l l)) (cos k)) (* k (* k (* t_m (pow (sin k) 2.0)))))
(/
2.0
(*
(* t_m (/ (* t_m (sin k)) l))
(* (/ t_m l) (* (tan k) (fma k (/ k (* t_m t_m)) 2.0))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 4.7e-160) {
tmp = ((2.0 * (l * l)) * cos(k)) / (k * (k * (t_m * pow(sin(k), 2.0))));
} else {
tmp = 2.0 / ((t_m * ((t_m * sin(k)) / l)) * ((t_m / l) * (tan(k) * fma(k, (k / (t_m * t_m)), 2.0))));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 4.7e-160) tmp = Float64(Float64(Float64(2.0 * Float64(l * l)) * cos(k)) / Float64(k * Float64(k * Float64(t_m * (sin(k) ^ 2.0))))); else tmp = Float64(2.0 / Float64(Float64(t_m * Float64(Float64(t_m * sin(k)) / l)) * Float64(Float64(t_m / l) * Float64(tan(k) * fma(k, Float64(k / Float64(t_m * t_m)), 2.0))))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 4.7e-160], N[(N[(N[(2.0 * N[(l * l), $MachinePrecision]), $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision] / N[(k * N[(k * N[(t$95$m * N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(t$95$m * N[(N[(t$95$m * N[Sin[k], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] * N[(N[(t$95$m / l), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(k * N[(k / N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\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.7 \cdot 10^{-160}:\\
\;\;\;\;\frac{\left(2 \cdot \left(\ell \cdot \ell\right)\right) \cdot \cos k}{k \cdot \left(k \cdot \left(t\_m \cdot {\sin k}^{2}\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(t\_m \cdot \frac{t\_m \cdot \sin k}{\ell}\right) \cdot \left(\frac{t\_m}{\ell} \cdot \left(\tan k \cdot \mathsf{fma}\left(k, \frac{k}{t\_m \cdot t\_m}, 2\right)\right)\right)}\\
\end{array}
\end{array}
if t < 4.6999999999999998e-160Initial program 41.6%
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
associate-/r*N/A
lower-/.f64N/A
Applied rewrites29.5%
Taylor expanded in t around 0
associate-*r/N/A
lower-/.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
lower-cos.f64N/A
unpow2N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-sin.f6464.9
Applied rewrites64.9%
if 4.6999999999999998e-160 < t Initial program 60.5%
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
div-invN/A
lift-pow.f64N/A
cube-multN/A
associate-*l*N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-/.f6471.4
Applied rewrites71.4%
lift-*.f64N/A
lift-/.f64N/A
un-div-invN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lower-/.f6483.2
Applied rewrites83.2%
lift-+.f64N/A
lift-+.f64N/A
+-commutativeN/A
associate-+l+N/A
lift-pow.f64N/A
unpow2N/A
metadata-evalN/A
lower-fma.f6483.2
Applied rewrites83.2%
lift-*.f64N/A
lift-fma.f64N/A
distribute-lft-inN/A
Applied rewrites89.5%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<=
(/
2.0
(*
(* (tan k) (* (sin k) (/ (pow t_m 3.0) (* l l))))
(+ 1.0 (+ 1.0 (pow (/ k t_m) 2.0)))))
1e+228)
(/
2.0
(*
(* (* t_m (sin k)) (/ t_m (* l l)))
(*
k
(* t_m (fma (* k k) (+ (/ 1.0 (* t_m t_m)) 0.6666666666666666) 2.0)))))
(* (/ l t_m) (/ l (* t_m (* t_m (* k k))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if ((2.0 / ((tan(k) * (sin(k) * (pow(t_m, 3.0) / (l * l)))) * (1.0 + (1.0 + pow((k / t_m), 2.0))))) <= 1e+228) {
tmp = 2.0 / (((t_m * sin(k)) * (t_m / (l * l))) * (k * (t_m * fma((k * k), ((1.0 / (t_m * t_m)) + 0.6666666666666666), 2.0))));
} else {
tmp = (l / t_m) * (l / (t_m * (t_m * (k * k))));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (Float64(2.0 / Float64(Float64(tan(k) * Float64(sin(k) * Float64((t_m ^ 3.0) / Float64(l * l)))) * Float64(1.0 + Float64(1.0 + (Float64(k / t_m) ^ 2.0))))) <= 1e+228) tmp = Float64(2.0 / Float64(Float64(Float64(t_m * sin(k)) * Float64(t_m / Float64(l * l))) * Float64(k * Float64(t_m * fma(Float64(k * k), Float64(Float64(1.0 / Float64(t_m * t_m)) + 0.6666666666666666), 2.0))))); else tmp = Float64(Float64(l / t_m) * Float64(l / Float64(t_m * Float64(t_m * Float64(k * k))))); end return Float64(t_s * tmp) end
t\_m = 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[Tan[k], $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[(N[Power[t$95$m, 3.0], $MachinePrecision] / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(1.0 + N[(1.0 + N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 1e+228], N[(2.0 / N[(N[(N[(t$95$m * N[Sin[k], $MachinePrecision]), $MachinePrecision] * N[(t$95$m / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(k * N[(t$95$m * N[(N[(k * k), $MachinePrecision] * N[(N[(1.0 / N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision] + 0.6666666666666666), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(l / t$95$m), $MachinePrecision] * N[(l / N[(t$95$m * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;\frac{2}{\left(\tan k \cdot \left(\sin k \cdot \frac{{t\_m}^{3}}{\ell \cdot \ell}\right)\right) \cdot \left(1 + \left(1 + {\left(\frac{k}{t\_m}\right)}^{2}\right)\right)} \leq 10^{+228}:\\
\;\;\;\;\frac{2}{\left(\left(t\_m \cdot \sin k\right) \cdot \frac{t\_m}{\ell \cdot \ell}\right) \cdot \left(k \cdot \left(t\_m \cdot \mathsf{fma}\left(k \cdot k, \frac{1}{t\_m \cdot t\_m} + 0.6666666666666666, 2\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\ell}{t\_m} \cdot \frac{\ell}{t\_m \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)}\\
\end{array}
\end{array}
if (/.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)))) < 9.9999999999999992e227Initial program 81.5%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
associate-*l/N/A
lift-*.f64N/A
times-fracN/A
lower-*.f64N/A
Applied rewrites65.8%
Applied rewrites90.5%
Taylor expanded in k around 0
lower-*.f64N/A
+-commutativeN/A
*-commutativeN/A
associate-*r*N/A
distribute-rgt-outN/A
lower-*.f64N/A
lower-fma.f64N/A
unpow2N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
lower-/.f64N/A
unpow2N/A
lower-*.f6484.4
Applied rewrites84.4%
if 9.9999999999999992e227 < (/.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 17.9%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6429.0
Applied rewrites29.0%
Applied rewrites55.8%
Final simplification70.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.3e-160)
(/ (* (* 2.0 (* l l)) (cos k)) (* (pow (sin k) 2.0) (* t_m (* k k))))
(/
2.0
(*
(* t_m (/ (* t_m (sin k)) l))
(* (/ t_m l) (* (tan k) (fma k (/ k (* t_m t_m)) 2.0))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 4.3e-160) {
tmp = ((2.0 * (l * l)) * cos(k)) / (pow(sin(k), 2.0) * (t_m * (k * k)));
} else {
tmp = 2.0 / ((t_m * ((t_m * sin(k)) / l)) * ((t_m / l) * (tan(k) * fma(k, (k / (t_m * t_m)), 2.0))));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 4.3e-160) tmp = Float64(Float64(Float64(2.0 * Float64(l * l)) * cos(k)) / Float64((sin(k) ^ 2.0) * Float64(t_m * Float64(k * k)))); else tmp = Float64(2.0 / Float64(Float64(t_m * Float64(Float64(t_m * sin(k)) / l)) * Float64(Float64(t_m / l) * Float64(tan(k) * fma(k, Float64(k / Float64(t_m * t_m)), 2.0))))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 4.3e-160], N[(N[(N[(2.0 * N[(l * l), $MachinePrecision]), $MachinePrecision] * N[Cos[k], $MachinePrecision]), $MachinePrecision] / N[(N[Power[N[Sin[k], $MachinePrecision], 2.0], $MachinePrecision] * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(t$95$m * N[(N[(t$95$m * N[Sin[k], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] * N[(N[(t$95$m / l), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(k * N[(k / N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\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.3 \cdot 10^{-160}:\\
\;\;\;\;\frac{\left(2 \cdot \left(\ell \cdot \ell\right)\right) \cdot \cos k}{{\sin k}^{2} \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(t\_m \cdot \frac{t\_m \cdot \sin k}{\ell}\right) \cdot \left(\frac{t\_m}{\ell} \cdot \left(\tan k \cdot \mathsf{fma}\left(k, \frac{k}{t\_m \cdot t\_m}, 2\right)\right)\right)}\\
\end{array}
\end{array}
if t < 4.30000000000000014e-160Initial program 41.6%
Taylor expanded in t around 0
associate-*r/N/A
lower-/.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
lower-cos.f64N/A
associate-*r*N/A
*-commutativeN/A
lower-*.f64N/A
lower-pow.f64N/A
lower-sin.f64N/A
*-commutativeN/A
lower-*.f64N/A
unpow2N/A
lower-*.f6462.2
Applied rewrites62.2%
if 4.30000000000000014e-160 < t Initial program 60.5%
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
div-invN/A
lift-pow.f64N/A
cube-multN/A
associate-*l*N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-/.f6471.4
Applied rewrites71.4%
lift-*.f64N/A
lift-/.f64N/A
un-div-invN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lower-/.f6483.2
Applied rewrites83.2%
lift-+.f64N/A
lift-+.f64N/A
+-commutativeN/A
associate-+l+N/A
lift-pow.f64N/A
unpow2N/A
metadata-evalN/A
lower-fma.f6483.2
Applied rewrites83.2%
lift-*.f64N/A
lift-fma.f64N/A
distribute-lft-inN/A
Applied rewrites89.5%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(let* ((t_2 (* t_m (sin k))))
(*
t_s
(if (<= l 2.6e-118)
(/
2.0
(*
(* (tan k) (* t_m (* (/ t_m l) (* k (/ t_m l)))))
(fma (/ k t_m) (/ k t_m) 2.0)))
(if (<= l 2.3e+108)
(/
2.0
(*
t_m
(*
(* (tan k) (fma k (/ k (* t_m t_m)) 2.0))
(* t_2 (/ t_m (* l l))))))
(/ 2.0 (* (* (tan k) (* t_m (* (/ t_2 l) (/ t_m l)))) 2.0)))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double t_2 = t_m * sin(k);
double tmp;
if (l <= 2.6e-118) {
tmp = 2.0 / ((tan(k) * (t_m * ((t_m / l) * (k * (t_m / l))))) * fma((k / t_m), (k / t_m), 2.0));
} else if (l <= 2.3e+108) {
tmp = 2.0 / (t_m * ((tan(k) * fma(k, (k / (t_m * t_m)), 2.0)) * (t_2 * (t_m / (l * l)))));
} else {
tmp = 2.0 / ((tan(k) * (t_m * ((t_2 / l) * (t_m / l)))) * 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(t_m * sin(k)) tmp = 0.0 if (l <= 2.6e-118) tmp = Float64(2.0 / Float64(Float64(tan(k) * Float64(t_m * Float64(Float64(t_m / l) * Float64(k * Float64(t_m / l))))) * fma(Float64(k / t_m), Float64(k / t_m), 2.0))); elseif (l <= 2.3e+108) tmp = Float64(2.0 / Float64(t_m * Float64(Float64(tan(k) * fma(k, Float64(k / Float64(t_m * t_m)), 2.0)) * Float64(t_2 * Float64(t_m / Float64(l * l)))))); else tmp = Float64(2.0 / Float64(Float64(tan(k) * Float64(t_m * Float64(Float64(t_2 / l) * Float64(t_m / l)))) * 2.0)); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := Block[{t$95$2 = N[(t$95$m * N[Sin[k], $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[l, 2.6e-118], N[(2.0 / N[(N[(N[Tan[k], $MachinePrecision] * N[(t$95$m * N[(N[(t$95$m / l), $MachinePrecision] * N[(k * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(k / t$95$m), $MachinePrecision] * N[(k / t$95$m), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[l, 2.3e+108], N[(2.0 / N[(t$95$m * N[(N[(N[Tan[k], $MachinePrecision] * N[(k * N[(k / N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision] * N[(t$95$2 * N[(t$95$m / N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Tan[k], $MachinePrecision] * N[(t$95$m * N[(N[(t$95$2 / l), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 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 := t\_m \cdot \sin k\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \leq 2.6 \cdot 10^{-118}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \left(t\_m \cdot \left(\frac{t\_m}{\ell} \cdot \left(k \cdot \frac{t\_m}{\ell}\right)\right)\right)\right) \cdot \mathsf{fma}\left(\frac{k}{t\_m}, \frac{k}{t\_m}, 2\right)}\\
\mathbf{elif}\;\ell \leq 2.3 \cdot 10^{+108}:\\
\;\;\;\;\frac{2}{t\_m \cdot \left(\left(\tan k \cdot \mathsf{fma}\left(k, \frac{k}{t\_m \cdot t\_m}, 2\right)\right) \cdot \left(t\_2 \cdot \frac{t\_m}{\ell \cdot \ell}\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \left(t\_m \cdot \left(\frac{t\_2}{\ell} \cdot \frac{t\_m}{\ell}\right)\right)\right) \cdot 2}\\
\end{array}
\end{array}
\end{array}
if l < 2.6e-118Initial program 51.5%
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
div-invN/A
lift-pow.f64N/A
cube-multN/A
associate-*l*N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-/.f6463.5
Applied rewrites63.5%
lift-*.f64N/A
lift-/.f64N/A
un-div-invN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lower-/.f6478.3
Applied rewrites78.3%
lift-+.f64N/A
lift-+.f64N/A
+-commutativeN/A
associate-+l+N/A
lift-pow.f64N/A
unpow2N/A
metadata-evalN/A
lower-fma.f6478.3
Applied rewrites78.3%
Taylor expanded in k around 0
associate-/l*N/A
lower-*.f64N/A
lower-/.f6475.6
Applied rewrites75.6%
if 2.6e-118 < l < 2.2999999999999999e108Initial program 70.7%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
associate-*l/N/A
lift-*.f64N/A
times-fracN/A
lower-*.f64N/A
Applied rewrites56.9%
Applied rewrites79.8%
if 2.2999999999999999e108 < l Initial program 20.4%
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
div-invN/A
lift-pow.f64N/A
cube-multN/A
associate-*l*N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-/.f6430.6
Applied rewrites30.6%
lift-*.f64N/A
lift-/.f64N/A
un-div-invN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lower-/.f6448.0
Applied rewrites48.0%
Taylor expanded in k around 0
Applied rewrites71.4%
Final simplification75.5%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 3.2e-160)
(/ l (* t_m (/ (* t_m (* t_m (* k k))) l)))
(/
2.0
(*
(* t_m (/ (* t_m (sin k)) l))
(* (/ t_m l) (* (tan k) (fma k (/ k (* t_m t_m)) 2.0))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 3.2e-160) {
tmp = l / (t_m * ((t_m * (t_m * (k * k))) / l));
} else {
tmp = 2.0 / ((t_m * ((t_m * sin(k)) / l)) * ((t_m / l) * (tan(k) * fma(k, (k / (t_m * t_m)), 2.0))));
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 3.2e-160) tmp = Float64(l / Float64(t_m * Float64(Float64(t_m * Float64(t_m * Float64(k * k))) / l))); else tmp = Float64(2.0 / Float64(Float64(t_m * Float64(Float64(t_m * sin(k)) / l)) * Float64(Float64(t_m / l) * Float64(tan(k) * fma(k, Float64(k / Float64(t_m * t_m)), 2.0))))); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 3.2e-160], N[(l / N[(t$95$m * N[(N[(t$95$m * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(t$95$m * N[(N[(t$95$m * N[Sin[k], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] * N[(N[(t$95$m / l), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(k * N[(k / N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 3.2 \cdot 10^{-160}:\\
\;\;\;\;\frac{\ell}{t\_m \cdot \frac{t\_m \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(t\_m \cdot \frac{t\_m \cdot \sin k}{\ell}\right) \cdot \left(\frac{t\_m}{\ell} \cdot \left(\tan k \cdot \mathsf{fma}\left(k, \frac{k}{t\_m \cdot t\_m}, 2\right)\right)\right)}\\
\end{array}
\end{array}
if t < 3.20000000000000009e-160Initial program 41.6%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6444.3
Applied rewrites44.3%
Applied rewrites60.2%
Applied rewrites60.9%
if 3.20000000000000009e-160 < t Initial program 60.5%
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
div-invN/A
lift-pow.f64N/A
cube-multN/A
associate-*l*N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-/.f6471.4
Applied rewrites71.4%
lift-*.f64N/A
lift-/.f64N/A
un-div-invN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lower-/.f6483.2
Applied rewrites83.2%
lift-+.f64N/A
lift-+.f64N/A
+-commutativeN/A
associate-+l+N/A
lift-pow.f64N/A
unpow2N/A
metadata-evalN/A
lower-fma.f6483.2
Applied rewrites83.2%
lift-*.f64N/A
lift-fma.f64N/A
distribute-lft-inN/A
Applied rewrites89.5%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= l 2.9e-22)
(/
2.0
(*
(* (tan k) (* t_m (* (/ t_m l) (* k (/ t_m l)))))
(fma (/ k t_m) (/ k t_m) 2.0)))
(if (<= l 4.8e+106)
(/ (/ (* l l) (* k (* t_m (* t_m k)))) t_m)
(/
2.0
(* (* (tan k) (* t_m (* (/ (* t_m (sin k)) l) (/ t_m l)))) 2.0))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (l <= 2.9e-22) {
tmp = 2.0 / ((tan(k) * (t_m * ((t_m / l) * (k * (t_m / l))))) * fma((k / t_m), (k / t_m), 2.0));
} else if (l <= 4.8e+106) {
tmp = ((l * l) / (k * (t_m * (t_m * k)))) / t_m;
} else {
tmp = 2.0 / ((tan(k) * (t_m * (((t_m * sin(k)) / l) * (t_m / l)))) * 2.0);
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (l <= 2.9e-22) tmp = Float64(2.0 / Float64(Float64(tan(k) * Float64(t_m * Float64(Float64(t_m / l) * Float64(k * Float64(t_m / l))))) * fma(Float64(k / t_m), Float64(k / t_m), 2.0))); elseif (l <= 4.8e+106) tmp = Float64(Float64(Float64(l * l) / Float64(k * Float64(t_m * Float64(t_m * k)))) / t_m); else tmp = Float64(2.0 / Float64(Float64(tan(k) * Float64(t_m * Float64(Float64(Float64(t_m * sin(k)) / l) * Float64(t_m / l)))) * 2.0)); end return Float64(t_s * tmp) end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[l, 2.9e-22], N[(2.0 / N[(N[(N[Tan[k], $MachinePrecision] * N[(t$95$m * N[(N[(t$95$m / l), $MachinePrecision] * N[(k * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(k / t$95$m), $MachinePrecision] * N[(k / t$95$m), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[l, 4.8e+106], N[(N[(N[(l * l), $MachinePrecision] / N[(k * N[(t$95$m * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision], N[(2.0 / N[(N[(N[Tan[k], $MachinePrecision] * N[(t$95$m * N[(N[(N[(t$95$m * N[Sin[k], $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision] * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * 2.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}\;\ell \leq 2.9 \cdot 10^{-22}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \left(t\_m \cdot \left(\frac{t\_m}{\ell} \cdot \left(k \cdot \frac{t\_m}{\ell}\right)\right)\right)\right) \cdot \mathsf{fma}\left(\frac{k}{t\_m}, \frac{k}{t\_m}, 2\right)}\\
\mathbf{elif}\;\ell \leq 4.8 \cdot 10^{+106}:\\
\;\;\;\;\frac{\frac{\ell \cdot \ell}{k \cdot \left(t\_m \cdot \left(t\_m \cdot k\right)\right)}}{t\_m}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \left(t\_m \cdot \left(\frac{t\_m \cdot \sin k}{\ell} \cdot \frac{t\_m}{\ell}\right)\right)\right) \cdot 2}\\
\end{array}
\end{array}
if l < 2.9000000000000002e-22Initial program 52.8%
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
div-invN/A
lift-pow.f64N/A
cube-multN/A
associate-*l*N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-/.f6464.6
Applied rewrites64.6%
lift-*.f64N/A
lift-/.f64N/A
un-div-invN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lower-/.f6478.5
Applied rewrites78.5%
lift-+.f64N/A
lift-+.f64N/A
+-commutativeN/A
associate-+l+N/A
lift-pow.f64N/A
unpow2N/A
metadata-evalN/A
lower-fma.f6478.5
Applied rewrites78.5%
Taylor expanded in k around 0
associate-/l*N/A
lower-*.f64N/A
lower-/.f6475.5
Applied rewrites75.5%
if 2.9000000000000002e-22 < l < 4.8000000000000001e106Initial program 72.6%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6460.5
Applied rewrites60.5%
Applied rewrites66.7%
Applied rewrites74.7%
Applied rewrites76.7%
if 4.8000000000000001e106 < l Initial program 20.0%
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
div-invN/A
lift-pow.f64N/A
cube-multN/A
associate-*l*N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-/.f6430.0
Applied rewrites30.0%
lift-*.f64N/A
lift-/.f64N/A
un-div-invN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lower-/.f6446.9
Applied rewrites46.9%
Taylor expanded in k around 0
Applied rewrites69.7%
Final simplification74.7%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= (* l l) 500000.0)
(/
2.0
(*
(* (tan k) (* t_m (* (/ t_m l) (* k (/ t_m l)))))
(fma (/ k t_m) (/ k t_m) 2.0)))
(* l (/ (/ l (* k (* t_m (* t_m k)))) t_m)))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if ((l * l) <= 500000.0) {
tmp = 2.0 / ((tan(k) * (t_m * ((t_m / l) * (k * (t_m / l))))) * fma((k / t_m), (k / t_m), 2.0));
} else {
tmp = l * ((l / (k * (t_m * (t_m * k)))) / t_m);
}
return t_s * tmp;
}
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (Float64(l * l) <= 500000.0) tmp = Float64(2.0 / Float64(Float64(tan(k) * Float64(t_m * Float64(Float64(t_m / l) * Float64(k * Float64(t_m / l))))) * fma(Float64(k / t_m), Float64(k / t_m), 2.0))); else tmp = Float64(l * Float64(Float64(l / Float64(k * Float64(t_m * Float64(t_m * k)))) / 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[N[(l * l), $MachinePrecision], 500000.0], N[(2.0 / N[(N[(N[Tan[k], $MachinePrecision] * N[(t$95$m * N[(N[(t$95$m / l), $MachinePrecision] * N[(k * N[(t$95$m / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(k / t$95$m), $MachinePrecision] * N[(k / t$95$m), $MachinePrecision] + 2.0), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(l * N[(N[(l / N[(k * N[(t$95$m * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;\ell \cdot \ell \leq 500000:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \left(t\_m \cdot \left(\frac{t\_m}{\ell} \cdot \left(k \cdot \frac{t\_m}{\ell}\right)\right)\right)\right) \cdot \mathsf{fma}\left(\frac{k}{t\_m}, \frac{k}{t\_m}, 2\right)}\\
\mathbf{else}:\\
\;\;\;\;\ell \cdot \frac{\frac{\ell}{k \cdot \left(t\_m \cdot \left(t\_m \cdot k\right)\right)}}{t\_m}\\
\end{array}
\end{array}
if (*.f64 l l) < 5e5Initial program 63.3%
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
div-invN/A
lift-pow.f64N/A
cube-multN/A
associate-*l*N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-/.f6474.1
Applied rewrites74.1%
lift-*.f64N/A
lift-/.f64N/A
un-div-invN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lower-/.f6487.7
Applied rewrites87.7%
lift-+.f64N/A
lift-+.f64N/A
+-commutativeN/A
associate-+l+N/A
lift-pow.f64N/A
unpow2N/A
metadata-evalN/A
lower-fma.f6487.7
Applied rewrites87.7%
Taylor expanded in k around 0
associate-/l*N/A
lower-*.f64N/A
lower-/.f6487.8
Applied rewrites87.8%
if 5e5 < (*.f64 l l) Initial program 36.7%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6442.8
Applied rewrites42.8%
Applied rewrites54.6%
Applied rewrites57.9%
Applied rewrites62.8%
Final simplification74.8%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 1.5e-135)
(/ l (* t_m (/ (* t_m (* t_m (* k k))) l)))
(if (<= t_m 6e+108)
(/
2.0
(*
(/ (* t_m (* k (* t_m t_m))) l)
(/ (* (tan k) (+ 2.0 (/ (* k k) (* t_m t_m)))) l)))
(/ l (* (/ t_m l) (* k (* t_m (* t_m k)))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 1.5e-135) {
tmp = l / (t_m * ((t_m * (t_m * (k * k))) / l));
} else if (t_m <= 6e+108) {
tmp = 2.0 / (((t_m * (k * (t_m * t_m))) / l) * ((tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) / l));
} else {
tmp = l / ((t_m / l) * (k * (t_m * (t_m * k))));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (t_m <= 1.5d-135) then
tmp = l / (t_m * ((t_m * (t_m * (k * k))) / l))
else if (t_m <= 6d+108) then
tmp = 2.0d0 / (((t_m * (k * (t_m * t_m))) / l) * ((tan(k) * (2.0d0 + ((k * k) / (t_m * t_m)))) / l))
else
tmp = l / ((t_m / l) * (k * (t_m * (t_m * k))))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 1.5e-135) {
tmp = l / (t_m * ((t_m * (t_m * (k * k))) / l));
} else if (t_m <= 6e+108) {
tmp = 2.0 / (((t_m * (k * (t_m * t_m))) / l) * ((Math.tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) / l));
} else {
tmp = l / ((t_m / l) * (k * (t_m * (t_m * k))));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if t_m <= 1.5e-135: tmp = l / (t_m * ((t_m * (t_m * (k * k))) / l)) elif t_m <= 6e+108: tmp = 2.0 / (((t_m * (k * (t_m * t_m))) / l) * ((math.tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) / l)) else: tmp = l / ((t_m / l) * (k * (t_m * (t_m * k)))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 1.5e-135) tmp = Float64(l / Float64(t_m * Float64(Float64(t_m * Float64(t_m * Float64(k * k))) / l))); elseif (t_m <= 6e+108) tmp = Float64(2.0 / Float64(Float64(Float64(t_m * Float64(k * Float64(t_m * t_m))) / l) * Float64(Float64(tan(k) * Float64(2.0 + Float64(Float64(k * k) / Float64(t_m * t_m)))) / l))); else tmp = Float64(l / Float64(Float64(t_m / l) * Float64(k * Float64(t_m * Float64(t_m * k))))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (t_m <= 1.5e-135) tmp = l / (t_m * ((t_m * (t_m * (k * k))) / l)); elseif (t_m <= 6e+108) tmp = 2.0 / (((t_m * (k * (t_m * t_m))) / l) * ((tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) / l)); else tmp = l / ((t_m / l) * (k * (t_m * (t_m * k)))); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 1.5e-135], N[(l / N[(t$95$m * N[(N[(t$95$m * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 6e+108], N[(2.0 / N[(N[(N[(t$95$m * N[(k * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision] * N[(N[(N[Tan[k], $MachinePrecision] * N[(2.0 + N[(N[(k * k), $MachinePrecision] / N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(l / N[(N[(t$95$m / l), $MachinePrecision] * N[(k * N[(t$95$m * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 1.5 \cdot 10^{-135}:\\
\;\;\;\;\frac{\ell}{t\_m \cdot \frac{t\_m \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)}{\ell}}\\
\mathbf{elif}\;t\_m \leq 6 \cdot 10^{+108}:\\
\;\;\;\;\frac{2}{\frac{t\_m \cdot \left(k \cdot \left(t\_m \cdot t\_m\right)\right)}{\ell} \cdot \frac{\tan k \cdot \left(2 + \frac{k \cdot k}{t\_m \cdot t\_m}\right)}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\ell}{\frac{t\_m}{\ell} \cdot \left(k \cdot \left(t\_m \cdot \left(t\_m \cdot k\right)\right)\right)}\\
\end{array}
\end{array}
if t < 1.50000000000000006e-135Initial program 41.2%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6443.7
Applied rewrites43.7%
Applied rewrites60.0%
Applied rewrites60.6%
if 1.50000000000000006e-135 < t < 5.99999999999999968e108Initial program 68.2%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
associate-*l/N/A
lift-*.f64N/A
times-fracN/A
lower-*.f64N/A
Applied rewrites76.3%
Taylor expanded in k around 0
lower-/.f64N/A
*-commutativeN/A
cube-multN/A
unpow2N/A
associate-*l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6465.9
Applied rewrites65.9%
if 5.99999999999999968e108 < t Initial program 56.6%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6449.3
Applied rewrites49.3%
Applied rewrites68.2%
Applied rewrites81.1%
Applied rewrites88.8%
Final simplification66.5%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 4e-154)
(/ l (* (/ t_m l) (* k (* t_m (* t_m k)))))
(* (/ l t_m) (/ l (* t_m (* t_m (* k k))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 4e-154) {
tmp = l / ((t_m / l) * (k * (t_m * (t_m * k))));
} else {
tmp = (l / t_m) * (l / (t_m * (t_m * (k * k))));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (k <= 4d-154) then
tmp = l / ((t_m / l) * (k * (t_m * (t_m * k))))
else
tmp = (l / t_m) * (l / (t_m * (t_m * (k * k))))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 4e-154) {
tmp = l / ((t_m / l) * (k * (t_m * (t_m * k))));
} else {
tmp = (l / t_m) * (l / (t_m * (t_m * (k * k))));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if k <= 4e-154: tmp = l / ((t_m / l) * (k * (t_m * (t_m * k)))) else: tmp = (l / t_m) * (l / (t_m * (t_m * (k * k)))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 4e-154) tmp = Float64(l / Float64(Float64(t_m / l) * Float64(k * Float64(t_m * Float64(t_m * k))))); else tmp = Float64(Float64(l / t_m) * Float64(l / Float64(t_m * Float64(t_m * Float64(k * k))))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (k <= 4e-154) tmp = l / ((t_m / l) * (k * (t_m * (t_m * k)))); else tmp = (l / t_m) * (l / (t_m * (t_m * (k * k)))); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 4e-154], N[(l / N[(N[(t$95$m / l), $MachinePrecision] * N[(k * N[(t$95$m * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(l / t$95$m), $MachinePrecision] * N[(l / N[(t$95$m * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 4 \cdot 10^{-154}:\\
\;\;\;\;\frac{\ell}{\frac{t\_m}{\ell} \cdot \left(k \cdot \left(t\_m \cdot \left(t\_m \cdot k\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\frac{\ell}{t\_m} \cdot \frac{\ell}{t\_m \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)}\\
\end{array}
\end{array}
if k < 3.9999999999999999e-154Initial program 53.0%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6447.5
Applied rewrites47.5%
Applied rewrites60.0%
Applied rewrites67.9%
Applied rewrites71.9%
if 3.9999999999999999e-154 < k Initial program 44.0%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6447.4
Applied rewrites47.4%
Applied rewrites65.5%
Final simplification69.4%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 4e-154)
(* l (/ (/ l (* k (* t_m (* t_m k)))) t_m))
(* (/ l t_m) (/ l (* t_m (* t_m (* k k))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 4e-154) {
tmp = l * ((l / (k * (t_m * (t_m * k)))) / t_m);
} else {
tmp = (l / t_m) * (l / (t_m * (t_m * (k * k))));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (k <= 4d-154) then
tmp = l * ((l / (k * (t_m * (t_m * k)))) / t_m)
else
tmp = (l / t_m) * (l / (t_m * (t_m * (k * k))))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 4e-154) {
tmp = l * ((l / (k * (t_m * (t_m * k)))) / t_m);
} else {
tmp = (l / t_m) * (l / (t_m * (t_m * (k * k))));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if k <= 4e-154: tmp = l * ((l / (k * (t_m * (t_m * k)))) / t_m) else: tmp = (l / t_m) * (l / (t_m * (t_m * (k * k)))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 4e-154) tmp = Float64(l * Float64(Float64(l / Float64(k * Float64(t_m * Float64(t_m * k)))) / t_m)); else tmp = Float64(Float64(l / t_m) * Float64(l / Float64(t_m * Float64(t_m * Float64(k * k))))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (k <= 4e-154) tmp = l * ((l / (k * (t_m * (t_m * k)))) / t_m); else tmp = (l / t_m) * (l / (t_m * (t_m * (k * k)))); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 4e-154], N[(l * N[(N[(l / N[(k * N[(t$95$m * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision]), $MachinePrecision], N[(N[(l / t$95$m), $MachinePrecision] * N[(l / N[(t$95$m * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 4 \cdot 10^{-154}:\\
\;\;\;\;\ell \cdot \frac{\frac{\ell}{k \cdot \left(t\_m \cdot \left(t\_m \cdot k\right)\right)}}{t\_m}\\
\mathbf{else}:\\
\;\;\;\;\frac{\ell}{t\_m} \cdot \frac{\ell}{t\_m \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)}\\
\end{array}
\end{array}
if k < 3.9999999999999999e-154Initial program 53.0%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6447.5
Applied rewrites47.5%
Applied rewrites60.0%
Applied rewrites67.9%
Applied rewrites71.9%
if 3.9999999999999999e-154 < k Initial program 44.0%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6447.4
Applied rewrites47.4%
Applied rewrites65.5%
Final simplification69.4%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 1.9e-155)
(* l (* l (/ 1.0 (* (* t_m (* t_m k)) (* t_m k)))))
(* (/ l t_m) (/ l (* t_m (* t_m (* k k))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 1.9e-155) {
tmp = l * (l * (1.0 / ((t_m * (t_m * k)) * (t_m * k))));
} else {
tmp = (l / t_m) * (l / (t_m * (t_m * (k * k))));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (k <= 1.9d-155) then
tmp = l * (l * (1.0d0 / ((t_m * (t_m * k)) * (t_m * k))))
else
tmp = (l / t_m) * (l / (t_m * (t_m * (k * k))))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 1.9e-155) {
tmp = l * (l * (1.0 / ((t_m * (t_m * k)) * (t_m * k))));
} else {
tmp = (l / t_m) * (l / (t_m * (t_m * (k * k))));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if k <= 1.9e-155: tmp = l * (l * (1.0 / ((t_m * (t_m * k)) * (t_m * k)))) else: tmp = (l / t_m) * (l / (t_m * (t_m * (k * k)))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 1.9e-155) tmp = Float64(l * Float64(l * Float64(1.0 / Float64(Float64(t_m * Float64(t_m * k)) * Float64(t_m * k))))); else tmp = Float64(Float64(l / t_m) * Float64(l / Float64(t_m * Float64(t_m * Float64(k * k))))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (k <= 1.9e-155) tmp = l * (l * (1.0 / ((t_m * (t_m * k)) * (t_m * k)))); else tmp = (l / t_m) * (l / (t_m * (t_m * (k * k)))); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 1.9e-155], N[(l * N[(l * N[(1.0 / N[(N[(t$95$m * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision] * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(N[(l / t$95$m), $MachinePrecision] * N[(l / N[(t$95$m * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 1.9 \cdot 10^{-155}:\\
\;\;\;\;\ell \cdot \left(\ell \cdot \frac{1}{\left(t\_m \cdot \left(t\_m \cdot k\right)\right) \cdot \left(t\_m \cdot k\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\ell}{t\_m} \cdot \frac{\ell}{t\_m \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)}\\
\end{array}
\end{array}
if k < 1.8999999999999999e-155Initial program 53.0%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6447.5
Applied rewrites47.5%
Applied rewrites60.0%
Applied rewrites67.9%
Applied rewrites70.2%
if 1.8999999999999999e-155 < k Initial program 44.0%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6447.4
Applied rewrites47.4%
Applied rewrites65.5%
Final simplification68.3%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 1.1e-45)
(* l (/ l (* t_m (* t_m (* t_m (* k k))))))
(* l (* l (/ 1.0 (* (* t_m (* t_m k)) (* t_m k))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 1.1e-45) {
tmp = l * (l / (t_m * (t_m * (t_m * (k * k)))));
} else {
tmp = l * (l * (1.0 / ((t_m * (t_m * k)) * (t_m * k))));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (t_m <= 1.1d-45) then
tmp = l * (l / (t_m * (t_m * (t_m * (k * k)))))
else
tmp = l * (l * (1.0d0 / ((t_m * (t_m * k)) * (t_m * k))))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 1.1e-45) {
tmp = l * (l / (t_m * (t_m * (t_m * (k * k)))));
} else {
tmp = l * (l * (1.0 / ((t_m * (t_m * k)) * (t_m * k))));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if t_m <= 1.1e-45: tmp = l * (l / (t_m * (t_m * (t_m * (k * k))))) else: tmp = l * (l * (1.0 / ((t_m * (t_m * k)) * (t_m * k)))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 1.1e-45) tmp = Float64(l * Float64(l / Float64(t_m * Float64(t_m * Float64(t_m * Float64(k * k)))))); else tmp = Float64(l * Float64(l * Float64(1.0 / Float64(Float64(t_m * Float64(t_m * k)) * Float64(t_m * k))))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (t_m <= 1.1e-45) tmp = l * (l / (t_m * (t_m * (t_m * (k * k))))); else tmp = l * (l * (1.0 / ((t_m * (t_m * k)) * (t_m * k)))); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 1.1e-45], N[(l * N[(l / N[(t$95$m * N[(t$95$m * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(l * N[(l * N[(1.0 / N[(N[(t$95$m * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision] * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 1.1 \cdot 10^{-45}:\\
\;\;\;\;\ell \cdot \frac{\ell}{t\_m \cdot \left(t\_m \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\ell \cdot \left(\ell \cdot \frac{1}{\left(t\_m \cdot \left(t\_m \cdot k\right)\right) \cdot \left(t\_m \cdot k\right)}\right)\\
\end{array}
\end{array}
if t < 1.09999999999999997e-45Initial program 43.9%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6444.9
Applied rewrites44.9%
Applied rewrites58.5%
if 1.09999999999999997e-45 < t Initial program 64.5%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6454.6
Applied rewrites54.6%
Applied rewrites66.5%
Applied rewrites74.5%
Applied rewrites76.7%
Final simplification63.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 1.1e-45)
(* l (/ l (* t_m (* t_m (* t_m (* k k))))))
(* l (/ l (* (* t_m (* t_m k)) (* t_m k)))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 1.1e-45) {
tmp = l * (l / (t_m * (t_m * (t_m * (k * k)))));
} else {
tmp = l * (l / ((t_m * (t_m * k)) * (t_m * k)));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (t_m <= 1.1d-45) then
tmp = l * (l / (t_m * (t_m * (t_m * (k * k)))))
else
tmp = l * (l / ((t_m * (t_m * k)) * (t_m * k)))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 1.1e-45) {
tmp = l * (l / (t_m * (t_m * (t_m * (k * k)))));
} else {
tmp = l * (l / ((t_m * (t_m * k)) * (t_m * k)));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if t_m <= 1.1e-45: tmp = l * (l / (t_m * (t_m * (t_m * (k * k))))) else: tmp = l * (l / ((t_m * (t_m * k)) * (t_m * k))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 1.1e-45) tmp = Float64(l * Float64(l / Float64(t_m * Float64(t_m * Float64(t_m * Float64(k * k)))))); else tmp = Float64(l * Float64(l / Float64(Float64(t_m * Float64(t_m * k)) * Float64(t_m * k)))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (t_m <= 1.1e-45) tmp = l * (l / (t_m * (t_m * (t_m * (k * k))))); else tmp = l * (l / ((t_m * (t_m * k)) * (t_m * k))); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 1.1e-45], N[(l * N[(l / N[(t$95$m * N[(t$95$m * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(l * N[(l / N[(N[(t$95$m * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision] * N[(t$95$m * 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}\;t\_m \leq 1.1 \cdot 10^{-45}:\\
\;\;\;\;\ell \cdot \frac{\ell}{t\_m \cdot \left(t\_m \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\ell \cdot \frac{\ell}{\left(t\_m \cdot \left(t\_m \cdot k\right)\right) \cdot \left(t\_m \cdot k\right)}\\
\end{array}
\end{array}
if t < 1.09999999999999997e-45Initial program 43.9%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6444.9
Applied rewrites44.9%
Applied rewrites58.5%
if 1.09999999999999997e-45 < t Initial program 64.5%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6454.6
Applied rewrites54.6%
Applied rewrites66.5%
Applied rewrites74.5%
Applied rewrites76.7%
Final simplification63.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 2e-22)
(* l (/ l (* t_m (* t_m (* t_m (* k k))))))
(* l (/ l (* t_m (* k (* t_m (* t_m k)))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 2e-22) {
tmp = l * (l / (t_m * (t_m * (t_m * (k * k)))));
} else {
tmp = l * (l / (t_m * (k * (t_m * (t_m * k)))));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (t_m <= 2d-22) then
tmp = l * (l / (t_m * (t_m * (t_m * (k * k)))))
else
tmp = l * (l / (t_m * (k * (t_m * (t_m * k)))))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 2e-22) {
tmp = l * (l / (t_m * (t_m * (t_m * (k * k)))));
} else {
tmp = l * (l / (t_m * (k * (t_m * (t_m * k)))));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if t_m <= 2e-22: tmp = l * (l / (t_m * (t_m * (t_m * (k * k))))) else: tmp = l * (l / (t_m * (k * (t_m * (t_m * k))))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 2e-22) tmp = Float64(l * Float64(l / Float64(t_m * Float64(t_m * Float64(t_m * Float64(k * k)))))); else tmp = Float64(l * Float64(l / Float64(t_m * Float64(k * Float64(t_m * Float64(t_m * k)))))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (t_m <= 2e-22) tmp = l * (l / (t_m * (t_m * (t_m * (k * k))))); else tmp = l * (l / (t_m * (k * (t_m * (t_m * k))))); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 2e-22], N[(l * N[(l / N[(t$95$m * N[(t$95$m * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(l * N[(l / N[(t$95$m * N[(k * N[(t$95$m * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 2 \cdot 10^{-22}:\\
\;\;\;\;\ell \cdot \frac{\ell}{t\_m \cdot \left(t\_m \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\ell \cdot \frac{\ell}{t\_m \cdot \left(k \cdot \left(t\_m \cdot \left(t\_m \cdot k\right)\right)\right)}\\
\end{array}
\end{array}
if t < 2.0000000000000001e-22Initial program 45.1%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6446.0
Applied rewrites46.0%
Applied rewrites59.4%
if 2.0000000000000001e-22 < t Initial program 62.3%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6451.8
Applied rewrites51.8%
Applied rewrites64.5%
Applied rewrites73.8%
Final simplification63.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 5e-107)
(* l (/ l (* t_m (* t_m (* t_m (* k k))))))
(* l (/ l (* t_m (* t_m (* k (* t_m k)))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 5e-107) {
tmp = l * (l / (t_m * (t_m * (t_m * (k * k)))));
} else {
tmp = l * (l / (t_m * (t_m * (k * (t_m * k)))));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (t_m <= 5d-107) then
tmp = l * (l / (t_m * (t_m * (t_m * (k * k)))))
else
tmp = l * (l / (t_m * (t_m * (k * (t_m * k)))))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 5e-107) {
tmp = l * (l / (t_m * (t_m * (t_m * (k * k)))));
} else {
tmp = l * (l / (t_m * (t_m * (k * (t_m * k)))));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if t_m <= 5e-107: tmp = l * (l / (t_m * (t_m * (t_m * (k * k))))) else: tmp = l * (l / (t_m * (t_m * (k * (t_m * k))))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 5e-107) tmp = Float64(l * Float64(l / Float64(t_m * Float64(t_m * Float64(t_m * Float64(k * k)))))); else tmp = Float64(l * Float64(l / Float64(t_m * Float64(t_m * Float64(k * Float64(t_m * k)))))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (t_m <= 5e-107) tmp = l * (l / (t_m * (t_m * (t_m * (k * k))))); else tmp = l * (l / (t_m * (t_m * (k * (t_m * k))))); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 5e-107], N[(l * N[(l / N[(t$95$m * N[(t$95$m * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(l * N[(l / N[(t$95$m * N[(t$95$m * N[(k * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 5 \cdot 10^{-107}:\\
\;\;\;\;\ell \cdot \frac{\ell}{t\_m \cdot \left(t\_m \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\ell \cdot \frac{\ell}{t\_m \cdot \left(t\_m \cdot \left(k \cdot \left(t\_m \cdot k\right)\right)\right)}\\
\end{array}
\end{array}
if t < 4.99999999999999971e-107Initial program 40.9%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6443.4
Applied rewrites43.4%
Applied rewrites59.7%
if 4.99999999999999971e-107 < t Initial program 65.0%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6455.0
Applied rewrites55.0%
Applied rewrites62.5%
Applied rewrites68.5%
Final simplification62.8%
t\_m = (fabs.f64 t) t\_s = (copysign.f64 #s(literal 1 binary64) t) (FPCore (t_s t_m l k) :precision binary64 (* t_s (* l (/ l (* t_m (* t_m (* t_m (* k k))))))))
t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
return t_s * (l * (l / (t_m * (t_m * (t_m * (k * k))))));
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
code = t_s * (l * (l / (t_m * (t_m * (t_m * (k * k))))))
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
return t_s * (l * (l / (t_m * (t_m * (t_m * (k * k))))));
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): return t_s * (l * (l / (t_m * (t_m * (t_m * (k * k))))))
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) return Float64(t_s * Float64(l * Float64(l / Float64(t_m * Float64(t_m * Float64(t_m * Float64(k * k))))))) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp = code(t_s, t_m, l, k) tmp = t_s * (l * (l / (t_m * (t_m * (t_m * (k * k)))))); end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * N[(l * N[(l / N[(t$95$m * N[(t$95$m * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \left(\ell \cdot \frac{\ell}{t\_m \cdot \left(t\_m \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)\right)}\right)
\end{array}
Initial program 49.5%
Taylor expanded in k around 0
lower-/.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
cube-multN/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f6447.5
Applied rewrites47.5%
Applied rewrites60.7%
Final simplification60.7%
herbie shell --seed 2024216
(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))))