SuperLU 6.0.1
Macros | Functions
ilu_cpivotL.c File Reference

Performs numerical pivoting. More...

#include <math.h>
#include <stdlib.h>
#include "slu_cdefs.h"
Include dependency graph for ilu_cpivotL.c:

Macros

#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

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

Macro Definition Documentation

◆ SGN

#define SGN (   x)    ((x)>=0?1:-1)

Function Documentation

◆ ilu_cpivotL()

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.
Here is the call graph for this function: