Average Error: 0.5 → 0.5
Time: 25.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)\]
\[a2 \cdot \left(a2 \cdot \frac{\cos th}{\sqrt{2}}\right) + \frac{a1 \cdot a1}{\sqrt{2}} \cdot \cos th\]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
a2 \cdot \left(a2 \cdot \frac{\cos th}{\sqrt{2}}\right) + \frac{a1 \cdot a1}{\sqrt{2}} \cdot \cos th
double f(double a1, double a2, double th) {
        double r1309708 = th;
        double r1309709 = cos(r1309708);
        double r1309710 = 2.0;
        double r1309711 = sqrt(r1309710);
        double r1309712 = r1309709 / r1309711;
        double r1309713 = a1;
        double r1309714 = r1309713 * r1309713;
        double r1309715 = r1309712 * r1309714;
        double r1309716 = a2;
        double r1309717 = r1309716 * r1309716;
        double r1309718 = r1309712 * r1309717;
        double r1309719 = r1309715 + r1309718;
        return r1309719;
}

double f(double a1, double a2, double th) {
        double r1309720 = a2;
        double r1309721 = th;
        double r1309722 = cos(r1309721);
        double r1309723 = 2.0;
        double r1309724 = sqrt(r1309723);
        double r1309725 = r1309722 / r1309724;
        double r1309726 = r1309720 * r1309725;
        double r1309727 = r1309720 * r1309726;
        double r1309728 = a1;
        double r1309729 = r1309728 * r1309728;
        double r1309730 = r1309729 / r1309724;
        double r1309731 = r1309730 * r1309722;
        double r1309732 = r1309727 + r1309731;
        return r1309732;
}

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 div-inv0.5

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

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

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

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

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

Reproduce

herbie shell --seed 2019133 +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))))