Average Error: 0.5 → 0.5
Time: 57.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)\]
\[\left(a2 \cdot a2\right) \cdot \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} + \left(a1 \cdot a1\right) \cdot \frac{\cos th}{\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(a2 \cdot a2\right) \cdot \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} + \left(a1 \cdot a1\right) \cdot \frac{\cos th}{\sqrt{2}}
double f(double a1, double a2, double th) {
        double r5877906 = th;
        double r5877907 = cos(r5877906);
        double r5877908 = 2.0;
        double r5877909 = sqrt(r5877908);
        double r5877910 = r5877907 / r5877909;
        double r5877911 = a1;
        double r5877912 = r5877911 * r5877911;
        double r5877913 = r5877910 * r5877912;
        double r5877914 = a2;
        double r5877915 = r5877914 * r5877914;
        double r5877916 = r5877910 * r5877915;
        double r5877917 = r5877913 + r5877916;
        return r5877917;
}

double f(double a1, double a2, double th) {
        double r5877918 = a2;
        double r5877919 = r5877918 * r5877918;
        double r5877920 = th;
        double r5877921 = cos(r5877920);
        double r5877922 = 2.0;
        double r5877923 = sqrt(r5877922);
        double r5877924 = sqrt(r5877923);
        double r5877925 = r5877921 / r5877924;
        double r5877926 = r5877925 / r5877924;
        double r5877927 = r5877919 * r5877926;
        double r5877928 = a1;
        double r5877929 = r5877928 * r5877928;
        double r5877930 = r5877921 / r5877923;
        double r5877931 = r5877929 * r5877930;
        double r5877932 = r5877927 + r5877931;
        return r5877932;
}

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

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

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

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

Reproduce

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