Average Error: 0.5 → 0.5
Time: 9.0s
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(\frac{\cos th}{\sqrt{2}} \cdot a1\right) \cdot a1 + \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} \cdot \left(a2 \cdot a2\right)\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\left(\frac{\cos th}{\sqrt{2}} \cdot a1\right) \cdot a1 + \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} \cdot \left(a2 \cdot a2\right)
double f(double a1, double a2, double th) {
        double r111674 = th;
        double r111675 = cos(r111674);
        double r111676 = 2.0;
        double r111677 = sqrt(r111676);
        double r111678 = r111675 / r111677;
        double r111679 = a1;
        double r111680 = r111679 * r111679;
        double r111681 = r111678 * r111680;
        double r111682 = a2;
        double r111683 = r111682 * r111682;
        double r111684 = r111678 * r111683;
        double r111685 = r111681 + r111684;
        return r111685;
}

double f(double a1, double a2, double th) {
        double r111686 = th;
        double r111687 = cos(r111686);
        double r111688 = 2.0;
        double r111689 = sqrt(r111688);
        double r111690 = r111687 / r111689;
        double r111691 = a1;
        double r111692 = r111690 * r111691;
        double r111693 = r111692 * r111691;
        double r111694 = sqrt(r111689);
        double r111695 = r111687 / r111694;
        double r111696 = r111695 / r111694;
        double r111697 = a2;
        double r111698 = r111697 * r111697;
        double r111699 = r111696 * r111698;
        double r111700 = r111693 + r111699;
        return r111700;
}

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 add-sqr-sqrt0.5

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

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

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

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

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

Reproduce

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