\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{\left(\frac{1}{\left(\sqrt[3]{\sqrt{\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right) \cdot {\left(\frac{2}{Om} \cdot \ell\right)}^{2} + 1}} \cdot \sqrt[3]{\sqrt{\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right) \cdot {\left(\frac{2}{Om} \cdot \ell\right)}^{2} + 1}}\right) \cdot \sqrt[3]{\sqrt{\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right) \cdot {\left(\frac{2}{Om} \cdot \ell\right)}^{2} + 1}}} + 1\right) \cdot \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r101786 = 1.0;
double r101787 = 2.0;
double r101788 = r101786 / r101787;
double r101789 = l;
double r101790 = r101787 * r101789;
double r101791 = Om;
double r101792 = r101790 / r101791;
double r101793 = pow(r101792, r101787);
double r101794 = kx;
double r101795 = sin(r101794);
double r101796 = pow(r101795, r101787);
double r101797 = ky;
double r101798 = sin(r101797);
double r101799 = pow(r101798, r101787);
double r101800 = r101796 + r101799;
double r101801 = r101793 * r101800;
double r101802 = r101786 + r101801;
double r101803 = sqrt(r101802);
double r101804 = r101786 / r101803;
double r101805 = r101786 + r101804;
double r101806 = r101788 * r101805;
double r101807 = sqrt(r101806);
return r101807;
}
double f(double l, double Om, double kx, double ky) {
double r101808 = 1.0;
double r101809 = kx;
double r101810 = sin(r101809);
double r101811 = 2.0;
double r101812 = pow(r101810, r101811);
double r101813 = ky;
double r101814 = sin(r101813);
double r101815 = pow(r101814, r101811);
double r101816 = r101812 + r101815;
double r101817 = Om;
double r101818 = r101811 / r101817;
double r101819 = l;
double r101820 = r101818 * r101819;
double r101821 = pow(r101820, r101811);
double r101822 = r101816 * r101821;
double r101823 = r101822 + r101808;
double r101824 = sqrt(r101823);
double r101825 = cbrt(r101824);
double r101826 = r101825 * r101825;
double r101827 = r101826 * r101825;
double r101828 = r101808 / r101827;
double r101829 = r101828 + r101808;
double r101830 = r101808 / r101811;
double r101831 = r101829 * r101830;
double r101832 = sqrt(r101831);
return r101832;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.6
Simplified1.6
rmApplied add-cube-cbrt1.6
Simplified1.6
Simplified1.6
Final simplification1.6
herbie shell --seed 2019174
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
(sqrt (* (/ 1.0 2.0) (+ 1.0 (/ 1.0 (sqrt (+ 1.0 (* (pow (/ (* 2.0 l) Om) 2.0) (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0))))))))))