Average Error: 0.5 → 0.5
Time: 34.5s
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 a1\right) \cdot \cos th}{\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 a1\right) \cdot \cos th}{\sqrt{\sqrt{2}}}}{\sqrt{\sqrt{2}}}
double f(double a1, double a2, double th) {
        double r1201656 = th;
        double r1201657 = cos(r1201656);
        double r1201658 = 2.0;
        double r1201659 = sqrt(r1201658);
        double r1201660 = r1201657 / r1201659;
        double r1201661 = a1;
        double r1201662 = r1201661 * r1201661;
        double r1201663 = r1201660 * r1201662;
        double r1201664 = a2;
        double r1201665 = r1201664 * r1201664;
        double r1201666 = r1201660 * r1201665;
        double r1201667 = r1201663 + r1201666;
        return r1201667;
}

double f(double a1, double a2, double th) {
        double r1201668 = a2;
        double r1201669 = r1201668 * r1201668;
        double r1201670 = th;
        double r1201671 = cos(r1201670);
        double r1201672 = 2.0;
        double r1201673 = sqrt(r1201672);
        double r1201674 = r1201671 / r1201673;
        double r1201675 = r1201669 * r1201674;
        double r1201676 = a1;
        double r1201677 = r1201676 * r1201676;
        double r1201678 = r1201677 * r1201671;
        double r1201679 = sqrt(r1201673);
        double r1201680 = r1201678 / r1201679;
        double r1201681 = r1201680 / r1201679;
        double r1201682 = r1201675 + r1201681;
        return r1201682;
}

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-*l/0.5

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

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

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

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

Reproduce

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