Shapeworks Studio  2.1
Shape analysis software suite
List of all members | Public Types | Public Member Functions
Eigen::AMDOrdering< Index > Class Template Reference

#include <Ordering.h>

Public Types

typedef PermutationMatrix< Dynamic, Dynamic, Index > PermutationType
 

Public Member Functions

template<typename MatrixType >
void operator() (const MatrixType &mat, PermutationType &perm)
 
template<typename SrcType , unsigned int SrcUpLo>
void operator() (const SparseSelfAdjointView< SrcType, SrcUpLo > &mat, PermutationType &perm)
 

Detailed Description

template<typename Index>
class Eigen::AMDOrdering< Index >

Functor computing the approximate minimum degree ordering If the matrix is not structurally symmetric, an ordering of A^T+A is computed

Template Parameters
IndexThe type of indices of the matrix
See also
COLAMDOrdering

Definition at line 51 of file Ordering.h.

Member Function Documentation

template<typename Index >
template<typename MatrixType >
void Eigen::AMDOrdering< Index >::operator() ( const MatrixType &  mat,
PermutationType perm 
)
inline

Compute the permutation vector from a sparse matrix This routine is much faster if the input matrix is column-major

Definition at line 60 of file Ordering.h.

61  {
62  // Compute the symmetric pattern
63  SparseMatrix<typename MatrixType::Scalar, ColMajor, Index> symm;
64  internal::ordering_helper_at_plus_a(mat,symm);
65 
66  // Call the AMD routine
67  //m_mat.prune(keep_diag());
68  internal::minimum_degree_ordering(symm, perm);
69  }
template<typename Index >
template<typename SrcType , unsigned int SrcUpLo>
void Eigen::AMDOrdering< Index >::operator() ( const SparseSelfAdjointView< SrcType, SrcUpLo > &  mat,
PermutationType perm 
)
inline

Compute the permutation with a selfadjoint matrix

Definition at line 73 of file Ordering.h.

74  {
75  SparseMatrix<typename SrcType::Scalar, ColMajor, Index> C; C = mat;
76 
77  // Call the AMD routine
78  // m_mat.prune(keep_diag()); //Remove the diagonal elements
79  internal::minimum_degree_ordering(C, perm);
80  }

The documentation for this class was generated from the following file: