Average Error: 0.5 → 0.5
Time: 8.4s
Precision: 64
\[\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\]
\[\cos th \cdot \frac{\sqrt{{a1}^{2}}}{\frac{\sqrt{2}}{\left|a1\right|}} + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\cos th \cdot \frac{\sqrt{{a1}^{2}}}{\frac{\sqrt{2}}{\left|a1\right|}} + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
double f(double a1, double a2, double th) {
        double r103912 = th;
        double r103913 = cos(r103912);
        double r103914 = 2.0;
        double r103915 = sqrt(r103914);
        double r103916 = r103913 / r103915;
        double r103917 = a1;
        double r103918 = r103917 * r103917;
        double r103919 = r103916 * r103918;
        double r103920 = a2;
        double r103921 = r103920 * r103920;
        double r103922 = r103916 * r103921;
        double r103923 = r103919 + r103922;
        return r103923;
}

double f(double a1, double a2, double th) {
        double r103924 = th;
        double r103925 = cos(r103924);
        double r103926 = a1;
        double r103927 = 2.0;
        double r103928 = pow(r103926, r103927);
        double r103929 = sqrt(r103928);
        double r103930 = 2.0;
        double r103931 = sqrt(r103930);
        double r103932 = fabs(r103926);
        double r103933 = r103931 / r103932;
        double r103934 = r103929 / r103933;
        double r103935 = r103925 * r103934;
        double r103936 = r103925 / r103931;
        double r103937 = a2;
        double r103938 = r103937 * r103937;
        double r103939 = r103936 * r103938;
        double r103940 = r103935 + r103939;
        return r103940;
}

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. Using strategy rm
  3. Applied div-inv0.5

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

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

    \[\leadsto \cos th \cdot \color{blue}{\frac{{a1}^{2}}{\sqrt{2}}} + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\]
  6. Using strategy rm
  7. Applied add-sqr-sqrt0.5

    \[\leadsto \cos th \cdot \frac{\color{blue}{\sqrt{{a1}^{2}} \cdot \sqrt{{a1}^{2}}}}{\sqrt{2}} + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\]
  8. Applied associate-/l*0.5

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

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

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

Reproduce

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