Average Error: 0.5 → 0.5
Time: 8.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(\frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} \cdot a1\right) \cdot a1 + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\left(\frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} \cdot a1\right) \cdot a1 + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
double f(double a1, double a2, double th) {
        double r97417 = th;
        double r97418 = cos(r97417);
        double r97419 = 2.0;
        double r97420 = sqrt(r97419);
        double r97421 = r97418 / r97420;
        double r97422 = a1;
        double r97423 = r97422 * r97422;
        double r97424 = r97421 * r97423;
        double r97425 = a2;
        double r97426 = r97425 * r97425;
        double r97427 = r97421 * r97426;
        double r97428 = r97424 + r97427;
        return r97428;
}

double f(double a1, double a2, double th) {
        double r97429 = th;
        double r97430 = cos(r97429);
        double r97431 = 2.0;
        double r97432 = sqrt(r97431);
        double r97433 = sqrt(r97432);
        double r97434 = r97430 / r97433;
        double r97435 = r97434 / r97433;
        double r97436 = a1;
        double r97437 = r97435 * r97436;
        double r97438 = r97437 * r97436;
        double r97439 = r97430 / r97432;
        double r97440 = a2;
        double r97441 = r97440 * r97440;
        double r97442 = r97439 * r97441;
        double r97443 = r97438 + r97442;
        return r97443;
}

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 \color{blue}{\left(\frac{\cos th}{\sqrt{2}} \cdot a1\right) \cdot a1} + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\]
  4. Using strategy rm
  5. Applied add-sqr-sqrt0.5

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

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

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

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

Reproduce

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