Average Error: 0.5 → 0.5
Time: 7.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)\]
\[\left(\cos th \cdot \frac{\sqrt{a1 \cdot a1 + a2 \cdot a2}}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}\right) \cdot \frac{\sqrt{a1 \cdot a1 + a2 \cdot a2}}{\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)
\left(\cos th \cdot \frac{\sqrt{a1 \cdot a1 + a2 \cdot a2}}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}\right) \cdot \frac{\sqrt{a1 \cdot a1 + a2 \cdot a2}}{\sqrt[3]{\sqrt{2}}}
double f(double a1, double a2, double th) {
        double r90902 = th;
        double r90903 = cos(r90902);
        double r90904 = 2.0;
        double r90905 = sqrt(r90904);
        double r90906 = r90903 / r90905;
        double r90907 = a1;
        double r90908 = r90907 * r90907;
        double r90909 = r90906 * r90908;
        double r90910 = a2;
        double r90911 = r90910 * r90910;
        double r90912 = r90906 * r90911;
        double r90913 = r90909 + r90912;
        return r90913;
}

double f(double a1, double a2, double th) {
        double r90914 = th;
        double r90915 = cos(r90914);
        double r90916 = a1;
        double r90917 = r90916 * r90916;
        double r90918 = a2;
        double r90919 = r90918 * r90918;
        double r90920 = r90917 + r90919;
        double r90921 = sqrt(r90920);
        double r90922 = 2.0;
        double r90923 = sqrt(r90922);
        double r90924 = cbrt(r90923);
        double r90925 = r90924 * r90924;
        double r90926 = r90921 / r90925;
        double r90927 = r90915 * r90926;
        double r90928 = r90921 / r90924;
        double r90929 = r90927 * r90928;
        return r90929;
}

Error

Bits error versus a1

Bits error versus a2

Bits error versus th

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

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}{\sqrt{2}} \cdot \left(a1 \cdot a1 + a2 \cdot a2\right)}\]
  3. Using strategy rm
  4. Applied div-inv0.6

    \[\leadsto \color{blue}{\left(\cos th \cdot \frac{1}{\sqrt{2}}\right)} \cdot \left(a1 \cdot a1 + a2 \cdot a2\right)\]
  5. Applied associate-*l*0.6

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

    \[\leadsto \cos th \cdot \color{blue}{\frac{a1 \cdot a1 + a2 \cdot a2}{\sqrt{2}}}\]
  7. Using strategy rm
  8. Applied add-cube-cbrt0.5

    \[\leadsto \cos th \cdot \frac{a1 \cdot a1 + a2 \cdot a2}{\color{blue}{\left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \sqrt[3]{\sqrt{2}}}}\]
  9. Applied add-sqr-sqrt0.5

    \[\leadsto \cos th \cdot \frac{\color{blue}{\sqrt{a1 \cdot a1 + a2 \cdot a2} \cdot \sqrt{a1 \cdot a1 + a2 \cdot a2}}}{\left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \sqrt[3]{\sqrt{2}}}\]
  10. Applied times-frac0.5

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

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

    \[\leadsto \left(\cos th \cdot \frac{\sqrt{a1 \cdot a1 + a2 \cdot a2}}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}\right) \cdot \frac{\sqrt{a1 \cdot a1 + a2 \cdot a2}}{\sqrt[3]{\sqrt{2}}}\]

Reproduce

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