This work is based in part on code from NetBSD libm, libc and kernel. The library is partly public domain and partly BSD-style licensed.
127 lines
3.3 KiB
Groff
127 lines
3.3 KiB
Groff
.\" $NetBSD: nextafter.3,v 1.4 2011/09/18 05:33:14 jruoho Exp $
|
|
.\"
|
|
.\" Copyright (c) 2011 Jukka Ruohonen <jruohonen@iki.fi>
|
|
.\" All rights reserved.
|
|
.\"
|
|
.\" Redistribution and use in source and binary forms, with or without
|
|
.\" modification, are permitted provided that the following conditions
|
|
.\" are met:
|
|
.\" 1. Redistributions of source code must retain the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer.
|
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
|
.\" notice, this list of conditions and the following disclaimer in the
|
|
.\" documentation and/or other materials provided with the distribution.
|
|
.\"
|
|
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
|
|
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
|
|
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
.\" POSSIBILITY OF SUCH DAMAGE.
|
|
.\"
|
|
.Dd September 18, 2011
|
|
.Dt NEXTAFTER 3
|
|
.Os
|
|
.Sh NAME
|
|
.Nm nextafter ,
|
|
.Nm nextafterf ,
|
|
.Nm nextafterl ,
|
|
.Nm nexttoward
|
|
.\"
|
|
.\" XXX: Not yet implemented.
|
|
.\"
|
|
.\" .Nm nexttowardf ,
|
|
.\" .Nm nexttowardl
|
|
.\"
|
|
.Nd next representable floating-point number
|
|
.Sh LIBRARY
|
|
.Lb libm
|
|
.Sh SYNOPSIS
|
|
.In math.h
|
|
.Ft double
|
|
.Fn nextafter "double x" "double y"
|
|
.Ft float
|
|
.Fn nextafterf "float x" "float y"
|
|
.Ft long double
|
|
.Fn nextafterl "long double x" "long double y"
|
|
.Ft double
|
|
.Fn nexttoward "double x" "long double y"
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Fn nextafter ,
|
|
.Fn nextafterf ,
|
|
and
|
|
.Fn nextafterl
|
|
functions return the next machine representable number from
|
|
.Fa x
|
|
in direction of
|
|
.Fa y .
|
|
In other words, if
|
|
.Fa y
|
|
is less than
|
|
.Fa x ,
|
|
the functions return the largest representable floating-point number less than
|
|
.Fa x .
|
|
When
|
|
.Fa x
|
|
equals
|
|
.Fa y ,
|
|
the value of
|
|
.Fa y
|
|
is returned.
|
|
The three functions differ only in the type of the return value and
|
|
.Fa x .
|
|
.Pp
|
|
The
|
|
.Fn nexttoward
|
|
function is equivalent to the
|
|
.Fn nextafter
|
|
family of functions with two exceptions:
|
|
.Bl -enum -offset indent
|
|
.It
|
|
The second parameter has a type
|
|
.Vt long double .
|
|
.It
|
|
The return value is
|
|
.Fa y
|
|
converted to the type of the function, provided that
|
|
.Fa x
|
|
equals
|
|
.Fa y .
|
|
.El
|
|
.Sh RETURN VALUES
|
|
Upon successful completion, the described functions return
|
|
the next representable floating-point value as described above.
|
|
If
|
|
.Fa x
|
|
is finite but an overflow would occur,
|
|
a range error follows and the functions return
|
|
.Dv \*(Pm\*HHUGE_VAL ,
|
|
.Dv \*(Pm\*HHUGE_VALF ,
|
|
or
|
|
.Dv \*(Pm\*HHUGE_VALL
|
|
with the same sign as
|
|
.Fa x .
|
|
When either
|
|
.Fa x
|
|
or
|
|
.Fa y
|
|
is \*(Na, a \*(Na is returned.
|
|
When
|
|
.Fa x
|
|
is not
|
|
.Fa y
|
|
but the function value is subnormal, zero, or underflows,
|
|
a range error occurs, and either 0.0 or the correct function
|
|
value (if representable) is returned.
|
|
.Sh SEE ALSO
|
|
.Xr math 3
|
|
.Sh STANDARDS
|
|
The described functions conform to
|
|
.St -isoC-99 .
|