\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)}\frac{2 \cdot \left({\left(\frac{\sqrt[3]{1}}{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{\left(\frac{3}{2}\right)}}\right)}^{1} \cdot \left({\left(\frac{\sqrt[3]{1}}{{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)}^{\left(\frac{3}{2}\right)}}\right)}^{1} \cdot \left({\left(\frac{\sqrt[3]{1}}{{\left(\sqrt[3]{t}\right)}^{3}}\right)}^{1} \cdot \frac{\ell}{\sin k}\right)\right)\right)}{\tan k} \cdot \frac{\ell}{\mathsf{fma}\left(2, 1, {\left(\frac{k}{t}\right)}^{2}\right)}double f(double t, double l, double k) {
double r139863 = 2.0;
double r139864 = t;
double r139865 = 3.0;
double r139866 = pow(r139864, r139865);
double r139867 = l;
double r139868 = r139867 * r139867;
double r139869 = r139866 / r139868;
double r139870 = k;
double r139871 = sin(r139870);
double r139872 = r139869 * r139871;
double r139873 = tan(r139870);
double r139874 = r139872 * r139873;
double r139875 = 1.0;
double r139876 = r139870 / r139864;
double r139877 = pow(r139876, r139863);
double r139878 = r139875 + r139877;
double r139879 = r139878 + r139875;
double r139880 = r139874 * r139879;
double r139881 = r139863 / r139880;
return r139881;
}
double f(double t, double l, double k) {
double r139882 = 2.0;
double r139883 = 1.0;
double r139884 = cbrt(r139883);
double r139885 = t;
double r139886 = cbrt(r139885);
double r139887 = r139886 * r139886;
double r139888 = 3.0;
double r139889 = 2.0;
double r139890 = r139888 / r139889;
double r139891 = pow(r139887, r139890);
double r139892 = r139884 / r139891;
double r139893 = 1.0;
double r139894 = pow(r139892, r139893);
double r139895 = pow(r139886, r139888);
double r139896 = r139884 / r139895;
double r139897 = pow(r139896, r139893);
double r139898 = l;
double r139899 = k;
double r139900 = sin(r139899);
double r139901 = r139898 / r139900;
double r139902 = r139897 * r139901;
double r139903 = r139894 * r139902;
double r139904 = r139894 * r139903;
double r139905 = r139882 * r139904;
double r139906 = tan(r139899);
double r139907 = r139905 / r139906;
double r139908 = r139899 / r139885;
double r139909 = pow(r139908, r139882);
double r139910 = fma(r139889, r139893, r139909);
double r139911 = r139898 / r139910;
double r139912 = r139907 * r139911;
return r139912;
}



Bits error versus t



Bits error versus l



Bits error versus k
Initial program 32.4
Simplified32.6
rmApplied *-un-lft-identity32.6
Applied times-frac31.8
Applied associate-*r*29.3
Simplified27.9
Taylor expanded around inf 27.7
rmApplied add-cube-cbrt27.9
Applied unpow-prod-down27.9
Applied add-cube-cbrt27.9
Applied times-frac27.7
Applied unpow-prod-down27.7
Applied associate-*l*24.1
rmApplied sqr-pow24.1
Applied times-frac24.0
Applied unpow-prod-down24.0
Applied associate-*l*22.8
Final simplification22.8
herbie shell --seed 2020021 +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))))