
(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 20 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)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (* (PI) angle)))
(if (<= (/ angle 180.0) 1e+192)
(*
(cos (/ t_0 180.0))
(*
(+ b_m a_m)
(* (* (sin (* (* 0.005555555555555556 angle) (PI))) 2.0) (- b_m a_m))))
(/
(sin (* 0.011111111111111112 t_0))
(pow
(*
(* (/ -1.0 (- b_m a_m)) (fma (- b_m a_m) a_m (* (- b_m a_m) b_m)))
(- b_m a_m))
-1.0)))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := \mathsf{PI}\left(\right) \cdot angle\\
\mathbf{if}\;\frac{angle}{180} \leq 10^{+192}:\\
\;\;\;\;\cos \left(\frac{t\_0}{180}\right) \cdot \left(\left(b\_m + a\_m\right) \cdot \left(\left(\sin \left(\left(0.005555555555555556 \cdot angle\right) \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right) \cdot \left(b\_m - a\_m\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\sin \left(0.011111111111111112 \cdot t\_0\right)}{{\left(\left(\frac{-1}{b\_m - a\_m} \cdot \mathsf{fma}\left(b\_m - a\_m, a\_m, \left(b\_m - a\_m\right) \cdot b\_m\right)\right) \cdot \left(b\_m - a\_m\right)\right)}^{-1}}\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 1.00000000000000004e192Initial program 59.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-*.f6473.7
Applied rewrites75.2%
lift-*.f64N/A
lift-/.f64N/A
associate-*r/N/A
lower-/.f64N/A
lower-*.f6476.5
Applied rewrites76.5%
if 1.00000000000000004e192 < (/.f64 angle #s(literal 180 binary64)) Initial program 18.6%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
flip--N/A
clear-numN/A
associate-*l/N/A
Applied rewrites13.3%
lift-+.f64N/A
+-commutativeN/A
flip-+N/A
pow2N/A
pow2N/A
lift--.f64N/A
frac-2negN/A
div-invN/A
lower-*.f64N/A
lower-neg.f64N/A
pow2N/A
pow2N/A
difference-of-squaresN/A
lift--.f64N/A
+-commutativeN/A
lift-+.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-+.f64N/A
+-commutativeN/A
lower-+.f64N/A
lower-/.f64N/A
lower-neg.f6413.3
Applied rewrites13.3%
lift-neg.f64N/A
lift-*.f64N/A
distribute-rgt-neg-inN/A
lift-+.f64N/A
flip-+N/A
difference-of-squaresN/A
lift-+.f64N/A
lift--.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift--.f64N/A
div-invN/A
distribute-rgt-neg-outN/A
distribute-frac-neg2N/A
lift-neg.f64N/A
inv-powN/A
sqr-powN/A
pow-prod-downN/A
Applied rewrites57.1%
Final simplification74.5%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (- (pow b_m 2.0) (pow a_m 2.0)))
(t_1 (* (* (* a_m angle) (* -0.011111111111111112 a_m)) (PI))))
(if (<= t_0 -5e-125)
t_1
(if (<= t_0 INFINITY)
(* (* b_m b_m) (* 0.011111111111111112 (* (PI) angle)))
t_1))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := {b\_m}^{2} - {a\_m}^{2}\\
t_1 := \left(\left(a\_m \cdot angle\right) \cdot \left(-0.011111111111111112 \cdot a\_m\right)\right) \cdot \mathsf{PI}\left(\right)\\
\mathbf{if}\;t\_0 \leq -5 \cdot 10^{-125}:\\
\;\;\;\;t\_1\\
\mathbf{elif}\;t\_0 \leq \infty:\\
\;\;\;\;\left(b\_m \cdot b\_m\right) \cdot \left(0.011111111111111112 \cdot \left(\mathsf{PI}\left(\right) \cdot angle\right)\right)\\
\mathbf{else}:\\
\;\;\;\;t\_1\\
\end{array}
\end{array}
if (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) < -4.99999999999999967e-125 or +inf.0 < (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) Initial program 49.6%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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.5
Applied rewrites51.5%
Taylor expanded in a around inf
Applied rewrites50.9%
Applied rewrites58.0%
Applied rewrites58.0%
if -4.99999999999999967e-125 < (-.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
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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 b around inf
Applied rewrites59.2%
Final simplification58.7%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (- (pow b_m 2.0) (pow a_m 2.0))) (t_1 (* (PI) angle)))
(if (<= t_0 -5e-125)
(* (* (* -0.011111111111111112 a_m) (PI)) (* a_m angle))
(if (<= t_0 INFINITY)
(* (* b_m b_m) (* 0.011111111111111112 t_1))
(* (* t_1 a_m) (* -0.011111111111111112 a_m))))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := {b\_m}^{2} - {a\_m}^{2}\\
t_1 := \mathsf{PI}\left(\right) \cdot angle\\
\mathbf{if}\;t\_0 \leq -5 \cdot 10^{-125}:\\
\;\;\;\;\left(\left(-0.011111111111111112 \cdot a\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \left(a\_m \cdot angle\right)\\
\mathbf{elif}\;t\_0 \leq \infty:\\
\;\;\;\;\left(b\_m \cdot b\_m\right) \cdot \left(0.011111111111111112 \cdot t\_1\right)\\
\mathbf{else}:\\
\;\;\;\;\left(t\_1 \cdot a\_m\right) \cdot \left(-0.011111111111111112 \cdot a\_m\right)\\
\end{array}
\end{array}
if (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) < -4.99999999999999967e-125Initial program 58.1%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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.1
Applied rewrites50.1%
Taylor expanded in a around inf
Applied rewrites49.4%
Applied rewrites55.9%
Applied rewrites55.9%
if -4.99999999999999967e-125 < (-.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
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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 b around inf
Applied rewrites59.2%
if +inf.0 < (-.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
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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%
Final simplification58.7%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (- (pow b_m 2.0) (pow a_m 2.0)))
(t_1 (* (PI) angle))
(t_2 (* (* t_1 a_m) (* -0.011111111111111112 a_m))))
(if (<= t_0 -5e-125)
t_2
(if (<= t_0 INFINITY) (* (* b_m b_m) (* 0.011111111111111112 t_1)) t_2))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := {b\_m}^{2} - {a\_m}^{2}\\
t_1 := \mathsf{PI}\left(\right) \cdot angle\\
t_2 := \left(t\_1 \cdot a\_m\right) \cdot \left(-0.011111111111111112 \cdot a\_m\right)\\
\mathbf{if}\;t\_0 \leq -5 \cdot 10^{-125}:\\
\;\;\;\;t\_2\\
\mathbf{elif}\;t\_0 \leq \infty:\\
\;\;\;\;\left(b\_m \cdot b\_m\right) \cdot \left(0.011111111111111112 \cdot t\_1\right)\\
\mathbf{else}:\\
\;\;\;\;t\_2\\
\end{array}
\end{array}
if (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) < -4.99999999999999967e-125 or +inf.0 < (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) Initial program 49.6%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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.5
Applied rewrites51.5%
Taylor expanded in a around inf
Applied rewrites50.9%
Applied rewrites58.0%
if -4.99999999999999967e-125 < (-.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
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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 b around inf
Applied rewrites59.2%
Final simplification58.7%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(if (<= (/ angle 180.0) 5e+183)
(*
(cos (/ (* (PI) angle) 180.0))
(*
(+ b_m a_m)
(* (* (sin (* (* 0.005555555555555556 angle) (PI))) 2.0) (- b_m a_m))))
(/
(- (sin (* (* 0.011111111111111112 (PI)) angle)))
(/ (pow (- b_m a_m) -1.0) (+ b_m a_m)))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;\frac{angle}{180} \leq 5 \cdot 10^{+183}:\\
\;\;\;\;\cos \left(\frac{\mathsf{PI}\left(\right) \cdot angle}{180}\right) \cdot \left(\left(b\_m + a\_m\right) \cdot \left(\left(\sin \left(\left(0.005555555555555556 \cdot angle\right) \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right) \cdot \left(b\_m - a\_m\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{-\sin \left(\left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\right)}{\frac{{\left(b\_m - a\_m\right)}^{-1}}{b\_m + a\_m}}\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 5.00000000000000009e183Initial 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 rewrites75.4%
lift-*.f64N/A
lift-/.f64N/A
associate-*r/N/A
lower-/.f64N/A
lower-*.f6476.7
Applied rewrites76.7%
if 5.00000000000000009e183 < (/.f64 angle #s(literal 180 binary64)) Initial program 18.7%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
flip--N/A
clear-numN/A
associate-*l/N/A
Applied rewrites12.8%
remove-double-negN/A
neg-sub0N/A
lower--.f64N/A
lift-pow.f64N/A
unpow-1N/A
lift-*.f64N/A
*-commutativeN/A
lift-+.f64N/A
+-commutativeN/A
lift--.f64N/A
difference-of-squaresN/A
pow2N/A
pow2N/A
distribute-neg-fracN/A
metadata-evalN/A
lower-/.f64N/A
pow2N/A
pow2N/A
difference-of-squaresN/A
lift--.f64N/A
+-commutativeN/A
lift-+.f64N/A
*-commutativeN/A
lift-*.f6438.8
lift-+.f64N/A
+-commutativeN/A
lower-+.f6438.8
Applied rewrites38.8%
Applied rewrites54.6%
Final simplification74.4%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(if (<= (/ angle 180.0) 5e+183)
(*
(*
(* (sin (* (* 0.005555555555555556 angle) (PI))) (* 2.0 (- b_m a_m)))
(cos (* -0.005555555555555556 (* (PI) angle))))
(+ b_m a_m))
(/
(- (sin (* (* 0.011111111111111112 (PI)) angle)))
(/ (pow (- b_m a_m) -1.0) (+ b_m a_m)))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;\frac{angle}{180} \leq 5 \cdot 10^{+183}:\\
\;\;\;\;\left(\left(\sin \left(\left(0.005555555555555556 \cdot angle\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \left(2 \cdot \left(b\_m - a\_m\right)\right)\right) \cdot \cos \left(-0.005555555555555556 \cdot \left(\mathsf{PI}\left(\right) \cdot angle\right)\right)\right) \cdot \left(b\_m + a\_m\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{-\sin \left(\left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\right)}{\frac{{\left(b\_m - a\_m\right)}^{-1}}{b\_m + a\_m}}\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 5.00000000000000009e183Initial 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 rewrites75.4%
lift-*.f64N/A
lift-/.f64N/A
associate-*r/N/A
lower-/.f64N/A
lower-*.f6476.7
Applied rewrites76.7%
Applied rewrites75.4%
if 5.00000000000000009e183 < (/.f64 angle #s(literal 180 binary64)) Initial program 18.7%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
flip--N/A
clear-numN/A
associate-*l/N/A
Applied rewrites12.8%
remove-double-negN/A
neg-sub0N/A
lower--.f64N/A
lift-pow.f64N/A
unpow-1N/A
lift-*.f64N/A
*-commutativeN/A
lift-+.f64N/A
+-commutativeN/A
lift--.f64N/A
difference-of-squaresN/A
pow2N/A
pow2N/A
distribute-neg-fracN/A
metadata-evalN/A
lower-/.f64N/A
pow2N/A
pow2N/A
difference-of-squaresN/A
lift--.f64N/A
+-commutativeN/A
lift-+.f64N/A
*-commutativeN/A
lift-*.f6438.8
lift-+.f64N/A
+-commutativeN/A
lower-+.f6438.8
Applied rewrites38.8%
Applied rewrites54.6%
Final simplification73.2%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(if (<= (/ angle 180.0) 5e+183)
(*
(cos (* (* (PI) 0.005555555555555556) angle))
(*
(+ b_m a_m)
(* (* (sin (* (* 0.005555555555555556 angle) (PI))) 2.0) (- b_m a_m))))
(/
(- (sin (* (* 0.011111111111111112 (PI)) angle)))
(/ (pow (- b_m a_m) -1.0) (+ b_m a_m)))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;\frac{angle}{180} \leq 5 \cdot 10^{+183}:\\
\;\;\;\;\cos \left(\left(\mathsf{PI}\left(\right) \cdot 0.005555555555555556\right) \cdot angle\right) \cdot \left(\left(b\_m + a\_m\right) \cdot \left(\left(\sin \left(\left(0.005555555555555556 \cdot angle\right) \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right) \cdot \left(b\_m - a\_m\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{-\sin \left(\left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\right)}{\frac{{\left(b\_m - a\_m\right)}^{-1}}{b\_m + a\_m}}\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 5.00000000000000009e183Initial 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 rewrites75.4%
lift-*.f64N/A
lift-/.f64N/A
div-invN/A
metadata-evalN/A
*-commutativeN/A
associate-*l*N/A
lift-*.f64N/A
lift-*.f6475.3
Applied rewrites75.3%
if 5.00000000000000009e183 < (/.f64 angle #s(literal 180 binary64)) Initial program 18.7%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
flip--N/A
clear-numN/A
associate-*l/N/A
Applied rewrites12.8%
remove-double-negN/A
neg-sub0N/A
lower--.f64N/A
lift-pow.f64N/A
unpow-1N/A
lift-*.f64N/A
*-commutativeN/A
lift-+.f64N/A
+-commutativeN/A
lift--.f64N/A
difference-of-squaresN/A
pow2N/A
pow2N/A
distribute-neg-fracN/A
metadata-evalN/A
lower-/.f64N/A
pow2N/A
pow2N/A
difference-of-squaresN/A
lift--.f64N/A
+-commutativeN/A
lift-+.f64N/A
*-commutativeN/A
lift-*.f6438.8
lift-+.f64N/A
+-commutativeN/A
lower-+.f6438.8
Applied rewrites38.8%
Applied rewrites54.6%
Final simplification73.1%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (sin (* (* 0.011111111111111112 (PI)) angle))))
(if (<= (/ angle 180.0) 4e+137)
(* (* (+ b_m a_m) t_0) (- b_m a_m))
(/ (- t_0) (/ (pow (- b_m a_m) -1.0) (+ b_m a_m))))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := \sin \left(\left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\right)\\
\mathbf{if}\;\frac{angle}{180} \leq 4 \cdot 10^{+137}:\\
\;\;\;\;\left(\left(b\_m + a\_m\right) \cdot t\_0\right) \cdot \left(b\_m - a\_m\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{-t\_0}{\frac{{\left(b\_m - a\_m\right)}^{-1}}{b\_m + a\_m}}\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 4.0000000000000001e137Initial program 60.2%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
flip--N/A
clear-numN/A
associate-*l/N/A
Applied rewrites65.1%
*-lft-identityN/A
lift-/.f64N/A
associate-/l*N/A
lift-pow.f64N/A
lift-*.f64N/A
unpow-prod-downN/A
times-fracN/A
unpow-1N/A
remove-double-divN/A
lower-*.f64N/A
div-invN/A
unpow-1N/A
remove-double-divN/A
Applied rewrites74.9%
if 4.0000000000000001e137 < (/.f64 angle #s(literal 180 binary64)) Initial program 23.0%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
flip--N/A
clear-numN/A
associate-*l/N/A
Applied rewrites17.2%
remove-double-negN/A
neg-sub0N/A
lower--.f64N/A
lift-pow.f64N/A
unpow-1N/A
lift-*.f64N/A
*-commutativeN/A
lift-+.f64N/A
+-commutativeN/A
lift--.f64N/A
difference-of-squaresN/A
pow2N/A
pow2N/A
distribute-neg-fracN/A
metadata-evalN/A
lower-/.f64N/A
pow2N/A
pow2N/A
difference-of-squaresN/A
lift--.f64N/A
+-commutativeN/A
lift-+.f64N/A
*-commutativeN/A
lift-*.f6435.9
lift-+.f64N/A
+-commutativeN/A
lower-+.f6435.9
Applied rewrites35.9%
Applied rewrites50.4%
Final simplification71.9%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (* (* 0.011111111111111112 (PI)) angle)))
(if (<= (/ angle 180.0) 2e-10)
(* (* t_0 (- b_m a_m)) (+ b_m a_m))
(if (<= (/ angle 180.0) 1e+183)
(* (* (+ b_m a_m) (- b_m a_m)) (sin t_0))
(* (* (- a_m) (+ b_m a_m)) t_0)))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := \left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\\
\mathbf{if}\;\frac{angle}{180} \leq 2 \cdot 10^{-10}:\\
\;\;\;\;\left(t\_0 \cdot \left(b\_m - a\_m\right)\right) \cdot \left(b\_m + a\_m\right)\\
\mathbf{elif}\;\frac{angle}{180} \leq 10^{+183}:\\
\;\;\;\;\left(\left(b\_m + a\_m\right) \cdot \left(b\_m - a\_m\right)\right) \cdot \sin t\_0\\
\mathbf{else}:\\
\;\;\;\;\left(\left(-a\_m\right) \cdot \left(b\_m + a\_m\right)\right) \cdot t\_0\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 2.00000000000000007e-10Initial program 64.2%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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.8
Applied rewrites63.8%
Applied rewrites73.2%
if 2.00000000000000007e-10 < (/.f64 angle #s(literal 180 binary64)) < 9.99999999999999947e182Initial program 40.9%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
flip--N/A
clear-numN/A
associate-*l/N/A
Applied rewrites49.8%
lift-/.f64N/A
clear-numN/A
associate-/r/N/A
lift-pow.f64N/A
unpow-1N/A
remove-double-divN/A
lift-*.f64N/A
*-commutativeN/A
lift-+.f64N/A
+-commutativeN/A
lift--.f64N/A
difference-of-squaresN/A
pow2N/A
pow2N/A
lower-*.f64N/A
Applied rewrites52.8%
if 9.99999999999999947e182 < (/.f64 angle #s(literal 180 binary64)) Initial program 18.7%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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--.f6427.1
Applied rewrites27.1%
Taylor expanded in a around inf
Applied rewrites37.7%
Final simplification66.1%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (* (* 0.011111111111111112 (PI)) angle)))
(if (<= (/ angle 180.0) 2e-10)
(* (* t_0 (- b_m a_m)) (+ b_m a_m))
(if (<= (/ angle 180.0) 2e+191)
(*
(* (+ b_m a_m) (- b_m a_m))
(sin (* 0.011111111111111112 (* (PI) angle))))
(* (* (- a_m) (+ b_m a_m)) t_0)))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := \left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\\
\mathbf{if}\;\frac{angle}{180} \leq 2 \cdot 10^{-10}:\\
\;\;\;\;\left(t\_0 \cdot \left(b\_m - a\_m\right)\right) \cdot \left(b\_m + a\_m\right)\\
\mathbf{elif}\;\frac{angle}{180} \leq 2 \cdot 10^{+191}:\\
\;\;\;\;\left(\left(b\_m + a\_m\right) \cdot \left(b\_m - a\_m\right)\right) \cdot \sin \left(0.011111111111111112 \cdot \left(\mathsf{PI}\left(\right) \cdot angle\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(-a\_m\right) \cdot \left(b\_m + a\_m\right)\right) \cdot t\_0\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 2.00000000000000007e-10Initial program 64.2%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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.8
Applied rewrites63.8%
Applied rewrites73.2%
if 2.00000000000000007e-10 < (/.f64 angle #s(literal 180 binary64)) < 2.00000000000000015e191Initial program 40.9%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lower-*.f64N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
+-commutativeN/A
lower-+.f64N/A
Applied rewrites49.8%
if 2.00000000000000015e191 < (/.f64 angle #s(literal 180 binary64)) Initial program 18.7%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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--.f6427.1
Applied rewrites27.1%
Taylor expanded in a around inf
Applied rewrites37.7%
Final simplification65.6%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (sin (* (* 0.011111111111111112 (PI)) angle))))
(if (<= (/ angle 180.0) 4e+137)
(* (* (+ b_m a_m) t_0) (- b_m a_m))
(* (* t_0 (- a_m b_m)) (+ b_m a_m)))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := \sin \left(\left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\right)\\
\mathbf{if}\;\frac{angle}{180} \leq 4 \cdot 10^{+137}:\\
\;\;\;\;\left(\left(b\_m + a\_m\right) \cdot t\_0\right) \cdot \left(b\_m - a\_m\right)\\
\mathbf{else}:\\
\;\;\;\;\left(t\_0 \cdot \left(a\_m - b\_m\right)\right) \cdot \left(b\_m + a\_m\right)\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 4.0000000000000001e137Initial program 60.2%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
flip--N/A
clear-numN/A
associate-*l/N/A
Applied rewrites65.1%
*-lft-identityN/A
lift-/.f64N/A
associate-/l*N/A
lift-pow.f64N/A
lift-*.f64N/A
unpow-prod-downN/A
times-fracN/A
unpow-1N/A
remove-double-divN/A
lower-*.f64N/A
div-invN/A
unpow-1N/A
remove-double-divN/A
Applied rewrites74.9%
if 4.0000000000000001e137 < (/.f64 angle #s(literal 180 binary64)) Initial program 23.0%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
flip--N/A
clear-numN/A
associate-*l/N/A
Applied rewrites17.2%
remove-double-negN/A
neg-sub0N/A
lower--.f64N/A
lift-pow.f64N/A
unpow-1N/A
lift-*.f64N/A
*-commutativeN/A
lift-+.f64N/A
+-commutativeN/A
lift--.f64N/A
difference-of-squaresN/A
pow2N/A
pow2N/A
distribute-neg-fracN/A
metadata-evalN/A
lower-/.f64N/A
pow2N/A
pow2N/A
difference-of-squaresN/A
lift--.f64N/A
+-commutativeN/A
lift-+.f64N/A
*-commutativeN/A
lift-*.f6435.9
lift-+.f64N/A
+-commutativeN/A
lower-+.f6435.9
Applied rewrites35.9%
Applied rewrites50.4%
Final simplification71.9%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (* (* 0.011111111111111112 (PI)) angle)))
(if (<= (/ angle 180.0) 1e+183)
(* (* (+ b_m a_m) (sin t_0)) (- b_m a_m))
(* (* (- a_m) (+ b_m a_m)) t_0))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := \left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\\
\mathbf{if}\;\frac{angle}{180} \leq 10^{+183}:\\
\;\;\;\;\left(\left(b\_m + a\_m\right) \cdot \sin t\_0\right) \cdot \left(b\_m - a\_m\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(-a\_m\right) \cdot \left(b\_m + a\_m\right)\right) \cdot t\_0\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 9.99999999999999947e182Initial program 59.9%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
flip--N/A
clear-numN/A
associate-*l/N/A
Applied rewrites64.6%
*-lft-identityN/A
lift-/.f64N/A
associate-/l*N/A
lift-pow.f64N/A
lift-*.f64N/A
unpow-prod-downN/A
times-fracN/A
unpow-1N/A
remove-double-divN/A
lower-*.f64N/A
div-invN/A
unpow-1N/A
remove-double-divN/A
Applied rewrites74.3%
if 9.99999999999999947e182 < (/.f64 angle #s(literal 180 binary64)) Initial program 18.7%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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--.f6427.1
Applied rewrites27.1%
Taylor expanded in a around inf
Applied rewrites37.7%
Final simplification70.4%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(if (<= (/ angle 180.0) 2e+191)
(*
(* (sin (* 0.011111111111111112 (* (PI) angle))) (- b_m a_m))
(+ b_m a_m))
(* (* (- a_m) (+ b_m a_m)) (* (* 0.011111111111111112 (PI)) angle))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;\frac{angle}{180} \leq 2 \cdot 10^{+191}:\\
\;\;\;\;\left(\sin \left(0.011111111111111112 \cdot \left(\mathsf{PI}\left(\right) \cdot angle\right)\right) \cdot \left(b\_m - a\_m\right)\right) \cdot \left(b\_m + a\_m\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(-a\_m\right) \cdot \left(b\_m + a\_m\right)\right) \cdot \left(\left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\right)\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 2.00000000000000015e191Initial program 59.9%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/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
Applied rewrites73.9%
if 2.00000000000000015e191 < (/.f64 angle #s(literal 180 binary64)) Initial program 18.7%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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--.f6427.1
Applied rewrites27.1%
Taylor expanded in a around inf
Applied rewrites37.7%
Final simplification70.1%
b_m = (fabs.f64 b) a_m = (fabs.f64 a) (FPCore (a_m b_m angle) :precision binary64 (if (<= (pow a_m 2.0) 2e+247) (* (* (* (+ b_m a_m) (- b_m a_m)) angle) (* 0.011111111111111112 (PI))) (* (* (* -0.011111111111111112 a_m) (* (PI) angle)) a_m)))
\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;{a\_m}^{2} \leq 2 \cdot 10^{+247}:\\
\;\;\;\;\left(\left(\left(b\_m + a\_m\right) \cdot \left(b\_m - a\_m\right)\right) \cdot angle\right) \cdot \left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(-0.011111111111111112 \cdot a\_m\right) \cdot \left(\mathsf{PI}\left(\right) \cdot angle\right)\right) \cdot a\_m\\
\end{array}
\end{array}
if (pow.f64 a #s(literal 2 binary64)) < 1.9999999999999999e247Initial program 60.1%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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.6
Applied rewrites57.6%
Applied rewrites57.6%
if 1.9999999999999999e247 < (pow.f64 a #s(literal 2 binary64)) Initial program 45.6%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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.6
Applied rewrites51.6%
Taylor expanded in a around inf
Applied rewrites51.8%
Applied rewrites62.2%
Final simplification59.0%
b_m = (fabs.f64 b) a_m = (fabs.f64 a) (FPCore (a_m b_m angle) :precision binary64 (if (<= (pow a_m 2.0) 2e+247) (* (* (* 0.011111111111111112 angle) (PI)) (* (+ b_m a_m) (- b_m a_m))) (* (* (* -0.011111111111111112 a_m) (* (PI) angle)) a_m)))
\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;{a\_m}^{2} \leq 2 \cdot 10^{+247}:\\
\;\;\;\;\left(\left(0.011111111111111112 \cdot angle\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \left(\left(b\_m + a\_m\right) \cdot \left(b\_m - a\_m\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(-0.011111111111111112 \cdot a\_m\right) \cdot \left(\mathsf{PI}\left(\right) \cdot angle\right)\right) \cdot a\_m\\
\end{array}
\end{array}
if (pow.f64 a #s(literal 2 binary64)) < 1.9999999999999999e247Initial program 60.1%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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.6
Applied rewrites57.6%
Applied rewrites57.6%
if 1.9999999999999999e247 < (pow.f64 a #s(literal 2 binary64)) Initial program 45.6%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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.6
Applied rewrites51.6%
Taylor expanded in a around inf
Applied rewrites51.8%
Applied rewrites62.2%
Final simplification59.0%
b_m = (fabs.f64 b) a_m = (fabs.f64 a) (FPCore (a_m b_m angle) :precision binary64 (if (<= (pow a_m 2.0) 2e+247) (* (* (+ b_m a_m) (- b_m a_m)) (* (* 0.011111111111111112 (PI)) angle)) (* (* (* -0.011111111111111112 a_m) (* (PI) angle)) a_m)))
\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;{a\_m}^{2} \leq 2 \cdot 10^{+247}:\\
\;\;\;\;\left(\left(b\_m + a\_m\right) \cdot \left(b\_m - a\_m\right)\right) \cdot \left(\left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(-0.011111111111111112 \cdot a\_m\right) \cdot \left(\mathsf{PI}\left(\right) \cdot angle\right)\right) \cdot a\_m\\
\end{array}
\end{array}
if (pow.f64 a #s(literal 2 binary64)) < 1.9999999999999999e247Initial program 60.1%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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.6
Applied rewrites57.6%
if 1.9999999999999999e247 < (pow.f64 a #s(literal 2 binary64)) Initial program 45.6%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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.6
Applied rewrites51.6%
Taylor expanded in a around inf
Applied rewrites51.8%
Applied rewrites62.2%
Final simplification59.0%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (* (PI) angle)))
(if (<= (pow a_m 2.0) 5e+255)
(* (* (* a_m a_m) -0.011111111111111112) t_0)
(* (* t_0 a_m) (* -0.011111111111111112 a_m)))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := \mathsf{PI}\left(\right) \cdot angle\\
\mathbf{if}\;{a\_m}^{2} \leq 5 \cdot 10^{+255}:\\
\;\;\;\;\left(\left(a\_m \cdot a\_m\right) \cdot -0.011111111111111112\right) \cdot t\_0\\
\mathbf{else}:\\
\;\;\;\;\left(t\_0 \cdot a\_m\right) \cdot \left(-0.011111111111111112 \cdot a\_m\right)\\
\end{array}
\end{array}
if (pow.f64 a #s(literal 2 binary64)) < 5.0000000000000002e255Initial program 58.8%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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.0
Applied rewrites56.0%
Taylor expanded in a around inf
Applied rewrites30.9%
if 5.0000000000000002e255 < (pow.f64 a #s(literal 2 binary64)) Initial program 47.9%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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.8
Applied rewrites54.8%
Taylor expanded in a around inf
Applied rewrites54.8%
Applied rewrites65.8%
Final simplification41.3%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (* (* 0.011111111111111112 (PI)) angle)))
(if (<= (/ angle 180.0) 45000.0)
(* (* t_0 (- b_m a_m)) (+ b_m a_m))
(if (<= (/ angle 180.0) 1e+183)
(/
(* 0.011111111111111112 (* (PI) angle))
(/ -1.0 (* (+ b_m a_m) (- a_m b_m))))
(* (* (- a_m) (+ b_m a_m)) t_0)))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := \left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\\
\mathbf{if}\;\frac{angle}{180} \leq 45000:\\
\;\;\;\;\left(t\_0 \cdot \left(b\_m - a\_m\right)\right) \cdot \left(b\_m + a\_m\right)\\
\mathbf{elif}\;\frac{angle}{180} \leq 10^{+183}:\\
\;\;\;\;\frac{0.011111111111111112 \cdot \left(\mathsf{PI}\left(\right) \cdot angle\right)}{\frac{-1}{\left(b\_m + a\_m\right) \cdot \left(a\_m - b\_m\right)}}\\
\mathbf{else}:\\
\;\;\;\;\left(\left(-a\_m\right) \cdot \left(b\_m + a\_m\right)\right) \cdot t\_0\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 45000Initial program 64.0%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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--.f6464.2
Applied rewrites64.2%
Applied rewrites73.5%
if 45000 < (/.f64 angle #s(literal 180 binary64)) < 9.99999999999999947e182Initial program 40.4%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
flip--N/A
clear-numN/A
associate-*l/N/A
Applied rewrites47.3%
remove-double-negN/A
neg-sub0N/A
lower--.f64N/A
lift-pow.f64N/A
unpow-1N/A
lift-*.f64N/A
*-commutativeN/A
lift-+.f64N/A
+-commutativeN/A
lift--.f64N/A
difference-of-squaresN/A
pow2N/A
pow2N/A
distribute-neg-fracN/A
metadata-evalN/A
lower-/.f64N/A
pow2N/A
pow2N/A
difference-of-squaresN/A
lift--.f64N/A
+-commutativeN/A
lift-+.f64N/A
*-commutativeN/A
lift-*.f6437.3
lift-+.f64N/A
+-commutativeN/A
lower-+.f6437.3
Applied rewrites37.3%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6439.6
Applied rewrites39.6%
if 9.99999999999999947e182 < (/.f64 angle #s(literal 180 binary64)) Initial program 18.7%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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--.f6427.1
Applied rewrites27.1%
Taylor expanded in a around inf
Applied rewrites37.7%
Final simplification63.6%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (* (* 0.011111111111111112 (PI)) angle)))
(if (<= (/ angle 180.0) 2e+46)
(* (* t_0 (- b_m a_m)) (+ b_m a_m))
(* (* (- a_m) (+ b_m a_m)) t_0))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := \left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\\
\mathbf{if}\;\frac{angle}{180} \leq 2 \cdot 10^{+46}:\\
\;\;\;\;\left(t\_0 \cdot \left(b\_m - a\_m\right)\right) \cdot \left(b\_m + a\_m\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(-a\_m\right) \cdot \left(b\_m + a\_m\right)\right) \cdot t\_0\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 2e46Initial program 62.5%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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.2
Applied rewrites61.2%
Applied rewrites69.6%
if 2e46 < (/.f64 angle #s(literal 180 binary64)) Initial program 24.6%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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--.f6431.0
Applied rewrites31.0%
Taylor expanded in a around inf
Applied rewrites35.1%
Final simplification63.3%
b_m = (fabs.f64 b) a_m = (fabs.f64 a) (FPCore (a_m b_m angle) :precision binary64 (* (* (* (PI) angle) a_m) (* -0.011111111111111112 a_m)))
\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\left(\left(\mathsf{PI}\left(\right) \cdot angle\right) \cdot a\_m\right) \cdot \left(-0.011111111111111112 \cdot a\_m\right)
\end{array}
Initial program 55.5%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
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%
Final simplification39.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)))))