mirror of
https://github.com/g-truc/glm.git
synced 2025-04-10 07:18:54 +00:00
Updated naming conventions
This commit is contained in:
parent
cb4ad8a949
commit
572e379dd3
4 changed files with 116 additions and 50 deletions
|
@ -142,7 +142,7 @@ namespace glm
|
|||
//! Multiply matrix x by matrix y component-wise, i.e.,
|
||||
//! result[i][j] is the scalar product of x[i][j] and y[i][j].
|
||||
//! (From GLM_GTX_simd_mat4 extension).
|
||||
detail::fmat4x4SIMD simdMatrixCompMult(
|
||||
detail::fmat4x4SIMD matrixCompMult(
|
||||
detail::fmat4x4SIMD const & x,
|
||||
detail::fmat4x4SIMD const & y);
|
||||
|
||||
|
@ -150,23 +150,23 @@ namespace glm
|
|||
//! and the second parameter r as a row vector
|
||||
//! and does a linear algebraic matrix multiply c * r.
|
||||
//! (From GLM_GTX_simd_mat4 extension).
|
||||
detail::fmat4x4SIMD simdOuterProduct(
|
||||
detail::fmat4x4SIMD outerProduct(
|
||||
detail::fvec4SIMD const & c,
|
||||
detail::fvec4SIMD const & r);
|
||||
|
||||
//! Returns the transposed matrix of x
|
||||
//! (From GLM_GTX_simd_mat4 extension).
|
||||
detail::fmat4x4SIMD simdTranspose(
|
||||
detail::fmat4x4SIMD transpose(
|
||||
detail::fmat4x4SIMD const & x);
|
||||
|
||||
//! Return the determinant of a mat4 matrix.
|
||||
//! (From GLM_GTX_simd_mat4 extension).
|
||||
float simdDeterminant(
|
||||
float determinant(
|
||||
detail::fmat4x4SIMD const & m);
|
||||
|
||||
//! Return the inverse of a mat4 matrix.
|
||||
//! (From GLM_GTX_simd_mat4 extension).
|
||||
detail::fmat4x4SIMD simdInverse(
|
||||
detail::fmat4x4SIMD inverse(
|
||||
detail::fmat4x4SIMD const & m);
|
||||
|
||||
}//namespace simd_mat4
|
||||
|
|
|
@ -250,7 +250,7 @@ namespace simd_mat4
|
|||
return Result;
|
||||
}
|
||||
|
||||
inline detail::fmat4x4SIMD simdMatrixCompMult
|
||||
inline detail::fmat4x4SIMD matrixCompMult
|
||||
(
|
||||
detail::fmat4x4SIMD const & x,
|
||||
detail::fmat4x4SIMD const & y
|
||||
|
@ -264,7 +264,7 @@ namespace simd_mat4
|
|||
return result;
|
||||
}
|
||||
|
||||
inline detail::fmat4x4SIMD simdOuterProduct
|
||||
inline detail::fmat4x4SIMD outerProduct
|
||||
(
|
||||
detail::fvec4SIMD const & c,
|
||||
detail::fvec4SIMD const & r
|
||||
|
@ -273,21 +273,21 @@ namespace simd_mat4
|
|||
|
||||
}
|
||||
|
||||
inline detail::fmat4x4SIMD simdTranspose(detail::fmat4x4SIMD const & m)
|
||||
inline detail::fmat4x4SIMD transpose(detail::fmat4x4SIMD const & m)
|
||||
{
|
||||
detail::fmat4x4SIMD result;
|
||||
detail::sse_transpose_ps(&m[0].Data, &result[0].Data);
|
||||
return result;
|
||||
}
|
||||
|
||||
inline float simdDeterminant(detail::fmat4x4SIMD const & m)
|
||||
inline float determinant(detail::fmat4x4SIMD const & m)
|
||||
{
|
||||
float Result;
|
||||
_mm_store_ss(&Result, detail::sse_det_ps(&m[0].Data));
|
||||
return Result;
|
||||
}
|
||||
|
||||
inline detail::fmat4x4SIMD simdInverse(detail::fmat4x4SIMD const & m)
|
||||
inline detail::fmat4x4SIMD inverse(detail::fmat4x4SIMD const & m)
|
||||
{
|
||||
detail::fmat4x4SIMD result;
|
||||
detail::sse_inverse_ps(&m[0].Data, &result[0].Data);
|
||||
|
|
|
@ -336,23 +336,47 @@ namespace glm
|
|||
|
||||
//! Returns the length of x, i.e., sqrt(x * x).
|
||||
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
||||
float simdLength(
|
||||
float length(
|
||||
detail::fvec4SIMD const & x);
|
||||
|
||||
//! Returns the length of x, i.e., sqrt(x * x).
|
||||
//! Less accurate but much faster than simdLength.
|
||||
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
||||
float fastLength(
|
||||
detail::fvec4SIMD const & x);
|
||||
|
||||
//! Returns the length of x, i.e., sqrt(x * x).
|
||||
//! Slightly more accurate but much slower than simdLength.
|
||||
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
||||
float niceLength(
|
||||
detail::fvec4SIMD const & x);
|
||||
|
||||
//! Returns the length of x, i.e., sqrt(x * x).
|
||||
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
||||
detail::fvec4SIMD simdLength4(
|
||||
detail::fvec4SIMD length4(
|
||||
detail::fvec4SIMD const & x);
|
||||
|
||||
//! Returns the length of x, i.e., sqrt(x * x).
|
||||
//! Less accurate but much faster than simdLength4.
|
||||
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
||||
detail::fvec4SIMD fastLength4(
|
||||
detail::fvec4SIMD const & x);
|
||||
|
||||
//! Returns the length of x, i.e., sqrt(x * x).
|
||||
//! Slightly more accurate but much slower than simdLength4.
|
||||
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
||||
detail::fvec4SIMD niceLength4(
|
||||
detail::fvec4SIMD const & x);
|
||||
|
||||
//! Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
|
||||
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
||||
float simdDistance(
|
||||
float distance(
|
||||
detail::fvec4SIMD const & p0,
|
||||
detail::fvec4SIMD const & p1);
|
||||
|
||||
//! Returns the distance betwwen p0 and p1, i.e., length(p0 - p1).
|
||||
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
||||
detail::fvec4SIMD simdDistance4(
|
||||
detail::fvec4SIMD distance4(
|
||||
detail::fvec4SIMD const & p0,
|
||||
detail::fvec4SIMD const & p1);
|
||||
|
||||
|
@ -364,25 +388,25 @@ namespace glm
|
|||
|
||||
//! Returns the dot product of x and y, i.e., result = x * y.
|
||||
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
||||
detail::fvec4SIMD simdDot4(
|
||||
detail::fvec4SIMD dot4(
|
||||
detail::fvec4SIMD const & x,
|
||||
detail::fvec4SIMD const & y);
|
||||
|
||||
//! Returns the cross product of x and y.
|
||||
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
||||
detail::fvec4SIMD simdCross(
|
||||
detail::fvec4SIMD cross(
|
||||
detail::fvec4SIMD const & x,
|
||||
detail::fvec4SIMD const & y);
|
||||
|
||||
//! Returns a vector in the same direction as x but with length of 1.
|
||||
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
||||
detail::fvec4SIMD simdNormalize(
|
||||
detail::fvec4SIMD normalize(
|
||||
detail::fvec4SIMD const & x);
|
||||
|
||||
//! Returns a vector in the same direction as x but with length of 1.
|
||||
//! Less accurate but much faster than simdNormalize.
|
||||
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
||||
detail::fvec4SIMD simdFastNormalize(
|
||||
detail::fvec4SIMD fastNormalize(
|
||||
detail::fvec4SIMD const & x);
|
||||
|
||||
//! If dot(Nref, I) < 0.0, return N, otherwise, return -N.
|
||||
|
@ -395,7 +419,7 @@ namespace glm
|
|||
//! For the incident vector I and surface orientation N,
|
||||
//! returns the reflection direction : result = I - 2.0 * dot(N, I) * N.
|
||||
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
||||
detail::fvec4SIMD simdReflect(
|
||||
detail::fvec4SIMD reflect(
|
||||
detail::fvec4SIMD const & I,
|
||||
detail::fvec4SIMD const & N);
|
||||
|
||||
|
@ -403,37 +427,37 @@ namespace glm
|
|||
//! and the ratio of indices of refraction eta,
|
||||
//! return the refraction vector.
|
||||
//! (From GLM_GTX_simd_vec4 extension, geometry functions)
|
||||
detail::fvec4SIMD simdRefract(
|
||||
detail::fvec4SIMD refract(
|
||||
detail::fvec4SIMD const & I,
|
||||
detail::fvec4SIMD const & N,
|
||||
float const & eta);
|
||||
|
||||
//! Returns the positive square root of x.
|
||||
//! (From GLM_GTX_simd_vec4 extension, exponential function)
|
||||
detail::fvec4SIMD simdSqrt(
|
||||
detail::fvec4SIMD sqrt(
|
||||
detail::fvec4SIMD const & x);
|
||||
|
||||
//! Returns the positive square root of x with the nicest quality but very slow.
|
||||
//! Slightly more accurate but much slower than simdSqrt.
|
||||
//! (From GLM_GTX_simd_vec4 extension, exponential function)
|
||||
detail::fvec4SIMD simdNiceSqrt(
|
||||
detail::fvec4SIMD niceSqrt(
|
||||
detail::fvec4SIMD const & x);
|
||||
|
||||
//! Returns the positive square root of x
|
||||
//! Less accurate but much faster than simdSqrt.
|
||||
//! Less accurate but much faster than sqrt.
|
||||
//! (From GLM_GTX_simd_vec4 extension, exponential function)
|
||||
detail::fvec4SIMD simdFastSqrt(
|
||||
detail::fvec4SIMD fastSqrt(
|
||||
detail::fvec4SIMD const & x);
|
||||
|
||||
//! Returns the reciprocal of the positive square root of x.
|
||||
//! (From GLM_GTX_simd_vec4 extension, exponential function)
|
||||
detail::fvec4SIMD simdInversesqrt(
|
||||
detail::fvec4SIMD inversesqrt(
|
||||
detail::fvec4SIMD const & x);
|
||||
|
||||
//! Returns the reciprocal of the positive square root of x.
|
||||
//! Faster than simdInversesqrt but less accurate.
|
||||
//! Faster than inversesqrt but less accurate.
|
||||
//! (From GLM_GTX_simd_vec4 extension, exponential function)
|
||||
detail::fvec4SIMD simdFastInversesqrt(
|
||||
detail::fvec4SIMD fastInversesqrt(
|
||||
detail::fvec4SIMD const & x);
|
||||
|
||||
}//namespace simd_vec4
|
||||
|
|
|
@ -530,25 +530,67 @@ namespace glm
|
|||
return _mm_add_ps(_mm_mul_ps(a.Data, b.Data), c.Data);
|
||||
}
|
||||
|
||||
inline float simdLength
|
||||
inline float length
|
||||
(
|
||||
detail::fvec4SIMD const & x
|
||||
)
|
||||
{
|
||||
detail::fvec4SIMD dot0 = detail::sse_dot_ss(x.Data, x.Data);
|
||||
detail::fvec4SIMD sqt0 = sqrt(dot0);
|
||||
float Result = 0;
|
||||
_mm_store_ss(&Result, detail::sse_len_ps(x.Data));
|
||||
_mm_store_ss(&Result, sqt0.Data);
|
||||
return Result;
|
||||
}
|
||||
|
||||
inline detail::fvec4SIMD simdLength4
|
||||
inline float fastLength
|
||||
(
|
||||
detail::fvec4SIMD const & x
|
||||
)
|
||||
{
|
||||
return detail::sse_len_ps(x.Data);
|
||||
detail::fvec4SIMD dot0 = detail::sse_dot_ss(x.Data, x.Data);
|
||||
detail::fvec4SIMD sqt0 = fastSqrt(dot0);
|
||||
float Result = 0;
|
||||
_mm_store_ss(&Result, sqt0.Data);
|
||||
return Result;
|
||||
}
|
||||
|
||||
inline float simdDistance
|
||||
inline float niceLength
|
||||
(
|
||||
detail::fvec4SIMD const & x
|
||||
)
|
||||
{
|
||||
detail::fvec4SIMD dot0 = detail::sse_dot_ss(x.Data, x.Data);
|
||||
detail::fvec4SIMD sqt0 = niceSqrt(dot0);
|
||||
float Result = 0;
|
||||
_mm_store_ss(&Result, sqt0.Data);
|
||||
return Result;
|
||||
}
|
||||
|
||||
inline detail::fvec4SIMD length4
|
||||
(
|
||||
detail::fvec4SIMD const & x
|
||||
)
|
||||
{
|
||||
return sqrt(dot4(x, x));
|
||||
}
|
||||
|
||||
inline detail::fvec4SIMD fastLength4
|
||||
(
|
||||
detail::fvec4SIMD const & x
|
||||
)
|
||||
{
|
||||
return fastSqrt(dot4(x, x));
|
||||
}
|
||||
|
||||
inline detail::fvec4SIMD niceLength4
|
||||
(
|
||||
detail::fvec4SIMD const & x
|
||||
)
|
||||
{
|
||||
return niceSqrt(dot4(x, x));
|
||||
}
|
||||
|
||||
inline float distance
|
||||
(
|
||||
detail::fvec4SIMD const & p0,
|
||||
detail::fvec4SIMD const & p1
|
||||
|
@ -559,7 +601,7 @@ namespace glm
|
|||
return Result;
|
||||
}
|
||||
|
||||
inline detail::fvec4SIMD simdDistance4
|
||||
inline detail::fvec4SIMD distance4
|
||||
(
|
||||
detail::fvec4SIMD const & p0,
|
||||
detail::fvec4SIMD const & p1
|
||||
|
@ -568,7 +610,7 @@ namespace glm
|
|||
return detail::sse_dst_ps(p0.Data, p1.Data);
|
||||
}
|
||||
|
||||
inline float simdDot
|
||||
inline float dot
|
||||
(
|
||||
detail::fvec4SIMD const & x,
|
||||
detail::fvec4SIMD const & y
|
||||
|
@ -579,7 +621,7 @@ namespace glm
|
|||
return Result;
|
||||
}
|
||||
|
||||
inline detail::fvec4SIMD simdDot4
|
||||
inline detail::fvec4SIMD dot4
|
||||
(
|
||||
detail::fvec4SIMD const & x,
|
||||
detail::fvec4SIMD const & y
|
||||
|
@ -588,7 +630,7 @@ namespace glm
|
|||
return detail::sse_dot_ps(x.Data, y.Data);
|
||||
}
|
||||
|
||||
inline detail::fvec4SIMD simdCross
|
||||
inline detail::fvec4SIMD cross
|
||||
(
|
||||
detail::fvec4SIMD const & x,
|
||||
detail::fvec4SIMD const & y
|
||||
|
@ -597,29 +639,29 @@ namespace glm
|
|||
return detail::sse_xpd_ps(x.Data, y.Data);
|
||||
}
|
||||
|
||||
inline detail::fvec4SIMD simdNormalize
|
||||
inline detail::fvec4SIMD normalize
|
||||
(
|
||||
detail::fvec4SIMD const & x
|
||||
)
|
||||
{
|
||||
__m128 dot0 = detail::sse_dot_ps(x.Data, x.Data);
|
||||
__m128 isr0 = simdInversesqrt(dot0).Data;
|
||||
__m128 isr0 = inversesqrt(dot0).Data;
|
||||
__m128 mul0 = _mm_mul_ps(x.Data, isr0);
|
||||
return mul0;
|
||||
}
|
||||
|
||||
inline detail::fvec4SIMD simdFastNormalize
|
||||
inline detail::fvec4SIMD fastNormalize
|
||||
(
|
||||
detail::fvec4SIMD const & x
|
||||
)
|
||||
{
|
||||
__m128 dot0 = detail::sse_dot_ps(x.Data, x.Data);
|
||||
__m128 isr0 = simdFastInversesqrt(dot0).Data;
|
||||
__m128 isr0 = fastInversesqrt(dot0).Data;
|
||||
__m128 mul0 = _mm_mul_ps(x.Data, isr0);
|
||||
return mul0;
|
||||
}
|
||||
|
||||
inline detail::fvec4SIMD simdFaceforward
|
||||
inline detail::fvec4SIMD faceforward
|
||||
(
|
||||
detail::fvec4SIMD const & N,
|
||||
detail::fvec4SIMD const & I,
|
||||
|
@ -629,7 +671,7 @@ namespace glm
|
|||
return detail::sse_ffd_ps(N.Data, I.Data, Nref.Data);
|
||||
}
|
||||
|
||||
inline detail::fvec4SIMD simdReflect
|
||||
inline detail::fvec4SIMD reflect
|
||||
(
|
||||
detail::fvec4SIMD const & I,
|
||||
detail::fvec4SIMD const & N
|
||||
|
@ -638,7 +680,7 @@ namespace glm
|
|||
return detail::sse_rfe_ps(I.Data, N.Data);
|
||||
}
|
||||
|
||||
inline detail::fvec4SIMD simdRefract
|
||||
inline detail::fvec4SIMD refract
|
||||
(
|
||||
detail::fvec4SIMD const & I,
|
||||
detail::fvec4SIMD const & N,
|
||||
|
@ -648,24 +690,24 @@ namespace glm
|
|||
return detail::sse_rfa_ps(I.Data, N.Data, _mm_set1_ps(eta));
|
||||
}
|
||||
|
||||
inline detail::fvec4SIMD simdSqrt(detail::fvec4SIMD const & x)
|
||||
inline detail::fvec4SIMD sqrt(detail::fvec4SIMD const & x)
|
||||
{
|
||||
return _mm_mul_ps(simdInversesqrt(x.Data).Data, x.Data);
|
||||
return _mm_mul_ps(inversesqrt(x.Data).Data, x.Data);
|
||||
}
|
||||
|
||||
inline detail::fvec4SIMD simdNiceSqrt(detail::fvec4SIMD const & x)
|
||||
inline detail::fvec4SIMD niceSqrt(detail::fvec4SIMD const & x)
|
||||
{
|
||||
return _mm_sqrt_ps(x.Data);
|
||||
}
|
||||
|
||||
inline detail::fvec4SIMD simdFastSqrt(detail::fvec4SIMD const & x)
|
||||
inline detail::fvec4SIMD fastSqrt(detail::fvec4SIMD const & x)
|
||||
{
|
||||
return _mm_mul_ps(simdFastInversesqrt(x.Data).Data, x.Data);
|
||||
return _mm_mul_ps(fastInversesqrt(x.Data).Data, x.Data);
|
||||
}
|
||||
|
||||
// SSE scalar reciprocal sqrt using rsqrt op, plus one Newton-Rhaphson iteration
|
||||
// By Elan Ruskin, http://assemblyrequired.crashworks.org/
|
||||
inline detail::fvec4SIMD simdInversesqrt(detail::fvec4SIMD const & x)
|
||||
inline detail::fvec4SIMD inversesqrt(detail::fvec4SIMD const & x)
|
||||
{
|
||||
GLM_ALIGN(4) static const __m128 three = {3, 3, 3, 3}; // aligned consts for fast load
|
||||
GLM_ALIGN(4) static const __m128 half = {0.5,0.5,0.5,0.5};
|
||||
|
@ -676,7 +718,7 @@ namespace glm
|
|||
return _mm_mul_ps(halfrecip, threeminus_xrr);
|
||||
}
|
||||
|
||||
inline detail::fvec4SIMD simdFastInversesqrt(detail::fvec4SIMD const & x)
|
||||
inline detail::fvec4SIMD fastInversesqrt(detail::fvec4SIMD const & x)
|
||||
{
|
||||
return _mm_rsqrt_ps(x.Data);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue