\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}{\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}} \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}} \cdot \frac{1}{\sqrt[3]{\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}} \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}} \cdot \sqrt[3]{\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}}} + 1\right) \cdot \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r53108 = 1.0;
double r53109 = 2.0;
double r53110 = r53108 / r53109;
double r53111 = l;
double r53112 = r53109 * r53111;
double r53113 = Om;
double r53114 = r53112 / r53113;
double r53115 = pow(r53114, r53109);
double r53116 = kx;
double r53117 = sin(r53116);
double r53118 = pow(r53117, r53109);
double r53119 = ky;
double r53120 = sin(r53119);
double r53121 = pow(r53120, r53109);
double r53122 = r53118 + r53121;
double r53123 = r53115 * r53122;
double r53124 = r53108 + r53123;
double r53125 = sqrt(r53124);
double r53126 = r53108 / r53125;
double r53127 = r53108 + r53126;
double r53128 = r53110 * r53127;
double r53129 = sqrt(r53128);
return r53129;
}
double f(double l, double Om, double kx, double ky) {
double r53130 = 1.0;
double r53131 = 2.0;
double r53132 = l;
double r53133 = r53131 * r53132;
double r53134 = Om;
double r53135 = r53133 / r53134;
double r53136 = pow(r53135, r53131);
double r53137 = kx;
double r53138 = sin(r53137);
double r53139 = pow(r53138, r53131);
double r53140 = ky;
double r53141 = sin(r53140);
double r53142 = pow(r53141, r53131);
double r53143 = r53139 + r53142;
double r53144 = 1.0;
double r53145 = fma(r53136, r53143, r53144);
double r53146 = sqrt(r53145);
double r53147 = cbrt(r53146);
double r53148 = r53147 * r53147;
double r53149 = r53130 / r53148;
double r53150 = cbrt(r53148);
double r53151 = cbrt(r53147);
double r53152 = r53150 * r53151;
double r53153 = r53144 / r53152;
double r53154 = r53149 * r53153;
double r53155 = r53154 + r53144;
double r53156 = r53144 / r53131;
double r53157 = r53155 * r53156;
double r53158 = sqrt(r53157);
return r53158;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.8
Simplified1.8
rmApplied add-cube-cbrt1.8
Applied *-un-lft-identity1.8
Applied times-frac1.8
rmApplied add-cube-cbrt1.8
Applied cbrt-prod1.8
Final simplification1.8
herbie shell --seed 2019323 +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))))))))))