\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 := \frac{2}{\left(\left(\left(\frac{t \cdot t}{\ell} \cdot \frac{t}{\ell}\right) \cdot \sin k\right) \cdot \tan k\right) \cdot {\left(\frac{k}{t}\right)}^{2}}\\
\mathbf{if}\;\ell \leq -1.0549950545558547 \cdot 10^{+163}:\\
\;\;\;\;t_1\\
\mathbf{else}:\\
\;\;\;\;\begin{array}{l}
t_2 := 2 \cdot \frac{\frac{\cos k \cdot {\ell}^{2}}{k}}{k \cdot \left(\sin k \cdot \left(t \cdot \sin k\right)\right)}\\
\mathbf{if}\;\ell \leq -6.63427884816766 \cdot 10^{-88}:\\
\;\;\;\;t_2\\
\mathbf{elif}\;\ell \leq 3.2215186419299803 \cdot 10^{-25}:\\
\;\;\;\;2 \cdot \left(\frac{\cos k}{{k}^{2}} \cdot \frac{{\ell}^{2}}{t \cdot {\sin k}^{2}}\right)\\
\mathbf{elif}\;\ell \leq 5.272850259066194 \cdot 10^{+150}:\\
\;\;\;\;t_2\\
\mathbf{else}:\\
\;\;\;\;t_1\\
\end{array}\\
\end{array}
(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
(*
(* (* (* (/ (* t t) l) (/ t l)) (sin k)) (tan k))
(pow (/ k t) 2.0)))))
(if (<= l -1.0549950545558547e+163)
t_1
(let* ((t_2
(*
2.0
(/
(/ (* (cos k) (pow l 2.0)) k)
(* k (* (sin k) (* t (sin k))))))))
(if (<= l -6.63427884816766e-88)
t_2
(if (<= l 3.2215186419299803e-25)
(*
2.0
(*
(/ (cos k) (pow k 2.0))
(/ (pow l 2.0) (* t (pow (sin k) 2.0)))))
(if (<= l 5.272850259066194e+150) t_2 t_1)))))))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 / ((((((t * t) / l) * (t / l)) * sin(k)) * tan(k)) * pow((k / t), 2.0));
double tmp;
if (l <= -1.0549950545558547e+163) {
tmp = t_1;
} else {
double t_2 = 2.0 * (((cos(k) * pow(l, 2.0)) / k) / (k * (sin(k) * (t * sin(k)))));
double tmp_1;
if (l <= -6.63427884816766e-88) {
tmp_1 = t_2;
} else if (l <= 3.2215186419299803e-25) {
tmp_1 = 2.0 * ((cos(k) / pow(k, 2.0)) * (pow(l, 2.0) / (t * pow(sin(k), 2.0))));
} else if (l <= 5.272850259066194e+150) {
tmp_1 = t_2;
} else {
tmp_1 = t_1;
}
tmp = tmp_1;
}
return tmp;
}



Bits error versus t



Bits error versus l



Bits error versus k
Results
if l < -1.0549950545558547e163 or 5.2728502590661937e150 < l Initial program 63.9
Simplified63.8
Applied add-cube-cbrt_binary6463.8
Applied unpow-prod-down_binary6463.8
Applied times-frac_binary6449.4
Simplified49.2
Simplified49.1
if -1.0549950545558547e163 < l < -6.6342788481676598e-88 or 3.2215186419299803e-25 < l < 5.2728502590661937e150Initial program 46.6
Simplified38.4
Taylor expanded in t around 0 16.2
Applied unpow2_binary6416.2
Applied associate-*l*_binary649.8
Applied associate-/r*_binary643.9
Applied unpow2_binary643.9
Applied associate-*r*_binary643.8
if -6.6342788481676598e-88 < l < 3.2215186419299803e-25Initial program 45.3
Simplified36.1
Taylor expanded in t around 0 15.5
Applied times-frac_binary6413.9
Final simplification15.6
herbie shell --seed 2022097
(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))))