\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}
\mathbf{if}\;\ell \le -1.350083645795687900514049661869243401303 \cdot 10^{154}:\\
\;\;\;\;\frac{\frac{2}{\left(\left(\frac{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{3}}{\ell} \cdot \frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell}\right) \cdot \sin k\right) \cdot \tan k}}{{\left(\frac{k}{t}\right)}^{2}}\\
\mathbf{elif}\;\ell \le -1.926172283746208905126600187598424399764 \cdot 10^{-88}:\\
\;\;\;\;2 \cdot \left({\left(\frac{1}{{k}^{\left(\frac{2}{2}\right)}}\right)}^{1} \cdot \left(\left({\left(\frac{1}{{k}^{\left(\frac{2}{2}\right)} \cdot {t}^{1}}\right)}^{1} \cdot \left(\cos k \cdot {\ell}^{2}\right)\right) \cdot \frac{1}{{\left(\sin k\right)}^{2}}\right)\right)\\
\mathbf{elif}\;\ell \le 8.125799631108940674547963257039853431087 \cdot 10^{-130}:\\
\;\;\;\;2 \cdot \left({\left(\frac{1}{{k}^{\left(\frac{2}{2}\right)} \cdot \left({k}^{\left(\frac{2}{2}\right)} \cdot {t}^{1}\right)}\right)}^{1} \cdot \mathsf{fma}\left(\frac{\ell}{k}, \frac{\ell}{k}, {\ell}^{2} \cdot \frac{-1}{6}\right)\right)\\
\mathbf{elif}\;\ell \le 1.982834535788033321623200081388133861373 \cdot 10^{134}:\\
\;\;\;\;2 \cdot \left({\left(\frac{1}{{k}^{\left(\frac{2}{2}\right)} \cdot \left({k}^{\left(\frac{2}{2}\right)} \cdot {t}^{1}\right)}\right)}^{1} \cdot \left(\left(\sqrt[3]{\frac{\cos k \cdot {\ell}^{2}}{{\left(\sin k\right)}^{2}}} \cdot \sqrt[3]{\frac{\cos k \cdot {\ell}^{2}}{{\left(\sin k\right)}^{2}}}\right) \cdot \sqrt[3]{\frac{\cos k \cdot {\ell}^{2}}{{\left(\sin k\right)}^{2}}}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{2}{\left(\left(\frac{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{3}}{\ell} \cdot \frac{{\left(\sqrt[3]{t}\right)}^{3}}{\ell}\right) \cdot \sin k\right) \cdot \tan k}}{{\left(\frac{k}{t}\right)}^{2}}\\
\end{array}double f(double t, double l, double k) {
double r98916 = 2.0;
double r98917 = t;
double r98918 = 3.0;
double r98919 = pow(r98917, r98918);
double r98920 = l;
double r98921 = r98920 * r98920;
double r98922 = r98919 / r98921;
double r98923 = k;
double r98924 = sin(r98923);
double r98925 = r98922 * r98924;
double r98926 = tan(r98923);
double r98927 = r98925 * r98926;
double r98928 = 1.0;
double r98929 = r98923 / r98917;
double r98930 = pow(r98929, r98916);
double r98931 = r98928 + r98930;
double r98932 = r98931 - r98928;
double r98933 = r98927 * r98932;
double r98934 = r98916 / r98933;
return r98934;
}
double f(double t, double l, double k) {
double r98935 = l;
double r98936 = -1.350083645795688e+154;
bool r98937 = r98935 <= r98936;
double r98938 = 2.0;
double r98939 = t;
double r98940 = cbrt(r98939);
double r98941 = r98940 * r98940;
double r98942 = 3.0;
double r98943 = pow(r98941, r98942);
double r98944 = r98943 / r98935;
double r98945 = pow(r98940, r98942);
double r98946 = r98945 / r98935;
double r98947 = r98944 * r98946;
double r98948 = k;
double r98949 = sin(r98948);
double r98950 = r98947 * r98949;
double r98951 = tan(r98948);
double r98952 = r98950 * r98951;
double r98953 = r98938 / r98952;
double r98954 = r98948 / r98939;
double r98955 = pow(r98954, r98938);
double r98956 = r98953 / r98955;
double r98957 = -1.926172283746209e-88;
bool r98958 = r98935 <= r98957;
double r98959 = 1.0;
double r98960 = 2.0;
double r98961 = r98938 / r98960;
double r98962 = pow(r98948, r98961);
double r98963 = r98959 / r98962;
double r98964 = 1.0;
double r98965 = pow(r98963, r98964);
double r98966 = pow(r98939, r98964);
double r98967 = r98962 * r98966;
double r98968 = r98959 / r98967;
double r98969 = pow(r98968, r98964);
double r98970 = cos(r98948);
double r98971 = pow(r98935, r98960);
double r98972 = r98970 * r98971;
double r98973 = r98969 * r98972;
double r98974 = pow(r98949, r98960);
double r98975 = r98959 / r98974;
double r98976 = r98973 * r98975;
double r98977 = r98965 * r98976;
double r98978 = r98938 * r98977;
double r98979 = 8.12579963110894e-130;
bool r98980 = r98935 <= r98979;
double r98981 = r98962 * r98967;
double r98982 = r98959 / r98981;
double r98983 = pow(r98982, r98964);
double r98984 = r98935 / r98948;
double r98985 = -0.16666666666666666;
double r98986 = r98971 * r98985;
double r98987 = fma(r98984, r98984, r98986);
double r98988 = r98983 * r98987;
double r98989 = r98938 * r98988;
double r98990 = 1.9828345357880333e+134;
bool r98991 = r98935 <= r98990;
double r98992 = r98972 / r98974;
double r98993 = cbrt(r98992);
double r98994 = r98993 * r98993;
double r98995 = r98994 * r98993;
double r98996 = r98983 * r98995;
double r98997 = r98938 * r98996;
double r98998 = r98991 ? r98997 : r98956;
double r98999 = r98980 ? r98989 : r98998;
double r99000 = r98958 ? r98978 : r98999;
double r99001 = r98937 ? r98956 : r99000;
return r99001;
}



Bits error versus t



Bits error versus l



Bits error versus k
if l < -1.350083645795688e+154 or 1.9828345357880333e+134 < l Initial program 63.0
Simplified62.5
rmApplied add-cube-cbrt62.6
Applied unpow-prod-down62.6
Applied times-frac47.6
if -1.350083645795688e+154 < l < -1.926172283746209e-88Initial program 45.6
Simplified36.7
Taylor expanded around inf 13.2
rmApplied sqr-pow13.2
Applied associate-*l*8.0
rmApplied *-un-lft-identity8.0
Applied times-frac7.6
Applied unpow-prod-down7.6
Applied associate-*l*4.5
rmApplied div-inv4.5
Applied associate-*r*3.9
if -1.926172283746209e-88 < l < 8.12579963110894e-130Initial program 45.6
Simplified37.1
Taylor expanded around inf 17.1
rmApplied sqr-pow17.1
Applied associate-*l*17.0
Taylor expanded around 0 18.7
Simplified10.7
if 8.12579963110894e-130 < l < 1.9828345357880333e+134Initial program 45.4
Simplified36.2
Taylor expanded around inf 12.1
rmApplied sqr-pow12.1
Applied associate-*l*7.4
rmApplied add-cube-cbrt7.7
Final simplification14.9
herbie shell --seed 2019326 +o rules:numerics
(FPCore (t l k)
:name "Toniolo and Linder, Equation (10-)"
:precision binary64
(/ 2 (* (* (* (/ (pow t 3) (* l l)) (sin k)) (tan k)) (- (+ 1 (pow (/ k t) 2)) 1))))