Average Error: 0.5 → 0.5
Time: 21.4s
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{\frac{a2 \cdot a2 + a1 \cdot a1}{\sqrt{\sqrt{2}}}}{\sqrt{\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{\frac{a2 \cdot a2 + a1 \cdot a1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}}
double f(double a1, double a2, double th) {
        double r67166 = th;
        double r67167 = cos(r67166);
        double r67168 = 2.0;
        double r67169 = sqrt(r67168);
        double r67170 = r67167 / r67169;
        double r67171 = a1;
        double r67172 = r67171 * r67171;
        double r67173 = r67170 * r67172;
        double r67174 = a2;
        double r67175 = r67174 * r67174;
        double r67176 = r67170 * r67175;
        double r67177 = r67173 + r67176;
        return r67177;
}

double f(double a1, double a2, double th) {
        double r67178 = th;
        double r67179 = cos(r67178);
        double r67180 = a2;
        double r67181 = r67180 * r67180;
        double r67182 = a1;
        double r67183 = r67182 * r67182;
        double r67184 = r67181 + r67183;
        double r67185 = 2.0;
        double r67186 = sqrt(r67185);
        double r67187 = sqrt(r67186);
        double r67188 = r67184 / r67187;
        double r67189 = r67188 / r67187;
        double r67190 = r67179 * r67189;
        return r67190;
}

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.5

    \[\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.5

    \[\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{a2 \cdot a2 + a1 \cdot a1}{\sqrt{2}}}\]
  7. Using strategy rm
  8. Applied add-sqr-sqrt0.5

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

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

    \[\leadsto \cos th \cdot \color{blue}{\frac{\frac{a2 \cdot a2 + a1 \cdot a1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}}}\]
  11. Final simplification0.5

    \[\leadsto \cos th \cdot \frac{\frac{a2 \cdot a2 + a1 \cdot a1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}}\]

Reproduce

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