Average Error: 0.5 → 0.5
Time: 13.6s
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{\frac{\frac{\cos th \cdot \mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\left|\sqrt[3]{\sqrt{2}}\right| \cdot \sqrt{\sqrt{2}}}}{\sqrt{\sqrt[3]{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}}}}{\sqrt{\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{\frac{\frac{\cos th \cdot \mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\left|\sqrt[3]{\sqrt{2}}\right| \cdot \sqrt{\sqrt{2}}}}{\sqrt{\sqrt[3]{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}}}}{\sqrt{\sqrt[3]{\sqrt[3]{\sqrt{2}}}}}
double f(double a1, double a2, double th) {
        double r149270 = th;
        double r149271 = cos(r149270);
        double r149272 = 2.0;
        double r149273 = sqrt(r149272);
        double r149274 = r149271 / r149273;
        double r149275 = a1;
        double r149276 = r149275 * r149275;
        double r149277 = r149274 * r149276;
        double r149278 = a2;
        double r149279 = r149278 * r149278;
        double r149280 = r149274 * r149279;
        double r149281 = r149277 + r149280;
        return r149281;
}

double f(double a1, double a2, double th) {
        double r149282 = th;
        double r149283 = cos(r149282);
        double r149284 = a1;
        double r149285 = a2;
        double r149286 = r149285 * r149285;
        double r149287 = fma(r149284, r149284, r149286);
        double r149288 = r149283 * r149287;
        double r149289 = 2.0;
        double r149290 = sqrt(r149289);
        double r149291 = cbrt(r149290);
        double r149292 = fabs(r149291);
        double r149293 = sqrt(r149290);
        double r149294 = r149292 * r149293;
        double r149295 = r149288 / r149294;
        double r149296 = r149291 * r149291;
        double r149297 = cbrt(r149296);
        double r149298 = sqrt(r149297);
        double r149299 = r149295 / r149298;
        double r149300 = cbrt(r149291);
        double r149301 = sqrt(r149300);
        double r149302 = r149299 / r149301;
        return r149302;
}

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-sqr-sqrt0.5

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

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

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

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

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

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

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

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

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

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

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

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

Reproduce

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