\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{1}{2} + \frac{\frac{1}{2}}{\sqrt{\left(\frac{\ell \cdot 2}{Om} \cdot \sqrt{\sin ky \cdot \sin ky + \sin kx \cdot \sin kx}\right) \cdot \left(\frac{\ell \cdot 2}{Om} \cdot \sqrt{\sin ky \cdot \sin ky + \sin kx \cdot \sin kx}\right) + 1}}}double f(double l, double Om, double kx, double ky) {
double r1261608 = 1.0;
double r1261609 = 2.0;
double r1261610 = r1261608 / r1261609;
double r1261611 = l;
double r1261612 = r1261609 * r1261611;
double r1261613 = Om;
double r1261614 = r1261612 / r1261613;
double r1261615 = pow(r1261614, r1261609);
double r1261616 = kx;
double r1261617 = sin(r1261616);
double r1261618 = pow(r1261617, r1261609);
double r1261619 = ky;
double r1261620 = sin(r1261619);
double r1261621 = pow(r1261620, r1261609);
double r1261622 = r1261618 + r1261621;
double r1261623 = r1261615 * r1261622;
double r1261624 = r1261608 + r1261623;
double r1261625 = sqrt(r1261624);
double r1261626 = r1261608 / r1261625;
double r1261627 = r1261608 + r1261626;
double r1261628 = r1261610 * r1261627;
double r1261629 = sqrt(r1261628);
return r1261629;
}
double f(double l, double Om, double kx, double ky) {
double r1261630 = 0.5;
double r1261631 = l;
double r1261632 = 2.0;
double r1261633 = r1261631 * r1261632;
double r1261634 = Om;
double r1261635 = r1261633 / r1261634;
double r1261636 = ky;
double r1261637 = sin(r1261636);
double r1261638 = r1261637 * r1261637;
double r1261639 = kx;
double r1261640 = sin(r1261639);
double r1261641 = r1261640 * r1261640;
double r1261642 = r1261638 + r1261641;
double r1261643 = sqrt(r1261642);
double r1261644 = r1261635 * r1261643;
double r1261645 = r1261644 * r1261644;
double r1261646 = 1.0;
double r1261647 = r1261645 + r1261646;
double r1261648 = sqrt(r1261647);
double r1261649 = r1261630 / r1261648;
double r1261650 = r1261630 + r1261649;
double r1261651 = sqrt(r1261650);
return r1261651;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.8
Simplified1.8
rmApplied add-sqr-sqrt1.8
Applied unswap-sqr1.5
Final simplification1.5
herbie shell --seed 2019138
(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))))))))))