Average Error: 1.6 → 1.6
Time: 1.1m
Precision: 64
\[\sqrt{\frac{1.0}{2.0} \cdot \left(1.0 + \frac{1.0}{\sqrt{1.0 + {\left(\frac{2.0 \cdot \ell}{Om}\right)}^{2.0} \cdot \left({\left(\sin kx\right)}^{2.0} + {\left(\sin ky\right)}^{2.0}\right)}}\right)}\]
\[\sqrt{1.0 \cdot \frac{1.0}{2.0} + \frac{\frac{1.0 \cdot \frac{1.0}{2.0}}{\sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left({\left(\frac{2.0}{Om} \cdot \ell\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}} \cdot \left(\sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left({\left(\frac{2.0}{Om} \cdot \ell\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}} \cdot \sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left({\left(\frac{2.0}{Om} \cdot \ell\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}}\right)}}{\sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left({\left(\frac{2.0}{Om} \cdot \ell\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}} \cdot \left(\sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left({\left(\frac{2.0}{Om} \cdot \ell\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}} \cdot \sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left({\left(\frac{2.0}{Om} \cdot \ell\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}}\right)}}\]
\sqrt{\frac{1.0}{2.0} \cdot \left(1.0 + \frac{1.0}{\sqrt{1.0 + {\left(\frac{2.0 \cdot \ell}{Om}\right)}^{2.0} \cdot \left({\left(\sin kx\right)}^{2.0} + {\left(\sin ky\right)}^{2.0}\right)}}\right)}
\sqrt{1.0 \cdot \frac{1.0}{2.0} + \frac{\frac{1.0 \cdot \frac{1.0}{2.0}}{\sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left({\left(\frac{2.0}{Om} \cdot \ell\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}} \cdot \left(\sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left({\left(\frac{2.0}{Om} \cdot \ell\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}} \cdot \sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left({\left(\frac{2.0}{Om} \cdot \ell\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}}\right)}}{\sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left({\left(\frac{2.0}{Om} \cdot \ell\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}} \cdot \left(\sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left({\left(\frac{2.0}{Om} \cdot \ell\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}} \cdot \sqrt[3]{\sqrt{\sqrt{\mathsf{fma}\left({\left(\frac{2.0}{Om} \cdot \ell\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}}\right)}}
double f(double l, double Om, double kx, double ky) {
        double r2005663 = 1.0;
        double r2005664 = 2.0;
        double r2005665 = r2005663 / r2005664;
        double r2005666 = l;
        double r2005667 = r2005664 * r2005666;
        double r2005668 = Om;
        double r2005669 = r2005667 / r2005668;
        double r2005670 = pow(r2005669, r2005664);
        double r2005671 = kx;
        double r2005672 = sin(r2005671);
        double r2005673 = pow(r2005672, r2005664);
        double r2005674 = ky;
        double r2005675 = sin(r2005674);
        double r2005676 = pow(r2005675, r2005664);
        double r2005677 = r2005673 + r2005676;
        double r2005678 = r2005670 * r2005677;
        double r2005679 = r2005663 + r2005678;
        double r2005680 = sqrt(r2005679);
        double r2005681 = r2005663 / r2005680;
        double r2005682 = r2005663 + r2005681;
        double r2005683 = r2005665 * r2005682;
        double r2005684 = sqrt(r2005683);
        return r2005684;
}

double f(double l, double Om, double kx, double ky) {
        double r2005685 = 1.0;
        double r2005686 = 2.0;
        double r2005687 = r2005685 / r2005686;
        double r2005688 = r2005685 * r2005687;
        double r2005689 = Om;
        double r2005690 = r2005686 / r2005689;
        double r2005691 = l;
        double r2005692 = r2005690 * r2005691;
        double r2005693 = pow(r2005692, r2005686);
        double r2005694 = ky;
        double r2005695 = sin(r2005694);
        double r2005696 = pow(r2005695, r2005686);
        double r2005697 = kx;
        double r2005698 = sin(r2005697);
        double r2005699 = pow(r2005698, r2005686);
        double r2005700 = r2005696 + r2005699;
        double r2005701 = fma(r2005693, r2005700, r2005685);
        double r2005702 = sqrt(r2005701);
        double r2005703 = sqrt(r2005702);
        double r2005704 = cbrt(r2005703);
        double r2005705 = r2005704 * r2005704;
        double r2005706 = r2005704 * r2005705;
        double r2005707 = r2005688 / r2005706;
        double r2005708 = r2005707 / r2005706;
        double r2005709 = r2005688 + r2005708;
        double r2005710 = sqrt(r2005709);
        return r2005710;
}

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.0}{2.0} \cdot \left(1.0 + \frac{1.0}{\sqrt{1.0 + {\left(\frac{2.0 \cdot \ell}{Om}\right)}^{2.0} \cdot \left({\left(\sin kx\right)}^{2.0} + {\left(\sin ky\right)}^{2.0}\right)}}\right)}\]
  2. Simplified1.6

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

    \[\leadsto \sqrt{1.0 \cdot \frac{1.0}{2.0} + \frac{1.0 \cdot \frac{1.0}{2.0}}{\sqrt{\color{blue}{\sqrt{\mathsf{fma}\left({\left(\ell \cdot \frac{2.0}{Om}\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)} \cdot \sqrt{\mathsf{fma}\left({\left(\ell \cdot \frac{2.0}{Om}\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}}}}\]
  5. Applied sqrt-prod1.6

    \[\leadsto \sqrt{1.0 \cdot \frac{1.0}{2.0} + \frac{1.0 \cdot \frac{1.0}{2.0}}{\color{blue}{\sqrt{\sqrt{\mathsf{fma}\left({\left(\ell \cdot \frac{2.0}{Om}\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left({\left(\ell \cdot \frac{2.0}{Om}\right)}^{2.0}, {\left(\sin ky\right)}^{2.0} + {\left(\sin kx\right)}^{2.0}, 1.0\right)}}}}}\]
  6. Applied associate-/r*1.6

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

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

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

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

Reproduce

herbie shell --seed 2019165 +o rules:numerics
(FPCore (l Om kx ky)
  :name "Toniolo and Linder, Equation (3a)"
  (sqrt (* (/ 1.0 2.0) (+ 1.0 (/ 1.0 (sqrt (+ 1.0 (* (pow (/ (* 2.0 l) Om) 2.0) (+ (pow (sin kx) 2.0) (pow (sin ky) 2.0))))))))))