Average Error: 0.5 → 0.5
Time: 11.8s
Precision: 64
\[\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\]
\[\frac{1}{\sqrt[3]{\sqrt[3]{\sqrt{2}}} \cdot \sqrt[3]{\sqrt[3]{\sqrt{2}}}} \cdot \frac{\frac{\cos th}{\sqrt[3]{\sqrt{2}}} \cdot \frac{\mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\sqrt[3]{\sqrt{2}}}}{\sqrt[3]{\sqrt[3]{\sqrt{2}}}}\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\frac{1}{\sqrt[3]{\sqrt[3]{\sqrt{2}}} \cdot \sqrt[3]{\sqrt[3]{\sqrt{2}}}} \cdot \frac{\frac{\cos th}{\sqrt[3]{\sqrt{2}}} \cdot \frac{\mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\sqrt[3]{\sqrt{2}}}}{\sqrt[3]{\sqrt[3]{\sqrt{2}}}}
double f(double a1, double a2, double th) {
        double r149937 = th;
        double r149938 = cos(r149937);
        double r149939 = 2.0;
        double r149940 = sqrt(r149939);
        double r149941 = r149938 / r149940;
        double r149942 = a1;
        double r149943 = r149942 * r149942;
        double r149944 = r149941 * r149943;
        double r149945 = a2;
        double r149946 = r149945 * r149945;
        double r149947 = r149941 * r149946;
        double r149948 = r149944 + r149947;
        return r149948;
}

double f(double a1, double a2, double th) {
        double r149949 = 1.0;
        double r149950 = 2.0;
        double r149951 = sqrt(r149950);
        double r149952 = cbrt(r149951);
        double r149953 = cbrt(r149952);
        double r149954 = r149953 * r149953;
        double r149955 = r149949 / r149954;
        double r149956 = th;
        double r149957 = cos(r149956);
        double r149958 = r149957 / r149952;
        double r149959 = a1;
        double r149960 = a2;
        double r149961 = r149960 * r149960;
        double r149962 = fma(r149959, r149959, r149961);
        double r149963 = r149962 / r149952;
        double r149964 = r149958 * r149963;
        double r149965 = r149964 / r149953;
        double r149966 = r149955 * r149965;
        return r149966;
}

Error

Bits error versus a1

Bits error versus a2

Bits error versus th

Derivation

  1. Initial program 0.5

    \[\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\]
  2. Simplified0.5

    \[\leadsto \color{blue}{\frac{\cos th \cdot \mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\sqrt{2}}}\]
  3. Using strategy rm
  4. Applied add-cube-cbrt0.5

    \[\leadsto \frac{\cos th \cdot \mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\color{blue}{\left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \sqrt[3]{\sqrt{2}}}}\]
  5. Applied associate-/r*0.5

    \[\leadsto \color{blue}{\frac{\frac{\cos th \cdot \mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}}{\sqrt[3]{\sqrt{2}}}}\]
  6. Using strategy rm
  7. Applied add-cube-cbrt0.5

    \[\leadsto \frac{\frac{\cos th \cdot \mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}}{\color{blue}{\left(\sqrt[3]{\sqrt[3]{\sqrt{2}}} \cdot \sqrt[3]{\sqrt[3]{\sqrt{2}}}\right) \cdot \sqrt[3]{\sqrt[3]{\sqrt{2}}}}}\]
  8. Applied *-un-lft-identity0.5

    \[\leadsto \frac{\color{blue}{1 \cdot \frac{\cos th \cdot \mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}}}{\left(\sqrt[3]{\sqrt[3]{\sqrt{2}}} \cdot \sqrt[3]{\sqrt[3]{\sqrt{2}}}\right) \cdot \sqrt[3]{\sqrt[3]{\sqrt{2}}}}\]
  9. Applied times-frac0.5

    \[\leadsto \color{blue}{\frac{1}{\sqrt[3]{\sqrt[3]{\sqrt{2}}} \cdot \sqrt[3]{\sqrt[3]{\sqrt{2}}}} \cdot \frac{\frac{\cos th \cdot \mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}}{\sqrt[3]{\sqrt[3]{\sqrt{2}}}}}\]
  10. Using strategy rm
  11. Applied times-frac0.5

    \[\leadsto \frac{1}{\sqrt[3]{\sqrt[3]{\sqrt{2}}} \cdot \sqrt[3]{\sqrt[3]{\sqrt{2}}}} \cdot \frac{\color{blue}{\frac{\cos th}{\sqrt[3]{\sqrt{2}}} \cdot \frac{\mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\sqrt[3]{\sqrt{2}}}}}{\sqrt[3]{\sqrt[3]{\sqrt{2}}}}\]
  12. Final simplification0.5

    \[\leadsto \frac{1}{\sqrt[3]{\sqrt[3]{\sqrt{2}}} \cdot \sqrt[3]{\sqrt[3]{\sqrt{2}}}} \cdot \frac{\frac{\cos th}{\sqrt[3]{\sqrt{2}}} \cdot \frac{\mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\sqrt[3]{\sqrt{2}}}}{\sqrt[3]{\sqrt[3]{\sqrt{2}}}}\]

Reproduce

herbie shell --seed 2019347 +o rules:numerics
(FPCore (a1 a2 th)
  :name "Migdal et al, Equation (64)"
  :precision binary64
  (+ (* (/ (cos th) (sqrt 2)) (* a1 a1)) (* (/ (cos th) (sqrt 2)) (* a2 a2))))