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 r59090 = th;
        double r59091 = cos(r59090);
        double r59092 = 2.0;
        double r59093 = sqrt(r59092);
        double r59094 = r59091 / r59093;
        double r59095 = a1;
        double r59096 = r59095 * r59095;
        double r59097 = r59094 * r59096;
        double r59098 = a2;
        double r59099 = r59098 * r59098;
        double r59100 = r59094 * r59099;
        double r59101 = r59097 + r59100;
        return r59101;
}

double f(double a1, double a2, double th) {
        double r59102 = th;
        double r59103 = cos(r59102);
        double r59104 = a1;
        double r59105 = r59104 * r59104;
        double r59106 = a2;
        double r59107 = r59106 * r59106;
        double r59108 = r59105 + r59107;
        double r59109 = sqrt(r59108);
        double r59110 = r59103 * r59109;
        double r59111 = r59110 * r59109;
        double r59112 = 2.0;
        double r59113 = sqrt(r59112);
        double r59114 = r59111 / r59113;
        return r59114;
}

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 \color{blue}{\left(1 \cdot \frac{\cos th}{\sqrt{2}}\right)} \cdot \left(a1 \cdot a1 + a2 \cdot a2\right)\]
  5. Applied associate-*l*0.5

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

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

    \[\leadsto 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}}\]
  9. Applied associate-*r*0.5

    \[\leadsto 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}}\]
  10. 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))))