Average Error: 0.5 → 0.5
Time: 38.3s
Precision: 64
\[\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\]
\[a2 \cdot \left(a2 \cdot \frac{\cos th}{\sqrt{2}}\right) + \frac{a1}{\frac{\sqrt{2}}{a1}} \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)
a2 \cdot \left(a2 \cdot \frac{\cos th}{\sqrt{2}}\right) + \frac{a1}{\frac{\sqrt{2}}{a1}} \cdot \cos th
double f(double a1, double a2, double th) {
        double r1398737 = th;
        double r1398738 = cos(r1398737);
        double r1398739 = 2.0;
        double r1398740 = sqrt(r1398739);
        double r1398741 = r1398738 / r1398740;
        double r1398742 = a1;
        double r1398743 = r1398742 * r1398742;
        double r1398744 = r1398741 * r1398743;
        double r1398745 = a2;
        double r1398746 = r1398745 * r1398745;
        double r1398747 = r1398741 * r1398746;
        double r1398748 = r1398744 + r1398747;
        return r1398748;
}

double f(double a1, double a2, double th) {
        double r1398749 = a2;
        double r1398750 = th;
        double r1398751 = cos(r1398750);
        double r1398752 = 2.0;
        double r1398753 = sqrt(r1398752);
        double r1398754 = r1398751 / r1398753;
        double r1398755 = r1398749 * r1398754;
        double r1398756 = r1398749 * r1398755;
        double r1398757 = a1;
        double r1398758 = r1398753 / r1398757;
        double r1398759 = r1398757 / r1398758;
        double r1398760 = r1398759 * r1398751;
        double r1398761 = r1398756 + r1398760;
        return r1398761;
}

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}{\frac{\sqrt{2}}{a1}}} + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\]
  6. Using strategy rm
  7. Applied associate-*r*0.5

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

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

Reproduce

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