75 lines
1.5 KiB
C
75 lines
1.5 KiB
C
|
|
/* Copyright (C) 1995-2003 by Digital Mars, www.digitalmars.com */
|
|
|
|
#if __DMC__ || __RCC__
|
|
#pragma once
|
|
#endif
|
|
|
|
#ifndef __FLTENV_H
|
|
#define __FLTENV_H 1
|
|
|
|
#if __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct __fenv_t
|
|
{
|
|
unsigned short status;
|
|
unsigned short control;
|
|
unsigned short round;
|
|
unsigned short reserved[2];
|
|
} fenv_t;
|
|
|
|
typedef int fexcept_t;
|
|
|
|
#define FE_INVALID 1
|
|
#define FE_DENORMAL 2
|
|
#define FE_DIVBYZERO 4
|
|
#define FE_OVERFLOW 8
|
|
#define FE_UNDERFLOW 0x10
|
|
#define FE_INEXACT 0x20
|
|
#define FE_ALL_EXCEPT 0x3F
|
|
|
|
#define FE_TONEAREST 0
|
|
#define FE_UPWARD 0x800
|
|
#define FE_DOWNWARD 0x400
|
|
#define FE_TOWARDZERO 0xC00
|
|
|
|
extern fenv_t __cdecl _FE_DFL_ENV;
|
|
|
|
#define FE_DFL_ENV (&_FE_DFL_ENV)
|
|
|
|
#define FE_FLTPREC 0
|
|
#define FE_DBLPREC 0x200
|
|
#define FE_LDBLPREC 0x300
|
|
|
|
int __cdecl fetestexcept(int excepts);
|
|
int __cdecl feraiseexcept(int excepts);
|
|
int __cdecl feclearexcept(int excepts);
|
|
//int __cdecl fegetexcept(fexcept_t *flagp,int excepts);
|
|
//int __cdecl fesetexcept(const fexcept_t *flagp,int excepts);
|
|
int __cdecl fegetround(void);
|
|
int __cdecl fesetround(int round);
|
|
int __cdecl fegetprec(void);
|
|
int __cdecl fesetprec(int prec);
|
|
int __cdecl fegetenv(fenv_t *envp);
|
|
int __cdecl fesetenv(const fenv_t *envp);
|
|
//void __cdecl feprocentry(fenv_t *envp);
|
|
//void __cdecl feprocexit(const fenv_t *envp);
|
|
|
|
int __cdecl fegetexceptflag(fexcept_t *flagp,int excepts);
|
|
int __cdecl fesetexceptflag(const fexcept_t *flagp,int excepts);
|
|
int __cdecl feholdexcept(fenv_t *envp);
|
|
int __cdecl feupdateenv(const fenv_t *envp);
|
|
|
|
#if __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|