\frac{r \cdot \sin b}{\cos \left(a + b\right)}\frac{\frac{r \cdot \sin b}{\frac{\cos a \cdot \cos b - \sin b \cdot \sin a}{\sin b \cdot \sin a - \cos a \cdot \cos b} \cdot \frac{\sin b \cdot \sin a + \cos a \cdot \cos b}{\sin b \cdot \sin a + \cos a \cdot \cos b}}}{\sin b \cdot \sin a - \cos a \cdot \cos b}double f(double r, double a, double b) {
double r28671 = r;
double r28672 = b;
double r28673 = sin(r28672);
double r28674 = r28671 * r28673;
double r28675 = a;
double r28676 = r28675 + r28672;
double r28677 = cos(r28676);
double r28678 = r28674 / r28677;
return r28678;
}
double f(double r, double a, double b) {
double r28679 = r;
double r28680 = b;
double r28681 = sin(r28680);
double r28682 = r28679 * r28681;
double r28683 = a;
double r28684 = cos(r28683);
double r28685 = cos(r28680);
double r28686 = r28684 * r28685;
double r28687 = sin(r28683);
double r28688 = r28681 * r28687;
double r28689 = r28686 - r28688;
double r28690 = r28688 - r28686;
double r28691 = r28689 / r28690;
double r28692 = r28688 + r28686;
double r28693 = r28692 / r28692;
double r28694 = r28691 * r28693;
double r28695 = r28682 / r28694;
double r28696 = r28695 / r28690;
return r28696;
}



Bits error versus r



Bits error versus a



Bits error versus b
Results
Initial program 14.8
Simplified14.8
rmApplied cos-sum0.3
Simplified0.3
rmApplied flip--0.4
Simplified0.4
Simplified0.4
rmApplied flip-+0.4
Applied associate-/r/0.4
Applied associate-/r*0.4
Simplified0.3
Final simplification0.3
herbie shell --seed 2019195
(FPCore (r a b)
:name "r*sin(b)/cos(a+b), A"
(/ (* r (sin b)) (cos (+ a b))))