Average Error: 0.5 → 0.5
Time: 25.9s
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{\mathsf{fma}\left(a2, a2, a1 \cdot a1\right) \cdot \cos th}{\sqrt{\left|\sqrt[3]{2}\right|}} \cdot \frac{\frac{1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{\sqrt[3]{2}}}}\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\frac{\mathsf{fma}\left(a2, a2, a1 \cdot a1\right) \cdot \cos th}{\sqrt{\left|\sqrt[3]{2}\right|}} \cdot \frac{\frac{1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{\sqrt[3]{2}}}}
double f(double a1, double a2, double th) {
        double r71205 = th;
        double r71206 = cos(r71205);
        double r71207 = 2.0;
        double r71208 = sqrt(r71207);
        double r71209 = r71206 / r71208;
        double r71210 = a1;
        double r71211 = r71210 * r71210;
        double r71212 = r71209 * r71211;
        double r71213 = a2;
        double r71214 = r71213 * r71213;
        double r71215 = r71209 * r71214;
        double r71216 = r71212 + r71215;
        return r71216;
}

double f(double a1, double a2, double th) {
        double r71217 = a2;
        double r71218 = a1;
        double r71219 = r71218 * r71218;
        double r71220 = fma(r71217, r71217, r71219);
        double r71221 = th;
        double r71222 = cos(r71221);
        double r71223 = r71220 * r71222;
        double r71224 = 2.0;
        double r71225 = cbrt(r71224);
        double r71226 = fabs(r71225);
        double r71227 = sqrt(r71226);
        double r71228 = r71223 / r71227;
        double r71229 = 1.0;
        double r71230 = sqrt(r71224);
        double r71231 = sqrt(r71230);
        double r71232 = r71229 / r71231;
        double r71233 = sqrt(r71225);
        double r71234 = sqrt(r71233);
        double r71235 = r71232 / r71234;
        double r71236 = r71228 * r71235;
        return r71236;
}

Error

Bits error versus a1

Bits error versus a2

Bits error versus th

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}{\cos th \cdot \frac{\mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\sqrt{2}}}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt0.5

    \[\leadsto \cos th \cdot \frac{\mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\sqrt{\color{blue}{\sqrt{2} \cdot \sqrt{2}}}}\]
  5. Applied sqrt-prod0.6

    \[\leadsto \cos th \cdot \frac{\mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\color{blue}{\sqrt{\sqrt{2}} \cdot \sqrt{\sqrt{2}}}}\]
  6. Applied associate-/r*0.5

    \[\leadsto \cos th \cdot \color{blue}{\frac{\frac{\mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}}}\]
  7. Simplified0.5

    \[\leadsto \cos th \cdot \frac{\color{blue}{\frac{\mathsf{fma}\left(a2, a2, a1 \cdot a1\right)}{\sqrt{\sqrt{2}}}}}{\sqrt{\sqrt{2}}}\]
  8. Using strategy rm
  9. Applied add-cube-cbrt0.7

    \[\leadsto \cos th \cdot \frac{\frac{\mathsf{fma}\left(a2, a2, a1 \cdot a1\right)}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{\color{blue}{\left(\sqrt[3]{2} \cdot \sqrt[3]{2}\right) \cdot \sqrt[3]{2}}}}}\]
  10. Applied sqrt-prod0.7

    \[\leadsto \cos th \cdot \frac{\frac{\mathsf{fma}\left(a2, a2, a1 \cdot a1\right)}{\sqrt{\sqrt{2}}}}{\sqrt{\color{blue}{\sqrt{\sqrt[3]{2} \cdot \sqrt[3]{2}} \cdot \sqrt{\sqrt[3]{2}}}}}\]
  11. Applied sqrt-prod0.7

    \[\leadsto \cos th \cdot \frac{\frac{\mathsf{fma}\left(a2, a2, a1 \cdot a1\right)}{\sqrt{\sqrt{2}}}}{\color{blue}{\sqrt{\sqrt{\sqrt[3]{2} \cdot \sqrt[3]{2}}} \cdot \sqrt{\sqrt{\sqrt[3]{2}}}}}\]
  12. Applied div-inv0.5

    \[\leadsto \cos th \cdot \frac{\color{blue}{\mathsf{fma}\left(a2, a2, a1 \cdot a1\right) \cdot \frac{1}{\sqrt{\sqrt{2}}}}}{\sqrt{\sqrt{\sqrt[3]{2} \cdot \sqrt[3]{2}}} \cdot \sqrt{\sqrt{\sqrt[3]{2}}}}\]
  13. Applied times-frac0.4

    \[\leadsto \cos th \cdot \color{blue}{\left(\frac{\mathsf{fma}\left(a2, a2, a1 \cdot a1\right)}{\sqrt{\sqrt{\sqrt[3]{2} \cdot \sqrt[3]{2}}}} \cdot \frac{\frac{1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{\sqrt[3]{2}}}}\right)}\]
  14. Applied associate-*r*0.5

    \[\leadsto \color{blue}{\left(\cos th \cdot \frac{\mathsf{fma}\left(a2, a2, a1 \cdot a1\right)}{\sqrt{\sqrt{\sqrt[3]{2} \cdot \sqrt[3]{2}}}}\right) \cdot \frac{\frac{1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{\sqrt[3]{2}}}}}\]
  15. Simplified0.5

    \[\leadsto \color{blue}{\frac{\cos th \cdot \mathsf{fma}\left(a2, a2, a1 \cdot a1\right)}{\sqrt{\left|\sqrt[3]{2}\right|}}} \cdot \frac{\frac{1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{\sqrt[3]{2}}}}\]
  16. Final simplification0.5

    \[\leadsto \frac{\mathsf{fma}\left(a2, a2, a1 \cdot a1\right) \cdot \cos th}{\sqrt{\left|\sqrt[3]{2}\right|}} \cdot \frac{\frac{1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{\sqrt[3]{2}}}}\]

Reproduce

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