* Turn isinf(3) and isnan(3) into C99-style macros.
* Make it possible for ports to override these (i.e., VAX). * Remove isnanl(), which was internal to libc only.
This commit is contained in:
parent
bb362b40bf
commit
8e54f10bf7
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: math.h,v 1.33 2004/03/04 00:17:44 kleink Exp $ */
|
/* $NetBSD: math.h,v 1.34 2004/03/04 23:42:38 kleink Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ====================================================
|
* ====================================================
|
||||||
|
@ -209,10 +209,6 @@ double erf __P((double));
|
||||||
double erfc __P((double));
|
double erfc __P((double));
|
||||||
double gamma __P((double));
|
double gamma __P((double));
|
||||||
double hypot __P((double, double));
|
double hypot __P((double, double));
|
||||||
int isnan __P((double));
|
|
||||||
#if defined(_LIBC)
|
|
||||||
int isnanl __P((long double));
|
|
||||||
#endif
|
|
||||||
int finite __P((double));
|
int finite __P((double));
|
||||||
double j0 __P((double));
|
double j0 __P((double));
|
||||||
double j1 __P((double));
|
double j1 __P((double));
|
||||||
|
@ -261,6 +257,26 @@ double scalb __P((double, double));
|
||||||
|
|
||||||
#endif /* !_ANSI_SOURCE && ... */
|
#endif /* !_ANSI_SOURCE && ... */
|
||||||
|
|
||||||
|
#if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) || \
|
||||||
|
!defined(_XOPEN_SOURCE) || \
|
||||||
|
((__STDC_VERSION__ - 0) >= 199901L) || \
|
||||||
|
((_POSIX_C_SOURCE - 0) >= 200112L) || \
|
||||||
|
defined(_ISOC99_SOURCE) || defined(_NETBSD_SOURCE)
|
||||||
|
/* 7.12.3.3 int isinf(real-floating x) */
|
||||||
|
#ifdef __isinf
|
||||||
|
#define isinf(__x) __isinf(__x)
|
||||||
|
#else
|
||||||
|
#define isinf(__x) __fpmacro_unary_floating(isinf, __x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* 7.12.3.4 int isnan(real-floating x) */
|
||||||
|
#ifdef __isnan
|
||||||
|
#define isnan(__x) __isnan(__x)
|
||||||
|
#else
|
||||||
|
#define isnan(__x) __fpmacro_unary_floating(isnan, __x)
|
||||||
|
#endif
|
||||||
|
#endif /* !_ANSI_SOURCE && ... */
|
||||||
|
|
||||||
#if defined(_NETBSD_SOURCE)
|
#if defined(_NETBSD_SOURCE)
|
||||||
#ifndef __cplusplus
|
#ifndef __cplusplus
|
||||||
int matherr __P((struct exception *));
|
int matherr __P((struct exception *));
|
||||||
|
@ -298,10 +314,6 @@ double lgamma_r __P((double, int *));
|
||||||
|
|
||||||
|
|
||||||
#if defined(_NETBSD_SOURCE)
|
#if defined(_NETBSD_SOURCE)
|
||||||
int isinf __P((double));
|
|
||||||
#if defined(_LIBC)
|
|
||||||
int isinfl __P((long double));
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* float versions of ANSI/POSIX functions */
|
/* float versions of ANSI/POSIX functions */
|
||||||
float acosf __P((float));
|
float acosf __P((float));
|
||||||
|
@ -397,12 +409,18 @@ int __fpclassifyf __P((float));
|
||||||
int __fpclassifyd __P((double));
|
int __fpclassifyd __P((double));
|
||||||
int __isfinitef __P((float));
|
int __isfinitef __P((float));
|
||||||
int __isfinited __P((double));
|
int __isfinited __P((double));
|
||||||
|
int __isinff __P((float));
|
||||||
|
int __isinfd __P((double));
|
||||||
|
int __isnanf __P((float));
|
||||||
|
int __isnand __P((double));
|
||||||
int __signbitf __P((float));
|
int __signbitf __P((float));
|
||||||
int __signbitd __P((double));
|
int __signbitd __P((double));
|
||||||
|
|
||||||
#ifdef __HAVE_LONG_DOUBLE
|
#ifdef __HAVE_LONG_DOUBLE
|
||||||
int __fpclassifyl __P((long double));
|
int __fpclassifyl __P((long double));
|
||||||
int __isfinitel __P((long double));
|
int __isfinitel __P((long double));
|
||||||
|
int __isinfl __P((long double));
|
||||||
|
int __isnanl __P((long double));
|
||||||
int __signbitl __P((long double));
|
int __signbitl __P((long double));
|
||||||
#endif
|
#endif
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $NetBSD: Makefile.inc,v 1.17 2004/03/01 19:26:29 drochner Exp $
|
# $NetBSD: Makefile.inc,v 1.18 2004/03/04 23:42:38 kleink Exp $
|
||||||
|
|
||||||
SRCS+= fabs.S
|
SRCS+= fabs.S
|
||||||
|
|
||||||
|
@ -6,9 +6,11 @@ SRCS+= fabs.S
|
||||||
SRCS+= infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c
|
SRCS+= infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c
|
||||||
SRCS+= nanf_ieee754.c
|
SRCS+= nanf_ieee754.c
|
||||||
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
||||||
SRCS+= frexp_ieee754.c isinf_ieee754.c isinfl_dbl_ieee754.c isnan_ieee754.c
|
SRCS+= frexp_ieee754.c
|
||||||
|
SRCS+= isinff_ieee754.c isinfd_ieee754.c
|
||||||
|
SRCS+= isnanf_ieee754.c isnand_ieee754.c
|
||||||
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
||||||
SRCS+= isnanl_dbl_ieee754.c ldexp_ieee754.c modf_ieee754.c
|
SRCS+= ldexp_ieee754.c modf_ieee754.c
|
||||||
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
||||||
|
|
||||||
SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \
|
SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $NetBSD: Makefile.inc,v 1.11 2004/01/15 19:43:45 kleink Exp $
|
# $NetBSD: Makefile.inc,v 1.12 2004/03/04 23:42:38 kleink Exp $
|
||||||
|
|
||||||
SRCS+= alloca.S byte_swap_2.S byte_swap_4.S bswap64.c divsi3.S \
|
SRCS+= alloca.S byte_swap_2.S byte_swap_4.S bswap64.c divsi3.S \
|
||||||
fabs.c flt_rounds.c
|
fabs.c flt_rounds.c
|
||||||
|
@ -8,8 +8,9 @@ SRCS+= infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c
|
||||||
SRCS+= nanf_ieee754.c
|
SRCS+= nanf_ieee754.c
|
||||||
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
||||||
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
||||||
SRCS+= isinfl_dbl_ieee754.c isnanl_dbl_ieee754.c
|
SRCS+= isinff_ieee754.c isinfd_ieee754.c
|
||||||
SRCS+= frexp_ieee754.c isinf_ieee754.c isnan_ieee754.c
|
SRCS+= isnanf_ieee754.c isnand_ieee754.c
|
||||||
|
SRCS+= frexp_ieee754.c
|
||||||
SRCS+= ldexp_ieee754.c modf_ieee754.c
|
SRCS+= ldexp_ieee754.c modf_ieee754.c
|
||||||
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $NetBSD: Makefile.inc,v 1.9 2004/01/15 19:43:45 kleink Exp $
|
# $NetBSD: Makefile.inc,v 1.10 2004/03/04 23:42:38 kleink Exp $
|
||||||
|
|
||||||
SRCS+= bswap16.c bswap32.c bswap64.c __sigsetjmp14.S __setjmp14.S _setjmp.S
|
SRCS+= bswap16.c bswap32.c bswap64.c __sigsetjmp14.S __setjmp14.S _setjmp.S
|
||||||
|
|
||||||
|
@ -8,8 +8,8 @@ SRCS+= nanf_ieee754.c
|
||||||
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
||||||
SRCS+= frexp_ieee754.c ldexp_ieee754.c
|
SRCS+= frexp_ieee754.c ldexp_ieee754.c
|
||||||
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
||||||
SRCS+= isinf_ieee754.c isinfl_dbl_ieee754.c
|
SRCS+= isinff_ieee754.c isinfd_ieee754.c
|
||||||
SRCS+= isnan_ieee754.c isnanl_dbl_ieee754.c
|
SRCS+= isnanf_ieee754.c isnand_ieee754.c
|
||||||
SRCS+= modf_ieee754.c
|
SRCS+= modf_ieee754.c
|
||||||
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $NetBSD: Makefile.inc,v 1.19 2004/01/15 19:43:45 kleink Exp $
|
# $NetBSD: Makefile.inc,v 1.20 2004/03/04 23:42:38 kleink Exp $
|
||||||
|
|
||||||
# objects built from assembler sources (need lint stubs)
|
# objects built from assembler sources (need lint stubs)
|
||||||
SRCS+= alloca.S byte_swap_2.S byte_swap_4.S fabs.S modf.S \
|
SRCS+= alloca.S byte_swap_2.S byte_swap_4.S fabs.S modf.S \
|
||||||
|
@ -18,7 +18,9 @@ SRCS+= bswap64.c ldexp.c _lwp.c makecontext.c
|
||||||
SRCS+= infinityf_ieee754.c infinity_ieee754.c
|
SRCS+= infinityf_ieee754.c infinity_ieee754.c
|
||||||
SRCS+= nanf_ieee754.c
|
SRCS+= nanf_ieee754.c
|
||||||
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
||||||
SRCS+= frexp_ieee754.c isinf_ieee754.c isnan_ieee754.c
|
SRCS+= frexp_ieee754.c
|
||||||
|
SRCS+= isinff_ieee754.c isinfd_ieee754.c
|
||||||
|
SRCS+= isnanf_ieee754.c isnand_ieee754.c
|
||||||
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
||||||
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: isinfl.c,v 1.4 2003/10/27 01:11:46 kleink Exp $ */
|
/* $NetBSD: isinfl.c,v 1.5 2004/03/04 23:42:38 kleink Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1992, 1993
|
* Copyright (c) 1992, 1993
|
||||||
|
@ -40,27 +40,24 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: isinfl.c,v 1.4 2003/10/27 01:11:46 kleink Exp $");
|
__RCSID("$NetBSD: isinfl.c,v 1.5 2004/03/04 23:42:38 kleink Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* LIBC_SCCS and not lint */
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
#include "namespace.h"
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <machine/ieee.h>
|
#include <machine/ieee.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#if 0 /* XXX Currently limited to internal use. */
|
/*
|
||||||
#ifdef __weak_alias
|
* 7.12.3.3 isinf - test for infinity
|
||||||
__weak_alias(isinfl,_isinfl)
|
* IEEE 754 compatible 80-bit extended-precision Intel 386 version
|
||||||
#endif
|
*/
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
int
|
||||||
isinfl(long double ld)
|
__isinfl(long double x)
|
||||||
{
|
{
|
||||||
union ieee_ext_u u;
|
union ieee_ext_u u;
|
||||||
|
|
||||||
u.extu_ld = ld;
|
u.extu_ld = x;
|
||||||
|
|
||||||
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
|
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
|
||||||
(u.extu_ext.ext_int == 1 &&
|
(u.extu_ext.ext_int == 1 &&
|
||||||
u.extu_ext.ext_frach == 0 && u.extu_ext.ext_fracl == 0));
|
u.extu_ext.ext_frach == 0 && u.extu_ext.ext_fracl == 0));
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: isnanl.c,v 1.4 2003/10/27 01:11:46 kleink Exp $ */
|
/* $NetBSD: isnanl.c,v 1.5 2004/03/04 23:42:38 kleink Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1992, 1993
|
* Copyright (c) 1992, 1993
|
||||||
|
@ -40,27 +40,24 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: isnanl.c,v 1.4 2003/10/27 01:11:46 kleink Exp $");
|
__RCSID("$NetBSD: isnanl.c,v 1.5 2004/03/04 23:42:38 kleink Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* LIBC_SCCS and not lint */
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
#include "namespace.h"
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <machine/ieee.h>
|
#include <machine/ieee.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#if 0 /* XXX Currently limited to internal use. */
|
/*
|
||||||
#ifdef __weak_alias
|
* 7.12.3.4 isnan - test for a NaN
|
||||||
__weak_alias(isnanl,_isnanl)
|
* IEEE 754 compatible 80-bit extended-precision Intel 386 version
|
||||||
#endif
|
*/
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
int
|
||||||
isnanl(long double ld)
|
__isnanl(long double x)
|
||||||
{
|
{
|
||||||
union ieee_ext_u u;
|
union ieee_ext_u u;
|
||||||
|
|
||||||
u.extu_ld = ld;
|
u.extu_ld = x;
|
||||||
|
|
||||||
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
|
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
|
||||||
u.extu_ext.ext_int == 1 &&
|
u.extu_ext.ext_int == 1 &&
|
||||||
(u.extu_ext.ext_frach != 0 || u.extu_ext.ext_fracl != 0));
|
(u.extu_ext.ext_frach != 0 || u.extu_ext.ext_fracl != 0));
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $NetBSD: Makefile.inc,v 1.23 2004/01/15 19:43:45 kleink Exp $
|
# $NetBSD: Makefile.inc,v 1.24 2004/03/04 23:42:38 kleink Exp $
|
||||||
|
|
||||||
SRCS+= alloca.S fabs.S
|
SRCS+= alloca.S fabs.S
|
||||||
|
|
||||||
|
@ -6,7 +6,9 @@ SRCS+= alloca.S fabs.S
|
||||||
SRCS+= infinityf_ieee754.c infinity_ieee754.c
|
SRCS+= infinityf_ieee754.c infinity_ieee754.c
|
||||||
SRCS+= nanf_ieee754.c
|
SRCS+= nanf_ieee754.c
|
||||||
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
||||||
SRCS+= frexp_ieee754.c isinf_ieee754.c isnan_ieee754.c
|
SRCS+= frexp_ieee754.c
|
||||||
|
SRCS+= isinff_ieee754.c isinfd_ieee754.c
|
||||||
|
SRCS+= isnanf_ieee754.c isnand_ieee754.c
|
||||||
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
||||||
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
||||||
|
|
||||||
|
@ -14,7 +16,6 @@ SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
||||||
# for which the generic ieee754 versions can be used
|
# for which the generic ieee754 versions can be used
|
||||||
.if ${MACHINE_ARCH} == "m68000"
|
.if ${MACHINE_ARCH} == "m68000"
|
||||||
SRCS+= infinityl_dbl_ieee754.c
|
SRCS+= infinityl_dbl_ieee754.c
|
||||||
SRCS+= isinfl_dbl_ieee754.c isnanl_dbl_ieee754.c
|
|
||||||
.else
|
.else
|
||||||
SRCS+= infinityl.c
|
SRCS+= infinityl.c
|
||||||
SRCS+= fpclassifyl.c isfinitel.c isinfl.c isnanl.c signbitl.c
|
SRCS+= fpclassifyl.c isfinitel.c isinfl.c isnanl.c signbitl.c
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: isinfl.c,v 1.3 2003/10/27 01:11:46 kleink Exp $ */
|
/* $NetBSD: isinfl.c,v 1.4 2004/03/04 23:42:38 kleink Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1992, 1993
|
* Copyright (c) 1992, 1993
|
||||||
|
@ -40,27 +40,24 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: isinfl.c,v 1.3 2003/10/27 01:11:46 kleink Exp $");
|
__RCSID("$NetBSD: isinfl.c,v 1.4 2004/03/04 23:42:38 kleink Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* LIBC_SCCS and not lint */
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
#include "namespace.h"
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <machine/ieee.h>
|
#include <machine/ieee.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#if 0 /* XXX Currently limited to internal use. */
|
/*
|
||||||
#ifdef __weak_alias
|
* 7.12.3.3 isinf - test for infinity
|
||||||
__weak_alias(isinfl,_isinfl)
|
* IEEE 754 compatible 80-bit extended-precision Motorola 68k version
|
||||||
#endif
|
*/
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
int
|
||||||
isinfl(long double ld)
|
__isinfl(long double x)
|
||||||
{
|
{
|
||||||
union ieee_ext_u u;
|
union ieee_ext_u u;
|
||||||
|
|
||||||
u.extu_ld = ld;
|
u.extu_ld = x;
|
||||||
|
|
||||||
/* Note: the explicit integer bit is "don't care". */
|
/* Note: the explicit integer bit is "don't care". */
|
||||||
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
|
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
|
||||||
(u.extu_ext.ext_frach == 0 && u.extu_ext.ext_fracl == 0));
|
(u.extu_ext.ext_frach == 0 && u.extu_ext.ext_fracl == 0));
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: isnanl.c,v 1.4 2003/10/28 00:13:22 kleink Exp $ */
|
/* $NetBSD: isnanl.c,v 1.5 2004/03/04 23:42:38 kleink Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1992, 1993
|
* Copyright (c) 1992, 1993
|
||||||
|
@ -40,27 +40,24 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: isnanl.c,v 1.4 2003/10/28 00:13:22 kleink Exp $");
|
__RCSID("$NetBSD: isnanl.c,v 1.5 2004/03/04 23:42:38 kleink Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* LIBC_SCCS and not lint */
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
#include "namespace.h"
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <machine/ieee.h>
|
#include <machine/ieee.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#if 0 /* XXX Currently limited to internal use. */
|
/*
|
||||||
#ifdef __weak_alias
|
* 7.12.3.4 isnan - test for a NaN
|
||||||
__weak_alias(isnanl,_isnanl)
|
* IEEE 754 compatible 80-bit extended-precision Motorola 68k version
|
||||||
#endif
|
*/
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
int
|
||||||
isnanl(long double ld)
|
__isnanl(long double x)
|
||||||
{
|
{
|
||||||
union ieee_ext_u u;
|
union ieee_ext_u u;
|
||||||
|
|
||||||
u.extu_ld = ld;
|
u.extu_ld = x;
|
||||||
|
|
||||||
/* Note: the explicit integer bit is "don't care". */
|
/* Note: the explicit integer bit is "don't care". */
|
||||||
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
|
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
|
||||||
(u.extu_ext.ext_frach != 0 || u.extu_ext.ext_fracl != 0));
|
(u.extu_ext.ext_frach != 0 || u.extu_ext.ext_fracl != 0));
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $NetBSD: Makefile.inc,v 1.22 2004/01/15 19:43:45 kleink Exp $
|
# $NetBSD: Makefile.inc,v 1.23 2004/03/04 23:42:38 kleink Exp $
|
||||||
|
|
||||||
SRCS+= fabs.S ldexp.S modf.S
|
SRCS+= fabs.S ldexp.S modf.S
|
||||||
|
|
||||||
|
@ -6,9 +6,10 @@ SRCS+= fabs.S ldexp.S modf.S
|
||||||
SRCS+= infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c
|
SRCS+= infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c
|
||||||
SRCS+= nanf_ieee754.c
|
SRCS+= nanf_ieee754.c
|
||||||
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
||||||
SRCS+= frexp_ieee754.c isinf_ieee754.c isinfl_dbl_ieee754.c isnan_ieee754.c
|
SRCS+= frexp_ieee754.c
|
||||||
|
SRCS+= isinff_ieee754.c isinfd_ieee754.c
|
||||||
|
SRCS+= isnanf_ieee754.c isnand_ieee754.c
|
||||||
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
||||||
SRCS+= isnanl_dbl_ieee754.c
|
|
||||||
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
||||||
|
|
||||||
SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \
|
SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $NetBSD: Makefile.inc,v 1.21 2004/01/15 19:43:45 kleink Exp $
|
# $NetBSD: Makefile.inc,v 1.22 2004/03/04 23:42:38 kleink Exp $
|
||||||
|
|
||||||
# objects built from assembler sources (need lint stubs)
|
# objects built from assembler sources (need lint stubs)
|
||||||
ASSRCS+=alloca.S fabs.S modf.S
|
ASSRCS+=alloca.S fabs.S modf.S
|
||||||
|
@ -21,9 +21,11 @@ SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \
|
||||||
SRCS+= infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c
|
SRCS+= infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c
|
||||||
SRCS+= nanf_ieee754.c
|
SRCS+= nanf_ieee754.c
|
||||||
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
||||||
SRCS+= frexp_ieee754.c isinf_ieee754.c isinfl_dbl_ieee754.c isnan_ieee754.c
|
SRCS+= frexp_ieee754.c
|
||||||
|
SRCS+= isinff_ieee754.c isinfd_ieee754.c
|
||||||
|
SRCS+= isnanf_ieee754.c isnand_ieee754.c
|
||||||
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
||||||
SRCS+= isnanl_dbl_ieee754.c ldexp_ieee754.c
|
SRCS+= ldexp_ieee754.c
|
||||||
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
||||||
|
|
||||||
SRCS+= makecontext.c
|
SRCS+= makecontext.c
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $NetBSD: Makefile.inc,v 1.18 2004/01/15 19:43:45 kleink Exp $
|
# $NetBSD: Makefile.inc,v 1.19 2004/03/04 23:42:38 kleink Exp $
|
||||||
|
|
||||||
SRCS+= _setjmp.S setjmp.S sigsetjmp.S __setjmp14.S __sigsetjmp14.S
|
SRCS+= _setjmp.S setjmp.S sigsetjmp.S __setjmp14.S __sigsetjmp14.S
|
||||||
SRCS+= bswap16.c bswap32.c bswap64.c
|
SRCS+= bswap16.c bswap32.c bswap64.c
|
||||||
|
@ -10,9 +10,11 @@ SRCS+= _lwp.c makecontext.c resumecontext.c swapcontext.S
|
||||||
SRCS+= infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c
|
SRCS+= infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c
|
||||||
SRCS+= nanf_ieee754.c
|
SRCS+= nanf_ieee754.c
|
||||||
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
||||||
SRCS+= frexp_ieee754.c isinf_ieee754.c isinfl_dbl_ieee754.c isnan_ieee754.c
|
SRCS+= frexp_ieee754.c
|
||||||
|
SRCS+= isinff_ieee754.c isinfd_ieee754.c
|
||||||
|
SRCS+= isnanf_ieee754.c isnand_ieee754.c
|
||||||
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
||||||
SRCS+= isnanl_dbl_ieee754.c ldexp_ieee754.c modf_ieee754.c
|
SRCS+= ldexp_ieee754.c modf_ieee754.c
|
||||||
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
||||||
|
|
||||||
.if (${MKSOFTFLOAT} == "no")
|
.if (${MKSOFTFLOAT} == "no")
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $NetBSD: Makefile.inc,v 1.15 2004/02/22 01:05:49 uwe Exp $
|
# $NetBSD: Makefile.inc,v 1.16 2004/03/04 23:42:38 kleink Exp $
|
||||||
|
|
||||||
SRCS+= _setjmp.S setjmp.S sigsetjmp.S __setjmp14.S __sigsetjmp14.S
|
SRCS+= _setjmp.S setjmp.S sigsetjmp.S __setjmp14.S __sigsetjmp14.S
|
||||||
|
|
||||||
|
@ -12,9 +12,11 @@ SRCS+= fabs.c flt_rounds.c bswap16.c bswap32.c bswap64.c
|
||||||
SRCS+= infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c
|
SRCS+= infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c
|
||||||
SRCS+= nanf_ieee754.c
|
SRCS+= nanf_ieee754.c
|
||||||
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
||||||
SRCS+= frexp_ieee754.c isinf_ieee754.c isinfl_dbl_ieee754.c isnan_ieee754.c
|
SRCS+= frexp_ieee754.c
|
||||||
|
SRCS+= isinff_ieee754.c isinfd_ieee754.c
|
||||||
|
SRCS+= isnanf_ieee754.c isnand_ieee754.c
|
||||||
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
||||||
SRCS+= isnanl_dbl_ieee754.c ldexp_ieee754.c modf_ieee754.c
|
SRCS+= ldexp_ieee754.c modf_ieee754.c
|
||||||
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
||||||
|
|
||||||
# In gcc3 dynamic world these functions must be ".hidden" in libgcc*.a,
|
# In gcc3 dynamic world these functions must be ".hidden" in libgcc*.a,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $NetBSD: Makefile.inc,v 1.13 2004/01/15 19:43:45 kleink Exp $
|
# $NetBSD: Makefile.inc,v 1.14 2004/03/04 23:42:38 kleink Exp $
|
||||||
|
|
||||||
SRCS+= __setjmp14.S __sigsetjmp14.S _setjmp.S \
|
SRCS+= __setjmp14.S __sigsetjmp14.S _setjmp.S \
|
||||||
alloca.S \
|
alloca.S \
|
||||||
|
@ -9,8 +9,8 @@ SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c \
|
||||||
frexp_ieee754.c \
|
frexp_ieee754.c \
|
||||||
infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c \
|
infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c \
|
||||||
isfinitef_ieee754.c isfinited_ieee754.c \
|
isfinitef_ieee754.c isfinited_ieee754.c \
|
||||||
isinf_ieee754.c isinfl_dbl_ieee754.c \
|
isinff_ieee754.c isinfd_ieee754.c \
|
||||||
isnan_ieee754.c isnanl_dbl_ieee754.c \
|
isnanf_ieee754.c isnand_ieee754.c \
|
||||||
signbitf_ieee754.c signbitd_ieee754.c \
|
signbitf_ieee754.c signbitd_ieee754.c \
|
||||||
ldexp_ieee754.c \
|
ldexp_ieee754.c \
|
||||||
modf_ieee754.c \
|
modf_ieee754.c \
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $NetBSD: Makefile.inc,v 1.16 2004/02/12 10:28:28 kleink Exp $
|
# $NetBSD: Makefile.inc,v 1.17 2004/03/04 23:42:38 kleink Exp $
|
||||||
|
|
||||||
SRCS+= fabs.S modf.S
|
SRCS+= fabs.S modf.S
|
||||||
SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \
|
SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \
|
||||||
|
@ -8,9 +8,11 @@ SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \
|
||||||
SRCS+= infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c
|
SRCS+= infinityf_ieee754.c infinity_ieee754.c infinityl_dbl_ieee754.c
|
||||||
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
||||||
SRCS+= nanf_ieee754.c
|
SRCS+= nanf_ieee754.c
|
||||||
SRCS+= frexp_ieee754.c isinf_ieee754.c isinfl_dbl_ieee754.c isnan_ieee754.c
|
SRCS+= frexp_ieee754.c
|
||||||
|
SRCS+= isinff_ieee754.c isinfd_ieee754.c
|
||||||
|
SRCS+= isnanf_ieee754.c isnand_ieee754.c
|
||||||
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
||||||
SRCS+= isnanl_dbl_ieee754.c ldexp_ieee754.c
|
SRCS+= ldexp_ieee754.c
|
||||||
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $NetBSD: Makefile.inc,v 1.13 2004/01/17 22:01:15 martin Exp $
|
# $NetBSD: Makefile.inc,v 1.14 2004/03/04 23:42:39 kleink Exp $
|
||||||
|
|
||||||
SRCS+= fabs.S modf.S
|
SRCS+= fabs.S modf.S
|
||||||
SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \
|
SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \
|
||||||
|
@ -10,7 +10,8 @@ SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
||||||
SRCS+= nanf_ieee754.c
|
SRCS+= nanf_ieee754.c
|
||||||
SRCS+= frexp_ieee754.c
|
SRCS+= frexp_ieee754.c
|
||||||
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
||||||
SRCS+= isinf_ieee754.c isnan_ieee754.c
|
SRCS+= isinff_ieee754.c isinfd_ieee754.c
|
||||||
|
SRCS+= isnanf_ieee754.c isnand_ieee754.c
|
||||||
SRCS+= ldexp_ieee754.c
|
SRCS+= ldexp_ieee754.c
|
||||||
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: isinfl.c,v 1.3 2003/10/27 01:11:46 kleink Exp $ */
|
/* $NetBSD: isinfl.c,v 1.4 2004/03/04 23:42:39 kleink Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1992, 1993
|
* Copyright (c) 1992, 1993
|
||||||
|
@ -40,28 +40,25 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: isinfl.c,v 1.3 2003/10/27 01:11:46 kleink Exp $");
|
__RCSID("$NetBSD: isinfl.c,v 1.4 2004/03/04 23:42:39 kleink Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* LIBC_SCCS and not lint */
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
#include "namespace.h"
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <machine/ieee.h>
|
#include <machine/ieee.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#if 0 /* XXX Currently limited to internal use. */
|
/*
|
||||||
#ifdef __weak_alias
|
* 7.12.3.3 isinf - test for infinity
|
||||||
__weak_alias(isinfl,_isinfl)
|
* IEEE 754 compatible 128-bit extended-precision version
|
||||||
#endif
|
*/
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
int
|
||||||
isinfl(long double ld)
|
__isinfl(long double x)
|
||||||
{
|
{
|
||||||
union ieee_ext_u u;
|
union ieee_ext_u u;
|
||||||
|
|
||||||
u.extu_ld = ld;
|
u.extu_ld = x;
|
||||||
|
|
||||||
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
|
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
|
||||||
(u.extu_ext.ext_frach == 0 && u.extu_ext.ext_frachm == 0 &&
|
(u.extu_ext.ext_frach == 0 && u.extu_ext.ext_frachm == 0 &&
|
||||||
u.extu_ext.ext_fraclm == 0 && u.extu_ext.ext_fracl == 0));
|
u.extu_ext.ext_fraclm == 0 && u.extu_ext.ext_fracl == 0));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: isnanl.c,v 1.3 2003/10/27 01:11:46 kleink Exp $ */
|
/* $NetBSD: isnanl.c,v 1.4 2004/03/04 23:42:39 kleink Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1992, 1993
|
* Copyright (c) 1992, 1993
|
||||||
|
@ -40,28 +40,25 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: isnanl.c,v 1.3 2003/10/27 01:11:46 kleink Exp $");
|
__RCSID("$NetBSD: isnanl.c,v 1.4 2004/03/04 23:42:39 kleink Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* LIBC_SCCS and not lint */
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
#include "namespace.h"
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <machine/ieee.h>
|
#include <machine/ieee.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#if 0 /* XXX Currently limited to internal use. */
|
/*
|
||||||
#ifdef __weak_alias
|
* 7.12.3.4 isnan - test for a NaN
|
||||||
__weak_alias(isnanl,_isnanl)
|
* IEEE 754 compatible 128-bit extended-precision version
|
||||||
#endif
|
*/
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
int
|
||||||
isnanl(long double ld)
|
__isnanl(long double x)
|
||||||
{
|
{
|
||||||
union ieee_ext_u u;
|
union ieee_ext_u u;
|
||||||
|
|
||||||
u.extu_ld = ld;
|
u.extu_ld = x;
|
||||||
|
|
||||||
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
|
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
|
||||||
(u.extu_ext.ext_frach != 0 || u.extu_ext.ext_frachm != 0 ||
|
(u.extu_ext.ext_frach != 0 || u.extu_ext.ext_frachm != 0 ||
|
||||||
u.extu_ext.ext_fraclm != 0 || u.extu_ext.ext_fracl != 0));
|
u.extu_ext.ext_fraclm != 0 || u.extu_ext.ext_fracl != 0));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
# $NetBSD: Makefile.inc,v 1.13 2004/01/16 10:46:11 ragge Exp $
|
# $NetBSD: Makefile.inc,v 1.14 2004/03/04 23:42:39 kleink Exp $
|
||||||
|
|
||||||
SRCS+= byte_swap_2.S byte_swap_4.S bswap64.S \
|
SRCS+= byte_swap_2.S byte_swap_4.S bswap64.S \
|
||||||
fabs.S frexp.c \
|
fabs.S frexp.c \
|
||||||
fpclassifyf.c fpclassifyd.c \
|
fpclassifyf.c fpclassifyd.c \
|
||||||
infinityf.c infinity.c infinityl.c isinf.c isinfl.c isnan.c isnanl.c \
|
infinityf.c infinity.c infinityl.c \
|
||||||
isfinitef.c isfinited.c \
|
isfinitef.c isfinited.c \
|
||||||
ldexp.S \
|
ldexp.S \
|
||||||
makecontext.c modf.S \
|
makecontext.c modf.S \
|
||||||
|
@ -13,6 +13,9 @@ SRCS+= byte_swap_2.S byte_swap_4.S bswap64.S \
|
||||||
udiv.S urem.S \
|
udiv.S urem.S \
|
||||||
__setjmp14.S __sigsetjmp14.S _setjmp.S
|
__setjmp14.S __sigsetjmp14.S _setjmp.S
|
||||||
|
|
||||||
|
# ABI compatibility for libc.so.12
|
||||||
|
SRCS+= isinf.c isnan.c
|
||||||
|
|
||||||
.if ${OBJECT_FMT} != "ELF"
|
.if ${OBJECT_FMT} != "ELF"
|
||||||
SRCS+= setjmp.S sigsetjmp.S
|
SRCS+= setjmp.S sigsetjmp.S
|
||||||
.endif
|
.endif
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: isinf.c,v 1.7 2003/08/07 16:42:31 agc Exp $ */
|
/* $NetBSD: isinf.c,v 1.8 2004/03/04 23:42:39 kleink Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 1991, 1993
|
* Copyright (c) 1991, 1993
|
||||||
|
@ -34,16 +34,14 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: isinf.c,v 1.7 2003/08/07 16:42:31 agc Exp $");
|
__RCSID("$NetBSD: isinf.c,v 1.8 2004/03/04 23:42:39 kleink Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* LIBC_SCCS and not lint */
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
#include "namespace.h"
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#ifdef __weak_alias
|
#undef isinf
|
||||||
__weak_alias(isinf,_isinf)
|
int isinf __P((double));
|
||||||
#endif
|
|
||||||
|
|
||||||
/* ARGSUSED */
|
/* ARGSUSED */
|
||||||
int
|
int
|
||||||
|
|
|
@ -1,55 +0,0 @@
|
||||||
/* $NetBSD: isinfl.c,v 1.2 2003/08/07 16:42:31 agc Exp $ */
|
|
||||||
|
|
||||||
/*-
|
|
||||||
* Copyright (c) 1991, 1993
|
|
||||||
* The Regents of the University of California. 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.
|
|
||||||
* 3. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
#if 0
|
|
||||||
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
|
||||||
#else
|
|
||||||
__RCSID("$NetBSD: isinfl.c,v 1.2 2003/08/07 16:42:31 agc Exp $");
|
|
||||||
#endif
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
#include "namespace.h"
|
|
||||||
#include <math.h>
|
|
||||||
|
|
||||||
#if 0 /* XXX Currently limted to internal use. */
|
|
||||||
#ifdef __weak_alias
|
|
||||||
__weak_alias(isinfl,_isinfl)
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* ARGSUSED */
|
|
||||||
int
|
|
||||||
isinfl(long double d)
|
|
||||||
{
|
|
||||||
return (0);
|
|
||||||
}
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: isnan.c,v 1.2 2003/08/07 16:42:31 agc Exp $ */
|
/* $NetBSD: isnan.c,v 1.3 2004/03/04 23:42:39 kleink Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 1991, 1993
|
* Copyright (c) 1991, 1993
|
||||||
|
@ -34,16 +34,15 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: isnan.c,v 1.2 2003/08/07 16:42:31 agc Exp $");
|
__RCSID("$NetBSD: isnan.c,v 1.3 2004/03/04 23:42:39 kleink Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* LIBC_SCCS and not lint */
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
#include "namespace.h"
|
#include "namespace.h"
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#ifdef __weak_alias
|
#undef isnan
|
||||||
__weak_alias(isnan,_isnan)
|
int isnan __P((double));
|
||||||
#endif
|
|
||||||
|
|
||||||
/* ARGSUSED */
|
/* ARGSUSED */
|
||||||
int
|
int
|
||||||
|
|
|
@ -1,55 +0,0 @@
|
||||||
/* $NetBSD: isnanl.c,v 1.2 2003/08/07 16:42:31 agc Exp $ */
|
|
||||||
|
|
||||||
/*-
|
|
||||||
* Copyright (c) 1991, 1993
|
|
||||||
* The Regents of the University of California. 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.
|
|
||||||
* 3. Neither the name of the University nor the names of its contributors
|
|
||||||
* may be used to endorse or promote products derived from this software
|
|
||||||
* without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
|
||||||
#if defined(LIBC_SCCS) && !defined(lint)
|
|
||||||
#if 0
|
|
||||||
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
|
||||||
#else
|
|
||||||
__RCSID("$NetBSD: isnanl.c,v 1.2 2003/08/07 16:42:31 agc Exp $");
|
|
||||||
#endif
|
|
||||||
#endif /* LIBC_SCCS and not lint */
|
|
||||||
|
|
||||||
#include "namespace.h"
|
|
||||||
#include <math.h>
|
|
||||||
|
|
||||||
#if 0 /* XXX Currently limited to internal use. */
|
|
||||||
#ifdef __weak_alias
|
|
||||||
__weak_alias(isnan,_isnan)
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* ARGSUSED */
|
|
||||||
int
|
|
||||||
isnanl(long double d)
|
|
||||||
{
|
|
||||||
return (0);
|
|
||||||
}
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $NetBSD: Makefile.inc,v 1.10 2004/01/15 19:43:45 kleink Exp $
|
# $NetBSD: Makefile.inc,v 1.11 2004/03/04 23:42:39 kleink Exp $
|
||||||
|
|
||||||
# objects built from assembler sources (need lint stubs)
|
# objects built from assembler sources (need lint stubs)
|
||||||
SRCS+= alloca.S bswap64.S byte_swap_2.S byte_swap_4.S fabs.S modf.S \
|
SRCS+= alloca.S bswap64.S byte_swap_2.S byte_swap_4.S fabs.S modf.S \
|
||||||
|
@ -20,7 +20,8 @@ SRCS+= nanf_ieee754.c
|
||||||
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
SRCS+= fpclassifyf_ieee754.c fpclassifyd_ieee754.c
|
||||||
SRCS+= frexp_ieee754.c
|
SRCS+= frexp_ieee754.c
|
||||||
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
SRCS+= isfinitef_ieee754.c isfinited_ieee754.c
|
||||||
SRCS+= isinf_ieee754.c isnan_ieee754.c
|
SRCS+= isinff_ieee754.c isinfd_ieee754.c
|
||||||
|
SRCS+= isnanf_ieee754.c isnand_ieee754.c
|
||||||
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
SRCS+= signbitf_ieee754.c signbitd_ieee754.c
|
||||||
|
|
||||||
SRCS+= infinityl.c
|
SRCS+= infinityl.c
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: isinfl.c,v 1.4 2003/10/27 01:11:46 kleink Exp $ */
|
/* $NetBSD: isinfl.c,v 1.5 2004/03/04 23:42:39 kleink Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1992, 1993
|
* Copyright (c) 1992, 1993
|
||||||
|
@ -40,27 +40,24 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: isinfl.c,v 1.4 2003/10/27 01:11:46 kleink Exp $");
|
__RCSID("$NetBSD: isinfl.c,v 1.5 2004/03/04 23:42:39 kleink Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* LIBC_SCCS and not lint */
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
#include "namespace.h"
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <machine/ieee.h>
|
#include <machine/ieee.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#if 0 /* XXX Currently limited to internal use. */
|
/*
|
||||||
#ifdef __weak_alias
|
* 7.12.3.3 isinf - test for infinity
|
||||||
__weak_alias(isinfl,_isinfl)
|
* IEEE 754 compatible 80-bit extended-precision Intel 386 version
|
||||||
#endif
|
*/
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
int
|
||||||
isinfl(long double ld)
|
__isinfl(long double x)
|
||||||
{
|
{
|
||||||
union ieee_ext_u u;
|
union ieee_ext_u u;
|
||||||
|
|
||||||
u.extu_ld = ld;
|
u.extu_ld = x;
|
||||||
|
|
||||||
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
|
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
|
||||||
(u.extu_ext.ext_int == 1 &&
|
(u.extu_ext.ext_int == 1 &&
|
||||||
u.extu_ext.ext_frach == 0 && u.extu_ext.ext_fracl == 0));
|
u.extu_ext.ext_frach == 0 && u.extu_ext.ext_fracl == 0));
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: isnanl.c,v 1.4 2003/10/27 01:11:47 kleink Exp $ */
|
/* $NetBSD: isnanl.c,v 1.5 2004/03/04 23:42:39 kleink Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1992, 1993
|
* Copyright (c) 1992, 1993
|
||||||
|
@ -40,27 +40,24 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: isnanl.c,v 1.4 2003/10/27 01:11:47 kleink Exp $");
|
__RCSID("$NetBSD: isnanl.c,v 1.5 2004/03/04 23:42:39 kleink Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* LIBC_SCCS and not lint */
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
#include "namespace.h"
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <machine/ieee.h>
|
#include <machine/ieee.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#if 0 /* XXX Currently limited to internal use. */
|
/*
|
||||||
#ifdef __weak_alias
|
* 7.12.3.4 isnan - test for a NaN
|
||||||
__weak_alias(isnanl,_isnanl)
|
* IEEE 754 compatible 80-bit extended-precision Intel 386 version
|
||||||
#endif
|
*/
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
int
|
||||||
isnanl(long double ld)
|
__isnanl(long double x)
|
||||||
{
|
{
|
||||||
union ieee_ext_u u;
|
union ieee_ext_u u;
|
||||||
|
|
||||||
u.extu_ld = ld;
|
u.extu_ld = x;
|
||||||
|
|
||||||
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
|
return (u.extu_ext.ext_exp == EXT_EXP_INFNAN &&
|
||||||
u.extu_ext.ext_int == 1 &&
|
u.extu_ext.ext_int == 1 &&
|
||||||
(u.extu_ext.ext_frach != 0 || u.extu_ext.ext_fracl != 0));
|
(u.extu_ext.ext_frach != 0 || u.extu_ext.ext_fracl != 0));
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $NetBSD: Makefile.inc,v 1.126 2004/01/15 19:43:45 kleink Exp $
|
# $NetBSD: Makefile.inc,v 1.127 2004/03/04 23:42:39 kleink Exp $
|
||||||
# from: @(#)Makefile.inc 8.6 (Berkeley) 5/4/95
|
# from: @(#)Makefile.inc 8.6 (Berkeley) 5/4/95
|
||||||
|
|
||||||
# gen sources
|
# gen sources
|
||||||
|
@ -51,8 +51,8 @@ MAN+= alarm.3 arc4random.3 basename.3 bswap.3 clock.3 confstr.3 \
|
||||||
getprogname.3 getpwent.3 getttyent.3 getusershell.3 glob.3 \
|
getprogname.3 getpwent.3 getttyent.3 getusershell.3 glob.3 \
|
||||||
humanize_number.3 \
|
humanize_number.3 \
|
||||||
initgroups.3 isalnum.3 isalpha.3 isascii.3 isblank.3 iscntrl.3 \
|
initgroups.3 isalnum.3 isalpha.3 isascii.3 isblank.3 iscntrl.3 \
|
||||||
isdigit.3 isfinite.3 isgraph.3 isinf.3 islower.3 isnormal.3 isprint.3 \
|
isdigit.3 isfinite.3 isgraph.3 isinf.3 islower.3 isnan.3 isnormal.3 \
|
||||||
ispunct.3 isspace.3 isupper.3 isxdigit.3 ldexp.3 lockf.3 \
|
isprint.3 ispunct.3 isspace.3 isupper.3 isxdigit.3 ldexp.3 lockf.3 \
|
||||||
_lwp_makecontext.3 makecontext.3 \
|
_lwp_makecontext.3 makecontext.3 \
|
||||||
modf.3 nice.3 nlist.3 \
|
modf.3 nice.3 nlist.3 \
|
||||||
pause.3 popen.3 psignal.3 pwcache.3 pthread_atfork.3 \
|
pause.3 popen.3 psignal.3 pwcache.3 pthread_atfork.3 \
|
||||||
|
@ -103,7 +103,6 @@ MLINKS+=getpwent.3 endpwent.3 getpwent.3 setpassent.3 getpwent.3 getpwnam.3 \
|
||||||
MLINKS+=getttyent.3 endttyent.3 getttyent.3 getttynam.3 getttyent.3 setttyent.3
|
MLINKS+=getttyent.3 endttyent.3 getttyent.3 getttynam.3 getttyent.3 setttyent.3
|
||||||
MLINKS+=getusershell.3 endusershell.3 getusershell.3 setusershell.3
|
MLINKS+=getusershell.3 endusershell.3 getusershell.3 setusershell.3
|
||||||
MLINKS+=glob.3 globfree.3
|
MLINKS+=glob.3 globfree.3
|
||||||
MLINKS+=isinf.3 isnan.3
|
|
||||||
MLINKS+=makecontext.3 swapcontext.3
|
MLINKS+=makecontext.3 swapcontext.3
|
||||||
MLINKS+=popen.3 pclose.3
|
MLINKS+=popen.3 pclose.3
|
||||||
MLINKS+=psignal.3 sys_siglist.3 psignal.3 sys_signame.3
|
MLINKS+=psignal.3 sys_siglist.3 psignal.3 sys_signame.3
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.\" $NetBSD: isinf.3,v 1.10 2003/08/07 16:42:52 agc Exp $
|
.\" $NetBSD: isinf.3,v 1.11 2004/03/04 23:42:39 kleink Exp $
|
||||||
.\"
|
.\"
|
||||||
.\" Copyright (c) 1991, 1993
|
.\" Copyright (c) 1991, 1993
|
||||||
.\" The Regents of the University of California. All rights reserved.
|
.\" The Regents of the University of California. All rights reserved.
|
||||||
|
@ -29,47 +29,56 @@
|
||||||
.\"
|
.\"
|
||||||
.\" @(#)isinf.3 8.2 (Berkeley) 1/29/94
|
.\" @(#)isinf.3 8.2 (Berkeley) 1/29/94
|
||||||
.\"
|
.\"
|
||||||
.Dd January 29, 1994
|
.Dd March 5, 2004
|
||||||
.Dt ISINF 3
|
.Dt ISINF 3
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
.Nm isinf ,
|
.Nm isinf
|
||||||
.Nm isnan
|
.Nd test for infinity
|
||||||
.Nd test for infinity or not-a-number
|
|
||||||
.Sh LIBRARY
|
.Sh LIBRARY
|
||||||
.Lb libc
|
.Lb libc
|
||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.In math.h
|
.In math.h
|
||||||
.Ft int
|
.Ft int
|
||||||
.Fn isinf double
|
.Fn isinf "real-floating x"
|
||||||
.Ft int
|
|
||||||
.Fn isnan double
|
|
||||||
.Sh DESCRIPTION
|
.Sh DESCRIPTION
|
||||||
The
|
The
|
||||||
.Fn isinf
|
.Fn isinf
|
||||||
function
|
macro determines whether its argument
|
||||||
returns 1 if the number is
|
.Fa x
|
||||||
.Dq \\*(If ,
|
is an infinity (positive or negative).
|
||||||
otherwise 0.
|
An argument represented in a format wider than its semantic type is
|
||||||
.Pp
|
converted to its semantic type first.
|
||||||
|
The determination is then based on the type of the argument.
|
||||||
|
.Ss IEEE 754
|
||||||
|
It is determined whether the value of
|
||||||
|
.Fa x
|
||||||
|
is an infinity.
|
||||||
|
.Ss VAX
|
||||||
|
Infinities are not supported.
|
||||||
|
.Sh RETURN VALUES
|
||||||
The
|
The
|
||||||
.Fn isnan
|
.Fn isinf
|
||||||
function
|
macro returns a non-zero value if the value of
|
||||||
returns 1 if the number is
|
.Fa x
|
||||||
.Dq not-a-number ,
|
is an infinity.
|
||||||
otherwise 0.
|
Otherwise 0 is returned.
|
||||||
.Sh SEE ALSO
|
.Sh SEE ALSO
|
||||||
|
.Xr fpclassify 3 ,
|
||||||
|
.Xr isfinite 3 ,
|
||||||
|
.Xr isnormal 3 ,
|
||||||
.Xr isinff 3 ,
|
.Xr isinff 3 ,
|
||||||
|
.Xr isnan 3 ,
|
||||||
.Xr isnanf 3 ,
|
.Xr isnanf 3 ,
|
||||||
.Xr math 3
|
.Xr math 3 ,
|
||||||
|
.Xr signbit 3
|
||||||
.Rs
|
.Rs
|
||||||
.%T "IEEE Standard for Binary Floating-Point Arithmetic"
|
.%T "IEEE Standard for Binary Floating-Point Arithmetic"
|
||||||
.%Q ANSI
|
.%Q ANSI
|
||||||
.%R Std 754-1985
|
.%R Std 754-1985
|
||||||
.Re
|
.Re
|
||||||
.Sh BUGS
|
.Sh STANDARDS
|
||||||
Neither the
|
The
|
||||||
.Tn VAX
|
.Fn isinf
|
||||||
nor the Tahoe floating point have distinguished values
|
macro conforms to
|
||||||
for either infinity or not-a-number.
|
.St -isoC-99 .
|
||||||
These routines always return 0 on those architectures.
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: isinf_ieee754.c,v 1.4 2003/10/27 09:27:03 skrll Exp $ */
|
/* $NetBSD: isinfd_ieee754.c,v 1.1 2004/03/04 23:42:39 kleink Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1992, 1993
|
* Copyright (c) 1992, 1993
|
||||||
|
@ -40,25 +40,29 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: isinf_ieee754.c,v 1.4 2003/10/27 09:27:03 skrll Exp $");
|
__RCSID("$NetBSD: isinfd_ieee754.c,v 1.1 2004/03/04 23:42:39 kleink Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* LIBC_SCCS and not lint */
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
#include "namespace.h"
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <machine/ieee.h>
|
#include <machine/ieee.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
|
/* libc.so.12 ABI compatbility */
|
||||||
#ifdef __weak_alias
|
#ifdef __weak_alias
|
||||||
__weak_alias(isinf,_isinf)
|
__weak_alias(isinf,__isinfd)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 7.12.3.3 isinf - test for infinity
|
||||||
|
* IEEE 754 double-precision version
|
||||||
|
*/
|
||||||
int
|
int
|
||||||
isinf(double d)
|
__isinfd(double x)
|
||||||
{
|
{
|
||||||
union ieee_double_u u;
|
union ieee_double_u u;
|
||||||
|
|
||||||
u.dblu_d = d;
|
u.dblu_d = x;
|
||||||
|
|
||||||
return (u.dblu_dbl.dbl_exp == DBL_EXP_INFNAN &&
|
return (u.dblu_dbl.dbl_exp == DBL_EXP_INFNAN &&
|
||||||
(u.dblu_dbl.dbl_frach == 0 && u.dblu_dbl.dbl_fracl == 0));
|
(u.dblu_dbl.dbl_frach == 0 && u.dblu_dbl.dbl_fracl == 0));
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: isnanl_dbl_ieee754.c,v 1.2 2003/10/24 10:30:36 kleink Exp $ */
|
/* $NetBSD: isinff_ieee754.c,v 1.1 2004/03/04 23:42:39 kleink Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1992, 1993
|
* Copyright (c) 1992, 1993
|
||||||
|
@ -40,38 +40,24 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: isnanl_dbl_ieee754.c,v 1.2 2003/10/24 10:30:36 kleink Exp $");
|
__RCSID("$NetBSD: isinff_ieee754.c,v 1.1 2004/03/04 23:42:39 kleink Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* LIBC_SCCS and not lint */
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
#include "namespace.h"
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <machine/ieee.h>
|
#include <machine/ieee.h>
|
||||||
#include <float.h>
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#if 0 /* XXX Currently limited to internal use. */
|
|
||||||
#ifdef __weak_alias
|
|
||||||
__weak_alias(isnanl,_isnanl)
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if LDBL_MANT_DIG != DBL_MANT_DIG
|
|
||||||
#error double / long double mismatch
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* isnanl() for platforms where long double == double.
|
* 7.12.3.3 isinf - test for infinity
|
||||||
|
* IEEE 754 single-precision version
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
isnanl(long double ld)
|
__isinff(float x)
|
||||||
{
|
{
|
||||||
union {
|
union ieee_single_u u;
|
||||||
long double ld;
|
|
||||||
struct ieee_double dbl;
|
|
||||||
} u;
|
|
||||||
|
|
||||||
u.ld = ld;
|
u.sngu_f = x;
|
||||||
return (u.dbl.dbl_exp == DBL_EXP_INFNAN &&
|
|
||||||
(u.dbl.dbl_frach != 0 || u.dbl.dbl_fracl != 0));
|
return (u.sngu_sng.sng_exp == SNG_EXP_INFNAN &&
|
||||||
|
u.sngu_sng.sng_frac == 0);
|
||||||
}
|
}
|
|
@ -0,0 +1,86 @@
|
||||||
|
.\" $NetBSD: isnan.3,v 1.1 2004/03/04 23:42:39 kleink Exp $
|
||||||
|
.\"
|
||||||
|
.\" Copyright (c) 1991, 1993
|
||||||
|
.\" The Regents of the University of California. 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.
|
||||||
|
.\" 3. Neither the name of the University nor the names of its contributors
|
||||||
|
.\" may be used to endorse or promote products derived from this software
|
||||||
|
.\" without specific prior written permission.
|
||||||
|
.\"
|
||||||
|
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
|
||||||
|
.\"
|
||||||
|
.\" From: @(#)isinf.3 8.2 (Berkeley) 1/29/94
|
||||||
|
.\" from: NetBSD: isinf.3,v 1.10 2003/08/07 16:42:52 agc Exp
|
||||||
|
.\"
|
||||||
|
.Dd March 5, 2004
|
||||||
|
.Dt ISNAN 3
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm isnan
|
||||||
|
.Nd test for not-a-number
|
||||||
|
.Sh LIBRARY
|
||||||
|
.Lb libc
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.In math.h
|
||||||
|
.Ft int
|
||||||
|
.Fn isnan "real-floating x"
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
The
|
||||||
|
.Fn isnan
|
||||||
|
macro determines whether its argument
|
||||||
|
.Fa x
|
||||||
|
is not-a-number
|
||||||
|
.Pq Dq NaN .
|
||||||
|
An argument represented in a format wider than its semantic type is
|
||||||
|
converted to its semantic type first.
|
||||||
|
The determination is then based on the type of the argument.
|
||||||
|
.Ss IEEE 754
|
||||||
|
It is determined whether the value of
|
||||||
|
.Fa x
|
||||||
|
is a NaN.
|
||||||
|
.Ss VAX
|
||||||
|
NaNs are not supported.
|
||||||
|
.Sh RETURN VALUES
|
||||||
|
The
|
||||||
|
.Fn isnan
|
||||||
|
macro returns a non-zero value if the value of
|
||||||
|
.Fa x
|
||||||
|
is a NaN.
|
||||||
|
Otherwise 0 is returned.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr fpclassify 3 ,
|
||||||
|
.Xr isfinite 3 ,
|
||||||
|
.Xr isnormal 3 ,
|
||||||
|
.Xr isinf 3 ,
|
||||||
|
.Xr isinff 3 ,
|
||||||
|
.Xr isnanf 3 ,
|
||||||
|
.Xr math 3 ,
|
||||||
|
.Xr signbit 3
|
||||||
|
.Rs
|
||||||
|
.%T "IEEE Standard for Binary Floating-Point Arithmetic"
|
||||||
|
.%Q ANSI
|
||||||
|
.%R Std 754-1985
|
||||||
|
.Re
|
||||||
|
.Sh STANDARDS
|
||||||
|
The
|
||||||
|
.Fn isnan
|
||||||
|
macro conforms to
|
||||||
|
.St -isoC-99 .
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: isnan_ieee754.c,v 1.3 2003/10/27 00:05:46 kleink Exp $ */
|
/* $NetBSD: isnand_ieee754.c,v 1.1 2004/03/04 23:42:39 kleink Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1992, 1993
|
* Copyright (c) 1992, 1993
|
||||||
|
@ -40,25 +40,29 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: isnan_ieee754.c,v 1.3 2003/10/27 00:05:46 kleink Exp $");
|
__RCSID("$NetBSD: isnand_ieee754.c,v 1.1 2004/03/04 23:42:39 kleink Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* LIBC_SCCS and not lint */
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
#include "namespace.h"
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <machine/ieee.h>
|
#include <machine/ieee.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
|
/* libc.so.12 ABI compatbility */
|
||||||
#ifdef __weak_alias
|
#ifdef __weak_alias
|
||||||
__weak_alias(isnan,_isnan)
|
__weak_alias(isnan,__isnand)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 7.12.3.4 isnan - test for a NaN
|
||||||
|
* IEEE 754 double-precision version
|
||||||
|
*/
|
||||||
int
|
int
|
||||||
isnan(double d)
|
__isnand(double x)
|
||||||
{
|
{
|
||||||
union ieee_double_u u;
|
union ieee_double_u u;
|
||||||
|
|
||||||
u.dblu_d = d;
|
u.dblu_d = x;
|
||||||
|
|
||||||
return (u.dblu_dbl.dbl_exp == DBL_EXP_INFNAN &&
|
return (u.dblu_dbl.dbl_exp == DBL_EXP_INFNAN &&
|
||||||
(u.dblu_dbl.dbl_frach != 0 || u.dblu_dbl.dbl_fracl != 0));
|
(u.dblu_dbl.dbl_frach != 0 || u.dblu_dbl.dbl_fracl != 0));
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: isinfl_dbl_ieee754.c,v 1.2 2003/10/24 10:30:36 kleink Exp $ */
|
/* $NetBSD: isnanf_ieee754.c,v 1.1 2004/03/04 23:42:39 kleink Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 1992, 1993
|
* Copyright (c) 1992, 1993
|
||||||
|
@ -40,38 +40,24 @@
|
||||||
#if 0
|
#if 0
|
||||||
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
static char sccsid[] = "@(#)isinf.c 8.1 (Berkeley) 6/4/93";
|
||||||
#else
|
#else
|
||||||
__RCSID("$NetBSD: isinfl_dbl_ieee754.c,v 1.2 2003/10/24 10:30:36 kleink Exp $");
|
__RCSID("$NetBSD: isnanf_ieee754.c,v 1.1 2004/03/04 23:42:39 kleink Exp $");
|
||||||
#endif
|
#endif
|
||||||
#endif /* LIBC_SCCS and not lint */
|
#endif /* LIBC_SCCS and not lint */
|
||||||
|
|
||||||
#include "namespace.h"
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <machine/ieee.h>
|
#include <machine/ieee.h>
|
||||||
#include <float.h>
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#if 0 /* XXX Currently limited to internal use. */
|
|
||||||
#ifdef __weak_alias
|
|
||||||
__weak_alias(isinfl,_isinfl)
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if LDBL_MANT_DIG != DBL_MANT_DIG
|
|
||||||
#error double / long double mismatch
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* isinfl() for platforms where long double == double.
|
* 7.12.3.4 isnan - test for a NaN
|
||||||
|
* IEEE 754 single-precision version
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
isinfl(long double ld)
|
__isnanf(float x)
|
||||||
{
|
{
|
||||||
union {
|
union ieee_single_u u;
|
||||||
long double ld;
|
|
||||||
struct ieee_double dbl;
|
|
||||||
} u;
|
|
||||||
|
|
||||||
u.ld = ld;
|
u.sngu_f = x;
|
||||||
return (u.dbl.dbl_exp == DBL_EXP_INFNAN &&
|
|
||||||
(u.dbl.dbl_frach == 0 && u.dbl.dbl_fracl == 0));
|
return (u.sngu_sng.sng_exp == SNG_EXP_INFNAN &&
|
||||||
|
u.sngu_sng.sng_frac != 0);
|
||||||
}
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: namespace.h,v 1.83 2004/02/19 19:22:51 christos Exp $ */
|
/* $NetBSD: namespace.h,v 1.84 2004/03/04 23:42:39 kleink Exp $ */
|
||||||
|
|
||||||
/*-
|
/*-
|
||||||
* Copyright (c) 1997-2002 The NetBSD Foundation, Inc.
|
* Copyright (c) 1997-2002 The NetBSD Foundation, Inc.
|
||||||
|
@ -331,10 +331,6 @@
|
||||||
#define initstate _initstate
|
#define initstate _initstate
|
||||||
#define innetgr _innetgr
|
#define innetgr _innetgr
|
||||||
#define isatty _isatty
|
#define isatty _isatty
|
||||||
#define isinf _isinf
|
|
||||||
#define isinfl _isinfl
|
|
||||||
#define isnan _isnan
|
|
||||||
#define isnanl _isnanl
|
|
||||||
#define jrand48 _jrand48
|
#define jrand48 _jrand48
|
||||||
#define kill _kill
|
#define kill _kill
|
||||||
#define l64a _l64a
|
#define l64a _l64a
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
/* $NetBSD: math.h,v 1.3 2004/01/20 19:52:40 kleink Exp $ */
|
/* $NetBSD: math.h,v 1.4 2004/03/04 23:42:38 kleink Exp $ */
|
||||||
|
|
||||||
#define __INFINITY 1.0E+39F
|
#define __INFINITY 1.0E+39F
|
||||||
|
|
||||||
|
#define __isinf(__x) (0)
|
||||||
|
#define __isnan(__x) (0)
|
||||||
|
|
||||||
#if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) && \
|
#if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) && \
|
||||||
!defined(_XOPEN_SOURCE) || \
|
!defined(_XOPEN_SOURCE) || \
|
||||||
((__STDC_VERSION__ - 0) >= 199901L) || \
|
((__STDC_VERSION__ - 0) >= 199901L) || \
|
||||||
|
|
Loading…
Reference in New Issue