Average Error: 1.7 → 1.7
Time: 32.3s
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}{\frac{2}{\frac{1}{\sqrt{\left(\sqrt[3]{\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]{\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]{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}} + 1}}}\]
\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}{\frac{2}{\frac{1}{\sqrt{\left(\sqrt[3]{\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]{\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]{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}} + 1}}}
double f(double l, double Om, double kx, double ky) {
        double r52543 = 1.0;
        double r52544 = 2.0;
        double r52545 = r52543 / r52544;
        double r52546 = l;
        double r52547 = r52544 * r52546;
        double r52548 = Om;
        double r52549 = r52547 / r52548;
        double r52550 = pow(r52549, r52544);
        double r52551 = kx;
        double r52552 = sin(r52551);
        double r52553 = pow(r52552, r52544);
        double r52554 = ky;
        double r52555 = sin(r52554);
        double r52556 = pow(r52555, r52544);
        double r52557 = r52553 + r52556;
        double r52558 = r52550 * r52557;
        double r52559 = r52543 + r52558;
        double r52560 = sqrt(r52559);
        double r52561 = r52543 / r52560;
        double r52562 = r52543 + r52561;
        double r52563 = r52545 * r52562;
        double r52564 = sqrt(r52563);
        return r52564;
}

double f(double l, double Om, double kx, double ky) {
        double r52565 = 1.0;
        double r52566 = 2.0;
        double r52567 = l;
        double r52568 = r52566 * r52567;
        double r52569 = Om;
        double r52570 = r52568 / r52569;
        double r52571 = pow(r52570, r52566);
        double r52572 = kx;
        double r52573 = sin(r52572);
        double r52574 = pow(r52573, r52566);
        double r52575 = ky;
        double r52576 = sin(r52575);
        double r52577 = pow(r52576, r52566);
        double r52578 = r52574 + r52577;
        double r52579 = fma(r52571, r52578, r52565);
        double r52580 = cbrt(r52579);
        double r52581 = r52580 * r52580;
        double r52582 = r52581 * r52580;
        double r52583 = sqrt(r52582);
        double r52584 = r52565 / r52583;
        double r52585 = r52584 + r52565;
        double r52586 = r52566 / r52585;
        double r52587 = r52565 / r52586;
        double r52588 = sqrt(r52587);
        return r52588;
}

Error

Bits error versus l

Bits error versus Om

Bits error versus kx

Bits error versus ky

Derivation

  1. Initial program 1.7

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

    \[\leadsto \color{blue}{\sqrt{\frac{1}{\frac{2}{\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}}}}\]
  3. Using strategy rm
  4. Applied add-cube-cbrt1.7

    \[\leadsto \sqrt{\frac{1}{\frac{2}{\frac{1}{\sqrt{\color{blue}{\left(\sqrt[3]{\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]{\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]{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}}} + 1}}}\]
  5. Final simplification1.7

    \[\leadsto \sqrt{\frac{1}{\frac{2}{\frac{1}{\sqrt{\left(\sqrt[3]{\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]{\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]{\mathsf{fma}\left({\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, {\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, 1\right)}}} + 1}}}\]

Reproduce

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