
(FPCore (a b angle) :precision binary64 (let* ((t_0 (* (PI) (/ angle 180.0)))) (+ (pow (* a (cos t_0)) 2.0) (pow (* b (sin t_0)) 2.0))))
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \mathsf{PI}\left(\right) \cdot \frac{angle}{180}\\
{\left(a \cdot \cos t\_0\right)}^{2} + {\left(b \cdot \sin t\_0\right)}^{2}
\end{array}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 11 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (a b angle) :precision binary64 (let* ((t_0 (* (PI) (/ angle 180.0)))) (+ (pow (* a (cos t_0)) 2.0) (pow (* b (sin t_0)) 2.0))))
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \mathsf{PI}\left(\right) \cdot \frac{angle}{180}\\
{\left(a \cdot \cos t\_0\right)}^{2} + {\left(b \cdot \sin t\_0\right)}^{2}
\end{array}
\end{array}
(FPCore (a b angle) :precision binary64 (let* ((t_0 (* (PI) (/ angle 180.0)))) (+ (pow (* a (cos t_0)) 2.0) (pow (* b (sin t_0)) 2.0))))
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \mathsf{PI}\left(\right) \cdot \frac{angle}{180}\\
{\left(a \cdot \cos t\_0\right)}^{2} + {\left(b \cdot \sin t\_0\right)}^{2}
\end{array}
\end{array}
Initial program 81.5%
(FPCore (a b angle)
:precision binary64
(let* ((t_0 (* (PI) (/ angle 180.0))) (t_1 (pow (* b (sin t_0)) 2.0)))
(if (<= b -1.6e+144)
(+ t_0 t_1)
(if (<= b 1e+108) (pow (* a (cos t_0)) 2.0) (+ (pow t_0 2.0) t_1)))))\begin{array}{l}
\\
\begin{array}{l}
t_0 := \mathsf{PI}\left(\right) \cdot \frac{angle}{180}\\
t_1 := {\left(b \cdot \sin t\_0\right)}^{2}\\
\mathbf{if}\;b \leq -1.6 \cdot 10^{+144}:\\
\;\;\;\;t\_0 + t\_1\\
\mathbf{elif}\;b \leq 10^{+108}:\\
\;\;\;\;{\left(a \cdot \cos t\_0\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;{t\_0}^{2} + t\_1\\
\end{array}
\end{array}
if b < -1.6e144Initial program 94.4%
Taylor expanded in a around 0
Applied rewrites78.3%
Taylor expanded in angle around 0
Applied rewrites78.8%
Taylor expanded in angle around 0
Applied rewrites78.9%
if -1.6e144 < b < 1e108Initial program 77.2%
Taylor expanded in a around 0
Applied rewrites72.5%
if 1e108 < b Initial program 89.9%
Taylor expanded in a around 0
Applied rewrites72.9%
Taylor expanded in angle around 0
Applied rewrites75.2%
(FPCore (a b angle)
:precision binary64
(let* ((t_0 (* (PI) (/ angle 180.0))) (t_1 (+ t_0 (pow (* b (sin t_0)) 2.0))))
(if (<= b -1.6e+144)
t_1
(if (<= b 2.6e+108) (pow (* a (cos t_0)) 2.0) t_1))))\begin{array}{l}
\\
\begin{array}{l}
t_0 := \mathsf{PI}\left(\right) \cdot \frac{angle}{180}\\
t_1 := t\_0 + {\left(b \cdot \sin t\_0\right)}^{2}\\
\mathbf{if}\;b \leq -1.6 \cdot 10^{+144}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \leq 2.6 \cdot 10^{+108}:\\
\;\;\;\;{\left(a \cdot \cos t\_0\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if b < -1.6e144 or 2.6000000000000002e108 < b Initial program 91.7%
Taylor expanded in a around 0
Applied rewrites75.1%
Taylor expanded in angle around 0
Applied rewrites76.7%
Taylor expanded in angle around 0
Applied rewrites76.7%
if -1.6e144 < b < 2.6000000000000002e108Initial program 77.2%
Taylor expanded in a around 0
Applied rewrites72.5%
(FPCore (a b angle)
:precision binary64
(let* ((t_0 (* (PI) (PI))) (t_1 (* (PI) (/ angle 180.0))))
(if (<= b -2.3e+167)
(+ t_1 (pow (* b (sin t_0)) 2.0))
(if (<= b 1.25e+155)
(pow (* a (cos t_1)) 2.0)
(+ t_0 (pow (* b (sin t_1)) 2.0))))))\begin{array}{l}
\\
\begin{array}{l}
t_0 := \mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\\
t_1 := \mathsf{PI}\left(\right) \cdot \frac{angle}{180}\\
\mathbf{if}\;b \leq -2.3 \cdot 10^{+167}:\\
\;\;\;\;t\_1 + {\left(b \cdot \sin t\_0\right)}^{2}\\
\mathbf{elif}\;b \leq 1.25 \cdot 10^{+155}:\\
\;\;\;\;{\left(a \cdot \cos t\_1\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;t\_0 + {\left(b \cdot \sin t\_1\right)}^{2}\\
\end{array}
\end{array}
if b < -2.29999999999999988e167Initial program 96.4%
Taylor expanded in a around 0
Applied rewrites84.6%
Taylor expanded in angle around 0
Applied rewrites84.7%
Taylor expanded in angle around 0
Applied rewrites84.7%
Taylor expanded in angle around 0
Applied rewrites85.3%
if -2.29999999999999988e167 < b < 1.25e155Initial program 76.5%
Taylor expanded in a around 0
Applied rewrites69.1%
if 1.25e155 < b Initial program 99.6%
Taylor expanded in a around 0
Applied rewrites85.2%
Taylor expanded in angle around 0
Applied rewrites88.2%
Taylor expanded in angle around 0
Applied rewrites88.2%
Taylor expanded in angle around 0
Applied rewrites77.6%
(FPCore (a b angle)
:precision binary64
(let* ((t_0 (* (PI) (/ angle 180.0)))
(t_1 (+ (* (PI) (PI)) (pow (* b (sin t_0)) 2.0))))
(if (<= b -1.95e+154)
t_1
(if (<= b 1.25e+155) (pow (* a (cos t_0)) 2.0) t_1))))\begin{array}{l}
\\
\begin{array}{l}
t_0 := \mathsf{PI}\left(\right) \cdot \frac{angle}{180}\\
t_1 := \mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right) + {\left(b \cdot \sin t\_0\right)}^{2}\\
\mathbf{if}\;b \leq -1.95 \cdot 10^{+154}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;b \leq 1.25 \cdot 10^{+155}:\\
\;\;\;\;{\left(a \cdot \cos t\_0\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if b < -1.9500000000000001e154 or 1.25e155 < b Initial program 98.3%
Taylor expanded in a around 0
Applied rewrites84.2%
Taylor expanded in angle around 0
Applied rewrites85.8%
Taylor expanded in angle around 0
Applied rewrites85.8%
Taylor expanded in angle around 0
Applied rewrites78.6%
if -1.9500000000000001e154 < b < 1.25e155Initial program 76.1%
Taylor expanded in a around 0
Applied rewrites69.6%
(FPCore (a b angle)
:precision binary64
(let* ((t_0 (* (PI) (/ angle 180.0))))
(if (<= (/ angle 180.0) -2e+131)
(pow (pow t_0 2.0) 2.0)
(pow (* a (cos t_0)) 2.0))))\begin{array}{l}
\\
\begin{array}{l}
t_0 := \mathsf{PI}\left(\right) \cdot \frac{angle}{180}\\
\mathbf{if}\;\frac{angle}{180} \leq -2 \cdot 10^{+131}:\\
\;\;\;\;{\left({t\_0}^{2}\right)}^{2}\\
\mathbf{else}:\\
\;\;\;\;{\left(a \cdot \cos t\_0\right)}^{2}\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < -1.9999999999999998e131Initial program 62.9%
Taylor expanded in a around 0
Applied rewrites33.8%
Taylor expanded in angle around 0
Applied rewrites49.9%
if -1.9999999999999998e131 < (/.f64 angle #s(literal 180 binary64)) Initial program 85.1%
Taylor expanded in a around 0
Applied rewrites64.8%
(FPCore (a b angle) :precision binary64 (pow (pow (* (PI) (/ angle 180.0)) 2.0) 2.0))
\begin{array}{l}
\\
{\left({\left(\mathsf{PI}\left(\right) \cdot \frac{angle}{180}\right)}^{2}\right)}^{2}
\end{array}
Initial program 81.5%
Taylor expanded in a around 0
Applied rewrites59.7%
Taylor expanded in angle around 0
Applied rewrites24.3%
(FPCore (a b angle) :precision binary64 (pow (* (PI) (/ angle 180.0)) 2.0))
\begin{array}{l}
\\
{\left(\mathsf{PI}\left(\right) \cdot \frac{angle}{180}\right)}^{2}
\end{array}
Initial program 81.5%
Taylor expanded in a around 0
Applied rewrites27.8%
Taylor expanded in angle around 0
Applied rewrites34.3%
Taylor expanded in a around 0
Applied rewrites17.9%
(FPCore (a b angle) :precision binary64 (pow (* (PI) (PI)) 2.0))
\begin{array}{l}
\\
{\left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right)}^{2}
\end{array}
Initial program 81.5%
Taylor expanded in a around 0
Applied rewrites27.8%
Taylor expanded in angle around 0
Applied rewrites34.3%
Taylor expanded in a around 0
Applied rewrites17.9%
Taylor expanded in angle around 0
Applied rewrites4.3%
(FPCore (a b angle) :precision binary64 (* (PI) (PI)))
\begin{array}{l}
\\
\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)
\end{array}
Initial program 81.5%
Taylor expanded in a around 0
Applied rewrites59.7%
Taylor expanded in b around inf
Applied rewrites3.1%
Taylor expanded in angle around 0
Applied rewrites4.3%
(FPCore (a b angle) :precision binary64 (PI))
\begin{array}{l}
\\
\mathsf{PI}\left(\right)
\end{array}
Initial program 81.5%
Taylor expanded in a around 0
Applied rewrites59.7%
Taylor expanded in angle around 0
Applied rewrites4.3%
herbie shell --seed 2024321
(FPCore (a b angle)
:name "ab-angle->ABCF C"
:precision binary64
:pre (TRUE)
(+ (pow (* a (cos (* (PI) (/ angle 180.0)))) 2.0) (pow (* b (sin (* (PI) (/ angle 180.0)))) 2.0)))