
(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 19 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.2e-55)
(/
1.0
(*
(* (sin k) (tan k))
(* (pow (/ (* 2.0 l) (* t_m k)) -1.0) (pow (/ l k) -1.0))))
(if (<= t_m 7.5e+80)
(/
2.0
(/
(*
(* (tan k) (+ 2.0 (/ (* k k) (* t_m t_m))))
(/ (* (sin k) (* t_m (* t_m t_m))) l))
l))
(/
2.0
(*
(*
(tan k)
(* (sin k) (pow (* (pow t_m 0.75) (/ (pow t_m 0.75) l)) 2.0)))
(+ 1.0 (+ 1.0 (pow (/ k 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.2e-55) {
tmp = 1.0 / ((sin(k) * tan(k)) * (pow(((2.0 * l) / (t_m * k)), -1.0) * pow((l / k), -1.0)));
} else if (t_m <= 7.5e+80) {
tmp = 2.0 / (((tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((sin(k) * (t_m * (t_m * t_m))) / l)) / l);
} else {
tmp = 2.0 / ((tan(k) * (sin(k) * pow((pow(t_m, 0.75) * (pow(t_m, 0.75) / l)), 2.0))) * (1.0 + (1.0 + pow((k / t_m), 2.0))));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (t_m <= 4.2d-55) then
tmp = 1.0d0 / ((sin(k) * tan(k)) * ((((2.0d0 * l) / (t_m * k)) ** (-1.0d0)) * ((l / k) ** (-1.0d0))))
else if (t_m <= 7.5d+80) then
tmp = 2.0d0 / (((tan(k) * (2.0d0 + ((k * k) / (t_m * t_m)))) * ((sin(k) * (t_m * (t_m * t_m))) / l)) / l)
else
tmp = 2.0d0 / ((tan(k) * (sin(k) * (((t_m ** 0.75d0) * ((t_m ** 0.75d0) / l)) ** 2.0d0))) * (1.0d0 + (1.0d0 + ((k / t_m) ** 2.0d0))))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 4.2e-55) {
tmp = 1.0 / ((Math.sin(k) * Math.tan(k)) * (Math.pow(((2.0 * l) / (t_m * k)), -1.0) * Math.pow((l / k), -1.0)));
} else if (t_m <= 7.5e+80) {
tmp = 2.0 / (((Math.tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((Math.sin(k) * (t_m * (t_m * t_m))) / l)) / l);
} else {
tmp = 2.0 / ((Math.tan(k) * (Math.sin(k) * Math.pow((Math.pow(t_m, 0.75) * (Math.pow(t_m, 0.75) / l)), 2.0))) * (1.0 + (1.0 + Math.pow((k / t_m), 2.0))));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if t_m <= 4.2e-55: tmp = 1.0 / ((math.sin(k) * math.tan(k)) * (math.pow(((2.0 * l) / (t_m * k)), -1.0) * math.pow((l / k), -1.0))) elif t_m <= 7.5e+80: tmp = 2.0 / (((math.tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((math.sin(k) * (t_m * (t_m * t_m))) / l)) / l) else: tmp = 2.0 / ((math.tan(k) * (math.sin(k) * math.pow((math.pow(t_m, 0.75) * (math.pow(t_m, 0.75) / l)), 2.0))) * (1.0 + (1.0 + math.pow((k / 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.2e-55) tmp = Float64(1.0 / Float64(Float64(sin(k) * tan(k)) * Float64((Float64(Float64(2.0 * l) / Float64(t_m * k)) ^ -1.0) * (Float64(l / k) ^ -1.0)))); elseif (t_m <= 7.5e+80) tmp = Float64(2.0 / Float64(Float64(Float64(tan(k) * Float64(2.0 + Float64(Float64(k * k) / Float64(t_m * t_m)))) * Float64(Float64(sin(k) * Float64(t_m * Float64(t_m * t_m))) / l)) / l)); else tmp = Float64(2.0 / Float64(Float64(tan(k) * Float64(sin(k) * (Float64((t_m ^ 0.75) * Float64((t_m ^ 0.75) / l)) ^ 2.0))) * Float64(1.0 + Float64(1.0 + (Float64(k / t_m) ^ 2.0))))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (t_m <= 4.2e-55) tmp = 1.0 / ((sin(k) * tan(k)) * ((((2.0 * l) / (t_m * k)) ^ -1.0) * ((l / k) ^ -1.0))); elseif (t_m <= 7.5e+80) tmp = 2.0 / (((tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((sin(k) * (t_m * (t_m * t_m))) / l)) / l); else tmp = 2.0 / ((tan(k) * (sin(k) * (((t_m ^ 0.75) * ((t_m ^ 0.75) / l)) ^ 2.0))) * (1.0 + (1.0 + ((k / t_m) ^ 2.0)))); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 4.2e-55], N[(1.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[Power[N[(N[(2.0 * l), $MachinePrecision] / N[(t$95$m * k), $MachinePrecision]), $MachinePrecision], -1.0], $MachinePrecision] * N[Power[N[(l / k), $MachinePrecision], -1.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 7.5e+80], N[(2.0 / N[(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] * N[(N[(N[Sin[k], $MachinePrecision] * N[(t$95$m * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Tan[k], $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[Power[N[(N[Power[t$95$m, 0.75], $MachinePrecision] * N[(N[Power[t$95$m, 0.75], $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(1.0 + N[(1.0 + N[Power[N[(k / t$95$m), $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.2 \cdot 10^{-55}:\\
\;\;\;\;\frac{1}{\left(\sin k \cdot \tan k\right) \cdot \left({\left(\frac{2 \cdot \ell}{t\_m \cdot k}\right)}^{-1} \cdot {\left(\frac{\ell}{k}\right)}^{-1}\right)}\\
\mathbf{elif}\;t\_m \leq 7.5 \cdot 10^{+80}:\\
\;\;\;\;\frac{2}{\frac{\left(\tan k \cdot \left(2 + \frac{k \cdot k}{t\_m \cdot t\_m}\right)\right) \cdot \frac{\sin k \cdot \left(t\_m \cdot \left(t\_m \cdot t\_m\right)\right)}{\ell}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \left(\sin k \cdot {\left({t\_m}^{0.75} \cdot \frac{{t\_m}^{0.75}}{\ell}\right)}^{2}\right)\right) \cdot \left(1 + \left(1 + {\left(\frac{k}{t\_m}\right)}^{2}\right)\right)}\\
\end{array}
\end{array}
if t < 4.2000000000000003e-55Initial program 56.7%
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-*.f6461.2
Simplified61.2%
lift-*.f64N/A
lift-*.f64N/A
lift-cos.f64N/A
lift-*.f64N/A
lift-sin.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
clear-numN/A
lower-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
Applied egg-rr62.4%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
clear-numN/A
inv-powN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-*.f64N/A
times-fracN/A
unpow-prod-downN/A
lower-*.f64N/A
lower-pow.f64N/A
lower-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-pow.f64N/A
Applied egg-rr78.9%
if 4.2000000000000003e-55 < t < 7.49999999999999994e80Initial program 65.9%
Applied egg-rr92.1%
if 7.49999999999999994e80 < t Initial program 62.4%
sqr-powN/A
times-fracN/A
pow2N/A
lower-pow.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
metadata-eval85.7
Applied egg-rr85.7%
sqr-powN/A
associate-/l*N/A
lower-*.f64N/A
lower-pow.f64N/A
metadata-evalN/A
lower-/.f64N/A
lower-pow.f64N/A
metadata-eval88.0
Applied egg-rr88.0%
Final simplification81.6%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 4.2e-55)
(/
1.0
(*
(* (sin k) (tan k))
(* (pow (/ (* 2.0 l) (* t_m k)) -1.0) (pow (/ l k) -1.0))))
(if (<= t_m 7.5e+80)
(/
2.0
(/
(*
(* (tan k) (+ 2.0 (/ (* k k) (* t_m t_m))))
(/ (* (sin k) (* t_m (* t_m t_m))) l))
l))
(/
2.0
(*
(+ 1.0 (+ 1.0 (pow (/ k t_m) 2.0)))
(*
(tan k)
(* (sin k) (* (pow t_m 0.75) (pow (/ (pow t_m 1.125) 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 (t_m <= 4.2e-55) {
tmp = 1.0 / ((sin(k) * tan(k)) * (pow(((2.0 * l) / (t_m * k)), -1.0) * pow((l / k), -1.0)));
} else if (t_m <= 7.5e+80) {
tmp = 2.0 / (((tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((sin(k) * (t_m * (t_m * t_m))) / l)) / l);
} else {
tmp = 2.0 / ((1.0 + (1.0 + pow((k / t_m), 2.0))) * (tan(k) * (sin(k) * (pow(t_m, 0.75) * pow((pow(t_m, 1.125) / l), 2.0)))));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (t_m <= 4.2d-55) then
tmp = 1.0d0 / ((sin(k) * tan(k)) * ((((2.0d0 * l) / (t_m * k)) ** (-1.0d0)) * ((l / k) ** (-1.0d0))))
else if (t_m <= 7.5d+80) then
tmp = 2.0d0 / (((tan(k) * (2.0d0 + ((k * k) / (t_m * t_m)))) * ((sin(k) * (t_m * (t_m * t_m))) / l)) / l)
else
tmp = 2.0d0 / ((1.0d0 + (1.0d0 + ((k / t_m) ** 2.0d0))) * (tan(k) * (sin(k) * ((t_m ** 0.75d0) * (((t_m ** 1.125d0) / l) ** 2.0d0)))))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 4.2e-55) {
tmp = 1.0 / ((Math.sin(k) * Math.tan(k)) * (Math.pow(((2.0 * l) / (t_m * k)), -1.0) * Math.pow((l / k), -1.0)));
} else if (t_m <= 7.5e+80) {
tmp = 2.0 / (((Math.tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((Math.sin(k) * (t_m * (t_m * t_m))) / l)) / l);
} else {
tmp = 2.0 / ((1.0 + (1.0 + Math.pow((k / t_m), 2.0))) * (Math.tan(k) * (Math.sin(k) * (Math.pow(t_m, 0.75) * Math.pow((Math.pow(t_m, 1.125) / l), 2.0)))));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if t_m <= 4.2e-55: tmp = 1.0 / ((math.sin(k) * math.tan(k)) * (math.pow(((2.0 * l) / (t_m * k)), -1.0) * math.pow((l / k), -1.0))) elif t_m <= 7.5e+80: tmp = 2.0 / (((math.tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((math.sin(k) * (t_m * (t_m * t_m))) / l)) / l) else: tmp = 2.0 / ((1.0 + (1.0 + math.pow((k / t_m), 2.0))) * (math.tan(k) * (math.sin(k) * (math.pow(t_m, 0.75) * math.pow((math.pow(t_m, 1.125) / 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 (t_m <= 4.2e-55) tmp = Float64(1.0 / Float64(Float64(sin(k) * tan(k)) * Float64((Float64(Float64(2.0 * l) / Float64(t_m * k)) ^ -1.0) * (Float64(l / k) ^ -1.0)))); elseif (t_m <= 7.5e+80) tmp = Float64(2.0 / Float64(Float64(Float64(tan(k) * Float64(2.0 + Float64(Float64(k * k) / Float64(t_m * t_m)))) * Float64(Float64(sin(k) * Float64(t_m * Float64(t_m * t_m))) / l)) / l)); else tmp = Float64(2.0 / Float64(Float64(1.0 + Float64(1.0 + (Float64(k / t_m) ^ 2.0))) * Float64(tan(k) * Float64(sin(k) * Float64((t_m ^ 0.75) * (Float64((t_m ^ 1.125) / l) ^ 2.0)))))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (t_m <= 4.2e-55) tmp = 1.0 / ((sin(k) * tan(k)) * ((((2.0 * l) / (t_m * k)) ^ -1.0) * ((l / k) ^ -1.0))); elseif (t_m <= 7.5e+80) tmp = 2.0 / (((tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((sin(k) * (t_m * (t_m * t_m))) / l)) / l); else tmp = 2.0 / ((1.0 + (1.0 + ((k / t_m) ^ 2.0))) * (tan(k) * (sin(k) * ((t_m ^ 0.75) * (((t_m ^ 1.125) / l) ^ 2.0))))); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 4.2e-55], N[(1.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[Power[N[(N[(2.0 * l), $MachinePrecision] / N[(t$95$m * k), $MachinePrecision]), $MachinePrecision], -1.0], $MachinePrecision] * N[Power[N[(l / k), $MachinePrecision], -1.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 7.5e+80], N[(2.0 / N[(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] * N[(N[(N[Sin[k], $MachinePrecision] * N[(t$95$m * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(1.0 + N[(1.0 + N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[(N[Power[t$95$m, 0.75], $MachinePrecision] * N[Power[N[(N[Power[t$95$m, 1.125], $MachinePrecision] / l), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 4.2 \cdot 10^{-55}:\\
\;\;\;\;\frac{1}{\left(\sin k \cdot \tan k\right) \cdot \left({\left(\frac{2 \cdot \ell}{t\_m \cdot k}\right)}^{-1} \cdot {\left(\frac{\ell}{k}\right)}^{-1}\right)}\\
\mathbf{elif}\;t\_m \leq 7.5 \cdot 10^{+80}:\\
\;\;\;\;\frac{2}{\frac{\left(\tan k \cdot \left(2 + \frac{k \cdot k}{t\_m \cdot t\_m}\right)\right) \cdot \frac{\sin k \cdot \left(t\_m \cdot \left(t\_m \cdot t\_m\right)\right)}{\ell}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(1 + \left(1 + {\left(\frac{k}{t\_m}\right)}^{2}\right)\right) \cdot \left(\tan k \cdot \left(\sin k \cdot \left({t\_m}^{0.75} \cdot {\left(\frac{{t\_m}^{1.125}}{\ell}\right)}^{2}\right)\right)\right)}\\
\end{array}
\end{array}
if t < 4.2000000000000003e-55Initial program 56.7%
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-*.f6461.2
Simplified61.2%
lift-*.f64N/A
lift-*.f64N/A
lift-cos.f64N/A
lift-*.f64N/A
lift-sin.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
clear-numN/A
lower-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
Applied egg-rr62.4%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
clear-numN/A
inv-powN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-*.f64N/A
times-fracN/A
unpow-prod-downN/A
lower-*.f64N/A
lower-pow.f64N/A
lower-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-pow.f64N/A
Applied egg-rr78.9%
if 4.2000000000000003e-55 < t < 7.49999999999999994e80Initial program 65.9%
Applied egg-rr92.1%
if 7.49999999999999994e80 < t Initial program 62.4%
sqr-powN/A
times-fracN/A
pow2N/A
lower-pow.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
metadata-eval85.7
Applied egg-rr85.7%
sqr-powN/A
associate-/l*N/A
lower-*.f64N/A
lower-pow.f64N/A
metadata-evalN/A
lower-/.f64N/A
lower-pow.f64N/A
metadata-eval88.0
Applied egg-rr88.0%
lift-pow.f64N/A
lift-pow.f64N/A
lift-/.f64N/A
lift-*.f64N/A
unpow1N/A
metadata-evalN/A
metadata-evalN/A
unpow1N/A
lift-*.f64N/A
*-commutativeN/A
lift-pow.f64N/A
sqr-powN/A
associate-*r*N/A
unpow-prod-downN/A
pow2N/A
sqr-powN/A
lift-pow.f64N/A
lower-*.f64N/A
Applied egg-rr88.0%
lift-pow.f64N/A
lift-pow.f64N/A
lift-/.f64N/A
lift-*.f64N/A
lift-pow.f6488.0
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
lower-/.f64N/A
lift-pow.f64N/A
lift-pow.f64N/A
pow-prod-upN/A
lower-pow.f64N/A
metadata-eval88.0
Applied egg-rr88.0%
Final simplification81.6%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= t_m 4.2e-55)
(/
1.0
(*
(* (sin k) (tan k))
(* (pow (/ (* 2.0 l) (* t_m k)) -1.0) (pow (/ l k) -1.0))))
(if (<= t_m 5.5e+80)
(/
2.0
(/
(*
(* (tan k) (+ 2.0 (/ (* k k) (* t_m t_m))))
(/ (* (sin k) (* t_m (* t_m t_m))) l))
l))
(/
2.0
(*
(+ 1.0 (+ 1.0 (pow (/ k t_m) 2.0)))
(* (tan k) (* (sin k) (pow (* (pow t_m 1.5) (/ 1.0 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 (t_m <= 4.2e-55) {
tmp = 1.0 / ((sin(k) * tan(k)) * (pow(((2.0 * l) / (t_m * k)), -1.0) * pow((l / k), -1.0)));
} else if (t_m <= 5.5e+80) {
tmp = 2.0 / (((tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((sin(k) * (t_m * (t_m * t_m))) / l)) / l);
} else {
tmp = 2.0 / ((1.0 + (1.0 + pow((k / t_m), 2.0))) * (tan(k) * (sin(k) * pow((pow(t_m, 1.5) * (1.0 / l)), 2.0))));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (t_m <= 4.2d-55) then
tmp = 1.0d0 / ((sin(k) * tan(k)) * ((((2.0d0 * l) / (t_m * k)) ** (-1.0d0)) * ((l / k) ** (-1.0d0))))
else if (t_m <= 5.5d+80) then
tmp = 2.0d0 / (((tan(k) * (2.0d0 + ((k * k) / (t_m * t_m)))) * ((sin(k) * (t_m * (t_m * t_m))) / l)) / l)
else
tmp = 2.0d0 / ((1.0d0 + (1.0d0 + ((k / t_m) ** 2.0d0))) * (tan(k) * (sin(k) * (((t_m ** 1.5d0) * (1.0d0 / l)) ** 2.0d0))))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 4.2e-55) {
tmp = 1.0 / ((Math.sin(k) * Math.tan(k)) * (Math.pow(((2.0 * l) / (t_m * k)), -1.0) * Math.pow((l / k), -1.0)));
} else if (t_m <= 5.5e+80) {
tmp = 2.0 / (((Math.tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((Math.sin(k) * (t_m * (t_m * t_m))) / l)) / l);
} else {
tmp = 2.0 / ((1.0 + (1.0 + Math.pow((k / t_m), 2.0))) * (Math.tan(k) * (Math.sin(k) * Math.pow((Math.pow(t_m, 1.5) * (1.0 / l)), 2.0))));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if t_m <= 4.2e-55: tmp = 1.0 / ((math.sin(k) * math.tan(k)) * (math.pow(((2.0 * l) / (t_m * k)), -1.0) * math.pow((l / k), -1.0))) elif t_m <= 5.5e+80: tmp = 2.0 / (((math.tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((math.sin(k) * (t_m * (t_m * t_m))) / l)) / l) else: tmp = 2.0 / ((1.0 + (1.0 + math.pow((k / t_m), 2.0))) * (math.tan(k) * (math.sin(k) * math.pow((math.pow(t_m, 1.5) * (1.0 / 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 (t_m <= 4.2e-55) tmp = Float64(1.0 / Float64(Float64(sin(k) * tan(k)) * Float64((Float64(Float64(2.0 * l) / Float64(t_m * k)) ^ -1.0) * (Float64(l / k) ^ -1.0)))); elseif (t_m <= 5.5e+80) tmp = Float64(2.0 / Float64(Float64(Float64(tan(k) * Float64(2.0 + Float64(Float64(k * k) / Float64(t_m * t_m)))) * Float64(Float64(sin(k) * Float64(t_m * Float64(t_m * t_m))) / l)) / l)); else tmp = Float64(2.0 / Float64(Float64(1.0 + Float64(1.0 + (Float64(k / t_m) ^ 2.0))) * Float64(tan(k) * Float64(sin(k) * (Float64((t_m ^ 1.5) * Float64(1.0 / l)) ^ 2.0))))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (t_m <= 4.2e-55) tmp = 1.0 / ((sin(k) * tan(k)) * ((((2.0 * l) / (t_m * k)) ^ -1.0) * ((l / k) ^ -1.0))); elseif (t_m <= 5.5e+80) tmp = 2.0 / (((tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((sin(k) * (t_m * (t_m * t_m))) / l)) / l); else tmp = 2.0 / ((1.0 + (1.0 + ((k / t_m) ^ 2.0))) * (tan(k) * (sin(k) * (((t_m ^ 1.5) * (1.0 / l)) ^ 2.0)))); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 4.2e-55], N[(1.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[Power[N[(N[(2.0 * l), $MachinePrecision] / N[(t$95$m * k), $MachinePrecision]), $MachinePrecision], -1.0], $MachinePrecision] * N[Power[N[(l / k), $MachinePrecision], -1.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 5.5e+80], N[(2.0 / N[(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] * N[(N[(N[Sin[k], $MachinePrecision] * N[(t$95$m * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(1.0 + N[(1.0 + N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[Power[N[(N[Power[t$95$m, 1.5], $MachinePrecision] * N[(1.0 / l), $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.2 \cdot 10^{-55}:\\
\;\;\;\;\frac{1}{\left(\sin k \cdot \tan k\right) \cdot \left({\left(\frac{2 \cdot \ell}{t\_m \cdot k}\right)}^{-1} \cdot {\left(\frac{\ell}{k}\right)}^{-1}\right)}\\
\mathbf{elif}\;t\_m \leq 5.5 \cdot 10^{+80}:\\
\;\;\;\;\frac{2}{\frac{\left(\tan k \cdot \left(2 + \frac{k \cdot k}{t\_m \cdot t\_m}\right)\right) \cdot \frac{\sin k \cdot \left(t\_m \cdot \left(t\_m \cdot t\_m\right)\right)}{\ell}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(1 + \left(1 + {\left(\frac{k}{t\_m}\right)}^{2}\right)\right) \cdot \left(\tan k \cdot \left(\sin k \cdot {\left({t\_m}^{1.5} \cdot \frac{1}{\ell}\right)}^{2}\right)\right)}\\
\end{array}
\end{array}
if t < 4.2000000000000003e-55Initial program 56.7%
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-*.f6461.2
Simplified61.2%
lift-*.f64N/A
lift-*.f64N/A
lift-cos.f64N/A
lift-*.f64N/A
lift-sin.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
clear-numN/A
lower-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
Applied egg-rr62.4%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
clear-numN/A
inv-powN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-*.f64N/A
times-fracN/A
unpow-prod-downN/A
lower-*.f64N/A
lower-pow.f64N/A
lower-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-pow.f64N/A
Applied egg-rr78.9%
if 4.2000000000000003e-55 < t < 5.49999999999999967e80Initial program 65.9%
Applied egg-rr92.1%
if 5.49999999999999967e80 < t Initial program 62.4%
sqr-powN/A
times-fracN/A
pow2N/A
lower-pow.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
metadata-eval85.7
Applied egg-rr85.7%
lift-pow.f64N/A
div-invN/A
lower-*.f64N/A
lower-/.f6485.7
Applied egg-rr85.7%
Final simplification81.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 4.2e-55)
(/
1.0
(*
(* (sin k) (tan k))
(* (pow (/ (* 2.0 l) (* t_m k)) -1.0) (pow (/ l k) -1.0))))
(if (<= t_m 5.5e+80)
(/
2.0
(/
(*
(* (tan k) (+ 2.0 (/ (* k k) (* t_m t_m))))
(/ (* (sin k) (* t_m (* t_m t_m))) l))
l))
(/
2.0
(*
(* (tan k) (* (sin k) (pow (/ (pow t_m 1.5) l) 2.0)))
(fma (/ k t_m) (/ k 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.2e-55) {
tmp = 1.0 / ((sin(k) * tan(k)) * (pow(((2.0 * l) / (t_m * k)), -1.0) * pow((l / k), -1.0)));
} else if (t_m <= 5.5e+80) {
tmp = 2.0 / (((tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((sin(k) * (t_m * (t_m * t_m))) / l)) / l);
} else {
tmp = 2.0 / ((tan(k) * (sin(k) * pow((pow(t_m, 1.5) / l), 2.0))) * fma((k / t_m), (k / 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.2e-55) tmp = Float64(1.0 / Float64(Float64(sin(k) * tan(k)) * Float64((Float64(Float64(2.0 * l) / Float64(t_m * k)) ^ -1.0) * (Float64(l / k) ^ -1.0)))); elseif (t_m <= 5.5e+80) tmp = Float64(2.0 / Float64(Float64(Float64(tan(k) * Float64(2.0 + Float64(Float64(k * k) / Float64(t_m * t_m)))) * Float64(Float64(sin(k) * Float64(t_m * Float64(t_m * t_m))) / l)) / l)); else tmp = Float64(2.0 / Float64(Float64(tan(k) * Float64(sin(k) * (Float64((t_m ^ 1.5) / l) ^ 2.0))) * fma(Float64(k / t_m), Float64(k / 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.2e-55], N[(1.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[Power[N[(N[(2.0 * l), $MachinePrecision] / N[(t$95$m * k), $MachinePrecision]), $MachinePrecision], -1.0], $MachinePrecision] * N[Power[N[(l / k), $MachinePrecision], -1.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 5.5e+80], N[(2.0 / N[(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] * N[(N[(N[Sin[k], $MachinePrecision] * N[(t$95$m * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(N[Tan[k], $MachinePrecision] * N[(N[Sin[k], $MachinePrecision] * N[Power[N[(N[Power[t$95$m, 1.5], $MachinePrecision] / l), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[(k / t$95$m), $MachinePrecision] * N[(k / t$95$m), $MachinePrecision] + 2.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 4.2 \cdot 10^{-55}:\\
\;\;\;\;\frac{1}{\left(\sin k \cdot \tan k\right) \cdot \left({\left(\frac{2 \cdot \ell}{t\_m \cdot k}\right)}^{-1} \cdot {\left(\frac{\ell}{k}\right)}^{-1}\right)}\\
\mathbf{elif}\;t\_m \leq 5.5 \cdot 10^{+80}:\\
\;\;\;\;\frac{2}{\frac{\left(\tan k \cdot \left(2 + \frac{k \cdot k}{t\_m \cdot t\_m}\right)\right) \cdot \frac{\sin k \cdot \left(t\_m \cdot \left(t\_m \cdot t\_m\right)\right)}{\ell}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(\tan k \cdot \left(\sin k \cdot {\left(\frac{{t\_m}^{1.5}}{\ell}\right)}^{2}\right)\right) \cdot \mathsf{fma}\left(\frac{k}{t\_m}, \frac{k}{t\_m}, 2\right)}\\
\end{array}
\end{array}
if t < 4.2000000000000003e-55Initial program 56.7%
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-*.f6461.2
Simplified61.2%
lift-*.f64N/A
lift-*.f64N/A
lift-cos.f64N/A
lift-*.f64N/A
lift-sin.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
clear-numN/A
lower-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
Applied egg-rr62.4%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
clear-numN/A
inv-powN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-*.f64N/A
times-fracN/A
unpow-prod-downN/A
lower-*.f64N/A
lower-pow.f64N/A
lower-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-pow.f64N/A
Applied egg-rr78.9%
if 4.2000000000000003e-55 < t < 5.49999999999999967e80Initial program 65.9%
Applied egg-rr92.1%
if 5.49999999999999967e80 < t Initial program 62.4%
sqr-powN/A
times-fracN/A
pow2N/A
lower-pow.f64N/A
lower-/.f64N/A
lower-pow.f64N/A
metadata-eval85.7
Applied egg-rr85.7%
lift-/.f64N/A
unpow2N/A
lift-/.f64N/A
lift-/.f64N/A
times-fracN/A
lift-*.f64N/A
lift-*.f64N/A
lift-/.f64N/A
+-commutativeN/A
associate-+l+N/A
metadata-evalN/A
lift-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
times-fracN/A
lift-/.f64N/A
lift-/.f64N/A
lower-fma.f6485.7
Applied egg-rr85.7%
Final simplification81.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 4.2e-55)
(/
1.0
(*
(* (sin k) (tan k))
(* (pow (/ (* 2.0 l) (* t_m k)) -1.0) (pow (/ l k) -1.0))))
(if (<= t_m 2.3e+80)
(/
2.0
(/
(*
(* (tan k) (+ 2.0 (/ (* k k) (* t_m t_m))))
(/ (* (sin k) (* t_m (* t_m t_m))) l))
l))
(/
2.0
(*
(+ 1.0 (+ 1.0 (pow (/ k t_m) 2.0)))
(* (tan k) (* (/ t_m l) (/ (* t_m (* t_m (sin k))) l)))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 4.2e-55) {
tmp = 1.0 / ((sin(k) * tan(k)) * (pow(((2.0 * l) / (t_m * k)), -1.0) * pow((l / k), -1.0)));
} else if (t_m <= 2.3e+80) {
tmp = 2.0 / (((tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((sin(k) * (t_m * (t_m * t_m))) / l)) / l);
} else {
tmp = 2.0 / ((1.0 + (1.0 + pow((k / t_m), 2.0))) * (tan(k) * ((t_m / l) * ((t_m * (t_m * sin(k))) / 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.2d-55) then
tmp = 1.0d0 / ((sin(k) * tan(k)) * ((((2.0d0 * l) / (t_m * k)) ** (-1.0d0)) * ((l / k) ** (-1.0d0))))
else if (t_m <= 2.3d+80) then
tmp = 2.0d0 / (((tan(k) * (2.0d0 + ((k * k) / (t_m * t_m)))) * ((sin(k) * (t_m * (t_m * t_m))) / l)) / l)
else
tmp = 2.0d0 / ((1.0d0 + (1.0d0 + ((k / t_m) ** 2.0d0))) * (tan(k) * ((t_m / l) * ((t_m * (t_m * sin(k))) / 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.2e-55) {
tmp = 1.0 / ((Math.sin(k) * Math.tan(k)) * (Math.pow(((2.0 * l) / (t_m * k)), -1.0) * Math.pow((l / k), -1.0)));
} else if (t_m <= 2.3e+80) {
tmp = 2.0 / (((Math.tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((Math.sin(k) * (t_m * (t_m * t_m))) / l)) / l);
} else {
tmp = 2.0 / ((1.0 + (1.0 + Math.pow((k / t_m), 2.0))) * (Math.tan(k) * ((t_m / l) * ((t_m * (t_m * Math.sin(k))) / 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.2e-55: tmp = 1.0 / ((math.sin(k) * math.tan(k)) * (math.pow(((2.0 * l) / (t_m * k)), -1.0) * math.pow((l / k), -1.0))) elif t_m <= 2.3e+80: tmp = 2.0 / (((math.tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((math.sin(k) * (t_m * (t_m * t_m))) / l)) / l) else: tmp = 2.0 / ((1.0 + (1.0 + math.pow((k / t_m), 2.0))) * (math.tan(k) * ((t_m / l) * ((t_m * (t_m * math.sin(k))) / l)))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 4.2e-55) tmp = Float64(1.0 / Float64(Float64(sin(k) * tan(k)) * Float64((Float64(Float64(2.0 * l) / Float64(t_m * k)) ^ -1.0) * (Float64(l / k) ^ -1.0)))); elseif (t_m <= 2.3e+80) tmp = Float64(2.0 / Float64(Float64(Float64(tan(k) * Float64(2.0 + Float64(Float64(k * k) / Float64(t_m * t_m)))) * Float64(Float64(sin(k) * Float64(t_m * Float64(t_m * t_m))) / l)) / l)); else tmp = Float64(2.0 / Float64(Float64(1.0 + Float64(1.0 + (Float64(k / t_m) ^ 2.0))) * Float64(tan(k) * Float64(Float64(t_m / l) * Float64(Float64(t_m * Float64(t_m * sin(k))) / 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.2e-55) tmp = 1.0 / ((sin(k) * tan(k)) * ((((2.0 * l) / (t_m * k)) ^ -1.0) * ((l / k) ^ -1.0))); elseif (t_m <= 2.3e+80) tmp = 2.0 / (((tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((sin(k) * (t_m * (t_m * t_m))) / l)) / l); else tmp = 2.0 / ((1.0 + (1.0 + ((k / t_m) ^ 2.0))) * (tan(k) * ((t_m / l) * ((t_m * (t_m * sin(k))) / 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.2e-55], N[(1.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[Power[N[(N[(2.0 * l), $MachinePrecision] / N[(t$95$m * k), $MachinePrecision]), $MachinePrecision], -1.0], $MachinePrecision] * N[Power[N[(l / k), $MachinePrecision], -1.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 2.3e+80], N[(2.0 / N[(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] * N[(N[(N[Sin[k], $MachinePrecision] * N[(t$95$m * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(1.0 + N[(1.0 + N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(t$95$m * N[(t$95$m * N[Sin[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 4.2 \cdot 10^{-55}:\\
\;\;\;\;\frac{1}{\left(\sin k \cdot \tan k\right) \cdot \left({\left(\frac{2 \cdot \ell}{t\_m \cdot k}\right)}^{-1} \cdot {\left(\frac{\ell}{k}\right)}^{-1}\right)}\\
\mathbf{elif}\;t\_m \leq 2.3 \cdot 10^{+80}:\\
\;\;\;\;\frac{2}{\frac{\left(\tan k \cdot \left(2 + \frac{k \cdot k}{t\_m \cdot t\_m}\right)\right) \cdot \frac{\sin k \cdot \left(t\_m \cdot \left(t\_m \cdot t\_m\right)\right)}{\ell}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(1 + \left(1 + {\left(\frac{k}{t\_m}\right)}^{2}\right)\right) \cdot \left(\tan k \cdot \left(\frac{t\_m}{\ell} \cdot \frac{t\_m \cdot \left(t\_m \cdot \sin k\right)}{\ell}\right)\right)}\\
\end{array}
\end{array}
if t < 4.2000000000000003e-55Initial program 56.7%
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-*.f6461.2
Simplified61.2%
lift-*.f64N/A
lift-*.f64N/A
lift-cos.f64N/A
lift-*.f64N/A
lift-sin.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
clear-numN/A
lower-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
Applied egg-rr62.4%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
clear-numN/A
inv-powN/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-*.f64N/A
times-fracN/A
unpow-prod-downN/A
lower-*.f64N/A
lower-pow.f64N/A
lower-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-pow.f64N/A
Applied egg-rr78.9%
if 4.2000000000000003e-55 < t < 2.30000000000000004e80Initial program 65.9%
Applied egg-rr92.1%
if 2.30000000000000004e80 < t Initial program 62.4%
lift-pow.f64N/A
lift-*.f64N/A
lift-sin.f64N/A
associate-*l/N/A
lift-*.f64N/A
lift-pow.f64N/A
cube-multN/A
associate-*l*N/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lower-/.f64N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f6478.5
Applied egg-rr78.5%
Final simplification80.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 4.2e-55)
(/ 1.0 (* (* (sin k) (tan k)) (* (/ (* t_m k) (* 2.0 l)) (/ k l))))
(if (<= t_m 2.3e+80)
(/
2.0
(/
(*
(* (tan k) (+ 2.0 (/ (* k k) (* t_m t_m))))
(/ (* (sin k) (* t_m (* t_m t_m))) l))
l))
(/
2.0
(*
(+ 1.0 (+ 1.0 (pow (/ k t_m) 2.0)))
(* (tan k) (* (/ t_m l) (/ (* t_m (* t_m (sin k))) l)))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 4.2e-55) {
tmp = 1.0 / ((sin(k) * tan(k)) * (((t_m * k) / (2.0 * l)) * (k / l)));
} else if (t_m <= 2.3e+80) {
tmp = 2.0 / (((tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((sin(k) * (t_m * (t_m * t_m))) / l)) / l);
} else {
tmp = 2.0 / ((1.0 + (1.0 + pow((k / t_m), 2.0))) * (tan(k) * ((t_m / l) * ((t_m * (t_m * sin(k))) / 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.2d-55) then
tmp = 1.0d0 / ((sin(k) * tan(k)) * (((t_m * k) / (2.0d0 * l)) * (k / l)))
else if (t_m <= 2.3d+80) then
tmp = 2.0d0 / (((tan(k) * (2.0d0 + ((k * k) / (t_m * t_m)))) * ((sin(k) * (t_m * (t_m * t_m))) / l)) / l)
else
tmp = 2.0d0 / ((1.0d0 + (1.0d0 + ((k / t_m) ** 2.0d0))) * (tan(k) * ((t_m / l) * ((t_m * (t_m * sin(k))) / 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.2e-55) {
tmp = 1.0 / ((Math.sin(k) * Math.tan(k)) * (((t_m * k) / (2.0 * l)) * (k / l)));
} else if (t_m <= 2.3e+80) {
tmp = 2.0 / (((Math.tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((Math.sin(k) * (t_m * (t_m * t_m))) / l)) / l);
} else {
tmp = 2.0 / ((1.0 + (1.0 + Math.pow((k / t_m), 2.0))) * (Math.tan(k) * ((t_m / l) * ((t_m * (t_m * Math.sin(k))) / 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.2e-55: tmp = 1.0 / ((math.sin(k) * math.tan(k)) * (((t_m * k) / (2.0 * l)) * (k / l))) elif t_m <= 2.3e+80: tmp = 2.0 / (((math.tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((math.sin(k) * (t_m * (t_m * t_m))) / l)) / l) else: tmp = 2.0 / ((1.0 + (1.0 + math.pow((k / t_m), 2.0))) * (math.tan(k) * ((t_m / l) * ((t_m * (t_m * math.sin(k))) / l)))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 4.2e-55) tmp = Float64(1.0 / Float64(Float64(sin(k) * tan(k)) * Float64(Float64(Float64(t_m * k) / Float64(2.0 * l)) * Float64(k / l)))); elseif (t_m <= 2.3e+80) tmp = Float64(2.0 / Float64(Float64(Float64(tan(k) * Float64(2.0 + Float64(Float64(k * k) / Float64(t_m * t_m)))) * Float64(Float64(sin(k) * Float64(t_m * Float64(t_m * t_m))) / l)) / l)); else tmp = Float64(2.0 / Float64(Float64(1.0 + Float64(1.0 + (Float64(k / t_m) ^ 2.0))) * Float64(tan(k) * Float64(Float64(t_m / l) * Float64(Float64(t_m * Float64(t_m * sin(k))) / 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.2e-55) tmp = 1.0 / ((sin(k) * tan(k)) * (((t_m * k) / (2.0 * l)) * (k / l))); elseif (t_m <= 2.3e+80) tmp = 2.0 / (((tan(k) * (2.0 + ((k * k) / (t_m * t_m)))) * ((sin(k) * (t_m * (t_m * t_m))) / l)) / l); else tmp = 2.0 / ((1.0 + (1.0 + ((k / t_m) ^ 2.0))) * (tan(k) * ((t_m / l) * ((t_m * (t_m * sin(k))) / 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.2e-55], N[(1.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[(N[(t$95$m * k), $MachinePrecision] / N[(2.0 * l), $MachinePrecision]), $MachinePrecision] * N[(k / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[t$95$m, 2.3e+80], N[(2.0 / N[(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] * N[(N[(N[Sin[k], $MachinePrecision] * N[(t$95$m * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision], N[(2.0 / N[(N[(1.0 + N[(1.0 + N[Power[N[(k / t$95$m), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(N[Tan[k], $MachinePrecision] * N[(N[(t$95$m / l), $MachinePrecision] * N[(N[(t$95$m * N[(t$95$m * N[Sin[k], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 4.2 \cdot 10^{-55}:\\
\;\;\;\;\frac{1}{\left(\sin k \cdot \tan k\right) \cdot \left(\frac{t\_m \cdot k}{2 \cdot \ell} \cdot \frac{k}{\ell}\right)}\\
\mathbf{elif}\;t\_m \leq 2.3 \cdot 10^{+80}:\\
\;\;\;\;\frac{2}{\frac{\left(\tan k \cdot \left(2 + \frac{k \cdot k}{t\_m \cdot t\_m}\right)\right) \cdot \frac{\sin k \cdot \left(t\_m \cdot \left(t\_m \cdot t\_m\right)\right)}{\ell}}{\ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{2}{\left(1 + \left(1 + {\left(\frac{k}{t\_m}\right)}^{2}\right)\right) \cdot \left(\tan k \cdot \left(\frac{t\_m}{\ell} \cdot \frac{t\_m \cdot \left(t\_m \cdot \sin k\right)}{\ell}\right)\right)}\\
\end{array}
\end{array}
if t < 4.2000000000000003e-55Initial program 56.7%
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-*.f6461.2
Simplified61.2%
lift-*.f64N/A
lift-*.f64N/A
lift-cos.f64N/A
lift-*.f64N/A
lift-sin.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
clear-numN/A
lower-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
Applied egg-rr62.4%
associate-*r*N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6478.9
Applied egg-rr78.9%
if 4.2000000000000003e-55 < t < 2.30000000000000004e80Initial program 65.9%
Applied egg-rr92.1%
if 2.30000000000000004e80 < t Initial program 62.4%
lift-pow.f64N/A
lift-*.f64N/A
lift-sin.f64N/A
associate-*l/N/A
lift-*.f64N/A
lift-pow.f64N/A
cube-multN/A
associate-*l*N/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lower-/.f64N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f6478.5
Applied egg-rr78.5%
Final simplification80.1%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 350000000.0)
(* l (/ (/ (/ l t_m) (* t_m (* t_m k))) k))
(if (<= k 2.65e+141)
(*
(* 2.0 l)
(* l (/ (cos k) (* (- 0.5 (* 0.5 (cos (+ k k)))) (* t_m (* k k))))))
(/ 1.0 (* (* (sin k) (tan k)) (* k (/ (* t_m k) (* 2.0 (* l l))))))))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 350000000.0) {
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k);
} else if (k <= 2.65e+141) {
tmp = (2.0 * l) * (l * (cos(k) / ((0.5 - (0.5 * cos((k + k)))) * (t_m * (k * k)))));
} else {
tmp = 1.0 / ((sin(k) * tan(k)) * (k * ((t_m * k) / (2.0 * (l * l)))));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (k <= 350000000.0d0) then
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k)
else if (k <= 2.65d+141) then
tmp = (2.0d0 * l) * (l * (cos(k) / ((0.5d0 - (0.5d0 * cos((k + k)))) * (t_m * (k * k)))))
else
tmp = 1.0d0 / ((sin(k) * tan(k)) * (k * ((t_m * k) / (2.0d0 * (l * l)))))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 350000000.0) {
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k);
} else if (k <= 2.65e+141) {
tmp = (2.0 * l) * (l * (Math.cos(k) / ((0.5 - (0.5 * Math.cos((k + k)))) * (t_m * (k * k)))));
} else {
tmp = 1.0 / ((Math.sin(k) * Math.tan(k)) * (k * ((t_m * k) / (2.0 * (l * l)))));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if k <= 350000000.0: tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k) elif k <= 2.65e+141: tmp = (2.0 * l) * (l * (math.cos(k) / ((0.5 - (0.5 * math.cos((k + k)))) * (t_m * (k * k))))) else: tmp = 1.0 / ((math.sin(k) * math.tan(k)) * (k * ((t_m * k) / (2.0 * (l * l))))) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (k <= 350000000.0) tmp = Float64(l * Float64(Float64(Float64(l / t_m) / Float64(t_m * Float64(t_m * k))) / k)); elseif (k <= 2.65e+141) tmp = Float64(Float64(2.0 * l) * Float64(l * Float64(cos(k) / Float64(Float64(0.5 - Float64(0.5 * cos(Float64(k + k)))) * Float64(t_m * Float64(k * k)))))); else tmp = Float64(1.0 / Float64(Float64(sin(k) * tan(k)) * Float64(k * Float64(Float64(t_m * k) / Float64(2.0 * Float64(l * l)))))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (k <= 350000000.0) tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k); elseif (k <= 2.65e+141) tmp = (2.0 * l) * (l * (cos(k) / ((0.5 - (0.5 * cos((k + k)))) * (t_m * (k * k))))); else tmp = 1.0 / ((sin(k) * tan(k)) * (k * ((t_m * k) / (2.0 * (l * l))))); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 350000000.0], N[(l * N[(N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 2.65e+141], N[(N[(2.0 * l), $MachinePrecision] * N[(l * N[(N[Cos[k], $MachinePrecision] / N[(N[(0.5 - N[(0.5 * N[Cos[N[(k + k), $MachinePrecision]], $MachinePrecision]), $MachinePrecision]), $MachinePrecision] * N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(1.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(k * N[(N[(t$95$m * k), $MachinePrecision] / N[(2.0 * N[(l * l), $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}\;k \leq 350000000:\\
\;\;\;\;\ell \cdot \frac{\frac{\frac{\ell}{t\_m}}{t\_m \cdot \left(t\_m \cdot k\right)}}{k}\\
\mathbf{elif}\;k \leq 2.65 \cdot 10^{+141}:\\
\;\;\;\;\left(2 \cdot \ell\right) \cdot \left(\ell \cdot \frac{\cos k}{\left(0.5 - 0.5 \cdot \cos \left(k + k\right)\right) \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\left(\sin k \cdot \tan k\right) \cdot \left(k \cdot \frac{t\_m \cdot k}{2 \cdot \left(\ell \cdot \ell\right)}\right)}\\
\end{array}
\end{array}
if k < 3.5e8Initial program 58.8%
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-*.f6450.5
Simplified50.5%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6456.7
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lower-*.f6462.0
Applied egg-rr62.0%
associate-*r*N/A
lower-*.f64N/A
lower-*.f6467.9
Applied egg-rr67.9%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f64N/A
lower-/.f64N/A
lower-*.f6473.3
lift-*.f64N/A
*-commutativeN/A
lower-*.f6473.3
Applied egg-rr73.3%
if 3.5e8 < k < 2.65e141Initial program 46.2%
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-*.f6478.5
Simplified78.5%
lift-*.f64N/A
lift-*.f64N/A
lift-cos.f64N/A
lift-sin.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
associate-*l*N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-*.f64N/A
lower-/.f6486.8
Applied egg-rr86.7%
if 2.65e141 < k Initial program 64.2%
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-*.f6470.1
Simplified70.1%
lift-*.f64N/A
lift-*.f64N/A
lift-cos.f64N/A
lift-*.f64N/A
lift-sin.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
clear-numN/A
lower-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
Applied egg-rr70.1%
associate-*r*N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f6483.6
lift-*.f64N/A
*-commutativeN/A
lower-*.f6483.6
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
lift-*.f64N/A
*-commutativeN/A
lower-*.f6483.6
Applied egg-rr83.6%
Final simplification75.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 (<= t_m 2.1e+47)
(/ 1.0 (* (* (sin k) (tan k)) (* (/ (* t_m k) (* 2.0 l)) (/ k l))))
(* l (/ (/ (/ l t_m) (* t_m (* t_m k))) k)))))t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 2.1e+47) {
tmp = 1.0 / ((sin(k) * tan(k)) * (((t_m * k) / (2.0 * l)) * (k / l)));
} else {
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k);
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (t_m <= 2.1d+47) then
tmp = 1.0d0 / ((sin(k) * tan(k)) * (((t_m * k) / (2.0d0 * l)) * (k / l)))
else
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k)
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (t_m <= 2.1e+47) {
tmp = 1.0 / ((Math.sin(k) * Math.tan(k)) * (((t_m * k) / (2.0 * l)) * (k / l)));
} else {
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k);
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if t_m <= 2.1e+47: tmp = 1.0 / ((math.sin(k) * math.tan(k)) * (((t_m * k) / (2.0 * l)) * (k / l))) else: tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k) return t_s * tmp
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) tmp = 0.0 if (t_m <= 2.1e+47) tmp = Float64(1.0 / Float64(Float64(sin(k) * tan(k)) * Float64(Float64(Float64(t_m * k) / Float64(2.0 * l)) * Float64(k / l)))); else tmp = Float64(l * Float64(Float64(Float64(l / t_m) / Float64(t_m * Float64(t_m * 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 (t_m <= 2.1e+47) tmp = 1.0 / ((sin(k) * tan(k)) * (((t_m * k) / (2.0 * l)) * (k / l))); else tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[t$95$m, 2.1e+47], N[(1.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(N[(N[(t$95$m * k), $MachinePrecision] / N[(2.0 * l), $MachinePrecision]), $MachinePrecision] * N[(k / l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], N[(l * N[(N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_m \leq 2.1 \cdot 10^{+47}:\\
\;\;\;\;\frac{1}{\left(\sin k \cdot \tan k\right) \cdot \left(\frac{t\_m \cdot k}{2 \cdot \ell} \cdot \frac{k}{\ell}\right)}\\
\mathbf{else}:\\
\;\;\;\;\ell \cdot \frac{\frac{\frac{\ell}{t\_m}}{t\_m \cdot \left(t\_m \cdot k\right)}}{k}\\
\end{array}
\end{array}
if t < 2.1e47Initial program 57.7%
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-*.f6461.4
Simplified61.4%
lift-*.f64N/A
lift-*.f64N/A
lift-cos.f64N/A
lift-*.f64N/A
lift-sin.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
clear-numN/A
lower-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
Applied egg-rr62.4%
associate-*r*N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6478.9
Applied egg-rr78.9%
if 2.1e47 < t Initial program 61.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-*.f6452.6
Simplified52.6%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6455.8
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lower-*.f6462.5
Applied egg-rr62.5%
associate-*r*N/A
lower-*.f64N/A
lower-*.f6475.3
Applied egg-rr75.3%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f64N/A
lower-/.f64N/A
lower-*.f6481.6
lift-*.f64N/A
*-commutativeN/A
lower-*.f6481.6
Applied egg-rr81.6%
Final simplification79.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 350000000.0)
(* l (/ (/ (/ l t_m) (* t_m (* t_m k))) k))
(/ (/ (* 2.0 (* l l)) (* k (* t_m k))) (* (sin k) (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 (k <= 350000000.0) {
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k);
} else {
tmp = ((2.0 * (l * l)) / (k * (t_m * k))) / (sin(k) * 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 (k <= 350000000.0d0) then
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k)
else
tmp = ((2.0d0 * (l * l)) / (k * (t_m * k))) / (sin(k) * 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 (k <= 350000000.0) {
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k);
} else {
tmp = ((2.0 * (l * l)) / (k * (t_m * k))) / (Math.sin(k) * 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 k <= 350000000.0: tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k) else: tmp = ((2.0 * (l * l)) / (k * (t_m * k))) / (math.sin(k) * 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 (k <= 350000000.0) tmp = Float64(l * Float64(Float64(Float64(l / t_m) / Float64(t_m * Float64(t_m * k))) / k)); else tmp = Float64(Float64(Float64(2.0 * Float64(l * l)) / Float64(k * Float64(t_m * k))) / Float64(sin(k) * 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 (k <= 350000000.0) tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k); else tmp = ((2.0 * (l * l)) / (k * (t_m * k))) / (sin(k) * 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[k, 350000000.0], N[(l * N[(N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision], N[(N[(N[(2.0 * N[(l * l), $MachinePrecision]), $MachinePrecision] / N[(k * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[Sin[k], $MachinePrecision] * N[Tan[k], $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 350000000:\\
\;\;\;\;\ell \cdot \frac{\frac{\frac{\ell}{t\_m}}{t\_m \cdot \left(t\_m \cdot k\right)}}{k}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{2 \cdot \left(\ell \cdot \ell\right)}{k \cdot \left(t\_m \cdot k\right)}}{\sin k \cdot \tan k}\\
\end{array}
\end{array}
if k < 3.5e8Initial program 58.8%
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-*.f6450.5
Simplified50.5%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6456.7
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lower-*.f6462.0
Applied egg-rr62.0%
associate-*r*N/A
lower-*.f64N/A
lower-*.f6467.9
Applied egg-rr67.9%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f64N/A
lower-/.f64N/A
lower-*.f6473.3
lift-*.f64N/A
*-commutativeN/A
lower-*.f6473.3
Applied egg-rr73.3%
if 3.5e8 < k Initial program 57.4%
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-*.f6473.3
Simplified73.3%
lift-*.f64N/A
lift-*.f64N/A
lift-cos.f64N/A
lift-*.f64N/A
lift-sin.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
clear-numN/A
lower-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
Applied egg-rr73.2%
lift-sin.f64N/A
lift-tan.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-/.f64N/A
*-commutativeN/A
associate-/r*N/A
lift-/.f64N/A
clear-numN/A
lower-/.f64N/A
Applied egg-rr73.3%
Final simplification73.3%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 350000000.0)
(* l (/ (/ (/ l t_m) (* t_m (* t_m k))) k))
(* (* 2.0 (* l l)) (/ 1.0 (* (* (sin k) (tan k)) (* 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 (k <= 350000000.0) {
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k);
} else {
tmp = (2.0 * (l * l)) * (1.0 / ((sin(k) * tan(k)) * (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 (k <= 350000000.0d0) then
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k)
else
tmp = (2.0d0 * (l * l)) * (1.0d0 / ((sin(k) * tan(k)) * (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 (k <= 350000000.0) {
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k);
} else {
tmp = (2.0 * (l * l)) * (1.0 / ((Math.sin(k) * Math.tan(k)) * (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 k <= 350000000.0: tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k) else: tmp = (2.0 * (l * l)) * (1.0 / ((math.sin(k) * math.tan(k)) * (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 (k <= 350000000.0) tmp = Float64(l * Float64(Float64(Float64(l / t_m) / Float64(t_m * Float64(t_m * k))) / k)); else tmp = Float64(Float64(2.0 * Float64(l * l)) * Float64(1.0 / Float64(Float64(sin(k) * tan(k)) * 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 (k <= 350000000.0) tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k); else tmp = (2.0 * (l * l)) * (1.0 / ((sin(k) * tan(k)) * (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[k, 350000000.0], N[(l * N[(N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision], N[(N[(2.0 * N[(l * l), $MachinePrecision]), $MachinePrecision] * N[(1.0 / N[(N[(N[Sin[k], $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * N[(k * 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}\;k \leq 350000000:\\
\;\;\;\;\ell \cdot \frac{\frac{\frac{\ell}{t\_m}}{t\_m \cdot \left(t\_m \cdot k\right)}}{k}\\
\mathbf{else}:\\
\;\;\;\;\left(2 \cdot \left(\ell \cdot \ell\right)\right) \cdot \frac{1}{\left(\sin k \cdot \tan k\right) \cdot \left(k \cdot \left(t\_m \cdot k\right)\right)}\\
\end{array}
\end{array}
if k < 3.5e8Initial program 58.8%
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-*.f6450.5
Simplified50.5%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6456.7
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lower-*.f6462.0
Applied egg-rr62.0%
associate-*r*N/A
lower-*.f64N/A
lower-*.f6467.9
Applied egg-rr67.9%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f64N/A
lower-/.f64N/A
lower-*.f6473.3
lift-*.f64N/A
*-commutativeN/A
lower-*.f6473.3
Applied egg-rr73.3%
if 3.5e8 < k Initial program 57.4%
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-*.f6473.3
Simplified73.3%
lift-*.f64N/A
lift-*.f64N/A
lift-cos.f64N/A
lift-*.f64N/A
lift-sin.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
clear-numN/A
lower-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
Applied egg-rr73.2%
lift-sin.f64N/A
lift-tan.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-/.f64N/A
lift-/.f64N/A
associate-*r/N/A
associate-/r/N/A
lower-*.f64N/A
Applied egg-rr73.2%
Final simplification73.3%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 230000.0)
(* l (/ (/ (/ l t_m) (* t_m (* t_m k))) k))
(/ (* (cos k) (* 2.0 (* l l))) (* (* k k) (* 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 <= 230000.0) {
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k);
} else {
tmp = (cos(k) * (2.0 * (l * l))) / ((k * k) * (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 <= 230000.0d0) then
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k)
else
tmp = (cos(k) * (2.0d0 * (l * l))) / ((k * k) * (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 <= 230000.0) {
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k);
} else {
tmp = (Math.cos(k) * (2.0 * (l * l))) / ((k * k) * (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 <= 230000.0: tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k) else: tmp = (math.cos(k) * (2.0 * (l * l))) / ((k * k) * (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 <= 230000.0) tmp = Float64(l * Float64(Float64(Float64(l / t_m) / Float64(t_m * Float64(t_m * k))) / k)); else tmp = Float64(Float64(cos(k) * Float64(2.0 * Float64(l * l))) / Float64(Float64(k * k) * 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 <= 230000.0) tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k); else tmp = (cos(k) * (2.0 * (l * l))) / ((k * k) * (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, 230000.0], N[(l * N[(N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision], N[(N[(N[Cos[k], $MachinePrecision] * N[(2.0 * N[(l * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / N[(N[(k * k), $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}\;k \leq 230000:\\
\;\;\;\;\ell \cdot \frac{\frac{\frac{\ell}{t\_m}}{t\_m \cdot \left(t\_m \cdot k\right)}}{k}\\
\mathbf{else}:\\
\;\;\;\;\frac{\cos k \cdot \left(2 \cdot \left(\ell \cdot \ell\right)\right)}{\left(k \cdot k\right) \cdot \left(t\_m \cdot \left(k \cdot k\right)\right)}\\
\end{array}
\end{array}
if k < 2.3e5Initial program 58.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-*.f6450.3
Simplified50.3%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6456.5
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lower-*.f6461.8
Applied egg-rr61.8%
associate-*r*N/A
lower-*.f64N/A
lower-*.f6467.7
Applied egg-rr67.7%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f64N/A
lower-/.f64N/A
lower-*.f6473.2
lift-*.f64N/A
*-commutativeN/A
lower-*.f6473.2
Applied egg-rr73.2%
if 2.3e5 < k Initial program 58.1%
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-*.f6472.3
Simplified72.3%
Taylor expanded in k around 0
unpow2N/A
lower-*.f6464.1
Simplified64.1%
Final simplification71.1%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 8.5e+37)
(* l (/ (/ (/ l t_m) (* t_m (* t_m k))) k))
(/ 1.0 (* (* k k) (/ (* t_m (* k k)) (* l (* 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 <= 8.5e+37) {
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k);
} else {
tmp = 1.0 / ((k * k) * ((t_m * (k * k)) / (l * (2.0 * l))));
}
return t_s * tmp;
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
real(8) :: tmp
if (k <= 8.5d+37) then
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k)
else
tmp = 1.0d0 / ((k * k) * ((t_m * (k * k)) / (l * (2.0d0 * l))))
end if
code = t_s * tmp
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
double tmp;
if (k <= 8.5e+37) {
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k);
} else {
tmp = 1.0 / ((k * k) * ((t_m * (k * k)) / (l * (2.0 * l))));
}
return t_s * tmp;
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): tmp = 0 if k <= 8.5e+37: tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k) else: tmp = 1.0 / ((k * k) * ((t_m * (k * k)) / (l * (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 <= 8.5e+37) tmp = Float64(l * Float64(Float64(Float64(l / t_m) / Float64(t_m * Float64(t_m * k))) / k)); else tmp = Float64(1.0 / Float64(Float64(k * k) * Float64(Float64(t_m * Float64(k * k)) / Float64(l * Float64(2.0 * l))))); end return Float64(t_s * tmp) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp_2 = code(t_s, t_m, l, k) tmp = 0.0; if (k <= 8.5e+37) tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k); else tmp = 1.0 / ((k * k) * ((t_m * (k * k)) / (l * (2.0 * l)))); end tmp_2 = t_s * tmp; end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * If[LessEqual[k, 8.5e+37], N[(l * N[(N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision], N[(1.0 / N[(N[(k * k), $MachinePrecision] * N[(N[(t$95$m * N[(k * k), $MachinePrecision]), $MachinePrecision] / N[(l * N[(2.0 * l), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 8.5 \cdot 10^{+37}:\\
\;\;\;\;\ell \cdot \frac{\frac{\frac{\ell}{t\_m}}{t\_m \cdot \left(t\_m \cdot k\right)}}{k}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\left(k \cdot k\right) \cdot \frac{t\_m \cdot \left(k \cdot k\right)}{\ell \cdot \left(2 \cdot \ell\right)}}\\
\end{array}
\end{array}
if k < 8.4999999999999999e37Initial program 58.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-*.f6450.5
Simplified50.5%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6456.6
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lower-*.f6461.8
Applied egg-rr61.8%
associate-*r*N/A
lower-*.f64N/A
lower-*.f6467.6
Applied egg-rr67.6%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f64N/A
lower-/.f64N/A
lower-*.f6472.9
lift-*.f64N/A
*-commutativeN/A
lower-*.f6472.9
Applied egg-rr72.9%
if 8.4999999999999999e37 < k Initial program 57.9%
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-*.f6473.1
Simplified73.1%
lift-*.f64N/A
lift-*.f64N/A
lift-cos.f64N/A
lift-*.f64N/A
lift-sin.f64N/A
lift-pow.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
clear-numN/A
lower-/.f64N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
times-fracN/A
Applied egg-rr73.0%
Taylor expanded in k around 0
unpow2N/A
lower-*.f6462.4
Simplified62.4%
Final simplification70.7%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(let* ((t_2 (* t_m (* k (* t_m k)))))
(*
t_s
(if (<= k 1.2e-236)
(* (/ l k) (/ l (* t_m (* k (* t_m t_m)))))
(if (<= k 2.65e-25) (* l (/ (/ l t_m) t_2)) (/ (/ (* l l) t_2) 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 = t_m * (k * (t_m * k));
double tmp;
if (k <= 1.2e-236) {
tmp = (l / k) * (l / (t_m * (k * (t_m * t_m))));
} else if (k <= 2.65e-25) {
tmp = l * ((l / t_m) / t_2);
} else {
tmp = ((l * l) / t_2) / 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) :: t_2
real(8) :: tmp
t_2 = t_m * (k * (t_m * k))
if (k <= 1.2d-236) then
tmp = (l / k) * (l / (t_m * (k * (t_m * t_m))))
else if (k <= 2.65d-25) then
tmp = l * ((l / t_m) / t_2)
else
tmp = ((l * l) / t_2) / 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 t_2 = t_m * (k * (t_m * k));
double tmp;
if (k <= 1.2e-236) {
tmp = (l / k) * (l / (t_m * (k * (t_m * t_m))));
} else if (k <= 2.65e-25) {
tmp = l * ((l / t_m) / t_2);
} else {
tmp = ((l * l) / t_2) / 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): t_2 = t_m * (k * (t_m * k)) tmp = 0 if k <= 1.2e-236: tmp = (l / k) * (l / (t_m * (k * (t_m * t_m)))) elif k <= 2.65e-25: tmp = l * ((l / t_m) / t_2) else: tmp = ((l * l) / t_2) / 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(t_m * Float64(k * Float64(t_m * k))) tmp = 0.0 if (k <= 1.2e-236) tmp = Float64(Float64(l / k) * Float64(l / Float64(t_m * Float64(k * Float64(t_m * t_m))))); elseif (k <= 2.65e-25) tmp = Float64(l * Float64(Float64(l / t_m) / t_2)); else tmp = Float64(Float64(Float64(l * l) / t_2) / 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) t_2 = t_m * (k * (t_m * k)); tmp = 0.0; if (k <= 1.2e-236) tmp = (l / k) * (l / (t_m * (k * (t_m * t_m)))); elseif (k <= 2.65e-25) tmp = l * ((l / t_m) / t_2); else tmp = ((l * l) / t_2) / 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_] := Block[{t$95$2 = N[(t$95$m * N[(k * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]}, N[(t$95$s * If[LessEqual[k, 1.2e-236], N[(N[(l / k), $MachinePrecision] * N[(l / N[(t$95$m * N[(k * N[(t$95$m * t$95$m), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[k, 2.65e-25], N[(l * N[(N[(l / t$95$m), $MachinePrecision] / t$95$2), $MachinePrecision]), $MachinePrecision], N[(N[(N[(l * l), $MachinePrecision] / t$95$2), $MachinePrecision] / t$95$m), $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 \left(k \cdot \left(t\_m \cdot k\right)\right)\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 1.2 \cdot 10^{-236}:\\
\;\;\;\;\frac{\ell}{k} \cdot \frac{\ell}{t\_m \cdot \left(k \cdot \left(t\_m \cdot t\_m\right)\right)}\\
\mathbf{elif}\;k \leq 2.65 \cdot 10^{-25}:\\
\;\;\;\;\ell \cdot \frac{\frac{\ell}{t\_m}}{t\_2}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\ell \cdot \ell}{t\_2}}{t\_m}\\
\end{array}
\end{array}
\end{array}
if k < 1.2000000000000001e-236Initial program 57.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-*.f6449.7
Simplified49.7%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lift-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-/.f6470.1
Applied egg-rr70.1%
if 1.2000000000000001e-236 < k < 2.6499999999999998e-25Initial 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-*.f6454.2
Simplified54.2%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6460.0
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lower-*.f6465.5
Applied egg-rr65.5%
associate-*r*N/A
lower-*.f64N/A
lower-*.f6479.5
Applied egg-rr79.5%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f6484.7
lift-*.f64N/A
*-commutativeN/A
lower-*.f6484.7
lift-*.f64N/A
*-commutativeN/A
lower-*.f6484.7
Applied egg-rr84.7%
if 2.6499999999999998e-25 < k Initial program 55.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-*.f6450.9
Simplified50.9%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6451.6
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lower-*.f6455.2
Applied egg-rr55.2%
associate-*r*N/A
lower-*.f64N/A
lower-*.f6453.7
Applied egg-rr53.7%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l/N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f6462.1
lift-*.f64N/A
*-commutativeN/A
lower-*.f6462.1
lift-*.f64N/A
*-commutativeN/A
lower-*.f6462.1
Applied egg-rr62.1%
Final simplification71.3%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 2.65e-25)
(* l (/ (/ (/ l t_m) (* t_m (* t_m k))) k))
(/ (/ (* l l) (* t_m (* k (* 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 (k <= 2.65e-25) {
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k);
} else {
tmp = ((l * l) / (t_m * (k * (t_m * k)))) / 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 (k <= 2.65d-25) then
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k)
else
tmp = ((l * l) / (t_m * (k * (t_m * k)))) / 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 (k <= 2.65e-25) {
tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k);
} else {
tmp = ((l * l) / (t_m * (k * (t_m * k)))) / 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 k <= 2.65e-25: tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k) else: tmp = ((l * l) / (t_m * (k * (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 (k <= 2.65e-25) tmp = Float64(l * Float64(Float64(Float64(l / t_m) / Float64(t_m * Float64(t_m * k))) / k)); else tmp = Float64(Float64(Float64(l * l) / Float64(t_m * Float64(k * Float64(t_m * k)))) / 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 (k <= 2.65e-25) tmp = l * (((l / t_m) / (t_m * (t_m * k))) / k); else tmp = ((l * l) / (t_m * (k * (t_m * k)))) / 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[k, 2.65e-25], N[(l * N[(N[(N[(l / t$95$m), $MachinePrecision] / N[(t$95$m * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / k), $MachinePrecision]), $MachinePrecision], N[(N[(N[(l * l), $MachinePrecision] / N[(t$95$m * N[(k * N[(t$95$m * k), $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision] / t$95$m), $MachinePrecision]]), $MachinePrecision]
\begin{array}{l}
t\_m = \left|t\right|
\\
t\_s = \mathsf{copysign}\left(1, t\right)
\\
t\_s \cdot \begin{array}{l}
\mathbf{if}\;k \leq 2.65 \cdot 10^{-25}:\\
\;\;\;\;\ell \cdot \frac{\frac{\frac{\ell}{t\_m}}{t\_m \cdot \left(t\_m \cdot k\right)}}{k}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\ell \cdot \ell}{t\_m \cdot \left(k \cdot \left(t\_m \cdot k\right)\right)}}{t\_m}\\
\end{array}
\end{array}
if k < 2.6499999999999998e-25Initial program 59.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-*.f6451.0
Simplified51.0%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6457.3
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lower-*.f6462.8
Applied egg-rr62.8%
associate-*r*N/A
lower-*.f64N/A
lower-*.f6468.8
Applied egg-rr68.8%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/r*N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f64N/A
lower-/.f64N/A
lower-*.f6474.0
lift-*.f64N/A
*-commutativeN/A
lower-*.f6474.0
Applied egg-rr74.0%
if 2.6499999999999998e-25 < k Initial program 55.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-*.f6450.9
Simplified50.9%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6451.6
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lower-*.f6455.2
Applied egg-rr55.2%
associate-*r*N/A
lower-*.f64N/A
lower-*.f6453.7
Applied egg-rr53.7%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l/N/A
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-/r*N/A
lower-/.f64N/A
lower-/.f6462.1
lift-*.f64N/A
*-commutativeN/A
lower-*.f6462.1
lift-*.f64N/A
*-commutativeN/A
lower-*.f6462.1
Applied egg-rr62.1%
Final simplification71.0%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 8.2e-139)
(* (/ l k) (/ l (* t_m (* k (* t_m 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 <= 8.2e-139) {
tmp = (l / k) * (l / (t_m * (k * (t_m * 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 <= 8.2d-139) then
tmp = (l / k) * (l / (t_m * (k * (t_m * 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 <= 8.2e-139) {
tmp = (l / k) * (l / (t_m * (k * (t_m * 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 <= 8.2e-139: tmp = (l / k) * (l / (t_m * (k * (t_m * 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 <= 8.2e-139) tmp = Float64(Float64(l / k) * Float64(l / Float64(t_m * Float64(k * Float64(t_m * 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 <= 8.2e-139) tmp = (l / k) * (l / (t_m * (k * (t_m * 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, 8.2e-139], N[(N[(l / k), $MachinePrecision] * N[(l / N[(t$95$m * N[(k * N[(t$95$m * t$95$m), $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 8.2 \cdot 10^{-139}:\\
\;\;\;\;\frac{\ell}{k} \cdot \frac{\ell}{t\_m \cdot \left(k \cdot \left(t\_m \cdot t\_m\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 < 8.20000000000000028e-139Initial program 60.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-*.f6450.1
Simplified50.1%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lift-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-/.f6473.2
Applied egg-rr73.2%
if 8.20000000000000028e-139 < k Initial program 55.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-*.f6452.6
Simplified52.6%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lower-/.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lower-*.f6465.0
Applied egg-rr65.0%
Final simplification70.3%
t\_m = (fabs.f64 t)
t\_s = (copysign.f64 #s(literal 1 binary64) t)
(FPCore (t_s t_m l k)
:precision binary64
(*
t_s
(if (<= k 5e-162)
(* l (/ l (* t_m (* 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 <= 5e-162) {
tmp = l * (l / (t_m * (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 <= 5d-162) then
tmp = l * (l / (t_m * (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 <= 5e-162) {
tmp = l * (l / (t_m * (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 <= 5e-162: tmp = l * (l / (t_m * (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 <= 5e-162) tmp = Float64(l * Float64(l / Float64(t_m * 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 <= 5e-162) tmp = l * (l / (t_m * (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, 5e-162], 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], 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 5 \cdot 10^{-162}:\\
\;\;\;\;\ell \cdot \frac{\ell}{t\_m \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 < 5.00000000000000014e-162Initial program 60.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-*.f6449.8
Simplified49.8%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6456.0
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lower-*.f6462.0
Applied egg-rr62.0%
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6472.3
Applied egg-rr72.3%
if 5.00000000000000014e-162 < k Initial program 55.8%
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-*.f6453.0
Simplified53.0%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lower-/.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lower-*.f6464.8
Applied egg-rr64.8%
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 (* 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) {
return t_s * (l * (l / (t_m * (k * (t_m * (t_m * k))))));
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
code = t_s * (l * (l / (t_m * (k * (t_m * (t_m * k))))))
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
return t_s * (l * (l / (t_m * (k * (t_m * (t_m * k))))));
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): return t_s * (l * (l / (t_m * (k * (t_m * (t_m * k))))))
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) return Float64(t_s * Float64(l * Float64(l / Float64(t_m * Float64(k * Float64(t_m * Float64(t_m * k))))))) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp = code(t_s, t_m, l, k) tmp = t_s * (l * (l / (t_m * (k * (t_m * (t_m * k)))))); end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * N[(l * N[(l / N[(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 \left(\ell \cdot \frac{\ell}{t\_m \cdot \left(k \cdot \left(t\_m \cdot \left(t\_m \cdot k\right)\right)\right)}\right)
\end{array}
Initial program 58.4%
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.0
Simplified51.0%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6455.9
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lower-*.f6460.9
Applied egg-rr60.9%
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6466.8
Applied egg-rr66.8%
Final simplification66.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 (* k (* t_m k))))))))
t\_m = fabs(t);
t\_s = copysign(1.0, t);
double code(double t_s, double t_m, double l, double k) {
return t_s * (l * (l / (t_m * (t_m * (k * (t_m * k))))));
}
t\_m = abs(t)
t\_s = copysign(1.0d0, t)
real(8) function code(t_s, t_m, l, k)
real(8), intent (in) :: t_s
real(8), intent (in) :: t_m
real(8), intent (in) :: l
real(8), intent (in) :: k
code = t_s * (l * (l / (t_m * (t_m * (k * (t_m * k))))))
end function
t\_m = Math.abs(t);
t\_s = Math.copySign(1.0, t);
public static double code(double t_s, double t_m, double l, double k) {
return t_s * (l * (l / (t_m * (t_m * (k * (t_m * k))))));
}
t\_m = math.fabs(t) t\_s = math.copysign(1.0, t) def code(t_s, t_m, l, k): return t_s * (l * (l / (t_m * (t_m * (k * (t_m * k))))))
t\_m = abs(t) t\_s = copysign(1.0, t) function code(t_s, t_m, l, k) return Float64(t_s * Float64(l * Float64(l / Float64(t_m * Float64(t_m * Float64(k * Float64(t_m * k))))))) end
t\_m = abs(t); t\_s = sign(t) * abs(1.0); function tmp = code(t_s, t_m, l, k) tmp = t_s * (l * (l / (t_m * (t_m * (k * (t_m * k)))))); end
t\_m = N[Abs[t], $MachinePrecision]
t\_s = N[With[{TMP1 = Abs[1.0], TMP2 = Sign[t]}, TMP1 * If[TMP2 == 0, 1, TMP2]], $MachinePrecision]
code[t$95$s_, t$95$m_, l_, k_] := N[(t$95$s * N[(l * N[(l / N[(t$95$m * N[(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 \left(\ell \cdot \frac{\ell}{t\_m \cdot \left(t\_m \cdot \left(k \cdot \left(t\_m \cdot k\right)\right)\right)}\right)
\end{array}
Initial program 58.4%
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.0
Simplified51.0%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6455.9
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lower-*.f6460.9
Applied egg-rr60.9%
associate-*r*N/A
lower-*.f64N/A
lower-*.f6465.0
Applied egg-rr65.0%
Final simplification65.0%
t\_m = (fabs.f64 t) t\_s = (copysign.f64 #s(literal 1 binary64) t) (FPCore (t_s t_m l k) :precision binary64 (* t_s (* l (/ l (* t_m (* t_m (* 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 58.4%
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.0
Simplified51.0%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-/l*N/A
*-commutativeN/A
lower-*.f64N/A
lower-/.f6455.9
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lower-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
lower-*.f6460.9
Applied egg-rr60.9%
Final simplification60.9%
herbie shell --seed 2024207
(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))))