Average Error: 0.5 → 0.5
Time: 3.7m
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{\cos th \cdot \left(a2 \cdot a2\right)}{\sqrt{2}} + \frac{\frac{a1 \cdot \cos th}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}}{\frac{\sqrt[3]{\sqrt{2}}}{a1}}\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\frac{\cos th \cdot \left(a2 \cdot a2\right)}{\sqrt{2}} + \frac{\frac{a1 \cdot \cos th}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}}{\frac{\sqrt[3]{\sqrt{2}}}{a1}}
double f(double a1, double a2, double th) {
        double r19665120 = th;
        double r19665121 = cos(r19665120);
        double r19665122 = 2.0;
        double r19665123 = sqrt(r19665122);
        double r19665124 = r19665121 / r19665123;
        double r19665125 = a1;
        double r19665126 = r19665125 * r19665125;
        double r19665127 = r19665124 * r19665126;
        double r19665128 = a2;
        double r19665129 = r19665128 * r19665128;
        double r19665130 = r19665124 * r19665129;
        double r19665131 = r19665127 + r19665130;
        return r19665131;
}

double f(double a1, double a2, double th) {
        double r19665132 = th;
        double r19665133 = cos(r19665132);
        double r19665134 = a2;
        double r19665135 = r19665134 * r19665134;
        double r19665136 = r19665133 * r19665135;
        double r19665137 = 2.0;
        double r19665138 = sqrt(r19665137);
        double r19665139 = r19665136 / r19665138;
        double r19665140 = a1;
        double r19665141 = r19665140 * r19665133;
        double r19665142 = cbrt(r19665138);
        double r19665143 = r19665142 * r19665142;
        double r19665144 = r19665141 / r19665143;
        double r19665145 = r19665142 / r19665140;
        double r19665146 = r19665144 / r19665145;
        double r19665147 = r19665139 + r19665146;
        return r19665147;
}

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. Taylor expanded around inf 0.5

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

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

    \[\leadsto \frac{\cos th \cdot a1}{\frac{\sqrt{2}}{a1}} + \color{blue}{\frac{\cos th \cdot \left(a2 \cdot a2\right)}{\sqrt{2}}}\]
  6. Using strategy rm
  7. Applied *-un-lft-identity0.5

    \[\leadsto \frac{\cos th \cdot a1}{\frac{\sqrt{2}}{\color{blue}{1 \cdot a1}}} + \frac{\cos th \cdot \left(a2 \cdot a2\right)}{\sqrt{2}}\]
  8. Applied add-cube-cbrt0.5

    \[\leadsto \frac{\cos th \cdot a1}{\frac{\color{blue}{\left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \sqrt[3]{\sqrt{2}}}}{1 \cdot a1}} + \frac{\cos th \cdot \left(a2 \cdot a2\right)}{\sqrt{2}}\]
  9. Applied times-frac0.5

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

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

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

Reproduce

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