Average Error: 0.5 → 0.3
Time: 17.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(\sqrt{{a2}^{2} + {a1}^{2}} \cdot \cos th\right) \cdot \sqrt{\frac{{a2}^{2} + {a1}^{2}}{2}}\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\left(\sqrt{{a2}^{2} + {a1}^{2}} \cdot \cos th\right) \cdot \sqrt{\frac{{a2}^{2} + {a1}^{2}}{2}}
double f(double a1, double a2, double th) {
        double r58991 = th;
        double r58992 = cos(r58991);
        double r58993 = 2.0;
        double r58994 = sqrt(r58993);
        double r58995 = r58992 / r58994;
        double r58996 = a1;
        double r58997 = r58996 * r58996;
        double r58998 = r58995 * r58997;
        double r58999 = a2;
        double r59000 = r58999 * r58999;
        double r59001 = r58995 * r59000;
        double r59002 = r58998 + r59001;
        return r59002;
}

double f(double a1, double a2, double th) {
        double r59003 = a2;
        double r59004 = 2.0;
        double r59005 = pow(r59003, r59004);
        double r59006 = a1;
        double r59007 = pow(r59006, r59004);
        double r59008 = r59005 + r59007;
        double r59009 = sqrt(r59008);
        double r59010 = th;
        double r59011 = cos(r59010);
        double r59012 = r59009 * r59011;
        double r59013 = 2.0;
        double r59014 = r59008 / r59013;
        double r59015 = sqrt(r59014);
        double r59016 = r59012 * r59015;
        return r59016;
}

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. Simplified0.5

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

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

    \[\leadsto \color{blue}{\cos th \cdot \left(\frac{1}{\sqrt{2}} \cdot \left(a1 \cdot a1 + a2 \cdot a2\right)\right)}\]
  6. Simplified0.4

    \[\leadsto \cos th \cdot \color{blue}{\frac{{a1}^{2} + {a2}^{2}}{\sqrt{2}}}\]
  7. Using strategy rm
  8. Applied +-commutative0.4

    \[\leadsto \cos th \cdot \frac{\color{blue}{{a2}^{2} + {a1}^{2}}}{\sqrt{2}}\]
  9. Using strategy rm
  10. Applied *-un-lft-identity0.4

    \[\leadsto \cos th \cdot \frac{{a2}^{2} + {a1}^{2}}{\color{blue}{1 \cdot \sqrt{2}}}\]
  11. Applied add-sqr-sqrt0.5

    \[\leadsto \cos th \cdot \frac{\color{blue}{\sqrt{{a2}^{2} + {a1}^{2}} \cdot \sqrt{{a2}^{2} + {a1}^{2}}}}{1 \cdot \sqrt{2}}\]
  12. Applied times-frac0.4

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

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

    \[\leadsto \color{blue}{\left(\sqrt{{a2}^{2} + {a1}^{2}} \cdot \cos th\right)} \cdot \frac{\sqrt{{a2}^{2} + {a1}^{2}}}{\sqrt{2}}\]
  15. Using strategy rm
  16. Applied sqrt-undiv0.3

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

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

Reproduce

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