
(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 12 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)
(FPCore (a_m b angle)
:precision binary64
(let* ((t_0 (pow (cbrt (sqrt (PI))) 3.0))
(t_1 (cos (* (PI) (/ angle 180.0)))))
(if (<= a_m 2.8e+234)
(*
(*
(+ a_m b)
(* (- b a_m) (* (sin (* (* 0.005555555555555556 angle) (PI))) 2.0)))
t_1)
(*
(*
(+ a_m b)
(*
(- b a_m)
(* (sin (* (* 0.005555555555555556 angle) (* t_0 t_0))) 2.0)))
t_1))))\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := {\left(\sqrt[3]{\sqrt{\mathsf{PI}\left(\right)}}\right)}^{3}\\
t_1 := \cos \left(\mathsf{PI}\left(\right) \cdot \frac{angle}{180}\right)\\
\mathbf{if}\;a\_m \leq 2.8 \cdot 10^{+234}:\\
\;\;\;\;\left(\left(a\_m + b\right) \cdot \left(\left(b - a\_m\right) \cdot \left(\sin \left(\left(0.005555555555555556 \cdot angle\right) \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right)\right)\right) \cdot t\_1\\
\mathbf{else}:\\
\;\;\;\;\left(\left(a\_m + b\right) \cdot \left(\left(b - a\_m\right) \cdot \left(\sin \left(\left(0.005555555555555556 \cdot angle\right) \cdot \left(t\_0 \cdot t\_0\right)\right) \cdot 2\right)\right)\right) \cdot t\_1\\
\end{array}
\end{array}
if a < 2.7999999999999998e234Initial program 58.2%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6472.9
Applied rewrites73.2%
if 2.7999999999999998e234 < a Initial program 41.7%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6475.0
Applied rewrites66.7%
rem-cube-cbrtN/A
lift-PI.f64N/A
add-sqr-sqrtN/A
cbrt-prodN/A
unpow-prod-downN/A
lower-*.f64N/A
lower-pow.f64N/A
lower-cbrt.f64N/A
lift-PI.f64N/A
lower-sqrt.f64N/A
lower-pow.f64N/A
lower-cbrt.f64N/A
lift-PI.f64N/A
lower-sqrt.f6499.6
Applied rewrites99.6%
a_m = (fabs.f64 a)
(FPCore (a_m b angle)
:precision binary64
(let* ((t_0 (- (pow b 2.0) (pow a_m 2.0))) (t_1 (* (PI) angle)))
(if (<= t_0 -4e-183)
(* (* (PI) a_m) (* angle (* -0.011111111111111112 a_m)))
(if (<= t_0 INFINITY)
(* (fma 0.011111111111111112 t_1 0.0) (* b b))
(* (* -0.011111111111111112 a_m) (* a_m t_1))))))\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := {b}^{2} - {a\_m}^{2}\\
t_1 := \mathsf{PI}\left(\right) \cdot angle\\
\mathbf{if}\;t\_0 \leq -4 \cdot 10^{-183}:\\
\;\;\;\;\left(\mathsf{PI}\left(\right) \cdot a\_m\right) \cdot \left(angle \cdot \left(-0.011111111111111112 \cdot a\_m\right)\right)\\
\mathbf{elif}\;t\_0 \leq \infty:\\
\;\;\;\;\mathsf{fma}\left(0.011111111111111112, t\_1, 0\right) \cdot \left(b \cdot b\right)\\
\mathbf{else}:\\
\;\;\;\;\left(-0.011111111111111112 \cdot a\_m\right) \cdot \left(a\_m \cdot t\_1\right)\\
\end{array}
\end{array}
if (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) < -4.00000000000000002e-183Initial program 57.3%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6454.5
Applied rewrites54.5%
Taylor expanded in a around inf
Applied rewrites54.2%
Applied rewrites66.3%
Applied rewrites66.4%
if -4.00000000000000002e-183 < (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) < +inf.0Initial program 63.3%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6456.7
Applied rewrites56.7%
Taylor expanded in b around inf
Applied rewrites56.9%
if +inf.0 < (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) Initial program 0.0%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6473.8
Applied rewrites73.8%
Taylor expanded in a around inf
Applied rewrites73.8%
Applied rewrites80.0%
a_m = (fabs.f64 a)
(FPCore (a_m b angle)
:precision binary64
(let* ((t_0 (- (pow b 2.0) (pow a_m 2.0))))
(if (<= t_0 -4e-183)
(* (* (PI) a_m) (* angle (* -0.011111111111111112 a_m)))
(if (<= t_0 INFINITY)
(* (* (* (PI) (* b b)) angle) 0.011111111111111112)
(* (* -0.011111111111111112 a_m) (* a_m (* (PI) angle)))))))\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
t_0 := {b}^{2} - {a\_m}^{2}\\
\mathbf{if}\;t\_0 \leq -4 \cdot 10^{-183}:\\
\;\;\;\;\left(\mathsf{PI}\left(\right) \cdot a\_m\right) \cdot \left(angle \cdot \left(-0.011111111111111112 \cdot a\_m\right)\right)\\
\mathbf{elif}\;t\_0 \leq \infty:\\
\;\;\;\;\left(\left(\mathsf{PI}\left(\right) \cdot \left(b \cdot b\right)\right) \cdot angle\right) \cdot 0.011111111111111112\\
\mathbf{else}:\\
\;\;\;\;\left(-0.011111111111111112 \cdot a\_m\right) \cdot \left(a\_m \cdot \left(\mathsf{PI}\left(\right) \cdot angle\right)\right)\\
\end{array}
\end{array}
if (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) < -4.00000000000000002e-183Initial program 57.3%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6454.5
Applied rewrites54.5%
Taylor expanded in a around inf
Applied rewrites54.2%
Applied rewrites66.3%
Applied rewrites66.4%
if -4.00000000000000002e-183 < (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) < +inf.0Initial program 63.3%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6456.7
Applied rewrites56.7%
Taylor expanded in a around 0
Applied rewrites56.9%
if +inf.0 < (-.f64 (pow.f64 b #s(literal 2 binary64)) (pow.f64 a #s(literal 2 binary64))) Initial program 0.0%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6473.8
Applied rewrites73.8%
Taylor expanded in a around inf
Applied rewrites73.8%
Applied rewrites80.0%
a_m = (fabs.f64 a)
(FPCore (a_m b angle)
:precision binary64
(if (<= a_m 9e+217)
(*
(*
(+ a_m b)
(* (- b a_m) (* (sin (* (* 0.005555555555555556 angle) (PI))) 2.0)))
(cos (* (PI) (/ angle 180.0))))
(* (* (PI) a_m) (* angle (* -0.011111111111111112 a_m)))))\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;a\_m \leq 9 \cdot 10^{+217}:\\
\;\;\;\;\left(\left(a\_m + b\right) \cdot \left(\left(b - a\_m\right) \cdot \left(\sin \left(\left(0.005555555555555556 \cdot angle\right) \cdot \mathsf{PI}\left(\right)\right) \cdot 2\right)\right)\right) \cdot \cos \left(\mathsf{PI}\left(\right) \cdot \frac{angle}{180}\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\mathsf{PI}\left(\right) \cdot a\_m\right) \cdot \left(angle \cdot \left(-0.011111111111111112 \cdot a\_m\right)\right)\\
\end{array}
\end{array}
if a < 8.99999999999999976e217Initial program 58.0%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6472.8
Applied rewrites73.1%
if 8.99999999999999976e217 < a Initial program 46.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--.f6469.7
Applied rewrites69.7%
Taylor expanded in a around inf
Applied rewrites69.7%
Applied rewrites76.9%
Applied rewrites76.9%
a_m = (fabs.f64 a)
(FPCore (a_m b angle)
:precision binary64
(if (<= a_m 4.5e+214)
(*
(+ b a_m)
(*
(* (sin (* (PI) (* angle 0.005555555555555556))) (- b a_m))
(* (cos (* -0.005555555555555556 (* (PI) angle))) 2.0)))
(* (* (PI) a_m) (* angle (* -0.011111111111111112 a_m)))))\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;a\_m \leq 4.5 \cdot 10^{+214}:\\
\;\;\;\;\left(b + a\_m\right) \cdot \left(\left(\sin \left(\mathsf{PI}\left(\right) \cdot \left(angle \cdot 0.005555555555555556\right)\right) \cdot \left(b - a\_m\right)\right) \cdot \left(\cos \left(-0.005555555555555556 \cdot \left(\mathsf{PI}\left(\right) \cdot angle\right)\right) \cdot 2\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\mathsf{PI}\left(\right) \cdot a\_m\right) \cdot \left(angle \cdot \left(-0.011111111111111112 \cdot a\_m\right)\right)\\
\end{array}
\end{array}
if a < 4.49999999999999968e214Initial program 58.0%
lift-*.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
lift-pow.f64N/A
unpow2N/A
lift-pow.f64N/A
unpow2N/A
difference-of-squaresN/A
associate-*l*N/A
lower-*.f64N/A
+-commutativeN/A
lower-+.f64N/A
*-commutativeN/A
lower-*.f64N/A
lower--.f64N/A
lower-*.f6472.8
Applied rewrites73.1%
Applied rewrites72.0%
if 4.49999999999999968e214 < a Initial program 46.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--.f6469.7
Applied rewrites69.7%
Taylor expanded in a around inf
Applied rewrites69.7%
Applied rewrites76.9%
Applied rewrites76.9%
a_m = (fabs.f64 a) (FPCore (a_m b angle) :precision binary64 (if (<= (/ angle 180.0) 5e+213) (* (+ a_m b) (* (- b a_m) (sin (* (* angle (PI)) 0.011111111111111112)))) (* (* angle (* 0.011111111111111112 (PI))) (* (+ b a_m) (- b a_m)))))
\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;\frac{angle}{180} \leq 5 \cdot 10^{+213}:\\
\;\;\;\;\left(a\_m + b\right) \cdot \left(\left(b - a\_m\right) \cdot \sin \left(\left(angle \cdot \mathsf{PI}\left(\right)\right) \cdot 0.011111111111111112\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(angle \cdot \left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left(\left(b + a\_m\right) \cdot \left(b - a\_m\right)\right)\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 4.9999999999999998e213Initial program 58.7%
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 rewrites74.8%
if 4.9999999999999998e213 < (/.f64 angle #s(literal 180 binary64)) Initial program 37.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--.f6450.5
Applied rewrites50.5%
a_m = (fabs.f64 a) (FPCore (a_m b angle) :precision binary64 (if (<= (/ angle 180.0) 5e-67) (* (- b a_m) (* (* 0.011111111111111112 angle) (* (PI) (+ b a_m)))) (* (sin (* (* 0.011111111111111112 (PI)) angle)) (* (+ b a_m) (- b a_m)))))
\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;\frac{angle}{180} \leq 5 \cdot 10^{-67}:\\
\;\;\;\;\left(b - a\_m\right) \cdot \left(\left(0.011111111111111112 \cdot angle\right) \cdot \left(\mathsf{PI}\left(\right) \cdot \left(b + a\_m\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\sin \left(\left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\right) \cdot \left(\left(b + a\_m\right) \cdot \left(b - a\_m\right)\right)\\
\end{array}
\end{array}
if (/.f64 angle #s(literal 180 binary64)) < 4.9999999999999999e-67Initial program 60.3%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6461.3
Applied rewrites61.3%
Applied rewrites76.9%
if 4.9999999999999999e-67 < (/.f64 angle #s(literal 180 binary64)) Initial program 51.5%
lift-*.f64N/A
lift-*.f64N/A
associate-*l*N/A
lift-*.f64N/A
*-commutativeN/A
associate-*l*N/A
lift--.f64N/A
flip--N/A
associate-*l/N/A
lower-/.f64N/A
Applied rewrites10.1%
lift-/.f64N/A
lift-*.f64N/A
*-commutativeN/A
associate-/l*N/A
lift--.f64N/A
lift-pow.f64N/A
metadata-evalN/A
pow-powN/A
pow2N/A
lift-*.f64N/A
pow2N/A
lift-pow.f64N/A
metadata-evalN/A
pow-sqrN/A
pow2N/A
pow2N/A
lift-fma.f64N/A
+-commutativeN/A
flip--N/A
Applied rewrites52.4%
a_m = (fabs.f64 a) (FPCore (a_m b angle) :precision binary64 (if (<= a_m 1.05e+153) (* (* (* 0.011111111111111112 (PI)) (* (+ b a_m) (- b a_m))) angle) (* (* (PI) a_m) (* angle (* -0.011111111111111112 a_m)))))
\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;a\_m \leq 1.05 \cdot 10^{+153}:\\
\;\;\;\;\left(\left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot \left(\left(b + a\_m\right) \cdot \left(b - a\_m\right)\right)\right) \cdot angle\\
\mathbf{else}:\\
\;\;\;\;\left(\mathsf{PI}\left(\right) \cdot a\_m\right) \cdot \left(angle \cdot \left(-0.011111111111111112 \cdot a\_m\right)\right)\\
\end{array}
\end{array}
if a < 1.05000000000000008e153Initial program 59.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--.f6457.5
Applied rewrites57.5%
Applied rewrites57.9%
if 1.05000000000000008e153 < a Initial program 34.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--.f6451.2
Applied rewrites51.2%
Taylor expanded in a around inf
Applied rewrites55.4%
Applied rewrites74.8%
Applied rewrites74.9%
a_m = (fabs.f64 a) (FPCore (a_m b angle) :precision binary64 (if (<= a_m 1.05e+153) (* (* angle (* 0.011111111111111112 (PI))) (* (+ b a_m) (- b a_m))) (* (* (PI) a_m) (* angle (* -0.011111111111111112 a_m)))))
\begin{array}{l}
a_m = \left|a\right|
\\
\begin{array}{l}
\mathbf{if}\;a\_m \leq 1.05 \cdot 10^{+153}:\\
\;\;\;\;\left(angle \cdot \left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right)\right) \cdot \left(\left(b + a\_m\right) \cdot \left(b - a\_m\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(\mathsf{PI}\left(\right) \cdot a\_m\right) \cdot \left(angle \cdot \left(-0.011111111111111112 \cdot a\_m\right)\right)\\
\end{array}
\end{array}
if a < 1.05000000000000008e153Initial program 59.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--.f6457.5
Applied rewrites57.5%
if 1.05000000000000008e153 < a Initial program 34.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--.f6451.2
Applied rewrites51.2%
Taylor expanded in a around inf
Applied rewrites55.4%
Applied rewrites74.8%
Applied rewrites74.9%
a_m = (fabs.f64 a) (FPCore (a_m b angle) :precision binary64 (* (+ b a_m) (* (- b a_m) (* (* 0.011111111111111112 (PI)) angle))))
\begin{array}{l}
a_m = \left|a\right|
\\
\left(b + a\_m\right) \cdot \left(\left(b - a\_m\right) \cdot \left(\left(0.011111111111111112 \cdot \mathsf{PI}\left(\right)\right) \cdot angle\right)\right)
\end{array}
Initial program 57.4%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6456.9
Applied rewrites56.9%
Applied rewrites67.0%
a_m = (fabs.f64 a) (FPCore (a_m b angle) :precision binary64 (* (* (PI) a_m) (* angle (* -0.011111111111111112 a_m))))
\begin{array}{l}
a_m = \left|a\right|
\\
\left(\mathsf{PI}\left(\right) \cdot a\_m\right) \cdot \left(angle \cdot \left(-0.011111111111111112 \cdot a\_m\right)\right)
\end{array}
Initial program 57.4%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6456.9
Applied rewrites56.9%
Taylor expanded in a around inf
Applied rewrites33.5%
Applied rewrites37.5%
Applied rewrites37.6%
a_m = (fabs.f64 a) (FPCore (a_m b angle) :precision binary64 (* (* -0.011111111111111112 a_m) (* a_m (* (PI) angle))))
\begin{array}{l}
a_m = \left|a\right|
\\
\left(-0.011111111111111112 \cdot a\_m\right) \cdot \left(a\_m \cdot \left(\mathsf{PI}\left(\right) \cdot angle\right)\right)
\end{array}
Initial program 57.4%
Taylor expanded in angle around 0
*-commutativeN/A
associate-*r*N/A
*-commutativeN/A
associate-*r*N/A
associate-*r*N/A
lower-*.f64N/A
lower-*.f64N/A
lower-*.f64N/A
lower-PI.f64N/A
unpow2N/A
unpow2N/A
difference-of-squaresN/A
lower-*.f64N/A
lower-+.f64N/A
lower--.f6456.9
Applied rewrites56.9%
Taylor expanded in a around inf
Applied rewrites33.5%
Applied rewrites37.5%
herbie shell --seed 2024318
(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)))))