2001-08-21 09:23:53 +00:00
/*************************************************************************
*
* $ Id $
*
* Copyright ( C ) 2001 Bjorn Reese < breese @ users . sourceforge . net >
*
* Permission to use , copy , modify , and distribute this software for any
* purpose with or without fee is hereby granted , provided that the above
* copyright notice and this permission notice appear in all copies .
*
* THIS SOFTWARE IS PROVIDED ` ` AS IS ' ' AND WITHOUT ANY EXPRESS OR IMPLIED
* WARRANTIES , INCLUDING , WITHOUT LIMITATION , THE IMPLIED WARRANTIES OF
* MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE . THE AUTHORS AND
* CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER .
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2002-01-19 15:40:18 +00:00
# ifndef TRIO_NAN_H
# define TRIO_NAN_H
# include "triodef.h"
2001-08-21 09:23:53 +00:00
# ifdef __cplusplus
extern " C " {
# endif
2002-03-27 16:12:22 +00:00
enum {
TRIO_FP_INFINITE ,
TRIO_FP_NAN ,
TRIO_FP_NORMAL ,
TRIO_FP_SUBNORMAL ,
TRIO_FP_ZERO
} ;
2001-08-21 09:23:53 +00:00
/*
* Return NaN ( Not - a - Number ) .
*/
2002-01-19 15:40:18 +00:00
TRIO_PUBLIC double trio_nan ( void ) ;
2001-08-21 09:23:53 +00:00
/*
* Return positive infinity .
*/
2002-01-19 15:40:18 +00:00
TRIO_PUBLIC double trio_pinf ( void ) ;
2001-08-21 09:23:53 +00:00
/*
* Return negative infinity .
*/
2002-01-19 15:40:18 +00:00
TRIO_PUBLIC double trio_ninf ( void ) ;
2001-08-21 09:23:53 +00:00
/*
* If number is a NaN return non - zero , otherwise return zero .
*/
2002-01-19 15:40:18 +00:00
TRIO_PUBLIC int trio_isnan ( double number ) ;
2001-08-21 09:23:53 +00:00
/*
* If number is positive infinity return 1 , if number is negative
* infinity return - 1 , otherwise return 0.
*/
2002-01-19 15:40:18 +00:00
TRIO_PUBLIC int trio_isinf ( double number ) ;
2001-08-21 09:23:53 +00:00
2002-03-27 16:12:22 +00:00
/*
* If number is finite return non - zero , otherwise return zero .
*/
TRIO_PUBLIC int trio_isfinite ( double number ) ;
TRIO_PUBLIC int trio_signbit ( double number ) ;
TRIO_PUBLIC int trio_fpclassify ( double number ) ;
TRIO_PUBLIC double trio_nzero ( void ) ;
2001-08-21 09:23:53 +00:00
# ifdef __cplusplus
}
# endif
2002-01-19 15:40:18 +00:00
# endif /* TRIO_NAN_H */