Average Error: 0.5 → 0.5
Time: 4.1m
Precision: 64
\[\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)\]
\[\frac{\frac{1}{\sqrt{\sqrt{\sqrt{2}}}}}{\frac{\sqrt{\sqrt{2}}}{\frac{\cos th}{\sqrt{\sqrt{\sqrt{2}}}}}} \cdot \left(a1 \cdot a1 + 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)
\frac{\frac{1}{\sqrt{\sqrt{\sqrt{2}}}}}{\frac{\sqrt{\sqrt{2}}}{\frac{\cos th}{\sqrt{\sqrt{\sqrt{2}}}}}} \cdot \left(a1 \cdot a1 + a2 \cdot a2\right)
double f(double a1, double a2, double th) {
        double r9997178 = th;
        double r9997179 = cos(r9997178);
        double r9997180 = 2.0;
        double r9997181 = sqrt(r9997180);
        double r9997182 = r9997179 / r9997181;
        double r9997183 = a1;
        double r9997184 = r9997183 * r9997183;
        double r9997185 = r9997182 * r9997184;
        double r9997186 = a2;
        double r9997187 = r9997186 * r9997186;
        double r9997188 = r9997182 * r9997187;
        double r9997189 = r9997185 + r9997188;
        return r9997189;
}

double f(double a1, double a2, double th) {
        double r9997190 = 1.0;
        double r9997191 = 2.0;
        double r9997192 = sqrt(r9997191);
        double r9997193 = sqrt(r9997192);
        double r9997194 = sqrt(r9997193);
        double r9997195 = r9997190 / r9997194;
        double r9997196 = th;
        double r9997197 = cos(r9997196);
        double r9997198 = r9997197 / r9997194;
        double r9997199 = r9997193 / r9997198;
        double r9997200 = r9997195 / r9997199;
        double r9997201 = a1;
        double r9997202 = r9997201 * r9997201;
        double r9997203 = a2;
        double r9997204 = r9997203 * r9997203;
        double r9997205 = r9997202 + r9997204;
        double r9997206 = r9997200 * r9997205;
        return r9997206;
}

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

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

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

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

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

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

    \[\leadsto \frac{\frac{\cos th}{\color{blue}{\sqrt{\sqrt{\sqrt{2}}} \cdot \sqrt{\sqrt{\sqrt{2}}}}}}{\sqrt{\sqrt{2}}} \cdot \left(a1 \cdot a1 + a2 \cdot a2\right)\]
  11. Applied *-un-lft-identity0.5

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

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

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

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

Reproduce

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