Average Error: 0.5 → 0.5
Time: 55.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)\]
\[\left(a2 \cdot a2\right) \cdot \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} + \left(a1 \cdot a1\right) \cdot \frac{\cos th}{\sqrt{2}}\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\left(a2 \cdot a2\right) \cdot \frac{\frac{\cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}} + \left(a1 \cdot a1\right) \cdot \frac{\cos th}{\sqrt{2}}
double f(double a1, double a2, double th) {
        double r5671567 = th;
        double r5671568 = cos(r5671567);
        double r5671569 = 2.0;
        double r5671570 = sqrt(r5671569);
        double r5671571 = r5671568 / r5671570;
        double r5671572 = a1;
        double r5671573 = r5671572 * r5671572;
        double r5671574 = r5671571 * r5671573;
        double r5671575 = a2;
        double r5671576 = r5671575 * r5671575;
        double r5671577 = r5671571 * r5671576;
        double r5671578 = r5671574 + r5671577;
        return r5671578;
}

double f(double a1, double a2, double th) {
        double r5671579 = a2;
        double r5671580 = r5671579 * r5671579;
        double r5671581 = th;
        double r5671582 = cos(r5671581);
        double r5671583 = 2.0;
        double r5671584 = sqrt(r5671583);
        double r5671585 = sqrt(r5671584);
        double r5671586 = r5671582 / r5671585;
        double r5671587 = r5671586 / r5671585;
        double r5671588 = r5671580 * r5671587;
        double r5671589 = a1;
        double r5671590 = r5671589 * r5671589;
        double r5671591 = r5671582 / r5671584;
        double r5671592 = r5671590 * r5671591;
        double r5671593 = r5671588 + r5671592;
        return r5671593;
}

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. Final simplification0.5

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

Reproduce

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