1b6b35a1bSSascha Wildner.\" Copyright (c) 2003 Mike Barcroft <mike@FreeBSD.org> 2b6b35a1bSSascha Wildner.\" All rights reserved. 3b6b35a1bSSascha Wildner.\" 4b6b35a1bSSascha Wildner.\" Redistribution and use in source and binary forms, with or without 5b6b35a1bSSascha Wildner.\" modification, are permitted provided that the following conditions 6b6b35a1bSSascha Wildner.\" are met: 7b6b35a1bSSascha Wildner.\" 1. Redistributions of source code must retain the above copyright 8b6b35a1bSSascha Wildner.\" notice, this list of conditions and the following disclaimer. 9b6b35a1bSSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright 10b6b35a1bSSascha Wildner.\" notice, this list of conditions and the following disclaimer in the 11b6b35a1bSSascha Wildner.\" documentation and/or other materials provided with the distribution. 12b6b35a1bSSascha Wildner.\" 13b6b35a1bSSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14b6b35a1bSSascha Wildner.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15b6b35a1bSSascha Wildner.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16b6b35a1bSSascha Wildner.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17b6b35a1bSSascha Wildner.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18b6b35a1bSSascha Wildner.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19b6b35a1bSSascha Wildner.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20b6b35a1bSSascha Wildner.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21b6b35a1bSSascha Wildner.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22b6b35a1bSSascha Wildner.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23b6b35a1bSSascha Wildner.\" SUCH DAMAGE. 24b6b35a1bSSascha Wildner.\" 25b6b35a1bSSascha Wildner.\" $FreeBSD: head/lib/libc/gen/fpclassify.3 140890 2005-01-27 05:46:17Z das $ 26b6b35a1bSSascha Wildner.\" 27*96d766c0SSascha Wildner.Dd March 28, 2020 28b6b35a1bSSascha Wildner.Dt FPCLASSIFY 3 29b6b35a1bSSascha Wildner.Os 30b6b35a1bSSascha Wildner.Sh NAME 31b6b35a1bSSascha Wildner.Nm fpclassify , isfinite , isinf , isnan , isnormal 32b6b35a1bSSascha Wildner.Nd "classify a floating-point number" 33b6b35a1bSSascha Wildner.Sh SYNOPSIS 34b6b35a1bSSascha Wildner.In math.h 35b6b35a1bSSascha Wildner.Ft int 36b6b35a1bSSascha Wildner.Fn fpclassify "real-floating x" 37b6b35a1bSSascha Wildner.Ft int 38b6b35a1bSSascha Wildner.Fn isfinite "real-floating x" 39b6b35a1bSSascha Wildner.Ft int 40b6b35a1bSSascha Wildner.Fn isinf "real-floating x" 41b6b35a1bSSascha Wildner.Ft int 42b6b35a1bSSascha Wildner.Fn isnan "real-floating x" 43b6b35a1bSSascha Wildner.Ft int 44b6b35a1bSSascha Wildner.Fn isnormal "real-floating x" 45b6b35a1bSSascha Wildner.Sh DESCRIPTION 46b6b35a1bSSascha WildnerThe 47b6b35a1bSSascha Wildner.Fn fpclassify 48b6b35a1bSSascha Wildnermacro takes an argument of 49b6b35a1bSSascha Wildner.Fa x 50b6b35a1bSSascha Wildnerand returns one of the following manifest constants. 51b6b35a1bSSascha Wildner.Bl -tag -width ".Dv FP_SUBNORMAL" 52b6b35a1bSSascha Wildner.It Dv FP_INFINITE 53b6b35a1bSSascha WildnerIndicates that 54b6b35a1bSSascha Wildner.Fa x 55b6b35a1bSSascha Wildneris an infinite number. 56b6b35a1bSSascha Wildner.It Dv FP_NAN 57b6b35a1bSSascha WildnerIndicates that 58b6b35a1bSSascha Wildner.Fa x 59b6b35a1bSSascha Wildneris not a number (NaN). 60b6b35a1bSSascha Wildner.It Dv FP_NORMAL 61b6b35a1bSSascha WildnerIndicates that 62b6b35a1bSSascha Wildner.Fa x 63b6b35a1bSSascha Wildneris a normalized number. 64b6b35a1bSSascha Wildner.It Dv FP_SUBNORMAL 65b6b35a1bSSascha WildnerIndicates that 66b6b35a1bSSascha Wildner.Fa x 67b6b35a1bSSascha Wildneris a denormalized number. 68b6b35a1bSSascha Wildner.It Dv FP_ZERO 69b6b35a1bSSascha WildnerIndicates that 70b6b35a1bSSascha Wildner.Fa x 71b6b35a1bSSascha Wildneris zero (0 or \-0). 72b6b35a1bSSascha Wildner.El 73b6b35a1bSSascha Wildner.Pp 74b6b35a1bSSascha WildnerThe 75b6b35a1bSSascha Wildner.Fn isfinite 76b6b35a1bSSascha Wildnermacro returns a non-zero value if and only if its argument has 77b6b35a1bSSascha Wildnera finite (zero, subnormal, or normal) value. 78b6b35a1bSSascha WildnerThe 79b6b35a1bSSascha Wildner.Fn isinf , 80b6b35a1bSSascha Wildner.Fn isnan , 81b6b35a1bSSascha Wildnerand 82b6b35a1bSSascha Wildner.Fn isnormal 83b6b35a1bSSascha Wildnermacros return non-zero if and only if 84b6b35a1bSSascha Wildner.Fa x 85b6b35a1bSSascha Wildneris an infinity, NaN, 86b6b35a1bSSascha Wildneror a non-zero normalized number, respectively. 87b6b35a1bSSascha Wildner.Pp 88b6b35a1bSSascha WildnerThe symbol 89b6b35a1bSSascha Wildner.Fn isnanf 90b6b35a1bSSascha Wildneris provided as an alias to 91b6b35a1bSSascha Wildner.Fn isnan 92b6b35a1bSSascha Wildnerfor compatibility, and its use is deprecated. 93b6b35a1bSSascha WildnerSimilarly, 94b6b35a1bSSascha Wildner.Fn finite 95b6b35a1bSSascha Wildnerand 96b6b35a1bSSascha Wildner.Fn finitef 97b6b35a1bSSascha Wildnerare deprecated versions of 98b6b35a1bSSascha Wildner.Fn isfinite . 99b6b35a1bSSascha Wildner.Sh SEE ALSO 100b6b35a1bSSascha Wildner.Xr isgreater 3 , 101b6b35a1bSSascha Wildner.Xr signbit 3 102b6b35a1bSSascha Wildner.Sh STANDARDS 103b6b35a1bSSascha WildnerThe 104b6b35a1bSSascha Wildner.Fn fpclassify , 105b6b35a1bSSascha Wildner.Fn isfinite , 106b6b35a1bSSascha Wildner.Fn isinf , 107b6b35a1bSSascha Wildner.Fn isnan , 108b6b35a1bSSascha Wildnerand 109b6b35a1bSSascha Wildner.Fn isnormal 110b6b35a1bSSascha Wildnermacros conform to 111b6b35a1bSSascha Wildner.St -isoC-99 . 112b6b35a1bSSascha Wildner.Sh HISTORY 113b6b35a1bSSascha WildnerThe 114b6b35a1bSSascha Wildner.Fn fpclassify , 115b6b35a1bSSascha Wildner.Fn isfinite , 116b6b35a1bSSascha Wildner.Fn isinf , 117b6b35a1bSSascha Wildner.Fn isnan , 118b6b35a1bSSascha Wildnerand 119b6b35a1bSSascha Wildner.Fn isnormal 120b6b35a1bSSascha Wildnermacros were added in 121b6b35a1bSSascha Wildner.Dx 1.3 . 122b6b35a1bSSascha Wildner.Bx 3 123b6b35a1bSSascha Wildnerintroduced 124b6b35a1bSSascha Wildner.Fn isinf 125b6b35a1bSSascha Wildnerand 126b6b35a1bSSascha Wildner.Fn isnan 127b6b35a1bSSascha Wildnerfunctions, which accepted 128b6b35a1bSSascha Wildner.Vt double 129b6b35a1bSSascha Wildnerarguments; these have been superseded by the macros 130b6b35a1bSSascha Wildnerdescribed above. 131