SRC/mc64ad.c File Reference

Permute large entries to the main diagonal. More...

#include "superlu_ddefs.h"

Defines

#define abs(x)   ((x) >= 0 ? (x) : -(x))
#define min(a, b)   ((a) < (b)) ? (a) : (b)

Functions/Subroutines

int_t mc64id_ (int_t *icntl)
int_t mc64ad_ (int_t *job, int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a, int_t *num, int_t *cperm, int_t *liw, int_t *iw, int_t *ldw, double *dw, int_t *icntl, int_t *info)
int_t mc64bd_ (int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a, int_t *iperm, int_t *num, int_t *jperm, int_t *pr, int_t *q, int_t *l, double *d__)
int_t mc64dd_ (int_t *i__, int_t *n, int_t *q, double *d__, int_t *l, int_t *iway)
int_t mc64ed_ (int_t *qlen, int_t *n, int_t *q, double *d__, int_t *l, int_t *iway)
int_t mc64fd_ (int_t *pos0, int_t *qlen, int_t *n, int_t *q, double *d__, int_t *l, int_t *iway)
int_t mc64rd_ (int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a)
int_t mc64sd_ (int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a, int_t *iperm, int_t *numx, int_t *w, int_t *len, int_t *lenl, int_t *lenh, int_t *fc, int_t *iw, int_t *iw4)
int_t mc64qd_ (int_t *ip, int_t *lenl, int_t *lenh, int_t *w, int_t *wlen, double *a, int_t *nval, double *val)
int_t mc64ud_ (int_t *id, int_t *mod, int_t *n, int_t *irn, int_t *lirn, int_t *ip, int_t *lenc, int_t *fc, int_t *iperm, int_t *num, int_t *numx, int_t *pr, int_t *arp, int_t *cv, int_t *out)
int_t mc64wd_ (int_t *n, int_t *ne, int_t *ip, int_t *irn, double *a, int_t *iperm, int_t *num, int_t *jperm, int_t *out, int_t *pr, int_t *q, int_t *l, double *u, double *d__)

Variables

static int_t c__1 = 1
static int_t c__2 = 2


Detailed Description


Define Documentation

#define abs ( x   )     ((x) >= 0 ? (x) : -(x))

#define min ( a,
b   )     ((a) < (b)) ? (a) : (b)


Function Documentation

int_t mc64ad_ ( int_t *  job,
int_t *  n,
int_t *  ne,
int_t *  ip,
int_t *  irn,
double *  a,
int_t *  num,
int_t *  cperm,
int_t *  liw,
int_t *  iw,
int_t *  ldw,
double *  dw,
int_t *  icntl,
int_t *  info 
)

 This subroutine attempts to find a column permutation for an NxN 
 sparse matrix A = {a_ij} that makes the permuted matrix have N 
 entries on its diagonal. 
 If the matrix is structurally nonsingular, the subroutine optionally 
 returns a column permutation that maximizes the smallest element 
 on the diagonal, maximizes the sum of the diagonal entries, or 
 maximizes the product of the diagonal entries of the permuted matrix. 
 For the latter option, the subroutine also finds scaling factors 
 that may be used to scale the matrix so that the nonzero diagonal 
 entries of the permuted matrix are one in absolute value and all the 
 off-diagonal entries are less than or equal to one in absolute value. 
 The natural logarithms of the scaling factors u(i), i=1..N, for the 
 rows and v(j), j=1..N, for the columns are returned so that the 
 scaled matrix B = {b_ij} has entries b_ij = a_ij * EXP(u_i + v_j). 
 

int_t mc64bd_ ( int_t *  n,
int_t *  ne,
int_t *  ip,
int_t *  irn,
double *  a,
int_t *  iperm,
int_t *  num,
int_t *  jperm,
int_t *  pr,
int_t *  q,
int_t *  l,
double *  d__ 
)

int_t mc64dd_ ( int_t *  i__,
int_t *  n,
int_t *  q,
double *  d__,
int_t *  l,
int_t *  iway 
)

int_t mc64ed_ ( int_t *  qlen,
int_t *  n,
int_t *  q,
double *  d__,
int_t *  l,
int_t *  iway 
)

int_t mc64fd_ ( int_t *  pos0,
int_t *  qlen,
int_t *  n,
int_t *  q,
double *  d__,
int_t *  l,
int_t *  iway 
)

int_t mc64id_ ( int_t *  icntl  ) 

int_t mc64qd_ ( int_t *  ip,
int_t *  lenl,
int_t *  lenh,
int_t *  w,
int_t *  wlen,
double *  a,
int_t *  nval,
double *  val 
)

int_t mc64rd_ ( int_t *  n,
int_t *  ne,
int_t *  ip,
int_t *  irn,
double *  a 
)

int_t mc64sd_ ( int_t *  n,
int_t *  ne,
int_t *  ip,
int_t *  irn,
double *  a,
int_t *  iperm,
int_t *  numx,
int_t *  w,
int_t *  len,
int_t *  lenl,
int_t *  lenh,
int_t *  fc,
int_t *  iw,
int_t *  iw4 
)

int_t mc64ud_ ( int_t *  id,
int_t *  mod,
int_t *  n,
int_t *  irn,
int_t *  lirn,
int_t *  ip,
int_t *  lenc,
int_t *  fc,
int_t *  iperm,
int_t *  num,
int_t *  numx,
int_t *  pr,
int_t *  arp,
int_t *  cv,
int_t *  out 
)

int_t mc64wd_ ( int_t *  n,
int_t *  ne,
int_t *  ip,
int_t *  irn,
double *  a,
int_t *  iperm,
int_t *  num,
int_t *  jperm,
int_t *  out,
int_t *  pr,
int_t *  q,
int_t *  l,
double *  u,
double *  d__ 
)


Variable Documentation

int_t c__1 = 1 [static]

int_t c__2 = 2 [static]


Generated on Tue Aug 30 14:36:33 2011 for SuperLUDistributed by  doxygen 1.5.5