Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ drem(3m) — 4D1 2.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

floor(3M)

math(3M)



     IEEE(3M)                                                 IEEE(3M)



     NAME
          copysign, drem, finite, logb, scalb - copysign, remainder,
          exponent manipulations

     SYNOPSIS
          #include <math.h>

          double copysign(x,y)
          double x,y;

          double drem(x,y)
          double x,y;

          int finite(x)
          double x;

          double logb(x)
          double x;

          double scalb(x,n)
          double x;
          int n;

     DESCRIPTION
          These functions are required for, or recommended by the IEEE
          standard 754 for floating-point arithmetic.

          Copysign(x,y) returns x with its sign changed to y's.

          Drem(x,y) returns the remainder r := x - n*y where n is the
          integer nearest the exact value of x/y; moreover if
          |n-x/y|=1/2 then n is even.  Consequently the remainder is
          computed exactly and |r| < |y|/2.  But drem(x,0) is
          exceptional; see below under DIAGNOSTICS.

          Finite(x) = 1 just when -infinity < x < +infinity,
                    = 0 otherwise (when |x| = infinity or x is NaN or
                                   x is the VAX's reserved operand.)

          Logb(x) returns x's exponent n, a signed integer converted
          to double-precision floating-point and so chosen that
          1 < |x|/2**n < 2 unless x = 0 or (only on machines that
          conform to IEEE 754) |x| = infinity or x lies between 0 and
          the Underflow Threshold; see below under "BUGS".

          Scalb(x,n) = x*(2**n) computed, for integer n, without first
          computing 2**n.

     DIAGNOSTICS
          IEEE 754 defines drem(x,0) and drem(infinity,y) to be
          invalid operations that produce a NaN.




     Page 1                                        (last mod. 8/20/87)





     IEEE(3M)                                                 IEEE(3M)



          IEEE 754 defines logb(+infinity) = +infinity and logb(0) =
          -infinity, requires the latter to signal Division-by-Zero.

     SEE ALSO
          floor(3M), math(3M).

     AUTHOR
          Kwok-Choi Ng

     ORIGIN
          4.3 BSD












































     Page 2                                        (last mod. 8/20/87)



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