Average Error: 0.5 → 0.5
Time: 7.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)\]
\[\cos th \cdot \frac{a1 \cdot a1 + a2 \cdot a2}{\sqrt{2}}\]
\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{a1 \cdot a1 + a2 \cdot a2}{\sqrt{2}}
double f(double a1, double a2, double th) {
        double r100754 = th;
        double r100755 = cos(r100754);
        double r100756 = 2.0;
        double r100757 = sqrt(r100756);
        double r100758 = r100755 / r100757;
        double r100759 = a1;
        double r100760 = r100759 * r100759;
        double r100761 = r100758 * r100760;
        double r100762 = a2;
        double r100763 = r100762 * r100762;
        double r100764 = r100758 * r100763;
        double r100765 = r100761 + r100764;
        return r100765;
}

double f(double a1, double a2, double th) {
        double r100766 = th;
        double r100767 = cos(r100766);
        double r100768 = a1;
        double r100769 = r100768 * r100768;
        double r100770 = a2;
        double r100771 = r100770 * r100770;
        double r100772 = r100769 + r100771;
        double r100773 = 2.0;
        double r100774 = sqrt(r100773);
        double r100775 = r100772 / r100774;
        double r100776 = r100767 * r100775;
        return r100776;
}

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. Simplified0.5

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

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

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

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

    \[\leadsto \cos th \cdot \frac{a1 \cdot a1 + a2 \cdot a2}{\sqrt{2}}\]

Reproduce

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