Average Error: 0.5 → 0.5
Time: 21.6s
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 r67128 = th;
        double r67129 = cos(r67128);
        double r67130 = 2.0;
        double r67131 = sqrt(r67130);
        double r67132 = r67129 / r67131;
        double r67133 = a1;
        double r67134 = r67133 * r67133;
        double r67135 = r67132 * r67134;
        double r67136 = a2;
        double r67137 = r67136 * r67136;
        double r67138 = r67132 * r67137;
        double r67139 = r67135 + r67138;
        return r67139;
}

double f(double a1, double a2, double th) {
        double r67140 = th;
        double r67141 = cos(r67140);
        double r67142 = a2;
        double r67143 = r67142 * r67142;
        double r67144 = a1;
        double r67145 = r67144 * r67144;
        double r67146 = r67143 + r67145;
        double r67147 = 2.0;
        double r67148 = sqrt(r67147);
        double r67149 = sqrt(r67148);
        double r67150 = r67146 / r67149;
        double r67151 = r67150 / r67149;
        double r67152 = r67141 * r67151;
        return r67152;
}

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))))