
(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}
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(let* ((t_0 (cbrt (PI)))
(t_1 (* (/ angle_m 180.0) (PI)))
(t_2 (sqrt (PI)))
(t_3 (* t_2 angle_m)))
(*
angle_s
(if (<=
(* (cos t_1) (* (sin t_1) (* (- (pow b 2.0) (pow a_m 2.0)) 2.0)))
-4e+152)
(*
(cos (* t_3 (/ t_2 180.0)))
(*
(*
(*
(sin (* (* (pow t_0 2.0) t_0) (* 0.005555555555555556 angle_m)))
2.0)
(- b a_m))
(+ a_m b)))
(*
(cos (* (exp (- (log (/ 180.0 t_2)))) t_3))
(*
(* (* (sin (* (* 0.005555555555555556 angle_m) (PI))) 2.0) (- b a_m))
(+ a_m b)))))))\begin{array}{l}
a_m = \left|a\right|
\\
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 := \frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\\
t_2 := \sqrt{\mathsf{PI}\left(\right)}\\
t_3 := t\_2 \cdot angle\_m\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;\cos t\_1 \cdot \left(\sin t\_1 \cdot \left(\left({b}^{2} - {a\_m}^{2}\right) \cdot 2\right)\right) \leq -4 \cdot 10^{+152}:\\
\;\;\;\;\cos \left(t\_3 \cdot \frac{t\_2}{180}\right) \cdot \left(\left(\left(\sin \left(\left({t\_0}^{2} \cdot t\_0\right) \cdot \left(0.005555555555555556 \cdot angle\_m\right)\right) \cdot 2\right) \cdot \left(b - a\_m\right)\right) \cdot \left(a\_m + b\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\cos \left(e^{-\log \left(\frac{180}{t\_2}\right)} \cdot t\_3\right) \cdot \left(\left(\left(\sin \left(\left(0.005555555555555556 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right) \cdot \left(b - a\_m\right)\right) \cdot \left(a\_m + b\right)\right)\\
\end{array}
\end{array}
\end{array}
if (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) < -4.0000000000000002e152Initial program 41.4%
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-*.f6465.5
Applied rewrites66.5%
lift-*.f64N/A
lift-/.f64N/A
clear-numN/A
un-div-invN/A
lift-PI.f64N/A
add-sqr-sqrtN/A
div-invN/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
lower-/.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
inv-powN/A
lower-pow.f6470.3
Applied rewrites70.3%
lift-/.f64N/A
div-invN/A
lift-pow.f64N/A
unpow-1N/A
remove-double-divN/A
lower-*.f6471.9
Applied rewrites71.9%
lift-PI.f64N/A
add-cube-cbrtN/A
lower-*.f64N/A
pow2N/A
lower-pow.f64N/A
lift-PI.f64N/A
lower-cbrt.f64N/A
lift-PI.f64N/A
lower-cbrt.f6475.3
Applied rewrites75.3%
if -4.0000000000000002e152 < (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) Initial program 62.6%
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-*.f6472.1
Applied rewrites72.3%
lift-*.f64N/A
lift-/.f64N/A
clear-numN/A
un-div-invN/A
lift-PI.f64N/A
add-sqr-sqrtN/A
div-invN/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
lower-/.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
inv-powN/A
lower-pow.f6473.8
Applied rewrites73.8%
lift-/.f64N/A
div-invN/A
lift-pow.f64N/A
unpow-1N/A
remove-double-divN/A
lower-*.f6474.0
Applied rewrites74.0%
lift-/.f64N/A
clear-numN/A
inv-powN/A
pow-to-expN/A
lower-exp.f64N/A
lower-*.f64N/A
lower-log.f64N/A
lower-/.f6475.4
Applied rewrites75.4%
Final simplification75.4%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(let* ((t_0
(*
(* (* (sin (* (* 0.005555555555555556 angle_m) (PI))) 2.0) (- b a_m))
(+ a_m b)))
(t_1 (* (/ angle_m 180.0) (PI)))
(t_2 (sqrt (PI))))
(*
angle_s
(if (<=
(* (cos t_1) (* (sin t_1) (* (- (pow b 2.0) (pow a_m 2.0)) 2.0)))
2e+263)
(* (cos (* (* (* t_2 angle_m) 0.005555555555555556) t_2)) t_0)
(*
(fma (* (* angle_m angle_m) -1.54320987654321e-5) (* (PI) (PI)) 1.0)
t_0)))))\begin{array}{l}
a_m = \left|a\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \left(\left(\sin \left(\left(0.005555555555555556 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right) \cdot \left(b - a\_m\right)\right) \cdot \left(a\_m + b\right)\\
t_1 := \frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\\
t_2 := \sqrt{\mathsf{PI}\left(\right)}\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;\cos t\_1 \cdot \left(\sin t\_1 \cdot \left(\left({b}^{2} - {a\_m}^{2}\right) \cdot 2\right)\right) \leq 2 \cdot 10^{+263}:\\
\;\;\;\;\cos \left(\left(\left(t\_2 \cdot angle\_m\right) \cdot 0.005555555555555556\right) \cdot t\_2\right) \cdot t\_0\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\left(angle\_m \cdot angle\_m\right) \cdot -1.54320987654321 \cdot 10^{-5}, \mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right), 1\right) \cdot t\_0\\
\end{array}
\end{array}
\end{array}
if (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) < 2.00000000000000003e263Initial program 62.0%
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-*.f6469.6
Applied rewrites70.0%
lift-*.f64N/A
lift-/.f64N/A
clear-numN/A
un-div-invN/A
lift-PI.f64N/A
add-sqr-sqrtN/A
div-invN/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
lower-/.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
inv-powN/A
lower-pow.f6471.2
Applied rewrites71.2%
lift-*.f64N/A
lift-/.f64N/A
lift-/.f64N/A
frac-timesN/A
lift-pow.f64N/A
unpow-1N/A
div-invN/A
associate-/l*N/A
lower-*.f64N/A
lift-sqrt.f64N/A
*-lft-identityN/A
sqrt-prodN/A
metadata-evalN/A
lift-sqrt.f64N/A
div-invN/A
unpow-1N/A
lift-pow.f64N/A
times-fracN/A
metadata-evalN/A
lift-/.f64N/A
lower-*.f6471.2
Applied rewrites71.5%
if 2.00000000000000003e263 < (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) Initial program 42.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.5
Applied rewrites73.5%
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.f6480.2
Applied rewrites80.2%
Final simplification73.6%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(let* ((t_0 (* (/ angle_m 180.0) (PI)))
(t_1
(*
(* (* (sin (* (* 0.005555555555555556 angle_m) (PI))) 2.0) (- b a_m))
(+ a_m b))))
(*
angle_s
(if (<=
(* (cos t_0) (* (sin t_0) (* (- (pow b 2.0) (pow a_m 2.0)) 2.0)))
5e+294)
(* (cos (/ (* angle_m (PI)) 180.0)) t_1)
(*
(fma (* (* angle_m angle_m) -1.54320987654321e-5) (* (PI) (PI)) 1.0)
t_1)))))\begin{array}{l}
a_m = \left|a\right|
\\
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)\\
t_1 := \left(\left(\sin \left(\left(0.005555555555555556 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right) \cdot \left(b - a\_m\right)\right) \cdot \left(a\_m + b\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;\cos t\_0 \cdot \left(\sin t\_0 \cdot \left(\left({b}^{2} - {a\_m}^{2}\right) \cdot 2\right)\right) \leq 5 \cdot 10^{+294}:\\
\;\;\;\;\cos \left(\frac{angle\_m \cdot \mathsf{PI}\left(\right)}{180}\right) \cdot t\_1\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\left(angle\_m \cdot angle\_m\right) \cdot -1.54320987654321 \cdot 10^{-5}, \mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right), 1\right) \cdot t\_1\\
\end{array}
\end{array}
\end{array}
if (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) < 4.9999999999999999e294Initial program 62.0%
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-*.f6469.6
Applied rewrites70.0%
lift-*.f64N/A
lift-/.f64N/A
associate-*r/N/A
*-commutativeN/A
lift-*.f64N/A
lower-/.f6471.1
lift-*.f64N/A
*-commutativeN/A
lower-*.f6471.1
Applied rewrites71.1%
if 4.9999999999999999e294 < (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) Initial program 42.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.5
Applied rewrites73.5%
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.f6480.2
Applied rewrites80.2%
Final simplification73.2%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(let* ((t_0 (* (/ angle_m 180.0) (PI)))
(t_1 (cos t_0))
(t_2
(*
(* (* (sin (* (* 0.005555555555555556 angle_m) (PI))) 2.0) (- b a_m))
(+ a_m b))))
(*
angle_s
(if (<= (* t_1 (* (sin t_0) (* (- (pow b 2.0) (pow a_m 2.0)) 2.0))) 5e+294)
(* t_2 t_1)
(*
(fma (* (* angle_m angle_m) -1.54320987654321e-5) (* (PI) (PI)) 1.0)
t_2)))))\begin{array}{l}
a_m = \left|a\right|
\\
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)\\
t_1 := \cos t\_0\\
t_2 := \left(\left(\sin \left(\left(0.005555555555555556 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right) \cdot \left(b - a\_m\right)\right) \cdot \left(a\_m + b\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;t\_1 \cdot \left(\sin t\_0 \cdot \left(\left({b}^{2} - {a\_m}^{2}\right) \cdot 2\right)\right) \leq 5 \cdot 10^{+294}:\\
\;\;\;\;t\_2 \cdot t\_1\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\left(angle\_m \cdot angle\_m\right) \cdot -1.54320987654321 \cdot 10^{-5}, \mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right), 1\right) \cdot t\_2\\
\end{array}
\end{array}
\end{array}
if (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) < 4.9999999999999999e294Initial program 62.0%
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-*.f6469.6
Applied rewrites70.0%
if 4.9999999999999999e294 < (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) Initial program 42.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.5
Applied rewrites73.5%
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.f6480.2
Applied rewrites80.2%
Final simplification72.4%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(let* ((t_0 (* (/ angle_m 180.0) (PI)))
(t_1 (* (* 0.005555555555555556 angle_m) (PI)))
(t_2 (* (* (* (sin t_1) 2.0) (- b a_m)) (+ a_m b))))
(*
angle_s
(if (<=
(* (cos t_0) (* (sin t_0) (* (- (pow b 2.0) (pow a_m 2.0)) 2.0)))
5e+294)
(* (cos t_1) t_2)
(*
(fma (* (* angle_m angle_m) -1.54320987654321e-5) (* (PI) (PI)) 1.0)
t_2)))))\begin{array}{l}
a_m = \left|a\right|
\\
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)\\
t_1 := \left(0.005555555555555556 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\\
t_2 := \left(\left(\sin t\_1 \cdot 2\right) \cdot \left(b - a\_m\right)\right) \cdot \left(a\_m + b\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;\cos t\_0 \cdot \left(\sin t\_0 \cdot \left(\left({b}^{2} - {a\_m}^{2}\right) \cdot 2\right)\right) \leq 5 \cdot 10^{+294}:\\
\;\;\;\;\cos t\_1 \cdot t\_2\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\left(angle\_m \cdot angle\_m\right) \cdot -1.54320987654321 \cdot 10^{-5}, \mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right), 1\right) \cdot t\_2\\
\end{array}
\end{array}
\end{array}
if (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) < 4.9999999999999999e294Initial program 62.0%
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-*.f6469.6
Applied rewrites70.0%
lift-*.f64N/A
*-commutativeN/A
lower-*.f6470.0
lift-/.f64N/A
div-invN/A
metadata-evalN/A
lower-*.f6470.0
Applied rewrites70.0%
if 4.9999999999999999e294 < (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) Initial program 42.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.5
Applied rewrites73.5%
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.f6480.2
Applied rewrites80.2%
Final simplification72.4%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(let* ((t_0 (* (/ angle_m 180.0) (PI))))
(*
angle_s
(if (<=
(* (cos t_0) (* (sin t_0) (* (- (pow b 2.0) (pow a_m 2.0)) 2.0)))
5e+294)
(*
(* (sin (* 0.011111111111111112 (* angle_m (PI)))) (- b a_m))
(+ a_m b))
(*
(fma (* (* angle_m angle_m) -1.54320987654321e-5) (* (PI) (PI)) 1.0)
(*
(* (* (sin (* (* 0.005555555555555556 angle_m) (PI))) 2.0) (- b a_m))
(+ a_m b)))))))\begin{array}{l}
a_m = \left|a\right|
\\
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}\;\cos t\_0 \cdot \left(\sin t\_0 \cdot \left(\left({b}^{2} - {a\_m}^{2}\right) \cdot 2\right)\right) \leq 5 \cdot 10^{+294}:\\
\;\;\;\;\left(\sin \left(0.011111111111111112 \cdot \left(angle\_m \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left(b - a\_m\right)\right) \cdot \left(a\_m + b\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\left(angle\_m \cdot angle\_m\right) \cdot -1.54320987654321 \cdot 10^{-5}, \mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right), 1\right) \cdot \left(\left(\left(\sin \left(\left(0.005555555555555556 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right) \cdot \left(b - a\_m\right)\right) \cdot \left(a\_m + b\right)\right)\\
\end{array}
\end{array}
\end{array}
if (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) < 4.9999999999999999e294Initial program 62.0%
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 rewrites69.5%
if 4.9999999999999999e294 < (*.f64 (*.f64 (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle #s(literal 180 binary64))))) Initial program 42.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.5
Applied rewrites73.5%
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.f6480.2
Applied rewrites80.2%
Final simplification72.0%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(let* ((t_0 (sqrt (PI))))
(*
angle_s
(*
(cos (* (exp (- (log (/ 180.0 t_0)))) (* t_0 angle_m)))
(*
(* (* (sin (* (* 0.005555555555555556 angle_m) (PI))) 2.0) (- b a_m))
(+ a_m b))))))\begin{array}{l}
a_m = \left|a\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \sqrt{\mathsf{PI}\left(\right)}\\
angle\_s \cdot \left(\cos \left(e^{-\log \left(\frac{180}{t\_0}\right)} \cdot \left(t\_0 \cdot angle\_m\right)\right) \cdot \left(\left(\left(\sin \left(\left(0.005555555555555556 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right) \cdot \left(b - a\_m\right)\right) \cdot \left(a\_m + b\right)\right)\right)
\end{array}
\end{array}
Initial program 57.4%
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-*.f6470.5
Applied rewrites70.9%
lift-*.f64N/A
lift-/.f64N/A
clear-numN/A
un-div-invN/A
lift-PI.f64N/A
add-sqr-sqrtN/A
div-invN/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
lower-/.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
inv-powN/A
lower-pow.f6473.0
Applied rewrites73.0%
lift-/.f64N/A
div-invN/A
lift-pow.f64N/A
unpow-1N/A
remove-double-divN/A
lower-*.f6473.5
Applied rewrites73.5%
lift-/.f64N/A
clear-numN/A
inv-powN/A
pow-to-expN/A
lower-exp.f64N/A
lower-*.f64N/A
lower-log.f64N/A
lower-/.f6474.2
Applied rewrites74.2%
Final simplification74.2%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(*
angle_s
(if (<= (- (pow b 2.0) (pow a_m 2.0)) -2e+305)
(* (* (* (+ a_m b) (PI)) (* 0.011111111111111112 angle_m)) (- b a_m))
(*
(* (sin (* 0.011111111111111112 (* angle_m (PI)))) (- b a_m))
(+ a_m b)))))\begin{array}{l}
a_m = \left|a\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;{b}^{2} - {a\_m}^{2} \leq -2 \cdot 10^{+305}:\\
\;\;\;\;\left(\left(\left(a\_m + b\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \left(0.011111111111111112 \cdot angle\_m\right)\right) \cdot \left(b - a\_m\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\sin \left(0.011111111111111112 \cdot \left(angle\_m \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left(b - a\_m\right)\right) \cdot \left(a\_m + b\right)\\
\end{array}
\end{array}
if (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) < -1.9999999999999999e305Initial program 46.4%
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.0
Applied rewrites55.0%
Applied rewrites77.9%
if -1.9999999999999999e305 < (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) Initial program 60.1%
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 rewrites69.3%
Final simplification71.0%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(let* ((t_0 (sqrt (PI))))
(*
angle_s
(*
(*
(* (* (sin (* (* 0.005555555555555556 angle_m) (PI))) 2.0) (- b a_m))
(+ a_m b))
(cos (* (* t_0 angle_m) (/ t_0 180.0)))))))\begin{array}{l}
a_m = \left|a\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \sqrt{\mathsf{PI}\left(\right)}\\
angle\_s \cdot \left(\left(\left(\left(\sin \left(\left(0.005555555555555556 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right) \cdot \left(b - a\_m\right)\right) \cdot \left(a\_m + b\right)\right) \cdot \cos \left(\left(t\_0 \cdot angle\_m\right) \cdot \frac{t\_0}{180}\right)\right)
\end{array}
\end{array}
Initial program 57.4%
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-*.f6470.5
Applied rewrites70.9%
lift-*.f64N/A
lift-/.f64N/A
clear-numN/A
un-div-invN/A
lift-PI.f64N/A
add-sqr-sqrtN/A
div-invN/A
times-fracN/A
lower-*.f64N/A
lower-/.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
lower-/.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
inv-powN/A
lower-pow.f6473.0
Applied rewrites73.0%
lift-/.f64N/A
div-invN/A
lift-pow.f64N/A
unpow-1N/A
remove-double-divN/A
lower-*.f6473.5
Applied rewrites73.5%
Final simplification73.5%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(let* ((t_0 (sqrt (PI))))
(*
angle_s
(*
(cos (* (* t_0 (* 0.005555555555555556 angle_m)) t_0))
(*
(* (* (sin (* (* 0.005555555555555556 angle_m) (PI))) 2.0) (- b a_m))
(+ a_m b))))))\begin{array}{l}
a_m = \left|a\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \sqrt{\mathsf{PI}\left(\right)}\\
angle\_s \cdot \left(\cos \left(\left(t\_0 \cdot \left(0.005555555555555556 \cdot angle\_m\right)\right) \cdot t\_0\right) \cdot \left(\left(\left(\sin \left(\left(0.005555555555555556 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right) \cdot \left(b - a\_m\right)\right) \cdot \left(a\_m + b\right)\right)\right)
\end{array}
\end{array}
Initial program 57.4%
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-*.f6470.5
Applied rewrites70.9%
lift-*.f64N/A
*-commutativeN/A
lift-PI.f64N/A
add-sqr-sqrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lift-/.f64N/A
div-invN/A
metadata-evalN/A
lower-*.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
lift-PI.f64N/A
lower-sqrt.f6472.7
Applied rewrites72.7%
Final simplification72.7%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(*
angle_s
(if (<= (- (pow b 2.0) (pow a_m 2.0)) -5e+264)
(* (* (* angle_m a_m) (* -0.011111111111111112 a_m)) (PI))
(* (* (- b a_m) (+ a_m b)) (* (* 0.011111111111111112 (PI)) angle_m)))))\begin{array}{l}
a_m = \left|a\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;{b}^{2} - {a\_m}^{2} \leq -5 \cdot 10^{+264}:\\
\;\;\;\;\left(\left(angle\_m \cdot a\_m\right) \cdot \left(-0.011111111111111112 \cdot a\_m\right)\right) \cdot \mathsf{PI}\left(\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(b - a\_m\right) \cdot \left(a\_m + b\right)\right) \cdot \left(\left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right)\\
\end{array}
\end{array}
if (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) < -5.00000000000000033e264Initial program 47.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.0
Applied rewrites55.0%
Taylor expanded in b around 0
Applied rewrites55.0%
Applied rewrites76.1%
Applied rewrites76.2%
if -5.00000000000000033e264 < (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) Initial program 60.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.6
Applied rewrites59.6%
Final simplification63.1%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(*
angle_s
(if (<= (- (pow b 2.0) (pow a_m 2.0)) -1e-264)
(* (* (* angle_m a_m) (* -0.011111111111111112 a_m)) (PI))
(* (* (* (* b b) (PI)) angle_m) 0.011111111111111112))))\begin{array}{l}
a_m = \left|a\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;{b}^{2} - {a\_m}^{2} \leq -1 \cdot 10^{-264}:\\
\;\;\;\;\left(\left(angle\_m \cdot a\_m\right) \cdot \left(-0.011111111111111112 \cdot a\_m\right)\right) \cdot \mathsf{PI}\left(\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\left(b \cdot b\right) \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right) \cdot 0.011111111111111112\\
\end{array}
\end{array}
if (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) < -1e-264Initial program 59.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.6
Applied rewrites61.6%
Taylor expanded in b around 0
Applied rewrites61.4%
Applied rewrites71.9%
Applied rewrites72.0%
if -1e-264 < (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) Initial program 56.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--.f6456.5
Applied rewrites56.5%
Taylor expanded in b around inf
Applied rewrites56.4%
Final simplification62.9%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(*
angle_s
(if (<= (- (pow b 2.0) (pow a_m 2.0)) -1e-264)
(* (* (* angle_m a_m) (* -0.011111111111111112 a_m)) (PI))
(* (* 0.011111111111111112 (* angle_m (PI))) (* b b)))))\begin{array}{l}
a_m = \left|a\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;{b}^{2} - {a\_m}^{2} \leq -1 \cdot 10^{-264}:\\
\;\;\;\;\left(\left(angle\_m \cdot a\_m\right) \cdot \left(-0.011111111111111112 \cdot a\_m\right)\right) \cdot \mathsf{PI}\left(\right)\\
\mathbf{else}:\\
\;\;\;\;\left(0.011111111111111112 \cdot \left(angle\_m \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left(b \cdot b\right)\\
\end{array}
\end{array}
if (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) < -1e-264Initial program 59.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.6
Applied rewrites61.6%
Taylor expanded in b around 0
Applied rewrites61.4%
Applied rewrites71.9%
Applied rewrites72.0%
if -1e-264 < (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) Initial program 56.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--.f6456.5
Applied rewrites56.5%
Taylor expanded in b around 0
Applied rewrites25.6%
Taylor expanded in b around inf
Applied rewrites56.4%
Final simplification62.9%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(let* ((t_0 (* angle_m (PI))))
(*
angle_s
(if (<= (- (pow b 2.0) (pow a_m 2.0)) -1e-264)
(* (* t_0 a_m) (* -0.011111111111111112 a_m))
(* (* 0.011111111111111112 t_0) (* b b))))))\begin{array}{l}
a_m = \left|a\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := angle\_m \cdot \mathsf{PI}\left(\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;{b}^{2} - {a\_m}^{2} \leq -1 \cdot 10^{-264}:\\
\;\;\;\;\left(t\_0 \cdot a\_m\right) \cdot \left(-0.011111111111111112 \cdot a\_m\right)\\
\mathbf{else}:\\
\;\;\;\;\left(0.011111111111111112 \cdot t\_0\right) \cdot \left(b \cdot b\right)\\
\end{array}
\end{array}
\end{array}
if (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) < -1e-264Initial program 59.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.6
Applied rewrites61.6%
Taylor expanded in b around 0
Applied rewrites61.4%
Applied rewrites71.9%
if -1e-264 < (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) Initial program 56.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--.f6456.5
Applied rewrites56.5%
Taylor expanded in b around 0
Applied rewrites25.6%
Taylor expanded in b around inf
Applied rewrites56.4%
Final simplification62.9%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(*
angle_s
(if (<= (/ angle_m 180.0) 1e-14)
(* (* (* (+ a_m b) (PI)) (* 0.011111111111111112 angle_m)) (- b a_m))
(if (<= (/ angle_m 180.0) 1e+120)
(*
(* (- b a_m) (+ a_m b))
(sin (* 0.011111111111111112 (* angle_m (PI)))))
(*
(* 0.011111111111111112 (PI))
(* (fma (- a_m) a_m (* b b)) angle_m))))))\begin{array}{l}
a_m = \left|a\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;\frac{angle\_m}{180} \leq 10^{-14}:\\
\;\;\;\;\left(\left(\left(a\_m + b\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \left(0.011111111111111112 \cdot angle\_m\right)\right) \cdot \left(b - a\_m\right)\\
\mathbf{elif}\;\frac{angle\_m}{180} \leq 10^{+120}:\\
\;\;\;\;\left(\left(b - a\_m\right) \cdot \left(a\_m + b\right)\right) \cdot \sin \left(0.011111111111111112 \cdot \left(angle\_m \cdot \mathsf{PI}\left(\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot \left(\mathsf{fma}\left(-a\_m, a\_m, b \cdot b\right) \cdot angle\_m\right)\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 9.99999999999999999e-15Initial program 68.4%
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--.f6468.4
Applied rewrites68.4%
Applied rewrites80.1%
if 9.99999999999999999e-15 < (/.f64 angle #s(literal 180 binary64)) < 9.9999999999999998e119Initial program 25.4%
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 rewrites28.3%
if 9.9999999999999998e119 < (/.f64 angle #s(literal 180 binary64)) Initial program 33.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--.f6440.2
Applied rewrites40.2%
Applied rewrites44.7%
Final simplification68.2%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(*
angle_s
(if (<= a_m 5e+169)
(* (* (sin (* 0.011111111111111112 (* angle_m (PI)))) (- b a_m)) (+ a_m b))
(*
(* (* (* (* (- b a_m) (PI)) angle_m) 0.011111111111111112) (+ a_m b))
(cos (* (/ angle_m 180.0) (PI)))))))\begin{array}{l}
a_m = \left|a\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;a\_m \leq 5 \cdot 10^{+169}:\\
\;\;\;\;\left(\sin \left(0.011111111111111112 \cdot \left(angle\_m \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left(b - a\_m\right)\right) \cdot \left(a\_m + b\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\left(\left(\left(b - a\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right) \cdot 0.011111111111111112\right) \cdot \left(a\_m + b\right)\right) \cdot \cos \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right)\\
\end{array}
\end{array}
if a < 5.00000000000000017e169Initial program 59.8%
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 rewrites69.0%
if 5.00000000000000017e169 < a Initial program 32.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-*.f6463.6
Applied rewrites68.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.f6486.4
Applied rewrites86.4%
Final simplification70.5%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(let* ((t_0 (* (* (+ a_m b) (PI)) (* 0.011111111111111112 angle_m))))
(*
angle_s
(if (<= (/ angle_m 180.0) 1e+43)
(* t_0 (- b a_m))
(/ (* (fma (- a_m) a_m (* b b)) t_0) (+ a_m b))))))\begin{array}{l}
a_m = \left|a\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := \left(\left(a\_m + b\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \left(0.011111111111111112 \cdot angle\_m\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;\frac{angle\_m}{180} \leq 10^{+43}:\\
\;\;\;\;t\_0 \cdot \left(b - a\_m\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(-a\_m, a\_m, b \cdot b\right) \cdot t\_0}{a\_m + b}\\
\end{array}
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 1.00000000000000001e43Initial program 67.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--.f6466.9
Applied rewrites66.9%
Applied rewrites78.0%
if 1.00000000000000001e43 < (/.f64 angle #s(literal 180 binary64)) Initial program 28.3%
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--.f6433.5
Applied rewrites33.5%
Applied rewrites36.6%
Final simplification67.8%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(*
angle_s
(if (<= (/ angle_m 180.0) 1e-29)
(* (* (* (+ a_m b) (PI)) (* 0.011111111111111112 angle_m)) (- b a_m))
(* (* (* 0.011111111111111112 (PI)) (fma (- a_m) a_m (* b b))) angle_m))))\begin{array}{l}
a_m = \left|a\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;\frac{angle\_m}{180} \leq 10^{-29}:\\
\;\;\;\;\left(\left(\left(a\_m + b\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \left(0.011111111111111112 \cdot angle\_m\right)\right) \cdot \left(b - a\_m\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot \mathsf{fma}\left(-a\_m, a\_m, b \cdot b\right)\right) \cdot angle\_m\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 9.99999999999999943e-30Initial program 67.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--.f6467.2
Applied rewrites67.2%
Applied rewrites79.3%
if 9.99999999999999943e-30 < (/.f64 angle #s(literal 180 binary64)) Initial program 36.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--.f6439.9
Applied rewrites39.9%
Applied rewrites42.4%
Final simplification67.8%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(*
angle_s
(if (<= (/ angle_m 180.0) 2e-27)
(* (* (* (+ a_m b) (PI)) (* 0.011111111111111112 angle_m)) (- b a_m))
(* (* 0.011111111111111112 (PI)) (* (fma (- a_m) a_m (* b b)) angle_m)))))\begin{array}{l}
a_m = \left|a\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;\frac{angle\_m}{180} \leq 2 \cdot 10^{-27}:\\
\;\;\;\;\left(\left(\left(a\_m + b\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \left(0.011111111111111112 \cdot angle\_m\right)\right) \cdot \left(b - a\_m\right)\\
\mathbf{else}:\\
\;\;\;\;\left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot \left(\mathsf{fma}\left(-a\_m, a\_m, b \cdot b\right) \cdot angle\_m\right)\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 2.0000000000000001e-27Initial program 67.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--.f6467.2
Applied rewrites67.2%
Applied rewrites79.3%
if 2.0000000000000001e-27 < (/.f64 angle #s(literal 180 binary64)) Initial program 36.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--.f6439.9
Applied rewrites39.9%
Applied rewrites42.4%
Final simplification67.8%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(*
angle_s
(if (<= (/ angle_m 180.0) 1.2e+145)
(* (* (* (+ a_m b) (PI)) (* 0.011111111111111112 angle_m)) (- b a_m))
(* (* 0.011111111111111112 (* angle_m (PI))) (* b b)))))\begin{array}{l}
a_m = \left|a\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;\frac{angle\_m}{180} \leq 1.2 \cdot 10^{+145}:\\
\;\;\;\;\left(\left(\left(a\_m + b\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \left(0.011111111111111112 \cdot angle\_m\right)\right) \cdot \left(b - a\_m\right)\\
\mathbf{else}:\\
\;\;\;\;\left(0.011111111111111112 \cdot \left(angle\_m \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left(b \cdot b\right)\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 1.19999999999999996e145Initial program 60.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--.f6462.3
Applied rewrites62.3%
Applied rewrites72.0%
if 1.19999999999999996e145 < (/.f64 angle #s(literal 180 binary64)) Initial program 37.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--.f6435.8
Applied rewrites35.8%
Taylor expanded in b around 0
Applied rewrites27.6%
Taylor expanded in b around inf
Applied rewrites38.5%
Final simplification67.4%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(*
angle_s
(if (<= (/ angle_m 180.0) 1.2e+145)
(* (* (* (* 0.011111111111111112 (PI)) angle_m) (- b a_m)) (+ a_m b))
(* (* 0.011111111111111112 (* angle_m (PI))) (* b b)))))\begin{array}{l}
a_m = \left|a\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;\frac{angle\_m}{180} \leq 1.2 \cdot 10^{+145}:\\
\;\;\;\;\left(\left(\left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\_m\right) \cdot \left(b - a\_m\right)\right) \cdot \left(a\_m + b\right)\\
\mathbf{else}:\\
\;\;\;\;\left(0.011111111111111112 \cdot \left(angle\_m \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left(b \cdot b\right)\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 1.19999999999999996e145Initial program 60.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--.f6462.3
Applied rewrites62.3%
Applied rewrites71.9%
if 1.19999999999999996e145 < (/.f64 angle #s(literal 180 binary64)) Initial program 37.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--.f6435.8
Applied rewrites35.8%
Taylor expanded in b around 0
Applied rewrites27.6%
Taylor expanded in b around inf
Applied rewrites38.5%
Final simplification67.3%
a_m = (fabs.f64 a)
angle\_m = (fabs.f64 angle)
angle\_s = (copysign.f64 #s(literal 1 binary64) angle)
(FPCore (angle_s a_m b angle_m)
:precision binary64
(let* ((t_0 (* angle_m (PI))))
(*
angle_s
(if (<= (/ angle_m 180.0) 5e+140)
(* (* t_0 a_m) (* -0.011111111111111112 a_m))
(* (* (* a_m a_m) -0.011111111111111112) t_0)))))\begin{array}{l}
a_m = \left|a\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
\begin{array}{l}
t_0 := angle\_m \cdot \mathsf{PI}\left(\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;\frac{angle\_m}{180} \leq 5 \cdot 10^{+140}:\\
\;\;\;\;\left(t\_0 \cdot a\_m\right) \cdot \left(-0.011111111111111112 \cdot a\_m\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(a\_m \cdot a\_m\right) \cdot -0.011111111111111112\right) \cdot t\_0\\
\end{array}
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 5.00000000000000008e140Initial program 60.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--.f6462.3
Applied rewrites62.3%
Taylor expanded in b around 0
Applied rewrites42.6%
Applied rewrites48.1%
if 5.00000000000000008e140 < (/.f64 angle #s(literal 180 binary64)) Initial program 37.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--.f6435.8
Applied rewrites35.8%
Taylor expanded in b around 0
Applied rewrites27.6%
Final simplification45.3%
a_m = (fabs.f64 a) angle\_m = (fabs.f64 angle) angle\_s = (copysign.f64 #s(literal 1 binary64) angle) (FPCore (angle_s a_m b angle_m) :precision binary64 (* angle_s (* (* (* angle_m (PI)) a_m) (* -0.011111111111111112 a_m))))
\begin{array}{l}
a_m = \left|a\right|
\\
angle\_m = \left|angle\right|
\\
angle\_s = \mathsf{copysign}\left(1, angle\right)
\\
angle\_s \cdot \left(\left(\left(angle\_m \cdot \mathsf{PI}\left(\right)\right) \cdot a\_m\right) \cdot \left(-0.011111111111111112 \cdot a\_m\right)\right)
\end{array}
Initial program 57.4%
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--.f6458.7
Applied rewrites58.7%
Taylor expanded in b around 0
Applied rewrites40.6%
Applied rewrites43.8%
Final simplification43.8%
herbie shell --seed 2024263
(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)))))