\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{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(\frac{\sin ky \cdot \ell}{Om} \cdot \frac{\sin ky \cdot \ell}{Om} + \frac{\sin kx}{\frac{Om}{\ell}} \cdot \frac{\sin kx}{\frac{Om}{\ell}}, 4, 1\right)}} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r1306368 = 1.0;
double r1306369 = 2.0;
double r1306370 = r1306368 / r1306369;
double r1306371 = l;
double r1306372 = r1306369 * r1306371;
double r1306373 = Om;
double r1306374 = r1306372 / r1306373;
double r1306375 = pow(r1306374, r1306369);
double r1306376 = kx;
double r1306377 = sin(r1306376);
double r1306378 = pow(r1306377, r1306369);
double r1306379 = ky;
double r1306380 = sin(r1306379);
double r1306381 = pow(r1306380, r1306369);
double r1306382 = r1306378 + r1306381;
double r1306383 = r1306375 * r1306382;
double r1306384 = r1306368 + r1306383;
double r1306385 = sqrt(r1306384);
double r1306386 = r1306368 / r1306385;
double r1306387 = r1306368 + r1306386;
double r1306388 = r1306370 * r1306387;
double r1306389 = sqrt(r1306388);
return r1306389;
}
double f(double l, double Om, double kx, double ky) {
double r1306390 = 0.5;
double r1306391 = ky;
double r1306392 = sin(r1306391);
double r1306393 = l;
double r1306394 = r1306392 * r1306393;
double r1306395 = Om;
double r1306396 = r1306394 / r1306395;
double r1306397 = r1306396 * r1306396;
double r1306398 = kx;
double r1306399 = sin(r1306398);
double r1306400 = r1306395 / r1306393;
double r1306401 = r1306399 / r1306400;
double r1306402 = r1306401 * r1306401;
double r1306403 = r1306397 + r1306402;
double r1306404 = 4.0;
double r1306405 = 1.0;
double r1306406 = fma(r1306403, r1306404, r1306405);
double r1306407 = sqrt(r1306406);
double r1306408 = r1306390 / r1306407;
double r1306409 = r1306408 + r1306390;
double r1306410 = sqrt(r1306409);
return r1306410;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.7
Simplified1.7
rmApplied insert-posit162.4
Taylor expanded around inf 16.5
Simplified0.6
Final simplification0.6
herbie shell --seed 2019162 +o rules:numerics
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
(sqrt (* (/ 1 2) (+ 1 (/ 1 (sqrt (+ 1 (* (pow (/ (* 2 l) Om) 2) (+ (pow (sin kx) 2) (pow (sin ky) 2))))))))))