Average Error: 0.5 → 0.5
Time: 46.2s
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{\sqrt{a1 \cdot a1 + a2 \cdot a2}}{\frac{\frac{\sqrt{2}}{\cos th}}{\sqrt{{a2}^{2} + a1 \cdot a1}}}\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\frac{\sqrt{a1 \cdot a1 + a2 \cdot a2}}{\frac{\frac{\sqrt{2}}{\cos th}}{\sqrt{{a2}^{2} + a1 \cdot a1}}}
double f(double a1, double a2, double th) {
        double r104033 = th;
        double r104034 = cos(r104033);
        double r104035 = 2.0;
        double r104036 = sqrt(r104035);
        double r104037 = r104034 / r104036;
        double r104038 = a1;
        double r104039 = r104038 * r104038;
        double r104040 = r104037 * r104039;
        double r104041 = a2;
        double r104042 = r104041 * r104041;
        double r104043 = r104037 * r104042;
        double r104044 = r104040 + r104043;
        return r104044;
}

double f(double a1, double a2, double th) {
        double r104045 = a1;
        double r104046 = r104045 * r104045;
        double r104047 = a2;
        double r104048 = r104047 * r104047;
        double r104049 = r104046 + r104048;
        double r104050 = sqrt(r104049);
        double r104051 = 2.0;
        double r104052 = sqrt(r104051);
        double r104053 = th;
        double r104054 = cos(r104053);
        double r104055 = r104052 / r104054;
        double r104056 = 2.0;
        double r104057 = pow(r104047, r104056);
        double r104058 = r104057 + r104046;
        double r104059 = sqrt(r104058);
        double r104060 = r104055 / r104059;
        double r104061 = r104050 / r104060;
        return r104061;
}

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{a1 \cdot a1 + a2 \cdot a2}{\frac{\sqrt{2}}{\cos th}}}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt0.5

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

    \[\leadsto \color{blue}{\frac{\sqrt{a1 \cdot a1 + a2 \cdot a2}}{\frac{\frac{\sqrt{2}}{\cos th}}{\sqrt{a1 \cdot a1 + a2 \cdot a2}}}}\]
  6. Simplified0.5

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

    \[\leadsto \frac{\sqrt{a1 \cdot a1 + a2 \cdot a2}}{\frac{\frac{\sqrt{2}}{\cos th}}{\sqrt{{a2}^{2} + a1 \cdot a1}}}\]

Reproduce

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