/// Creates a matrix for a right handed, symetric perspective-view frustum.
/// Creates a matrix for a right handed, symmetric perspective-view frustum.
/// The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)
///
/// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
@ -225,7 +225,7 @@ namespace glm
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveRH_ZO(
Tfovy,Taspect,Tnear,Tfar);
/// Creates a matrix for a right handed, symetric perspective-view frustum.
/// Creates a matrix for a right handed, symmetric perspective-view frustum.
/// The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)
///
/// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
@ -238,7 +238,7 @@ namespace glm
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveRH_NO(
Tfovy,Taspect,Tnear,Tfar);
/// Creates a matrix for a left handed, symetric perspective-view frustum.
/// Creates a matrix for a left handed, symmetric perspective-view frustum.
/// The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)
///
/// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
@ -251,7 +251,7 @@ namespace glm
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveLH_ZO(
Tfovy,Taspect,Tnear,Tfar);
/// Creates a matrix for a left handed, symetric perspective-view frustum.
/// Creates a matrix for a left handed, symmetric perspective-view frustum.
/// The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)
///
/// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
@ -264,7 +264,7 @@ namespace glm
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveLH_NO(
Tfovy,Taspect,Tnear,Tfar);
/// Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.
/// Creates a matrix for a symmetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.
/// The near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)
///
/// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
@ -277,7 +277,7 @@ namespace glm
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveZO(
Tfovy,Taspect,Tnear,Tfar);
/// Creates a matrix for a symetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.
/// Creates a matrix for a symmetric perspective-view frustum using left-handed coordinates if GLM_FORCE_LEFT_HANDED if defined or right-handed coordinates otherwise.
/// The near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)
///
/// @param fovy Specifies the field of view angle, in degrees, in the y direction. Expressed in radians.
@ -290,7 +290,7 @@ namespace glm
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveNO(
Tfovy,Taspect,Tnear,Tfar);
/// Creates a matrix for a right handed, symetric perspective-view frustum.
/// Creates a matrix for a right handed, symmetric perspective-view frustum.
/// If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)
/// Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)
///
@ -304,7 +304,7 @@ namespace glm
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveRH(
Tfovy,Taspect,Tnear,Tfar);
/// Creates a matrix for a left handed, symetric perspective-view frustum.
/// Creates a matrix for a left handed, symmetric perspective-view frustum.
/// If GLM_FORCE_DEPTH_ZERO_TO_ONE is defined, the near and far clip planes correspond to z normalized device coordinates of 0 and +1 respectively. (Direct3D clip volume definition)
/// Otherwise, the near and far clip planes correspond to z normalized device coordinates of -1 and +1 respectively. (OpenGL clip volume definition)
///
@ -318,7 +318,7 @@ namespace glm
GLM_FUNC_DECLmat<4,4,T,defaultp>perspectiveLH(
Tfovy,Taspect,Tnear,Tfar);
/// Creates a matrix for a symetric perspective-view frustum based on the default handedness and default near and far clip planes definition.
/// Creates a matrix for a symmetric perspective-view frustum based on the default handedness and default near and far clip planes definition.
/// To change default handedness use GLM_FORCE_LEFT_HANDED. To change default near and far clip planes definition use GLM_FORCE_DEPTH_ZERO_TO_ONE.
///
/// @param fovy Specifies the field of view angle in the y direction. Expressed in radians.
/// @tparam genType Squared floating-point matrix: half, float or double. Inverse of matrix based of half-qualifier floating point value is highly innacurate.
/// @tparam genType Squared floating-point matrix: half, float or double. Inverse of matrix based of half-qualifier floating point value is highly inaccurate.
/// @tparam genType Squared floating-point matrix: half, float or double. Inverse of matrix based of half-qualifier floating point value is highly innacurate.
/// @tparam genType Squared floating-point matrix: half, float or double. Inverse of matrix based of half-qualifier floating point value is highly inaccurate.
# pragma message("GLM: GLM_GTX_extented_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
# pragma message("GLM: GLM_GTX_extended_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.")
/// Assuming the provided covariance matrix `covarMat` is symmetric and real-valued, this function find the `D` Eigenvalues of the matrix, and also provides the corresponding Eigenvectors.
/// Note: the data in `outEigenvalues` and `outEigenvectors` are in matching order, i.e. `outEigenvector[i]` is the Eigenvector of the Eigenvalue `outEigenvalue[i]`.
/// This is a numeric implementation to find the Eigenvalues, using 'QL decomposition` (variant of QR decomposition: https://en.wikipedia.org/wiki/QR_decomposition).
/// @param covarMat A symmetric, real-valued covariance matrix, e.g. computed from `computeCovarianceMatrix`.
/// @param outEigenvalues Vector to receive the found eigenvalues
/// @param outEigenvectors Matrix to receive the found eigenvectors corresponding to the found eigenvalues, as column vectors
///
/// @param[in] covarMat A symmetric, real-valued covariance matrix, e.g. computed from computeCovarianceMatrix
/// @param[out] outEigenvalues Vector to receive the found eigenvalues
/// @param[out] outEigenvectors Matrix to receive the found eigenvectors corresponding to the found eigenvalues, as column vectors
/// @return The number of eigenvalues found, usually D if the precondition of the covariance matrix is met.