\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(4, \frac{\ell \cdot \sin ky}{Om} \cdot \frac{\ell \cdot \sin ky}{Om} + \frac{\sin kx \cdot \ell}{Om} \cdot \frac{\sin kx \cdot \ell}{Om}, 1\right)}} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r800386 = 1.0;
double r800387 = 2.0;
double r800388 = r800386 / r800387;
double r800389 = l;
double r800390 = r800387 * r800389;
double r800391 = Om;
double r800392 = r800390 / r800391;
double r800393 = pow(r800392, r800387);
double r800394 = kx;
double r800395 = sin(r800394);
double r800396 = pow(r800395, r800387);
double r800397 = ky;
double r800398 = sin(r800397);
double r800399 = pow(r800398, r800387);
double r800400 = r800396 + r800399;
double r800401 = r800393 * r800400;
double r800402 = r800386 + r800401;
double r800403 = sqrt(r800402);
double r800404 = r800386 / r800403;
double r800405 = r800386 + r800404;
double r800406 = r800388 * r800405;
double r800407 = sqrt(r800406);
return r800407;
}
double f(double l, double Om, double kx, double ky) {
double r800408 = 0.5;
double r800409 = 4.0;
double r800410 = l;
double r800411 = ky;
double r800412 = sin(r800411);
double r800413 = r800410 * r800412;
double r800414 = Om;
double r800415 = r800413 / r800414;
double r800416 = r800415 * r800415;
double r800417 = kx;
double r800418 = sin(r800417);
double r800419 = r800418 * r800410;
double r800420 = r800419 / r800414;
double r800421 = r800420 * r800420;
double r800422 = r800416 + r800421;
double r800423 = 1.0;
double r800424 = fma(r800409, r800422, r800423);
double r800425 = sqrt(r800424);
double r800426 = r800408 / r800425;
double r800427 = r800426 + r800408;
double r800428 = sqrt(r800427);
return r800428;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.7
Simplified1.7
Taylor expanded around inf 16.8
Simplified0.7
Final simplification0.7
herbie shell --seed 2019141 +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))))))))))