Average Error: 0.5 → 0.4
Time: 7.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)\]
\[\frac{\frac{\cos th \cdot \left(a1 \cdot a1\right)}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}}{\sqrt[3]{\sqrt{2}}} + \frac{\cos th \cdot a2}{\sqrt{2}} \cdot a2\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\frac{\frac{\cos th \cdot \left(a1 \cdot a1\right)}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}}{\sqrt[3]{\sqrt{2}}} + \frac{\cos th \cdot a2}{\sqrt{2}} \cdot a2
double f(double a1, double a2, double th) {
        double r94091 = th;
        double r94092 = cos(r94091);
        double r94093 = 2.0;
        double r94094 = sqrt(r94093);
        double r94095 = r94092 / r94094;
        double r94096 = a1;
        double r94097 = r94096 * r94096;
        double r94098 = r94095 * r94097;
        double r94099 = a2;
        double r94100 = r94099 * r94099;
        double r94101 = r94095 * r94100;
        double r94102 = r94098 + r94101;
        return r94102;
}

double f(double a1, double a2, double th) {
        double r94103 = th;
        double r94104 = cos(r94103);
        double r94105 = a1;
        double r94106 = r94105 * r94105;
        double r94107 = r94104 * r94106;
        double r94108 = 2.0;
        double r94109 = sqrt(r94108);
        double r94110 = cbrt(r94109);
        double r94111 = r94110 * r94110;
        double r94112 = r94107 / r94111;
        double r94113 = r94112 / r94110;
        double r94114 = a2;
        double r94115 = r94104 * r94114;
        double r94116 = r94115 / r94109;
        double r94117 = r94116 * r94114;
        double r94118 = r94113 + r94117;
        return r94118;
}

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. Using strategy rm
  3. Applied associate-*r*0.5

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

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

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

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

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

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

Reproduce

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