\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)}\begin{array}{l}
\mathbf{if}\;\frac{2 \cdot \ell}{Om} \le 1.328905807719447 \cdot 10^{+154}:\\
\;\;\;\;\sqrt{\frac{1}{2} + \frac{\frac{1}{2}}{\sqrt[3]{\sqrt{\left(\sqrt[3]{\mathsf{fma}\left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)}}} \cdot \left(\sqrt[3]{\sqrt{\left(\sqrt[3]{\mathsf{fma}\left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)}}} \cdot \sqrt[3]{\sqrt{\left(\sqrt[3]{\mathsf{fma}\left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)}}}\right)}}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{\frac{1}{2} + \frac{\frac{1}{2}}{\sqrt{\left(\left(\mathsf{fma}\left(\frac{2 \cdot \ell}{Om} \cdot \frac{2 \cdot \ell}{Om}, \mathsf{fma}\left(\sin kx, \sin kx, \sin ky \cdot \sin ky\right), 1\right)\right)\right)}}}\\
\end{array}double f(double l, double Om, double kx, double ky) {
double r664727 = 1.0;
double r664728 = 2.0;
double r664729 = r664727 / r664728;
double r664730 = l;
double r664731 = r664728 * r664730;
double r664732 = Om;
double r664733 = r664731 / r664732;
double r664734 = pow(r664733, r664728);
double r664735 = kx;
double r664736 = sin(r664735);
double r664737 = pow(r664736, r664728);
double r664738 = ky;
double r664739 = sin(r664738);
double r664740 = pow(r664739, r664728);
double r664741 = r664737 + r664740;
double r664742 = r664734 * r664741;
double r664743 = r664727 + r664742;
double r664744 = sqrt(r664743);
double r664745 = r664727 / r664744;
double r664746 = r664727 + r664745;
double r664747 = r664729 * r664746;
double r664748 = sqrt(r664747);
return r664748;
}
double f(double l, double Om, double kx, double ky) {
double r664749 = 2.0;
double r664750 = l;
double r664751 = r664749 * r664750;
double r664752 = Om;
double r664753 = r664751 / r664752;
double r664754 = 1.328905807719447e+154;
bool r664755 = r664753 <= r664754;
double r664756 = 0.5;
double r664757 = r664753 * r664753;
double r664758 = kx;
double r664759 = sin(r664758);
double r664760 = ky;
double r664761 = sin(r664760);
double r664762 = r664761 * r664761;
double r664763 = fma(r664759, r664759, r664762);
double r664764 = 1.0;
double r664765 = fma(r664757, r664763, r664764);
double r664766 = cbrt(r664765);
double r664767 = r664766 * r664766;
double r664768 = r664767 * r664766;
double r664769 = sqrt(r664768);
double r664770 = cbrt(r664769);
double r664771 = r664770 * r664770;
double r664772 = r664770 * r664771;
double r664773 = r664756 / r664772;
double r664774 = r664756 + r664773;
double r664775 = sqrt(r664774);
double r664776 = /* ERROR: no posit support in C */;
double r664777 = /* ERROR: no posit support in C */;
double r664778 = sqrt(r664777);
double r664779 = r664756 / r664778;
double r664780 = r664756 + r664779;
double r664781 = sqrt(r664780);
double r664782 = r664755 ? r664775 : r664781;
return r664782;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
if (/ (* 2 l) Om) < 1.328905807719447e+154Initial program 1.4
Simplified1.4
rmApplied add-cube-cbrt1.4
rmApplied add-cube-cbrt1.4
if 1.328905807719447e+154 < (/ (* 2 l) Om) Initial program 3.8
Simplified3.8
rmApplied insert-posit160.7
Final simplification1.3
herbie shell --seed 2019154 +o rules:numerics
(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))))))))))