Average Error: 0.5 → 0.5
Time: 22.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)\]
\[\frac{a2 \cdot a2}{\sqrt{2}} \cdot \cos th + \left(a1 \cdot \frac{a1}{\sqrt{2}}\right) \cdot \cos th\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\frac{a2 \cdot a2}{\sqrt{2}} \cdot \cos th + \left(a1 \cdot \frac{a1}{\sqrt{2}}\right) \cdot \cos th
double f(double a1, double a2, double th) {
        double r1921996 = th;
        double r1921997 = cos(r1921996);
        double r1921998 = 2.0;
        double r1921999 = sqrt(r1921998);
        double r1922000 = r1921997 / r1921999;
        double r1922001 = a1;
        double r1922002 = r1922001 * r1922001;
        double r1922003 = r1922000 * r1922002;
        double r1922004 = a2;
        double r1922005 = r1922004 * r1922004;
        double r1922006 = r1922000 * r1922005;
        double r1922007 = r1922003 + r1922006;
        return r1922007;
}

double f(double a1, double a2, double th) {
        double r1922008 = a2;
        double r1922009 = r1922008 * r1922008;
        double r1922010 = 2.0;
        double r1922011 = sqrt(r1922010);
        double r1922012 = r1922009 / r1922011;
        double r1922013 = th;
        double r1922014 = cos(r1922013);
        double r1922015 = r1922012 * r1922014;
        double r1922016 = a1;
        double r1922017 = r1922016 / r1922011;
        double r1922018 = r1922016 * r1922017;
        double r1922019 = r1922018 * r1922014;
        double r1922020 = r1922015 + r1922019;
        return r1922020;
}

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 \frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \color{blue}{\left(\cos th \cdot \frac{1}{\sqrt{2}}\right)} \cdot \left(a2 \cdot a2\right)\]
  4. Applied associate-*l*0.5

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

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

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

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

    \[\leadsto \cos th \cdot \color{blue}{\frac{a1}{\frac{\sqrt{2}}{a1}}} + \cos th \cdot \frac{a2 \cdot a2}{\sqrt{2}}\]
  10. Using strategy rm
  11. Applied associate-/r/0.5

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

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

Reproduce

herbie shell --seed 2019172 +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))))