Average Error: 0.5 → 0.4
Time: 59.1s
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}{\sqrt[3]{\sqrt{2}}} \cdot \left(\frac{a2}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}} \cdot a2\right) + \frac{a1 \cdot \cos th}{\frac{\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}{\sqrt[3]{\sqrt{2}}} \cdot \left(\frac{a2}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}} \cdot a2\right) + \frac{a1 \cdot \cos th}{\frac{\sqrt{2}}{a1}}
double f(double a1, double a2, double th) {
        double r6462440 = th;
        double r6462441 = cos(r6462440);
        double r6462442 = 2.0;
        double r6462443 = sqrt(r6462442);
        double r6462444 = r6462441 / r6462443;
        double r6462445 = a1;
        double r6462446 = r6462445 * r6462445;
        double r6462447 = r6462444 * r6462446;
        double r6462448 = a2;
        double r6462449 = r6462448 * r6462448;
        double r6462450 = r6462444 * r6462449;
        double r6462451 = r6462447 + r6462450;
        return r6462451;
}

double f(double a1, double a2, double th) {
        double r6462452 = th;
        double r6462453 = cos(r6462452);
        double r6462454 = 2.0;
        double r6462455 = sqrt(r6462454);
        double r6462456 = cbrt(r6462455);
        double r6462457 = r6462453 / r6462456;
        double r6462458 = a2;
        double r6462459 = r6462456 * r6462456;
        double r6462460 = r6462458 / r6462459;
        double r6462461 = r6462460 * r6462458;
        double r6462462 = r6462457 * r6462461;
        double r6462463 = a1;
        double r6462464 = r6462463 * r6462453;
        double r6462465 = r6462455 / r6462463;
        double r6462466 = r6462464 / r6462465;
        double r6462467 = r6462462 + r6462466;
        return r6462467;
}

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 \frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \color{blue}{\frac{\cos th \cdot {a2}^{2}}{\sqrt{2}}}\]
  3. Simplified0.5

    \[\leadsto \frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \color{blue}{a2 \cdot \frac{a2 \cdot \cos th}{\sqrt{2}}}\]
  4. Taylor expanded around inf 0.5

    \[\leadsto \color{blue}{\frac{{a1}^{2} \cdot \cos th}{\sqrt{2}}} + a2 \cdot \frac{a2 \cdot \cos th}{\sqrt{2}}\]
  5. Simplified0.4

    \[\leadsto \color{blue}{\frac{\cos th \cdot a1}{\frac{\sqrt{2}}{a1}}} + a2 \cdot \frac{a2 \cdot \cos th}{\sqrt{2}}\]
  6. Using strategy rm
  7. Applied add-cube-cbrt0.4

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

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

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

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

Reproduce

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