Average Error: 0.5 → 0.5
Time: 28.5s
Precision: 64
\[\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\]
\[\left(a2 \cdot a2\right) \cdot \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} + \left(a1 \cdot \frac{a1}{\sqrt{2}}\right) \cdot \cos th\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\left(a2 \cdot a2\right) \cdot \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} + \left(a1 \cdot \frac{a1}{\sqrt{2}}\right) \cdot \cos th
double f(double a1, double a2, double th) {
        double r1056304 = th;
        double r1056305 = cos(r1056304);
        double r1056306 = 2.0;
        double r1056307 = sqrt(r1056306);
        double r1056308 = r1056305 / r1056307;
        double r1056309 = a1;
        double r1056310 = r1056309 * r1056309;
        double r1056311 = r1056308 * r1056310;
        double r1056312 = a2;
        double r1056313 = r1056312 * r1056312;
        double r1056314 = r1056308 * r1056313;
        double r1056315 = r1056311 + r1056314;
        return r1056315;
}

double f(double a1, double a2, double th) {
        double r1056316 = a2;
        double r1056317 = r1056316 * r1056316;
        double r1056318 = th;
        double r1056319 = cos(r1056318);
        double r1056320 = 2.0;
        double r1056321 = sqrt(r1056320);
        double r1056322 = sqrt(r1056321);
        double r1056323 = r1056319 / r1056322;
        double r1056324 = r1056323 / r1056322;
        double r1056325 = r1056317 * r1056324;
        double r1056326 = a1;
        double r1056327 = r1056326 / r1056321;
        double r1056328 = r1056326 * r1056327;
        double r1056329 = r1056328 * r1056319;
        double r1056330 = r1056325 + r1056329;
        return r1056330;
}

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

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

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

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

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

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

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

Reproduce

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