
(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 16 alternatives:
| Alternative | Accuracy | Speedup |
|---|
(FPCore (a b angle) :precision binary64 (let* ((t_0 (* (PI) (/ angle 180.0)))) (* (* (* 2.0 (- (pow b 2.0) (pow a 2.0))) (sin t_0)) (cos t_0))))
\begin{array}{l}
\\
\begin{array}{l}
t_0 := \mathsf{PI}\left(\right) \cdot \frac{angle}{180}\\
\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin t\_0\right) \cdot \cos t\_0
\end{array}
\end{array}
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (sqrt (PI))))
(if (<= b_m 1.7e+189)
(*
(/ -1.0 (/ -1.0 (+ b_m a_m)))
(* (- b_m a_m) (sin (* (* (* 0.011111111111111112 angle) t_0) t_0))))
(* (* (- b_m a_m) (* 0.011111111111111112 (PI))) (* angle (+ b_m a_m))))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := \sqrt{\mathsf{PI}\left(\right)}\\
\mathbf{if}\;b\_m \leq 1.7 \cdot 10^{+189}:\\
\;\;\;\;\frac{-1}{\frac{-1}{b\_m + a\_m}} \cdot \left(\left(b\_m - a\_m\right) \cdot \sin \left(\left(\left(0.011111111111111112 \cdot angle\right) \cdot t\_0\right) \cdot t\_0\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(b\_m - a\_m\right) \cdot \left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left(angle \cdot \left(b\_m + a\_m\right)\right)\\
\end{array}
\end{array}
if b < 1.69999999999999992e189Initial program 54.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 rewrites64.5%
lift-*.f64N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
pow2N/A
lower-pow.f64N/A
lift-PI.f64N/A
lower-cbrt.f64N/A
lift-PI.f64N/A
lower-cbrt.f6465.7
Applied rewrites65.7%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-pow.f64N/A
unpow2N/A
pow3N/A
lift-cbrt.f64N/A
rem-cube-cbrtN/A
lift-PI.f64N/A
lift-PI.f64N/A
associate-*l*N/A
*-commutativeN/A
associate-*r*N/A
lift-PI.f64N/A
add-sqr-sqrtN/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites68.4%
lift-+.f64N/A
+-commutativeN/A
lift-+.f6468.4
remove-double-divN/A
unpow-1N/A
lift-pow.f64N/A
frac-2negN/A
metadata-evalN/A
lower-/.f64N/A
lift-pow.f64N/A
unpow-1N/A
distribute-neg-fracN/A
metadata-evalN/A
lower-/.f6468.4
Applied rewrites68.4%
if 1.69999999999999992e189 < b Initial program 24.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--.f6452.0
Applied rewrites52.0%
Applied rewrites77.0%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (* (PI) (/ angle 180.0)))
(t_1
(* (* (* 2.0 (- (pow b_m 2.0) (pow a_m 2.0))) (sin t_0)) (cos t_0))))
(if (<= t_1 (- INFINITY))
(* (* (- b_m a_m) (* 0.011111111111111112 (PI))) (* angle (+ b_m a_m)))
(if (<= t_1 5e+303)
(*
(* (- b_m a_m) (+ a_m b_m))
(sin (* (* angle (PI)) 0.011111111111111112)))
(*
(*
(fma
(* angle 0.011111111111111112)
(PI)
(/
(fma
(/ (* (* (* (PI) angle) a_m) a_m) b_m)
0.011111111111111112
0.0)
(- b_m)))
b_m)
b_m)))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := \mathsf{PI}\left(\right) \cdot \frac{angle}{180}\\
t_1 := \left(\left(2 \cdot \left({b\_m}^{2} - {a\_m}^{2}\right)\right) \cdot \sin t\_0\right) \cdot \cos t\_0\\
\mathbf{if}\;t\_1 \leq -\infty:\\
\;\;\;\;\left(\left(b\_m - a\_m\right) \cdot \left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left(angle \cdot \left(b\_m + a\_m\right)\right)\\
\mathbf{elif}\;t\_1 \leq 5 \cdot 10^{+303}:\\
\;\;\;\;\left(\left(b\_m - a\_m\right) \cdot \left(a\_m + b\_m\right)\right) \cdot \sin \left(\left(angle \cdot \mathsf{PI}\left(\right)\right) \cdot 0.011111111111111112\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\mathsf{fma}\left(angle \cdot 0.011111111111111112, \mathsf{PI}\left(\right), \frac{\mathsf{fma}\left(\frac{\left(\left(\mathsf{PI}\left(\right) \cdot angle\right) \cdot a\_m\right) \cdot a\_m}{b\_m}, 0.011111111111111112, 0\right)}{-b\_m}\right) \cdot b\_m\right) \cdot b\_m\\
\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))))) < -inf.0Initial program 44.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--.f6440.6
Applied rewrites40.6%
Applied rewrites63.1%
if -inf.0 < (*.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.9999999999999997e303Initial program 62.7%
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 rewrites63.2%
if 4.9999999999999997e303 < (*.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 30.8%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6463.1
Applied rewrites63.1%
Taylor expanded in b around -inf
Applied rewrites77.8%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(if (<= (pow b_m 2.0) 5e-143)
(* (+ a_m b_m) (* (- a_m) (sin (* (* angle (PI)) 0.011111111111111112))))
(*
(*
(fma
(* angle 0.011111111111111112)
(PI)
(/
(fma (/ (* (* (* (PI) angle) a_m) a_m) b_m) 0.011111111111111112 0.0)
(- b_m)))
b_m)
b_m)))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;{b\_m}^{2} \leq 5 \cdot 10^{-143}:\\
\;\;\;\;\left(a\_m + b\_m\right) \cdot \left(\left(-a\_m\right) \cdot \sin \left(\left(angle \cdot \mathsf{PI}\left(\right)\right) \cdot 0.011111111111111112\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\mathsf{fma}\left(angle \cdot 0.011111111111111112, \mathsf{PI}\left(\right), \frac{\mathsf{fma}\left(\frac{\left(\left(\mathsf{PI}\left(\right) \cdot angle\right) \cdot a\_m\right) \cdot a\_m}{b\_m}, 0.011111111111111112, 0\right)}{-b\_m}\right) \cdot b\_m\right) \cdot b\_m\\
\end{array}
\end{array}
if (pow.f64 b #s(literal 2 binary64)) < 5.0000000000000002e-143Initial program 62.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 rewrites67.2%
Taylor expanded in a around inf
mul-1-negN/A
lower-neg.f6465.1
Applied rewrites65.1%
if 5.0000000000000002e-143 < (pow.f64 b #s(literal 2 binary64)) Initial program 45.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.8
Applied rewrites55.8%
Taylor expanded in b around -inf
Applied rewrites66.4%
b_m = (fabs.f64 b) a_m = (fabs.f64 a) (FPCore (a_m b_m angle) :precision binary64 (if (<= (- (pow b_m 2.0) (pow a_m 2.0)) -5e-240) (* (fma (* (* (PI) angle) a_m) -0.011111111111111112 0.0) a_m) (* (PI) (* (* (* b_m angle) b_m) 0.011111111111111112))))
\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;{b\_m}^{2} - {a\_m}^{2} \leq -5 \cdot 10^{-240}:\\
\;\;\;\;\mathsf{fma}\left(\left(\mathsf{PI}\left(\right) \cdot angle\right) \cdot a\_m, -0.011111111111111112, 0\right) \cdot a\_m\\
\mathbf{else}:\\
\;\;\;\;\mathsf{PI}\left(\right) \cdot \left(\left(\left(b\_m \cdot angle\right) \cdot b\_m\right) \cdot 0.011111111111111112\right)\\
\end{array}
\end{array}
if (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) < -5.0000000000000004e-240Initial program 53.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--.f6453.9
Applied rewrites53.9%
Taylor expanded in a around inf
Applied rewrites60.3%
if -5.0000000000000004e-240 < (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) Initial program 50.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--.f6456.9
Applied rewrites56.9%
Taylor expanded in a around 0
Applied rewrites55.0%
Applied rewrites55.0%
Applied rewrites61.9%
b_m = (fabs.f64 b) a_m = (fabs.f64 a) (FPCore (a_m b_m angle) :precision binary64 (if (<= (- (pow b_m 2.0) (pow a_m 2.0)) -5e-240) (* (* (* (* (PI) angle) a_m) a_m) -0.011111111111111112) (* (PI) (* (* (* b_m angle) b_m) 0.011111111111111112))))
\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;{b\_m}^{2} - {a\_m}^{2} \leq -5 \cdot 10^{-240}:\\
\;\;\;\;\left(\left(\left(\mathsf{PI}\left(\right) \cdot angle\right) \cdot a\_m\right) \cdot a\_m\right) \cdot -0.011111111111111112\\
\mathbf{else}:\\
\;\;\;\;\mathsf{PI}\left(\right) \cdot \left(\left(\left(b\_m \cdot angle\right) \cdot b\_m\right) \cdot 0.011111111111111112\right)\\
\end{array}
\end{array}
if (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) < -5.0000000000000004e-240Initial program 53.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--.f6453.9
Applied rewrites53.9%
Taylor expanded in a around inf
Applied rewrites59.7%
if -5.0000000000000004e-240 < (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) Initial program 50.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--.f6456.9
Applied rewrites56.9%
Taylor expanded in a around 0
Applied rewrites55.0%
Applied rewrites55.0%
Applied rewrites61.9%
b_m = (fabs.f64 b) a_m = (fabs.f64 a) (FPCore (a_m b_m angle) :precision binary64 (if (<= (- (pow b_m 2.0) (pow a_m 2.0)) 2e-318) (* (* -0.011111111111111112 (* a_m a_m)) (* (PI) angle)) (* (PI) (* (* (* b_m angle) b_m) 0.011111111111111112))))
\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;{b\_m}^{2} - {a\_m}^{2} \leq 2 \cdot 10^{-318}:\\
\;\;\;\;\left(-0.011111111111111112 \cdot \left(a\_m \cdot a\_m\right)\right) \cdot \left(\mathsf{PI}\left(\right) \cdot angle\right)\\
\mathbf{else}:\\
\;\;\;\;\mathsf{PI}\left(\right) \cdot \left(\left(\left(b\_m \cdot angle\right) \cdot b\_m\right) \cdot 0.011111111111111112\right)\\
\end{array}
\end{array}
if (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) < 2.0000024e-318Initial program 58.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--.f6457.8
Applied rewrites57.8%
Taylor expanded in a around 0
Applied rewrites20.6%
Taylor expanded in a around inf
Applied rewrites58.3%
if 2.0000024e-318 < (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) Initial program 43.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--.f6453.0
Applied rewrites53.0%
Taylor expanded in a around 0
Applied rewrites50.3%
Applied rewrites50.3%
Applied rewrites60.3%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (sqrt (PI))))
(if (<= b_m 6.6e+184)
(*
(+ a_m b_m)
(* (- b_m a_m) (sin (* (* (* 0.011111111111111112 angle) t_0) t_0))))
(* (* (- b_m a_m) (* 0.011111111111111112 (PI))) (* angle (+ b_m a_m))))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := \sqrt{\mathsf{PI}\left(\right)}\\
\mathbf{if}\;b\_m \leq 6.6 \cdot 10^{+184}:\\
\;\;\;\;\left(a\_m + b\_m\right) \cdot \left(\left(b\_m - a\_m\right) \cdot \sin \left(\left(\left(0.011111111111111112 \cdot angle\right) \cdot t\_0\right) \cdot t\_0\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(b\_m - a\_m\right) \cdot \left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left(angle \cdot \left(b\_m + a\_m\right)\right)\\
\end{array}
\end{array}
if b < 6.5999999999999996e184Initial program 54.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 rewrites64.5%
lift-*.f64N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
pow2N/A
lower-pow.f64N/A
lift-PI.f64N/A
lower-cbrt.f64N/A
lift-PI.f64N/A
lower-cbrt.f6465.7
Applied rewrites65.7%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-pow.f64N/A
unpow2N/A
pow3N/A
lift-cbrt.f64N/A
rem-cube-cbrtN/A
lift-PI.f64N/A
lift-PI.f64N/A
associate-*l*N/A
*-commutativeN/A
associate-*r*N/A
lift-PI.f64N/A
add-sqr-sqrtN/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites68.4%
if 6.5999999999999996e184 < b Initial program 24.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--.f6452.0
Applied rewrites52.0%
Applied rewrites77.0%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(if (<= b_m 3.25e+35)
(*
(+ a_m b_m)
(* (- b_m a_m) (sin (* (* angle (PI)) 0.011111111111111112))))
(*
(*
(fma
(* angle 0.011111111111111112)
(PI)
(/
(fma (/ (* (* (* (PI) angle) a_m) a_m) b_m) 0.011111111111111112 0.0)
(- b_m)))
b_m)
b_m)))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;b\_m \leq 3.25 \cdot 10^{+35}:\\
\;\;\;\;\left(a\_m + b\_m\right) \cdot \left(\left(b\_m - a\_m\right) \cdot \sin \left(\left(angle \cdot \mathsf{PI}\left(\right)\right) \cdot 0.011111111111111112\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\mathsf{fma}\left(angle \cdot 0.011111111111111112, \mathsf{PI}\left(\right), \frac{\mathsf{fma}\left(\frac{\left(\left(\mathsf{PI}\left(\right) \cdot angle\right) \cdot a\_m\right) \cdot a\_m}{b\_m}, 0.011111111111111112, 0\right)}{-b\_m}\right) \cdot b\_m\right) \cdot b\_m\\
\end{array}
\end{array}
if b < 3.2500000000000002e35Initial program 53.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 rewrites64.0%
if 3.2500000000000002e35 < b Initial program 43.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--.f6457.3
Applied rewrites57.3%
Taylor expanded in b around -inf
Applied rewrites74.9%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(if (<= a_m 7.2e-143)
(* (+ a_m b_m) (* (sin (* (* (PI) angle) 0.011111111111111112)) b_m))
(if (<= a_m 1.1e+215)
(*
(+ a_m b_m)
(*
(- b_m a_m)
(*
(*
(PI)
(fma
(* (* angle angle) -2.2862368541380886e-7)
(* (PI) (PI))
0.011111111111111112))
angle)))
(* (* (- b_m a_m) (* 0.011111111111111112 (PI))) (* angle (+ b_m a_m))))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;a\_m \leq 7.2 \cdot 10^{-143}:\\
\;\;\;\;\left(a\_m + b\_m\right) \cdot \left(\sin \left(\left(\mathsf{PI}\left(\right) \cdot angle\right) \cdot 0.011111111111111112\right) \cdot b\_m\right)\\
\mathbf{elif}\;a\_m \leq 1.1 \cdot 10^{+215}:\\
\;\;\;\;\left(a\_m + b\_m\right) \cdot \left(\left(b\_m - a\_m\right) \cdot \left(\left(\mathsf{PI}\left(\right) \cdot \mathsf{fma}\left(\left(angle \cdot angle\right) \cdot -2.2862368541380886 \cdot 10^{-7}, \mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right), 0.011111111111111112\right)\right) \cdot angle\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\left(b\_m - a\_m\right) \cdot \left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left(angle \cdot \left(b\_m + a\_m\right)\right)\\
\end{array}
\end{array}
if a < 7.1999999999999996e-143Initial program 48.3%
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 rewrites62.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.f6447.5
Applied rewrites47.5%
if 7.1999999999999996e-143 < a < 1.1000000000000001e215Initial program 60.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 rewrites66.4%
lift-*.f64N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
pow2N/A
lower-pow.f64N/A
lift-PI.f64N/A
lower-cbrt.f64N/A
lift-PI.f64N/A
lower-cbrt.f6472.2
Applied rewrites72.2%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-pow.f64N/A
unpow2N/A
pow3N/A
lift-cbrt.f64N/A
rem-cube-cbrtN/A
lift-PI.f64N/A
lift-PI.f64N/A
associate-*l*N/A
*-commutativeN/A
associate-*r*N/A
lift-PI.f64N/A
add-sqr-sqrtN/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites69.9%
Taylor expanded in angle around 0
*-commutativeN/A
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
+-commutativeN/A
lower-*.f64N/A
Applied rewrites65.8%
if 1.1000000000000001e215 < a Initial program 44.8%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6475.3
Applied rewrites75.3%
Applied rewrites87.0%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(if (<= (/ angle 180.0) 2e+69)
(* (* (- b_m a_m) (* 0.011111111111111112 (PI))) (* angle (+ b_m a_m)))
(if (<= (/ angle 180.0) 5e+108)
(*
(*
(* (+ b_m a_m) (- b_m a_m))
(*
(PI)
(fma
(* (* angle angle) -2.2862368541380886e-7)
(* (PI) (PI))
0.011111111111111112)))
angle)
(*
(*
(fma
(* angle 0.011111111111111112)
(PI)
(/
(fma (/ (* (* (* (PI) angle) a_m) a_m) b_m) 0.011111111111111112 0.0)
(- b_m)))
b_m)
b_m))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;\frac{angle}{180} \leq 2 \cdot 10^{+69}:\\
\;\;\;\;\left(\left(b\_m - a\_m\right) \cdot \left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left(angle \cdot \left(b\_m + a\_m\right)\right)\\
\mathbf{elif}\;\frac{angle}{180} \leq 5 \cdot 10^{+108}:\\
\;\;\;\;\left(\left(\left(b\_m + a\_m\right) \cdot \left(b\_m - a\_m\right)\right) \cdot \left(\mathsf{PI}\left(\right) \cdot \mathsf{fma}\left(\left(angle \cdot angle\right) \cdot -2.2862368541380886 \cdot 10^{-7}, \mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right), 0.011111111111111112\right)\right)\right) \cdot angle\\
\mathbf{else}:\\
\;\;\;\;\left(\mathsf{fma}\left(angle \cdot 0.011111111111111112, \mathsf{PI}\left(\right), \frac{\mathsf{fma}\left(\frac{\left(\left(\mathsf{PI}\left(\right) \cdot angle\right) \cdot a\_m\right) \cdot a\_m}{b\_m}, 0.011111111111111112, 0\right)}{-b\_m}\right) \cdot b\_m\right) \cdot b\_m\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 2.0000000000000001e69Initial program 57.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--.f6460.2
Applied rewrites60.2%
Applied rewrites69.2%
if 2.0000000000000001e69 < (/.f64 angle #s(literal 180 binary64)) < 4.99999999999999991e108Initial program 25.2%
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 rewrites12.7%
lift-*.f64N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
pow2N/A
lower-pow.f64N/A
lift-PI.f64N/A
lower-cbrt.f64N/A
lift-PI.f64N/A
lower-cbrt.f6462.7
Applied rewrites62.7%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-pow.f64N/A
unpow2N/A
pow3N/A
lift-cbrt.f64N/A
rem-cube-cbrtN/A
lift-PI.f64N/A
lift-PI.f64N/A
associate-*l*N/A
*-commutativeN/A
associate-*r*N/A
lift-PI.f64N/A
add-sqr-sqrtN/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites62.7%
Taylor expanded in angle around 0
Applied rewrites75.1%
if 4.99999999999999991e108 < (/.f64 angle #s(literal 180 binary64)) Initial program 26.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--.f6438.8
Applied rewrites38.8%
Taylor expanded in b around -inf
Applied rewrites43.5%
b_m = (fabs.f64 b)
a_m = (fabs.f64 a)
(FPCore (a_m b_m angle)
:precision binary64
(let* ((t_0 (* (+ b_m a_m) (- b_m a_m))))
(if (<= (/ angle 180.0) 2e+69)
(* (* (- b_m a_m) (* 0.011111111111111112 (PI))) (* angle (+ b_m a_m)))
(if (<= (/ angle 180.0) 5e+108)
(*
(*
t_0
(*
(PI)
(fma
(* (* angle angle) -2.2862368541380886e-7)
(* (PI) (PI))
0.011111111111111112)))
angle)
(* (* (* t_0 0.011111111111111112) angle) (PI))))))\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := \left(b\_m + a\_m\right) \cdot \left(b\_m - a\_m\right)\\
\mathbf{if}\;\frac{angle}{180} \leq 2 \cdot 10^{+69}:\\
\;\;\;\;\left(\left(b\_m - a\_m\right) \cdot \left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left(angle \cdot \left(b\_m + a\_m\right)\right)\\
\mathbf{elif}\;\frac{angle}{180} \leq 5 \cdot 10^{+108}:\\
\;\;\;\;\left(t\_0 \cdot \left(\mathsf{PI}\left(\right) \cdot \mathsf{fma}\left(\left(angle \cdot angle\right) \cdot -2.2862368541380886 \cdot 10^{-7}, \mathsf{PI}\left(\right) \cdot \mathsf{PI}\left(\right), 0.011111111111111112\right)\right)\right) \cdot angle\\
\mathbf{else}:\\
\;\;\;\;\left(\left(t\_0 \cdot 0.011111111111111112\right) \cdot angle\right) \cdot \mathsf{PI}\left(\right)\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 2.0000000000000001e69Initial program 57.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--.f6460.2
Applied rewrites60.2%
Applied rewrites69.2%
if 2.0000000000000001e69 < (/.f64 angle #s(literal 180 binary64)) < 4.99999999999999991e108Initial program 25.2%
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 rewrites12.7%
lift-*.f64N/A
lift-PI.f64N/A
add-cube-cbrtN/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
pow2N/A
lower-pow.f64N/A
lift-PI.f64N/A
lower-cbrt.f64N/A
lift-PI.f64N/A
lower-cbrt.f6462.7
Applied rewrites62.7%
lift-*.f64N/A
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-pow.f64N/A
unpow2N/A
pow3N/A
lift-cbrt.f64N/A
rem-cube-cbrtN/A
lift-PI.f64N/A
lift-PI.f64N/A
associate-*l*N/A
*-commutativeN/A
associate-*r*N/A
lift-PI.f64N/A
add-sqr-sqrtN/A
associate-*r*N/A
lower-*.f64N/A
Applied rewrites62.7%
Taylor expanded in angle around 0
Applied rewrites75.1%
if 4.99999999999999991e108 < (/.f64 angle #s(literal 180 binary64)) Initial program 26.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--.f6438.8
Applied rewrites38.8%
Applied rewrites38.8%
b_m = (fabs.f64 b) a_m = (fabs.f64 a) (FPCore (a_m b_m angle) :precision binary64 (* (* (- b_m a_m) (* 0.011111111111111112 (PI))) (* angle (+ b_m a_m))))
\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\left(\left(b\_m - a\_m\right) \cdot \left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left(angle \cdot \left(b\_m + a\_m\right)\right)
\end{array}
Initial program 51.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.5
Applied rewrites55.5%
Applied rewrites62.4%
b_m = (fabs.f64 b) a_m = (fabs.f64 a) (FPCore (a_m b_m angle) :precision binary64 (* (* (- b_m a_m) (* 0.011111111111111112 angle)) (* (PI) (+ b_m a_m))))
\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\left(\left(b\_m - a\_m\right) \cdot \left(0.011111111111111112 \cdot angle\right)\right) \cdot \left(\mathsf{PI}\left(\right) \cdot \left(b\_m + a\_m\right)\right)
\end{array}
Initial program 51.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.5
Applied rewrites55.5%
Applied rewrites62.3%
b_m = (fabs.f64 b) a_m = (fabs.f64 a) (FPCore (a_m b_m angle) :precision binary64 (* (* (* angle (- b_m a_m)) (+ b_m a_m)) (* 0.011111111111111112 (PI))))
\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\left(\left(angle \cdot \left(b\_m - a\_m\right)\right) \cdot \left(b\_m + a\_m\right)\right) \cdot \left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right)
\end{array}
Initial program 51.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.5
Applied rewrites55.5%
Applied rewrites62.1%
b_m = (fabs.f64 b) a_m = (fabs.f64 a) (FPCore (a_m b_m angle) :precision binary64 (* 0.011111111111111112 (* (* (* (PI) angle) (+ b_m a_m)) (- b_m a_m))))
\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
0.011111111111111112 \cdot \left(\left(\left(\mathsf{PI}\left(\right) \cdot angle\right) \cdot \left(b\_m + a\_m\right)\right) \cdot \left(b\_m - a\_m\right)\right)
\end{array}
Initial program 51.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.5
Applied rewrites55.5%
Applied rewrites62.0%
b_m = (fabs.f64 b) a_m = (fabs.f64 a) (FPCore (a_m b_m angle) :precision binary64 (* (PI) (* (* (* b_m angle) b_m) 0.011111111111111112)))
\begin{array}{l}
b_m = \left|b\right|
\\
a_m = \left|a\right|
\\
\mathsf{PI}\left(\right) \cdot \left(\left(\left(b\_m \cdot angle\right) \cdot b\_m\right) \cdot 0.011111111111111112\right)
\end{array}
Initial program 51.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.5
Applied rewrites55.5%
Taylor expanded in a around 0
Applied rewrites34.5%
Applied rewrites34.5%
Applied rewrites38.3%
herbie shell --seed 2024317
(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)))))