Average Error: 0.5 → 0.5
Time: 53.9s
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(a2 \cdot a2\right) \cdot \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} + \frac{a1 \cdot \cos th}{\sqrt{2}} \cdot a1\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\left(a2 \cdot a2\right) \cdot \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} + \frac{a1 \cdot \cos th}{\sqrt{2}} \cdot a1
double f(double a1, double a2, double th) {
        double r6950933 = th;
        double r6950934 = cos(r6950933);
        double r6950935 = 2.0;
        double r6950936 = sqrt(r6950935);
        double r6950937 = r6950934 / r6950936;
        double r6950938 = a1;
        double r6950939 = r6950938 * r6950938;
        double r6950940 = r6950937 * r6950939;
        double r6950941 = a2;
        double r6950942 = r6950941 * r6950941;
        double r6950943 = r6950937 * r6950942;
        double r6950944 = r6950940 + r6950943;
        return r6950944;
}

double f(double a1, double a2, double th) {
        double r6950945 = a2;
        double r6950946 = r6950945 * r6950945;
        double r6950947 = th;
        double r6950948 = cos(r6950947);
        double r6950949 = 2.0;
        double r6950950 = sqrt(r6950949);
        double r6950951 = sqrt(r6950950);
        double r6950952 = r6950948 / r6950951;
        double r6950953 = r6950952 / r6950951;
        double r6950954 = r6950946 * r6950953;
        double r6950955 = a1;
        double r6950956 = r6950955 * r6950948;
        double r6950957 = r6950956 / r6950950;
        double r6950958 = r6950957 * r6950955;
        double r6950959 = r6950954 + r6950958;
        return r6950959;
}

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

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

    \[\leadsto \color{blue}{\frac{\cos th \cdot a1}{\frac{\sqrt{2}}{a1}}} + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\]
  4. Using strategy rm
  5. Applied associate-/r/0.5

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

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

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

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

Reproduce

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