Graphite  Version 3
An experimental 3D geometry processing program
GEO::MatrixUtil Namespace Reference

Utilities for manipulating matrices. More...

Functions

void semi_definite_symmetric_eigen (const double *matrix, index_t n, double *eigen_vectors, double *eigen_values)
 Computes the eigen values and eigen vectors of a semi definite symmetric matrix. More...
 

Detailed Description

Utilities for manipulating matrices.

Function Documentation

◆ semi_definite_symmetric_eigen()

void GEO::MatrixUtil::semi_definite_symmetric_eigen ( const double *  matrix,
index_t  n,
double *  eigen_vectors,
double *  eigen_values 
)

Computes the eigen values and eigen vectors of a semi definite symmetric matrix.

Parameters
[in]matrixis stored in column symmetric storage:
  • matrix = { m11, m12, m22, m13, m23, m33, m14, m24, m34, m44 ... }
  • size = n(n+1)/2
[in]nthe dimension of the matrix
[out]eigen_vectors= { v1, v2, v3, ..., vn }, where:
  • vk = vk0, vk1, ..., vkn
  • size = n^2, must be allocated by caller
[out]eigen_valuesare in decreasing order
  • size = n, must be allocated by caller