Man Pages

remainder(3) - phpMan remainder(3) - phpMan

Command: man perldoc info search(apropos)  

REMAINDER(3)               Linux Programmer's Manual              REMAINDER(3)

       drem, dremf, dreml, remainder, remainderf, remainderl - floating-point remainder function

       #include <math.h>

       /* The C99 versions */
       double remainder(double x, double y);
       float remainderf(float x, float y);
       long double remainderl(long double x, long double y);

       /* Obsolete synonyms */
       double drem(double x, double y);
       float dremf(float x, float y);
       long double dreml(long double x, long double y);

       Link with -lm.

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       remainder(): _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE >= 500 || _ISOC99_SOURCE; or cc -std=c99
       remainderf(), remainderl(): _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE; or
       cc -std=c99
       drem(), dremf(), dreml(): _SVID_SOURCE || _BSD_SOURCE

       The remainder() function computes the remainder of dividing x by y.  The return value is x-n*y, where n is  the
       value x / y, rounded to the nearest integer.  If the absolute value of x-n*y is 0.5, n is chosen to be even.

       These functions are unaffected by the current rounding mode (see fenv(3)).

       The drem() function does precisely the same thing.

       On  success,  these functions return the floating-point remainder, x-n*y.  If the return value is 0, it has the
       sign of x.

       If x or y is a NaN, a NaN is returned.

       If x is an infinity, and y is not a NaN, a domain error occurs, and a NaN is returned.

       If y is zero, and x is not a NaN, a domain error occurs, and a NaN is returned.

       See math_error(7) for information on how to determine whether an error has occurred when  calling  these  func-

       The following errors can occur:

       Domain error: x is an infinity and y is not a NaN
              An invalid floating-point exception (FE_INVALID) is raised.

              These functions do not set errno for this case.

       Domain error: y is zero
              errno is set to EDOM.  An invalid floating-point exception (FE_INVALID) is raised.

       The functions remainder(), remainderf(), and remainderl() are specified in C99 and POSIX.1-2001.

       The  function drem() is from 4.3BSD.  The float and long double variants dremf() and dreml() exist on some sys-
       tems, such as Tru64 and glibc2.  Avoid the use of these functions in favor of remainder() etc.

       The call

           remainder(nan(""), 0);

       returns a NaN, as expected, but wrongly causes a domain error; it should yield a silent NaN.

       The call "remainder(29.0, 3.0)" returns -1.

       div(3), fmod(3), remquo(3)

       This page is part of release 3.22 of the Linux man-pages project.  A description of the project,  and  informa-
       tion about reporting bugs, can be found at

                                  2009-02-04                      REMAINDER(3)