cc [ flags ] -I/usr/local/include file(s) -L/usr/local/lib -lmcw [ ... ] #include <mathcw.h> extern float sinf (float x); extern double sin (double x); extern long double sinl (long double x); extern __float80 sinw (__float80 x); extern __float128 sinq (__float128 x); extern long_long_double sinll (long_long_double x); extern decimal_float sindf (decimal_float x); extern decimal_double sind (decimal_double x); extern decimal_long_double sindl (decimal_long_double x); extern decimal_long_long_double sindll (decimal_long_long_double x);
NB: Functions with prototypes containing underscores in type names may be available only with certain extended compilers.
Caution: Since the sine is a periodic function on [0,2pi], arguments outside that range must be reduced to that range by subtracting a suitable multiple of 2pi. For large arguments, significance loss from that subtraction can lower the accuracy of the reduced argument, possibly to the point where there are no significant digits left. Accuracy is therefore unavoidably reduced for arguments of large magnitude. However, argument reduction in this implementation is exact for nondecimal bases, so accuracy is maintained over the entire floating-point range. In decimal arithmetic, when no meaningful argument reduction is possible, a NaN is returned.