\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{\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 \left(\sqrt[3]{\sqrt{\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{\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)}\right)}double f(double l, double Om, double kx, double ky) {
double r42670 = 1.0;
double r42671 = 2.0;
double r42672 = r42670 / r42671;
double r42673 = l;
double r42674 = r42671 * r42673;
double r42675 = Om;
double r42676 = r42674 / r42675;
double r42677 = pow(r42676, r42671);
double r42678 = kx;
double r42679 = sin(r42678);
double r42680 = pow(r42679, r42671);
double r42681 = ky;
double r42682 = sin(r42681);
double r42683 = pow(r42682, r42671);
double r42684 = r42680 + r42683;
double r42685 = r42677 * r42684;
double r42686 = r42670 + r42685;
double r42687 = sqrt(r42686);
double r42688 = r42670 / r42687;
double r42689 = r42670 + r42688;
double r42690 = r42672 * r42689;
double r42691 = sqrt(r42690);
return r42691;
}
double f(double l, double Om, double kx, double ky) {
double r42692 = 1.0;
double r42693 = 2.0;
double r42694 = r42692 / r42693;
double r42695 = kx;
double r42696 = sin(r42695);
double r42697 = pow(r42696, r42693);
double r42698 = ky;
double r42699 = sin(r42698);
double r42700 = pow(r42699, r42693);
double r42701 = r42697 + r42700;
double r42702 = l;
double r42703 = r42693 * r42702;
double r42704 = Om;
double r42705 = r42703 / r42704;
double r42706 = pow(r42705, r42693);
double r42707 = fma(r42701, r42706, r42692);
double r42708 = sqrt(r42707);
double r42709 = cbrt(r42708);
double r42710 = r42709 * r42709;
double r42711 = sqrt(r42708);
double r42712 = cbrt(r42711);
double r42713 = r42712 * r42712;
double r42714 = r42710 * r42713;
double r42715 = r42692 / r42714;
double r42716 = r42692 + r42715;
double r42717 = r42694 * r42716;
double r42718 = sqrt(r42717);
return r42718;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.6
rmApplied add-cube-cbrt1.6
Simplified1.6
Simplified1.6
rmApplied add-sqr-sqrt1.6
Applied sqrt-prod1.6
Applied cbrt-prod1.6
Final simplification1.6
herbie shell --seed 2019209 +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))))))))))