\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(\mathsf{fma}\left(\frac{\sin kx}{\frac{Om}{\ell}}, \frac{\sin kx}{\frac{Om}{\ell}}, \left(\sin ky \cdot \frac{\ell}{Om}\right) \cdot \left(\sin ky \cdot \frac{\ell}{Om}\right)\right), 4, 1\right)}} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r1360365 = 1.0;
double r1360366 = 2.0;
double r1360367 = r1360365 / r1360366;
double r1360368 = l;
double r1360369 = r1360366 * r1360368;
double r1360370 = Om;
double r1360371 = r1360369 / r1360370;
double r1360372 = pow(r1360371, r1360366);
double r1360373 = kx;
double r1360374 = sin(r1360373);
double r1360375 = pow(r1360374, r1360366);
double r1360376 = ky;
double r1360377 = sin(r1360376);
double r1360378 = pow(r1360377, r1360366);
double r1360379 = r1360375 + r1360378;
double r1360380 = r1360372 * r1360379;
double r1360381 = r1360365 + r1360380;
double r1360382 = sqrt(r1360381);
double r1360383 = r1360365 / r1360382;
double r1360384 = r1360365 + r1360383;
double r1360385 = r1360367 * r1360384;
double r1360386 = sqrt(r1360385);
return r1360386;
}
double f(double l, double Om, double kx, double ky) {
double r1360387 = 0.5;
double r1360388 = kx;
double r1360389 = sin(r1360388);
double r1360390 = Om;
double r1360391 = l;
double r1360392 = r1360390 / r1360391;
double r1360393 = r1360389 / r1360392;
double r1360394 = ky;
double r1360395 = sin(r1360394);
double r1360396 = r1360391 / r1360390;
double r1360397 = r1360395 * r1360396;
double r1360398 = r1360397 * r1360397;
double r1360399 = fma(r1360393, r1360393, r1360398);
double r1360400 = 4.0;
double r1360401 = 1.0;
double r1360402 = fma(r1360399, r1360400, r1360401);
double r1360403 = sqrt(r1360402);
double r1360404 = r1360387 / r1360403;
double r1360405 = r1360404 + r1360387;
double r1360406 = sqrt(r1360405);
return r1360406;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.6
Simplified1.6
rmApplied insert-posit162.3
Taylor expanded around inf 16.3
Simplified0.5
Final simplification0.5
herbie shell --seed 2019158 +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))))))))))