12 #ifndef __SUPERLU_DEFS
13 #define __SUPERLU_DEFS
32 #define mpi_int_t MPI_SHORT
33 #elif defined (_LONGINT)
34 typedef long long int int_t;
35 #define mpi_int_t MPI_LONG
38 #define mpi_int_t MPI_INT
97 #define LB_DESCRIPTOR 2
99 #define UB_DESCRIPTOR 2
110 #define SLU_MPI_TAG(id,num) ( (5*(num)+id) % tag_ub )
116 #define NTAGS INT_MAX
136 #define COMM_COLUMN 101
142 #define SUPER_LINEAR 11
143 #define SUPER_BLOCK 12
155 #define IAM(comm) { int rank; MPI_Comm_rank ( comm, &rank ); rank};
156 #define MYROW(iam,grid) ( (iam) / grid->npcol )
157 #define MYCOL(iam,grid) ( (iam) % grid->npcol )
158 #define BlockNum(i) ( supno[i] )
159 #define FstBlockC(bnum) ( xsup[bnum] )
160 #define SuperSize(bnum) ( xsup[bnum+1]-xsup[bnum] )
161 #define LBi(bnum,grid) ( (bnum)/grid->nprow )
162 #define LBj(bnum,grid) ( (bnum)/grid->npcol )
163 #define PROW(bnum,grid) ( (bnum) % grid->nprow )
164 #define PCOL(bnum,grid) ( (bnum) % grid->npcol )
165 #define PNUM(i,j,grid) ( (i)*grid->npcol + j )
166 #define CEILING(a,b) ( ((a)%(b)) ? ((a)/(b) + 1) : ((a)/(b)) )
168 #define RHS_ITERATE(i) \
169 for (i = 0; i < nrhs; ++i)
171 ilsum[i] * nrhs + (i+1) * XK_H
172 #define LSUM_BLK(i) \
173 ilsum[i] * nrhs + (i+1) * LSUM_H
175 #define SuperLU_timer_ SuperLU_timer_dist_
176 #define LOG2(x) (log10((double) x) / log10(2.0))
180 #define VT_TRACEON VT_traceon()
181 #define VT_TRACEOFF VT_traceoff()
601 extern void bcast_tree(
void *,
int, MPI_Datatype,
int,
int,
611 long long int *,
long long int *,
616 extern float slamch_(
const char *);
617 extern double dlamch_(
const char *);
628 extern int lsame_ (
char *,
char *);
629 extern int xerbla_ (
char *,
int *);
638 extern int xerbla_ (
char *,
int *);
675 extern void gemm_division_cpu_gpu (
int *,
int *,
int *,
int,
676 int,
int,
int *,
int);
IterRefine_t
Definition: superlu_enum_consts.h:23
void print_options_dist(superlu_options_t *)
Print the options setting.
Definition: util.c:348
double dlamch_(char *cmach)
Definition: dlamch.c:59
void Destroy_CompRowLoc_Matrix_dist(SuperMatrix *)
Definition: util.c:51
yes_no_t PivotGrowth
Definition: superlu_defs.h:509
float get_perm_c_parmetis(SuperMatrix *A, int_t *perm_r, int_t *perm_c, int nprocs_i, int noDomains, int_t **sizes, int_t **fstVtxSep, gridinfo_t *grid, MPI_Comm *metis_comm)
Definition: get_perm_c_parmetis.c:91
int_t rukp
Definition: superlu_defs.h:542
Definition: superlu_defs.h:541
yes_no_t
Definition: superlu_enum_consts.h:16
LU_space_t MemModel
Definition: superlu_defs.h:312
Definition: superlu_defs.h:555
int_t nzumax
Definition: superlu_defs.h:311
Definition: psymbfact.h:95
int_t sp_ienv_dist(int_t ispec)
Purpose
Definition: sp_ienv.c:59
Definition: superlu_defs.h:250
rowperm_t RowPerm
Definition: superlu_defs.h:511
Definition: psymbfact.h:47
long long int fixupL_dist(const int_t, const int_t *, Glu_persist_t *, Glu_freeable_t *)
Definition: util.c:290
void bcast_tree(void *buf, int count, MPI_Datatype dtype, int root, int tag, gridinfo_t *grid, int scope, int *recvcnt)
Definition: comm.c:62
yes_no_t SymmetricMode
Definition: superlu_defs.h:508
void print_sp_ienv_dist(superlu_options_t *)
Print the blocking parameters.
Definition: util.c:369
trans_t
Definition: superlu_enum_consts.h:21
colperm_t ColPerm
Definition: superlu_defs.h:504
void get_diag_procs(int_t, Glu_persist_t *, gridinfo_t *, int_t *, int_t **, int_t **)
Definition: util.c:699
Definition: superlu_defs.h:501
int_t FullRow
Definition: superlu_defs.h:552
int ILU_DropRule
Definition: superlu_defs.h:512
yes_no_t SymPattern
Definition: superlu_defs.h:528
int_t mc64id_dist(int_t *icntl)
Definition: mc64ad_dist.c:57
void log_memory(long long, SuperLUStat_t *)
Definition: util.c:943
int val
Definition: superlu_defs.h:564
void set_default_options_dist(superlu_options_t *)
Set the default values for the options argument.
Definition: util.c:328
int_t symbfact_SubFree(Glu_freeable_t *Glu_freeable)
Definition: memory.c:403
Local information on vertices distribution.
Definition: psymbfact.h:129
enum constants header file
float for_lu
Definition: superlu_defs.h:532
Definition: util_dist.h:72
int_t * intCalloc_dist(int_t n)
Definition: memory.c:150
void check_repfnz_dist(int_t, int_t, int_t, int_t *)
Check whether repfnz[] == EMPTY after reset.
Definition: util.c:780
yes_no_t ReplaceTinyPivot
Definition: superlu_defs.h:520
double ILU_FillFactor
Definition: superlu_defs.h:514
Definition: supermatrix.h:44
int sp_symetree_dist(int_t *acolst, int_t *acolend, int_t *arow, int_t n, int_t *parent)
Symmetric elimination tree.
Definition: etree.c:146
int file_PrintLong10(FILE *, char *, int_t, int_t *)
Definition: util.c:818
void superlu_gridinit(MPI_Comm, int_t, int_t, gridinfo_t *)
All processes in the MPI communicator must call this routine.
Definition: superlu_grid.c:18
void super_stats_dist(int_t, int_t *)
Definition: util.c:740
fact_t
Definition: superlu_enum_consts.h:17
int_t lptr
Definition: superlu_defs.h:550
void ScalePermstructInit(const int_t, const int_t, ScalePermstruct_t *)
Allocate storage in ScalePermstruct.
Definition: util.c:162
MemType
Definition: superlu_enum_consts.h:24
statistics collected during parallel symbolic factorization
Definition: psymbfact.h:183
milu_t ILU_MILU
Definition: superlu_defs.h:517
Definitions for parallel symbolic factorization routine.
int num_lookaheads
Definition: superlu_defs.h:525
void pxerbla(char *srname, gridinfo_t *grid, int_t info)
Definition: pxerbla.c:13
int nnzU
Definition: superlu_defs.h:524
int_t full_u_cols
Definition: superlu_defs.h:545
Definition: superlu_defs.h:220
int_t * supno
Definition: superlu_defs.h:252
norm_t
Definition: superlu_enum_consts.h:27
MPI_Comm comm
Definition: superlu_defs.h:221
fact_t Fact
Definition: superlu_defs.h:502
yes_no_t Equil
Definition: superlu_defs.h:503
DiagScale_t
Definition: superlu_enum_consts.h:22
int_t * intMalloc_dist(int_t n)
Definition: memory.c:143
int_t psymbfact_LUXpand_RL(int_t iam, int_t n, int_t vtxXp, int_t next, int_t len_texp, int_t mem_type, Pslu_freeable_t *Pslu_freeable, Llu_symbfact_t *Llu_symbfact, vtcsInfo_symbfact_t *VInfo, psymbfact_stat_t *PS)
Definition: psymbfact_util.c:372
void PrintDouble5(char *name, int_t len, double *x)
Definition: dutil.c:342
yes_no_t ParSymbFact
Definition: superlu_defs.h:519
int_t * perm_c
Definition: superlu_defs.h:360
void superlu_abort_and_exit_dist(char *msg)
Definition: memory.c:35
int_t ib
Definition: superlu_defs.h:551
int file_PrintInt10(FILE *, char *, int, int *)
Definition: util.c:805
void print_panel_seg_dist(int_t, int_t, int_t, int_t, int_t *, int_t *)
Diagnostic print of segment info after panel_dfs().
Definition: util.c:553
void ifill_dist(int_t *, int_t, int_t)
Fills an integer array with a given value.
Definition: util.c:691
int genmmd_dist_(int_t *neqns, int_t *xadj, int_t *adjncy, int_t *invp, int_t *perm, int_t *delta, int_t *dhead, int_t *qsize, int_t *llist, int_t *marker, int_t *maxint, int_t *nofsub)
Definition: mmd.c:54
int_t * xusub
Definition: superlu_defs.h:309
Definition: superlu_defs.h:355
norm_t ILU_Norm
Definition: superlu_defs.h:515
double ILU_DropTol
Definition: superlu_defs.h:513
rowperm_t
Definition: superlu_enum_consts.h:18
yes_no_t ConditionNumber
Definition: superlu_defs.h:510
int_t QuerySpace_dist(int_t n, int_t lsub_size, Glu_freeable_t *Glu_freeable, mem_usage_t *mem_usage)
Definition: memory.c:541
void superlu_gridmap(MPI_Comm, int_t, int_t, int_t[], int_t, gridinfo_t *)
All processes in the MPI communicator must call this routine.
Definition: superlu_grid.c:48
milu_t
Definition: superlu_enum_consts.h:28
int ind
Definition: superlu_defs.h:563
void * next
Definition: superlu_defs.h:558
double DiagPivotThresh
Definition: superlu_defs.h:507
void sp_colorder(superlu_options_t *options, SuperMatrix *A, int_t *perm_c, int_t *etree, SuperMatrix *AC)
Definition: sp_colorder.c:70
int_t psymbfact_prLUXpand(int_t iam, int_t min_new_len, int mem_type, Llu_symbfact_t *Llu_symbfact, psymbfact_stat_t *PS)
Definition: psymbfact_util.c:490
Definition: superlu_defs.h:227
double ILU_MILU_Dim
Definition: superlu_defs.h:518
int lsame_(char *ca, char *cb)
Definition: lsame.c:32
void Destroy_SuperNode_Matrix_dist(SuperMatrix *)
Definition: util.c:70
int_t * xsup
Definition: superlu_defs.h:251
float slamch_(char *cmach)
Definition: slamch.c:60
void Destroy_SuperMatrix_Store_dist(SuperMatrix *)
Deallocate the structure pointing to the actual storage of the matrix.
Definition: util.c:35
int Iam
Definition: superlu_defs.h:223
int_t psymbfact_LUXpand(int_t iam, int_t n, int_t fstVtxLvl_loc, int_t vtxXp, int_t *p_next, int_t min_new_len, int_t mem_type, int_t rout_type, int_t free_prev_mem, Pslu_freeable_t *Pslu_freeable, Llu_symbfact_t *Llu_symbfact, vtcsInfo_symbfact_t *VInfo, psymbfact_stat_t *PS)
Definition: psymbfact_util.c:201
void * superlu_malloc_dist(size_t size)
Definition: memory.c:105
Definition: superlu_defs.h:305
int_t * ulvl
Definition: superlu_defs.h:314
void Destroy_CompRow_Matrix_dist(SuperMatrix *)
Definition: util.c:61
Definition: superlu_defs.h:549
int key
Definition: superlu_defs.h:557
void superlu_gridexit(gridinfo_t *)
Definition: superlu_grid.c:157
int_t * xlsub
Definition: superlu_defs.h:307
void Destroy_CompCol_Matrix_dist(SuperMatrix *)
Definition: util.c:41
void ScalePermstructFree(ScalePermstruct_t *)
Deallocate ScalePermstruct.
Definition: util.c:173
int_t npcol
Definition: superlu_defs.h:233
double * R
Definition: superlu_defs.h:357
void countnz_dist(const int_t, int_t *, long long int *, long long int *, Glu_persist_t *, Glu_freeable_t *)
Definition: util.c:230
superlu_scope_t cscp
Definition: superlu_defs.h:230
double ILU_FillTol
Definition: superlu_defs.h:516
trans_t Trans
Definition: superlu_defs.h:505
yes_no_t RefineInitialized
Definition: superlu_defs.h:522
MPI_Comm comm
Definition: superlu_defs.h:228
void print_memorylog(SuperLUStat_t *, char *)
Definition: util.c:951
void PStatFree(SuperLUStat_t *)
Definition: util.c:683
int_t nprow
Definition: superlu_defs.h:232
int_t * usub
Definition: superlu_defs.h:308
#define SuperLU_timer_
Definition: superlu_defs.h:175
float total
Definition: superlu_defs.h:533
int_t psymbfact_LUXpandMem(int_t iam, int_t n, int_t vtxXp, int_t next, int_t min_new_len, int_t mem_type, int_t rout_type, int_t free_prev_mem, Pslu_freeable_t *Pslu_freeable, Llu_symbfact_t *Llu_symbfact, vtcsInfo_symbfact_t *VInfo, psymbfact_stat_t *PS)
Definition: psymbfact_util.c:81
int_t expansions
Definition: superlu_defs.h:534
double * C
Definition: superlu_defs.h:358
int int_t
Definition: superlu_defs.h:37
void Destroy_CompCol_Permuted_dist(SuperMatrix *)
A is of type Stype==NCP.
Definition: util.c:83
int_t CheckZeroDiagonal(int_t, int_t *, int_t *, int_t *)
Definition: util.c:832
Definition: superlu_defs.h:561
DiagScale_t DiagScale
Definition: superlu_defs.h:356
void PrintInt10(char *, int_t, int_t *)
Definition: util.c:793
void PStatPrint(superlu_options_t *, SuperLUStat_t *, gridinfo_t *)
Definition: util.c:584
yes_no_t PrintStat
Definition: superlu_defs.h:523
int_t symbfact_SubXpand(int_t n, int_t jcol, int_t next, MemType mem_type, int_t *maxlen, Glu_freeable_t *Glu_freeable)
Definition: memory.c:357
int iam
Definition: superlu_defs.h:231
LU_space_t
Definition: superlu_enum_consts.h:26
int_t symbfact_SubInit(fact_t fact, void *work, int_t lwork, int_t m, int_t n, int_t annz, Glu_persist_t *Glu_persist, Glu_freeable_t *Glu_freeable)
Definition: memory.c:228
yes_no_t SolveInitialized
Definition: superlu_defs.h:521
void superlu_free_dist(void *addr)
Definition: memory.c:112
int_t * perm_r
Definition: superlu_defs.h:359
int_t symbfact(superlu_options_t *, int, SuperMatrix *, int_t *, int_t *, Glu_persist_t *, Glu_freeable_t *)
Definition: symbfact.c:72
int sp_coletree_dist(int_t *acolst, int_t *acolend, int_t *arow, int_t nr, int_t nc, int_t *parent)
Nonsymmetric elimination tree.
Definition: etree.c:213
void at_plus_a_dist(const int_t n, const int_t nz, int_t *colptr, int_t *rowind, int_t *bnz, int_t **b_colptr, int_t **b_rowind)
Definition: get_perm_c.c:254
int Np
Definition: superlu_defs.h:222
int_t jb
Definition: superlu_defs.h:544
yes_no_t lookahead_etree
Definition: superlu_defs.h:526
int xerbla_(char *, int *)
Definition: xerbla.c:42
int_t nzlmax
Definition: superlu_defs.h:310
Definition: superlu_defs.h:531
colperm_t
Definition: superlu_enum_consts.h:19
int_t * llvl
Definition: superlu_defs.h:313
superlu_scope_t rscp
Definition: superlu_defs.h:229
void get_perm_c_dist(int_t pnum, int_t ispec, SuperMatrix *A, int_t *perm_c)
Definition: get_perm_c.c:417
void PStatInit(SuperLUStat_t *)
Definition: util.c:568
long long int nnzU
Definition: superlu_defs.h:535
int_t * lsub
Definition: superlu_defs.h:306
float symbfact_dist(int nprocs_num, int nprocs_symb, SuperMatrix *A, int_t *perm_c, int_t *perm_r, int_t *sizes, int_t *fstVtxSep, Pslu_freeable_t *Pslu_freeable, MPI_Comm *num_comm, MPI_Comm *symb_comm, mem_usage_t *symb_mem_usage)
Definition: psymbfact.c:131
int_t * TreePostorder_dist(int_t n, int_t *parent)
Definition: etree.c:383
int_t iukp
Definition: superlu_defs.h:543
IterRefine_t IterRefine
Definition: superlu_defs.h:506