Average Error: 0.5 → 0.5
Time: 13.3s
Precision: binary64
\[[a1, a2]=\mathsf{sort}([a1, a2])\]
\[\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right) \]
\[\begin{array}{l} t_1 := \sqrt{\sqrt{2}}\\ t_2 := \sqrt[3]{\sqrt{2}}\\ a1 \cdot \left(\frac{a1}{t_2 \cdot t_2} \cdot \frac{\cos th}{t_2}\right) + a2 \cdot \left(a2 \cdot \frac{\frac{\cos th}{t_1}}{t_1}\right) \end{array} \]
\frac{\cos th}{\sqrt{2}} \cdot \left(a1 \cdot a1\right) + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right)
\begin{array}{l}
t_1 := \sqrt{\sqrt{2}}\\
t_2 := \sqrt[3]{\sqrt{2}}\\
a1 \cdot \left(\frac{a1}{t_2 \cdot t_2} \cdot \frac{\cos th}{t_2}\right) + a2 \cdot \left(a2 \cdot \frac{\frac{\cos th}{t_1}}{t_1}\right)
\end{array}
(FPCore (a1 a2 th)
 :precision binary64
 (+
  (* (/ (cos th) (sqrt 2.0)) (* a1 a1))
  (* (/ (cos th) (sqrt 2.0)) (* a2 a2))))
(FPCore (a1 a2 th)
 :precision binary64
 (let* ((t_1 (sqrt (sqrt 2.0))) (t_2 (cbrt (sqrt 2.0))))
   (+
    (* a1 (* (/ a1 (* t_2 t_2)) (/ (cos th) t_2)))
    (* a2 (* a2 (/ (/ (cos th) t_1) t_1))))))
double code(double a1, double a2, double th) {
	return ((cos(th) / sqrt(2.0)) * (a1 * a1)) + ((cos(th) / sqrt(2.0)) * (a2 * a2));
}
double code(double a1, double a2, double th) {
	double t_1 = sqrt(sqrt(2.0));
	double t_2 = cbrt(sqrt(2.0));
	return (a1 * ((a1 / (t_2 * t_2)) * (cos(th) / t_2))) + (a2 * (a2 * ((cos(th) / t_1) / t_1)));
}

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-*r*_binary640.5

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

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

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

    \[\leadsto \left(a1 \cdot \frac{\color{blue}{1 \cdot \cos th}}{\left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \sqrt[3]{\sqrt{2}}}\right) \cdot a1 + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right) \]
  8. Applied times-frac_binary640.6

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

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

    \[\leadsto \left(\color{blue}{\frac{a1}{\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}}} \cdot \frac{\cos th}{\sqrt[3]{\sqrt{2}}}\right) \cdot a1 + \frac{\cos th}{\sqrt{2}} \cdot \left(a2 \cdot a2\right) \]
  11. Using strategy rm
  12. Applied associate-*r*_binary640.5

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

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

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

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

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

Reproduce

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