superlu_defs.h File Reference

Definitions which are precision-neutral. More...

#include <mpi.h>
#include <stdlib.h>
#include <stdio.h>
#include "superlu_enum_consts.h"
#include "Cnames.h"
#include "supermatrix.h"
#include "util_dist.h"
#include "psymbfact.h"

Go to the source code of this file.

Classes

struct  superlu_scope_t
 
struct  gridinfo_t
 
struct  Glu_persist_t
 
struct  Glu_freeable_t
 
struct  ScalePermstruct_t
 
struct  superlu_options_t
 
struct  mem_usage_t
 

Macros

#define mpi_int_t   MPI_INT
 
#define BC_HEADER   2
 
#define LB_DESCRIPTOR   2
 
#define BR_HEADER   3
 
#define UB_DESCRIPTOR   2
 
#define NBUFFERS   5
 
#define NTAGS   10000
 
#define UjROW   10
 
#define UkSUB   11
 
#define UkVAL   12
 
#define LkSUB   13
 
#define LkVAL   14
 
#define LkkDIAG   15
 
#define XK_H   2 /* The header preceeding each X block. */
 
#define LSUM_H   2 /* The header preceeding each MOD block. */
 
#define GSUM   20
 
#define Xk   21
 
#define Yk   22
 
#define LSUM   23
 
#define COMM_ALL   100
 
#define COMM_COLUMN   101
 
#define COMM_ROW   102
 
#define SUPER_LINEAR   11
 
#define SUPER_BLOCK   12
 
#define NO_MARKER   3
 
#define IAM(comm)   { int rank; MPI_Comm_rank ( comm, &rank ); rank};
 
#define MYROW(iam, grid)   ( (iam) / grid->npcol )
 
#define MYCOL(iam, grid)   ( (iam) % grid->npcol )
 
#define BlockNum(i)   ( supno[i] )
 
#define FstBlockC(bnum)   ( xsup[bnum] )
 
#define SuperSize(bnum)   ( xsup[bnum+1]-xsup[bnum] )
 
#define LBi(bnum, grid)   ( (bnum)/grid->nprow )/* Global to local block rowwise */
 
#define LBj(bnum, grid)   ( (bnum)/grid->npcol )/* Global to local block columnwise*/
 
#define PROW(bnum, grid)   ( (bnum) % grid->nprow )
 
#define PCOL(bnum, grid)   ( (bnum) % grid->npcol )
 
#define PNUM(i, j, grid)   ( (i)*grid->npcol + j ) /* Process number at coord(i,j) */
 
#define CEILING(a, b)   ( ((a)%(b)) ? ((a)/(b) + 1) : ((a)/(b)) )
 
#define RHS_ITERATE(i)    for (i = 0; i < nrhs; ++i)
 
#define X_BLK(i)    ilsum[i] * nrhs + (i+1) * XK_H
 
#define LSUM_BLK(i)    ilsum[i] * nrhs + (i+1) * LSUM_H
 
#define SuperLU_timer_   SuperLU_timer_dist_
 
#define LOG2(x)   (log10((double) x) / log10(2.0))
 
#define VT_TRACEON
 
#define VT_TRACEOFF
 

Typedefs

typedef int int_t
 

Functions

void set_default_options_dist (superlu_options_t *)
 
void print_options_dist (superlu_options_t *)
 
void Destroy_CompCol_Matrix_dist (SuperMatrix *)
 
void Destroy_SuperNode_Matrix_dist (SuperMatrix *)
 
void Destroy_SuperMatrix_Store_dist (SuperMatrix *)
 
void Destroy_CompCol_Permuted_dist (SuperMatrix *)
 
void Destroy_CompRowLoc_Matrix_dist (SuperMatrix *)
 
void Destroy_CompRow_Matrix_dist (SuperMatrix *)
 
void sp_colorder (superlu_options_t *, SuperMatrix *, int_t *, int_t *, SuperMatrix *)
 
int_t sp_coletree_dist (int_t *, int_t *, int_t *, int_t, int_t, int_t *)
 
