\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} \cdot \left(1 + \frac{1}{\left(\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}} \cdot \sqrt[3]{\sqrt[3]{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)} \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}}}\right) \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}}}\right)}double f(double l, double Om, double kx, double ky) {
double r43719 = 1.0;
double r43720 = 2.0;
double r43721 = r43719 / r43720;
double r43722 = l;
double r43723 = r43720 * r43722;
double r43724 = Om;
double r43725 = r43723 / r43724;
double r43726 = pow(r43725, r43720);
double r43727 = kx;
double r43728 = sin(r43727);
double r43729 = pow(r43728, r43720);
double r43730 = ky;
double r43731 = sin(r43730);
double r43732 = pow(r43731, r43720);
double r43733 = r43729 + r43732;
double r43734 = r43726 * r43733;
double r43735 = r43719 + r43734;
double r43736 = sqrt(r43735);
double r43737 = r43719 / r43736;
double r43738 = r43719 + r43737;
double r43739 = r43721 * r43738;
double r43740 = sqrt(r43739);
return r43740;
}
double f(double l, double Om, double kx, double ky) {
double r43741 = 1.0;
double r43742 = 2.0;
double r43743 = r43741 / r43742;
double r43744 = kx;
double r43745 = sin(r43744);
double r43746 = pow(r43745, r43742);
double r43747 = ky;
double r43748 = sin(r43747);
double r43749 = pow(r43748, r43742);
double r43750 = r43746 + r43749;
double r43751 = l;
double r43752 = r43742 * r43751;
double r43753 = Om;
double r43754 = r43752 / r43753;
double r43755 = pow(r43754, r43742);
double r43756 = fma(r43750, r43755, r43741);
double r43757 = sqrt(r43756);
double r43758 = cbrt(r43757);
double r43759 = fma(r43755, r43750, r43741);
double r43760 = cbrt(r43759);
double r43761 = r43760 * r43758;
double r43762 = cbrt(r43761);
double r43763 = r43758 * r43762;
double r43764 = r43763 * r43758;
double r43765 = r43741 / r43764;
double r43766 = r43741 + r43765;
double r43767 = r43743 * r43766;
double r43768 = sqrt(r43767);
return r43768;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.8
rmApplied add-cube-cbrt1.8
Simplified1.8
Simplified1.8
rmApplied add-cube-cbrt1.8
Simplified1.8
Final simplification1.8
herbie shell --seed 2019323 +o rules:numerics
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
:precision binary64
(sqrt (* (/ 1 2) (+ 1 (/ 1 (sqrt (+ 1 (* (pow (/ (* 2 l) Om) 2) (+ (pow (sin kx) 2) (pow (sin ky) 2))))))))))