Average Error: 0.5 → 0.5
Time: 1.1m
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{1}{\frac{\sqrt{\sqrt{2}}}{\cos th}}}{\sqrt{\sqrt{2}}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th \cdot \left(a2 \cdot a2\right)}{\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{\frac{1}{\frac{\sqrt{\sqrt{2}}}{\cos th}}}{\sqrt{\sqrt{2}}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th \cdot \left(a2 \cdot a2\right)}{\sqrt{2}}
double f(double a1, double a2, double th) {
        double r2131165 = th;
        double r2131166 = cos(r2131165);
        double r2131167 = 2.0;
        double r2131168 = sqrt(r2131167);
        double r2131169 = r2131166 / r2131168;
        double r2131170 = a1;
        double r2131171 = r2131170 * r2131170;
        double r2131172 = r2131169 * r2131171;
        double r2131173 = a2;
        double r2131174 = r2131173 * r2131173;
        double r2131175 = r2131169 * r2131174;
        double r2131176 = r2131172 + r2131175;
        return r2131176;
}

double f(double a1, double a2, double th) {
        double r2131177 = 1.0;
        double r2131178 = 2.0;
        double r2131179 = sqrt(r2131178);
        double r2131180 = sqrt(r2131179);
        double r2131181 = th;
        double r2131182 = cos(r2131181);
        double r2131183 = r2131180 / r2131182;
        double r2131184 = r2131177 / r2131183;
        double r2131185 = r2131184 / r2131180;
        double r2131186 = a1;
        double r2131187 = r2131186 * r2131186;
        double r2131188 = r2131185 * r2131187;
        double r2131189 = a2;
        double r2131190 = r2131189 * r2131189;
        double r2131191 = r2131182 * r2131190;
        double r2131192 = r2131191 / r2131179;
        double r2131193 = r2131188 + r2131192;
        return r2131193;
}

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 add-sqr-sqrt0.5

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

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

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

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

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

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

Reproduce

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