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 { |