void countnz_dist (const int_t, int_t *, int_t *, int_t *, Glu_persist_t *, Glu_freeable_t *)
 
int_t fixupL_dist (const int_t, const int_t *, Glu_persist_t *, Glu_freeable_t *)
 
int_tTreePostorder_dist (int_t, int_t *)
 
float slamch_ (char *)
 
double dlamch_ (char *)
 
void * superlu_malloc_dist (size_t)
 
void superlu_free_dist (void *)
 
int_tintMalloc_dist (int_t)
 
int_tintCalloc_dist (int_t)
 
void superlu_abort_and_exit_dist (char *)
 
int_t sp_ienv_dist (int_t)
 
int lsame_ (char *, char *)
 
int xerbla_ (char *, int *)
 
void ifill_dist (int_t *, int_t, int_t)
 
void super_stats_dist (int_t, int_t *)
 
void ScalePermstructInit (const int_t, const int_t, ScalePermstruct_t *)
 
void ScalePermstructFree (ScalePermstruct_t *)
 
void superlu_gridinit (MPI_Comm, int_t, int_t, gridinfo_t *)
 
void superlu_gridmap (MPI_Comm, int_t, int_t, int_t[], int_t, gridinfo_t *)
 
void superlu_gridexit (gridinfo_t *)
 
void get_perm_c_dist (int_t, int_t, SuperMatrix *, int_t *)
 
void a_plus_at_dist (const int_t, const int_t, int_t *, int_t *, int_t *, int_t **, int_t **)
 
void bcast_tree (void *, int, MPI_Datatype, int, int, gridinfo_t *, int, int *)
 
int_t symbfact (superlu_options_t *, int, SuperMatrix *, int_t *, int_t *, Glu_persist_t *, Glu_freeable_t *)
 
int_t symbfact_SubInit (fact_t, void *, int_t, int_t, int_t, int_t, Glu_persist_t *, Glu_freeable_t *)
 
int_t symbfact_SubXpand (int_t, int_t, int_t, MemType, int_t *, Glu_freeable_t *)
 
int_t symbfact_SubFree (Glu_freeable_t *)
 
void get_diag_procs (int_t, Glu_persist_t *, gridinfo_t *, int_t *, int_t **, int_t **)
 
int_t QuerySpace_dist (int_t, int_t, Glu_freeable_t *, mem_usage_t *)
 
void pxerbla (char *, gridinfo_t *, int_t)
 
void PStatInit (SuperLUStat_t *)
 
void PStatFree (SuperLUStat_t *)
 
void PStatPrint (superlu_options_t *, SuperLUStat_t *, gridinfo_t *)
 
float symbfact_dist (int, int, SuperMatrix *, int_t *, int_t *, int_t *, int_t *, Pslu_freeable_t *, MPI_Comm *, MPI_Comm *, mem_usage_t *)
 
float get_perm_c_parmetis (SuperMatrix *, int_t *, int_t *, int, int, int_t **, int_t **, gridinfo_t *, MPI_Comm *)
 
int_t psymbfact_LUXpandMem (int_t, int_t, int_t, int_t, int_t, int_t, int_t, int_t, Pslu_freeable_t *, Llu_symbfact_t *, vtcsInfo_symbfact_t *, psymbfact_stat_t *)
 
int_t psymbfact_LUXpand (int_t, int_t, int_t, int_t, int_t *, int_t, int_t, int_t, int_t, Pslu_freeable_t *, Llu_symbfact_t *, vtcsInfo_symbfact_t *, psymbfact_stat_t *)
 
int_t psymbfact_LUXpand_RL (int_t, int_t, int_t, int_t, int_t, int_t, Pslu_freeable_t *, Llu_symbfact_t *, vtcsInfo_symbfact_t *, psymbfact_stat_t *)
 
int_t psymbfact_prLUXpand (int_t, int_t, MemType, Llu_symbfact_t *, psymbfact_stat_t *)
 
void print_panel_seg_dist (int_t, int_t, int_t, int_t, int_t *, int_t *)
 
