|
|
|
@ -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; |
|
|
|
|