Average Error: 0.5 → 0.4
Time: 25.4s
Precision: 64
\[\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\]
\[\left(\cos th \cdot \frac{\mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\left(\sqrt[3]{\sqrt[3]{\sqrt{2}}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt[3]{\sqrt{2}}} \cdot \sqrt[3]{\sqrt{2}}\right)}\right) \cdot \frac{1}{\sqrt[3]{\sqrt[3]{\sqrt{2}}}}\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\left(\cos th \cdot \frac{\mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\left(\sqrt[3]{\sqrt[3]{\sqrt{2}}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt[3]{\sqrt{2}}} \cdot \sqrt[3]{\sqrt{2}}\right)}\right) \cdot \frac{1}{\sqrt[3]{\sqrt[3]{\sqrt{2}}}}
double f(double a1, double a2, double th) {
        double r2626148 = th;
        double r2626149 = cos(r2626148);
        double r2626150 = 2.0;
        double r2626151 = sqrt(r2626150);
        double r2626152 = r2626149 / r2626151;
        double r2626153 = a1;
        double r2626154 = r2626153 * r2626153;
        double r2626155 = r2626152 * r2626154;
        double r2626156 = a2;
        double r2626157 = r2626156 * r2626156;
        double r2626158 = r2626152 * r2626157;
        double r2626159 = r2626155 + r2626158;
        return r2626159;
}

double f(double a1, double a2, double th) {
        double r2626160 = th;
        double r2626161 = cos(r2626160);
        double r2626162 = a1;
        double r2626163 = a2;
        double r2626164 = r2626163 * r2626163;
        double r2626165 = fma(r2626162, r2626162, r2626164);
        double r2626166 = 2.0;
        double r2626167 = sqrt(r2626166);
        double r2626168 = cbrt(r2626167);
        double r2626169 = cbrt(r2626168);
        double r2626170 = r2626169 * r2626168;
        double r2626171 = r2626170 * r2626170;
        double r2626172 = r2626165 / r2626171;
        double r2626173 = r2626161 * r2626172;
        double r2626174 = 1.0;
        double r2626175 = r2626174 / r2626169;
        double r2626176 = r2626173 * r2626175;
        return r2626176;
}

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-cube-cbrt0.5

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

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

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

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

    \[\leadsto \cos th \cdot \frac{\color{blue}{\frac{\mathsf{fma}\left(a1, a1, a2 \cdot a2\right)}{\left(\sqrt[3]{\sqrt[3]{\sqrt{2}}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt[3]{\sqrt{2}}} \cdot \sqrt[3]{\sqrt{2}}\right)}}}{\sqrt[3]{\sqrt[3]{\sqrt{2}}}}\]
  10. Using strategy rm
  11. Applied div-inv0.4

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

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

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

Reproduce

herbie shell --seed 2019171 +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))))