void check_repfnz_dist (int_t, int_t, int_t, int_t *)
 
int_t CheckZeroDiagonal (int_t, int_t *, int_t *, int_t *)
 
void PrintDouble5 (char *, int_t, double *)
 
void PrintInt10 (char *, int_t, int_t *)
 
int file_PrintInt10 (FILE *, char *, int_t, int_t *)
 

Detailed Description

Definitions which are precision-neutral.

-- Distributed SuperLU routine (version 2.2) --
Lawrence Berkeley National Lab, Univ. of California Berkeley.
November 1, 2007
Feburary 20, 2008

Macro Definition Documentation

◆ BC_HEADER

#define BC_HEADER   2

◆ BlockNum

#define BlockNum (   i)    ( supno[i] )

◆ BR_HEADER

#define BR_HEADER   3

◆ CEILING

#define CEILING (   a,
  b 
)    ( ((a)%(b)) ? ((a)/(b) + 1) : ((a)/(b)) )

◆ COMM_ALL

#define COMM_ALL   100

◆ COMM_COLUMN

#define COMM_COLUMN   101

◆ COMM_ROW

#define COMM_ROW   102

◆ FstBlockC

#define FstBlockC (   bnum)    ( xsup[bnum] )

◆ GSUM

#define GSUM   20

◆ IAM

#define IAM (   comm)    { int rank; MPI_Comm_rank ( comm, &rank ); rank};

◆ LB_DESCRIPTOR

#define LB_DESCRIPTOR   2

◆ LBi

#define LBi (   bnum,
  grid 
)    ( (bnum)/grid->nprow )/* Global to local block rowwise */

◆ LBj

#define LBj (   bnum,
  grid 
)    ( (bnum)/grid->npcol )/* Global to local block columnwise*/

◆ LkkDIAG

#define LkkDIAG   15

◆ LkSUB

#define LkSUB   13

◆ LkVAL

#define LkVAL   14

◆ LOG2

#define LOG2 (   x)    (log10((double) x) / log10(2.0))

◆ LSUM

#define LSUM   23

◆ LSUM_BLK

#define LSUM_BLK (   i)     ilsum[i] * nrhs + (i+1) * LSUM_H

◆ LSUM_H

#define LSUM_H   2 /* The header preceeding each MOD block. */

◆ mpi_int_t

#define mpi_int_t   MPI_INT

◆ MYCOL

#define MYCOL (   iam,
  grid 
)    ( (iam) % grid->npcol )

◆ MYROW

#define MYROW (   iam,
  grid 
)    ( (iam) / grid->npcol )

◆ NBUFFERS

#define NBUFFERS   5

◆ NO_MARKER

#define NO_MARKER   3

◆ NTAGS

#define NTAGS   10000

◆ PCOL

#define PCOL (   bnum,
  grid 
)    ( (bnum) % grid->npcol )

◆ PNUM

#define PNUM (   i,
  j,
  grid 
)    ( (i)*grid->npcol + j ) /* Process number at coord(i,j) */

◆ PROW

#define PROW (   bnum,
  grid 
)    ( (bnum) % grid->nprow )

◆ RHS_ITERATE

#define RHS_ITERATE (   i)     for (i = 0; i < nrhs; ++i)

◆ SUPER_BLOCK

#define SUPER_BLOCK   12

◆ SUPER_LINEAR

#define SUPER_LINEAR   11

◆ SuperLU_timer_

double SuperLU_timer_   SuperLU_timer_dist_

◆ SuperSize

#define SuperSize (   bnum)    ( xsup[bnum+1]-xsup[bnum] )

◆ UB_DESCRIPTOR

#define UB_DESCRIPTOR   2

◆ UjROW

#define UjROW   10

◆ UkSUB

#define UkSUB   11

◆ UkVAL

#define UkVAL   12

◆ VT_TRACEOFF

#define VT_TRACEOFF

◆ VT_TRACEON

#define VT_TRACEON

◆ X_BLK

#define X_BLK (   i)     ilsum[i] * nrhs + (i+1) * XK_H

◆ Xk

#define Xk   21

