\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{1}{\sqrt{1 + \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right) \cdot \left({\left(\frac{2 \cdot \ell}{Om}\right)}^{\left(\frac{2}{2}\right)} \cdot \sqrt{{\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}}\right)}}\right)}double f(double l, double Om, double kx, double ky) {
double r34244 = 1.0;
double r34245 = 2.0;
double r34246 = r34244 / r34245;
double r34247 = l;
double r34248 = r34245 * r34247;
double r34249 = Om;
double r34250 = r34248 / r34249;
double r34251 = pow(r34250, r34245);
double r34252 = kx;
double r34253 = sin(r34252);
double r34254 = pow(r34253, r34245);
double r34255 = ky;
double r34256 = sin(r34255);
double r34257 = pow(r34256, r34245);
double r34258 = r34254 + r34257;
double r34259 = r34251 * r34258;
double r34260 = r34244 + r34259;
double r34261 = sqrt(r34260);
double r34262 = r34244 / r34261;
double r34263 = r34244 + r34262;
double r34264 = r34246 * r34263;
double r34265 = sqrt(r34264);
return r34265;
}
double f(double l, double Om, double kx, double ky) {
double r34266 = 1.0;
double r34267 = 2.0;
double r34268 = r34266 / r34267;
double r34269 = l;
double r34270 = r34267 * r34269;
double r34271 = Om;
double r34272 = r34270 / r34271;
double r34273 = 2.0;
double r34274 = r34267 / r34273;
double r34275 = pow(r34272, r34274);
double r34276 = kx;
double r34277 = sin(r34276);
double r34278 = pow(r34277, r34267);
double r34279 = ky;
double r34280 = sin(r34279);
double r34281 = pow(r34280, r34267);
double r34282 = r34278 + r34281;
double r34283 = sqrt(r34282);
double r34284 = r34275 * r34283;
double r34285 = r34284 * r34284;
double r34286 = r34266 + r34285;
double r34287 = sqrt(r34286);
double r34288 = r34266 / r34287;
double r34289 = r34266 + r34288;
double r34290 = r34268 * r34289;
double r34291 = sqrt(r34290);
return r34291;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.1
rmApplied add-sqr-sqrt1.1
Applied sqr-pow1.1
Applied unswap-sqr0.8
Final simplification0.8
herbie shell --seed 2020059
(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))))))))))