Average Error: 0.5 → 0.5
Time: 22.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)\]
\[\cos th \cdot \frac{\frac{a2 \cdot a2 + a1 \cdot a1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}}\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\cos th \cdot \frac{\frac{a2 \cdot a2 + a1 \cdot a1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}}
double f(double a1, double a2, double th) {
        double r69903 = th;
        double r69904 = cos(r69903);
        double r69905 = 2.0;
        double r69906 = sqrt(r69905);
        double r69907 = r69904 / r69906;
        double r69908 = a1;
        double r69909 = r69908 * r69908;
        double r69910 = r69907 * r69909;
        double r69911 = a2;
        double r69912 = r69911 * r69911;
        double r69913 = r69907 * r69912;
        double r69914 = r69910 + r69913;
        return r69914;
}

double f(double a1, double a2, double th) {
        double r69915 = th;
        double r69916 = cos(r69915);
        double r69917 = a2;
        double r69918 = r69917 * r69917;
        double r69919 = a1;
        double r69920 = r69919 * r69919;
        double r69921 = r69918 + r69920;
        double r69922 = 2.0;
        double r69923 = sqrt(r69922);
        double r69924 = sqrt(r69923);
        double r69925 = r69921 / r69924;
        double r69926 = r69925 / r69924;
        double r69927 = r69916 * r69926;
        return r69927;
}

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{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1 + a2 \cdot a2\right)}\]
  3. Using strategy rm
  4. Applied div-inv0.5

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

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

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

    \[\leadsto \cos th \cdot \frac{a2 \cdot a2 + a1 \cdot a1}{\sqrt{\color{blue}{\sqrt{2} \cdot \sqrt{2}}}}\]
  9. Applied sqrt-prod0.5

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

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

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

Reproduce

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