
(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 21 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 (* (* (sin (* (/ angle_m 180.0) (PI))) (+ a_m b)) (- b a_m))))
(*
angle_s
(if (<= angle_m 4.5e+82)
(* (* t_0 2.0) (sin (fma (- (PI)) (/ angle_m 180.0) (/ (PI) 2.0))))
(if (<= angle_m 6.5e+233)
(* (* t_0 (- 2.0)) (cos (fma (/ angle_m -180.0) (PI) (PI))))
(*
(*
(sin (* (PI) (fma -0.005555555555555556 angle_m 0.5)))
(* (- b a_m) (+ b a_m)))
(* (sin (* (* (PI) angle_m) 0.005555555555555556)) 2.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(\sin \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right) \cdot \left(a\_m + b\right)\right) \cdot \left(b - a\_m\right)\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 4.5 \cdot 10^{+82}:\\
\;\;\;\;\left(t\_0 \cdot 2\right) \cdot \sin \left(\mathsf{fma}\left(-\mathsf{PI}\left(\right), \frac{angle\_m}{180}, \frac{\mathsf{PI}\left(\right)}{2}\right)\right)\\
\mathbf{elif}\;angle\_m \leq 6.5 \cdot 10^{+233}:\\
\;\;\;\;\left(t\_0 \cdot \left(-2\right)\right) \cdot \cos \left(\mathsf{fma}\left(\frac{angle\_m}{-180}, \mathsf{PI}\left(\right), \mathsf{PI}\left(\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\sin \left(\mathsf{PI}\left(\right) \cdot \mathsf{fma}\left(-0.005555555555555556, angle\_m, 0.5\right)\right) \cdot \left(\left(b - a\_m\right) \cdot \left(b + a\_m\right)\right)\right) \cdot \left(\sin \left(\left(\mathsf{PI}\left(\right) \cdot angle\_m\right) \cdot 0.005555555555555556\right) \cdot 2\right)\\
\end{array}
\end{array}
\end{array}
if angle < 4.4999999999999997e82Initial program 64.3%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
*-commutativeN/A
lower-*.f64N/A
Applied rewrites76.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-*.f6476.3
Applied rewrites76.3%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/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
distribute-lft-neg-inN/A
lower-fma.f64N/A
Applied rewrites76.4%
if 4.4999999999999997e82 < angle < 6.50000000000000038e233Initial program 22.9%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
*-commutativeN/A
lower-*.f64N/A
Applied rewrites22.9%
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-*.f6444.1
Applied rewrites44.1%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/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
distribute-lft-neg-inN/A
lower-fma.f64N/A
Applied rewrites36.6%
Applied rewrites65.0%
if 6.50000000000000038e233 < angle Initial program 22.8%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-*.f64N/A
lift-/.f64N/A
associate-*r/N/A
distribute-neg-frac2N/A
associate-/l*N/A
*-commutativeN/A
lower-fma.f64N/A
lower-/.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-/.f6431.7
Applied rewrites31.7%
Taylor expanded in angle around inf
count-2-revN/A
distribute-rgt-outN/A
count-2-revN/A
lower-*.f64N/A
Applied rewrites39.0%
Final simplification73.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 (cbrt (PI))) (t_1 (pow t_0 2.0)))
(*
angle_s
(if (<= angle_m 1e+105)
(*
(+ a_m b)
(*
(- b a_m)
(sin (/ (fma (* t_0 angle_m) t_1 (* angle_m (PI))) 180.0))))
(*
(+ a_m b)
(* (- b a_m) (sin (* (* (* 2.0 (/ angle_m 180.0)) t_1) 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 := \sqrt[3]{\mathsf{PI}\left(\right)}\\
t_1 := {t\_0}^{2}\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;angle\_m \leq 10^{+105}:\\
\;\;\;\;\left(a\_m + b\right) \cdot \left(\left(b - a\_m\right) \cdot \sin \left(\frac{\mathsf{fma}\left(t\_0 \cdot angle\_m, t\_1, angle\_m \cdot \mathsf{PI}\left(\right)\right)}{180}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a\_m + b\right) \cdot \left(\left(b - a\_m\right) \cdot \sin \left(\left(\left(2 \cdot \frac{angle\_m}{180}\right) \cdot t\_1\right) \cdot t\_0\right)\right)\\
\end{array}
\end{array}
\end{array}
if angle < 9.9999999999999994e104Initial program 63.6%
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 rewrites75.7%
lift-*.f64N/A
count-2-revN/A
lift-*.f64N/A
rem-cube-cbrtN/A
lift-cbrt.f64N/A
cube-unmultN/A
unpow2N/A
lift-pow.f64N/A
associate-*l*N/A
lift-/.f64N/A
associate-*l/N/A
associate-*l/N/A
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
*-commutativeN/A
lift-*.f64N/A
div-add-revN/A
Applied rewrites78.1%
if 9.9999999999999994e104 < angle Initial program 22.7%
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 rewrites22.7%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
rem-cube-cbrtN/A
lift-cbrt.f64N/A
pow3N/A
unpow2N/A
lift-pow.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6453.9
Applied rewrites53.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 (cbrt (PI))))
(*
angle_s
(*
(+ a_m b)
(*
(- b a_m)
(sin (* (* (* 2.0 (/ angle_m 180.0)) (pow t_0 2.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 := \sqrt[3]{\mathsf{PI}\left(\right)}\\
angle\_s \cdot \left(\left(a\_m + b\right) \cdot \left(\left(b - a\_m\right) \cdot \sin \left(\left(\left(2 \cdot \frac{angle\_m}{180}\right) \cdot {t\_0}^{2}\right) \cdot t\_0\right)\right)\right)
\end{array}
\end{array}
Initial program 57.7%
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.1%
lift-*.f64N/A
lift-*.f64N/A
associate-*r*N/A
rem-cube-cbrtN/A
lift-cbrt.f64N/A
pow3N/A
unpow2N/A
lift-pow.f64N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f6475.1
Applied rewrites75.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 (<= (* 2.0 (- (pow b 2.0) (pow a_m 2.0))) 0.0)
(* (+ a_m b) (* (- a_m) (sin (* (* (PI) angle_m) 0.011111111111111112))))
(* (- b a_m) (* (+ b a_m) (* (* 0.011111111111111112 angle_m) (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}\;2 \cdot \left({b}^{2} - {a\_m}^{2}\right) \leq 0:\\
\;\;\;\;\left(a\_m + b\right) \cdot \left(\left(-a\_m\right) \cdot \sin \left(\left(\mathsf{PI}\left(\right) \cdot angle\_m\right) \cdot 0.011111111111111112\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(b - a\_m\right) \cdot \left(\left(b + a\_m\right) \cdot \left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right)\right)\\
\end{array}
\end{array}
if (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) < 0.0Initial program 63.7%
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 rewrites70.9%
Taylor expanded in a around inf
associate-*r*N/A
lower-*.f64N/A
mul-1-negN/A
lower-neg.f64N/A
lower-sin.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6473.0
Applied rewrites73.0%
if 0.0 < (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) Initial program 51.7%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6457.4
Applied rewrites57.4%
Applied rewrites67.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
(*
angle_s
(if (<= b 1.7e+204)
(*
(* (* (* (sin (* (/ angle_m 180.0) (PI))) (+ a_m b)) (- b a_m)) 2.0)
(sin (fma (- (PI)) (/ angle_m 180.0) (/ (PI) 2.0))))
(* (- b a_m) (* (+ b a_m) (* (* 0.011111111111111112 angle_m) (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}\;b \leq 1.7 \cdot 10^{+204}:\\
\;\;\;\;\left(\left(\left(\sin \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right) \cdot \left(a\_m + b\right)\right) \cdot \left(b - a\_m\right)\right) \cdot 2\right) \cdot \sin \left(\mathsf{fma}\left(-\mathsf{PI}\left(\right), \frac{angle\_m}{180}, \frac{\mathsf{PI}\left(\right)}{2}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(b - a\_m\right) \cdot \left(\left(b + a\_m\right) \cdot \left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right)\right)\\
\end{array}
\end{array}
if b < 1.70000000000000005e204Initial program 59.4%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
*-commutativeN/A
lower-*.f64N/A
Applied rewrites69.2%
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.1
Applied rewrites70.1%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/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
distribute-lft-neg-inN/A
lower-fma.f64N/A
Applied rewrites69.4%
if 1.70000000000000005e204 < b Initial program 39.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--.f6466.3
Applied rewrites66.3%
Applied rewrites78.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
(if (<= angle_m 4.6e+82)
(* (- b a_m) (* (+ b a_m) (sin (* (* (/ angle_m 180.0) (PI)) 2.0))))
(if (<= angle_m 5e+231)
(* 0.011111111111111112 (* angle_m (* (* (PI) (+ b a_m)) (- b a_m))))
(*
(*
(sin (* (PI) (fma -0.005555555555555556 angle_m 0.5)))
(* (- b a_m) (+ b a_m)))
(* (sin (* (* (PI) angle_m) 0.005555555555555556)) 2.0))))))\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}\;angle\_m \leq 4.6 \cdot 10^{+82}:\\
\;\;\;\;\left(b - a\_m\right) \cdot \left(\left(b + a\_m\right) \cdot \sin \left(\left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right)\right)\\
\mathbf{elif}\;angle\_m \leq 5 \cdot 10^{+231}:\\
\;\;\;\;0.011111111111111112 \cdot \left(angle\_m \cdot \left(\left(\mathsf{PI}\left(\right) \cdot \left(b + a\_m\right)\right) \cdot \left(b - a\_m\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\sin \left(\mathsf{PI}\left(\right) \cdot \mathsf{fma}\left(-0.005555555555555556, angle\_m, 0.5\right)\right) \cdot \left(\left(b - a\_m\right) \cdot \left(b + a\_m\right)\right)\right) \cdot \left(\sin \left(\left(\mathsf{PI}\left(\right) \cdot angle\_m\right) \cdot 0.005555555555555556\right) \cdot 2\right)\\
\end{array}
\end{array}
if angle < 4.59999999999999976e82Initial program 64.3%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
*-commutativeN/A
lower-*.f64N/A
Applied rewrites76.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-*.f6476.3
Applied rewrites76.3%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/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
distribute-lft-neg-inN/A
lower-fma.f64N/A
Applied rewrites76.4%
Applied rewrites76.7%
if 4.59999999999999976e82 < angle < 5.00000000000000028e231Initial program 23.6%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6450.7
Applied rewrites50.7%
Applied rewrites50.7%
if 5.00000000000000028e231 < angle Initial program 21.4%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-*.f64N/A
lift-/.f64N/A
associate-*r/N/A
distribute-neg-frac2N/A
associate-/l*N/A
*-commutativeN/A
lower-fma.f64N/A
lower-/.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-/.f6429.5
Applied rewrites29.5%
Taylor expanded in angle around inf
count-2-revN/A
distribute-rgt-outN/A
count-2-revN/A
lower-*.f64N/A
Applied rewrites36.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
(if (<= b 1.7e+204)
(*
(* (* (* (sin (* (/ angle_m 180.0) (PI))) (+ a_m b)) (- b a_m)) 2.0)
(sin (* (PI) (fma -0.005555555555555556 angle_m 0.5))))
(* (- b a_m) (* (+ b a_m) (* (* 0.011111111111111112 angle_m) (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}\;b \leq 1.7 \cdot 10^{+204}:\\
\;\;\;\;\left(\left(\left(\sin \left(\frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right) \cdot \left(a\_m + b\right)\right) \cdot \left(b - a\_m\right)\right) \cdot 2\right) \cdot \sin \left(\mathsf{PI}\left(\right) \cdot \mathsf{fma}\left(-0.005555555555555556, angle\_m, 0.5\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(b - a\_m\right) \cdot \left(\left(b + a\_m\right) \cdot \left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right)\right)\\
\end{array}
\end{array}
if b < 1.70000000000000005e204Initial program 59.4%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
*-commutativeN/A
lower-*.f64N/A
Applied rewrites69.2%
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.1
Applied rewrites70.1%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/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
distribute-lft-neg-inN/A
lower-fma.f64N/A
Applied rewrites69.4%
Taylor expanded in angle around 0
associate-*r*N/A
distribute-rgt-outN/A
lower-*.f64N/A
lower-PI.f64N/A
lower-fma.f6467.2
Applied rewrites67.2%
if 1.70000000000000005e204 < b Initial program 39.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--.f6466.3
Applied rewrites66.3%
Applied rewrites78.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 (sqrt (PI))))
(*
angle_s
(if (<= b 1.55e-169)
(*
(*
(* (sin (* (* (PI) angle_m) 0.005555555555555556)) (* a_m a_m))
(sin (* (PI) (fma -0.005555555555555556 angle_m 0.5))))
-2.0)
(if (<= b 1.7e+204)
(*
(+ a_m b)
(*
(- b a_m)
(sin
(fma (* (/ angle_m 180.0) t_0) t_0 (* (/ angle_m 180.0) (PI))))))
(*
(- b a_m)
(* (+ b a_m) (* (* 0.011111111111111112 angle_m) (PI)))))))))\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 \begin{array}{l}
\mathbf{if}\;b \leq 1.55 \cdot 10^{-169}:\\
\;\;\;\;\left(\left(\sin \left(\left(\mathsf{PI}\left(\right) \cdot angle\_m\right) \cdot 0.005555555555555556\right) \cdot \left(a\_m \cdot a\_m\right)\right) \cdot \sin \left(\mathsf{PI}\left(\right) \cdot \mathsf{fma}\left(-0.005555555555555556, angle\_m, 0.5\right)\right)\right) \cdot -2\\
\mathbf{elif}\;b \leq 1.7 \cdot 10^{+204}:\\
\;\;\;\;\left(a\_m + b\right) \cdot \left(\left(b - a\_m\right) \cdot \sin \left(\mathsf{fma}\left(\frac{angle\_m}{180} \cdot t\_0, t\_0, \frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(b - a\_m\right) \cdot \left(\left(b + a\_m\right) \cdot \left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right)\right)\\
\end{array}
\end{array}
\end{array}
if b < 1.5500000000000001e-169Initial program 62.6%
lift-cos.f64N/A
cos-neg-revN/A
sin-+PI/2-revN/A
lower-sin.f64N/A
lift-*.f64N/A
lift-/.f64N/A
associate-*r/N/A
distribute-neg-frac2N/A
associate-/l*N/A
*-commutativeN/A
lower-fma.f64N/A
lower-/.f64N/A
metadata-evalN/A
lift-PI.f64N/A
lower-/.f6462.5
Applied rewrites62.5%
Taylor expanded in a around inf
*-commutativeN/A
lower-*.f64N/A
Applied rewrites44.9%
if 1.5500000000000001e-169 < b < 1.70000000000000005e204Initial program 53.8%
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 rewrites64.0%
lift-*.f64N/A
count-2-revN/A
lift-*.f64N/A
lift-PI.f64N/A
add-sqr-sqrtN/A
associate-*r*N/A
lower-fma.f64N/A
lower-*.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
lift-PI.f64N/A
lower-sqrt.f6462.0
Applied rewrites62.0%
if 1.70000000000000005e204 < b Initial program 39.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--.f6466.3
Applied rewrites66.3%
Applied rewrites78.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
(if (<= (* 2.0 (- (pow b 2.0) (pow a_m 2.0))) -2e-118)
(* (* a_m (PI)) (* angle_m (* -0.011111111111111112 a_m)))
(* (* (* (PI) (* b b)) 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}\;2 \cdot \left({b}^{2} - {a\_m}^{2}\right) \leq -2 \cdot 10^{-118}:\\
\;\;\;\;\left(a\_m \cdot \mathsf{PI}\left(\right)\right) \cdot \left(angle\_m \cdot \left(-0.011111111111111112 \cdot a\_m\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\mathsf{PI}\left(\right) \cdot \left(b \cdot b\right)\right) \cdot angle\_m\right) \cdot 0.011111111111111112\\
\end{array}
\end{array}
if (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) < -1.99999999999999997e-118Initial program 58.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--.f6450.9
Applied rewrites50.9%
Taylor expanded in a around inf
Applied rewrites51.0%
Applied rewrites59.8%
Applied rewrites59.9%
if -1.99999999999999997e-118 < (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) Initial program 57.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--.f6462.0
Applied rewrites62.0%
Taylor expanded in a around 0
Applied rewrites59.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 (sqrt (PI))))
(*
angle_s
(if (<= b 1.7e+204)
(*
(+ a_m b)
(*
(- b a_m)
(sin (fma (* (/ angle_m 180.0) t_0) t_0 (* (/ angle_m 180.0) (PI))))))
(* (- b a_m) (* (+ b a_m) (* (* 0.011111111111111112 angle_m) (PI))))))))\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 \begin{array}{l}
\mathbf{if}\;b \leq 1.7 \cdot 10^{+204}:\\
\;\;\;\;\left(a\_m + b\right) \cdot \left(\left(b - a\_m\right) \cdot \sin \left(\mathsf{fma}\left(\frac{angle\_m}{180} \cdot t\_0, t\_0, \frac{angle\_m}{180} \cdot \mathsf{PI}\left(\right)\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(b - a\_m\right) \cdot \left(\left(b + a\_m\right) \cdot \left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right)\right)\\
\end{array}
\end{array}
\end{array}
if b < 1.70000000000000005e204Initial program 59.4%
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 rewrites69.2%
lift-*.f64N/A
count-2-revN/A
lift-*.f64N/A
lift-PI.f64N/A
add-sqr-sqrtN/A
associate-*r*N/A
lower-fma.f64N/A
lower-*.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
lift-PI.f64N/A
lower-sqrt.f6470.9
Applied rewrites70.9%
if 1.70000000000000005e204 < b Initial program 39.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--.f6466.3
Applied rewrites66.3%
Applied rewrites78.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
(if (<= b 4e+154)
(* (+ a_m b) (* (- b a_m) (sin (* (* (PI) angle_m) 0.011111111111111112))))
(if (<= b 1.7e+204)
(*
(+ a_m b)
(*
(fma
(* -2.2862368541380886e-7 (* angle_m angle_m))
(* (pow (PI) 3.0) (- b a_m))
(* (* (- b a_m) (PI)) 0.011111111111111112))
angle_m))
(* (- b a_m) (* (+ b a_m) (* (* 0.011111111111111112 angle_m) (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}\;b \leq 4 \cdot 10^{+154}:\\
\;\;\;\;\left(a\_m + b\right) \cdot \left(\left(b - a\_m\right) \cdot \sin \left(\left(\mathsf{PI}\left(\right) \cdot angle\_m\right) \cdot 0.011111111111111112\right)\right)\\
\mathbf{elif}\;b \leq 1.7 \cdot 10^{+204}:\\
\;\;\;\;\left(a\_m + b\right) \cdot \left(\mathsf{fma}\left(-2.2862368541380886 \cdot 10^{-7} \cdot \left(angle\_m \cdot angle\_m\right), {\mathsf{PI}\left(\right)}^{3} \cdot \left(b - a\_m\right), \left(\left(b - a\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot 0.011111111111111112\right) \cdot angle\_m\right)\\
\mathbf{else}:\\
\;\;\;\;\left(b - a\_m\right) \cdot \left(\left(b + a\_m\right) \cdot \left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right)\right)\\
\end{array}
\end{array}
if b < 4.00000000000000015e154Initial program 61.4%
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.6%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6469.6
Applied rewrites69.6%
if 4.00000000000000015e154 < b < 1.70000000000000005e204Initial program 20.6%
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 rewrites81.5%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
Applied rewrites99.9%
if 1.70000000000000005e204 < b Initial program 39.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--.f6466.3
Applied rewrites66.3%
Applied rewrites78.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
(if (<= b 4e+203)
(* (+ a_m b) (* (- b a_m) (sin (/ (* (* angle_m (PI)) 2.0) 180.0))))
(* (- b a_m) (* (+ b a_m) (* (* 0.011111111111111112 angle_m) (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}\;b \leq 4 \cdot 10^{+203}:\\
\;\;\;\;\left(a\_m + b\right) \cdot \left(\left(b - a\_m\right) \cdot \sin \left(\frac{\left(angle\_m \cdot \mathsf{PI}\left(\right)\right) \cdot 2}{180}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(b - a\_m\right) \cdot \left(\left(b + a\_m\right) \cdot \left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right)\right)\\
\end{array}
\end{array}
if b < 4e203Initial program 59.4%
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 rewrites69.2%
lift-*.f64N/A
*-commutativeN/A
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
*-commutativeN/A
lift-*.f64N/A
associate-*l/N/A
lower-/.f64N/A
lower-*.f6469.8
lift-*.f64N/A
*-commutativeN/A
lower-*.f6469.8
Applied rewrites69.8%
if 4e203 < b Initial program 39.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--.f6466.3
Applied rewrites66.3%
Applied rewrites78.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
(if (<= b 1.3e+186)
(* (+ a_m b) (* (- b a_m) (sin (* (* (PI) angle_m) 0.011111111111111112))))
(* (- b a_m) (* (+ b a_m) (* (* 0.011111111111111112 angle_m) (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}\;b \leq 1.3 \cdot 10^{+186}:\\
\;\;\;\;\left(a\_m + b\right) \cdot \left(\left(b - a\_m\right) \cdot \sin \left(\left(\mathsf{PI}\left(\right) \cdot angle\_m\right) \cdot 0.011111111111111112\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(b - a\_m\right) \cdot \left(\left(b + a\_m\right) \cdot \left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right)\right)\\
\end{array}
\end{array}
if b < 1.3e186Initial program 60.2%
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 rewrites69.2%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6469.8
Applied rewrites69.8%
if 1.3e186 < b Initial program 35.7%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6459.3
Applied rewrites59.3%
Applied rewrites76.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 (<= b 5.4e-176)
(* (* (- a_m) a_m) (sin (* (* (PI) angle_m) 0.011111111111111112)))
(* (- b a_m) (* (+ b a_m) (* (* 0.011111111111111112 angle_m) (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}\;b \leq 5.4 \cdot 10^{-176}:\\
\;\;\;\;\left(\left(-a\_m\right) \cdot a\_m\right) \cdot \sin \left(\left(\mathsf{PI}\left(\right) \cdot angle\_m\right) \cdot 0.011111111111111112\right)\\
\mathbf{else}:\\
\;\;\;\;\left(b - a\_m\right) \cdot \left(\left(b + a\_m\right) \cdot \left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right)\right)\\
\end{array}
\end{array}
if b < 5.3999999999999997e-176Initial program 62.6%
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 rewrites72.1%
Taylor expanded in a around inf
associate-*r*N/A
lower-*.f64N/A
mul-1-negN/A
unpow2N/A
distribute-lft-neg-inN/A
mul-1-negN/A
lower-*.f64N/A
mul-1-negN/A
lower-neg.f64N/A
lower-sin.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6445.8
Applied rewrites45.8%
if 5.3999999999999997e-176 < b Initial program 50.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--.f6451.0
Applied rewrites51.0%
Applied rewrites60.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
(*
angle_s
(if (<= (pow a_m 2.0) 2e+160)
(* (* -0.011111111111111112 (* a_m a_m)) (* (PI) angle_m))
(* (* a_m (PI)) (* angle_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 \begin{array}{l}
\mathbf{if}\;{a\_m}^{2} \leq 2 \cdot 10^{+160}:\\
\;\;\;\;\left(-0.011111111111111112 \cdot \left(a\_m \cdot a\_m\right)\right) \cdot \left(\mathsf{PI}\left(\right) \cdot angle\_m\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a\_m \cdot \mathsf{PI}\left(\right)\right) \cdot \left(angle\_m \cdot \left(-0.011111111111111112 \cdot a\_m\right)\right)\\
\end{array}
\end{array}
if (pow.f64 a #s(literal 2 binary64)) < 2.00000000000000001e160Initial program 61.7%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6461.8
Applied rewrites61.8%
Taylor expanded in a around inf
Applied rewrites31.9%
if 2.00000000000000001e160 < (pow.f64 a #s(literal 2 binary64)) Initial program 51.4%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6450.6
Applied rewrites50.6%
Taylor expanded in a around inf
Applied rewrites45.4%
Applied rewrites56.6%
Applied rewrites56.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 (* (PI) angle_m)))
(*
angle_s
(if (<= (pow a_m 2.0) 2e+92)
(* (* -0.011111111111111112 (* a_m a_m)) t_0)
(* (* -0.011111111111111112 a_m) (* a_m 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 := \mathsf{PI}\left(\right) \cdot angle\_m\\
angle\_s \cdot \begin{array}{l}
\mathbf{if}\;{a\_m}^{2} \leq 2 \cdot 10^{+92}:\\
\;\;\;\;\left(-0.011111111111111112 \cdot \left(a\_m \cdot a\_m\right)\right) \cdot t\_0\\
\mathbf{else}:\\
\;\;\;\;\left(-0.011111111111111112 \cdot a\_m\right) \cdot \left(a\_m \cdot t\_0\right)\\
\end{array}
\end{array}
\end{array}
if (pow.f64 a #s(literal 2 binary64)) < 2.0000000000000001e92Initial program 62.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--.f6463.3
Applied rewrites63.3%
Taylor expanded in a around inf
Applied rewrites32.4%
if 2.0000000000000001e92 < (pow.f64 a #s(literal 2 binary64)) Initial program 51.4%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6450.3
Applied rewrites50.3%
Taylor expanded in a around inf
Applied rewrites43.1%
Applied rewrites52.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 4e-55)
(* (- b a_m) (* (+ b a_m) (* (* 0.011111111111111112 angle_m) (PI))))
(* (* (* (PI) angle_m) 0.011111111111111112) (* (+ b a_m) (- b 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 \begin{array}{l}
\mathbf{if}\;angle\_m \leq 4 \cdot 10^{-55}:\\
\;\;\;\;\left(b - a\_m\right) \cdot \left(\left(b + a\_m\right) \cdot \left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\mathsf{PI}\left(\right) \cdot angle\_m\right) \cdot 0.011111111111111112\right) \cdot \left(\left(b + a\_m\right) \cdot \left(b - a\_m\right)\right)\\
\end{array}
\end{array}
if angle < 3.99999999999999998e-55Initial program 62.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--.f6462.0
Applied rewrites62.0%
Applied rewrites71.3%
if 3.99999999999999998e-55 < angle Initial program 43.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--.f6444.5
Applied rewrites44.5%
Applied rewrites44.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
(*
angle_s
(if (<= a_m 1.4e+188)
(* (* (* (PI) angle_m) 0.011111111111111112) (* (+ b a_m) (- b a_m)))
(* (* a_m (PI)) (* angle_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 \begin{array}{l}
\mathbf{if}\;a\_m \leq 1.4 \cdot 10^{+188}:\\
\;\;\;\;\left(\left(\mathsf{PI}\left(\right) \cdot angle\_m\right) \cdot 0.011111111111111112\right) \cdot \left(\left(b + a\_m\right) \cdot \left(b - a\_m\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a\_m \cdot \mathsf{PI}\left(\right)\right) \cdot \left(angle\_m \cdot \left(-0.011111111111111112 \cdot a\_m\right)\right)\\
\end{array}
\end{array}
if a < 1.3999999999999999e188Initial 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--.f6455.4
Applied rewrites55.4%
Applied rewrites55.4%
if 1.3999999999999999e188 < a Initial program 55.6%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6472.0
Applied rewrites72.0%
Taylor expanded in a around inf
Applied rewrites75.2%
Applied rewrites90.3%
Applied rewrites90.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 1.4e+188)
(* (* (* 0.011111111111111112 angle_m) (PI)) (* (+ b a_m) (- b a_m)))
(* (* a_m (PI)) (* angle_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 \begin{array}{l}
\mathbf{if}\;a\_m \leq 1.4 \cdot 10^{+188}:\\
\;\;\;\;\left(\left(0.011111111111111112 \cdot angle\_m\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \left(\left(b + a\_m\right) \cdot \left(b - a\_m\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a\_m \cdot \mathsf{PI}\left(\right)\right) \cdot \left(angle\_m \cdot \left(-0.011111111111111112 \cdot a\_m\right)\right)\\
\end{array}
\end{array}
if a < 1.3999999999999999e188Initial 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--.f6455.4
Applied rewrites55.4%
if 1.3999999999999999e188 < a Initial program 55.6%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6472.0
Applied rewrites72.0%
Taylor expanded in a around inf
Applied rewrites75.2%
Applied rewrites90.3%
Applied rewrites90.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 1.4e+188)
(* 0.011111111111111112 (* angle_m (* (* (PI) (+ b a_m)) (- b a_m))))
(* (* a_m (PI)) (* angle_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 \begin{array}{l}
\mathbf{if}\;a\_m \leq 1.4 \cdot 10^{+188}:\\
\;\;\;\;0.011111111111111112 \cdot \left(angle\_m \cdot \left(\left(\mathsf{PI}\left(\right) \cdot \left(b + a\_m\right)\right) \cdot \left(b - a\_m\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a\_m \cdot \mathsf{PI}\left(\right)\right) \cdot \left(angle\_m \cdot \left(-0.011111111111111112 \cdot a\_m\right)\right)\\
\end{array}
\end{array}
if a < 1.3999999999999999e188Initial 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--.f6455.4
Applied rewrites55.4%
Applied rewrites55.4%
if 1.3999999999999999e188 < a Initial program 55.6%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6472.0
Applied rewrites72.0%
Taylor expanded in a around inf
Applied rewrites75.2%
Applied rewrites90.3%
Applied rewrites90.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 (* (* -0.011111111111111112 a_m) (* a_m (* (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 \left(\left(-0.011111111111111112 \cdot a\_m\right) \cdot \left(a\_m \cdot \left(\mathsf{PI}\left(\right) \cdot angle\_m\right)\right)\right)
\end{array}
Initial program 57.7%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6457.4
Applied rewrites57.4%
Taylor expanded in a around inf
Applied rewrites37.2%
Applied rewrites39.7%
herbie shell --seed 2024337
(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)))))