
(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 23 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}
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(let* ((t_0 (cbrt (PI)))
(t_1 (* 2.0 (- b a)))
(t_2 (sqrt (PI)))
(t_3 (pow t_0 2.0)))
(*
angle_s
(if (<= angle_m 1.1e+76)
(*
(+ a b)
(*
t_1
(*
(cos (* (* (* 0.005555555555555556 angle_m) t_2) t_2))
(sin (* (PI) (/ angle_m 180.0))))))
(if (<= angle_m 4e+142)
(* (+ a b) (* t_1 (* 1.0 (sin (* (* (/ angle_m 180.0) t_3) t_0)))))
(*
(* (cos (* (/ angle_m 180.0) (PI))) (* (* (+ b a) (- b a)) 2.0))
(sin (* (* t_3 (* t_0 angle_m)) 0.005555555555555556))))))))\begin{array}{l}
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \sqrt[3]{\mathsf{PI}\left(\right)}\\
t_1 := 2 \cdot \left(b - a\right)\\
t_2 := \sqrt{\mathsf{PI}\left(\right)}\\
t_3 := {t\_0}^{2}\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 1.1 \cdot 10^{+76}:\\
\;\;\;\;\left(a + b\right) \cdot \left(t\_1 \cdot \left(\cos \left(\left(\left(0.005555555555555556 \cdot angle\_m\right) \cdot t\_2\right) \cdot t\_2\right) \cdot \sin \left(\mathsf{PI}\left(\right) \cdot \frac{angle\_m}{180}\right)\right)\right)\\
\mathbf{elif}\;angle\_m \leq 4 \cdot 10^{+142}:\\
\;\;\;\;\left(a + b\right) \cdot \left(t\_1 \cdot \left(1 \cdot \sin \left(\left(\frac{angle\_m}{180} \cdot t\_3\right) \cdot t\_0\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\cos \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right) \cdot \left(\left(\left(b + a\right) \cdot \left(b - a\right)\right) \cdot 2\right)\right) \cdot \sin \left(\left(t\_3 \cdot \left(t\_0 \cdot angle\_m\right)\right) \cdot 0.005555555555555556\right)\\
\end{array}
\end{array}
\end{array}
if angle < 1.1e76Initial program 63.3%
Taylor expanded in angle around 0
lower-*.f6462.9
Applied rewrites62.9%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-pow.f64N/A
lift-pow.f64N/A
pow2N/A
pow2N/A
difference-of-squares-revN/A
lift-+.f64N/A
lift--.f64N/A
associate-*l*N/A
Applied rewrites74.8%
lift-*.f64N/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.f6475.3
Applied rewrites75.3%
if 1.1e76 < angle < 4.0000000000000002e142Initial program 22.5%
Taylor expanded in angle around 0
lower-*.f6416.7
Applied rewrites16.7%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-pow.f64N/A
lift-pow.f64N/A
pow2N/A
pow2N/A
difference-of-squares-revN/A
lift-+.f64N/A
lift--.f64N/A
associate-*l*N/A
Applied rewrites16.7%
lift-*.f64N/A
*-commutativeN/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
pow2N/A
lower-pow.f64N/A
lift-PI.f64N/A
lower-cbrt.f64N/A
lift-PI.f64N/A
lower-cbrt.f6430.0
Applied rewrites30.0%
Taylor expanded in angle around 0
Applied rewrites46.2%
if 4.0000000000000002e142 < angle Initial program 23.2%
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites26.9%
Taylor expanded in angle around inf
lower-sin.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6424.5
Applied rewrites24.5%
Applied rewrites49.2%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(let* ((t_0 (sqrt (PI))) (t_1 (cbrt (PI))) (t_2 (* 2.0 (- b a))))
(*
angle_s
(if (<= angle_m 1.16e+93)
(*
(+ a b)
(*
t_2
(*
(cos (* (* (* 0.005555555555555556 angle_m) t_0) t_0))
(sin (* (PI) (/ angle_m 180.0))))))
(*
(+ a b)
(*
t_2
(*
(cos (* -0.005555555555555556 (* (PI) angle_m)))
(sin (* (* (/ angle_m 180.0) (pow t_1 2.0)) t_1)))))))))\begin{array}{l}
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 := \sqrt[3]{\mathsf{PI}\left(\right)}\\
t_2 := 2 \cdot \left(b - a\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 1.16 \cdot 10^{+93}:\\
\;\;\;\;\left(a + b\right) \cdot \left(t\_2 \cdot \left(\cos \left(\left(\left(0.005555555555555556 \cdot angle\_m\right) \cdot t\_0\right) \cdot t\_0\right) \cdot \sin \left(\mathsf{PI}\left(\right) \cdot \frac{angle\_m}{180}\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a + b\right) \cdot \left(t\_2 \cdot \left(\cos \left(-0.005555555555555556 \cdot \left(\mathsf{PI}\left(\right) \cdot angle\_m\right)\right) \cdot \sin \left(\left(\frac{angle\_m}{180} \cdot {t\_1}^{2}\right) \cdot t\_1\right)\right)\right)\\
\end{array}
\end{array}
\end{array}
if angle < 1.16e93Initial program 62.7%
Taylor expanded in angle around 0
lower-*.f6462.3
Applied rewrites62.3%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-pow.f64N/A
lift-pow.f64N/A
pow2N/A
pow2N/A
difference-of-squares-revN/A
lift-+.f64N/A
lift--.f64N/A
associate-*l*N/A
Applied rewrites73.9%
lift-*.f64N/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.f6474.3
Applied rewrites74.3%
if 1.16e93 < angle Initial program 20.0%
Taylor expanded in angle around 0
lower-*.f6419.7
Applied rewrites19.7%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-pow.f64N/A
lift-pow.f64N/A
pow2N/A
pow2N/A
difference-of-squares-revN/A
lift-+.f64N/A
lift--.f64N/A
associate-*l*N/A
Applied rewrites22.1%
lift-*.f64N/A
*-commutativeN/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
pow2N/A
lower-pow.f64N/A
lift-PI.f64N/A
lower-cbrt.f64N/A
lift-PI.f64N/A
lower-cbrt.f6436.6
Applied rewrites36.6%
Taylor expanded in angle around inf
cos-neg-revN/A
lower-cos.f64N/A
distribute-lft-neg-inN/A
metadata-evalN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6446.7
Applied rewrites46.7%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(let* ((t_0 (cbrt (PI))) (t_1 (sqrt (PI))) (t_2 (* 2.0 (- b a))))
(*
angle_s
(if (<= angle_m 1.1e+76)
(*
(+ a b)
(*
t_2
(*
(cos (* (* (* 0.005555555555555556 angle_m) t_1) t_1))
(sin (* (PI) (/ angle_m 180.0))))))
(*
(+ a b)
(* t_2 (* 1.0 (sin (* (* (/ angle_m 180.0) (pow t_0 2.0)) t_0)))))))))\begin{array}{l}
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \sqrt[3]{\mathsf{PI}\left(\right)}\\
t_1 := \sqrt{\mathsf{PI}\left(\right)}\\
t_2 := 2 \cdot \left(b - a\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 1.1 \cdot 10^{+76}:\\
\;\;\;\;\left(a + b\right) \cdot \left(t\_2 \cdot \left(\cos \left(\left(\left(0.005555555555555556 \cdot angle\_m\right) \cdot t\_1\right) \cdot t\_1\right) \cdot \sin \left(\mathsf{PI}\left(\right) \cdot \frac{angle\_m}{180}\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a + b\right) \cdot \left(t\_2 \cdot \left(1 \cdot \sin \left(\left(\frac{angle\_m}{180} \cdot {t\_0}^{2}\right) \cdot t\_0\right)\right)\right)\\
\end{array}
\end{array}
\end{array}
if angle < 1.1e76Initial program 63.3%
Taylor expanded in angle around 0
lower-*.f6462.9
Applied rewrites62.9%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-pow.f64N/A
lift-pow.f64N/A
pow2N/A
pow2N/A
difference-of-squares-revN/A
lift-+.f64N/A
lift--.f64N/A
associate-*l*N/A
Applied rewrites74.8%
lift-*.f64N/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.f6475.3
Applied rewrites75.3%
if 1.1e76 < angle Initial program 22.9%
Taylor expanded in angle around 0
lower-*.f6422.6
Applied rewrites22.6%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-pow.f64N/A
lift-pow.f64N/A
pow2N/A
pow2N/A
difference-of-squares-revN/A
lift-+.f64N/A
lift--.f64N/A
associate-*l*N/A
Applied rewrites24.7%
lift-*.f64N/A
*-commutativeN/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
pow2N/A
lower-pow.f64N/A
lift-PI.f64N/A
lower-cbrt.f64N/A
lift-PI.f64N/A
lower-cbrt.f6437.1
Applied rewrites37.1%
Taylor expanded in angle around 0
Applied rewrites41.3%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(let* ((t_0 (* (PI) angle_m)) (t_1 (sin (* t_0 0.005555555555555556))))
(*
angle_s
(if (<= angle_m 2.2e+44)
(*
(* (- b a) (* (+ b a) t_1))
(* (cos (* -0.005555555555555556 t_0)) 2.0))
(if (<= angle_m 6.4e+141)
(* (* (fma (- a) a (* b b)) 2.0) (sin (* (/ angle_m 180.0) (PI))))
(*
(*
(sin (fma (/ angle_m 180.0) (PI) (/ (PI) 2.0)))
(* (* (+ b a) (- b a)) 2.0))
t_1))))))\begin{array}{l}
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\\
t_1 := \sin \left(t\_0 \cdot 0.005555555555555556\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 2.2 \cdot 10^{+44}:\\
\;\;\;\;\left(\left(b - a\right) \cdot \left(\left(b + a\right) \cdot t\_1\right)\right) \cdot \left(\cos \left(-0.005555555555555556 \cdot t\_0\right) \cdot 2\right)\\
\mathbf{elif}\;angle\_m \leq 6.4 \cdot 10^{+141}:\\
\;\;\;\;\left(\mathsf{fma}\left(-a, a, b \cdot b\right) \cdot 2\right) \cdot \sin \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\sin \left(\mathsf{fma}\left(\frac{angle\_m}{180}, \mathsf{PI}\left(\right), \frac{\mathsf{PI}\left(\right)}{2}\right)\right) \cdot \left(\left(\left(b + a\right) \cdot \left(b - a\right)\right) \cdot 2\right)\right) \cdot t\_1\\
\end{array}
\end{array}
\end{array}
if angle < 2.19999999999999996e44Initial program 64.0%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6464.0
lift-*.f64N/A
*-commutativeN/A
lower-*.f6464.0
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6468.0
Applied rewrites68.0%
lift-+.f64N/A
flip3-+N/A
lower-/.f64N/A
+-commutativeN/A
lower-+.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lift-*.f64N/A
+-commutativeN/A
distribute-rgt-out--N/A
lower-fma.f64N/A
lower--.f6428.5
Applied rewrites28.5%
Taylor expanded in angle around inf
count-2-revN/A
associate-/l*N/A
associate-/l*N/A
distribute-rgt-outN/A
Applied rewrites24.3%
Applied rewrites76.9%
if 2.19999999999999996e44 < angle < 6.40000000000000038e141Initial program 26.6%
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites26.6%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
+-commutativeN/A
difference-of-squares-revN/A
unpow2N/A
fp-cancel-sub-sign-invN/A
distribute-lft-neg-inN/A
unpow2N/A
mul-1-negN/A
+-commutativeN/A
mul-1-negN/A
unpow2N/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
lower-neg.f64N/A
unpow2N/A
lower-*.f6441.6
Applied rewrites41.6%
if 6.40000000000000038e141 < angle Initial program 23.2%
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites26.9%
Taylor expanded in angle around inf
lower-sin.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6424.5
Applied rewrites24.5%
lift-cos.f64N/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-*.f64N/A
lower-fma.f64N/A
lift-PI.f64N/A
lower-/.f6437.7
Applied rewrites37.7%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(let* ((t_0 (* (PI) angle_m)))
(*
angle_s
(if (<= b 7.4e-134)
(*
(+ a b)
(*
(* -2.0 a)
(*
(sin (* t_0 0.005555555555555556))
(cos (* -0.005555555555555556 t_0)))))
(*
(+ a b)
(*
(* 2.0 (- b a))
(*
(sin (fma (PI) (* 0.005555555555555556 angle_m) (/ (PI) 2.0)))
(sin (* (PI) (/ angle_m 180.0))))))))))\begin{array}{l}
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 \leq 7.4 \cdot 10^{-134}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(-2 \cdot a\right) \cdot \left(\sin \left(t\_0 \cdot 0.005555555555555556\right) \cdot \cos \left(-0.005555555555555556 \cdot t\_0\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(2 \cdot \left(b - a\right)\right) \cdot \left(\sin \left(\mathsf{fma}\left(\mathsf{PI}\left(\right), 0.005555555555555556 \cdot angle\_m, \frac{\mathsf{PI}\left(\right)}{2}\right)\right) \cdot \sin \left(\mathsf{PI}\left(\right) \cdot \frac{angle\_m}{180}\right)\right)\right)\\
\end{array}
\end{array}
\end{array}
if b < 7.3999999999999999e-134Initial program 59.9%
Taylor expanded in angle around 0
lower-*.f6458.0
Applied rewrites58.0%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-pow.f64N/A
lift-pow.f64N/A
pow2N/A
pow2N/A
difference-of-squares-revN/A
lift-+.f64N/A
lift--.f64N/A
associate-*l*N/A
Applied rewrites69.4%
Taylor expanded in a around inf
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-sin.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f64N/A
cos-neg-revN/A
lower-cos.f64N/A
distribute-lft-neg-inN/A
lower-*.f64N/A
metadata-evalN/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6452.9
Applied rewrites52.9%
if 7.3999999999999999e-134 < b Initial program 48.0%
Taylor expanded in angle around 0
lower-*.f6450.5
Applied rewrites50.5%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-pow.f64N/A
lift-pow.f64N/A
pow2N/A
pow2N/A
difference-of-squares-revN/A
lift-+.f64N/A
lift--.f64N/A
associate-*l*N/A
Applied rewrites58.1%
lift-cos.f64N/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-*.f64N/A
*-commutativeN/A
lower-fma.f64N/A
lift-PI.f64N/A
lower-/.f6462.3
Applied rewrites62.3%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(let* ((t_0 (* (PI) angle_m)))
(*
angle_s
(if (<= angle_m 2.2e+44)
(*
(* (- b a) (* (+ b a) (sin (* t_0 0.005555555555555556))))
(* (cos (* -0.005555555555555556 t_0)) 2.0))
(if (<= angle_m 4.5e+186)
(* (* (fma (- a) a (* b b)) 2.0) (sin (* (/ angle_m 180.0) (PI))))
(*
(+ a b)
(*
(* 2.0 (- b a))
(*
(cos (* (* 0.005555555555555556 angle_m) (PI)))
(sin (/ t_0 180.0))))))))))\begin{array}{l}
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}\;angle\_m \leq 2.2 \cdot 10^{+44}:\\
\;\;\;\;\left(\left(b - a\right) \cdot \left(\left(b + a\right) \cdot \sin \left(t\_0 \cdot 0.005555555555555556\right)\right)\right) \cdot \left(\cos \left(-0.005555555555555556 \cdot t\_0\right) \cdot 2\right)\\
\mathbf{elif}\;angle\_m \leq 4.5 \cdot 10^{+186}:\\
\;\;\;\;\left(\mathsf{fma}\left(-a, a, b \cdot b\right) \cdot 2\right) \cdot \sin \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(2 \cdot \left(b - a\right)\right) \cdot \left(\cos \left(\left(0.005555555555555556 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \sin \left(\frac{t\_0}{180}\right)\right)\right)\\
\end{array}
\end{array}
\end{array}
if angle < 2.19999999999999996e44Initial program 64.0%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6464.0
lift-*.f64N/A
*-commutativeN/A
lower-*.f6464.0
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6468.0
Applied rewrites68.0%
lift-+.f64N/A
flip3-+N/A
lower-/.f64N/A
+-commutativeN/A
lower-+.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lift-*.f64N/A
+-commutativeN/A
distribute-rgt-out--N/A
lower-fma.f64N/A
lower--.f6428.5
Applied rewrites28.5%
Taylor expanded in angle around inf
count-2-revN/A
associate-/l*N/A
associate-/l*N/A
distribute-rgt-outN/A
Applied rewrites24.3%
Applied rewrites76.9%
if 2.19999999999999996e44 < angle < 4.50000000000000045e186Initial program 24.7%
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites24.7%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
+-commutativeN/A
difference-of-squares-revN/A
unpow2N/A
fp-cancel-sub-sign-invN/A
distribute-lft-neg-inN/A
unpow2N/A
mul-1-negN/A
+-commutativeN/A
mul-1-negN/A
unpow2N/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
lower-neg.f64N/A
unpow2N/A
lower-*.f6436.4
Applied rewrites36.4%
if 4.50000000000000045e186 < angle Initial program 25.1%
Taylor expanded in angle around 0
lower-*.f6430.1
Applied rewrites30.1%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-pow.f64N/A
lift-pow.f64N/A
pow2N/A
pow2N/A
difference-of-squares-revN/A
lift-+.f64N/A
lift--.f64N/A
associate-*l*N/A
Applied rewrites35.1%
lift-*.f64N/A
lift-/.f64N/A
associate-*r/N/A
lift-*.f64N/A
lower-/.f6435.0
Applied rewrites35.0%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(let* ((t_0 (* (PI) angle_m)))
(*
angle_s
(if (<= angle_m 2.2e+44)
(*
(* (- b a) (* (+ b a) (sin (* t_0 0.005555555555555556))))
(* (cos (* -0.005555555555555556 t_0)) 2.0))
(*
(+ a b)
(* (* 2.0 (- b a)) (* 1.0 (sin (* (PI) (/ angle_m 180.0))))))))))\begin{array}{l}
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}\;angle\_m \leq 2.2 \cdot 10^{+44}:\\
\;\;\;\;\left(\left(b - a\right) \cdot \left(\left(b + a\right) \cdot \sin \left(t\_0 \cdot 0.005555555555555556\right)\right)\right) \cdot \left(\cos \left(-0.005555555555555556 \cdot t\_0\right) \cdot 2\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(2 \cdot \left(b - a\right)\right) \cdot \left(1 \cdot \sin \left(\mathsf{PI}\left(\right) \cdot \frac{angle\_m}{180}\right)\right)\right)\\
\end{array}
\end{array}
\end{array}
if angle < 2.19999999999999996e44Initial program 64.0%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6464.0
lift-*.f64N/A
*-commutativeN/A
lower-*.f6464.0
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6468.0
Applied rewrites68.0%
lift-+.f64N/A
flip3-+N/A
lower-/.f64N/A
+-commutativeN/A
lower-+.f64N/A
lower-pow.f64N/A
lower-pow.f64N/A
lift-*.f64N/A
+-commutativeN/A
distribute-rgt-out--N/A
lower-fma.f64N/A
lower--.f6428.5
Applied rewrites28.5%
Taylor expanded in angle around inf
count-2-revN/A
associate-/l*N/A
associate-/l*N/A
distribute-rgt-outN/A
Applied rewrites24.3%
Applied rewrites76.9%
if 2.19999999999999996e44 < angle Initial program 24.9%
Taylor expanded in angle around 0
lower-*.f6424.6
Applied rewrites24.6%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-pow.f64N/A
lift-pow.f64N/A
pow2N/A
pow2N/A
difference-of-squares-revN/A
lift-+.f64N/A
lift--.f64N/A
associate-*l*N/A
Applied rewrites26.5%
Taylor expanded in angle around 0
Applied rewrites37.2%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(let* ((t_0 (* (PI) angle_m)))
(*
angle_s
(if (<= b 6.5e-99)
(*
(+ a b)
(*
(* -2.0 a)
(*
(sin (* t_0 0.005555555555555556))
(cos (* -0.005555555555555556 t_0)))))
(if (<= b 6.6e-57)
(*
(* (* (sin (* (/ angle_m 180.0) (PI))) (* (+ b a) (- b a))) 2.0)
(fma (* -1.54320987654321e-5 (* angle_m angle_m)) (* (PI) (PI)) 1.0))
(*
(+ a b)
(* (* 2.0 (- b a)) (* 1.0 (sin (* (PI) (/ angle_m 180.0)))))))))))\begin{array}{l}
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 \leq 6.5 \cdot 10^{-99}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(-2 \cdot a\right) \cdot \left(\sin \left(t\_0 \cdot 0.005555555555555556\right) \cdot \cos \left(-0.005555555555555556 \cdot t\_0\right)\right)\right)\\
\mathbf{elif}\;b \leq 6.6 \cdot 10^{-57}:\\
\;\;\;\;\left(\left(\sin \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right) \cdot \left(\left(b + a\right) \cdot \left(b - a\right)\right)\right) \cdot 2\right) \cdot \mathsf{fma}\left(-1.54320987654321 \cdot 10^{-5} \cdot \left(angle\_m \cdot angle\_m\right), \mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right), 1\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(2 \cdot \left(b - a\right)\right) \cdot \left(1 \cdot \sin \left(\mathsf{PI}\left(\right) \cdot \frac{angle\_m}{180}\right)\right)\right)\\
\end{array}
\end{array}
\end{array}
if b < 6.50000000000000033e-99Initial program 58.9%
Taylor expanded in angle around 0
lower-*.f6457.1
Applied rewrites57.1%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-pow.f64N/A
lift-pow.f64N/A
pow2N/A
pow2N/A
difference-of-squares-revN/A
lift-+.f64N/A
lift--.f64N/A
associate-*l*N/A
Applied rewrites68.5%
Taylor expanded in a around inf
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-sin.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f64N/A
cos-neg-revN/A
lower-cos.f64N/A
distribute-lft-neg-inN/A
lower-*.f64N/A
metadata-evalN/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6453.2
Applied rewrites53.2%
if 6.50000000000000033e-99 < b < 6.5999999999999997e-57Initial program 62.4%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f6462.4
lift-*.f64N/A
*-commutativeN/A
lower-*.f6462.4
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6462.4
Applied rewrites62.4%
Taylor expanded in angle around 0
+-commutativeN/A
associate-*r*N/A
lower-fma.f64N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
lower-PI.f64N/A
lower-PI.f6478.2
Applied rewrites78.2%
if 6.5999999999999997e-57 < b Initial program 44.9%
Taylor expanded in angle around 0
lower-*.f6446.9
Applied rewrites46.9%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-pow.f64N/A
lift-pow.f64N/A
pow2N/A
pow2N/A
difference-of-squares-revN/A
lift-+.f64N/A
lift--.f64N/A
associate-*l*N/A
Applied rewrites56.3%
Taylor expanded in angle around 0
Applied rewrites64.2%
Final simplification57.5%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(*
angle_s
(if (<= (* 2.0 (- (pow b 2.0) (pow a 2.0))) -1e+68)
(* (* (* (PI) angle_m) (* -0.011111111111111112 a)) a)
(* (* (* (- b a) (+ a b)) (* 0.011111111111111112 angle_m)) (PI)))))\begin{array}{l}
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}^{2} - {a}^{2}\right) \leq -1 \cdot 10^{+68}:\\
\;\;\;\;\left(\left(\mathsf{PI}\left(\right) \cdot angle\_m\right) \cdot \left(-0.011111111111111112 \cdot a\right)\right) \cdot a\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\left(b - a\right) \cdot \left(a + b\right)\right) \cdot \left(0.011111111111111112 \cdot angle\_m\right)\right) \cdot \mathsf{PI}\left(\right)\\
\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)))) < -9.99999999999999953e67Initial program 58.4%
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.4
Applied rewrites58.4%
Taylor expanded in a around inf
Applied rewrites58.5%
Applied rewrites70.3%
if -9.99999999999999953e67 < (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) Initial program 54.7%
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.2
Applied rewrites58.2%
Applied rewrites58.2%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(let* ((t_0 (* (PI) angle_m)))
(*
angle_s
(if (<= (* 2.0 (- (pow b 2.0) (pow a 2.0))) -2e+85)
(* (* -0.011111111111111112 a) (* a t_0))
(* (* t_0 0.011111111111111112) (* (+ b a) (- b a)))))))\begin{array}{l}
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}\;2 \cdot \left({b}^{2} - {a}^{2}\right) \leq -2 \cdot 10^{+85}:\\
\;\;\;\;\left(-0.011111111111111112 \cdot a\right) \cdot \left(a \cdot t\_0\right)\\
\mathbf{else}:\\
\;\;\;\;\left(t\_0 \cdot 0.011111111111111112\right) \cdot \left(\left(b + a\right) \cdot \left(b - a\right)\right)\\
\end{array}
\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)))) < -2e85Initial 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--.f6456.8
Applied rewrites56.8%
Taylor expanded in a around inf
Applied rewrites56.9%
Applied rewrites69.2%
if -2e85 < (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) Initial program 55.5%
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.9
Applied rewrites58.9%
Applied rewrites58.9%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(*
angle_s
(if (<= (* 2.0 (- (pow b 2.0) (pow a 2.0))) -5e+40)
(* (* (* (PI) angle_m) (* -0.011111111111111112 a)) a)
(* (* (* 0.011111111111111112 angle_m) (PI)) (* (+ b a) (- b a))))))\begin{array}{l}
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}^{2} - {a}^{2}\right) \leq -5 \cdot 10^{+40}:\\
\;\;\;\;\left(\left(\mathsf{PI}\left(\right) \cdot angle\_m\right) \cdot \left(-0.011111111111111112 \cdot a\right)\right) \cdot a\\
\mathbf{else}:\\
\;\;\;\;\left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \left(\left(b + a\right) \cdot \left(b - a\right)\right)\\
\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)))) < -5.00000000000000003e40Initial program 57.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--.f6457.5
Applied rewrites57.5%
Taylor expanded in a around inf
Applied rewrites57.6%
Applied rewrites69.0%
if -5.00000000000000003e40 < (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) Initial program 55.0%
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.6
Applied rewrites58.6%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(*
angle_s
(if (<= (* 2.0 (- (pow b 2.0) (pow a 2.0))) -5e+244)
(* (* (* (PI) angle_m) (* -0.011111111111111112 a)) a)
(* 0.011111111111111112 (* angle_m (* (* (PI) (- b a)) (+ a b)))))))\begin{array}{l}
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}^{2} - {a}^{2}\right) \leq -5 \cdot 10^{+244}:\\
\;\;\;\;\left(\left(\mathsf{PI}\left(\right) \cdot angle\_m\right) \cdot \left(-0.011111111111111112 \cdot a\right)\right) \cdot a\\
\mathbf{else}:\\
\;\;\;\;0.011111111111111112 \cdot \left(angle\_m \cdot \left(\left(\mathsf{PI}\left(\right) \cdot \left(b - a\right)\right) \cdot \left(a + b\right)\right)\right)\\
\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)))) < -5.00000000000000022e244Initial program 52.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--.f6454.7
Applied rewrites54.7%
Taylor expanded in a around inf
Applied rewrites54.8%
Applied rewrites71.7%
if -5.00000000000000022e244 < (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) Initial program 56.7%
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--.f6459.3
Applied rewrites59.3%
Applied rewrites59.3%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(*
angle_s
(if (<= (* 2.0 (- (pow b 2.0) (pow a 2.0))) -1e-261)
(* (* (* (PI) angle_m) (* -0.011111111111111112 a)) a)
(* (* (* 0.011111111111111112 angle_m) (PI)) (* b b)))))\begin{array}{l}
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}^{2} - {a}^{2}\right) \leq -1 \cdot 10^{-261}:\\
\;\;\;\;\left(\left(\mathsf{PI}\left(\right) \cdot angle\_m\right) \cdot \left(-0.011111111111111112 \cdot a\right)\right) \cdot a\\
\mathbf{else}:\\
\;\;\;\;\left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \left(b \cdot b\right)\\
\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)))) < -9.99999999999999984e-262Initial program 57.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--.f6454.7
Applied rewrites54.7%
Taylor expanded in a around inf
Applied rewrites54.1%
Applied rewrites62.9%
if -9.99999999999999984e-262 < (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) Initial program 55.0%
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--.f6460.8
Applied rewrites60.8%
Taylor expanded in a around 0
Applied rewrites58.0%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(*
angle_s
(if (<= (* 2.0 (- (pow b 2.0) (pow a 2.0))) -1e-261)
(* (* (* (PI) angle_m) (* -0.011111111111111112 a)) a)
(* (* (* (PI) (* b b)) angle_m) 0.011111111111111112))))\begin{array}{l}
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}^{2} - {a}^{2}\right) \leq -1 \cdot 10^{-261}:\\
\;\;\;\;\left(\left(\mathsf{PI}\left(\right) \cdot angle\_m\right) \cdot \left(-0.011111111111111112 \cdot a\right)\right) \cdot a\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\mathsf{PI}\left(\right) \cdot \left(b \cdot b\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)))) < -9.99999999999999984e-262Initial program 57.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--.f6454.7
Applied rewrites54.7%
Taylor expanded in a around inf
Applied rewrites54.1%
Applied rewrites62.9%
if -9.99999999999999984e-262 < (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) Initial program 55.0%
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--.f6460.8
Applied rewrites60.8%
Taylor expanded in a around 0
Applied rewrites58.0%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(*
angle_s
(if (<= a 5.5e-137)
(* (* (fma (- a) a (* b b)) 2.0) (sin (* (/ angle_m 180.0) (PI))))
(* (+ a b) (* (* (* (- b a) (PI)) angle_m) 0.011111111111111112)))))\begin{array}{l}
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;a \leq 5.5 \cdot 10^{-137}:\\
\;\;\;\;\left(\mathsf{fma}\left(-a, a, b \cdot b\right) \cdot 2\right) \cdot \sin \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(\left(\left(b - a\right) \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right) \cdot 0.011111111111111112\right)\\
\end{array}
\end{array}
if a < 5.5000000000000003e-137Initial program 63.3%
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites66.4%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
+-commutativeN/A
difference-of-squares-revN/A
unpow2N/A
fp-cancel-sub-sign-invN/A
distribute-lft-neg-inN/A
unpow2N/A
mul-1-negN/A
+-commutativeN/A
mul-1-negN/A
unpow2N/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-fma.f64N/A
mul-1-negN/A
lower-neg.f64N/A
unpow2N/A
lower-*.f6463.9
Applied rewrites63.9%
if 5.5000000000000003e-137 < a Initial program 43.0%
Taylor expanded in angle around 0
lower-*.f6441.8
Applied rewrites41.8%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-pow.f64N/A
lift-pow.f64N/A
pow2N/A
pow2N/A
difference-of-squares-revN/A
lift-+.f64N/A
lift--.f64N/A
associate-*l*N/A
Applied rewrites61.1%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-PI.f6463.4
Applied rewrites63.4%
angle\_m = (fabs.f64 angle) angle\_s = (copysign.f64 #s(literal 1 binary64) angle) (FPCore (angle_s a b angle_m) :precision binary64 (* angle_s (* (+ a b) (* (* 2.0 (- b a)) (* 1.0 (sin (* (PI) (/ angle_m 180.0))))))))
\begin{array}{l}
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \left(\left(a + b\right) \cdot \left(\left(2 \cdot \left(b - a\right)\right) \cdot \left(1 \cdot \sin \left(\mathsf{PI}\left(\right) \cdot \frac{angle\_m}{180}\right)\right)\right)\right)
\end{array}
Initial program 55.9%
Taylor expanded in angle around 0
lower-*.f6455.5
Applied rewrites55.5%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-pow.f64N/A
lift-pow.f64N/A
pow2N/A
pow2N/A
difference-of-squares-revN/A
lift-+.f64N/A
lift--.f64N/A
associate-*l*N/A
Applied rewrites65.6%
Taylor expanded in angle around 0
Applied rewrites66.4%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(let* ((t_0 (* (PI) angle_m)))
(*
angle_s
(if (<= (pow a 2.0) 2e-149)
(* (* -0.011111111111111112 (* a a)) t_0)
(* (* t_0 (* -0.011111111111111112 a)) a)))))\begin{array}{l}
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}\;{a}^{2} \leq 2 \cdot 10^{-149}:\\
\;\;\;\;\left(-0.011111111111111112 \cdot \left(a \cdot a\right)\right) \cdot t\_0\\
\mathbf{else}:\\
\;\;\;\;\left(t\_0 \cdot \left(-0.011111111111111112 \cdot a\right)\right) \cdot a\\
\end{array}
\end{array}
\end{array}
if (pow.f64 a #s(literal 2 binary64)) < 1.99999999999999996e-149Initial program 65.7%
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--.f6461.3
Applied rewrites61.3%
Taylor expanded in a around inf
Applied rewrites36.1%
if 1.99999999999999996e-149 < (pow.f64 a #s(literal 2 binary64)) Initial program 48.3%
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.9
Applied rewrites55.9%
Taylor expanded in a around inf
Applied rewrites41.4%
Applied rewrites49.2%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(let* ((t_0 (* (PI) angle_m)))
(*
angle_s
(if (<= (pow a 2.0) 2e-149)
(* (* -0.011111111111111112 (* a a)) t_0)
(* (* -0.011111111111111112 a) (* a t_0))))))\begin{array}{l}
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}\;{a}^{2} \leq 2 \cdot 10^{-149}:\\
\;\;\;\;\left(-0.011111111111111112 \cdot \left(a \cdot a\right)\right) \cdot t\_0\\
\mathbf{else}:\\
\;\;\;\;\left(-0.011111111111111112 \cdot a\right) \cdot \left(a \cdot t\_0\right)\\
\end{array}
\end{array}
\end{array}
if (pow.f64 a #s(literal 2 binary64)) < 1.99999999999999996e-149Initial program 65.7%
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--.f6461.3
Applied rewrites61.3%
Taylor expanded in a around inf
Applied rewrites36.1%
if 1.99999999999999996e-149 < (pow.f64 a #s(literal 2 binary64)) Initial program 48.3%
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.9
Applied rewrites55.9%
Taylor expanded in a around inf
Applied rewrites41.4%
Applied rewrites49.2%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(*
angle_s
(if (<= angle_m 0.00385)
(* (+ a b) (* (* (* (- b a) (PI)) angle_m) 0.011111111111111112))
(/
(*
(* (* (* 0.011111111111111112 angle_m) (PI)) (+ a b))
(* (- b a) (+ a b)))
(+ a b)))))\begin{array}{l}
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 0.00385:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(\left(\left(b - a\right) \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right) \cdot 0.011111111111111112\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(\left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \left(a + b\right)\right) \cdot \left(\left(b - a\right) \cdot \left(a + b\right)\right)}{a + b}\\
\end{array}
\end{array}
if angle < 0.0038500000000000001Initial program 65.3%
Taylor expanded in angle around 0
lower-*.f6464.9
Applied rewrites64.9%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-pow.f64N/A
lift-pow.f64N/A
pow2N/A
pow2N/A
difference-of-squares-revN/A
lift-+.f64N/A
lift--.f64N/A
associate-*l*N/A
Applied rewrites77.2%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-PI.f6473.3
Applied rewrites73.3%
if 0.0038500000000000001 < angle Initial program 27.0%
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--.f6433.8
Applied rewrites33.8%
Applied rewrites33.8%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(*
angle_s
(if (<= angle_m 0.0015)
(* (+ a b) (* (* (* (- b a) (PI)) angle_m) 0.011111111111111112))
(* (* (* 0.011111111111111112 angle_m) (PI)) (* (+ b a) (- b a))))))\begin{array}{l}
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 0.0015:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(\left(\left(b - a\right) \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right) \cdot 0.011111111111111112\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \left(\left(b + a\right) \cdot \left(b - a\right)\right)\\
\end{array}
\end{array}
if angle < 0.0015Initial program 65.3%
Taylor expanded in angle around 0
lower-*.f6464.9
Applied rewrites64.9%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
lift--.f64N/A
lift-pow.f64N/A
lift-pow.f64N/A
pow2N/A
pow2N/A
difference-of-squares-revN/A
lift-+.f64N/A
lift--.f64N/A
associate-*l*N/A
Applied rewrites77.2%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-PI.f6473.3
Applied rewrites73.3%
if 0.0015 < angle Initial program 27.0%
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--.f6433.8
Applied rewrites33.8%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(let* ((t_0 (* (* 0.011111111111111112 angle_m) (PI))))
(*
angle_s
(if (<= angle_m 0.0013)
(* (- b a) (* t_0 (+ a b)))
(* t_0 (* (+ b a) (- b a)))))))\begin{array}{l}
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 0.0013:\\
\;\;\;\;\left(b - a\right) \cdot \left(t\_0 \cdot \left(a + b\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_0 \cdot \left(\left(b + a\right) \cdot \left(b - a\right)\right)\\
\end{array}
\end{array}
\end{array}
if angle < 0.0012999999999999999Initial program 65.3%
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--.f6466.2
Applied rewrites66.2%
Applied rewrites73.3%
if 0.0012999999999999999 < angle Initial program 27.0%
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--.f6433.8
Applied rewrites33.8%
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a b angle_m)
:precision binary64
(let* ((t_0 (* (PI) angle_m)))
(*
angle_s
(if (<= angle_m 2.9e-141)
(* (* -0.011111111111111112 a) (* a t_0))
(* (* (* -0.011111111111111112 a) a) t_0)))))\begin{array}{l}
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}\;angle\_m \leq 2.9 \cdot 10^{-141}:\\
\;\;\;\;\left(-0.011111111111111112 \cdot a\right) \cdot \left(a \cdot t\_0\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(-0.011111111111111112 \cdot a\right) \cdot a\right) \cdot t\_0\\
\end{array}
\end{array}
\end{array}
if angle < 2.9e-141Initial program 60.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--.f6461.3
Applied rewrites61.3%
Taylor expanded in a around inf
Applied rewrites41.3%
Applied rewrites45.7%
if 2.9e-141 < angle Initial program 46.7%
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--.f6452.5
Applied rewrites52.5%
Taylor expanded in a around inf
Applied rewrites35.0%
Applied rewrites35.1%
angle\_m = (fabs.f64 angle) angle\_s = (copysign.f64 #s(literal 1 binary64) angle) (FPCore (angle_s a b angle_m) :precision binary64 (* angle_s (* (* -0.011111111111111112 a) (* a (* (PI) angle_m)))))
\begin{array}{l}
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(\mathsf{PI}\left(\right) \cdot angle\_m\right)\right)\right)
\end{array}
Initial program 55.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--.f6458.2
Applied rewrites58.2%
Taylor expanded in a around inf
Applied rewrites39.1%
Applied rewrites40.9%
herbie shell --seed 2025006
(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)))))