kusano 7d535a
kusano 7d535a
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
kusano 7d535a
<title>SuperLU: SRC/get_perm_c.c File Reference</title>
kusano 7d535a
<link href="doxygen.css" rel="stylesheet" type="text/css">
kusano 7d535a
<link href="tabs.css" rel="stylesheet" type="text/css">
kusano 7d535a
</head><body>
kusano 7d535a
kusano 7d535a
kusano 7d535a
  
kusano 7d535a
    
    kusano 7d535a
          
  • Main Page
  • kusano 7d535a
          
  • Data Structures
  • kusano 7d535a
          
  • Files
  • kusano 7d535a
        
    kusano 7d535a
      
    kusano 7d535a
    kusano 7d535a
    kusano 7d535a

    SRC/get_perm_c.c File Reference

    Matrix permutation operations. More...
    kusano 7d535a

    kusano 7d535a
    #include "slu_ddefs.h"
    kusano 7d535a
    #include "colamd.h"
    kusano 7d535a
    kusano 7d535a
    kusano 7d535a

    Functions

    kusano 7d535a
    int genmmd_ (int *, int *, int *, int *, int *, int *, int *, int *, int *, int *, int *, int *)
    kusano 7d535a
    kusano 7d535a
    void get_colamd (const int m, const int n, const int nnz, int *colptr, int *rowind, int *perm_c)
    kusano 7d535a
    kusano 7d535a
    void getata (const int m, const int n, const int nz, int *colptr, int *rowind, int *atanz, int **ata_colptr, int **ata_rowind)
    kusano 7d535a
    kusano 7d535a
    void at_plus_a (const int n, const int nz, int *colptr, int *rowind, int *bnz, int **b_colptr, int **b_rowind)
    kusano 7d535a
    kusano 7d535a
    void get_perm_c (int ispec, SuperMatrix *A, int *perm_c)
    kusano 7d535a
    kusano 7d535a
    kusano 7d535a

    Detailed Description

    kusano 7d535a
    kusano 7d535a
     -- SuperLU routine (version 3.1) --
    kusano 7d535a
     Univ. of California Berkeley, Xerox Palo Alto Research Center,
    kusano 7d535a
     and Lawrence Berkeley National Lab.
    kusano 7d535a
     August 1, 2008
    kusano 7d535a
      

    Function Documentation

    kusano 7d535a
    kusano 7d535a
    kusano 7d535a
    kusano 7d535a
          
    kusano 7d535a
            
    kusano 7d535a
              void at_plus_a           
    kusano 7d535a
              (
    kusano 7d535a
              const int 
    kusano 7d535a
               n, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              const int 
    kusano 7d535a
               nz, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
               colptr, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
               rowind, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
               bnz, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int ** 
    kusano 7d535a
               b_colptr, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int ** 
    kusano 7d535a
               b_rowind 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              )
    kusano 7d535a
              
    kusano 7d535a
            
    kusano 7d535a
          
    kusano 7d535a
    kusano 7d535a
    kusano 7d535a
    kusano 7d535a

    kusano 7d535a
    kusano 7d535a
     Purpose
    kusano 7d535a
     =======

    kusano 7d535a
     Form the structure of A'+A. A is an n-by-n matrix in column oriented
    kusano 7d535a
     format represented by (colptr, rowind). The output A'+A is in column
    kusano 7d535a
     oriented format (symmetrically, also row oriented), represented by
    kusano 7d535a
     (b_colptr, b_rowind).
    kusano 7d535a
      
    kusano 7d535a
    kusano 7d535a

    kusano 7d535a
    kusano 7d535a
    kusano 7d535a
    kusano 7d535a
          
    kusano 7d535a
            
    kusano 7d535a
              int genmmd_           
    kusano 7d535a
              (
    kusano 7d535a
              int * 
    kusano 7d535a
              , 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
              , 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
              , 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
              , 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
              , 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
              , 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
              , 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
              , 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
              , 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
              , 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
              , 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
               
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              )
    kusano 7d535a
              
    kusano 7d535a
            
    kusano 7d535a
          
    kusano 7d535a
    kusano 7d535a
    kusano 7d535a
    kusano 7d535a

    kusano 7d535a
    kusano 7d535a
    kusano 7d535a

    kusano 7d535a
    kusano 7d535a
    kusano 7d535a
    kusano 7d535a
          
    kusano 7d535a
            
    kusano 7d535a
              void get_colamd           
    kusano 7d535a
              (
    kusano 7d535a
              const int 
    kusano 7d535a
               m, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              const int 
    kusano 7d535a
               n, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              const int 
    kusano 7d535a
               nnz, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
               colptr, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
               rowind, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
               perm_c 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              )
    kusano 7d535a
              
    kusano 7d535a
            
    kusano 7d535a
          
    kusano 7d535a
    kusano 7d535a
    kusano 7d535a
    kusano 7d535a

    kusano 7d535a
    kusano 7d535a
    kusano 7d535a

    kusano 7d535a
    kusano 7d535a
    kusano 7d535a
    kusano 7d535a
          
    kusano 7d535a
            
    kusano 7d535a
              void get_perm_c           
    kusano 7d535a
              (
    kusano 7d535a
              int 
    kusano 7d535a
               ispec, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              SuperMatrix
    kusano 7d535a
               A, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
               perm_c 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              )
    kusano 7d535a
              
    kusano 7d535a
            
    kusano 7d535a
          
    kusano 7d535a
    kusano 7d535a
    kusano 7d535a
    kusano 7d535a

    kusano 7d535a
    kusano 7d535a
     Purpose
    kusano 7d535a
     =======

    kusano 7d535a
     GET_PERM_C obtains a permutation matrix Pc, by applying the multiple
    kusano 7d535a
     minimum degree ordering code by Joseph Liu to matrix A'*A or A+A'.
    kusano 7d535a
     or using approximate minimum degree column ordering by Davis et. al.
    kusano 7d535a
     The LU factorization of A*Pc tends to have less fill than the LU 
    kusano 7d535a
     factorization of A.

    kusano 7d535a
     Arguments
    kusano 7d535a
     =========

    kusano 7d535a
     ispec   (input) int
    kusano 7d535a
             Specifies the type of column ordering to reduce fill:
    kusano 7d535a
             = 1: minimum degree on the structure of A^T * A
    kusano 7d535a
             = 2: minimum degree on the structure of A^T + A
    kusano 7d535a
             = 3: approximate minimum degree for unsymmetric matrices
    kusano 7d535a
             If ispec == 0, the natural ordering (i.e., Pc = I) is returned.

    kusano 7d535a
     A       (input) SuperMatrix*
    kusano 7d535a
             Matrix A in A*X=B, of dimension (A->nrow, A->ncol). The number
    kusano 7d535a
             of the linear equations is A->nrow. Currently, the type of A 
    kusano 7d535a
             can be: Stype = NC; Dtype = _D; Mtype = GE. In the future,
    kusano 7d535a
             more general A can be handled.

    kusano 7d535a
     perm_c  (output) int*
    kusano 7d535a
    	   Column permutation vector of size A->ncol, which defines the 
    kusano 7d535a
             permutation matrix Pc; perm_c[i] = j means column i of A is 
    kusano 7d535a
             in position j in A*Pc.
    kusano 7d535a
      
    kusano 7d535a
    kusano 7d535a

    kusano 7d535a
    kusano 7d535a
    kusano 7d535a
    kusano 7d535a
          
    kusano 7d535a
            
    kusano 7d535a
              void getata           
    kusano 7d535a
              (
    kusano 7d535a
              const int 
    kusano 7d535a
               m, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              const int 
    kusano 7d535a
               n, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              const int 
    kusano 7d535a
               nz, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
               colptr, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
               rowind, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int * 
    kusano 7d535a
               atanz, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int ** 
    kusano 7d535a
               ata_colptr, 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              
    kusano 7d535a
              int ** 
    kusano 7d535a
               ata_rowind 
    kusano 7d535a
            
    kusano 7d535a
            
    kusano 7d535a
              
    kusano 7d535a
              )
    kusano 7d535a
              
    kusano 7d535a
            
    kusano 7d535a
          
    kusano 7d535a
    kusano 7d535a
    kusano 7d535a
    kusano 7d535a

    kusano 7d535a
    kusano 7d535a
     Purpose
    kusano 7d535a
     =======

    kusano 7d535a
     Form the structure of A'*A. A is an m-by-n matrix in column oriented
    kusano 7d535a
     format represented by (colptr, rowind). The output A'*A is in column
    kusano 7d535a
     oriented format (symmetrically, also row oriented), represented by
    kusano 7d535a
     (ata_colptr, ata_rowind).

    kusano 7d535a
     This routine is modified from GETATA routine by Tim Davis.
    kusano 7d535a
     The complexity of this algorithm is: SUM_{i=1,m} r(i)^2,
    kusano 7d535a
     i.e., the sum of the square of the row counts.

    kusano 7d535a
     Questions
    kusano 7d535a
     =========
    kusano 7d535a
         o  Do I need to withhold the *dense* rows?
    kusano 7d535a
         o  How do I know the number of nonzeros in A'*A?
    kusano 7d535a
      
    kusano 7d535a
    kusano 7d535a

    kusano 7d535a
    kusano 7d535a

    <address style="text-align: right;"><small>Generated on Mon Nov 22 10:23:47 2010 for SuperLU by 
    kusano 7d535a
    kusano 7d535a
    doxygen 1.5.5 </small></address>
    kusano 7d535a
    </body>
    kusano 7d535a
    </html>