Other Alias

remquo, remquof## SYNOPSIS

**#include <math.h>**

**double remquo(double**

*x*

**, double**

*y*

**, int ***

*quo*

**);**

**float remquof(float**

*x*

**, float**

*y*

**, int ***

*quo*

**);**

**long double remquol(long double**

*x*

**, long double**

*y*

**, int ***

*quo*

**);**

Link with *-lm*.

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

**remquo**(),
**remquof**(),
**remquol**():

- _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L

## DESCRIPTION

These functions compute the remainder and part of the quotient upon division of*x*by

*y*. A few bits of the quotient are stored via the

*quo*pointer. The remainder is returned as the function result.

The value of the remainder is the same as that computed by the
**remainder**(3)
function.

The value stored via the
*quo*
pointer has the sign of
*x / y*
and agrees with the quotient in at least the low order 3 bits.

For example, *remquo(29.0, 3.0)* returns -1.0 and might store 2.
Note that the actual quotient might not fit in an integer.

## RETURN VALUE

On success, these functions return the same value as the analogous functions described in**remainder**(3).

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.

## ERRORS

See**math_error**(7) for information on how to determine whether an error has occurred when calling these functions.

The following errors can occur:

- Domain error:
*x*is an infinity or*y*is 0, and the other argument is not a NaN -
An invalid floating-point exception
(
**FE_INVALID**) is raised.

These functions do not set
*errno*.

## VERSIONS

These functions first appeared in glibc in version 2.1.## ATTRIBUTES

For an explanation of the terms used in this section, see**attributes**(7).

Interface | Attribute | Value |

remquo(),
remquof(),
remquol()
| Thread safety | MT-Safe |

## CONFORMING TO

C99, POSIX.1-2001, POSIX.1-2008.## COLOPHON

This page is part of release 4.06 of the Linux*man-pages*project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/.