\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{\sqrt{\left(\left(\frac{2}{Om} \cdot \ell\right) \cdot \left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right)\right) \cdot \left(\frac{2}{Om} \cdot \ell\right) + 1}} \cdot \sqrt{\sqrt{\left(\left(\frac{2}{Om} \cdot \ell\right) \cdot \left(\sin ky \cdot \sin ky + \sin kx \cdot \sin kx\right)\right) \cdot \left(\frac{2}{Om} \cdot \ell\right) + 1}}} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r10275356 = 1.0;
double r10275357 = 2.0;
double r10275358 = r10275356 / r10275357;
double r10275359 = l;
double r10275360 = r10275357 * r10275359;
double r10275361 = Om;
double r10275362 = r10275360 / r10275361;
double r10275363 = pow(r10275362, r10275357);
double r10275364 = kx;
double r10275365 = sin(r10275364);
double r10275366 = pow(r10275365, r10275357);
double r10275367 = ky;
double r10275368 = sin(r10275367);
double r10275369 = pow(r10275368, r10275357);
double r10275370 = r10275366 + r10275369;
double r10275371 = r10275363 * r10275370;
double r10275372 = r10275356 + r10275371;
double r10275373 = sqrt(r10275372);
double r10275374 = r10275356 / r10275373;
double r10275375 = r10275356 + r10275374;
double r10275376 = r10275358 * r10275375;
double r10275377 = sqrt(r10275376);
return r10275377;
}
double f(double l, double Om, double kx, double ky) {
double r10275378 = 0.5;
double r10275379 = 2.0;
double r10275380 = Om;
double r10275381 = r10275379 / r10275380;
double r10275382 = l;
double r10275383 = r10275381 * r10275382;
double r10275384 = ky;
double r10275385 = sin(r10275384);
double r10275386 = r10275385 * r10275385;
double r10275387 = kx;
double r10275388 = sin(r10275387);
double r10275389 = r10275388 * r10275388;
double r10275390 = r10275386 + r10275389;
double r10275391 = r10275383 * r10275390;
double r10275392 = r10275391 * r10275383;
double r10275393 = 1.0;
double r10275394 = r10275392 + r10275393;
double r10275395 = sqrt(r10275394);
double r10275396 = sqrt(r10275395);
double r10275397 = r10275396 * r10275396;
double r10275398 = r10275378 / r10275397;
double r10275399 = r10275398 + r10275378;
double r10275400 = sqrt(r10275399);
return r10275400;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.6
Simplified1.6
rmApplied associate-*r*1.3
rmApplied add-sqr-sqrt1.3
Final simplification1.3
herbie shell --seed 2019121
(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))))))))))