Average Error: 0.5 → 0.5
Time: 11.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)\]
\[\frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} \cdot \left(a1 \cdot a1\right) + \left(\cos th \cdot \frac{a2}{\sqrt{2}}\right) \cdot a2\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} \cdot \left(a1 \cdot a1\right) + \left(\cos th \cdot \frac{a2}{\sqrt{2}}\right) \cdot a2
double f(double a1, double a2, double th) {
        double r73522 = th;
        double r73523 = cos(r73522);
        double r73524 = 2.0;
        double r73525 = sqrt(r73524);
        double r73526 = r73523 / r73525;
        double r73527 = a1;
        double r73528 = r73527 * r73527;
        double r73529 = r73526 * r73528;
        double r73530 = a2;
        double r73531 = r73530 * r73530;
        double r73532 = r73526 * r73531;
        double r73533 = r73529 + r73532;
        return r73533;
}

double f(double a1, double a2, double th) {
        double r73534 = th;
        double r73535 = cos(r73534);
        double r73536 = 2.0;
        double r73537 = sqrt(r73536);
        double r73538 = sqrt(r73537);
        double r73539 = r73535 / r73538;
        double r73540 = r73539 / r73538;
        double r73541 = a1;
        double r73542 = r73541 * r73541;
        double r73543 = r73540 * r73542;
        double r73544 = a2;
        double r73545 = r73544 / r73537;
        double r73546 = r73535 * r73545;
        double r73547 = r73546 * r73544;
        double r73548 = r73543 + r73547;
        return r73548;
}

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 associate-*r*0.5

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

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

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

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

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

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

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

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

Reproduce

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