(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))))
(FPCore (t l k)
:precision binary64
(let* ((t_1 (+ 2.0 (pow (/ k t) 2.0)))
(t_2
(/
2.0
(pow
(* (/ t (cbrt (/ (* l l) (sin k)))) (cbrt (* (tan k) t_1)))
3.0)))
(t_3 (pow (cbrt l) 2.0))
(t_4
(/ 2.0 (* (* (pow (/ t (/ t_3 (cbrt (sin k)))) 3.0) (tan k)) t_1))))
(if (<= l -2.3666527635593354e+118)
t_4
(if (<= l -4.91448157463651e-196)
t_2
(if (<= l 5.490168916135092e-162)
(/
2.0
(*
t_1
(*
(tan k)
(pow
(/
t
(/ t_3 (fma (cbrt (pow k 7.0)) -0.05555555555555555 (cbrt k))))
3.0))))
(if (<= l 2.2186256439908187e+77) t_2 t_4))))))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));
}
double code(double t, double l, double k) {
double t_1 = 2.0 + pow((k / t), 2.0);
double t_2 = 2.0 / pow(((t / cbrt(((l * l) / sin(k)))) * cbrt((tan(k) * t_1))), 3.0);
double t_3 = pow(cbrt(l), 2.0);
double t_4 = 2.0 / ((pow((t / (t_3 / cbrt(sin(k)))), 3.0) * tan(k)) * t_1);
double tmp;
if (l <= -2.3666527635593354e+118) {
tmp = t_4;
} else if (l <= -4.91448157463651e-196) {
tmp = t_2;
} else if (l <= 5.490168916135092e-162) {
tmp = 2.0 / (t_1 * (tan(k) * pow((t / (t_3 / fma(cbrt(pow(k, 7.0)), -0.05555555555555555, cbrt(k)))), 3.0)));
} else if (l <= 2.2186256439908187e+77) {
tmp = t_2;
} else {
tmp = t_4;
}
return tmp;
}
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 code(t, l, k) t_1 = Float64(2.0 + (Float64(k / t) ^ 2.0)) t_2 = Float64(2.0 / (Float64(Float64(t / cbrt(Float64(Float64(l * l) / sin(k)))) * cbrt(Float64(tan(k) * t_1))) ^ 3.0)) t_3 = cbrt(l) ^ 2.0 t_4 = Float64(2.0 / Float64(Float64((Float64(t / Float64(t_3 / cbrt(sin(k)))) ^ 3.0) * tan(k)) * t_1)) tmp = 0.0 if (l <= -2.3666527635593354e+118) tmp = t_4; elseif (l <= -4.91448157463651e-196) tmp = t_2; elseif (l <= 5.490168916135092e-162) tmp = Float64(2.0 / Float64(t_1 * Float64(tan(k) * (Float64(t / Float64(t_3 / fma(cbrt((k ^ 7.0)), -0.05555555555555555, cbrt(k)))) ^ 3.0)))); elseif (l <= 2.2186256439908187e+77) tmp = t_2; else tmp = t_4; end return tmp 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]
code[t_, l_, k_] := Block[{t$95$1 = N[(2.0 + N[Power[N[(k / t), $MachinePrecision], 2.0], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$2 = N[(2.0 / N[Power[N[(N[(t / N[Power[N[(N[(l * l), $MachinePrecision] / N[Sin[k], $MachinePrecision]), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision] * N[Power[N[(N[Tan[k], $MachinePrecision] * t$95$1), $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision]}, Block[{t$95$3 = N[Power[N[Power[l, 1/3], $MachinePrecision], 2.0], $MachinePrecision]}, Block[{t$95$4 = N[(2.0 / N[(N[(N[Power[N[(t / N[(t$95$3 / N[Power[N[Sin[k], $MachinePrecision], 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision] * N[Tan[k], $MachinePrecision]), $MachinePrecision] * t$95$1), $MachinePrecision]), $MachinePrecision]}, If[LessEqual[l, -2.3666527635593354e+118], t$95$4, If[LessEqual[l, -4.91448157463651e-196], t$95$2, If[LessEqual[l, 5.490168916135092e-162], N[(2.0 / N[(t$95$1 * N[(N[Tan[k], $MachinePrecision] * N[Power[N[(t / N[(t$95$3 / N[(N[Power[N[Power[k, 7.0], $MachinePrecision], 1/3], $MachinePrecision] * -0.05555555555555555 + N[Power[k, 1/3], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], 3.0], $MachinePrecision]), $MachinePrecision]), $MachinePrecision]), $MachinePrecision], If[LessEqual[l, 2.2186256439908187e+77], t$95$2, t$95$4]]]]]]]]
\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)}
\begin{array}{l}
t_1 := 2 + {\left(\frac{k}{t}\right)}^{2}\\
t_2 := \frac{2}{{\left(\frac{t}{\sqrt[3]{\frac{\ell \cdot \ell}{\sin k}}} \cdot \sqrt[3]{\tan k \cdot t_1}\right)}^{3}}\\
t_3 := {\left(\sqrt[3]{\ell}\right)}^{2}\\
t_4 := \frac{2}{\left({\left(\frac{t}{\frac{t_3}{\sqrt[3]{\sin k}}}\right)}^{3} \cdot \tan k\right) \cdot t_1}\\
\mathbf{if}\;\ell \leq -2.3666527635593354 \cdot 10^{+118}:\\
\;\;\;\;t_4\\
\mathbf{elif}\;\ell \leq -4.91448157463651 \cdot 10^{-196}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;\ell \leq 5.490168916135092 \cdot 10^{-162}:\\
\;\;\;\;\frac{2}{t_1 \cdot \left(\tan k \cdot {\left(\frac{t}{\frac{t_3}{\mathsf{fma}\left(\sqrt[3]{{k}^{7}}, -0.05555555555555555, \sqrt[3]{k}\right)}}\right)}^{3}\right)}\\
\mathbf{elif}\;\ell \leq 2.2186256439908187 \cdot 10^{+77}:\\
\;\;\;\;t_2\\
\mathbf{else}:\\
\;\;\;\;t_4\\
\end{array}



Bits error versus t



Bits error versus l



Bits error versus k
if l < -2.36665276355933544e118 or 2.2186256439908187e77 < l Initial program 55.7
Simplified55.7
Applied egg-rr23.6
Applied egg-rr23.6
if -2.36665276355933544e118 < l < -4.9144815746365102e-196 or 5.490168916135092e-162 < l < 2.2186256439908187e77Initial program 24.6
Simplified24.6
Applied egg-rr18.0
Applied egg-rr18.0
Applied egg-rr13.7
if -4.9144815746365102e-196 < l < 5.490168916135092e-162Initial program 23.8
Simplified23.8
Applied egg-rr8.1
Applied egg-rr8.1
Taylor expanded in k around 0 34.7
Simplified6.7
Final simplification14.3
herbie shell --seed 2022133
(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))))