\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{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}} \cdot \sqrt[3]{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right) \cdot \sqrt[3]{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}}\right)}double f(double l, double Om, double kx, double ky) {
double r48662 = 1.0;
double r48663 = 2.0;
double r48664 = r48662 / r48663;
double r48665 = l;
double r48666 = r48663 * r48665;
double r48667 = Om;
double r48668 = r48666 / r48667;
double r48669 = pow(r48668, r48663);
double r48670 = kx;
double r48671 = sin(r48670);
double r48672 = pow(r48671, r48663);
double r48673 = ky;
double r48674 = sin(r48673);
double r48675 = pow(r48674, r48663);
double r48676 = r48672 + r48675;
double r48677 = r48669 * r48676;
double r48678 = r48662 + r48677;
double r48679 = sqrt(r48678);
double r48680 = r48662 / r48679;
double r48681 = r48662 + r48680;
double r48682 = r48664 * r48681;
double r48683 = sqrt(r48682);
return r48683;
}
double f(double l, double Om, double kx, double ky) {
double r48684 = 1.0;
double r48685 = 2.0;
double r48686 = r48684 / r48685;
double r48687 = l;
double r48688 = r48685 * r48687;
double r48689 = Om;
double r48690 = r48688 / r48689;
double r48691 = pow(r48690, r48685);
double r48692 = kx;
double r48693 = sin(r48692);
double r48694 = pow(r48693, r48685);
double r48695 = ky;
double r48696 = sin(r48695);
double r48697 = pow(r48696, r48685);
double r48698 = r48694 + r48697;
double r48699 = r48691 * r48698;
double r48700 = r48684 + r48699;
double r48701 = sqrt(r48700);
double r48702 = cbrt(r48701);
double r48703 = r48702 * r48702;
double r48704 = r48703 * r48702;
double r48705 = r48684 / r48704;
double r48706 = r48684 + r48705;
double r48707 = r48686 * r48706;
double r48708 = sqrt(r48707);
return r48708;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.6
rmApplied add-cube-cbrt1.6
Final simplification1.6
herbie shell --seed 2020042
(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))))))))))