
(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 18 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}
(FPCore (a b angle)
:precision binary64
(let* ((t_0 (* (* (PI) (PI)) (PI))))
(if (<= (* 2.0 (- (pow b 2.0) (pow a 2.0))) -5e+268)
(*
(+ a b)
(*
(- b a)
(*
(fma
(* -2.2862368541380886e-7 (* angle angle))
t_0
(* 0.011111111111111112 (PI)))
angle)))
(* (+ a b) (* (- b a) (sin (* 2.0 (* (/ angle 180.0) (cbrt t_0)))))))))\begin{array}{l}
\\
\begin{array}{l}
t_0 := \left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \mathsf{PI}\left(\right)\\
\mathbf{if}\;2 \cdot \left({b}^{2} - {a}^{2}\right) \leq -5 \cdot 10^{+268}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\mathsf{fma}\left(-2.2862368541380886 \cdot 10^{-7} \cdot \left(angle \cdot angle\right), t\_0, 0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \sin \left(2 \cdot \left(\frac{angle}{180} \cdot \sqrt[3]{t\_0}\right)\right)\right)\\
\end{array}
\end{array}
if (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) < -5.0000000000000002e268Initial program 45.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 rewrites74.0%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
associate-*r*N/A
lower-fma.f64N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-PI.f6483.9
Applied rewrites83.9%
Applied rewrites83.9%
if -5.0000000000000002e268 < (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) Initial program 62.9%
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.7%
lift-PI.f64N/A
add-cbrt-cubeN/A
lower-cbrt.f64N/A
rem-cube-cbrtN/A
add-cbrt-cubeN/A
lift-PI.f64N/A
lower-pow.f6476.0
Applied rewrites76.0%
lift-pow.f64N/A
unpow3N/A
lower-*.f64N/A
lower-*.f6476.0
Applied rewrites76.0%
(FPCore (a b angle)
:precision binary64
(let* ((t_0 (sqrt (PI))))
(if (<= (* 2.0 (- (pow b 2.0) (pow a 2.0))) -5e+268)
(*
(+ a b)
(*
(- b a)
(*
(fma
(* -2.2862368541380886e-7 (* angle angle))
(* (* (PI) (PI)) (PI))
(* 0.011111111111111112 (PI)))
angle)))
(* (+ a b) (* (- b a) (sin (* 2.0 (* (/ angle 180.0) (* t_0 t_0)))))))))\begin{array}{l}
\\
\begin{array}{l}
t_0 := \sqrt{\mathsf{PI}\left(\right)}\\
\mathbf{if}\;2 \cdot \left({b}^{2} - {a}^{2}\right) \leq -5 \cdot 10^{+268}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\mathsf{fma}\left(-2.2862368541380886 \cdot 10^{-7} \cdot \left(angle \cdot angle\right), \left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \mathsf{PI}\left(\right), 0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \sin \left(2 \cdot \left(\frac{angle}{180} \cdot \left(t\_0 \cdot t\_0\right)\right)\right)\right)\\
\end{array}
\end{array}
if (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) < -5.0000000000000002e268Initial program 45.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 rewrites74.0%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
associate-*r*N/A
lower-fma.f64N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-PI.f6483.9
Applied rewrites83.9%
Applied rewrites83.9%
if -5.0000000000000002e268 < (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) Initial program 62.9%
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.7%
lift-PI.f64N/A
add-sqr-sqrtN/A
lower-*.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
lift-PI.f64N/A
lower-sqrt.f6474.9
Applied rewrites74.9%
(FPCore (a b angle)
:precision binary64
(if (<= (pow a 2.0) 2e+32)
(* (+ a b) (* (- b a) (sin (* (/ angle 180.0) (+ (PI) (PI))))))
(*
(+ a b)
(*
(- b a)
(*
(fma
(* -2.2862368541380886e-7 (* angle angle))
(* (* (PI) (PI)) (PI))
(* 0.011111111111111112 (PI)))
angle)))))\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;{a}^{2} \leq 2 \cdot 10^{+32}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \sin \left(\frac{angle}{180} \cdot \left(\mathsf{PI}\left(\right) + \mathsf{PI}\left(\right)\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\mathsf{fma}\left(-2.2862368541380886 \cdot 10^{-7} \cdot \left(angle \cdot angle\right), \left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \mathsf{PI}\left(\right), 0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\right)\right)\\
\end{array}
\end{array}
if (pow.f64 a #s(literal 2 binary64)) < 2.00000000000000011e32Initial program 66.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 rewrites73.1%
lift-*.f64N/A
count-2-revN/A
lift-*.f64N/A
lift-*.f64N/A
distribute-lft-outN/A
lower-*.f64N/A
lower-+.f6473.1
Applied rewrites73.1%
if 2.00000000000000011e32 < (pow.f64 a #s(literal 2 binary64)) Initial program 50.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.8%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
associate-*r*N/A
lower-fma.f64N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-PI.f6476.1
Applied rewrites76.1%
Applied rewrites76.1%
(FPCore (a b angle) :precision binary64 (if (<= (* 2.0 (- (pow b 2.0) (pow a 2.0))) -4e-299) (* (* (* angle (PI)) (* -0.011111111111111112 a)) a) (* (* (* (PI) (* b b)) angle) 0.011111111111111112)))
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;2 \cdot \left({b}^{2} - {a}^{2}\right) \leq -4 \cdot 10^{-299}:\\
\;\;\;\;\left(\left(angle \cdot \mathsf{PI}\left(\right)\right) \cdot \left(-0.011111111111111112 \cdot a\right)\right) \cdot a\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\mathsf{PI}\left(\right) \cdot \left(b \cdot b\right)\right) \cdot angle\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)))) < -3.99999999999999997e-299Initial program 55.0%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6451.9
Applied rewrites51.9%
Taylor expanded in a around inf
Applied rewrites51.7%
Applied rewrites66.8%
if -3.99999999999999997e-299 < (*.f64 #s(literal 2 binary64) (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64)))) Initial program 61.9%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6461.4
Applied rewrites61.4%
Taylor expanded in a around 0
Applied rewrites61.9%
(FPCore (a b angle)
:precision binary64
(if (<= (pow a 2.0) 5e-303)
(* (+ a b) (* (sin (* (* (PI) angle) 0.011111111111111112)) b))
(*
(+ a b)
(*
(- b a)
(*
(fma
(* -2.2862368541380886e-7 (* angle angle))
(* (* (PI) (PI)) (PI))
(* 0.011111111111111112 (PI)))
angle)))))\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;{a}^{2} \leq 5 \cdot 10^{-303}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\sin \left(\left(\mathsf{PI}\left(\right) \cdot angle\right) \cdot 0.011111111111111112\right) \cdot b\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\mathsf{fma}\left(-2.2862368541380886 \cdot 10^{-7} \cdot \left(angle \cdot angle\right), \left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \mathsf{PI}\left(\right), 0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\right)\right)\\
\end{array}
\end{array}
if (pow.f64 a #s(literal 2 binary64)) < 4.9999999999999998e-303Initial program 71.1%
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 rewrites76.7%
Taylor expanded in a around 0
*-commutativeN/A
lower-*.f64N/A
lower-sin.f64N/A
*-commutativeN/A
lower-*.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower-PI.f6478.0
Applied rewrites78.0%
if 4.9999999999999998e-303 < (pow.f64 a #s(literal 2 binary64)) Initial program 54.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.7%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
associate-*r*N/A
lower-fma.f64N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-PI.f6472.6
Applied rewrites72.6%
Applied rewrites72.6%
(FPCore (a b angle) :precision binary64 (if (<= angle 1.35e+233) (* (+ a b) (* (- b a) (sin (* 2.0 (* angle (/ (PI) 180.0)))))) (- (* (+ a b) (* (- b a) (sin (* 2.0 (* (/ angle 180.0) (PI)))))))))
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;angle \leq 1.35 \cdot 10^{+233}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \sin \left(2 \cdot \left(angle \cdot \frac{\mathsf{PI}\left(\right)}{180}\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;-\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \sin \left(2 \cdot \left(\frac{angle}{180} \cdot \mathsf{PI}\left(\right)\right)\right)\right)\\
\end{array}
\end{array}
if angle < 1.35000000000000004e233Initial program 60.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 rewrites74.3%
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f6477.3
Applied rewrites77.3%
if 1.35000000000000004e233 < angle Initial program 23.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 rewrites23.8%
lift-PI.f64N/A
add-cbrt-cubeN/A
lower-cbrt.f64N/A
rem-cube-cbrtN/A
add-cbrt-cubeN/A
lift-PI.f64N/A
lower-pow.f6431.8
Applied rewrites31.8%
lift-cbrt.f64N/A
lift-pow.f64N/A
rem-cbrt-cube23.8
rem-square-sqrtN/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
sqr-neg-revN/A
distribute-rgt-neg-outN/A
unpow1N/A
metadata-evalN/A
pow-powN/A
pow2N/A
sqr-neg-revN/A
pow2N/A
pow-powN/A
metadata-evalN/A
unpow1N/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
rem-square-sqrtN/A
lower-neg.f6448.9
Applied rewrites48.9%
Final simplification75.8%
(FPCore (a b angle)
:precision binary64
(if (<= a 8.2e+26)
(* (+ a b) (* (- b a) (sin (* 2.0 (* angle (/ (PI) 180.0))))))
(*
(+ a b)
(*
(- b a)
(*
(fma
(* -2.2862368541380886e-7 (* angle angle))
(* (* (PI) (PI)) (PI))
(* 0.011111111111111112 (PI)))
angle)))))\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq 8.2 \cdot 10^{+26}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \sin \left(2 \cdot \left(angle \cdot \frac{\mathsf{PI}\left(\right)}{180}\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\mathsf{fma}\left(-2.2862368541380886 \cdot 10^{-7} \cdot \left(angle \cdot angle\right), \left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \mathsf{PI}\left(\right), 0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\right)\right)\\
\end{array}
\end{array}
if a < 8.19999999999999967e26Initial program 62.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 rewrites73.3%
lift-*.f64N/A
lift-/.f64N/A
associate-*l/N/A
associate-/l*N/A
lower-*.f64N/A
lower-/.f6476.7
Applied rewrites76.7%
if 8.19999999999999967e26 < a Initial program 46.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 rewrites65.9%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
associate-*r*N/A
lower-fma.f64N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-PI.f6477.8
Applied rewrites77.8%
Applied rewrites77.8%
(FPCore (a b angle)
:precision binary64
(let* ((t_0 (* (fma (- a) a (* b b)) (PI))))
(if (<= angle 7.2e+42)
(*
(+ a b)
(*
(- b a)
(*
(fma
(* -2.2862368541380886e-7 (* angle angle))
(* (* (PI) (PI)) (PI))
(* 0.011111111111111112 (PI)))
angle)))
(if (<= angle 2.7e+70)
(*
(fma
(* -0.011111111111111112 angle)
(PI)
(/ (* -0.011111111111111112 (/ (* (* (PI) (* b b)) angle) a)) (- a)))
(* a a))
(if (or (<= angle 1.85e+197) (not (<= angle 1e+275)))
(* (* t_0 angle) -0.011111111111111112)
(* 0.011111111111111112 (* angle t_0)))))))\begin{array}{l}
\\
\begin{array}{l}
t_0 := \mathsf{fma}\left(-a, a, b \cdot b\right) \cdot \mathsf{PI}\left(\right)\\
\mathbf{if}\;angle \leq 7.2 \cdot 10^{+42}:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\mathsf{fma}\left(-2.2862368541380886 \cdot 10^{-7} \cdot \left(angle \cdot angle\right), \left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \mathsf{PI}\left(\right), 0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\right)\right)\\
\mathbf{elif}\;angle \leq 2.7 \cdot 10^{+70}:\\
\;\;\;\;\mathsf{fma}\left(-0.011111111111111112 \cdot angle, \mathsf{PI}\left(\right), \frac{-0.011111111111111112 \cdot \frac{\left(\mathsf{PI}\left(\right) \cdot \left(b \cdot b\right)\right) \cdot angle}{a}}{-a}\right) \cdot \left(a \cdot a\right)\\
\mathbf{elif}\;angle \leq 1.85 \cdot 10^{+197} \lor \neg \left(angle \leq 10^{+275}\right):\\
\;\;\;\;\left(t\_0 \cdot angle\right) \cdot -0.011111111111111112\\
\mathbf{else}:\\
\;\;\;\;0.011111111111111112 \cdot \left(angle \cdot t\_0\right)\\
\end{array}
\end{array}
if angle < 7.2000000000000002e42Initial program 66.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 rewrites81.4%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
associate-*r*N/A
lower-fma.f64N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-PI.f6479.4
Applied rewrites79.4%
Applied rewrites79.4%
if 7.2000000000000002e42 < angle < 2.7e70Initial program 34.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--.f6459.2
Applied rewrites59.2%
Taylor expanded in a around -inf
Applied rewrites59.2%
if 2.7e70 < angle < 1.8500000000000002e197 or 9.9999999999999996e274 < angle Initial program 27.1%
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 rewrites27.1%
lift-PI.f64N/A
add-cbrt-cubeN/A
lower-cbrt.f64N/A
rem-cube-cbrtN/A
add-cbrt-cubeN/A
lift-PI.f64N/A
lower-pow.f6436.1
Applied rewrites36.1%
lift-cbrt.f64N/A
lift-pow.f64N/A
rem-cbrt-cube27.1
rem-square-sqrtN/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
sqr-neg-revN/A
distribute-rgt-neg-outN/A
unpow1N/A
metadata-evalN/A
pow-powN/A
pow2N/A
sqr-neg-revN/A
pow2N/A
pow-powN/A
metadata-evalN/A
unpow1N/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
rem-square-sqrtN/A
lower-neg.f6442.3
Applied rewrites42.3%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
Applied rewrites47.0%
if 1.8500000000000002e197 < angle < 9.9999999999999996e274Initial program 18.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--.f6451.6
Applied rewrites51.6%
Applied rewrites51.6%
Final simplification73.9%
(FPCore (a b angle)
:precision binary64
(let* ((t_0 (* (fma (- a) a (* b b)) (PI))))
(if (<= angle 100.0)
(*
(+ a b)
(*
(- b a)
(*
(fma
(* -2.2862368541380886e-7 (* angle angle))
(* (* (PI) (PI)) (PI))
(* 0.011111111111111112 (PI)))
angle)))
(if (or (<= angle 1.85e+197) (not (<= angle 1e+275)))
(* (* t_0 angle) -0.011111111111111112)
(* 0.011111111111111112 (* angle t_0))))))\begin{array}{l}
\\
\begin{array}{l}
t_0 := \mathsf{fma}\left(-a, a, b \cdot b\right) \cdot \mathsf{PI}\left(\right)\\
\mathbf{if}\;angle \leq 100:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(b - a\right) \cdot \left(\mathsf{fma}\left(-2.2862368541380886 \cdot 10^{-7} \cdot \left(angle \cdot angle\right), \left(\mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right)\right) \cdot \mathsf{PI}\left(\right), 0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\right)\right)\\
\mathbf{elif}\;angle \leq 1.85 \cdot 10^{+197} \lor \neg \left(angle \leq 10^{+275}\right):\\
\;\;\;\;\left(t\_0 \cdot angle\right) \cdot -0.011111111111111112\\
\mathbf{else}:\\
\;\;\;\;0.011111111111111112 \cdot \left(angle \cdot t\_0\right)\\
\end{array}
\end{array}
if angle < 100Initial program 66.9%
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 rewrites82.8%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
associate-*r*N/A
lower-fma.f64N/A
lower-*.f64N/A
unpow2N/A
lower-*.f64N/A
lower-pow.f64N/A
lower-PI.f64N/A
lower-*.f64N/A
lower-PI.f6480.5
Applied rewrites80.5%
Applied rewrites80.5%
if 100 < angle < 1.8500000000000002e197 or 9.9999999999999996e274 < angle Initial program 31.9%
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 rewrites31.9%
lift-PI.f64N/A
add-cbrt-cubeN/A
lower-cbrt.f64N/A
rem-cube-cbrtN/A
add-cbrt-cubeN/A
lift-PI.f64N/A
lower-pow.f6442.1
Applied rewrites42.1%
lift-cbrt.f64N/A
lift-pow.f64N/A
rem-cbrt-cube31.9
rem-square-sqrtN/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
sqr-neg-revN/A
distribute-rgt-neg-outN/A
unpow1N/A
metadata-evalN/A
pow-powN/A
pow2N/A
sqr-neg-revN/A
pow2N/A
pow-powN/A
metadata-evalN/A
unpow1N/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
rem-square-sqrtN/A
lower-neg.f6440.8
Applied rewrites40.8%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
Applied rewrites43.3%
if 1.8500000000000002e197 < angle < 9.9999999999999996e274Initial program 18.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--.f6451.6
Applied rewrites51.6%
Applied rewrites51.6%
Final simplification72.7%
(FPCore (a b angle)
:precision binary64
(let* ((t_0 (* (fma (- a) a (* b b)) (PI))))
(if (<= angle 1000.0)
(* (+ a b) (* (* (* (- b a) (PI)) angle) 0.011111111111111112))
(if (or (<= angle 1.85e+197) (not (<= angle 1e+275)))
(* (* t_0 angle) -0.011111111111111112)
(* 0.011111111111111112 (* angle t_0))))))\begin{array}{l}
\\
\begin{array}{l}
t_0 := \mathsf{fma}\left(-a, a, b \cdot b\right) \cdot \mathsf{PI}\left(\right)\\
\mathbf{if}\;angle \leq 1000:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(\left(\left(b - a\right) \cdot \mathsf{PI}\left(\right)\right) \cdot angle\right) \cdot 0.011111111111111112\right)\\
\mathbf{elif}\;angle \leq 1.85 \cdot 10^{+197} \lor \neg \left(angle \leq 10^{+275}\right):\\
\;\;\;\;\left(t\_0 \cdot angle\right) \cdot -0.011111111111111112\\
\mathbf{else}:\\
\;\;\;\;0.011111111111111112 \cdot \left(angle \cdot t\_0\right)\\
\end{array}
\end{array}
if angle < 1e3Initial program 66.9%
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 rewrites82.8%
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.f6479.1
Applied rewrites79.1%
if 1e3 < angle < 1.8500000000000002e197 or 9.9999999999999996e274 < angle Initial program 31.9%
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 rewrites31.9%
lift-PI.f64N/A
add-cbrt-cubeN/A
lower-cbrt.f64N/A
rem-cube-cbrtN/A
add-cbrt-cubeN/A
lift-PI.f64N/A
lower-pow.f6442.1
Applied rewrites42.1%
lift-cbrt.f64N/A
lift-pow.f64N/A
rem-cbrt-cube31.9
rem-square-sqrtN/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
sqr-neg-revN/A
distribute-rgt-neg-outN/A
unpow1N/A
metadata-evalN/A
pow-powN/A
pow2N/A
sqr-neg-revN/A
pow2N/A
pow-powN/A
metadata-evalN/A
unpow1N/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
rem-square-sqrtN/A
lower-neg.f6440.8
Applied rewrites40.8%
Taylor expanded in angle around 0
*-commutativeN/A
lower-*.f64N/A
Applied rewrites43.3%
if 1.8500000000000002e197 < angle < 9.9999999999999996e274Initial program 18.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--.f6451.6
Applied rewrites51.6%
Applied rewrites51.6%
Final simplification71.6%
(FPCore (a b angle)
:precision binary64
(let* ((t_0 (* (* (- b a) (PI)) angle)))
(if (<= angle 1000.0)
(* (+ a b) (* t_0 0.011111111111111112))
(if (or (<= angle 1.85e+197) (not (<= angle 1.08e+290)))
(* (+ a b) (* t_0 -0.011111111111111112))
(* 0.011111111111111112 (* angle (* (fma (- a) a (* b b)) (PI))))))))\begin{array}{l}
\\
\begin{array}{l}
t_0 := \left(\left(b - a\right) \cdot \mathsf{PI}\left(\right)\right) \cdot angle\\
\mathbf{if}\;angle \leq 1000:\\
\;\;\;\;\left(a + b\right) \cdot \left(t\_0 \cdot 0.011111111111111112\right)\\
\mathbf{elif}\;angle \leq 1.85 \cdot 10^{+197} \lor \neg \left(angle \leq 1.08 \cdot 10^{+290}\right):\\
\;\;\;\;\left(a + b\right) \cdot \left(t\_0 \cdot -0.011111111111111112\right)\\
\mathbf{else}:\\
\;\;\;\;0.011111111111111112 \cdot \left(angle \cdot \left(\mathsf{fma}\left(-a, a, b \cdot b\right) \cdot \mathsf{PI}\left(\right)\right)\right)\\
\end{array}
\end{array}
if angle < 1e3Initial program 66.9%
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 rewrites82.8%
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.f6479.1
Applied rewrites79.1%
if 1e3 < angle < 1.8500000000000002e197 or 1.08e290 < angle Initial program 30.9%
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 rewrites30.9%
lift-PI.f64N/A
add-cbrt-cubeN/A
lower-cbrt.f64N/A
rem-cube-cbrtN/A
add-cbrt-cubeN/A
lift-PI.f64N/A
lower-pow.f6441.2
Applied rewrites41.2%
lift-cbrt.f64N/A
lift-pow.f64N/A
rem-cbrt-cube30.9
rem-square-sqrtN/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
sqr-neg-revN/A
distribute-rgt-neg-outN/A
unpow1N/A
metadata-evalN/A
pow-powN/A
pow2N/A
sqr-neg-revN/A
pow2N/A
pow-powN/A
metadata-evalN/A
unpow1N/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
rem-square-sqrtN/A
lower-neg.f6439.9
Applied rewrites39.9%
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.f6438.8
Applied rewrites38.8%
if 1.8500000000000002e197 < angle < 1.08e290Initial program 24.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--.f6451.5
Applied rewrites51.5%
Applied rewrites51.5%
Final simplification70.9%
(FPCore (a b angle)
:precision binary64
(let* ((t_0 (* (* (- b a) (PI)) angle)))
(if (<= angle 1000.0)
(* (+ a b) (* t_0 0.011111111111111112))
(if (<= angle 1.85e+197)
(* (+ a b) (* t_0 -0.011111111111111112))
(* (* (* (PI) (* b b)) angle) 0.011111111111111112)))))\begin{array}{l}
\\
\begin{array}{l}
t_0 := \left(\left(b - a\right) \cdot \mathsf{PI}\left(\right)\right) \cdot angle\\
\mathbf{if}\;angle \leq 1000:\\
\;\;\;\;\left(a + b\right) \cdot \left(t\_0 \cdot 0.011111111111111112\right)\\
\mathbf{elif}\;angle \leq 1.85 \cdot 10^{+197}:\\
\;\;\;\;\left(a + b\right) \cdot \left(t\_0 \cdot -0.011111111111111112\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\mathsf{PI}\left(\right) \cdot \left(b \cdot b\right)\right) \cdot angle\right) \cdot 0.011111111111111112\\
\end{array}
\end{array}
if angle < 1e3Initial program 66.9%
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 rewrites82.8%
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.f6479.1
Applied rewrites79.1%
if 1e3 < angle < 1.8500000000000002e197Initial program 33.5%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*r*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
lift-sin.f64N/A
lift-cos.f64N/A
Applied rewrites33.5%
lift-PI.f64N/A
add-cbrt-cubeN/A
lower-cbrt.f64N/A
rem-cube-cbrtN/A
add-cbrt-cubeN/A
lift-PI.f64N/A
lower-pow.f6446.2
Applied rewrites46.2%
lift-cbrt.f64N/A
lift-pow.f64N/A
rem-cbrt-cube33.5
rem-square-sqrtN/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
sqr-neg-revN/A
distribute-rgt-neg-outN/A
unpow1N/A
metadata-evalN/A
pow-powN/A
pow2N/A
sqr-neg-revN/A
pow2N/A
pow-powN/A
metadata-evalN/A
unpow1N/A
lift-sqrt.f64N/A
lift-sqrt.f64N/A
rem-square-sqrtN/A
lower-neg.f6438.7
Applied rewrites38.7%
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.f6435.0
Applied rewrites35.0%
if 1.8500000000000002e197 < angle Initial program 21.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--.f6432.7
Applied rewrites32.7%
Taylor expanded in a around 0
Applied rewrites27.6%
(FPCore (a b angle) :precision binary64 (if (<= angle 1000000000.0) (* (+ a b) (* (* (* (- b a) (PI)) angle) 0.011111111111111112)) (* (* 0.011111111111111112 angle) (* (* (PI) (+ b a)) (- b a)))))
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;angle \leq 1000000000:\\
\;\;\;\;\left(a + b\right) \cdot \left(\left(\left(\left(b - a\right) \cdot \mathsf{PI}\left(\right)\right) \cdot angle\right) \cdot 0.011111111111111112\right)\\
\mathbf{else}:\\
\;\;\;\;\left(0.011111111111111112 \cdot angle\right) \cdot \left(\left(\mathsf{PI}\left(\right) \cdot \left(b + a\right)\right) \cdot \left(b - a\right)\right)\\
\end{array}
\end{array}
if angle < 1e9Initial program 66.9%
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 rewrites82.7%
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.f6478.8
Applied rewrites78.8%
if 1e9 < angle Initial program 28.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 rewrites30.7%
Taylor expanded in angle around 0
associate-*r*N/A
+-commutativeN/A
difference-of-squares-revN/A
unpow2N/A
unpow2N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squares-revN/A
+-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
+-commutativeN/A
lower-+.f64N/A
lower--.f6426.8
Applied rewrites26.8%
(FPCore (a b angle) :precision binary64 (if (<= angle 7.5e-40) (* (- b a) (* (+ b a) (* (* 0.011111111111111112 angle) (PI)))) (* (* 0.011111111111111112 angle) (* (* (PI) (+ b a)) (- b a)))))
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;angle \leq 7.5 \cdot 10^{-40}:\\
\;\;\;\;\left(b - a\right) \cdot \left(\left(b + a\right) \cdot \left(\left(0.011111111111111112 \cdot angle\right) \cdot \mathsf{PI}\left(\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(0.011111111111111112 \cdot angle\right) \cdot \left(\left(\mathsf{PI}\left(\right) \cdot \left(b + a\right)\right) \cdot \left(b - a\right)\right)\\
\end{array}
\end{array}
if angle < 7.50000000000000069e-40Initial program 66.1%
Taylor expanded in angle around 0
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6464.1
Applied rewrites64.1%
Applied rewrites78.1%
if 7.50000000000000069e-40 < angle Initial program 36.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 rewrites39.8%
Taylor expanded in angle around 0
associate-*r*N/A
+-commutativeN/A
difference-of-squares-revN/A
unpow2N/A
unpow2N/A
lower-*.f64N/A
lower-*.f64N/A
unpow2N/A
unpow2N/A
difference-of-squares-revN/A
+-commutativeN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
+-commutativeN/A
lower-+.f64N/A
lower--.f6435.6
Applied rewrites35.6%
(FPCore (a b angle)
:precision binary64
(let* ((t_0 (* (* 0.011111111111111112 angle) (PI))))
(if (<= angle 2e-18)
(* (- b a) (* (+ b a) t_0))
(* t_0 (* (+ b a) (- b a))))))\begin{array}{l}
\\
\begin{array}{l}
t_0 := \left(0.011111111111111112 \cdot angle\right) \cdot \mathsf{PI}\left(\right)\\
\mathbf{if}\;angle \leq 2 \cdot 10^{-18}:\\
\;\;\;\;\left(b - a\right) \cdot \left(\left(b + a\right) \cdot t\_0\right)\\
\mathbf{else}:\\
\;\;\;\;t\_0 \cdot \left(\left(b + a\right) \cdot \left(b - a\right)\right)\\
\end{array}
\end{array}
if angle < 2.0000000000000001e-18Initial program 66.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--.f6465.0
Applied rewrites65.0%
Applied rewrites78.6%
if 2.0000000000000001e-18 < angle Initial program 31.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--.f6430.3
Applied rewrites30.3%
(FPCore (a b angle) :precision binary64 (if (<= angle 2e-26) (* (* (* angle (PI)) (* -0.011111111111111112 a)) a) (* (* -0.011111111111111112 (* a a)) (* (PI) angle))))
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;angle \leq 2 \cdot 10^{-26}:\\
\;\;\;\;\left(\left(angle \cdot \mathsf{PI}\left(\right)\right) \cdot \left(-0.011111111111111112 \cdot a\right)\right) \cdot a\\
\mathbf{else}:\\
\;\;\;\;\left(-0.011111111111111112 \cdot \left(a \cdot a\right)\right) \cdot \left(\mathsf{PI}\left(\right) \cdot angle\right)\\
\end{array}
\end{array}
if angle < 2.0000000000000001e-26Initial program 66.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--.f6464.6
Applied rewrites64.6%
Taylor expanded in a around inf
Applied rewrites38.4%
Applied rewrites47.1%
if 2.0000000000000001e-26 < angle Initial program 33.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--.f6432.5
Applied rewrites32.5%
Taylor expanded in a around inf
Applied rewrites21.1%
(FPCore (a b angle) :precision binary64 (if (<= a 8e-7) (* (* -0.011111111111111112 (* a a)) (* (PI) angle)) (* (* -0.011111111111111112 a) (* a (* angle (PI))))))
\begin{array}{l}
\\
\begin{array}{l}
\mathbf{if}\;a \leq 8 \cdot 10^{-7}:\\
\;\;\;\;\left(-0.011111111111111112 \cdot \left(a \cdot a\right)\right) \cdot \left(\mathsf{PI}\left(\right) \cdot angle\right)\\
\mathbf{else}:\\
\;\;\;\;\left(-0.011111111111111112 \cdot a\right) \cdot \left(a \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)\\
\end{array}
\end{array}
if a < 7.9999999999999996e-7Initial program 62.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.6
Applied rewrites61.6%
Taylor expanded in a around inf
Applied rewrites34.2%
if 7.9999999999999996e-7 < a Initial program 47.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--.f6444.3
Applied rewrites44.3%
Taylor expanded in a around inf
Applied rewrites34.4%
Applied rewrites49.4%
(FPCore (a b angle) :precision binary64 (* (* -0.011111111111111112 a) (* a (* angle (PI)))))
\begin{array}{l}
\\
\left(-0.011111111111111112 \cdot a\right) \cdot \left(a \cdot \left(angle \cdot \mathsf{PI}\left(\right)\right)\right)
\end{array}
Initial program 58.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.0
Applied rewrites57.0%
Taylor expanded in a around inf
Applied rewrites34.3%
Applied rewrites40.0%
herbie shell --seed 2024363
(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)))))