1*39d628a0SDimitry Andric //===-- MathExtras.cpp - Implement the MathExtras header --------------===//
2*39d628a0SDimitry Andric //
3*39d628a0SDimitry Andric //                     The LLVM Compiler Infrastructure
4*39d628a0SDimitry Andric //
5*39d628a0SDimitry Andric // This file is distributed under the University of Illinois Open Source
6*39d628a0SDimitry Andric // License. See LICENSE.TXT for details.
7*39d628a0SDimitry Andric //
8*39d628a0SDimitry Andric //===----------------------------------------------------------------------===//
9*39d628a0SDimitry Andric //
10*39d628a0SDimitry Andric // This file implements the MathExtras.h header
11*39d628a0SDimitry Andric //
12*39d628a0SDimitry Andric //===----------------------------------------------------------------------===//
13*39d628a0SDimitry Andric 
14*39d628a0SDimitry Andric #include "llvm/Support/MathExtras.h"
15*39d628a0SDimitry Andric 
16*39d628a0SDimitry Andric #ifdef _MSC_VER
17*39d628a0SDimitry Andric #include <limits>
18*39d628a0SDimitry Andric #else
19*39d628a0SDimitry Andric #include <math.h>
20*39d628a0SDimitry Andric #endif
21*39d628a0SDimitry Andric 
22*39d628a0SDimitry Andric namespace llvm {
23*39d628a0SDimitry Andric 
24*39d628a0SDimitry Andric #if defined(_MSC_VER)
25*39d628a0SDimitry Andric   // Visual Studio defines the HUGE_VAL class of macros using purposeful
26*39d628a0SDimitry Andric   // constant arithmetic overflow, which it then warns on when encountered.
27*39d628a0SDimitry Andric   const float huge_valf = std::numeric_limits<float>::infinity();
28*39d628a0SDimitry Andric #else
29*39d628a0SDimitry Andric   const float huge_valf = HUGE_VALF;
30*39d628a0SDimitry Andric #endif
31*39d628a0SDimitry Andric 
32*39d628a0SDimitry Andric }
33