Average Error: 20.3 → 20.4
Time: 15.5s
Precision: binary64
\[{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} \]
\[\begin{array}{l} t_0 := \cos \left(\frac{angle \cdot \pi}{180}\right)\\ {\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \left(\sqrt[3]{t_0} \cdot {\left(\sqrt[3]{e^{\mathsf{log1p}\left(\sqrt{{t_0}^{2}}\right)} - 1}\right)}^{2}\right)\right)}^{2} \end{array} \]
{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2}
\begin{array}{l}
t_0 := \cos \left(\frac{angle \cdot \pi}{180}\right)\\
{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \left(\sqrt[3]{t_0} \cdot {\left(\sqrt[3]{e^{\mathsf{log1p}\left(\sqrt{{t_0}^{2}}\right)} - 1}\right)}^{2}\right)\right)}^{2}
\end{array}
(FPCore (a b angle)
 :precision binary64
 (+
  (pow (* a (sin (* (/ angle 180.0) PI))) 2.0)
  (pow (* b (cos (* (/ angle 180.0) PI))) 2.0)))
(FPCore (a b angle)
 :precision binary64
 (let* ((t_0 (cos (/ (* angle PI) 180.0))))
   (+
    (pow (* a (sin (* (/ angle 180.0) PI))) 2.0)
    (pow
     (*
      b
      (*
       (cbrt t_0)
       (pow (cbrt (- (exp (log1p (sqrt (pow t_0 2.0)))) 1.0)) 2.0)))
     2.0))))
double code(double a, double b, double angle) {
	return pow((a * sin(((angle / 180.0) * ((double) M_PI)))), 2.0) + pow((b * cos(((angle / 180.0) * ((double) M_PI)))), 2.0);
}
double code(double a, double b, double angle) {
	double t_0 = cos(((angle * ((double) M_PI)) / 180.0));
	return pow((a * sin(((angle / 180.0) * ((double) M_PI)))), 2.0) + pow((b * (cbrt(t_0) * pow(cbrt((exp(log1p(sqrt(pow(t_0, 2.0)))) - 1.0)), 2.0))), 2.0);
}

Error

Bits error versus a

Bits error versus b

Bits error versus angle

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 20.3

    \[{\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} \]
  2. Applied egg-rr20.3

    \[\leadsto {\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \cos \color{blue}{\left(\frac{1}{\frac{180}{angle \cdot \pi}}\right)}\right)}^{2} \]
  3. Applied egg-rr20.4

    \[\leadsto {\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \color{blue}{\left(\sqrt[3]{\cos \left(\frac{angle \cdot \pi}{180}\right)} \cdot {\left(\sqrt[3]{\cos \left(\frac{angle \cdot \pi}{180}\right)}\right)}^{2}\right)}\right)}^{2} \]
  4. Applied egg-rr20.4

    \[\leadsto {\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \left(\sqrt[3]{\cos \left(\frac{angle \cdot \pi}{180}\right)} \cdot {\left(\sqrt[3]{\color{blue}{e^{\mathsf{log1p}\left(\cos \left(\frac{angle \cdot \pi}{180}\right)\right)} - 1}}\right)}^{2}\right)\right)}^{2} \]
  5. Applied egg-rr20.4

    \[\leadsto {\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \left(\sqrt[3]{\cos \left(\frac{angle \cdot \pi}{180}\right)} \cdot {\left(\sqrt[3]{e^{\mathsf{log1p}\left(\color{blue}{\sqrt{{\cos \left(\frac{angle \cdot \pi}{180}\right)}^{2}}}\right)} - 1}\right)}^{2}\right)\right)}^{2} \]
  6. Final simplification20.4

    \[\leadsto {\left(a \cdot \sin \left(\frac{angle}{180} \cdot \pi\right)\right)}^{2} + {\left(b \cdot \left(\sqrt[3]{\cos \left(\frac{angle \cdot \pi}{180}\right)} \cdot {\left(\sqrt[3]{e^{\mathsf{log1p}\left(\sqrt{{\cos \left(\frac{angle \cdot \pi}{180}\right)}^{2}}\right)} - 1}\right)}^{2}\right)\right)}^{2} \]

Reproduce

herbie shell --seed 2022130 
(FPCore (a b angle)
  :name "ab-angle->ABCF A"
  :precision binary64
  (+ (pow (* a (sin (* (/ angle 180.0) PI))) 2.0) (pow (* b (cos (* (/ angle 180.0) PI))) 2.0)))