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