◆ XK_H

#define XK_H   2 /* The header preceeding each X block. */

◆ Yk

#define Yk   22

Typedef Documentation

◆ int_t

typedef int int_t

Function Documentation

◆ a_plus_at_dist()

void a_plus_at_dist ( const  int_t,
const  int_t,
int_t ,
int_t ,
int_t ,
int_t **  ,
int_t **   
)

◆ bcast_tree()

void bcast_tree ( void *  ,
int  ,
MPI_Datatype  ,
int  ,
int  ,
gridinfo_t ,
int  ,
int  
)

◆ check_repfnz_dist()

void check_repfnz_dist ( int_t  ,
int_t  ,
int_t  ,
int_t  
)

◆ CheckZeroDiagonal()

int_t CheckZeroDiagonal ( int_t  ,
int_t ,
int_t ,
int_t  
)

◆ countnz_dist()

void countnz_dist ( const  int_t,
int_t ,
int_t ,
int_t ,
Glu_persist_t ,
Glu_freeable_t  
)

◆ Destroy_CompCol_Matrix_dist()

void Destroy_CompCol_Matrix_dist ( SuperMatrix )

◆ Destroy_CompCol_Permuted_dist()

void Destroy_CompCol_Permuted_dist ( SuperMatrix )

◆ Destroy_CompRow_Matrix_dist()

void Destroy_CompRow_Matrix_dist ( SuperMatrix )

◆ Destroy_CompRowLoc_Matrix_dist()

void Destroy_CompRowLoc_Matrix_dist ( SuperMatrix )

◆ Destroy_SuperMatrix_Store_dist()

void Destroy_SuperMatrix_Store_dist ( SuperMatrix )

◆ Destroy_SuperNode_Matrix_dist()

void Destroy_SuperNode_Matrix_dist ( SuperMatrix )

◆ dlamch_()

double dlamch_ ( char )

◆ file_PrintInt10()

int file_PrintInt10 ( FILE *  ,
char ,
int_t  ,
int_t  
)

◆ fixupL_dist()

int_t fixupL_dist ( const  int_t,
const int_t ,
Glu_persist_t ,
Glu_freeable_t  
)

◆ get_diag_procs()

void get_diag_procs ( int_t  ,
Glu_persist_t ,
gridinfo_t ,
int_t ,
int_t **  ,
int_t **   
)

◆ get_perm_c_dist()

void get_perm_c_dist ( int_t  ,
int_t  ,
SuperMatrix ,
int_t  
)

◆ get_perm_c_parmetis()

float get_perm_c_parmetis ( SuperMatrix ,
int_t ,
int_t ,
int  ,
int  ,
int_t **  ,
int_t **  ,
gridinfo_t ,
MPI_Comm *   
)

◆ ifill_dist()

void ifill_dist ( int_t ,
int_t  ,
int_t   
)

◆ intCalloc_dist()

int_t* intCalloc_dist ( int_t  )

◆ intMalloc_dist()

int_t* intMalloc_dist ( int_t  )

◆ lsame_()

int lsame_ ( char ,
char  
)

◆ print_options_dist()

void print_options_dist ( superlu_options_t )

◆ print_panel_seg_dist()

void print_panel_seg_dist ( int_t  ,
int_t  ,
int_t  ,
int_t  ,
int_t ,
int_t  
)

◆ PrintDouble5()

void PrintDouble5 ( char ,
int_t  ,
double  
)

◆ PrintInt10()

void PrintInt10 ( char ,
int_t  ,
int_t  
)

◆ PStatFree()

void PStatFree ( SuperLUStat_t )

◆ PStatInit()

void PStatInit ( SuperLUStat_t )

◆ PStatPrint()

void PStatPrint ( superlu_options_t ,
SuperLUStat_t ,
gridinfo_t  
)

◆ psymbfact_LUXpand()

int_t psymbfact_LUXpand ( int_t  ,
int_t  ,
int_t  ,
int_t  ,
int_t ,
int_t  ,
int_t  ,
int_t  ,
int_t  ,
Pslu_freeable_t ,
Llu_symbfact_t ,
vtcsInfo_symbfact_t ,
psymbfact_stat_t  
)

