Average Error: 0.5 → 0.5
Time: 48.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{\sqrt{a2 \cdot a2 + a1 \cdot a1}}{\frac{\frac{\sqrt{2}}{\cos th}}{\sqrt{{a1}^{2} + a2 \cdot a2}}}\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\frac{\sqrt{a2 \cdot a2 + a1 \cdot a1}}{\frac{\frac{\sqrt{2}}{\cos th}}{\sqrt{{a1}^{2} + a2 \cdot a2}}}
double f(double a1, double a2, double th) {
        double r118892 = th;
        double r118893 = cos(r118892);
        double r118894 = 2.0;
        double r118895 = sqrt(r118894);
        double r118896 = r118893 / r118895;
        double r118897 = a1;
        double r118898 = r118897 * r118897;
        double r118899 = r118896 * r118898;
        double r118900 = a2;
        double r118901 = r118900 * r118900;
        double r118902 = r118896 * r118901;
        double r118903 = r118899 + r118902;
        return r118903;
}

double f(double a1, double a2, double th) {
        double r118904 = a2;
        double r118905 = r118904 * r118904;
        double r118906 = a1;
        double r118907 = r118906 * r118906;
        double r118908 = r118905 + r118907;
        double r118909 = sqrt(r118908);
        double r118910 = 2.0;
        double r118911 = sqrt(r118910);
        double r118912 = th;
        double r118913 = cos(r118912);
        double r118914 = r118911 / r118913;
        double r118915 = 2.0;
        double r118916 = pow(r118906, r118915);
        double r118917 = r118916 + r118905;
        double r118918 = sqrt(r118917);
        double r118919 = r118914 / r118918;
        double r118920 = r118909 / r118919;
        return r118920;
}

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

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

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

    \[\leadsto \color{blue}{\frac{\sqrt{a2 \cdot a2 + a1 \cdot a1}}{\frac{\frac{\sqrt{2}}{\cos th}}{\sqrt{a2 \cdot a2 + a1 \cdot a1}}}}\]
  8. Simplified0.5

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

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

Reproduce

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