Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

fmod(3)  —  Subroutines

NAME

fmod, drem, remainder − Compute the floating-point remainder

LIBRARY

Math Library (libm.a)

SYNOPSIS

#include <math.h>

double       fmod       (double x, double y);
float        fmodf      (float  x, float  y);
double       drem       (double x, double y);
float        dremf      (float  x, float  y);
double       remainder  (double x, double y);
float        remainderf (float  x, float  y);

STANDARDS

Interfaces documented on this reference page conform to industry standards as follows:

fmod():  XPG4

remainder():  XPG4−UNIX

Refer to the standards(5) reference page for more information about industry standards and associated tags. 

DESCRIPTION

The fmod() and fmodf() functions return the remainder  r = x − n∗y, where n = trunc(x/y).  The result has the same sign as x and magnitude less than the magnitude of y.  The remainder is computed exactly and |r| is less than or equal to |y|/2. 

The drem(), dremf(), remainder(), and remainderf() functions return the remainder r = x − n∗y, where n = rint(x/y).  Additionally, if |n − x/y|=1/2, then n is even.  The remainder is computed exactly and |r| is less than or equal to |y|/2. 

The drem() and remainder() functions are aliases of each other.  The dremf(), and remainderf() functions are aliases of each other. 

The following table describes function behavior in response to exceptional arguments:

Function Exceptional Argument Routine Behavior
fmod(),  fmodf() x = infinity Invalid argument
fmod(),  fmodf() y = 0 Invalid argument
drem(),  dremf() x = infinity Invalid argument
drem(),  dremf() y = 0 Invalid argument
remainder() x = infinity Invalid argument
remainderf() x = infinity Invalid argument
remainder() y = 0 Invalid argument
remainderf() y = 0 Invalid argument

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026