
(FPCore (a b angle) :precision binary64 (let* ((t_0 (* (PI) (/ angle 180.0)))) (* (* (* 2.0 (- (pow b 2.0) (pow a 2.0))) (sin t_0)) (cos t_0))))
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \mathsf{PI}\left(\right) \cdot \frac{angle}{180}\\
\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin t\_0\right) \cdot \cos t\_0
\end{array}
\end{array}
Sampling outcomes in binary64 precision:
Herbie found 16 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (a b angle) :precision binary64 (let* ((t_0 (* (PI) (/ angle 180.0)))) (* (* (* 2.0 (- (pow b 2.0) (pow a 2.0))) (sin t_0)) (cos t_0))))
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \mathsf{PI}\left(\right) \cdot \frac{angle}{180}\\
\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin t\_0\right) \cdot \cos t\_0
\end{array}
\end{array}
b_m = (fabs.f64 b)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b_m angle_m)
:precision binary64
(let* ((t_0
(*
(* (sin (* (* 0.005555555555555556 (PI)) angle_m)) (* (+ a b_m) 2.0))
(- b_m a)))
(t_1 (* (PI) angle_m))
(t_2 (sqrt (PI))))
(*
angle_s
(if (<= b_m 1.9e-18)
(* (cos (* t_2 (* t_2 (/ angle_m -180.0)))) t_0)
(if (<= b_m 1.05e+226)
(* (cos (/ t_1 -180.0)) t_0)
(*
(sin (* (PI) (fma -0.005555555555555556 angle_m 0.5)))
(* (* (* b_m b_m) 2.0) (sin (* 0.005555555555555556 t_1)))))))))\begin{array}{l}
b_m = \left|b\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \left(\sin \left(\left(0.005555555555555556 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right) \cdot \left(\left(a + b\_m\right) \cdot 2\right)\right) \cdot \left(b\_m - a\right)\\
t_1 := \mathsf{PI}\left(\right) \cdot angle\_m\\
t_2 := \sqrt{\mathsf{PI}\left(\right)}\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;b\_m \leq 1.9 \cdot 10^{-18}:\\
\;\;\;\;\cos \left(t\_2 \cdot \left(t\_2 \cdot \frac{angle\_m}{-180}\right)\right) \cdot t\_0\\
\mathbf{elif}\;b\_m \leq 1.05 \cdot 10^{+226}:\\
\;\;\;\;\cos \left(\frac{t\_1}{-180}\right) \cdot t\_0\\
\mathbf{else}:\\
\;\;\;\;\sin \left(\mathsf{PI}\left(\right) \cdot \mathsf{fma}\left(-0.005555555555555556, angle\_m, 0.5\right)\right) \cdot \left(\left(\left(b\_m \cdot b\_m\right) \cdot 2\right) \cdot \sin \left(0.005555555555555556 \cdot t\_1\right)\right)\\
\end{array}
\end{array}
\end{array}
if b < 1.8999999999999999e-18Initial program 53.9%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6456.2
Applied rewrites56.2%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6456.2
Applied rewrites67.3%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-PI.f64N/A
add-sqr-sqrtN/A
associate-*l*N/A
lower-*.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
lower-*.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
lower-/.f6468.7
Applied rewrites68.7%
if 1.8999999999999999e-18 < b < 1.04999999999999997e226Initial program 51.4%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6453.8
Applied rewrites53.8%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6453.8
Applied rewrites71.5%
if 1.04999999999999997e226 < b Initial program 50.1%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-*.f64N/A
distribute-lft-neg-inN/A
lower-fma.f64N/A
lower-neg.f64N/A
lift-PI.f64N/A
lower-/.f6443.8
Applied rewrites43.8%
Taylor expanded in a around 0
count-2-revN/A
associate-*r*N/A
associate-*r*N/A
distribute-rgt-outN/A
count-2-revN/A
lower-*.f64N/A
Applied rewrites56.3%
b_m = (fabs.f64 b)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b_m angle_m)
:precision binary64
(let* ((t_0
(*
(* (sin (* (* 0.005555555555555556 (PI)) angle_m)) (* (+ a b_m) 2.0))
(- b_m a)))
(t_1 (* (PI) angle_m))
(t_2 (sqrt (PI))))
(*
angle_s
(if (<= b_m 2e-42)
(* (cos (* t_2 (* angle_m (/ t_2 -180.0)))) t_0)
(if (<= b_m 1.05e+226)
(* (cos (/ t_1 -180.0)) t_0)
(*
(sin (* (PI) (fma -0.005555555555555556 angle_m 0.5)))
(* (* (* b_m b_m) 2.0) (sin (* 0.005555555555555556 t_1)))))))))\begin{array}{l}
b_m = \left|b\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \left(\sin \left(\left(0.005555555555555556 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right) \cdot \left(\left(a + b\_m\right) \cdot 2\right)\right) \cdot \left(b\_m - a\right)\\
t_1 := \mathsf{PI}\left(\right) \cdot angle\_m\\
t_2 := \sqrt{\mathsf{PI}\left(\right)}\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;b\_m \leq 2 \cdot 10^{-42}:\\
\;\;\;\;\cos \left(t\_2 \cdot \left(angle\_m \cdot \frac{t\_2}{-180}\right)\right) \cdot t\_0\\
\mathbf{elif}\;b\_m \leq 1.05 \cdot 10^{+226}:\\
\;\;\;\;\cos \left(\frac{t\_1}{-180}\right) \cdot t\_0\\
\mathbf{else}:\\
\;\;\;\;\sin \left(\mathsf{PI}\left(\right) \cdot \mathsf{fma}\left(-0.005555555555555556, angle\_m, 0.5\right)\right) \cdot \left(\left(\left(b\_m \cdot b\_m\right) \cdot 2\right) \cdot \sin \left(0.005555555555555556 \cdot t\_1\right)\right)\\
\end{array}
\end{array}
\end{array}
if b < 2.00000000000000008e-42Initial program 52.8%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6455.2
Applied rewrites55.2%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6455.2
Applied rewrites66.3%
lift-*.f64N/A
*-commutativeN/A
lift-PI.f64N/A
add-sqr-sqrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
lift-PI.f64N/A
lower-sqrt.f6469.0
Applied rewrites69.0%
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-/.f6469.0
Applied rewrites69.0%
if 2.00000000000000008e-42 < b < 1.04999999999999997e226Initial program 54.9%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6457.0
Applied rewrites57.0%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6457.0
Applied rewrites73.8%
if 1.04999999999999997e226 < b Initial program 50.1%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-*.f64N/A
distribute-lft-neg-inN/A
lower-fma.f64N/A
lower-neg.f64N/A
lift-PI.f64N/A
lower-/.f6443.8
Applied rewrites43.8%
Taylor expanded in a around 0
count-2-revN/A
associate-*r*N/A
associate-*r*N/A
distribute-rgt-outN/A
count-2-revN/A
lower-*.f64N/A
Applied rewrites56.3%
b_m = (fabs.f64 b)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b_m angle_m)
:precision binary64
(let* ((t_0 (sin (* (* 0.005555555555555556 (PI)) angle_m))))
(*
angle_s
(if (<= a 3.1e+34)
(*
(sin (fma (/ angle_m 180.0) (PI) (/ (PI) 2.0)))
(* (* t_0 (* (+ a b_m) 2.0)) (- b_m a)))
(* (* (- b_m a) (* (* t_0 (+ a b_m)) 2.0)) 1.0)))))\begin{array}{l}
b_m = \left|b\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \sin \left(\left(0.005555555555555556 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;a \leq 3.1 \cdot 10^{+34}:\\
\;\;\;\;\sin \left(\mathsf{fma}\left(\frac{angle\_m}{180}, \mathsf{PI}\left(\right), \frac{\mathsf{PI}\left(\right)}{2}\right)\right) \cdot \left(\left(t\_0 \cdot \left(\left(a + b\_m\right) \cdot 2\right)\right) \cdot \left(b\_m - a\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(b\_m - a\right) \cdot \left(\left(t\_0 \cdot \left(a + b\_m\right)\right) \cdot 2\right)\right) \cdot 1\\
\end{array}
\end{array}
\end{array}
if a < 3.09999999999999977e34Initial program 54.7%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6458.3
Applied rewrites58.3%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6458.3
Applied rewrites67.1%
lift-cos.f64N/A
cos-neg-revN/A
lift-/.f64N/A
lift-*.f64N/A
associate-/l*N/A
distribute-rgt-neg-inN/A
distribute-frac-neg2N/A
metadata-evalN/A
lift-/.f64N/A
lift-*.f64N/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-PI.f64N/A
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-fma.f6465.9
Applied rewrites65.9%
if 3.09999999999999977e34 < a Initial program 47.8%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6450.4
Applied rewrites50.4%
Taylor expanded in angle around 0
Applied rewrites55.8%
Applied rewrites71.9%
b_m = (fabs.f64 b)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b_m angle_m)
:precision binary64
(let* ((t_0 (* (PI) angle_m)))
(*
angle_s
(if (<= b_m 1.05e+226)
(*
(cos (/ t_0 -180.0))
(*
(* (sin (* (* 0.005555555555555556 (PI)) angle_m)) (* (+ a b_m) 2.0))
(- b_m a)))
(*
(sin (* (PI) (fma -0.005555555555555556 angle_m 0.5)))
(* (* (* b_m b_m) 2.0) (sin (* 0.005555555555555556 t_0))))))))\begin{array}{l}
b_m = \left|b\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \mathsf{PI}\left(\right) \cdot angle\_m\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;b\_m \leq 1.05 \cdot 10^{+226}:\\
\;\;\;\;\cos \left(\frac{t\_0}{-180}\right) \cdot \left(\left(\sin \left(\left(0.005555555555555556 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right) \cdot \left(\left(a + b\_m\right) \cdot 2\right)\right) \cdot \left(b\_m - a\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\sin \left(\mathsf{PI}\left(\right) \cdot \mathsf{fma}\left(-0.005555555555555556, angle\_m, 0.5\right)\right) \cdot \left(\left(\left(b\_m \cdot b\_m\right) \cdot 2\right) \cdot \sin \left(0.005555555555555556 \cdot t\_0\right)\right)\\
\end{array}
\end{array}
\end{array}
if b < 1.04999999999999997e226Initial program 53.3%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6455.7
Applied rewrites55.7%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6455.7
Applied rewrites68.2%
if 1.04999999999999997e226 < b Initial program 50.1%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-*.f64N/A
distribute-lft-neg-inN/A
lower-fma.f64N/A
lower-neg.f64N/A
lift-PI.f64N/A
lower-/.f6443.8
Applied rewrites43.8%
Taylor expanded in a around 0
count-2-revN/A
associate-*r*N/A
associate-*r*N/A
distribute-rgt-outN/A
count-2-revN/A
lower-*.f64N/A
Applied rewrites56.3%
b_m = (fabs.f64 b)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b_m angle_m)
:precision binary64
(let* ((t_0 (* (PI) angle_m)))
(*
angle_s
(if (<= b_m 1.05e+226)
(*
(cos (* t_0 -0.005555555555555556))
(*
(* (sin (* (* 0.005555555555555556 (PI)) angle_m)) (* (+ a b_m) 2.0))
(- b_m a)))
(*
(sin (* (PI) (fma -0.005555555555555556 angle_m 0.5)))
(* (* (* b_m b_m) 2.0) (sin (* 0.005555555555555556 t_0))))))))\begin{array}{l}
b_m = \left|b\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \mathsf{PI}\left(\right) \cdot angle\_m\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;b\_m \leq 1.05 \cdot 10^{+226}:\\
\;\;\;\;\cos \left(t\_0 \cdot -0.005555555555555556\right) \cdot \left(\left(\sin \left(\left(0.005555555555555556 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right) \cdot \left(\left(a + b\_m\right) \cdot 2\right)\right) \cdot \left(b\_m - a\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\sin \left(\mathsf{PI}\left(\right) \cdot \mathsf{fma}\left(-0.005555555555555556, angle\_m, 0.5\right)\right) \cdot \left(\left(\left(b\_m \cdot b\_m\right) \cdot 2\right) \cdot \sin \left(0.005555555555555556 \cdot t\_0\right)\right)\\
\end{array}
\end{array}
\end{array}
if b < 1.04999999999999997e226Initial program 53.3%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6455.7
Applied rewrites55.7%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6455.7
Applied rewrites68.2%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6468.1
Applied rewrites68.1%
if 1.04999999999999997e226 < b Initial program 50.1%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-*.f64N/A
distribute-lft-neg-inN/A
lower-fma.f64N/A
lower-neg.f64N/A
lift-PI.f64N/A
lower-/.f6443.8
Applied rewrites43.8%
Taylor expanded in a around 0
count-2-revN/A
associate-*r*N/A
associate-*r*N/A
distribute-rgt-outN/A
count-2-revN/A
lower-*.f64N/A
Applied rewrites56.3%
b_m = (fabs.f64 b)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b_m angle_m)
:precision binary64
(let* ((t_0 (sin (* (* 0.005555555555555556 (PI)) angle_m))))
(*
angle_s
(if (<= a 5.3e-107)
(* (* (* t_0 b_m) (* b_m 2.0)) (cos (* (PI) (/ angle_m 180.0))))
(* (* (- b_m a) (* (* t_0 (+ a b_m)) 2.0)) 1.0)))))\begin{array}{l}
b_m = \left|b\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \sin \left(\left(0.005555555555555556 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;a \leq 5.3 \cdot 10^{-107}:\\
\;\;\;\;\left(\left(t\_0 \cdot b\_m\right) \cdot \left(b\_m \cdot 2\right)\right) \cdot \cos \left(\mathsf{PI}\left(\right) \cdot \frac{angle\_m}{180}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(b\_m - a\right) \cdot \left(\left(t\_0 \cdot \left(a + b\_m\right)\right) \cdot 2\right)\right) \cdot 1\\
\end{array}
\end{array}
\end{array}
if a < 5.3e-107Initial program 54.0%
Taylor expanded in a around 0
associate-*r*N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6444.5
Applied rewrites44.5%
Applied rewrites46.7%
if 5.3e-107 < a Initial program 51.4%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6453.0
Applied rewrites53.0%
Taylor expanded in angle around 0
Applied rewrites54.5%
Applied rewrites68.0%
b_m = (fabs.f64 b)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b_m angle_m)
:precision binary64
(let* ((t_0 (sqrt (PI))) (t_1 (* (PI) angle_m)))
(*
angle_s
(if (<= a 1.6e-160)
(*
(sin (* (PI) (fma -0.005555555555555556 angle_m 0.5)))
(* (* (* b_m b_m) 2.0) (sin (* 0.005555555555555556 t_1))))
(if (<= a 4.9e-33)
(*
(cos (/ (* (* angle_m t_0) t_0) -180.0))
(* (* (* t_1 0.005555555555555556) (* (+ a b_m) 2.0)) (- b_m a)))
(*
(*
(- b_m a)
(*
(* (sin (* (* 0.005555555555555556 (PI)) angle_m)) (+ a b_m))
2.0))
1.0))))))\begin{array}{l}
b_m = \left|b\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \sqrt{\mathsf{PI}\left(\right)}\\
t_1 := \mathsf{PI}\left(\right) \cdot angle\_m\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;a \leq 1.6 \cdot 10^{-160}:\\
\;\;\;\;\sin \left(\mathsf{PI}\left(\right) \cdot \mathsf{fma}\left(-0.005555555555555556, angle\_m, 0.5\right)\right) \cdot \left(\left(\left(b\_m \cdot b\_m\right) \cdot 2\right) \cdot \sin \left(0.005555555555555556 \cdot t\_1\right)\right)\\
\mathbf{elif}\;a \leq 4.9 \cdot 10^{-33}:\\
\;\;\;\;\cos \left(\frac{\left(angle\_m \cdot t\_0\right) \cdot t\_0}{-180}\right) \cdot \left(\left(\left(t\_1 \cdot 0.005555555555555556\right) \cdot \left(\left(a + b\_m\right) \cdot 2\right)\right) \cdot \left(b\_m - a\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(b\_m - a\right) \cdot \left(\left(\sin \left(\left(0.005555555555555556 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right) \cdot \left(a + b\_m\right)\right) \cdot 2\right)\right) \cdot 1\\
\end{array}
\end{array}
\end{array}
if a < 1.60000000000000004e-160Initial program 53.9%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-*.f64N/A
distribute-lft-neg-inN/A
lower-fma.f64N/A
lower-neg.f64N/A
lift-PI.f64N/A
lower-/.f6456.9
Applied rewrites56.9%
Taylor expanded in a around 0
count-2-revN/A
associate-*r*N/A
associate-*r*N/A
distribute-rgt-outN/A
count-2-revN/A
lower-*.f64N/A
Applied rewrites46.3%
if 1.60000000000000004e-160 < a < 4.8999999999999998e-33Initial program 58.8%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6458.7
Applied rewrites58.7%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6458.7
Applied rewrites65.2%
lift-*.f64N/A
*-commutativeN/A
lift-PI.f64N/A
add-sqr-sqrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
lift-PI.f64N/A
lower-sqrt.f6461.9
Applied rewrites61.9%
Taylor expanded in angle around 0
Applied rewrites60.7%
if 4.8999999999999998e-33 < a Initial program 48.9%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6451.0
Applied rewrites51.0%
Taylor expanded in angle around 0
Applied rewrites55.6%
Applied rewrites70.7%
b_m = (fabs.f64 b)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b_m angle_m)
:precision binary64
(*
angle_s
(if (<= (* 2.0 (- (pow b_m 2.0) (pow a 2.0))) -2e-262)
(* (* -0.011111111111111112 a) (* a (* angle_m (PI))))
(* (* (* (PI) (* b_m b_m)) angle_m) 0.011111111111111112))))\begin{array}{l}
b_m = \left|b\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;2 \cdot \left({b\_m}^{2} - {a}^{2}\right) \leq -2 \cdot 10^{-262}:\\
\;\;\;\;\left(-0.011111111111111112 \cdot a\right) \cdot \left(a \cdot \left(angle\_m \cdot \mathsf{PI}\left(\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\mathsf{PI}\left(\right) \cdot \left(b\_m \cdot b\_m\right)\right) \cdot angle\_m\right) \cdot 0.011111111111111112\\
\end{array}
\end{array}
if (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) < -2.00000000000000002e-262Initial program 50.9%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6451.1
Applied rewrites51.1%
Taylor expanded in a around inf
Applied rewrites49.6%
Applied rewrites63.4%
if -2.00000000000000002e-262 < (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) Initial program 54.8%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6455.7
Applied rewrites55.7%
Taylor expanded in a around 0
Applied rewrites58.9%
Final simplification60.8%
b_m = (fabs.f64 b)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b_m angle_m)
:precision binary64
(let* ((t_0 (sqrt (PI))) (t_1 (* (PI) angle_m)))
(*
angle_s
(if (<= angle_m 5.4e+23)
(*
(cos (/ t_1 -180.0))
(* (* (* (* (+ a b_m) (PI)) angle_m) 0.011111111111111112) (- b_m a)))
(if (<= angle_m 5.4e+212)
(*
(*
(* 2.0 (* (+ b_m a) (- b_m a)))
(sin (* t_0 (* t_0 (* 0.005555555555555556 angle_m)))))
1.0)
(*
(cos (/ (* (* angle_m t_0) t_0) -180.0))
(* (* (* t_1 0.005555555555555556) (* (+ a b_m) 2.0)) (- b_m a))))))))\begin{array}{l}
b_m = \left|b\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \sqrt{\mathsf{PI}\left(\right)}\\
t_1 := \mathsf{PI}\left(\right) \cdot angle\_m\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 5.4 \cdot 10^{+23}:\\
\;\;\;\;\cos \left(\frac{t\_1}{-180}\right) \cdot \left(\left(\left(\left(\left(a + b\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right) \cdot 0.011111111111111112\right) \cdot \left(b\_m - a\right)\right)\\
\mathbf{elif}\;angle\_m \leq 5.4 \cdot 10^{+212}:\\
\;\;\;\;\left(\left(2 \cdot \left(\left(b\_m + a\right) \cdot \left(b\_m - a\right)\right)\right) \cdot \sin \left(t\_0 \cdot \left(t\_0 \cdot \left(0.005555555555555556 \cdot angle\_m\right)\right)\right)\right) \cdot 1\\
\mathbf{else}:\\
\;\;\;\;\cos \left(\frac{\left(angle\_m \cdot t\_0\right) \cdot t\_0}{-180}\right) \cdot \left(\left(\left(t\_1 \cdot 0.005555555555555556\right) \cdot \left(\left(a + b\_m\right) \cdot 2\right)\right) \cdot \left(b\_m - a\right)\right)\\
\end{array}
\end{array}
\end{array}
if angle < 5.3999999999999997e23Initial program 58.2%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6461.9
Applied rewrites61.9%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6461.9
Applied rewrites75.8%
Taylor expanded in angle around 0
Applied rewrites70.9%
if 5.3999999999999997e23 < angle < 5.4e212Initial program 39.2%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6441.7
Applied rewrites41.7%
Taylor expanded in angle around 0
Applied rewrites53.6%
Applied rewrites61.9%
if 5.4e212 < angle Initial program 24.6%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6425.4
Applied rewrites25.4%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6425.4
Applied rewrites26.2%
lift-*.f64N/A
*-commutativeN/A
lift-PI.f64N/A
add-sqr-sqrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
lift-PI.f64N/A
lower-sqrt.f6457.1
Applied rewrites57.1%
Taylor expanded in angle around 0
Applied rewrites34.8%
b_m = (fabs.f64 b)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b_m angle_m)
:precision binary64
(let* ((t_0 (sqrt (PI))))
(*
angle_s
(if (<= angle_m 5.4e+23)
(*
(cos (/ (* (PI) angle_m) -180.0))
(* (* (* (* (+ a b_m) (PI)) angle_m) 0.011111111111111112) (- b_m a)))
(if (<= angle_m 7.2e+205)
(*
(*
(* 2.0 (* (+ b_m a) (- b_m a)))
(sin (* t_0 (* t_0 (* 0.005555555555555556 angle_m)))))
1.0)
(*
angle_m
(* 0.011111111111111112 (* (* (PI) (- b_m a)) (+ a b_m)))))))))\begin{array}{l}
b_m = \left|b\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \sqrt{\mathsf{PI}\left(\right)}\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 5.4 \cdot 10^{+23}:\\
\;\;\;\;\cos \left(\frac{\mathsf{PI}\left(\right) \cdot angle\_m}{-180}\right) \cdot \left(\left(\left(\left(\left(a + b\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right) \cdot 0.011111111111111112\right) \cdot \left(b\_m - a\right)\right)\\
\mathbf{elif}\;angle\_m \leq 7.2 \cdot 10^{+205}:\\
\;\;\;\;\left(\left(2 \cdot \left(\left(b\_m + a\right) \cdot \left(b\_m - a\right)\right)\right) \cdot \sin \left(t\_0 \cdot \left(t\_0 \cdot \left(0.005555555555555556 \cdot angle\_m\right)\right)\right)\right) \cdot 1\\
\mathbf{else}:\\
\;\;\;\;angle\_m \cdot \left(0.011111111111111112 \cdot \left(\left(\mathsf{PI}\left(\right) \cdot \left(b\_m - a\right)\right) \cdot \left(a + b\_m\right)\right)\right)\\
\end{array}
\end{array}
\end{array}
if angle < 5.3999999999999997e23Initial program 58.2%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6461.9
Applied rewrites61.9%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6461.9
Applied rewrites75.8%
Taylor expanded in angle around 0
Applied rewrites70.9%
if 5.3999999999999997e23 < angle < 7.20000000000000003e205Initial program 34.7%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6437.5
Applied rewrites37.5%
Taylor expanded in angle around 0
Applied rewrites47.8%
Applied rewrites60.3%
if 7.20000000000000003e205 < angle Initial program 33.8%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6455.6
Applied rewrites55.6%
Applied rewrites55.6%
Final simplification68.2%
b_m = (fabs.f64 b)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b_m angle_m)
:precision binary64
(*
angle_s
(if (<= angle_m 1.85e+88)
(* (- b_m a) (* (* (* 0.011111111111111112 angle_m) (PI)) (+ a b_m)))
(if (<= angle_m 2.2e+208)
(*
(* (* -2.0 (* a a)) (sin (* (* (PI) 0.005555555555555556) angle_m)))
1.0)
(* angle_m (* 0.011111111111111112 (* (* (PI) (- b_m a)) (+ a b_m))))))))\begin{array}{l}
b_m = \left|b\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 1.85 \cdot 10^{+88}:\\
\;\;\;\;\left(b\_m - a\right) \cdot \left(\left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \left(a + b\_m\right)\right)\\
\mathbf{elif}\;angle\_m \leq 2.2 \cdot 10^{+208}:\\
\;\;\;\;\left(\left(-2 \cdot \left(a \cdot a\right)\right) \cdot \sin \left(\left(\mathsf{PI}\left(\right) \cdot 0.005555555555555556\right) \cdot angle\_m\right)\right) \cdot 1\\
\mathbf{else}:\\
\;\;\;\;angle\_m \cdot \left(0.011111111111111112 \cdot \left(\left(\mathsf{PI}\left(\right) \cdot \left(b\_m - a\right)\right) \cdot \left(a + b\_m\right)\right)\right)\\
\end{array}
\end{array}
if angle < 1.84999999999999997e88Initial program 56.8%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6458.0
Applied rewrites58.0%
Applied rewrites69.6%
if 1.84999999999999997e88 < angle < 2.20000000000000014e208Initial program 41.7%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6446.2
Applied rewrites46.2%
Taylor expanded in angle around 0
Applied rewrites56.2%
Taylor expanded in a around inf
Applied rewrites43.1%
if 2.20000000000000014e208 < angle Initial program 30.6%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6453.5
Applied rewrites53.5%
Applied rewrites53.5%
Final simplification65.7%
b_m = (fabs.f64 b)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b_m angle_m)
:precision binary64
(*
angle_s
(if (<= angle_m 1.15e+88)
(* (- b_m a) (* (* (* 0.011111111111111112 angle_m) (PI)) (+ a b_m)))
(*
(*
(* 2.0 (* (+ b_m a) (- b_m a)))
(sin (* (* (PI) 0.005555555555555556) angle_m)))
1.0))))\begin{array}{l}
b_m = \left|b\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 1.15 \cdot 10^{+88}:\\
\;\;\;\;\left(b\_m - a\right) \cdot \left(\left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \left(a + b\_m\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(2 \cdot \left(\left(b\_m + a\right) \cdot \left(b\_m - a\right)\right)\right) \cdot \sin \left(\left(\mathsf{PI}\left(\right) \cdot 0.005555555555555556\right) \cdot angle\_m\right)\right) \cdot 1\\
\end{array}
\end{array}
if angle < 1.1500000000000001e88Initial program 56.8%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6458.0
Applied rewrites58.0%
Applied rewrites69.6%
if 1.1500000000000001e88 < angle Initial program 36.7%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6439.4
Applied rewrites39.4%
Taylor expanded in angle around 0
Applied rewrites51.9%
Final simplification66.4%
b_m = (fabs.f64 b)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b_m angle_m)
:precision binary64
(*
angle_s
(if (<= angle_m 1.15e+88)
(* (- b_m a) (* (* (* 0.011111111111111112 angle_m) (PI)) (+ a b_m)))
(*
(*
(* 2.0 (* (+ b_m a) (- b_m a)))
(sin (* (* 0.005555555555555556 angle_m) (PI))))
1.0))))\begin{array}{l}
b_m = \left|b\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 1.15 \cdot 10^{+88}:\\
\;\;\;\;\left(b\_m - a\right) \cdot \left(\left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \left(a + b\_m\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(2 \cdot \left(\left(b\_m + a\right) \cdot \left(b\_m - a\right)\right)\right) \cdot \sin \left(\left(0.005555555555555556 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right)\right) \cdot 1\\
\end{array}
\end{array}
if angle < 1.1500000000000001e88Initial program 56.8%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6458.0
Applied rewrites58.0%
Applied rewrites69.6%
if 1.1500000000000001e88 < angle Initial program 36.7%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6439.4
Applied rewrites39.4%
Taylor expanded in angle around 0
Applied rewrites51.9%
Applied rewrites49.8%
Final simplification66.1%
b_m = (fabs.f64 b)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b_m angle_m)
:precision binary64
(*
angle_s
(*
(*
(- b_m a)
(* (* (sin (* (* 0.005555555555555556 (PI)) angle_m)) (+ a b_m)) 2.0))
1.0)))\begin{array}{l}
b_m = \left|b\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \left(\left(\left(b\_m - a\right) \cdot \left(\left(\sin \left(\left(0.005555555555555556 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right) \cdot \left(a + b\_m\right)\right) \cdot 2\right)\right) \cdot 1\right)
\end{array}
Initial program 53.1%
Taylor expanded in angle around inf
*-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f64N/A
*-commutativeN/A
associate-*r*N/A
lower-sin.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6456.5
Applied rewrites56.5%
Taylor expanded in angle around 0
Applied rewrites55.9%
Applied rewrites65.8%
b_m = (fabs.f64 b)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b_m angle_m)
:precision binary64
(*
angle_s
(if (<= a 3.45e-161)
(* (* (* (- b_m a) (+ a b_m)) 0.011111111111111112) (* (PI) angle_m))
(* (- b_m a) (* (* (* 0.011111111111111112 angle_m) (PI)) (+ a b_m))))))\begin{array}{l}
b_m = \left|b\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;a \leq 3.45 \cdot 10^{-161}:\\
\;\;\;\;\left(\left(\left(b\_m - a\right) \cdot \left(a + b\_m\right)\right) \cdot 0.011111111111111112\right) \cdot \left(\mathsf{PI}\left(\right) \cdot angle\_m\right)\\
\mathbf{else}:\\
\;\;\;\;\left(b\_m - a\right) \cdot \left(\left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \left(a + b\_m\right)\right)\\
\end{array}
\end{array}
if a < 3.45000000000000001e-161Initial program 53.9%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6455.3
Applied rewrites55.3%
Applied rewrites55.8%
if 3.45000000000000001e-161 < a Initial program 51.9%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6451.1
Applied rewrites51.1%
Applied rewrites63.6%
Final simplification58.8%
b_m = (fabs.f64 b) angle\_m = (fabs.f64 angle) angle\_s = (copysign.f64 #s(literal 1 binary64) angle) (FPCore (angle_s a b_m angle_m) :precision binary64 (* angle_s (* (* -0.011111111111111112 a) (* a (* angle_m (PI))))))
\begin{array}{l}
b_m = \left|b\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \left(\left(-0.011111111111111112 \cdot a\right) \cdot \left(a \cdot \left(angle\_m \cdot \mathsf{PI}\left(\right)\right)\right)\right)
\end{array}
Initial program 53.1%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6453.7
Applied rewrites53.7%
Taylor expanded in a around inf
Applied rewrites32.1%
Applied rewrites37.2%
Final simplification37.2%
herbie shell --seed 2025005
(FPCore (a b angle)
:name "ab-angle->ABCF B"
:precision binary64
(* (* (* 2.0 (- (pow b 2.0) (pow a 2.0))) (sin (* (PI) (/ angle 180.0)))) (cos (* (PI) (/ angle 180.0)))))