\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} + \frac{\frac{1}{2}}{\sqrt{\mathsf{fma}\left(4, \frac{\sin kx}{\frac{Om}{\ell}} \cdot \frac{\sin kx}{\frac{Om}{\ell}} + \frac{\ell}{\frac{Om}{\sin ky}} \cdot \frac{\ell}{\frac{Om}{\sin ky}}, 1\right)}}}double f(double l, double Om, double kx, double ky) {
double r971613 = 1.0;
double r971614 = 2.0;
double r971615 = r971613 / r971614;
double r971616 = l;
double r971617 = r971614 * r971616;
double r971618 = Om;
double r971619 = r971617 / r971618;
double r971620 = pow(r971619, r971614);
double r971621 = kx;
double r971622 = sin(r971621);
double r971623 = pow(r971622, r971614);
double r971624 = ky;
double r971625 = sin(r971624);
double r971626 = pow(r971625, r971614);
double r971627 = r971623 + r971626;
double r971628 = r971620 * r971627;
double r971629 = r971613 + r971628;
double r971630 = sqrt(r971629);
double r971631 = r971613 / r971630;
double r971632 = r971613 + r971631;
double r971633 = r971615 * r971632;
double r971634 = sqrt(r971633);
return r971634;
}
double f(double l, double Om, double kx, double ky) {
double r971635 = 0.5;
double r971636 = 4.0;
double r971637 = kx;
double r971638 = sin(r971637);
double r971639 = Om;
double r971640 = l;
double r971641 = r971639 / r971640;
double r971642 = r971638 / r971641;
double r971643 = r971642 * r971642;
double r971644 = ky;
double r971645 = sin(r971644);
double r971646 = r971639 / r971645;
double r971647 = r971640 / r971646;
double r971648 = r971647 * r971647;
double r971649 = r971643 + r971648;
double r971650 = 1.0;
double r971651 = fma(r971636, r971649, r971650);
double r971652 = sqrt(r971651);
double r971653 = r971635 / r971652;
double r971654 = r971635 + r971653;
double r971655 = sqrt(r971654);
return r971655;
}



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.8
Simplified0.6
rmApplied *-un-lft-identity0.6
Applied *-un-lft-identity0.6
Applied times-frac0.6
Applied *-un-lft-identity0.6
Applied times-frac0.6
Simplified0.6
Final simplification0.6
herbie shell --seed 2019146 +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))))))))))