Average Error: 1.6 → 1.6
Time: 11.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{\left(\frac{1}{\left(\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}} \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}\right) \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}} + 1\right) \cdot \frac{1}{2}}\]
\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{\left(\frac{1}{\left(\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}} \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}\right) \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}} + 1\right) \cdot \frac{1}{2}}
double f(double l, double Om, double kx, double ky) {
        double r50473 = 1.0;
        double r50474 = 2.0;
        double r50475 = r50473 / r50474;
        double r50476 = l;
        double r50477 = r50474 * r50476;
        double r50478 = Om;
        double r50479 = r50477 / r50478;
        double r50480 = pow(r50479, r50474);
        double r50481 = kx;
        double r50482 = sin(r50481);
        double r50483 = pow(r50482, r50474);
        double r50484 = ky;
        double r50485 = sin(r50484);
        double r50486 = pow(r50485, r50474);
        double r50487 = r50483 + r50486;
        double r50488 = r50480 * r50487;
        double r50489 = r50473 + r50488;
        double r50490 = sqrt(r50489);
        double r50491 = r50473 / r50490;
        double r50492 = r50473 + r50491;
        double r50493 = r50475 * r50492;
        double r50494 = sqrt(r50493);
        return r50494;
}

double f(double l, double Om, double kx, double ky) {
        double r50495 = 1.0;
        double r50496 = 2.0;
        double r50497 = l;
        double r50498 = r50496 * r50497;
        double r50499 = Om;
        double r50500 = r50498 / r50499;
        double r50501 = pow(r50500, r50496);
        double r50502 = kx;
        double r50503 = sin(r50502);
        double r50504 = pow(r50503, r50496);
        double r50505 = ky;
        double r50506 = sin(r50505);
        double r50507 = pow(r50506, r50496);
        double r50508 = r50504 + r50507;
        double r50509 = fma(r50501, r50508, r50495);
        double r50510 = sqrt(r50509);
        double r50511 = cbrt(r50510);
        double r50512 = r50511 * r50511;
        double r50513 = r50512 * r50511;
        double r50514 = r50495 / r50513;
        double r50515 = r50514 + r50495;
        double r50516 = r50495 / r50496;
        double r50517 = r50515 * r50516;
        double r50518 = sqrt(r50517);
        return r50518;
}

Error

Bits error versus l

Bits error versus Om

Bits error versus kx

Bits error versus ky

Derivation

  1. Initial program 1.6

    \[\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. Simplified1.6

    \[\leadsto \color{blue}{\sqrt{\left(\frac{1}{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}} + 1\right) \cdot \frac{1}{2}}}\]
  3. Using strategy rm
  4. Applied add-cube-cbrt1.6

    \[\leadsto \sqrt{\left(\frac{1}{\color{blue}{\left(\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}} \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}\right) \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}}} + 1\right) \cdot \frac{1}{2}}\]
  5. Final simplification1.6

    \[\leadsto \sqrt{\left(\frac{1}{\left(\sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}} \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}\right) \cdot \sqrt[3]{\sqrt{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}} + 1\right) \cdot \frac{1}{2}}\]

Reproduce

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