Average Error: 0.5 → 0.4
Time: 28.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{\frac{\mathsf{fma}\left(a2, a2, a1 \cdot a1\right)}{\sqrt{\sqrt{\sqrt{2}}}} \cdot \cos th}{\sqrt{\sqrt{\sqrt{2}}} \cdot \sqrt{\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{\mathsf{fma}\left(a2, a2, a1 \cdot a1\right)}{\sqrt{\sqrt{\sqrt{2}}}} \cdot \cos th}{\sqrt{\sqrt{\sqrt{2}}} \cdot \sqrt{\sqrt{2}}}
double f(double a1, double a2, double th) {
        double r85631 = th;
        double r85632 = cos(r85631);
        double r85633 = 2.0;
        double r85634 = sqrt(r85633);
        double r85635 = r85632 / r85634;
        double r85636 = a1;
        double r85637 = r85636 * r85636;
        double r85638 = r85635 * r85637;
        double r85639 = a2;
        double r85640 = r85639 * r85639;
        double r85641 = r85635 * r85640;
        double r85642 = r85638 + r85641;
        return r85642;
}

double f(double a1, double a2, double th) {
        double r85643 = a2;
        double r85644 = a1;
        double r85645 = r85644 * r85644;
        double r85646 = fma(r85643, r85643, r85645);
        double r85647 = 2.0;
        double r85648 = sqrt(r85647);
        double r85649 = sqrt(r85648);
        double r85650 = sqrt(r85649);
        double r85651 = r85646 / r85650;
        double r85652 = th;
        double r85653 = cos(r85652);
        double r85654 = r85651 * r85653;
        double r85655 = r85650 * r85649;
        double r85656 = r85654 / r85655;
        return r85656;
}

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}{\cos th \cdot \frac{\mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\sqrt{2}}}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt0.5

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

    \[\leadsto \cos th \cdot \frac{\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 \cos th \cdot \color{blue}{\frac{\frac{\mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}}}\]
  7. Simplified0.5

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

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

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

    \[\leadsto \cos th \cdot \frac{\frac{\mathsf{fma}\left(a2, a2, a1 \cdot a1\right)}{\sqrt{\sqrt{2}}}}{\color{blue}{\sqrt{\sqrt{1}} \cdot \sqrt{\sqrt{2}}}}\]
  12. Applied add-sqr-sqrt0.5

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

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

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

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

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

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

    \[\leadsto \cos th \cdot \left(\color{blue}{\frac{1}{\sqrt{\sqrt{\sqrt{2}}}}} \cdot \frac{\frac{\mathsf{fma}\left(a2, a2, a1 \cdot a1\right)}{\sqrt{\sqrt{\sqrt{2}}}}}{\sqrt{\sqrt{2}}}\right)\]
  19. Using strategy rm
  20. Applied frac-times0.4

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

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

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

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

Reproduce

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