SuperLU_DIST  4.0
superlu_dist on CPU and GPU clusters
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Macros | Functions
pzgsrfs_ABXglobal.c File Reference

Improves the computed solution and provies error bounds. More...

#include <math.h>
#include "superlu_zdefs.h"

Macros

#define ITMAX   20
 

Functions

void pzgsrfs_ABXglobal (int_t n, SuperMatrix *A, double anorm, LUstruct_t *LUstruct, gridinfo_t *grid, doublecomplex *B, int_t ldb, doublecomplex *X, int_t ldx, int nrhs, double *berr, SuperLUStat_t *stat, int *info)
 

Detailed Description

Improves the computed solution and provies error bounds.

– Distributed SuperLU routine (version 1.0) –
Lawrence Berkeley National Lab, Univ. of California Berkeley.
September 1, 1999

Macro Definition Documentation

#define ITMAX   20

Function Documentation

void pzgsrfs_ABXglobal ( int_t  n,
SuperMatrix A,
double  anorm,
LUstruct_t LUstruct,
gridinfo_t grid,
doublecomplex B,
int_t  ldb,
doublecomplex X,
int_t  ldx,
int  nrhs,
double *  berr,
SuperLUStat_t stat,
int *  info 
)

Purpose

pzgsrfs_ABXglobal improves the computed solution to a system of linear   
equations and provides error bounds and backward error estimates
for the solution.

Arguments

n      (input) int (global)
       The order of the system of linear equations.
A      (input) SuperMatrix*
   The original matrix A, or the scaled A if equilibration was done.
       A is also permuted into the form Pc*Pr*A*Pc', where Pr and Pc
       are permutation matrices. The type of A can be:
       Stype = SLU_NCP; Dtype = SLU_Z; Mtype = SLU_GE.
       NOTE: Currently, A must reside in all processes when calling
             this routine.
anorm  (input) double
       The norm of the original matrix A, or the scaled A if
       equilibration was done.
LUstruct (input) LUstruct_t*
       The distributed data structures storing L and U factors.
       The L and U factors are obtained from pzgstrf for
       the possibly scaled and permuted matrix A.
       See superlu_ddefs.h for the definition of 'LUstruct_t'.
grid   (input) gridinfo_t*
       The 2D process mesh. It contains the MPI communicator, the number
       of process rows (NPROW), the number of process columns (NPCOL),
       and my process rank. It is an input argument to all the
       parallel routines.
       Grid can be initialized by subroutine SUPERLU_GRIDINIT.
       See superlu_ddefs.h for the definition of 'gridinfo_t'.
B      (input) doublecomplex* (global)
       The N-by-NRHS right-hand side matrix of the possibly equilibrated
       and row permuted system.
       NOTE: Currently, B must reside on all processes when calling
             this routine.
ldb    (input) int (global)
       Leading dimension of matrix B.
X      (input/output) doublecomplex* (global)
       On entry, the solution matrix X, as computed by PZGSTRS.
       On exit, the improved solution matrix X.
       If DiagScale = COL or BOTH, X should be premultiplied by diag(C)
       in order to obtain the solution to the original system.
       NOTE: Currently, X must reside on all processes when calling
             this routine.
ldx    (input) int (global)
       Leading dimension of matrix X.
nrhs   (input) int
       Number of right-hand sides.
berr   (output) double*, dimension (nrhs)
        The componentwise relative backward error of each solution   
        vector X(j) (i.e., the smallest relative change in   
        any element of A or B that makes X(j) an exact solution).
stat   (output) SuperLUStat_t*
       Record the statistics about the refinement steps.
       See util.h for the definition of SuperLUStat_t.
info   (output) int*
       = 0: successful exit
       < 0: if info = -i, the i-th argument had an illegal value

Internal Parameters

ITMAX is the maximum number of steps of iterative refinement.