\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{4 \cdot \frac{\sin ky \cdot \sin ky + \sin kx \cdot \sin kx}{\frac{Om}{\ell} \cdot \frac{Om}{\ell}} + 1}} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r13199310 = 1.0;
double r13199311 = 2.0;
double r13199312 = r13199310 / r13199311;
double r13199313 = l;
double r13199314 = r13199311 * r13199313;
double r13199315 = Om;
double r13199316 = r13199314 / r13199315;
double r13199317 = pow(r13199316, r13199311);
double r13199318 = kx;
double r13199319 = sin(r13199318);
double r13199320 = pow(r13199319, r13199311);
double r13199321 = ky;
double r13199322 = sin(r13199321);
double r13199323 = pow(r13199322, r13199311);
double r13199324 = r13199320 + r13199323;
double r13199325 = r13199317 * r13199324;
double r13199326 = r13199310 + r13199325;
double r13199327 = sqrt(r13199326);
double r13199328 = r13199310 / r13199327;
double r13199329 = r13199310 + r13199328;
double r13199330 = r13199312 * r13199329;
double r13199331 = sqrt(r13199330);
return r13199331;
}
double f(double l, double Om, double kx, double ky) {
double r13199332 = 0.5;
double r13199333 = 4.0;
double r13199334 = ky;
double r13199335 = sin(r13199334);
double r13199336 = r13199335 * r13199335;
double r13199337 = kx;
double r13199338 = sin(r13199337);
double r13199339 = r13199338 * r13199338;
double r13199340 = r13199336 + r13199339;
double r13199341 = Om;
double r13199342 = l;
double r13199343 = r13199341 / r13199342;
double r13199344 = r13199343 * r13199343;
double r13199345 = r13199340 / r13199344;
double r13199346 = r13199333 * r13199345;
double r13199347 = 1.0;
double r13199348 = r13199346 + r13199347;
double r13199349 = sqrt(r13199348);
double r13199350 = r13199332 / r13199349;
double r13199351 = r13199350 + r13199332;
double r13199352 = sqrt(r13199351);
return r13199352;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.7
Simplified1.7
Taylor expanded around inf 9.2
Simplified1.6
Final simplification1.6
herbie shell --seed 2019120
(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))))))))))