Average Error: 0.5 → 0.5
Time: 10.3s
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{\left(\cos th \cdot \sqrt{a1 \cdot a1 + a2 \cdot a2}\right) \cdot \sqrt{a1 \cdot a1 + a2 \cdot a2}}{\sqrt{2}}\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\frac{\left(\cos th \cdot \sqrt{a1 \cdot a1 + a2 \cdot a2}\right) \cdot \sqrt{a1 \cdot a1 + a2 \cdot a2}}{\sqrt{2}}
double f(double a1, double a2, double th) {
        double r97085 = th;
        double r97086 = cos(r97085);
        double r97087 = 2.0;
        double r97088 = sqrt(r97087);
        double r97089 = r97086 / r97088;
        double r97090 = a1;
        double r97091 = r97090 * r97090;
        double r97092 = r97089 * r97091;
        double r97093 = a2;
        double r97094 = r97093 * r97093;
        double r97095 = r97089 * r97094;
        double r97096 = r97092 + r97095;
        return r97096;
}

double f(double a1, double a2, double th) {
        double r97097 = th;
        double r97098 = cos(r97097);
        double r97099 = a1;
        double r97100 = r97099 * r97099;
        double r97101 = a2;
        double r97102 = r97101 * r97101;
        double r97103 = r97100 + r97102;
        double r97104 = sqrt(r97103);
        double r97105 = r97098 * r97104;
        double r97106 = r97105 * r97104;
        double r97107 = 2.0;
        double r97108 = sqrt(r97107);
        double r97109 = r97106 / r97108;
        return r97109;
}

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 associate-*l/0.5

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

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

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

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

Reproduce

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