◆ psymbfact_LUXpand_RL()

int_t psymbfact_LUXpand_RL ( int_t  ,
int_t  ,
int_t  ,
int_t  ,
int_t  ,
int_t  ,
Pslu_freeable_t ,
Llu_symbfact_t ,
vtcsInfo_symbfact_t ,
psymbfact_stat_t  
)

◆ psymbfact_LUXpandMem()

int_t psymbfact_LUXpandMem ( int_t  ,
int_t  ,
int_t  ,
int_t  ,
int_t  ,
int_t  ,
int_t  ,
int_t  ,
Pslu_freeable_t ,
Llu_symbfact_t ,
vtcsInfo_symbfact_t ,
psymbfact_stat_t  
)

◆ psymbfact_prLUXpand()

int_t psymbfact_prLUXpand ( int_t  ,
int_t  ,
MemType  ,
Llu_symbfact_t ,
psymbfact_stat_t  
)

◆ pxerbla()

void pxerbla ( char ,
gridinfo_t ,
int_t   
)

◆ QuerySpace_dist()

int_t QuerySpace_dist ( int_t  ,
int_t  ,
Glu_freeable_t ,
mem_usage_t  
)

◆ ScalePermstructFree()

void ScalePermstructFree ( ScalePermstruct_t )

◆ ScalePermstructInit()

void ScalePermstructInit ( const  int_t,
const  int_t,
ScalePermstruct_t  
)

◆ set_default_options_dist()

void set_default_options_dist ( superlu_options_t )

◆ slamch_()

float slamch_ ( char )

◆ sp_coletree_dist()

int_t sp_coletree_dist ( int_t ,
int_t ,
int_t ,
int_t  ,
int_t  ,
int_t  
)

◆ sp_colorder()

void sp_colorder ( superlu_options_t ,
SuperMatrix ,
int_t ,
int_t ,
SuperMatrix  
)

◆ sp_ienv_dist()

int_t sp_ienv_dist ( int_t  )

◆ super_stats_dist()

void super_stats_dist ( int_t  ,
int_t  
)

◆ superlu_abort_and_exit_dist()

void superlu_abort_and_exit_dist ( char )

◆ superlu_free_dist()

void superlu_free_dist ( void *  )

◆ superlu_gridexit()

void superlu_gridexit ( gridinfo_t )

◆ superlu_gridinit()

void superlu_gridinit ( MPI_Comm  ,
int_t  ,
int_t  ,
gridinfo_t  
)

◆ superlu_gridmap()

void superlu_gridmap ( MPI_Comm  ,
int_t  ,
int_t  ,
int_t  [],
int_t  ,
gridinfo_t  
)

◆ superlu_malloc_dist()

void* superlu_malloc_dist ( size_t  )

◆ symbfact()

int_t symbfact ( superlu_options_t ,
int  ,
SuperMatrix ,
int_t ,
int_t ,
Glu_persist_t ,
Glu_freeable_t  
)

◆ symbfact_dist()

float symbfact_dist ( int  ,
int  ,
SuperMatrix ,
int_t ,
int_t ,
int_t ,
int_t ,
Pslu_freeable_t ,
MPI_Comm *  ,
MPI_Comm *  ,
mem_usage_t  
)

◆ symbfact_SubFree()

int_t symbfact_SubFree ( Glu_freeable_t )

◆ symbfact_SubInit()

int_t symbfact_SubInit ( fact_t  ,
void *  ,
int_t  ,
int_t  ,
int_t  ,
int_t  ,
Glu_persist_t ,
Glu_freeable_t  
)

◆ symbfact_SubXpand()

int_t symbfact_SubXpand ( int_t  ,
int_t  ,
int_t  ,
MemType  ,
int_t ,
Glu_freeable_t  
)

◆ TreePostorder_dist()

int_t* TreePostorder_dist ( int_t  ,
int_t  
)

◆ xerbla_()

int xerbla_ ( char ,
int  
)