Average Error: 0.5 → 0.5
Time: 23.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(a2 \cdot a2\right) \cdot \frac{\cos th}{\sqrt{2}} + \frac{\frac{\left(a1 \cdot \cos th\right) \cdot a1}{\sqrt{\sqrt{2}}}}{\sqrt{\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{\cos th}{\sqrt{2}} + \frac{\frac{\left(a1 \cdot \cos th\right) \cdot a1}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}}
double f(double a1, double a2, double th) {
        double r2068566 = th;
        double r2068567 = cos(r2068566);
        double r2068568 = 2.0;
        double r2068569 = sqrt(r2068568);
        double r2068570 = r2068567 / r2068569;
        double r2068571 = a1;
        double r2068572 = r2068571 * r2068571;
        double r2068573 = r2068570 * r2068572;
        double r2068574 = a2;
        double r2068575 = r2068574 * r2068574;
        double r2068576 = r2068570 * r2068575;
        double r2068577 = r2068573 + r2068576;
        return r2068577;
}

double f(double a1, double a2, double th) {
        double r2068578 = a2;
        double r2068579 = r2068578 * r2068578;
        double r2068580 = th;
        double r2068581 = cos(r2068580);
        double r2068582 = 2.0;
        double r2068583 = sqrt(r2068582);
        double r2068584 = r2068581 / r2068583;
        double r2068585 = r2068579 * r2068584;
        double r2068586 = a1;
        double r2068587 = r2068586 * r2068581;
        double r2068588 = r2068587 * r2068586;
        double r2068589 = sqrt(r2068583);
        double r2068590 = r2068588 / r2068589;
        double r2068591 = r2068590 / r2068589;
        double r2068592 = r2068585 + r2068591;
        return r2068592;
}

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

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

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

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

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

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

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

Reproduce

herbie shell --seed 2019170 +o rules:numerics
(FPCore (a1 a2 th)
  :name "Migdal et al, Equation (64)"
  (+ (* (/ (cos th) (sqrt 2.0)) (* a1 a1)) (* (/ (cos th) (sqrt 2.0)) (* a2 a2))))