|  |  |  | @ -36,7 +36,7 @@ namespace glm | 
			
		
	
		
			
				
					|  |  |  |  | 		i = 0x5f375a86 - (i >> 1); | 
			
		
	
		
			
				
					|  |  |  |  | 		//x = *(float*)&i; | 
			
		
	
		
			
				
					|  |  |  |  | 		//x = *((float*)(char*)&i); | 
			
		
	
		
			
				
					|  |  |  |  | 		tmp = detail::uif(i).f; | 
			
		
	
		
			
				
					|  |  |  |  | 		tmp = detail::uif32(i).f; | 
			
		
	
		
			
				
					|  |  |  |  | 		tmp = tmp * (1.5f - xhalf * tmp * tmp); | 
			
		
	
		
			
				
					|  |  |  |  | 		return genType(tmp); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
	
		
			
				
					|  |  |  | @ -53,30 +53,30 @@ namespace glm | 
			
		
	
		
			
				
					|  |  |  |  | 		return abs(x); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	template <typename valType> | 
			
		
	
		
			
				
					|  |  |  |  | 	template <typename valType, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 	GLM_FUNC_QUALIFIER valType fastLength | 
			
		
	
		
			
				
					|  |  |  |  | 	( | 
			
		
	
		
			
				
					|  |  |  |  | 		detail::tvec2<valType> const & x | 
			
		
	
		
			
				
					|  |  |  |  | 		detail::tvec2<valType, P> const & x | 
			
		
	
		
			
				
					|  |  |  |  | 	) | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | 		valType sqr = x.x * x.x + x.y * x.y; | 
			
		
	
		
			
				
					|  |  |  |  | 		return fastSqrt(sqr); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	template <typename valType> | 
			
		
	
		
			
				
					|  |  |  |  | 	template <typename valType, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 	GLM_FUNC_QUALIFIER valType fastLength | 
			
		
	
		
			
				
					|  |  |  |  | 	( | 
			
		
	
		
			
				
					|  |  |  |  | 		detail::tvec3<valType> const & x | 
			
		
	
		
			
				
					|  |  |  |  | 		detail::tvec3<valType, P> const & x | 
			
		
	
		
			
				
					|  |  |  |  | 	) | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | 		valType sqr = x.x * x.x + x.y * x.y + x.z * x.z; | 
			
		
	
		
			
				
					|  |  |  |  | 		return fastSqrt(sqr); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	template <typename valType> | 
			
		
	
		
			
				
					|  |  |  |  | 	template <typename valType, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 	GLM_FUNC_QUALIFIER valType fastLength | 
			
		
	
		
			
				
					|  |  |  |  | 	( | 
			
		
	
		
			
				
					|  |  |  |  | 		detail::tvec4<valType> const & x | 
			
		
	
		
			
				
					|  |  |  |  | 		detail::tvec4<valType, P> const & x | 
			
		
	
		
			
				
					|  |  |  |  | 	) | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | 		valType sqr = x.x * x.x + x.y * x.y + x.z * x.z + x.w * x.w; | 
			
		
	
	
		
			
				
					|  |  |  | @ -104,30 +104,30 @@ namespace glm | 
			
		
	
		
			
				
					|  |  |  |  | 		return x > genType(0) ? genType(1) : -genType(1); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	template <typename valType> | 
			
		
	
		
			
				
					|  |  |  |  | 	GLM_FUNC_QUALIFIER detail::tvec2<valType> fastNormalize | 
			
		
	
		
			
				
					|  |  |  |  | 	template <typename valType, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 	GLM_FUNC_QUALIFIER detail::tvec2<valType, P> fastNormalize | 
			
		
	
		
			
				
					|  |  |  |  | 	( | 
			
		
	
		
			
				
					|  |  |  |  | 		detail::tvec2<valType> const & x | 
			
		
	
		
			
				
					|  |  |  |  | 		detail::tvec2<valType, P> const & x | 
			
		
	
		
			
				
					|  |  |  |  | 	) | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | 		valType sqr = x.x * x.x + x.y * x.y; | 
			
		
	
		
			
				
					|  |  |  |  | 		return x * fastInverseSqrt(sqr); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	template <typename valType> | 
			
		
	
		
			
				
					|  |  |  |  | 	GLM_FUNC_QUALIFIER detail::tvec3<valType> fastNormalize | 
			
		
	
		
			
				
					|  |  |  |  | 	template <typename valType, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 	GLM_FUNC_QUALIFIER detail::tvec3<valType, P> fastNormalize | 
			
		
	
		
			
				
					|  |  |  |  | 	( | 
			
		
	
		
			
				
					|  |  |  |  | 		detail::tvec3<valType> const & x | 
			
		
	
		
			
				
					|  |  |  |  | 		detail::tvec3<valType, P> const & x | 
			
		
	
		
			
				
					|  |  |  |  | 	) | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | 		valType sqr = x.x * x.x + x.y * x.y + x.z * x.z; | 
			
		
	
		
			
				
					|  |  |  |  | 		return x * fastInverseSqrt(sqr); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	template <typename valType> | 
			
		
	
		
			
				
					|  |  |  |  | 	GLM_FUNC_QUALIFIER detail::tvec4<valType> fastNormalize | 
			
		
	
		
			
				
					|  |  |  |  | 	template <typename valType, precision P> | 
			
		
	
		
			
				
					|  |  |  |  | 	GLM_FUNC_QUALIFIER detail::tvec4<valType, P> fastNormalize | 
			
		
	
		
			
				
					|  |  |  |  | 	( | 
			
		
	
		
			
				
					|  |  |  |  | 		detail::tvec4<valType> const & x | 
			
		
	
		
			
				
					|  |  |  |  | 		detail::tvec4<valType, P> const & x | 
			
		
	
		
			
				
					|  |  |  |  | 	) | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | 		valType sqr = x.x * x.x + x.y * x.y + x.z * x.z + x.w * x.w; | 
			
		
	
	
		
			
				
					|  |  |  | 
 |