Average Error: 0.5 → 0.5
Time: 8.1s
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 r98337 = th;
        double r98338 = cos(r98337);
        double r98339 = 2.0;
        double r98340 = sqrt(r98339);
        double r98341 = r98338 / r98340;
        double r98342 = a1;
        double r98343 = r98342 * r98342;
        double r98344 = r98341 * r98343;
        double r98345 = a2;
        double r98346 = r98345 * r98345;
        double r98347 = r98341 * r98346;
        double r98348 = r98344 + r98347;
        return r98348;
}

double f(double a1, double a2, double th) {
        double r98349 = th;
        double r98350 = cos(r98349);
        double r98351 = a1;
        double r98352 = r98351 * r98351;
        double r98353 = a2;
        double r98354 = r98353 * r98353;
        double r98355 = r98352 + r98354;
        double r98356 = 2.0;
        double r98357 = sqrt(r98356);
        double r98358 = r98355 / r98357;
        double r98359 = r98350 * r98358;
        return r98359;
}

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))))