\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}{\frac{2}{\frac{1}{\left(\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}} \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}\right) \cdot \left(\sqrt[3]{\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}} \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}} \cdot \sqrt[3]{\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}}\right)} + 1}}}double f(double l, double Om, double kx, double ky) {
double r53082 = 1.0;
double r53083 = 2.0;
double r53084 = r53082 / r53083;
double r53085 = l;
double r53086 = r53083 * r53085;
double r53087 = Om;
double r53088 = r53086 / r53087;
double r53089 = pow(r53088, r53083);
double r53090 = kx;
double r53091 = sin(r53090);
double r53092 = pow(r53091, r53083);
double r53093 = ky;
double r53094 = sin(r53093);
double r53095 = pow(r53094, r53083);
double r53096 = r53092 + r53095;
double r53097 = r53089 * r53096;
double r53098 = r53082 + r53097;
double r53099 = sqrt(r53098);
double r53100 = r53082 / r53099;
double r53101 = r53082 + r53100;
double r53102 = r53084 * r53101;
double r53103 = sqrt(r53102);
return r53103;
}
double f(double l, double Om, double kx, double ky) {
double r53104 = 1.0;
double r53105 = 2.0;
double r53106 = l;
double r53107 = r53105 * r53106;
double r53108 = Om;
double r53109 = r53107 / r53108;
double r53110 = pow(r53109, r53105);
double r53111 = kx;
double r53112 = sin(r53111);
double r53113 = pow(r53112, r53105);
double r53114 = ky;
double r53115 = sin(r53114);
double r53116 = pow(r53115, r53105);
double r53117 = r53113 + r53116;
double r53118 = fma(r53110, r53117, r53104);
double r53119 = sqrt(r53118);
double r53120 = cbrt(r53119);
double r53121 = r53120 * r53120;
double r53122 = cbrt(r53121);
double r53123 = cbrt(r53120);
double r53124 = r53122 * r53123;
double r53125 = r53121 * r53124;
double r53126 = r53104 / r53125;
double r53127 = r53126 + r53104;
double r53128 = r53105 / r53127;
double r53129 = r53104 / r53128;
double r53130 = sqrt(r53129);
return r53130;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.8
Simplified1.8
rmApplied add-cube-cbrt1.8
rmApplied add-cube-cbrt1.8
Applied cbrt-prod1.8
Final simplification1.8
herbie shell --seed 2019323 +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))))))))))