#pragma once

#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif

#ifndef M_SQRT1_2
#define M_SQRT1_2 0.707106781186547524401
#endif

#ifdef _MSC_VER
#include <float.h>

namespace std {
	
	inline int isnan( const double & v ){ return _isnan(v); }
	inline int isnan( const float & v ){ return _isnan(v); }
	inline int isfinite( const double & v ){ return _finite(v); }
	inline int isfinite( const float & v ){ return _finite(v); }
}

using std::isnan;
using std::isfinite;

#endif
