📄 trionan.h
字号:
/************************************************************************* * * $Id: trionan.h,v 1.9 2005/03/27 18:52:45 breese Exp $ * * 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. * ************************************************************************/#ifndef TRIO_TRIONAN_H#define TRIO_TRIONAN_H#include "triodef.h"#ifdef __cplusplusextern "C" {#endif#if !defined(TRIO_PUBLIC_NAN)# if !defined(TRIO_PUBLIC)# define TRIO_PUBLIC# endif# define TRIO_PUBLIC_NAN TRIO_PUBLIC#endif enum { TRIO_FP_INFINITE, TRIO_FP_NAN, TRIO_FP_NORMAL, TRIO_FP_SUBNORMAL, TRIO_FP_ZERO};/************************************************************************* * Dependencies */#if defined(TRIO_EMBED_NAN)/* * The application that trionan is embedded in must define which functions * it uses. * * The following resolves internal dependencies. */ # if defined(TRIO_FUNC_ISNAN) \ || defined(TRIO_FUNC_ISINF)# if !defined(TRIO_FUNC_FPCLASSIFY_AND_SIGNBIT)# define TRIO_FUNC_FPCLASSIFY_AND_SIGNBIT# endif# endif# if defined(TRIO_FUNC_NAN)# if !defined(TRIO_FUNC_PINF)# define TRIO_FUNC_PINF# endif# endif # if defined(TRIO_FUNC_NINF)# if !defined(TRIO_FUNC_PINF)# define TRIO_FUNC_PINF# endif# endif#else/* * When trionan is not embedded all all functions are defined. */ # define TRIO_FUNC_NAN# define TRIO_FUNC_PINF# define TRIO_FUNC_NINF# define TRIO_FUNC_NZERO# define TRIO_FUNC_ISNAN# define TRIO_FUNC_ISINF# define TRIO_FUNC_ISFINITE# define TRIO_FUNC_SIGNBIT# define TRIO_FUNC_FPCLASSIFY# define TRIO_FUNC_FPCLASSIFY_AND_SIGNBIT #endif/************************************************************************* * Functions *//* * Return NaN (Not-a-Number). */#if defined(TRIO_FUNC_NAN)TRIO_PUBLIC_NAN doubletrio_nanTRIO_PROTO((void));#endif/* * Return positive infinity. */#if defined(TRIO_FUNC_PINF)TRIO_PUBLIC_NAN doubletrio_pinfTRIO_PROTO((void));#endif/* * Return negative infinity. */#if defined(TRIO_FUNC_NINF)TRIO_PUBLIC_NAN doubletrio_ninfTRIO_PROTO((void));#endif/* * Return negative zero. */#if defined(TRIO_FUNC_NZERO)TRIO_PUBLIC_NAN doubletrio_nzeroTRIO_PROTO((TRIO_NOARGS));#endif/* * If number is a NaN return non-zero, otherwise return zero. */#if defined(TRIO_FUNC_ISNAN)TRIO_PUBLIC_NAN inttrio_isnanTRIO_PROTO((double number));#endif/* * If number is positive infinity return 1, if number is negative * infinity return -1, otherwise return 0. */#if defined(TRIO_FUNC_ISINF)TRIO_PUBLIC_NAN inttrio_isinfTRIO_PROTO((double number));#endif/* * If number is finite return non-zero, otherwise return zero. */#if defined(TRIO_FUNC_ISFINITE)TRIO_PUBLIC_NAN inttrio_isfiniteTRIO_PROTO((double number));#endif#if defined(TRIO_FUNC_SIGNBIT)TRIO_PUBLIC_NAN inttrio_signbitTRIO_PROTO((double number));#endif#if defined(TRIO_FUNC_FPCLASSIFY)TRIO_PUBLIC_NAN inttrio_fpclassifyTRIO_PROTO((double number));#endif#if defined(TRIO_FUNC_FPCLASSIFY_AND_SIGNBIT)TRIO_PUBLIC_NAN inttrio_fpclassify_and_signbitTRIO_PROTO((double number, int *is_negative));#endif#ifdef __cplusplus}#endif#endif /* TRIO_TRIONAN_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -