|
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 ReferenceMatrix 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 |
1.5.5 </small></address>
|
|
kusano |
7d535a |
</body>
|
|
kusano |
7d535a |
</html>
|