Average Error: 1.9 → 2.0
Time: 12.6s
Precision: 64
\[\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}{\log \left(e^{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\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(\sin ky\right)}^{2}\right)}}\right)}
\sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\log \left(e^{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right)}\right)}
double f(double l, double Om, double kx, double ky) {
        double r76726 = 1.0;
        double r76727 = 2.0;
        double r76728 = r76726 / r76727;
        double r76729 = l;
        double r76730 = r76727 * r76729;
        double r76731 = Om;
        double r76732 = r76730 / r76731;
        double r76733 = pow(r76732, r76727);
        double r76734 = kx;
        double r76735 = sin(r76734);
        double r76736 = pow(r76735, r76727);
        double r76737 = ky;
        double r76738 = sin(r76737);
        double r76739 = pow(r76738, r76727);
        double r76740 = r76736 + r76739;
        double r76741 = r76733 * r76740;
        double r76742 = r76726 + r76741;
        double r76743 = sqrt(r76742);
        double r76744 = r76726 / r76743;
        double r76745 = r76726 + r76744;
        double r76746 = r76728 * r76745;
        double r76747 = sqrt(r76746);
        return r76747;
}

double f(double l, double Om, double kx, double ky) {
        double r76748 = 1.0;
        double r76749 = 2.0;
        double r76750 = r76748 / r76749;
        double r76751 = l;
        double r76752 = r76749 * r76751;
        double r76753 = Om;
        double r76754 = r76752 / r76753;
        double r76755 = pow(r76754, r76749);
        double r76756 = kx;
        double r76757 = sin(r76756);
        double r76758 = pow(r76757, r76749);
        double r76759 = ky;
        double r76760 = sin(r76759);
        double r76761 = pow(r76760, r76749);
        double r76762 = r76758 + r76761;
        double r76763 = r76755 * r76762;
        double r76764 = r76748 + r76763;
        double r76765 = sqrt(r76764);
        double r76766 = exp(r76765);
        double r76767 = log(r76766);
        double r76768 = r76748 / r76767;
        double r76769 = r76748 + r76768;
        double r76770 = r76750 * r76769;
        double r76771 = sqrt(r76770);
        return r76771;
}

Error

Bits error versus l

Bits error versus Om

Bits error versus kx

Bits error versus ky

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 1.9

    \[\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)}\]
  2. Using strategy rm
  3. Applied add-log-exp2.0

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\color{blue}{\log \left(e^{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right)}}\right)}\]
  4. Final simplification2.0

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\log \left(e^{\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}\right)}\right)}\]

Reproduce

herbie shell --seed 2020036 +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))))))))))