SuperLU: SRC/ilu_spivotL.c File Reference

# SRC/ilu_spivotL.c File Reference

Performs numerical pivoting. More...

`#include <math.h>`
`#include <stdlib.h>`
`#include "slu_sdefs.h"`

## Defines
#define | SGN(x) ((x)>=0?1:-1)
## 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)

## Detailed Description

     -- 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_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.