## Name

remquo, remquof, remquol — remainder and part of quotient

## 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`)`;

Note
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
`remquo`(), `remquof`(), `remquol`():
`_ISOC99_SOURCE` || `_POSIX_C_SOURCE` >= 200112L
Note Link with `−lm`.

## 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 5.11 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/.

 Copyright 2002 Walter Harms (walter.harms(@)informatik.uni-oldenburg.de) and Copyright 2008, Linux Foundation, written by Michael Kerrisk      %%%LICENSE_START(GPL_NOVERSION_ONELINE) Distributed under GPL %%%LICENSE_END based on glibc infopages polished, aeb