Average Error: 0.5 → 0.5
Time: 9.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)\]
\[\frac{\left(\cos th \cdot \sqrt{a1 \cdot a1 + a2 \cdot a2}\right) \cdot \sqrt{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)
\frac{\left(\cos th \cdot \sqrt{a1 \cdot a1 + a2 \cdot a2}\right) \cdot \sqrt{a1 \cdot a1 + a2 \cdot a2}}{\sqrt{2}}
double f(double a1, double a2, double th) {
        double r99449 = th;
        double r99450 = cos(r99449);
        double r99451 = 2.0;
        double r99452 = sqrt(r99451);
        double r99453 = r99450 / r99452;
        double r99454 = a1;
        double r99455 = r99454 * r99454;
        double r99456 = r99453 * r99455;
        double r99457 = a2;
        double r99458 = r99457 * r99457;
        double r99459 = r99453 * r99458;
        double r99460 = r99456 + r99459;
        return r99460;
}

double f(double a1, double a2, double th) {
        double r99461 = th;
        double r99462 = cos(r99461);
        double r99463 = a1;
        double r99464 = r99463 * r99463;
        double r99465 = a2;
        double r99466 = r99465 * r99465;
        double r99467 = r99464 + r99466;
        double r99468 = sqrt(r99467);
        double r99469 = r99462 * r99468;
        double r99470 = r99469 * r99468;
        double r99471 = 2.0;
        double r99472 = sqrt(r99471);
        double r99473 = r99470 / r99472;
        return r99473;
}

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 *-un-lft-identity0.5

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

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

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

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

    \[\leadsto \frac{1}{1} \cdot \color{blue}{\frac{\cos th \cdot \left(a1 \cdot a1 + a2 \cdot a2\right)}{\sqrt{2}}}\]
  9. Using strategy rm
  10. Applied add-sqr-sqrt0.5

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

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

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

Reproduce

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