\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{\sqrt{\frac{1 \cdot \frac{1}{2}}{\sqrt{\mathsf{fma}\left({\left(\frac{2}{Om} \cdot \ell\right)}^{2}, {\left(\sin ky\right)}^{2} + {\left(\sin kx\right)}^{2}, 1\right)}}} \cdot \sqrt{\frac{1 \cdot \frac{1}{2}}{\sqrt{\mathsf{fma}\left({\left(\frac{2}{Om} \cdot \ell\right)}^{2}, {\left(\sin ky\right)}^{2} + {\left(\sin kx\right)}^{2}, 1\right)}}} + 1 \cdot \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r2226103 = 1.0;
double r2226104 = 2.0;
double r2226105 = r2226103 / r2226104;
double r2226106 = l;
double r2226107 = r2226104 * r2226106;
double r2226108 = Om;
double r2226109 = r2226107 / r2226108;
double r2226110 = pow(r2226109, r2226104);
double r2226111 = kx;
double r2226112 = sin(r2226111);
double r2226113 = pow(r2226112, r2226104);
double r2226114 = ky;
double r2226115 = sin(r2226114);
double r2226116 = pow(r2226115, r2226104);
double r2226117 = r2226113 + r2226116;
double r2226118 = r2226110 * r2226117;
double r2226119 = r2226103 + r2226118;
double r2226120 = sqrt(r2226119);
double r2226121 = r2226103 / r2226120;
double r2226122 = r2226103 + r2226121;
double r2226123 = r2226105 * r2226122;
double r2226124 = sqrt(r2226123);
return r2226124;
}
double f(double l, double Om, double kx, double ky) {
double r2226125 = 1.0;
double r2226126 = 2.0;
double r2226127 = r2226125 / r2226126;
double r2226128 = r2226125 * r2226127;
double r2226129 = Om;
double r2226130 = r2226126 / r2226129;
double r2226131 = l;
double r2226132 = r2226130 * r2226131;
double r2226133 = pow(r2226132, r2226126);
double r2226134 = ky;
double r2226135 = sin(r2226134);
double r2226136 = pow(r2226135, r2226126);
double r2226137 = kx;
double r2226138 = sin(r2226137);
double r2226139 = pow(r2226138, r2226126);
double r2226140 = r2226136 + r2226139;
double r2226141 = fma(r2226133, r2226140, r2226125);
double r2226142 = sqrt(r2226141);
double r2226143 = r2226128 / r2226142;
double r2226144 = sqrt(r2226143);
double r2226145 = r2226144 * r2226144;
double r2226146 = r2226145 + r2226128;
double r2226147 = sqrt(r2226146);
return r2226147;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.8
Simplified1.8
rmApplied add-sqr-sqrt1.8
Final simplification1.8
herbie shell --seed 2019168 +o rules:numerics
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
(sqrt (* (/ 1.0 2.0) (+ 1.0 (/ 1.0 (sqrt (+ 1.0 (* (pow (/ (* 2.0 l) Om) 2.0) (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0))))))))))