Average Error: 1.5 → 1.5
Time: 13.7s
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[3]{{\left(\sqrt{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}\right)}^{3}}}\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[3]{{\left(\sqrt{\mathsf{fma}\left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}, {\left(\frac{2 \cdot \ell}{Om}\right)}^{2}, 1\right)}\right)}^{3}}}\right)}
double f(double l, double Om, double kx, double ky) {
        double r24746 = 1.0;
        double r24747 = 2.0;
        double r24748 = r24746 / r24747;
        double r24749 = l;
        double r24750 = r24747 * r24749;
        double r24751 = Om;
        double r24752 = r24750 / r24751;
        double r24753 = pow(r24752, r24747);
        double r24754 = kx;
        double r24755 = sin(r24754);
        double r24756 = pow(r24755, r24747);
        double r24757 = ky;
        double r24758 = sin(r24757);
        double r24759 = pow(r24758, r24747);
        double r24760 = r24756 + r24759;
        double r24761 = r24753 * r24760;
        double r24762 = r24746 + r24761;
        double r24763 = sqrt(r24762);
        double r24764 = r24746 / r24763;
        double r24765 = r24746 + r24764;
        double r24766 = r24748 * r24765;
        double r24767 = sqrt(r24766);
        return r24767;
}

double f(double l, double Om, double kx, double ky) {
        double r24768 = 1.0;
        double r24769 = 2.0;
        double r24770 = r24768 / r24769;
        double r24771 = kx;
        double r24772 = sin(r24771);
        double r24773 = pow(r24772, r24769);
        double r24774 = ky;
        double r24775 = sin(r24774);
        double r24776 = pow(r24775, r24769);
        double r24777 = r24773 + r24776;
        double r24778 = l;
        double r24779 = r24769 * r24778;
        double r24780 = Om;
        double r24781 = r24779 / r24780;
        double r24782 = pow(r24781, r24769);
        double r24783 = fma(r24777, r24782, r24768);
        double r24784 = sqrt(r24783);
        double r24785 = 3.0;
        double r24786 = pow(r24784, r24785);
        double r24787 = cbrt(r24786);
        double r24788 = r24768 / r24787;
        double r24789 = r24768 + r24788;
        double r24790 = r24770 * r24789;
        double r24791 = sqrt(r24790);
        return r24791;
}

Error

Bits error versus l

Bits error versus Om

Bits error versus kx

Bits error versus ky

Derivation

  1. Initial program 1.5

    \[\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-cbrt-cube1.5

    \[\leadsto \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\color{blue}{\sqrt[3]{\left(\sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)} \cdot \sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}\right) \cdot \sqrt{1 + {\left(\frac{2 \cdot \ell}{Om}\right)}^{2} \cdot \left({\left(\sin kx\right)}^{2} + {\left(\sin ky\right)}^{2}\right)}}}}\right)}\]
  4. Simplified1.5

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

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

Reproduce

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