#include <vnl_svd.h>
Inheritance diagram for vnl_svd:
Public Types | |
typedef vnl_numeric_traits< T >::abs_t | singval_t |
Public Methods | |
vnl_svd (vnl_matrix< T > const &M, double zero_out_tol=0.0) | |
~vnl_svd () | |
void | zero_out_absolute (double tol=1e-8) |
void | zero_out_relative (double tol=1e-8) |
int | singularities () const |
int | rank () const |
singval_t | well_condition () const |
singval_t | determinant_magnitude () const |
singval_t | norm () const |
vnl_matrix< T > & | U () |
vnl_matrix< T > const & | U () const |
T | U (int i, int j) |
vnl_diag_matrix< singval_t > & | W () |
vnl_diag_matrix< singval_t > const & | W () const |
vnl_diag_matrix< singval_t > & | Winverse () |
vnl_diag_matrix< singval_t > const & | Winverse () const |
singval_t & | W (int i, int j) |
singval_t & | W (int i) |
singval_t | sigma_max () const |
singval_t | sigma_min () const |
vnl_matrix< T > & | V () |
vnl_matrix< T > const & | V () const |
T | V (int i, int j) |
vnl_matrix< T > | inverse () const |
vnl_matrix< T > | pinverse () const |
vnl_matrix< T > | tinverse () const |
vnl_matrix< T > | recompose () const |
vnl_matrix< T > | solve (vnl_matrix< T > const &rhs) const |
vnl_vector< T > | solve (vnl_vector< T > const &rhs) const |
void | solve (T const *rhs, T *lhs) const |
void | solve_preinverted (vnl_vector< T > const &rhs, vnl_vector< T > *out) const |
vnl_matrix< T > | nullspace () const |
vnl_matrix< T > | left_nullspace () const |
vnl_matrix< T > | nullspace (int required_nullspace_dimension) const |
vnl_matrix< T > | left_nullspace (int required_nullspace_dimension) const |
vnl_vector< T > | nullvector () const |
vnl_vector< T > | left_nullvector () const |
Protected Methods | |
vnl_svd (vnl_svd< T > const &that) | |
vnl_svd< T > & | operator= (vnl_svd< T > const &that) |
|
|
|
Construct an vnl_svd<T> object from matrix . The vnl_svd<T> object contains matrices such that . Uses linpack routine DSVDC to calculate an ``economy-size'' SVD where the returned is the same size as , while and are both . This is efficient for large rectangular solves where , typical in least squares. The optional argument zero_out_tol is used to mark the zero singular values: If nonnegative, any s.v. smaller than zero_out_tol in absolute value is set to zero. If zero_out_tol is negative, the zeroing is relative to |zero_out_tol| * sigma_max(); |
|
|
|
|
|
|
|
Referenced by vnl_matrix_inverse< T >::~vnl_matrix_inverse(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Referenced by operator *(). |
|
|
|
|
|
|
|
|
|
Return the matrix U and the (i,j)th entry (to avoid svd.U()(i,j); ). |
|
|
|
|
|
Return the matrix V. |
|
|
|
|
|
|
|
Get at DiagMatrix (q.v.) of singular values,sorted from largest to smallest. |
|
|
|
|
|
|
|
|
|
|