Initial program 51.8
\[\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\pi \cdot \frac{angle}{180}\right)\right) \cdot \cos \left(\pi \cdot \frac{angle}{180}\right)
\]
Simplified51.8
\[\leadsto \color{blue}{\sin \left(\pi \cdot \frac{angle}{180}\right) \cdot \left(\left(-2 \cdot \mathsf{fma}\left(a, a, b \cdot \left(-b\right)\right)\right) \cdot \cos \left(\pi \cdot \frac{angle}{180}\right)\right)}
\]
Proof
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 -2 (fma.f64 a a (*.f64 b (neg.f64 b)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 (Rewrite<= metadata-eval (neg.f64 2)) (fma.f64 a a (*.f64 b (neg.f64 b)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 (neg.f64 2) (fma.f64 a a (Rewrite<= distribute-rgt-neg-in_binary64 (neg.f64 (*.f64 b b))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 (neg.f64 2) (fma.f64 a a (neg.f64 (Rewrite<= unpow2_binary64 (pow.f64 b 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 1 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 (neg.f64 2) (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 a a) (pow.f64 b 2)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 1 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 (neg.f64 2) (-.f64 (Rewrite<= unpow2_binary64 (pow.f64 a 2)) (pow.f64 b 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (Rewrite<= distribute-lft-neg-in_binary64 (neg.f64 (*.f64 2 (-.f64 (pow.f64 a 2) (pow.f64 b 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (Rewrite<= distribute-rgt-neg-out_binary64 (*.f64 2 (neg.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 2 (Rewrite<= sub0-neg_binary64 (-.f64 0 (-.f64 (pow.f64 a 2) (pow.f64 b 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 2 (Rewrite<= associate-+l-_binary64 (+.f64 (-.f64 0 (pow.f64 a 2)) (pow.f64 b 2)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 2 (+.f64 (Rewrite<= neg-sub0_binary64 (neg.f64 (pow.f64 a 2))) (pow.f64 b 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 2 (Rewrite<= +-commutative_binary64 (+.f64 (pow.f64 b 2) (neg.f64 (pow.f64 a 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 2 (Rewrite<= sub-neg_binary64 (-.f64 (pow.f64 b 2) (pow.f64 a 2)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 9 points increase in error, 18 points decrease in error
(*.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))): 0 points increase in error, 0 points decrease in error
Applied egg-rr51.5
\[\leadsto \sin \left(\pi \cdot \frac{angle}{180}\right) \cdot \left(\left(-2 \cdot \color{blue}{\left({\left(\mathsf{hypot}\left(a, b\right)\right)}^{2} + \mathsf{fma}\left(-{\left({\left(\sqrt[3]{b}\right)}^{2}\right)}^{2}, {\left(\sqrt[3]{b}\right)}^{2}, b \cdot b\right)\right)}\right) \cdot \cos \left(\pi \cdot \frac{angle}{180}\right)\right)
\]
Initial program 19.1
\[\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\pi \cdot \frac{angle}{180}\right)\right) \cdot \cos \left(\pi \cdot \frac{angle}{180}\right)
\]
Simplified19.1
\[\leadsto \color{blue}{\sin \left(\pi \cdot \frac{angle}{180}\right) \cdot \left(\left(-2 \cdot \mathsf{fma}\left(a, a, b \cdot \left(-b\right)\right)\right) \cdot \cos \left(\pi \cdot \frac{angle}{180}\right)\right)}
\]
Proof
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 -2 (fma.f64 a a (*.f64 b (neg.f64 b)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 (Rewrite<= metadata-eval (neg.f64 2)) (fma.f64 a a (*.f64 b (neg.f64 b)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 (neg.f64 2) (fma.f64 a a (Rewrite<= distribute-rgt-neg-in_binary64 (neg.f64 (*.f64 b b))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 (neg.f64 2) (fma.f64 a a (neg.f64 (Rewrite<= unpow2_binary64 (pow.f64 b 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 1 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 (neg.f64 2) (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 a a) (pow.f64 b 2)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 1 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 (neg.f64 2) (-.f64 (Rewrite<= unpow2_binary64 (pow.f64 a 2)) (pow.f64 b 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (Rewrite<= distribute-lft-neg-in_binary64 (neg.f64 (*.f64 2 (-.f64 (pow.f64 a 2) (pow.f64 b 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (Rewrite<= distribute-rgt-neg-out_binary64 (*.f64 2 (neg.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 2 (Rewrite<= sub0-neg_binary64 (-.f64 0 (-.f64 (pow.f64 a 2) (pow.f64 b 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 2 (Rewrite<= associate-+l-_binary64 (+.f64 (-.f64 0 (pow.f64 a 2)) (pow.f64 b 2)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 2 (+.f64 (Rewrite<= neg-sub0_binary64 (neg.f64 (pow.f64 a 2))) (pow.f64 b 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 2 (Rewrite<= +-commutative_binary64 (+.f64 (pow.f64 b 2) (neg.f64 (pow.f64 a 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 2 (Rewrite<= sub-neg_binary64 (-.f64 (pow.f64 b 2) (pow.f64 a 2)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 9 points increase in error, 18 points decrease in error
(*.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))): 0 points increase in error, 0 points decrease in error
Taylor expanded in angle around 0 19.9
\[\leadsto \color{blue}{-0.011111111111111112 \cdot \left(angle \cdot \left(\left(-1 \cdot {b}^{2} + {a}^{2}\right) \cdot \pi\right)\right)}
\]
Simplified19.9
\[\leadsto \color{blue}{\pi \cdot \left(\left(a \cdot a - b \cdot b\right) \cdot \left(angle \cdot -0.011111111111111112\right)\right)}
\]
Proof
(*.f64 (PI.f64) (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 angle -1/90))): 0 points increase in error, 0 points decrease in error
(*.f64 (PI.f64) (*.f64 (-.f64 (Rewrite<= unpow2_binary64 (pow.f64 a 2)) (*.f64 b b)) (*.f64 angle -1/90))): 0 points increase in error, 0 points decrease in error
(*.f64 (PI.f64) (*.f64 (-.f64 (pow.f64 a 2) (Rewrite<= unpow2_binary64 (pow.f64 b 2))) (*.f64 angle -1/90))): 1 points increase in error, 0 points decrease in error
(*.f64 (PI.f64) (*.f64 (Rewrite<= unsub-neg_binary64 (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))) (*.f64 angle -1/90))): 0 points increase in error, 0 points decrease in error
(*.f64 (PI.f64) (*.f64 (+.f64 (pow.f64 a 2) (Rewrite<= mul-1-neg_binary64 (*.f64 -1 (pow.f64 b 2)))) (*.f64 angle -1/90))): 0 points increase in error, 0 points decrease in error
(*.f64 (PI.f64) (*.f64 (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))) (*.f64 angle -1/90))): 0 points increase in error, 0 points decrease in error
(*.f64 (PI.f64) (*.f64 (+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2)) (Rewrite<= *-commutative_binary64 (*.f64 -1/90 angle)))): 0 points increase in error, 0 points decrease in error
(*.f64 (PI.f64) (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 -1/90 angle) (+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))))): 0 points increase in error, 0 points decrease in error
(Rewrite<= *-commutative_binary64 (*.f64 (*.f64 (*.f64 -1/90 angle) (+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2))) (PI.f64))): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate-*r*_binary64 (*.f64 (*.f64 -1/90 angle) (*.f64 (+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2)) (PI.f64)))): 24 points increase in error, 21 points decrease in error
(Rewrite<= associate-*r*_binary64 (*.f64 -1/90 (*.f64 angle (*.f64 (+.f64 (*.f64 -1 (pow.f64 b 2)) (pow.f64 a 2)) (PI.f64))))): 26 points increase in error, 26 points decrease in error
Taylor expanded in a around 0 19.9
\[\leadsto \color{blue}{0.011111111111111112 \cdot \left(angle \cdot \left({b}^{2} \cdot \pi\right)\right) + -0.011111111111111112 \cdot \left(angle \cdot \left({a}^{2} \cdot \pi\right)\right)}
\]
Simplified2.1
\[\leadsto \color{blue}{\left(\left(-0.011111111111111112 \cdot \left(angle \cdot \pi\right)\right) \cdot \left(a - b\right)\right) \cdot \left(b + a\right)}
\]
Proof
(*.f64 (*.f64 (*.f64 -1/90 (*.f64 angle (PI.f64))) (-.f64 a b)) (+.f64 b a)): 0 points increase in error, 0 points decrease in error
(*.f64 (*.f64 (Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 -1/90 angle) (PI.f64))) (-.f64 a b)) (+.f64 b a)): 24 points increase in error, 19 points decrease in error
(*.f64 (*.f64 (*.f64 (*.f64 -1/90 angle) (PI.f64)) (-.f64 a b)) (Rewrite<= +-commutative_binary64 (+.f64 a b))): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate-*r*_binary64 (*.f64 (*.f64 (*.f64 -1/90 angle) (PI.f64)) (*.f64 (-.f64 a b) (+.f64 a b)))): 64 points increase in error, 37 points decrease in error
(*.f64 (*.f64 (*.f64 -1/90 angle) (PI.f64)) (Rewrite<= *-commutative_binary64 (*.f64 (+.f64 a b) (-.f64 a b)))): 0 points increase in error, 0 points decrease in error
(*.f64 (*.f64 (*.f64 -1/90 angle) (PI.f64)) (Rewrite<= difference-of-squares_binary64 (-.f64 (*.f64 a a) (*.f64 b b)))): 0 points increase in error, 0 points decrease in error
(*.f64 (*.f64 (*.f64 -1/90 angle) (PI.f64)) (-.f64 (Rewrite<= unpow2_binary64 (pow.f64 a 2)) (*.f64 b b))): 0 points increase in error, 0 points decrease in error
(*.f64 (*.f64 (*.f64 -1/90 angle) (PI.f64)) (-.f64 (pow.f64 a 2) (Rewrite<= unpow2_binary64 (pow.f64 b 2)))): 1 points increase in error, 0 points decrease in error
(Rewrite<= associate-*r*_binary64 (*.f64 (*.f64 -1/90 angle) (*.f64 (PI.f64) (-.f64 (pow.f64 a 2) (pow.f64 b 2))))): 26 points increase in error, 30 points decrease in error
(*.f64 (*.f64 -1/90 angle) (*.f64 (PI.f64) (Rewrite=> sub-neg_binary64 (+.f64 (pow.f64 a 2) (neg.f64 (pow.f64 b 2)))))): 0 points increase in error, 0 points decrease in error
(*.f64 (*.f64 -1/90 angle) (*.f64 (PI.f64) (+.f64 (pow.f64 a 2) (Rewrite<= mul-1-neg_binary64 (*.f64 -1 (pow.f64 b 2)))))): 0 points increase in error, 0 points decrease in error
(*.f64 (*.f64 -1/90 angle) (Rewrite=> distribute-rgt-in_binary64 (+.f64 (*.f64 (pow.f64 a 2) (PI.f64)) (*.f64 (*.f64 -1 (pow.f64 b 2)) (PI.f64))))): 0 points increase in error, 0 points decrease in error
(Rewrite=> distribute-lft-in_binary64 (+.f64 (*.f64 (*.f64 -1/90 angle) (*.f64 (pow.f64 a 2) (PI.f64))) (*.f64 (*.f64 -1/90 angle) (*.f64 (*.f64 -1 (pow.f64 b 2)) (PI.f64))))): 1 points increase in error, 0 points decrease in error
(+.f64 (Rewrite<= associate-*r*_binary64 (*.f64 -1/90 (*.f64 angle (*.f64 (pow.f64 a 2) (PI.f64))))) (*.f64 (*.f64 -1/90 angle) (*.f64 (*.f64 -1 (pow.f64 b 2)) (PI.f64)))): 13 points increase in error, 20 points decrease in error
(+.f64 (*.f64 -1/90 (*.f64 angle (*.f64 (pow.f64 a 2) (PI.f64)))) (*.f64 (*.f64 -1/90 angle) (*.f64 (Rewrite=> mul-1-neg_binary64 (neg.f64 (pow.f64 b 2))) (PI.f64)))): 0 points increase in error, 0 points decrease in error
(+.f64 (*.f64 -1/90 (*.f64 angle (*.f64 (pow.f64 a 2) (PI.f64)))) (*.f64 (*.f64 -1/90 angle) (Rewrite=> distribute-lft-neg-out_binary64 (neg.f64 (*.f64 (pow.f64 b 2) (PI.f64)))))): 0 points increase in error, 0 points decrease in error
(+.f64 (*.f64 -1/90 (*.f64 angle (*.f64 (pow.f64 a 2) (PI.f64)))) (Rewrite=> distribute-rgt-neg-out_binary64 (neg.f64 (*.f64 (*.f64 -1/90 angle) (*.f64 (pow.f64 b 2) (PI.f64)))))): 0 points increase in error, 0 points decrease in error
(Rewrite=> unsub-neg_binary64 (-.f64 (*.f64 -1/90 (*.f64 angle (*.f64 (pow.f64 a 2) (PI.f64)))) (*.f64 (*.f64 -1/90 angle) (*.f64 (pow.f64 b 2) (PI.f64))))): 0 points increase in error, 0 points decrease in error
(Rewrite=> cancel-sign-sub-inv_binary64 (+.f64 (*.f64 -1/90 (*.f64 angle (*.f64 (pow.f64 a 2) (PI.f64)))) (*.f64 (neg.f64 (*.f64 -1/90 angle)) (*.f64 (pow.f64 b 2) (PI.f64))))): 0 points increase in error, 0 points decrease in error
(+.f64 (*.f64 -1/90 (*.f64 angle (*.f64 (pow.f64 a 2) (PI.f64)))) (*.f64 (Rewrite=> distribute-lft-neg-in_binary64 (*.f64 (neg.f64 -1/90) angle)) (*.f64 (pow.f64 b 2) (PI.f64)))): 0 points increase in error, 0 points decrease in error
(+.f64 (*.f64 -1/90 (*.f64 angle (*.f64 (pow.f64 a 2) (PI.f64)))) (*.f64 (*.f64 (Rewrite=> metadata-eval 1/90) angle) (*.f64 (pow.f64 b 2) (PI.f64)))): 0 points increase in error, 0 points decrease in error
(+.f64 (*.f64 -1/90 (*.f64 angle (*.f64 (pow.f64 a 2) (PI.f64)))) (Rewrite<= associate-*r*_binary64 (*.f64 1/90 (*.f64 angle (*.f64 (pow.f64 b 2) (PI.f64)))))): 12 points increase in error, 7 points decrease in error
(Rewrite<= +-commutative_binary64 (+.f64 (*.f64 1/90 (*.f64 angle (*.f64 (pow.f64 b 2) (PI.f64)))) (*.f64 -1/90 (*.f64 angle (*.f64 (pow.f64 a 2) (PI.f64)))))): 0 points increase in error, 0 points decrease in error
Applied egg-rr2.1
\[\leadsto \color{blue}{\left(0 + \left(angle \cdot \pi\right) \cdot \left(-0.011111111111111112 \cdot \left(a - b\right)\right)\right)} \cdot \left(b + a\right)
\]
Taylor expanded in a around 0 2.1
\[\leadsto \left(0 + \color{blue}{\left(0.011111111111111112 \cdot \left(angle \cdot \left(b \cdot \pi\right)\right) + -0.011111111111111112 \cdot \left(angle \cdot \left(a \cdot \pi\right)\right)\right)}\right) \cdot \left(b + a\right)
\]
Simplified2.1
\[\leadsto \left(0 + \color{blue}{angle \cdot \left(\pi \cdot \mathsf{fma}\left(-0.011111111111111112, a, b \cdot 0.011111111111111112\right)\right)}\right) \cdot \left(b + a\right)
\]
Proof
(*.f64 angle (*.f64 (PI.f64) (fma.f64 -1/90 a (*.f64 b 1/90)))): 0 points increase in error, 0 points decrease in error
(*.f64 angle (*.f64 (PI.f64) (fma.f64 -1/90 a (Rewrite<= *-commutative_binary64 (*.f64 1/90 b))))): 0 points increase in error, 0 points decrease in error
(*.f64 angle (*.f64 (PI.f64) (Rewrite<= fma-def_binary64 (+.f64 (*.f64 -1/90 a) (*.f64 1/90 b))))): 2 points increase in error, 0 points decrease in error
(*.f64 angle (*.f64 (PI.f64) (Rewrite<= +-commutative_binary64 (+.f64 (*.f64 1/90 b) (*.f64 -1/90 a))))): 0 points increase in error, 0 points decrease in error
(*.f64 angle (Rewrite<= distribute-rgt-out_binary64 (+.f64 (*.f64 (*.f64 1/90 b) (PI.f64)) (*.f64 (*.f64 -1/90 a) (PI.f64))))): 0 points increase in error, 3 points decrease in error
(*.f64 angle (+.f64 (Rewrite<= associate-*r*_binary64 (*.f64 1/90 (*.f64 b (PI.f64)))) (*.f64 (*.f64 -1/90 a) (PI.f64)))): 19 points increase in error, 17 points decrease in error
(*.f64 angle (+.f64 (*.f64 1/90 (*.f64 b (PI.f64))) (Rewrite<= associate-*r*_binary64 (*.f64 -1/90 (*.f64 a (PI.f64)))))): 25 points increase in error, 25 points decrease in error
(Rewrite<= distribute-rgt-out_binary64 (+.f64 (*.f64 (*.f64 1/90 (*.f64 b (PI.f64))) angle) (*.f64 (*.f64 -1/90 (*.f64 a (PI.f64))) angle))): 1 points increase in error, 2 points decrease in error
(+.f64 (Rewrite<= associate-*r*_binary64 (*.f64 1/90 (*.f64 (*.f64 b (PI.f64)) angle))) (*.f64 (*.f64 -1/90 (*.f64 a (PI.f64))) angle)): 16 points increase in error, 18 points decrease in error
(+.f64 (*.f64 1/90 (Rewrite<= *-commutative_binary64 (*.f64 angle (*.f64 b (PI.f64))))) (*.f64 (*.f64 -1/90 (*.f64 a (PI.f64))) angle)): 0 points increase in error, 0 points decrease in error
(+.f64 (*.f64 1/90 (*.f64 angle (*.f64 b (PI.f64)))) (Rewrite<= associate-*r*_binary64 (*.f64 -1/90 (*.f64 (*.f64 a (PI.f64)) angle)))): 30 points increase in error, 30 points decrease in error
(+.f64 (*.f64 1/90 (*.f64 angle (*.f64 b (PI.f64)))) (*.f64 -1/90 (Rewrite<= *-commutative_binary64 (*.f64 angle (*.f64 a (PI.f64)))))): 0 points increase in error, 0 points decrease in error
Initial program 43.8
\[\left(\left(2 \cdot \left({b}^{2} - {a}^{2}\right)\right) \cdot \sin \left(\pi \cdot \frac{angle}{180}\right)\right) \cdot \cos \left(\pi \cdot \frac{angle}{180}\right)
\]
Simplified43.8
\[\leadsto \color{blue}{\sin \left(\pi \cdot \frac{angle}{180}\right) \cdot \left(\left(-2 \cdot \mathsf{fma}\left(a, a, b \cdot \left(-b\right)\right)\right) \cdot \cos \left(\pi \cdot \frac{angle}{180}\right)\right)}
\]
Proof
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 -2 (fma.f64 a a (*.f64 b (neg.f64 b)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 (Rewrite<= metadata-eval (neg.f64 2)) (fma.f64 a a (*.f64 b (neg.f64 b)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 (neg.f64 2) (fma.f64 a a (Rewrite<= distribute-rgt-neg-in_binary64 (neg.f64 (*.f64 b b))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 (neg.f64 2) (fma.f64 a a (neg.f64 (Rewrite<= unpow2_binary64 (pow.f64 b 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 1 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 (neg.f64 2) (Rewrite<= fma-neg_binary64 (-.f64 (*.f64 a a) (pow.f64 b 2)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 1 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 (neg.f64 2) (-.f64 (Rewrite<= unpow2_binary64 (pow.f64 a 2)) (pow.f64 b 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (Rewrite<= distribute-lft-neg-in_binary64 (neg.f64 (*.f64 2 (-.f64 (pow.f64 a 2) (pow.f64 b 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (Rewrite<= distribute-rgt-neg-out_binary64 (*.f64 2 (neg.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 2 (Rewrite<= sub0-neg_binary64 (-.f64 0 (-.f64 (pow.f64 a 2) (pow.f64 b 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 2 (Rewrite<= associate-+l-_binary64 (+.f64 (-.f64 0 (pow.f64 a 2)) (pow.f64 b 2)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 2 (+.f64 (Rewrite<= neg-sub0_binary64 (neg.f64 (pow.f64 a 2))) (pow.f64 b 2))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 2 (Rewrite<= +-commutative_binary64 (+.f64 (pow.f64 b 2) (neg.f64 (pow.f64 a 2))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 (*.f64 2 (Rewrite<= sub-neg_binary64 (-.f64 (pow.f64 b 2) (pow.f64 a 2)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 0 points increase in error, 0 points decrease in error
(Rewrite<= associate-*l*_binary64 (*.f64 (*.f64 (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))) (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2)))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180))))): 9 points increase in error, 18 points decrease in error
(*.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 2 (-.f64 (pow.f64 b 2) (pow.f64 a 2))) (sin.f64 (*.f64 (PI.f64) (/.f64 angle 180))))) (cos.f64 (*.f64 (PI.f64) (/.f64 angle 180)))): 0 points increase in error, 0 points decrease in error
Taylor expanded in angle around inf 44.0
\[\leadsto \sin \left(\pi \cdot \frac{angle}{180}\right) \cdot \left(\left(-2 \cdot \mathsf{fma}\left(a, a, b \cdot \left(-b\right)\right)\right) \cdot \color{blue}{\cos \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)}\right)
\]
Simplified43.8
\[\leadsto \sin \left(\pi \cdot \frac{angle}{180}\right) \cdot \left(\left(-2 \cdot \mathsf{fma}\left(a, a, b \cdot \left(-b\right)\right)\right) \cdot \color{blue}{\cos \left(\pi \cdot \left(0.005555555555555556 \cdot angle\right)\right)}\right)
\]
Proof
(cos.f64 (*.f64 (PI.f64) (*.f64 1/180 angle))): 0 points increase in error, 0 points decrease in error
(cos.f64 (Rewrite<= *-commutative_binary64 (*.f64 (*.f64 1/180 angle) (PI.f64)))): 0 points increase in error, 0 points decrease in error
(cos.f64 (Rewrite<= associate-*r*_binary64 (*.f64 1/180 (*.f64 angle (PI.f64))))): 23 points increase in error, 18 points decrease in error
Taylor expanded in angle around inf 44.0
\[\leadsto \color{blue}{\sin \left(0.005555555555555556 \cdot \left(angle \cdot \pi\right)\right)} \cdot \left(\left(-2 \cdot \mathsf{fma}\left(a, a, b \cdot \left(-b\right)\right)\right) \cdot \cos \left(\pi \cdot \left(0.005555555555555556 \cdot angle\right)\right)\right)
\]