/**
* @file math.h
- * @copy 2012 MinGW.org project
+ * Copyright 2012, 2013 MinGW.org project
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
#ifndef _MATH_H_
#define _MATH_H_
#pragma GCC system_header
-
-/* All the headers include this file. */
#include <_mingw.h>
/*
* __imp__HUGE is a pointer to the actual variable _HUGE in
* MSVCRT.DLL. If we used _HUGE directly we would get a pointer
* to a thunk function.
- *
- * NOTE: The CRTDLL version uses _HUGE_dll instead.
*/
-#if __MINGW_GNUC_PREREQ(3, 3)
#define HUGE_VAL __builtin_huge_val()
-#else
-
-#ifndef __DECLSPEC_SUPPORTED
-
-#ifdef __MSVCRT__
-extern double* _imp___HUGE;
-#define HUGE_VAL (*_imp___HUGE)
-#else
-/* CRTDLL */
-extern double* _imp___HUGE_dll;
-#define HUGE_VAL (*_imp___HUGE_dll)
-#endif
-
-#else /* __DECLSPEC_SUPPORTED */
-
-#ifdef __MSVCRT__
-__MINGW_IMPORT double _HUGE;
-#define HUGE_VAL _HUGE
-#else
-/* CRTDLL */
-__MINGW_IMPORT double _HUGE_dll;
-#define HUGE_VAL _HUGE_dll
-#endif
-
-#endif /* __DECLSPEC_SUPPORTED */
-#endif /* __MINGW_GNUC_PREREQ(3, 3) */
-
struct _exception
{
#endif /* Not _NO_OLDNAMES */
/* This require msvcr70.dll or higher. */
-#if __MSVCRT_VERSION__ >= 0x0700
_CRTIMP int __cdecl _set_SSE2_enable (int);
-#endif /* __MSVCRT_VERSION__ >= 0x0700 */
#endif /* __STRICT_ANSI__ */
#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \
|| !defined __STRICT_ANSI__ || defined __cplusplus
-#if __MINGW_GNUC_PREREQ(3, 3)
#define HUGE_VALF __builtin_huge_valf()
#define HUGE_VALL __builtin_huge_vall()
#define INFINITY __builtin_inf()
#define NAN __builtin_nan("")
-#else
-extern const float __INFF;
-#define HUGE_VALF __INFF
-extern const long double __INFL;
-#define HUGE_VALL __INFL
-#define INFINITY HUGE_VALF
-extern const double __QNAN;
-#define NAN __QNAN
-#endif /* __MINGW_GNUC_PREREQ(3, 3) */
/* Use the compiler's builtin define for FLT_EVAL_METHOD to
set float_t and double_t. */