Average Error: 0.5 → 0.8
Time: 31.2s
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{1}{\frac{\frac{\frac{\sqrt{2}}{\cos th}}{\sqrt{a2 \cdot a2 + a1 \cdot a1}}}{\sqrt{a2 \cdot a2 + a1 \cdot a1}}}\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\frac{1}{\frac{\frac{\frac{\sqrt{2}}{\cos th}}{\sqrt{a2 \cdot a2 + a1 \cdot a1}}}{\sqrt{a2 \cdot a2 + a1 \cdot a1}}}
double f(double a1, double a2, double th) {
        double r2602604 = th;
        double r2602605 = cos(r2602604);
        double r2602606 = 2.0;
        double r2602607 = sqrt(r2602606);
        double r2602608 = r2602605 / r2602607;
        double r2602609 = a1;
        double r2602610 = r2602609 * r2602609;
        double r2602611 = r2602608 * r2602610;
        double r2602612 = a2;
        double r2602613 = r2602612 * r2602612;
        double r2602614 = r2602608 * r2602613;
        double r2602615 = r2602611 + r2602614;
        return r2602615;
}

double f(double a1, double a2, double th) {
        double r2602616 = 1.0;
        double r2602617 = 2.0;
        double r2602618 = sqrt(r2602617);
        double r2602619 = th;
        double r2602620 = cos(r2602619);
        double r2602621 = r2602618 / r2602620;
        double r2602622 = a2;
        double r2602623 = r2602622 * r2602622;
        double r2602624 = a1;
        double r2602625 = r2602624 * r2602624;
        double r2602626 = r2602623 + r2602625;
        double r2602627 = sqrt(r2602626);
        double r2602628 = r2602621 / r2602627;
        double r2602629 = r2602628 / r2602627;
        double r2602630 = r2602616 / r2602629;
        return r2602630;
}

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{a1 \cdot a1 + a2 \cdot a2}{\frac{\sqrt{2}}{\cos th}}}\]
  3. Using strategy rm
  4. Applied clear-num0.8

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

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

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

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

Reproduce

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