Average Error: 1.9 → 2.0
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}{\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 r78422 = 1.0;
        double r78423 = 2.0;
        double r78424 = r78422 / r78423;
        double r78425 = l;
        double r78426 = r78423 * r78425;
        double r78427 = Om;
        double r78428 = r78426 / r78427;
        double r78429 = pow(r78428, r78423);
        double r78430 = kx;
        double r78431 = sin(r78430);
        double r78432 = pow(r78431, r78423);
        double r78433 = ky;
        double r78434 = sin(r78433);
        double r78435 = pow(r78434, r78423);
        double r78436 = r78432 + r78435;
        double r78437 = r78429 * r78436;
        double r78438 = r78422 + r78437;
        double r78439 = sqrt(r78438);
        double r78440 = r78422 / r78439;
        double r78441 = r78422 + r78440;
        double r78442 = r78424 * r78441;
        double r78443 = sqrt(r78442);
        return r78443;
}

double f(double l, double Om, double kx, double ky) {
        double r78444 = 1.0;
        double r78445 = 2.0;
        double r78446 = r78444 / r78445;
        double r78447 = l;
        double r78448 = r78445 * r78447;
        double r78449 = Om;
        double r78450 = r78448 / r78449;
        double r78451 = pow(r78450, r78445);
        double r78452 = kx;
        double r78453 = sin(r78452);
        double r78454 = pow(r78453, r78445);
        double r78455 = ky;
        double r78456 = sin(r78455);
        double r78457 = pow(r78456, r78445);
        double r78458 = r78454 + r78457;
        double r78459 = r78451 * r78458;
        double r78460 = r78444 + r78459;
        double r78461 = sqrt(r78460);
        double r78462 = exp(r78461);
        double r78463 = log(r78462);
        double r78464 = r78444 / r78463;
        double r78465 = r78444 + r78464;
        double r78466 = r78446 * r78465;
        double r78467 = sqrt(r78466);
        return r78467;
}

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))))))))))