SuperLU
5.2.0
|
Performs numerical pivoting. More...
Macros | |
#define | SGN(x) ((x)>=0?1:-1) |
Functions | |
int | ilu_zpivotL (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, doublecomplex drop_sum, GlobalLU_t *Glu, SuperLUStat_t *stat) |
Copyright (c) 2003, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from U.S. Dept. of Energy)
All rights reserved.
The source code is distributed under BSD license, see the file License.txt at the top-level directory.
– SuperLU routine (version 4.0) – Lawrence Berkeley National Laboratory June 30, 2009
#define SGN | ( | x | ) | ((x)>=0?1:-1) |
int ilu_zpivotL | ( | 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, | ||
doublecomplex | 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.