Average Error: 0.5 → 0.5
Time: 20.0s
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{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th \cdot {a2}^{2}}{\sqrt{2}}\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th \cdot {a2}^{2}}{\sqrt{2}}
double f(double a1, double a2, double th) {
        double r75777 = th;
        double r75778 = cos(r75777);
        double r75779 = 2.0;
        double r75780 = sqrt(r75779);
        double r75781 = r75778 / r75780;
        double r75782 = a1;
        double r75783 = r75782 * r75782;
        double r75784 = r75781 * r75783;
        double r75785 = a2;
        double r75786 = r75785 * r75785;
        double r75787 = r75781 * r75786;
        double r75788 = r75784 + r75787;
        return r75788;
}

double f(double a1, double a2, double th) {
        double r75789 = th;
        double r75790 = cos(r75789);
        double r75791 = 2.0;
        double r75792 = sqrt(r75791);
        double r75793 = r75790 / r75792;
        double r75794 = a1;
        double r75795 = r75794 * r75794;
        double r75796 = r75793 * r75795;
        double r75797 = a2;
        double r75798 = 2.0;
        double r75799 = pow(r75797, r75798);
        double r75800 = r75790 * r75799;
        double r75801 = r75800 / r75792;
        double r75802 = r75796 + r75801;
        return r75802;
}

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.6

    \[\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}^{2}}{\sqrt{2}}}\]
  6. Using strategy rm
  7. Applied associate-*r/0.5

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

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

Reproduce

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