Performs numerical pivoting. More...
#include <math.h>
#include <stdlib.h>
#include "slu_sdefs.h"
Functions | |
int | ilu_spivotL (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, float drop_sum, GlobalLU_t *Glu, SuperLUStat_t *stat) |
Performs numerical pivoting.
-- SuperLU routine (version 4.0) -- Lawrence Berkeley National Laboratory June 30, 2009
int ilu_spivotL | ( | 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, | |||
float | 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.