\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right)}\sqrt{\frac{1}{2} \cdot \left(1 + \frac{\frac{\sqrt{1}}{\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}}}}{\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}}} \cdot \frac{\sqrt{1}}{\left(\sqrt[3]{\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}}} \cdot \sqrt[3]{\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}}}\right) \cdot \sqrt[3]{\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}}}}\right)}double f(double l, double Om, double kx, double ky) {
double r42001 = 1.0;
double r42002 = 2.0;
double r42003 = r42001 / r42002;
double r42004 = l;
double r42005 = r42002 * r42004;
double r42006 = Om;
double r42007 = r42005 / r42006;
double r42008 = pow(r42007, r42002);
double r42009 = kx;
double r42010 = sin(r42009);
double r42011 = pow(r42010, r42002);
double r42012 = ky;
double r42013 = sin(r42012);
double r42014 = pow(r42013, r42002);
double r42015 = r42011 + r42014;
double r42016 = r42008 * r42015;
double r42017 = r42001 + r42016;
double r42018 = sqrt(r42017);
double r42019 = r42001 / r42018;
double r42020 = r42001 + r42019;
double r42021 = r42003 * r42020;
double r42022 = sqrt(r42021);
return r42022;
}
double f(double l, double Om, double kx, double ky) {
double r42023 = 1.0;
double r42024 = 2.0;
double r42025 = r42023 / r42024;
double r42026 = sqrt(r42023);
double r42027 = kx;
double r42028 = sin(r42027);
double r42029 = pow(r42028, r42024);
double r42030 = ky;
double r42031 = sin(r42030);
double r42032 = pow(r42031, r42024);
double r42033 = r42029 + r42032;
double r42034 = l;
double r42035 = r42024 * r42034;
double r42036 = Om;
double r42037 = r42035 / r42036;
double r42038 = pow(r42037, r42024);
double r42039 = fma(r42033, r42038, r42023);
double r42040 = sqrt(r42039);
double r42041 = cbrt(r42040);
double r42042 = r42026 / r42041;
double r42043 = r42042 / r42041;
double r42044 = cbrt(r42041);
double r42045 = r42044 * r42044;
double r42046 = r42045 * r42044;
double r42047 = r42026 / r42046;
double r42048 = r42043 * r42047;
double r42049 = r42023 + r42048;
double r42050 = r42025 * r42049;
double r42051 = sqrt(r42050);
return r42051;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.5
rmApplied add-cube-cbrt1.5
Applied add-sqr-sqrt1.5
Applied times-frac1.5
Simplified1.5
Simplified1.5
rmApplied add-cube-cbrt1.5
Final simplification1.5
herbie shell --seed 2019208 +o rules:numerics
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
:precision binary64
(sqrt (* (/ 1 2) (+ 1 (/ 1 (sqrt (+ 1 (* (pow (/ (* 2 l) Om) 2) (+ (pow (sin kx) 2) (pow (sin ky) 2))))))))))