
(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 19 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 (sqrt (PI)))
(t_1 (pow (cbrt t_0) 3.0))
(t_2 (cos (* (* (/ angle_m 180.0) (pow (* (PI) (PI)) 0.25)) t_0))))
(*
angle_s
(if (<= angle_m 4.9e+185)
(* (* (+ a b) (* (- b a) (* (sin (* (/ angle_m 180.0) (PI))) 2.0))) t_2)
(*
(* (+ a b) (* (- b a) (* (sin (* (/ angle_m 180.0) (* t_1 t_1))) 2.0)))
t_2)))))\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 := {\left(\sqrt[3]{t\_0}\right)}^{3}\\
t_2 := \cos \left(\left(\frac{angle\_m}{180} \cdot {\left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right)}^{0.25}\right) \cdot t\_0\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 4.9 \cdot 10^{+185}:\\
\;\;\;\;\left(\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\sin \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right)\right)\right) \cdot t\_2\\
\mathbf{else}:\\
\;\;\;\;\left(\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\sin \left(\frac{angle\_m}{180} \cdot \left(t\_1 \cdot t\_1\right)\right) \cdot 2\right)\right)\right) \cdot t\_2\\
\end{array}
\end{array}
\end{array}
if angle < 4.89999999999999984e185Initial program 59.9%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6474.0
Applied rewrites74.0%
lift-*.f64N/A
*-commutativeN/A
rem-square-sqrtN/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6474.6
Applied rewrites74.6%
lift-sqrt.f64N/A
pow1/2N/A
sqr-powN/A
pow-prod-downN/A
lift-PI.f64N/A
lift-PI.f64N/A
lower-pow.f64N/A
lift-PI.f64N/A
lift-PI.f64N/A
lower-*.f64N/A
metadata-eval76.2
Applied rewrites76.2%
if 4.89999999999999984e185 < angle Initial program 18.7%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6422.4
Applied rewrites22.4%
lift-*.f64N/A
*-commutativeN/A
rem-square-sqrtN/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6435.1
Applied rewrites35.1%
lift-sqrt.f64N/A
pow1/2N/A
sqr-powN/A
pow-prod-downN/A
lift-PI.f64N/A
lift-PI.f64N/A
lower-pow.f64N/A
lift-PI.f64N/A
lift-PI.f64N/A
lower-*.f64N/A
metadata-eval27.4
Applied rewrites27.4%
rem-cube-cbrtN/A
lift-PI.f64N/A
lift-PI.f64N/A
rem-square-sqrtN/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
cbrt-prodN/A
unpow-prod-downN/A
lower-*.f64N/A
lower-pow.f64N/A
lower-cbrt.f64N/A
lower-pow.f64N/A
lower-cbrt.f6448.9
Applied rewrites48.9%
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 (* (+ a b) (* (- b a) (* (sin (* (/ angle_m 180.0) (PI))) 2.0)))))
(*
angle_s
(if (<= angle_m 2.55e+148)
(*
t_1
(cos (* (* (/ angle_m 180.0) (pow (* (PI) (PI)) 0.25)) (sqrt (PI)))))
(* t_1 (cos (* (* (/ 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 := \left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\sin \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right)\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 2.55 \cdot 10^{+148}:\\
\;\;\;\;t\_1 \cdot \cos \left(\left(\frac{angle\_m}{180} \cdot {\left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right)}^{0.25}\right) \cdot \sqrt{\mathsf{PI}\left(\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1 \cdot \cos \left(\left(\frac{angle\_m}{180} \cdot {t\_0}^{2}\right) \cdot t\_0\right)\\
\end{array}
\end{array}
\end{array}
if angle < 2.54999999999999993e148Initial program 59.5%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6473.7
Applied rewrites73.7%
lift-*.f64N/A
*-commutativeN/A
rem-square-sqrtN/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6474.3
Applied rewrites74.3%
lift-sqrt.f64N/A
pow1/2N/A
sqr-powN/A
pow-prod-downN/A
lift-PI.f64N/A
lift-PI.f64N/A
lower-pow.f64N/A
lift-PI.f64N/A
lift-PI.f64N/A
lower-*.f64N/A
metadata-eval76.0
Applied rewrites76.0%
if 2.54999999999999993e148 < angle Initial program 24.3%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6427.8
Applied rewrites27.8%
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.f6445.0
Applied rewrites45.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 (* 2.0 (- (pow b 2.0) (pow a 2.0)))))
(*
angle_s
(if (<= t_0 -1e-124)
(* (* (PI) a) (* angle_m (* -0.011111111111111112 a)))
(if (<= t_0 INFINITY)
(* (* (* (PI) (* b b)) angle_m) 0.011111111111111112)
(* (* -0.011111111111111112 a) (* a (* (PI) angle_m))))))))\begin{array}{l}
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := 2 \cdot \left({b}^{2} - {a}^{2}\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_0 \leq -1 \cdot 10^{-124}:\\
\;\;\;\;\left(\mathsf{PI}\left(\right) \cdot a\right) \cdot \left(angle\_m \cdot \left(-0.011111111111111112 \cdot a\right)\right)\\
\mathbf{elif}\;t\_0 \leq \infty:\\
\;\;\;\;\left(\left(\mathsf{PI}\left(\right) \cdot \left(b \cdot b\right)\right) \cdot angle\_m\right) \cdot 0.011111111111111112\\
\mathbf{else}:\\
\;\;\;\;\left(-0.011111111111111112 \cdot a\right) \cdot \left(a \cdot \left(\mathsf{PI}\left(\right) \cdot angle\_m\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)))) < -9.99999999999999933e-125Initial program 58.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--.f6450.2
Applied rewrites50.2%
Taylor expanded in a around inf
Applied rewrites49.4%
Applied rewrites55.9%
Applied rewrites56.0%
if -9.99999999999999933e-125 < (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) < +inf.0Initial program 60.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--.f6459.2
Applied rewrites59.2%
Taylor expanded in a around 0
Applied rewrites58.6%
if +inf.0 < (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) Initial program 0.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--.f6459.7
Applied rewrites59.7%
Taylor expanded in a around inf
Applied rewrites59.7%
Applied rewrites70.5%
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 (* (+ a b) (* (- b a) (* (sin (* (/ angle_m 180.0) (PI))) 2.0)))))
(*
angle_s
(if (<= angle_m 2e+192)
(*
t_0
(cos (* (* (/ angle_m 180.0) (pow (* (PI) (PI)) 0.25)) (sqrt (PI)))))
(*
t_0
(fma
(sin (* (/ angle_m -180.0) (PI)))
0.0
(* (cos (fma (/ angle_m -180.0) (PI) (PI))) -1.0)))))))\begin{array}{l}
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\sin \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right)\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 2 \cdot 10^{+192}:\\
\;\;\;\;t\_0 \cdot \cos \left(\left(\frac{angle\_m}{180} \cdot {\left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right)}^{0.25}\right) \cdot \sqrt{\mathsf{PI}\left(\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;t\_0 \cdot \mathsf{fma}\left(\sin \left(\frac{angle\_m}{-180} \cdot \mathsf{PI}\left(\right)\right), 0, \cos \left(\mathsf{fma}\left(\frac{angle\_m}{-180}, \mathsf{PI}\left(\right), \mathsf{PI}\left(\right)\right)\right) \cdot -1\right)\\
\end{array}
\end{array}
\end{array}
if angle < 2.00000000000000008e192Initial program 59.9%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6474.0
Applied rewrites74.0%
lift-*.f64N/A
*-commutativeN/A
rem-square-sqrtN/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6474.6
Applied rewrites74.6%
lift-sqrt.f64N/A
pow1/2N/A
sqr-powN/A
pow-prod-downN/A
lift-PI.f64N/A
lift-PI.f64N/A
lower-pow.f64N/A
lift-PI.f64N/A
lift-PI.f64N/A
lower-*.f64N/A
metadata-eval76.2
Applied rewrites76.2%
if 2.00000000000000008e192 < angle Initial program 18.7%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6422.4
Applied rewrites22.4%
lift-*.f64N/A
*-commutativeN/A
rem-square-sqrtN/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6435.1
Applied rewrites35.1%
lift-cos.f64N/A
cos-neg-revN/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
rem-square-sqrtN/A
*-commutativeN/A
lift-*.f64N/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-*.f64N/A
distribute-lft-neg-inN/A
lower-fma.f64N/A
Applied rewrites42.1%
Applied rewrites49.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 (<= a 2e+213)
(*
(* (+ a b) (* (- b a) (* (sin (* angle_m (/ (PI) 180.0))) 2.0)))
(cos (* (* (/ angle_m 180.0) (pow (* (PI) (PI)) 0.25)) (sqrt (PI)))))
(*
(* (+ a b) (* (- b a) (* (sin (* (/ angle_m 180.0) (PI))) 2.0)))
(sin (* (PI) (fma -0.005555555555555556 angle_m 0.5)))))))\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 2 \cdot 10^{+213}:\\
\;\;\;\;\left(\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\sin \left(angle\_m \cdot \frac{\mathsf{PI}\left(\right)}{180}\right) \cdot 2\right)\right)\right) \cdot \cos \left(\left(\frac{angle\_m}{180} \cdot {\left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right)}^{0.25}\right) \cdot \sqrt{\mathsf{PI}\left(\right)}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\sin \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right)\right)\right) \cdot \sin \left(\mathsf{PI}\left(\right) \cdot \mathsf{fma}\left(-0.005555555555555556, angle\_m, 0.5\right)\right)\\
\end{array}
\end{array}
if a < 1.99999999999999997e213Initial program 54.8%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6466.7
Applied rewrites66.7%
lift-*.f64N/A
*-commutativeN/A
rem-square-sqrtN/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6469.2
Applied rewrites69.2%
lift-sqrt.f64N/A
pow1/2N/A
sqr-powN/A
pow-prod-downN/A
lift-PI.f64N/A
lift-PI.f64N/A
lower-pow.f64N/A
lift-PI.f64N/A
lift-PI.f64N/A
lower-*.f64N/A
metadata-eval68.7
Applied rewrites68.7%
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f6469.1
Applied rewrites69.1%
if 1.99999999999999997e213 < a Initial program 61.9%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6484.4
Applied rewrites84.4%
lift-*.f64N/A
*-commutativeN/A
rem-square-sqrtN/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6480.6
Applied rewrites80.6%
lift-cos.f64N/A
cos-neg-revN/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
rem-square-sqrtN/A
*-commutativeN/A
lift-*.f64N/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-*.f64N/A
distribute-lft-neg-inN/A
lower-fma.f64N/A
Applied rewrites84.4%
Taylor expanded in angle around 0
associate-*r*N/A
distribute-rgt-outN/A
lower-*.f64N/A
lower-PI.f64N/A
lower-fma.f6480.6
Applied rewrites80.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 (* (* (+ a b) (* (- b a) (* (sin (* (/ angle_m 180.0) (PI))) 2.0))) (cos (* (* (/ angle_m 180.0) (pow (* (PI) (PI)) 0.25)) (sqrt (PI)))))))
\begin{array}{l}
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \left(\left(\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\sin \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right)\right)\right) \cdot \cos \left(\left(\frac{angle\_m}{180} \cdot {\left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right)}^{0.25}\right) \cdot \sqrt{\mathsf{PI}\left(\right)}\right)\right)
\end{array}
Initial program 55.5%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6468.5
Applied rewrites68.5%
lift-*.f64N/A
*-commutativeN/A
rem-square-sqrtN/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6470.4
Applied rewrites70.4%
lift-sqrt.f64N/A
pow1/2N/A
sqr-powN/A
pow-prod-downN/A
lift-PI.f64N/A
lift-PI.f64N/A
lower-pow.f64N/A
lift-PI.f64N/A
lift-PI.f64N/A
lower-*.f64N/A
metadata-eval71.1
Applied rewrites71.1%
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 (* (+ a b) (* (- b a) (* (sin (* (/ angle_m 180.0) (PI))) 2.0))))
(t_1 (sqrt (PI))))
(*
angle_s
(if (<= angle_m 1.5e+139)
(* t_0 (cos (/ (* (PI) angle_m) 180.0)))
(* t_0 (cos (* (* (/ angle_m 180.0) t_1) t_1)))))))\begin{array}{l}
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\sin \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right)\right)\\
t_1 := \sqrt{\mathsf{PI}\left(\right)}\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 1.5 \cdot 10^{+139}:\\
\;\;\;\;t\_0 \cdot \cos \left(\frac{\mathsf{PI}\left(\right) \cdot angle\_m}{180}\right)\\
\mathbf{else}:\\
\;\;\;\;t\_0 \cdot \cos \left(\left(\frac{angle\_m}{180} \cdot t\_1\right) \cdot t\_1\right)\\
\end{array}
\end{array}
\end{array}
if angle < 1.5e139Initial program 60.5%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6474.5
Applied rewrites74.5%
lift-*.f64N/A
*-commutativeN/A
lift-/.f64N/A
associate-*l/N/A
lower-/.f64N/A
*-commutativeN/A
lower-*.f6475.7
Applied rewrites75.7%
if 1.5e139 < angle Initial program 22.3%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6428.4
Applied rewrites28.4%
lift-*.f64N/A
*-commutativeN/A
rem-square-sqrtN/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6438.3
Applied rewrites38.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 1.52e+144)
(*
(* (+ a b) (* (- b a) (* (sin (* (/ angle_m 180.0) (PI))) 2.0)))
(cos (/ t_0 180.0)))
(if (<= angle_m 4.6e+223)
(*
(* (* (* (* (PI) (+ b a)) (- b a)) 0.011111111111111112) angle_m)
(cos (* (PI) (/ angle_m 180.0))))
(*
a
(*
(* -2.0 a)
(*
(sin (* (* 0.005555555555555556 (PI)) angle_m))
(sin (+ (* (- -0.005555555555555556) t_0) (/ (PI) 2.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 1.52 \cdot 10^{+144}:\\
\;\;\;\;\left(\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\sin \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right)\right)\right) \cdot \cos \left(\frac{t\_0}{180}\right)\\
\mathbf{elif}\;angle\_m \leq 4.6 \cdot 10^{+223}:\\
\;\;\;\;\left(\left(\left(\left(\mathsf{PI}\left(\right) \cdot \left(b + a\right)\right) \cdot \left(b - a\right)\right) \cdot 0.011111111111111112\right) \cdot angle\_m\right) \cdot \cos \left(\mathsf{PI}\left(\right) \cdot \frac{angle\_m}{180}\right)\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(\left(-2 \cdot a\right) \cdot \left(\sin \left(\left(0.005555555555555556 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right) \cdot \sin \left(\left(--0.005555555555555556\right) \cdot t\_0 + \frac{\mathsf{PI}\left(\right)}{2}\right)\right)\right)\\
\end{array}
\end{array}
\end{array}
if angle < 1.52e144Initial program 59.9%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6474.3
Applied rewrites74.3%
lift-*.f64N/A
*-commutativeN/A
lift-/.f64N/A
associate-*l/N/A
lower-/.f64N/A
*-commutativeN/A
lower-*.f6475.5
Applied rewrites75.5%
if 1.52e144 < angle < 4.60000000000000009e223Initial program 24.0%
Taylor expanded in angle around 0
*-commutativeN/A
+-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
lower-*.f64N/A
Applied rewrites10.3%
Taylor expanded in angle around 0
Applied rewrites43.7%
if 4.60000000000000009e223 < angle Initial program 23.5%
Taylor expanded in a around inf
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
lower-cos.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f64N/A
Applied rewrites17.7%
Applied rewrites17.7%
Applied rewrites45.6%
Final simplification71.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 1.52e+144)
(*
(* (+ a b) (* (- b a) (* (sin (* (/ angle_m 180.0) (PI))) 2.0)))
(cos (* -0.005555555555555556 t_0)))
(if (<= angle_m 4.6e+223)
(*
(* (* (* (* (PI) (+ b a)) (- b a)) 0.011111111111111112) angle_m)
(cos (* (PI) (/ angle_m 180.0))))
(*
a
(*
(* -2.0 a)
(*
(sin (* (* 0.005555555555555556 (PI)) angle_m))
(sin (+ (* (- -0.005555555555555556) t_0) (/ (PI) 2.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 1.52 \cdot 10^{+144}:\\
\;\;\;\;\left(\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\sin \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right)\right)\right) \cdot \cos \left(-0.005555555555555556 \cdot t\_0\right)\\
\mathbf{elif}\;angle\_m \leq 4.6 \cdot 10^{+223}:\\
\;\;\;\;\left(\left(\left(\left(\mathsf{PI}\left(\right) \cdot \left(b + a\right)\right) \cdot \left(b - a\right)\right) \cdot 0.011111111111111112\right) \cdot angle\_m\right) \cdot \cos \left(\mathsf{PI}\left(\right) \cdot \frac{angle\_m}{180}\right)\\
\mathbf{else}:\\
\;\;\;\;a \cdot \left(\left(-2 \cdot a\right) \cdot \left(\sin \left(\left(0.005555555555555556 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right) \cdot \sin \left(\left(--0.005555555555555556\right) \cdot t\_0 + \frac{\mathsf{PI}\left(\right)}{2}\right)\right)\right)\\
\end{array}
\end{array}
\end{array}
if angle < 1.52e144Initial program 59.9%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6474.3
Applied rewrites74.3%
Taylor expanded in angle around inf
cos-neg-revN/A
distribute-lft-neg-inN/A
metadata-evalN/A
lower-cos.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6474.5
Applied rewrites74.5%
if 1.52e144 < angle < 4.60000000000000009e223Initial program 24.0%
Taylor expanded in angle around 0
*-commutativeN/A
+-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
lower-*.f64N/A
Applied rewrites10.3%
Taylor expanded in angle around 0
Applied rewrites43.7%
if 4.60000000000000009e223 < angle Initial program 23.5%
Taylor expanded in a around inf
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
lower-cos.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f64N/A
Applied rewrites17.7%
Applied rewrites17.7%
Applied rewrites45.6%
Final simplification70.9%
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.005555555555555556 (* (PI) angle_m)))
(t_1 (* (+ a b) (* (- b a) (* (sin (* (/ angle_m 180.0) (PI))) 2.0)))))
(* angle_s (if (<= angle_m 2e+152) (* t_1 (cos t_0)) (* t_1 (sin t_0))))))\begin{array}{l}
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := -0.005555555555555556 \cdot \left(\mathsf{PI}\left(\right) \cdot angle\_m\right)\\
t_1 := \left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\sin \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right)\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 2 \cdot 10^{+152}:\\
\;\;\;\;t\_1 \cdot \cos t\_0\\
\mathbf{else}:\\
\;\;\;\;t\_1 \cdot \sin t\_0\\
\end{array}
\end{array}
\end{array}
if angle < 2.0000000000000001e152Initial program 59.5%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6473.7
Applied rewrites73.7%
Taylor expanded in angle around inf
cos-neg-revN/A
distribute-lft-neg-inN/A
metadata-evalN/A
lower-cos.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6473.9
Applied rewrites73.9%
if 2.0000000000000001e152 < angle Initial program 24.3%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6427.8
Applied rewrites27.8%
lift-*.f64N/A
*-commutativeN/A
rem-square-sqrtN/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f6439.6
Applied rewrites39.6%
lift-cos.f64N/A
cos-neg-revN/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
rem-square-sqrtN/A
*-commutativeN/A
lift-*.f64N/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-*.f64N/A
distribute-lft-neg-inN/A
lower-fma.f64N/A
Applied rewrites46.1%
Taylor expanded in angle around inf
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6449.3
Applied rewrites49.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 (* (+ a b) (* (- b a) (* (sin (* (/ angle_m 180.0) (PI))) 2.0)))))
(*
angle_s
(if (<= angle_m 4.5e+148)
(* t_0 (cos (* -0.005555555555555556 (* (PI) angle_m))))
(* t_0 1.0)))))\begin{array}{l}
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\sin \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right)\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 4.5 \cdot 10^{+148}:\\
\;\;\;\;t\_0 \cdot \cos \left(-0.005555555555555556 \cdot \left(\mathsf{PI}\left(\right) \cdot angle\_m\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_0 \cdot 1\\
\end{array}
\end{array}
\end{array}
if angle < 4.49999999999999994e148Initial program 59.5%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6473.7
Applied rewrites73.7%
Taylor expanded in angle around inf
cos-neg-revN/A
distribute-lft-neg-inN/A
metadata-evalN/A
lower-cos.f64N/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6473.9
Applied rewrites73.9%
if 4.49999999999999994e148 < angle Initial program 24.3%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6427.8
Applied rewrites27.8%
Taylor expanded in angle around 0
Applied rewrites33.1%
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 (* (/ angle_m 180.0) (PI))))
(*
angle_s
(if (<= angle_m 2.4e+148)
(* (+ a b) (* (- b a) (sin (* 2.0 t_0))))
(* (* (+ a b) (* (- b a) (* (sin t_0) 2.0))) 1.0)))))\begin{array}{l}
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 2.4 \cdot 10^{+148}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \sin \left(2 \cdot t\_0\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\sin t\_0 \cdot 2\right)\right)\right) \cdot 1\\
\end{array}
\end{array}
\end{array}
if angle < 2.39999999999999995e148Initial program 59.5%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*r*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
lift-sin.f64N/A
lift-cos.f64N/A
Applied rewrites73.7%
if 2.39999999999999995e148 < angle Initial program 24.3%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6427.8
Applied rewrites27.8%
Taylor expanded in angle around 0
Applied rewrites33.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
(if (<= angle_m 2.8e-9)
(* (- b a) (* (+ b a) (* (* 0.011111111111111112 angle_m) (PI))))
(* (* (- b a) (+ a b)) (sin (* 2.0 (* (/ angle_m 180.0) (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}\;angle\_m \leq 2.8 \cdot 10^{-9}:\\
\;\;\;\;\left(b - a\right) \cdot \left(\left(b + a\right) \cdot \left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(b - a\right) \cdot \left(a + b\right)\right) \cdot \sin \left(2 \cdot \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right)\right)\\
\end{array}
\end{array}
if angle < 2.79999999999999984e-9Initial program 64.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--.f6463.7
Applied rewrites63.7%
Applied rewrites73.0%
if 2.79999999999999984e-9 < angle Initial program 33.2%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*r*N/A
lift-sin.f64N/A
lift-cos.f64N/A
2-sinN/A
count-2N/A
Applied rewrites40.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 (* (+ a b) (* (- b a) (sin (* 2.0 (* (/ angle_m 180.0) (PI))))))))
\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(b - a\right) \cdot \sin \left(2 \cdot \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right)\right)\right)\right)
\end{array}
Initial program 55.5%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*r*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
lift-sin.f64N/A
lift-cos.f64N/A
Applied rewrites68.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 (<= angle_m 1.65e-10)
(* (- b a) (* (+ b a) (* (* 0.011111111111111112 angle_m) (PI))))
(* angle_m (* (* (+ b a) (- b a)) (* 0.011111111111111112 (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}\;angle\_m \leq 1.65 \cdot 10^{-10}:\\
\;\;\;\;\left(b - a\right) \cdot \left(\left(b + a\right) \cdot \left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;angle\_m \cdot \left(\left(\left(b + a\right) \cdot \left(b - a\right)\right) \cdot \left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right)\right)\\
\end{array}
\end{array}
if angle < 1.65e-10Initial program 64.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--.f6463.7
Applied rewrites63.7%
Applied rewrites73.0%
if 1.65e-10 < angle Initial program 33.2%
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--.f6434.5
Applied rewrites34.5%
Applied rewrites34.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 (<= a 1.3e+124)
(* angle_m (* (* (+ b a) (- b a)) (* 0.011111111111111112 (PI))))
(* (* (* (PI) angle_m) (* -0.011111111111111112 a)) 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}\;a \leq 1.3 \cdot 10^{+124}:\\
\;\;\;\;angle\_m \cdot \left(\left(\left(b + a\right) \cdot \left(b - a\right)\right) \cdot \left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\mathsf{PI}\left(\right) \cdot angle\_m\right) \cdot \left(-0.011111111111111112 \cdot a\right)\right) \cdot a\\
\end{array}
\end{array}
if a < 1.3e124Initial program 56.2%
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.4
Applied rewrites56.4%
Applied rewrites56.4%
if 1.3e124 < a Initial program 52.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--.f6452.2
Applied rewrites52.2%
Taylor expanded in a around inf
Applied rewrites52.2%
Applied rewrites62.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 (<= a 1.07e-192)
(* (* -0.011111111111111112 (* a a)) (* (PI) angle_m))
(* (* (PI) a) (* angle_m (* -0.011111111111111112 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}\;a \leq 1.07 \cdot 10^{-192}:\\
\;\;\;\;\left(-0.011111111111111112 \cdot \left(a \cdot a\right)\right) \cdot \left(\mathsf{PI}\left(\right) \cdot angle\_m\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\mathsf{PI}\left(\right) \cdot a\right) \cdot \left(angle\_m \cdot \left(-0.011111111111111112 \cdot a\right)\right)\\
\end{array}
\end{array}
if a < 1.07e-192Initial program 54.2%
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.5
Applied rewrites56.5%
Taylor expanded in a around inf
Applied rewrites35.5%
if 1.07e-192 < a Initial program 57.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.3
Applied rewrites54.3%
Taylor expanded in a around inf
Applied rewrites42.6%
Applied rewrites47.7%
Applied rewrites47.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 (<= a 1e+131)
(* (* -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 \leq 10^{+131}:\\
\;\;\;\;\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 a < 9.9999999999999991e130Initial program 55.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.9
Applied rewrites55.9%
Taylor expanded in a around inf
Applied rewrites34.8%
if 9.9999999999999991e130 < a Initial program 54.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--.f6454.5
Applied rewrites54.5%
Taylor expanded in a around inf
Applied rewrites54.5%
Applied rewrites65.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 (* (* -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.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--.f6455.7
Applied rewrites55.7%
Taylor expanded in a around inf
Applied rewrites38.0%
Applied rewrites39.3%
herbie shell --seed 2024332
(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)))))