\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}{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sqrt[3]{\sin ky} \cdot \sqrt[3]{\sin ky}\right)}^{2} \cdot {\left(\sqrt[3]{\sin ky}\right)}^{2}\right)}}\right)}double f(double l, double Om, double kx, double ky) {
double r36154 = 1.0;
double r36155 = 2.0;
double r36156 = r36154 / r36155;
double r36157 = l;
double r36158 = r36155 * r36157;
double r36159 = Om;
double r36160 = r36158 / r36159;
double r36161 = pow(r36160, r36155);
double r36162 = kx;
double r36163 = sin(r36162);
double r36164 = pow(r36163, r36155);
double r36165 = ky;
double r36166 = sin(r36165);
double r36167 = pow(r36166, r36155);
double r36168 = r36164 + r36167;
double r36169 = r36161 * r36168;
double r36170 = r36154 + r36169;
double r36171 = sqrt(r36170);
double r36172 = r36154 / r36171;
double r36173 = r36154 + r36172;
double r36174 = r36156 * r36173;
double r36175 = sqrt(r36174);
return r36175;
}
double f(double l, double Om, double kx, double ky) {
double r36176 = 1.0;
double r36177 = 2.0;
double r36178 = r36176 / r36177;
double r36179 = l;
double r36180 = r36177 * r36179;
double r36181 = Om;
double r36182 = r36180 / r36181;
double r36183 = pow(r36182, r36177);
double r36184 = kx;
double r36185 = sin(r36184);
double r36186 = pow(r36185, r36177);
double r36187 = ky;
double r36188 = sin(r36187);
double r36189 = cbrt(r36188);
double r36190 = r36189 * r36189;
double r36191 = pow(r36190, r36177);
double r36192 = pow(r36189, r36177);
double r36193 = r36191 * r36192;
double r36194 = r36186 + r36193;
double r36195 = r36183 * r36194;
double r36196 = r36176 + r36195;
double r36197 = sqrt(r36196);
double r36198 = r36176 / r36197;
double r36199 = r36176 + r36198;
double r36200 = r36178 * r36199;
double r36201 = sqrt(r36200);
return r36201;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Results
Initial program 1.8
rmApplied add-cube-cbrt1.8
Applied unpow-prod-down1.8
Final simplification1.8
herbie shell --seed 2019304
(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))))))))))