\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 + \left(\sqrt[3]{\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)}}} \cdot \sqrt[3]{\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) \cdot \left(\sqrt[3]{\frac{\sqrt{1}}{\sqrt{\sqrt[3]{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]{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]{\frac{\sqrt{1}}{\sqrt{\sqrt[3]{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}}}\right)\right)}double f(double l, double Om, double kx, double ky) {
double r48637 = 1.0;
double r48638 = 2.0;
double r48639 = r48637 / r48638;
double r48640 = l;
double r48641 = r48638 * r48640;
double r48642 = Om;
double r48643 = r48641 / r48642;
double r48644 = pow(r48643, r48638);
double r48645 = kx;
double r48646 = sin(r48645);
double r48647 = pow(r48646, r48638);
double r48648 = ky;
double r48649 = sin(r48648);
double r48650 = pow(r48649, r48638);
double r48651 = r48647 + r48650;
double r48652 = r48644 * r48651;
double r48653 = r48637 + r48652;
double r48654 = sqrt(r48653);
double r48655 = r48637 / r48654;
double r48656 = r48637 + r48655;
double r48657 = r48639 * r48656;
double r48658 = sqrt(r48657);
return r48658;
}
double f(double l, double Om, double kx, double ky) {
double r48659 = 1.0;
double r48660 = 2.0;
double r48661 = r48659 / r48660;
double r48662 = l;
double r48663 = r48660 * r48662;
double r48664 = Om;
double r48665 = r48663 / r48664;
double r48666 = pow(r48665, r48660);
double r48667 = kx;
double r48668 = sin(r48667);
double r48669 = pow(r48668, r48660);
double r48670 = ky;
double r48671 = sin(r48670);
double r48672 = pow(r48671, r48660);
double r48673 = r48669 + r48672;
double r48674 = r48666 * r48673;
double r48675 = r48659 + r48674;
double r48676 = sqrt(r48675);
double r48677 = r48659 / r48676;
double r48678 = cbrt(r48677);
double r48679 = r48678 * r48678;
double r48680 = sqrt(r48659);
double r48681 = cbrt(r48675);
double r48682 = r48681 * r48681;
double r48683 = sqrt(r48682);
double r48684 = r48680 / r48683;
double r48685 = cbrt(r48684);
double r48686 = sqrt(r48681);
double r48687 = r48680 / r48686;
double r48688 = cbrt(r48687);
double r48689 = r48685 * r48688;
double r48690 = r48679 * r48689;
double r48691 = r48659 + r48690;
double r48692 = r48661 * r48691;
double r48693 = sqrt(r48692);
return r48693;
}



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
rmApplied add-cube-cbrt1.6
Applied sqrt-prod1.6
Applied add-sqr-sqrt1.6
Applied times-frac1.6
Applied cbrt-prod1.6
Final simplification1.6
herbie shell --seed 2019346 +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))))))))))