\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{\frac{1}{2}}{\sqrt{(4 \cdot \left(\frac{\ell \cdot \sin kx}{Om} \cdot \frac{\ell \cdot \sin kx}{Om} + \frac{\sin ky \cdot \ell}{Om} \cdot \frac{\sin ky \cdot \ell}{Om}\right) + 1)_*}} + \frac{1}{2}}double f(double l, double Om, double kx, double ky) {
double r7044563 = 1.0;
double r7044564 = 2.0;
double r7044565 = r7044563 / r7044564;
double r7044566 = l;
double r7044567 = r7044564 * r7044566;
double r7044568 = Om;
double r7044569 = r7044567 / r7044568;
double r7044570 = pow(r7044569, r7044564);
double r7044571 = kx;
double r7044572 = sin(r7044571);
double r7044573 = pow(r7044572, r7044564);
double r7044574 = ky;
double r7044575 = sin(r7044574);
double r7044576 = pow(r7044575, r7044564);
double r7044577 = r7044573 + r7044576;
double r7044578 = r7044570 * r7044577;
double r7044579 = r7044563 + r7044578;
double r7044580 = sqrt(r7044579);
double r7044581 = r7044563 / r7044580;
double r7044582 = r7044563 + r7044581;
double r7044583 = r7044565 * r7044582;
double r7044584 = sqrt(r7044583);
return r7044584;
}
double f(double l, double Om, double kx, double ky) {
double r7044585 = 0.5;
double r7044586 = 4.0;
double r7044587 = l;
double r7044588 = kx;
double r7044589 = sin(r7044588);
double r7044590 = r7044587 * r7044589;
double r7044591 = Om;
double r7044592 = r7044590 / r7044591;
double r7044593 = r7044592 * r7044592;
double r7044594 = ky;
double r7044595 = sin(r7044594);
double r7044596 = r7044595 * r7044587;
double r7044597 = r7044596 / r7044591;
double r7044598 = r7044597 * r7044597;
double r7044599 = r7044593 + r7044598;
double r7044600 = 1.0;
double r7044601 = fma(r7044586, r7044599, r7044600);
double r7044602 = sqrt(r7044601);
double r7044603 = r7044585 / r7044602;
double r7044604 = r7044603 + r7044585;
double r7044605 = sqrt(r7044604);
return r7044605;
}



Bits error versus l



Bits error versus Om



Bits error versus kx



Bits error versus ky
Initial program 1.6
Simplified1.6
Taylor expanded around inf 16.7
Simplified0.7
Final simplification0.7
herbie shell --seed 2019104 +o rules:numerics
(FPCore (l Om kx ky)
:name "Toniolo and Linder, Equation (3a)"
(sqrt (* (/ 1 2) (+ 1 (/ 1 (sqrt (+ 1 (* (pow (/ (* 2 l) Om) 2) (+ (pow (sin kx) 2) (pow (sin ky) 2))))))))))