1///////////////////////////////////////////////////////////////////////////////////////////////////
2// OpenGL Mathematics Copyright (c) 2005 - 2014 G-Truc Creation (www.g-truc.net)
3///////////////////////////////////////////////////////////////////////////////////////////////////
4// Created : 2007-03-16
5// Updated : 2008-10-24
6// Licence : This source is under MIT License
7// File    : glm/gtx/compatibility.inl
8///////////////////////////////////////////////////////////////////////////////////////////////////
9
10namespace glm
11{
12	// isfinite
13	template <typename genType>
14	GLM_FUNC_QUALIFIER bool isfinite(
15		genType const & x)
16	{
17#		if(GLM_LANG & GLM_LANG_CXX11_FLAG)
18			return std::isfinite(x) != 0;
19#		elif(GLM_COMPILER & GLM_COMPILER_VC)
20			return _finite(x);
21#		elif(GLM_COMPILER & GLM_COMPILER_GCC && GLM_PLATFORM & GLM_PLATFORM_ANDROID)
22			return _isfinite(x) != 0;
23#		else
24			return isfinite(x) != 0;
25#		endif
26	}
27
28	template <typename T, precision P>
29	GLM_FUNC_QUALIFIER detail::tvec2<bool, P> isfinite(
30		detail::tvec2<T, P> const & x)
31	{
32		return detail::tvec2<bool, P>(
33			isfinite(x.x),
34			isfinite(x.y));
35	}
36
37	template <typename T, precision P>
38	GLM_FUNC_QUALIFIER detail::tvec3<bool, P> isfinite(
39		detail::tvec3<T, P> const & x)
40	{
41		return detail::tvec3<bool, P>(
42			isfinite(x.x),
43			isfinite(x.y),
44			isfinite(x.z));
45	}
46
47	template <typename T, precision P>
48	GLM_FUNC_QUALIFIER detail::tvec4<bool, P> isfinite(
49		detail::tvec4<T, P> const & x)
50	{
51		return detail::tvec4<bool, P>(
52			isfinite(x.x),
53			isfinite(x.y),
54			isfinite(x.z),
55			isfinite(x.w));
56	}
57
58}//namespace glm
59