Average Error: 1.8 → 1.9
Time: 13.5s
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 r52476 = 1.0;
        double r52477 = 2.0;
        double r52478 = r52476 / r52477;
        double r52479 = l;
        double r52480 = r52477 * r52479;
        double r52481 = Om;
        double r52482 = r52480 / r52481;
        double r52483 = pow(r52482, r52477);
        double r52484 = kx;
        double r52485 = sin(r52484);
        double r52486 = pow(r52485, r52477);
        double r52487 = ky;
        double r52488 = sin(r52487);
        double r52489 = pow(r52488, r52477);
        double r52490 = r52486 + r52489;
        double r52491 = r52483 * r52490;
        double r52492 = r52476 + r52491;
        double r52493 = sqrt(r52492);
        double r52494 = r52476 / r52493;
        double r52495 = r52476 + r52494;
        double r52496 = r52478 * r52495;
        double r52497 = sqrt(r52496);
        return r52497;
}

double f(double l, double Om, double kx, double ky) {
        double r52498 = 1.0;
        double r52499 = 2.0;
        double r52500 = r52498 / r52499;
        double r52501 = l;
        double r52502 = r52499 * r52501;
        double r52503 = Om;
        double r52504 = r52502 / r52503;
        double r52505 = pow(r52504, r52499);
        double r52506 = kx;
        double r52507 = sin(r52506);
        double r52508 = pow(r52507, r52499);
        double r52509 = ky;
        double r52510 = sin(r52509);
        double r52511 = pow(r52510, r52499);
        double r52512 = r52508 + r52511;
        double r52513 = r52505 * r52512;
        double r52514 = exp(r52513);
        double r52515 = log(r52514);
        double r52516 = r52498 + r52515;
        double r52517 = sqrt(r52516);
        double r52518 = r52498 / r52517;
        double r52519 = r52498 + r52518;
        double r52520 = r52500 * r52519;
        double r52521 = sqrt(r52520);
        return r52521;
}

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.8

    \[\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-exp1.9

    \[\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 simplification1.9

    \[\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 2020047 
(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))))))))))