On Nov 30 08:38:27, p...@delphinusdns.org wrote:
> In fact it's not just bc -l, but also when I calculate the following in C
> (linked with -lm)
> 
>                 C = (180.0 - A) - B;
>                 a = (double)(c / sin(C)) * sin(A);
>                 b = (double)(c / sin(C)) * sin(B);
> 
> Some may recognize this as parts of the Law of Sines.
> 
> pjp@neptune$ bc -l
> (9 / s(70)) * s(76)
> 6.58357679385302895866
> 
> When I do it with xcalc I get the correct 9.2931043.

Look at /usr/share/misc/bc.library to see what bc's s(x) really is.
Then look at lib/libm/ to see what sin() and friends really are.
(Yes, a Taylor polynom around zero; almost.)

It is known that the values of goniometric functions can get way off:
sin() at multiples of pi is nonzero, etc.

For extra laughs, read this article
https://randomascii.wordpress.com/2014/10/09/intel-underestimates-error-bounds-by-1-3-quintillion/
about how Intel tried to have fsin() in their instruction set.

        Jan

Reply via email to