Average Error: 1.9 → 2.0
Time: 12.1s
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}{\sqrt{1 + \log \left(e^{{\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}{\sqrt{1 + \log \left(e^{{\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 r67789 = 1.0;
        double r67790 = 2.0;
        double r67791 = r67789 / r67790;
        double r67792 = l;
        double r67793 = r67790 * r67792;
        double r67794 = Om;
        double r67795 = r67793 / r67794;
        double r67796 = pow(r67795, r67790);
        double r67797 = kx;
        double r67798 = sin(r67797);
        double r67799 = pow(r67798, r67790);
        double r67800 = ky;
        double r67801 = sin(r67800);
        double r67802 = pow(r67801, r67790);
        double r67803 = r67799 + r67802;
        double r67804 = r67796 * r67803;
        double r67805 = r67789 + r67804;
        double r67806 = sqrt(r67805);
        double r67807 = r67789 / r67806;
        double r67808 = r67789 + r67807;
        double r67809 = r67791 * r67808;
        double r67810 = sqrt(r67809);
        return r67810;
}

double f(double l, double Om, double kx, double ky) {
        double r67811 = 1.0;
        double r67812 = 2.0;
        double r67813 = r67811 / r67812;
        double r67814 = l;
        double r67815 = r67812 * r67814;
        double r67816 = Om;
        double r67817 = r67815 / r67816;
        double r67818 = pow(r67817, r67812);
        double r67819 = kx;
        double r67820 = sin(r67819);
        double r67821 = pow(r67820, r67812);
        double r67822 = ky;
        double r67823 = sin(r67822);
        double r67824 = pow(r67823, r67812);
        double r67825 = r67821 + r67824;
        double r67826 = r67818 * r67825;
        double r67827 = exp(r67826);
        double r67828 = log(r67827);
        double r67829 = r67811 + r67828;
        double r67830 = sqrt(r67829);
        double r67831 = r67811 / r67830;
        double r67832 = r67811 + r67831;
        double r67833 = r67813 * r67832;
        double r67834 = sqrt(r67833);
        return r67834;
}

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}{\sqrt{1 + \color{blue}{\log \left(e^{{\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}{\sqrt{1 + \log \left(e^{{\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 
(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))))))))))