Average Error: 0.5 → 0.5
Time: 7.7s
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(\frac{\cos th}{\sqrt{2}} \cdot \sqrt{a1 \cdot a1 + a2 \cdot a2}\right) \cdot \sqrt{a1 \cdot a1 + a2 \cdot a2}\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\left(\frac{\cos th}{\sqrt{2}} \cdot \sqrt{a1 \cdot a1 + a2 \cdot a2}\right) \cdot \sqrt{a1 \cdot a1 + a2 \cdot a2}
double f(double a1, double a2, double th) {
        double r106651 = th;
        double r106652 = cos(r106651);
        double r106653 = 2.0;
        double r106654 = sqrt(r106653);
        double r106655 = r106652 / r106654;
        double r106656 = a1;
        double r106657 = r106656 * r106656;
        double r106658 = r106655 * r106657;
        double r106659 = a2;
        double r106660 = r106659 * r106659;
        double r106661 = r106655 * r106660;
        double r106662 = r106658 + r106661;
        return r106662;
}

double f(double a1, double a2, double th) {
        double r106663 = th;
        double r106664 = cos(r106663);
        double r106665 = 2.0;
        double r106666 = sqrt(r106665);
        double r106667 = r106664 / r106666;
        double r106668 = a1;
        double r106669 = r106668 * r106668;
        double r106670 = a2;
        double r106671 = r106670 * r106670;
        double r106672 = r106669 + r106671;
        double r106673 = sqrt(r106672);
        double r106674 = r106667 * r106673;
        double r106675 = r106674 * r106673;
        return r106675;
}

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

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

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

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

Reproduce

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