Average Error: 0.5 → 0.3
Time: 31.6s
Precision: 64
\[\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\]
\[\sqrt{a2 \cdot a2 + a1 \cdot a1} \cdot \left(\sqrt{\frac{a2 \cdot a2 + a1 \cdot a1}{2}} \cdot \cos th\right)\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\sqrt{a2 \cdot a2 + a1 \cdot a1} \cdot \left(\sqrt{\frac{a2 \cdot a2 + a1 \cdot a1}{2}} \cdot \cos th\right)
double f(double a1, double a2, double th) {
        double r2455337 = th;
        double r2455338 = cos(r2455337);
        double r2455339 = 2.0;
        double r2455340 = sqrt(r2455339);
        double r2455341 = r2455338 / r2455340;
        double r2455342 = a1;
        double r2455343 = r2455342 * r2455342;
        double r2455344 = r2455341 * r2455343;
        double r2455345 = a2;
        double r2455346 = r2455345 * r2455345;
        double r2455347 = r2455341 * r2455346;
        double r2455348 = r2455344 + r2455347;
        return r2455348;
}

double f(double a1, double a2, double th) {
        double r2455349 = a2;
        double r2455350 = r2455349 * r2455349;
        double r2455351 = a1;
        double r2455352 = r2455351 * r2455351;
        double r2455353 = r2455350 + r2455352;
        double r2455354 = sqrt(r2455353);
        double r2455355 = 2.0;
        double r2455356 = r2455353 / r2455355;
        double r2455357 = sqrt(r2455356);
        double r2455358 = th;
        double r2455359 = cos(r2455358);
        double r2455360 = r2455357 * r2455359;
        double r2455361 = r2455354 * r2455360;
        return r2455361;
}

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

    \[\leadsto \color{blue}{\frac{a1 \cdot a1 + a2 \cdot a2}{\frac{\sqrt{2}}{\cos th}}}\]
  5. Using strategy rm
  6. Applied div-inv0.5

    \[\leadsto \frac{a1 \cdot a1 + a2 \cdot a2}{\color{blue}{\sqrt{2} \cdot \frac{1}{\cos th}}}\]
  7. Applied add-sqr-sqrt0.5

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

    \[\leadsto \color{blue}{\frac{\sqrt{a1 \cdot a1 + a2 \cdot a2}}{\sqrt{2}} \cdot \frac{\sqrt{a1 \cdot a1 + a2 \cdot a2}}{\frac{1}{\cos th}}}\]
  9. Simplified0.5

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

    \[\leadsto \color{blue}{\sqrt{\frac{a1 \cdot a1 + a2 \cdot a2}{2}}} \cdot \left(\cos th \cdot \sqrt{a1 \cdot a1 + a2 \cdot a2}\right)\]
  12. Using strategy rm
  13. Applied associate-*r*0.3

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

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

Reproduce

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