remquo(3) | Library Functions Manual | remquo(3) |

# NAME

remquo, remquof, remquol - remainder and part of quotient

# LIBRARY

Math library (*libm*, *-lm*)

# SYNOPSIS

#include <math.h>

double remquo(doublex, doubley, int *quo);float remquof(floatx, floaty, int *quo);long double remquol(long doublex, long doubley, int *quo);

**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*.

# ATTRIBUTES

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

Interface |
Attribute |
Value |

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

# STANDARDS

C11, POSIX.1-2008.

# HISTORY

glibc 2.1. C99, POSIX.1-2001.

# SEE ALSO

2024-05-02 | Linux man-pages 6.9.1 |