lsd_mkb/lsd_mkb_superlu/superlu_seq/ilu_cpivotL.c File Reference
Performs numerical pivoting.
More...
#include <math.h>
#include <stdlib.h>
#include "slu_cdefs.h"
Defines |
#define | SGN(x) ((x)>=0?1:-1) |
Functions |
int | ilu_cpivotL (const int jcol, const double u, int *usepr, int *perm_r, int diagind, int *swap, int *iswap, int *marker, int *pivrow, double fill_tol, milu_t milu, complex drop_sum, GlobalLU_t *Glu, SuperLUStat_t *stat) |
Detailed Description
Performs numerical pivoting.
-- SuperLU routine (version 4.0) --
Lawrence Berkeley National Laboratory
June 30, 2009
Define Documentation
#define SGN |
( |
x |
|
) |
((x)>=0?1:-1) |
Function Documentation
int ilu_cpivotL |
( |
const int |
jcol, |
|
|
const double |
u, |
|
|
int * |
usepr, |
|
|
int * |
perm_r, |
|
|
int |
diagind, |
|
|
int * |
swap, |
|
|
int * |
iswap, |
|
|
int * |
marker, |
|
|
int * |
pivrow, |
|
|
double |
fill_tol, |
|
|
milu_t |
milu, |
|
|
complex |
drop_sum, |
|
|
GlobalLU_t * |
Glu, |
|
|
SuperLUStat_t * |
stat | |
|
) |
| | |
Purpose
=======
Performs the numerical pivoting on the current column of L,
and the CDIV operation.
Pivot policy:
(1) Compute thresh = u * max_(i>=j) abs(A_ij);
(2) IF user specifies pivot row k and abs(A_kj) >= thresh THEN
pivot row = k;
ELSE IF abs(A_jj) >= thresh THEN
pivot row = j;
ELSE
pivot row = m;
Note: If you absolutely want to use a given pivot order, then set u=0.0.
Return value: 0 success;
i > 0 U(i,i) is exactly zero.