A symmetric matrix represented in eigenvalue decomposition. More...
#include <vpdt_eigen_sym_matrix.h>
Public Types | |
| typedef vpdt_field_default< T, n >::type | vector |
| the data type used for vectors. More... | |
| typedef vpdt_field_traits< vector >::matrix_type | matrix |
| the data type used for matrices. More... | |
Public Member Functions | |
| vpdt_eigen_sym_matrix (unsigned int var_dim=n) | |
| Constructor. More... | |
| vpdt_eigen_sym_matrix (const matrix &evec, const vector &eval) | |
| Constructor - from eigenvectors and eigenvalues. More... | |
| vpdt_eigen_sym_matrix (const matrix &m) | |
| Constructor - from symmetric matrix. More... | |
| unsigned int | dimension () const |
| Return the dimension. More... | |
| const matrix & | eigenvectors () const |
| Access to the eigenvectors. More... | |
| const vector & | eigenvalues () const |
| Access to the eigenvalues. More... | |
| void | set_eigenvectors (const matrix &m) |
| Set the eigenvectors. More... | |
| void | set_eigenvalues (const vector &v) |
| set the eigenvalues. More... | |
| void | set_size (unsigned int dim) |
| Set the size (if variable) and reset to default. More... | |
| void | set_matrix (const matrix &m) |
| set the eigenvectors and eigen values by decomposing m. More... | |
| vpdt_eigen_sym_matrix< T, n > & | operator *= (const T &val) |
| multiply the matrix by a scalar. More... | |
| void | form_matrix (matrix &m) const |
| Reform the matrix. More... | |
| void | form_inverse (matrix &m) const |
| compute the matrix inverse. More... | |
| void | product (const vector &x, vector &y) const |
| evaluate y = M * x. More... | |
| void | inverse_product (const vector &x, vector &y) const |
| evaluate y = M^-1 * x. More... | |
| T | quad_form (const vector &x) const |
| evaluate the Quadratic form x^t * M * x. More... | |
| T | inverse_quad_form (const vector &x) const |
| evaluate the inverse Quadratic form x^t * M^-1 * x. More... | |
| T | determinant () const |
| compute the determinant. More... | |
Private Member Functions | |
| bool | are_evec_orthonormal () const |
| return true if the eigenvectors are (approximately) orthonormal. More... | |
Private Attributes | |
| matrix | eigen_vec_ |
| the matrix of eigenvectors. More... | |
| vector | eigen_val_ |
| the vector of eigenvalues. More... | |
A symmetric matrix represented in eigenvalue decomposition.
Definition at line 40 of file vpdt_eigen_sym_matrix.h.
| typedef vpdt_field_traits<vector>::matrix_type vpdt_eigen_sym_matrix< T, n >::matrix |
the data type used for matrices.
Definition at line 46 of file vpdt_eigen_sym_matrix.h.
| typedef vpdt_field_default<T,n>::type vpdt_eigen_sym_matrix< T, n >::vector |
the data type used for vectors.
Definition at line 44 of file vpdt_eigen_sym_matrix.h.
|
inline |
Constructor.
Optionally initialize the dimension for when n==0. Otherwise var_dim is ignored
Definition at line 51 of file vpdt_eigen_sym_matrix.h.
|
inline |
Constructor - from eigenvectors and eigenvalues.
Definition at line 60 of file vpdt_eigen_sym_matrix.h.
|
inline |
Constructor - from symmetric matrix.
Definition at line 67 of file vpdt_eigen_sym_matrix.h.
|
inlineprivate |
return true if the eigenvectors are (approximately) orthonormal.
Definition at line 248 of file vpdt_eigen_sym_matrix.h.
|
inline |
compute the determinant.
Definition at line 232 of file vpdt_eigen_sym_matrix.h.
|
inline |
Return the dimension.
Definition at line 73 of file vpdt_eigen_sym_matrix.h.
|
inline |
Access to the eigenvalues.
Definition at line 79 of file vpdt_eigen_sym_matrix.h.
|
inline |
Access to the eigenvectors.
Definition at line 76 of file vpdt_eigen_sym_matrix.h.
|
inline |
compute the matrix inverse.
m = eigen_vec_ * inverse(diag(eigen_val_)) * eigen_vec_.transpose()
Definition at line 141 of file vpdt_eigen_sym_matrix.h.
|
inline |
Reform the matrix.
m = eigen_vec_ * diag(eigen_val_) * eigen_vec_.transpose()
Definition at line 120 of file vpdt_eigen_sym_matrix.h.
|
inline |
evaluate y = M^-1 * x.
Definition at line 182 of file vpdt_eigen_sym_matrix.h.
|
inline |
evaluate the inverse Quadratic form x^t * M^-1 * x.
Definition at line 215 of file vpdt_eigen_sym_matrix.h.
|
inline |
multiply the matrix by a scalar.
Definition at line 110 of file vpdt_eigen_sym_matrix.h.
|
inline |
evaluate y = M * x.
Definition at line 164 of file vpdt_eigen_sym_matrix.h.
|
inline |
evaluate the Quadratic form x^t * M * x.
Definition at line 200 of file vpdt_eigen_sym_matrix.h.
|
inline |
set the eigenvalues.
Definition at line 89 of file vpdt_eigen_sym_matrix.h.
|
inline |
Set the eigenvectors.
Definition at line 82 of file vpdt_eigen_sym_matrix.h.
|
inline |
set the eigenvectors and eigen values by decomposing m.
Definition at line 101 of file vpdt_eigen_sym_matrix.h.
|
inline |
Set the size (if variable) and reset to default.
Definition at line 92 of file vpdt_eigen_sym_matrix.h.
|
private |
the vector of eigenvalues.
Definition at line 245 of file vpdt_eigen_sym_matrix.h.
|
private |
the matrix of eigenvectors.
Definition at line 243 of file vpdt_eigen_sym_matrix.h.
1.8.15