\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{\left(\frac{2 \cdot \ell}{Om} \cdot \left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right)\right) \cdot \frac{2 \cdot \ell}{Om} + 1}} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r1246335 = 1.0;
double r1246336 = 2.0;
double r1246337 = r1246335 / r1246336;
double r1246338 = l;
double r1246339 = r1246336 * r1246338;
double r1246340 = Om;
double r1246341 = r1246339 / r1246340;
double r1246342 = pow(r1246341, r1246336);
double r1246343 = kx;
double r1246344 = sin(r1246343);
double r1246345 = pow(r1246344, r1246336);
double r1246346 = ky;
double r1246347 = sin(r1246346);
double r1246348 = pow(r1246347, r1246336);
double r1246349 = r1246345 + r1246348;
double r1246350 = r1246342 * r1246349;
double r1246351 = r1246335 + r1246350;
double r1246352 = sqrt(r1246351);
double r1246353 = r1246335 / r1246352;
double r1246354 = r1246335 + r1246353;
double r1246355 = r1246337 * r1246354;
double r1246356 = sqrt(r1246355);
return r1246356;
}
double f(double l, double Om, double kx, double ky) {
double r1246357 = 0.5;
double r1246358 = 2.0;
double r1246359 = l;
double r1246360 = r1246358 * r1246359;
double r1246361 = Om;
double r1246362 = r1246360 / r1246361;
double r1246363 = ky;
double r1246364 = sin(r1246363);
double r1246365 = r1246364 * r1246364;
double r1246366 = kx;
double r1246367 = sin(r1246366);
double r1246368 = r1246367 * r1246367;
double r1246369 = r1246365 + r1246368;
double r1246370 = r1246362 * r1246369;
double r1246371 = r1246370 * r1246362;
double r1246372 = 1.0;
double r1246373 = r1246371 + r1246372;
double r1246374 = sqrt(r1246373);
double r1246375 = r1246357 / r1246374;
double r1246376 = r1246375 + r1246357;
double r1246377 = sqrt(r1246376);
return r1246377;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.5
Simplified1.5
rmApplied associate-*r*1.2
Final simplification1.2
herbie shell --seed 2019143
(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))))))))))