|  | 1.0.0 API documentation
    | 
| Functions | |
| template<length_t D, typename T , qualifier Q, typename I > | |
| GLM_FUNC_DECL mat< D, D, T, Q > | computeCovarianceMatrix (I const &b, I const &e) | 
| Compute a covariance matrix form a pair of iterators b(begin) ande(end) of a container with relative coordinates (e.g., relative to the center of gravity of the object) Dereferencing an iterator of type I must yield avec<D, T, Qgt; | |
| template<length_t D, typename T , qualifier Q, typename I > | |
| GLM_FUNC_DECL mat< D, D, T, Q > | computeCovarianceMatrix (I const &b, I const &e, vec< D, T, Q > const &c) | 
| Compute a covariance matrix form a pair of iterators b(begin) ande(end) of a container with absolute coordinates and a precomputed center of gravitycDereferencing an iterator of type I must yield avec<D, T, Qgt; | |
| template<length_t D, typename T , qualifier Q> | |
| GLM_INLINE mat< D, D, T, Q > | computeCovarianceMatrix (vec< D, T, Q > const *v, size_t n) | 
| Compute a covariance matrix form an array of relative coordinates v(e.g., relative to the center of gravity of the object)  More... | |
| template<length_t D, typename T , qualifier Q> | |
| GLM_INLINE mat< D, D, T, Q > | computeCovarianceMatrix (vec< D, T, Q > const *v, size_t n, vec< D, T, Q > const &c) | 
| Compute a covariance matrix form an array of absolute coordinates vand a precomputed center of gravitycMore... | |
| template<length_t D, typename T , qualifier Q> | |
| GLM_FUNC_DECL unsigned int | findEigenvaluesSymReal (mat< D, D, T, Q > const &covarMat, vec< D, T, Q > &outEigenvalues, mat< D, D, T, Q > &outEigenvectors) | 
| Assuming the provided covariance matrix covarMatis symmetric and real-valued, this function find theDEigenvalues of the matrix, and also provides the corresponding Eigenvectors.  More... | |
| template<typename T , qualifier Q> | |
| GLM_FUNC_DECL void | sortEigenvalues (vec< 2, T, Q > &eigenvalues, mat< 2, 2, T, Q > &eigenvectors) | 
| Sorts a group of Eigenvalues&Eigenvectors, for largest Eigenvalue to smallest Eigenvalue.  More... | |
| template<typename T , qualifier Q> | |
| GLM_FUNC_DECL void | sortEigenvalues (vec< 3, T, Q > &eigenvalues, mat< 3, 3, T, Q > &eigenvectors) | 
| Sorts a group of Eigenvalues&Eigenvectors, for largest Eigenvalue to smallest Eigenvalue.  More... | |
| template<typename T , qualifier Q> | |
| GLM_FUNC_DECL void | sortEigenvalues (vec< 4, T, Q > &eigenvalues, mat< 4, 4, T, Q > &eigenvectors) | 
| Sorts a group of Eigenvalues&Eigenvectors, for largest Eigenvalue to smallest Eigenvalue.  More... | |
Include <glm/gtx/pca.hpp> to use the features of this extension.
Implements functions required for fundamental 'princple component analysis' in 2D, 3D, and 4D: 1) Computing a covariance matrics from a list of relative position vectors 2) Compute the eigenvalues and eigenvectors of the covariance matrics This is useful, e.g., to compute an object-aligned bounding box from vertices of an object. https://en.wikipedia.org/wiki/Principal_component_analysis
Example:
| GLM_INLINE mat<D, D, T, Q> glm::computeCovarianceMatrix | ( | vec< D, T, Q > const * | v, | 
| size_t | n | ||
| ) | 
Compute a covariance matrix form an array of relative coordinates v (e.g., relative to the center of gravity of the object) 
| v | Points to a memory holding ntimes vectors | 
| n | Number of points in v | 
| GLM_INLINE mat<D, D, T, Q> glm::computeCovarianceMatrix | ( | vec< D, T, Q > const * | v, | 
| size_t | n, | ||
| vec< D, T, Q > const & | c | ||
| ) | 
Compute a covariance matrix form an array of absolute coordinates v and a precomputed center of gravity c 
| v | Points to a memory holding ntimes vectors | 
| n | Number of points in v | 
| c | Precomputed center of gravity | 
| GLM_FUNC_DECL unsigned int glm::findEigenvaluesSymReal | ( | mat< D, D, T, Q > const & | covarMat, | 
| vec< D, T, Q > & | outEigenvalues, | ||
| mat< D, D, T, Q > & | outEigenvectors | ||
| ) | 
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).
| [in] | covarMat | A symmetric, real-valued covariance matrix, e.g. computed from computeCovarianceMatrix | 
| [out] | outEigenvalues | Vector to receive the found eigenvalues | 
| [out] | outEigenvectors | Matrix to receive the found eigenvectors corresponding to the found eigenvalues, as column vectors | 
| GLM_FUNC_DECL void glm::sortEigenvalues | ( | vec< 2, T, Q > & | eigenvalues, | 
| mat< 2, 2, T, Q > & | eigenvectors | ||
| ) | 
Sorts a group of Eigenvalues&Eigenvectors, for largest Eigenvalue to smallest Eigenvalue.
The data in outEigenvalues and outEigenvectors are assumed to be matching order, i.e. outEigenvector[i] is the Eigenvector of the Eigenvalue outEigenvalue[i]. 
| GLM_FUNC_DECL void glm::sortEigenvalues | ( | vec< 3, T, Q > & | eigenvalues, | 
| mat< 3, 3, T, Q > & | eigenvectors | ||
| ) | 
Sorts a group of Eigenvalues&Eigenvectors, for largest Eigenvalue to smallest Eigenvalue.
The data in outEigenvalues and outEigenvectors are assumed to be matching order, i.e. outEigenvector[i] is the Eigenvector of the Eigenvalue outEigenvalue[i]. 
| GLM_FUNC_DECL void glm::sortEigenvalues | ( | vec< 4, T, Q > & | eigenvalues, | 
| mat< 4, 4, T, Q > & | eigenvectors | ||
| ) | 
Sorts a group of Eigenvalues&Eigenvectors, for largest Eigenvalue to smallest Eigenvalue.
The data in outEigenvalues and outEigenvectors are assumed to be matching order, i.e. outEigenvector[i] is the Eigenvector of the Eigenvalue outEigenvalue[i]. 
 1.8.18
 1.8.18