| version 1.6, 2003/12/08 07:15:28 |
version 1.14, 2016/06/29 08:16:11 |
|
|
| /* |
/* |
| * $OpenXM: OpenXM_contrib2/asir2000/include/interval.h,v 1.5 2002/01/08 04:14:38 kondoh Exp $ |
* $OpenXM: OpenXM_contrib2/asir2000/include/interval.h,v 1.13 2015/08/14 13:51:55 fujimoto Exp $ |
| */ |
*/ |
| #ifndef _INTERVAL_H |
#ifndef _INTERVAL_H |
| #define _INTERVAL_H |
#define _INTERVAL_H |
| Line 33 static char *Interval_dummy; |
|
| Line 33 static char *Interval_dummy; |
|
| #ifdef linux |
#ifdef linux |
| #include <fpu_control.h> |
#include <fpu_control.h> |
| #if 1 |
#if 1 |
| |
|
| |
#if defined(__ARM_ARCH) || defined(ANDROID) |
| |
#ifndef _FPU_RC_NEAREST |
| |
#define _FPU_RC_NEAREST 0x0 |
| |
#endif |
| |
#ifndef _FPU_RC_DOWN |
| |
#define _FPU_RC_DOWN 0x400 |
| |
#endif |
| |
#ifndef _FPU_RC_UP |
| |
#define _FPU_RC_UP 0x800 |
| |
#endif |
| |
#ifndef _FPU_RC_ZERO |
| |
#define _FPU_RC_ZERO 0xC00 |
| |
#endif |
| |
#endif /* __ARM_ARCH */ |
| |
|
| #define LINUX_FPU_RC_MASK 0xf3ff |
#define LINUX_FPU_RC_MASK 0xf3ff |
| #define LINUX_FPU_SETCW(c) {_FPU_GETCW(__fpu_control);\ |
#define LINUX_FPU_SETCW(c) \ |
| _FPU_SETCW(__fpu_control & LINUX_FPU_RC_MASK | c);} |
{fpu_control_t __tmp__; _FPU_GETCW(__fpu_control);\ |
| |
__tmp__ = (__fpu_control & LINUX_FPU_RC_MASK | c);\ |
| |
_FPU_SETCW(__tmp__);} |
| #define FPNEAREST LINUX_FPU_SETCW(_FPU_RC_NEAREST); |
#define FPNEAREST LINUX_FPU_SETCW(_FPU_RC_NEAREST); |
| #define FPPLUSINF LINUX_FPU_SETCW(_FPU_RC_UP); |
#define FPPLUSINF LINUX_FPU_SETCW(_FPU_RC_UP); |
| #define FPMINUSINF LINUX_FPU_SETCW(_FPU_RC_DOWN); |
#define FPMINUSINF LINUX_FPU_SETCW(_FPU_RC_DOWN); |
| Line 66 static char *Interval_dummy; |
|
| Line 84 static char *Interval_dummy; |
|
| #endif |
#endif |
| #endif |
#endif |
| |
|
| #if defined(__FreeBSD__) |
#if defined(__FreeBSD__) && defined(__GNUC__) |
| #include <floatingpoint.h> |
#include <floatingpoint.h> |
| #define FPNEAREST fpsetround(FP_RN); |
#define FPNEAREST fpsetround(FP_RN); |
| #define FPPLUSINF fpsetround(FP_RP); |
#define FPPLUSINF fpsetround(FP_RP); |
| Line 74 static char *Interval_dummy; |
|
| Line 92 static char *Interval_dummy; |
|
| #define FPTOZERO fpsetround(FP_RZ); |
#define FPTOZERO fpsetround(FP_RZ); |
| #endif |
#endif |
| |
|
| #if defined(VISUAL) |
#if defined(VISUAL) || defined(__MINGW32__) |
| #include <float.h> |
#include <float.h> |
| #define FPNEAREST _controlfp(_RC_NEAR,_MCW_RC); |
#define FPNEAREST _controlfp(_RC_NEAR,_MCW_RC); |
| #define FPPLUSINF _controlfp(_RC_UP,_MCW_RC); |
#define FPPLUSINF _controlfp(_RC_UP,_MCW_RC); |
| Line 99 static char *Interval_dummy; |
|
| Line 117 static char *Interval_dummy; |
|
| |
|
| #define MID_PRINTF_G 2 |
#define MID_PRINTF_G 2 |
| #define MID_PRINTF_E 3 |
#define MID_PRINTF_E 3 |
| |
|
| #undef N_C |
|
| #undef N_M |
|
| #undef N_LM |
|
| #undef N_GF2N |
|
| #undef N_GFPN |
|
| #undef N_GFS |
|
| #undef N_GFSN |
|
| #define N_NEXT_B (N_B+1) |
|
| #define N_Quad (N_NEXT_B) |
|
| #define N_IP (N_NEXT_B+1) |
|
| #define N_IntervalDouble (N_NEXT_B+2) |
|
| #define N_IntervalQuad (N_NEXT_B+3) |
|
| #define N_IntervalBigFloat (N_NEXT_B+4) |
|
| #define N_PRE_C N_IntervalBigFloat |
|
| #define N_C (N_NEXT_B+5) |
|
| #define N_M (N_NEXT_B+6) |
|
| #define N_LM (N_NEXT_B+7) |
|
| #define N_GF2N (N_NEXT_B+8) |
|
| #define N_GFPN (N_NEXT_B+9) |
|
| #define N_GFS (N_NEXT_B+10) |
|
| #define N_GFSN (N_NEXT_B+11) |
|
| |
|
| /* data structures */ |
/* data structures */ |
| struct oItv { |
struct oItv { |