Average Error: 0.5 → 0.4
Time: 26.3s
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{\sqrt[3]{\frac{1}{2}}}{\sqrt[3]{\left|\sqrt[3]{2}\right|}} \cdot \frac{\mathsf{fma}\left(a1, a1, a2 \cdot a2\right) \cdot \cos th}{\sqrt[3]{\sqrt{\sqrt[3]{2}}}}\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\frac{\sqrt[3]{\frac{1}{2}}}{\sqrt[3]{\left|\sqrt[3]{2}\right|}} \cdot \frac{\mathsf{fma}\left(a1, a1, a2 \cdot a2\right) \cdot \cos th}{\sqrt[3]{\sqrt{\sqrt[3]{2}}}}
double f(double a1, double a2, double th) {
        double r65168 = th;
        double r65169 = cos(r65168);
        double r65170 = 2.0;
        double r65171 = sqrt(r65170);
        double r65172 = r65169 / r65171;
        double r65173 = a1;
        double r65174 = r65173 * r65173;
        double r65175 = r65172 * r65174;
        double r65176 = a2;
        double r65177 = r65176 * r65176;
        double r65178 = r65172 * r65177;
        double r65179 = r65175 + r65178;
        return r65179;
}

double f(double a1, double a2, double th) {
        double r65180 = 1.0;
        double r65181 = 2.0;
        double r65182 = r65180 / r65181;
        double r65183 = cbrt(r65182);
        double r65184 = cbrt(r65181);
        double r65185 = fabs(r65184);
        double r65186 = cbrt(r65185);
        double r65187 = r65183 / r65186;
        double r65188 = a1;
        double r65189 = a2;
        double r65190 = r65189 * r65189;
        double r65191 = fma(r65188, r65188, r65190);
        double r65192 = th;
        double r65193 = cos(r65192);
        double r65194 = r65191 * r65193;
        double r65195 = sqrt(r65184);
        double r65196 = cbrt(r65195);
        double r65197 = r65194 / r65196;
        double r65198 = r65187 * r65197;
        return r65198;
}

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. Taylor expanded around inf 0.6

    \[\leadsto \frac{\color{blue}{\left({a1}^{2} \cdot \cos th\right) \cdot {\left(\frac{1}{{\left(\sqrt{2}\right)}^{2}}\right)}^{\frac{1}{3}} + {\left(\frac{1}{{\left(\sqrt{2}\right)}^{2}}\right)}^{\frac{1}{3}} \cdot \left(\cos th \cdot {a2}^{2}\right)}}{\sqrt[3]{\sqrt{2}}}\]
  7. Simplified0.4

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

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

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

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

    \[\leadsto \color{blue}{\frac{\sqrt[3]{\frac{1}{2}}}{\sqrt[3]{\sqrt{\sqrt[3]{2} \cdot \sqrt[3]{2}}}} \cdot \frac{\mathsf{fma}\left(a1, a1, a2 \cdot a2\right) \cdot \cos th}{\sqrt[3]{\sqrt{\sqrt[3]{2}}}}}\]
  13. Simplified0.4

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

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

Reproduce

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