37 #ifndef __SUPERLU_dSP_DEFS     38 #define __SUPERLU_dSP_DEFS    43 #if defined ( _SOLARIS )    50 #elif defined ( _PTHREAD )    52 #elif defined ( _CRAY )    59 #include "supermatrix.h"    61 #include "pxgstrf_synch.h"    63 #if ( MACH==DEC || MACH==PTHREAD )    64 typedef pthread_mutex_t mutex_t;
    65 #elif ( MACH==SGI || MACH==ORIGIN )    67 #elif ( MACH==CRAY_PVP )    74 typedef enum {NO, YES} yes_no_t;
    75 typedef enum {NOTRANS, TRANS, CONJ} trans_t;
    76 typedef enum {FACTORED, DOFACT, EQUILIBRATE} fact_t;
    77 typedef enum {NOEQUIL, ROW, COL, BOTH} equed_t;
    78 typedef enum {LUSUP, UCOL, LSUB, USUB} MemType;
   214     int  dynamic_snode_bound;
   337     double   diag_pivot_thresh;
   367     volatile int tasks_remain; 
   371     volatile int *spin_locks;  
   372     pan_status_t *pan_status;  
   417 #define SUPER_REP(s)    ( xsup_end[s]-1 )   418 #define SUPER_FSUPC(s)  ( xsup[s] )   419 #define SINGLETON(s)    ( (xsup_end[s] - xsup[s]) == 1 )   420 #define ISPRUNED(j)     ( ispruned[j] )   421 #define STATE(j)        ( pxgstrf_shared->pan_status[j].state )   422 #define DADPANEL(j)     ( etree[j + pxgstrf_shared->pan_status[j].size-1] )   425 #define TIC(t)          t = SuperLU_timer_()   426 #define TOC(t2, t1)     t2 = SuperLU_timer_() - t1   446 pdgssv(
int, SuperMatrix *, 
int *, 
int *, SuperMatrix *, SuperMatrix *, 
   447        SuperMatrix *, 
int *);
   450     equed_t *, 
double *, 
double *, SuperMatrix *, SuperMatrix *,
   451     SuperMatrix *, SuperMatrix *, 
   457 extern void dgsequ (SuperMatrix *, 
double *, 
double *, 
double *,
   458             double *, 
double *, 
int *);
   459 extern void dlaqgs (SuperMatrix *, 
double *, 
double *, 
double,
   460             double, 
double, equed_t *);
   461 extern void dgscon (
char *, SuperMatrix *, SuperMatrix *,
   462             double, 
double *, 
int *);
   463 extern double dPivotGrowth(
int, SuperMatrix *, 
int *,
   464                SuperMatrix *, SuperMatrix *);
   465 extern void dgsrfs (trans_t, SuperMatrix *, SuperMatrix *, SuperMatrix *,
   466             int *, 
int *, equed_t, 
double *, 
double *, SuperMatrix *,
   467             SuperMatrix *, 
double *, 
double *, 
Gstat_t *, 
int *);
   468 extern int  sp_dtrsv (
char *, 
char *, 
char *, SuperMatrix *, SuperMatrix *,
   470 extern int  sp_dgemv (
char *, 
double, SuperMatrix *, 
double *,
   471               int, 
double, 
double *, 
int);
   472 extern int  sp_dgemm (
char *, 
int, 
int, 
int, 
double, SuperMatrix *, 
   473               double *, 
int, 
double, 
double *, 
int);
   478 extern void pxgstrf_scheduler (
const int, 
const int, 
const int *,
   482 extern int  ParallelFinalize ();
   483 extern int  queue_init (queue_t *, 
int);
   484 extern int  queue_destroy (queue_t *);
   488 extern int  Enqueue (queue_t *, qitem_t);
   489 extern int  Dequeue (queue_t *, qitem_t *);
   490 extern int  NewNsuper (
const int, mutex_t *, 
int *);
   491 extern int  lockon(
int *);
   492 extern void PartDomains(
const int, 
const float, SuperMatrix *, 
int *, 
int *);
   495 dCreate_CompCol_Matrix(SuperMatrix *, 
int, 
int, 
int, 
double *,
   496               int *, 
int *, Stype_t, Dtype_t, Mtype_t);
   498 dCreate_CompCol_Permuted(SuperMatrix *, 
int, 
int, 
int, 
double *, 
int *,
   499              int *, 
int *, Stype_t, Dtype_t, Mtype_t);
   501 dCopy_CompCol_Matrix(SuperMatrix *, SuperMatrix *);
   503 dCreate_Dense_Matrix(SuperMatrix *, 
int, 
int, 
double *, 
int,
   504              Stype_t, Dtype_t, Mtype_t);
   506 dCreate_SuperNode_Matrix(SuperMatrix *, 
int, 
int, 
int, 
double *, 
int *, 
int *,
   507             int *, 
int *, 
int *, Stype_t, Dtype_t, Mtype_t);
   509 dCreate_SuperNode_Permuted(SuperMatrix *, 
int, 
int, 
int, 
double *, 
   510                int *, 
int *, 
int *, 
int *, 
int *, 
int *, 
   511                int *, 
int *, Stype_t, Dtype_t, Mtype_t);
   513 dCopy_Dense_Matrix(
int, 
int, 
double *, 
int, 
double *, 
int);
   515 extern void Destroy_SuperMatrix_Store(SuperMatrix *);
   516 extern void Destroy_CompCol_Matrix(SuperMatrix *);
   517 extern void Destroy_CompCol_Permuted(SuperMatrix *);
   518 extern void Destroy_CompCol_NCP(SuperMatrix *);
   519 extern void Destroy_SuperNode_Matrix(SuperMatrix *);
   520 extern void Destroy_SuperNode_SCP(SuperMatrix *);
   522 extern void dallocateA (
int, 
int, 
double **, 
int **, 
int **);
   523 extern void StatAlloc (
const int, 
const int, 
const int, 
const int, 
Gstat_t*);
   524 extern void StatInit  (
const int, 
const int, 
Gstat_t*);
   525 extern void StatFree  (
Gstat_t*);
   526 extern void get_perm_c(
int, SuperMatrix *, 
int *);
   529 extern int  sp_coletree (
int *, 
int *, 
int *, 
int, 
int, 
int *);
   532 extern int  qrnzcnt (
int, 
int, 
int *, 
int *, 
int *, 
int *, 
int *, 
int *,
   533              int *, 
int *, 
int *, 
int *);
   534 extern int  DynamicSetMap(
const int, 
const int, 
const int, 
pxgstrf_shared_t*);
   536              SuperMatrix *, SuperMatrix *, 
Gstat_t *, 
int *);
   537 extern void pdgstrf_init (
int, yes_no_t, 
int, 
int, 
double, yes_no_t, 
double,
   538               int *, 
int *, 
void *, 
int, SuperMatrix *,
   541 pdgstrf_thread_init (SuperMatrix *, SuperMatrix *, SuperMatrix *,
   545              SuperMatrix *, 
int *, SuperMatrix *, SuperMatrix *);
   550 pdgstrf_factor_snode (
const int, 
const int, SuperMatrix *, 
const double,
   551               yes_no_t *, 
int *, 
int *, 
int*, 
int*, 
int*, 
int*,
   554 pxgstrf_mark_busy_descends (
int, 
int, 
int *, 
pxgstrf_shared_t *, 
int *, 
int *);
   555 extern int  pdgstrf_snode_dfs (
const int, 
const int, 
const int, 
const int *,
   556                    const int *, 
const int *, 
int*, 
int *, 
int *,
   558 extern int  pdgstrf_snode_bmod (
const int, 
const int, 
const int, 
const int,
   560 extern void pdgstrf_panel_dfs (
const int, 
const int, 
const int, 
const int,
   561                    SuperMatrix *, 
int*, 
int*, 
int*, 
int*, 
int*, 
   562                    int*, 
int*, 
int*, 
int*, 
int*, 
int*, 
int*, 
int*,
   564 extern void pdgstrf_panel_bmod (
const int, 
const int, 
const int, 
const int,
   565                 const int, 
int*, 
int*, 
int*, 
int*, 
int*, 
int*,
   566                 int*, 
int*, 
double*, 
double*, 
   568 extern void pdgstrf_bmod1D (
const int, 
const int, 
const int, 
const int, 
   569                 const int, 
const int, 
const int, 
int, 
int,
   570                 int *, 
int *, 
int *, 
int *, 
double *, 
double *, 
   572 extern void pdgstrf_bmod2D (
const int, 
const int, 
const int, 
const int,
   573                 const int, 
const int, 
const int, 
int, 
int,
   574                 int *, 
int *, 
int *, 
int *, 
double *, 
double *,
   576 extern void pdgstrf_bmod1D_mv2 (
const int, 
const int, 
const int, 
const int, 
   577                 const int, 
const int, 
const int, 
int, 
int,
   578                 int *, 
int *, 
int *, 
int *, 
double *, 
   580 extern void pdgstrf_bmod2D_mv2 (
const int, 
const int, 
const int, 
const int,
   581                 const int, 
const int, 
const int, 
int, 
int,
   582                 int *, 
int *, 
int *, 
int *, 
double *, 
double *,
   584 extern void pxgstrf_super_bnd_dfs (
const int, 
const int, 
const int, 
   585                    const int, 
const int, SuperMatrix*,
   586                    int*, 
int*, 
int*, 
int *, 
int *, 
int *,
   588 extern int  pdgstrf_column_dfs(
const int, 
const int, 
const int, 
const int,
   589                    int*, 
int*, 
int*, 
int, 
int*, 
int*, 
int*, 
int*,
   591 extern int  pdgstrf_column_bmod(
const int, 
const int, 
const int, 
const int, 
   592                 int*, 
int*, 
double*, 
double*,
   594 extern int  pdgstrf_pivotL (
const int, 
const int, 
const double, yes_no_t*,
   596 extern int  pdgstrf_copy_to_ucol (
const int, 
const int, 
const int, 
const int *,
   597                   const int *, 
const int *, 
double*,
   599 extern void pxgstrf_pruneL (
const int, 
const int *, 
const int, 
const int,
   600                 const int *, 
const int *, 
int*, 
int *,
   602 extern void pxgstrf_resetrep_col (
const int, 
const int *, 
int *);
   603 extern void countnz (
const int, 
int*, 
int *, 
int *, 
GlobalLU_t *);
   604 extern void fixupL (
const int, 
const int *, 
GlobalLU_t *);
   605 extern void compressSUP (
const int, 
GlobalLU_t *);
   606 extern int  spcoletree (
int *, 
int *, 
int *, 
int, 
int, 
int *);
   607 extern int  *TreePostorder (
int, 
int *);
   608 extern void dreadmt (
int *, 
int *, 
int *, 
double **, 
int **, 
int **);
   609 extern void dreadhb (
int *, 
int *, 
int *, 
double **, 
int **, 
int **);
   610 extern void dGenXtrue (
int, 
int, 
double *, 
int);
   611 extern void dFillRHS (trans_t, 
int, 
double *, 
int, 
   612               SuperMatrix *, SuperMatrix *);
   613 extern void dgstrs (trans_t, SuperMatrix *, SuperMatrix*, 
   614             int*, 
int*, SuperMatrix*, 
Gstat_t *, 
int *);
   622 extern int  pdgstrf_memory_use(
const int, 
const int, 
const int);
   623 extern int  pdgstrf_WorkInit (
int, 
int, 
int **, 
double **);
   624 extern void pxgstrf_SetIWork (
int, 
int, 
int *, 
int **, 
int **, 
int **,
   625               int **, 
int **, 
int **, 
int **);
   626 extern void pdgstrf_SetRWork (
int, 
int, 
double *, 
double **, 
double **);
   627 extern void pdgstrf_WorkFree (
int *, 
double *, 
GlobalLU_t *);
   628 extern int  pdgstrf_MemXpand (
int, 
int, MemType, 
int *, 
GlobalLU_t *);
   630 extern int  *intMalloc (
int);
   631 extern int  *intCalloc (
int);
   632 extern double *doubleMalloc(
int);
   633 extern double *doubleCalloc(
int);
   634 extern int  memory_usage ();
   635 extern int  superlu_QuerySpace (
int, SuperMatrix *, SuperMatrix *, 
int, 
   637 extern int  Glu_alloc (
const int, 
const int, 
const int, 
const MemType,
   643 extern double  SuperLU_timer_();
   644 extern int     sp_ienv(
int);
   645 extern double  dlamch_();
   646 extern int     lsame_(
char *, 
char *);
   647 extern int     xerbla_(
char *, 
int *);
   648 extern void    superlu_abort_and_exit(
char *);
   649 extern void    ifill(
int *, 
int, 
int);
   650 extern void    dfill(
double *, 
int, 
double);
   651 extern void    inf_norm_error(
int, SuperMatrix *, 
double *);
   652 extern void    dstat_allocate(
int);
   653 extern void    snode_profile(
int, 
int *);
   654 extern void    super_stats(
int, 
int *, 
int *);
   655 extern void    panel_stats(
int, 
int, 
int *, 
Gstat_t *);
   656 extern void    PrintSumm(
char *, 
int, 
int, 
int);
   658              double, 
double, 
double *, 
double *, 
char *);
   663 extern void    print_lu_col(
int, 
char *, 
int, 
int, 
int, 
int *, 
GlobalLU_t *);
   664 extern void    print_panel_seg(
int, 
int, 
int, 
int, 
int *, 
int *);
   665 extern void    dcheck_zero_vec(
int, 
char *, 
int, 
double *);
   666 extern void    check_repfnz(
int, 
int, 
int, 
int *);
 Definition: pdsp_defs.h:330
Definition: pdsp_defs.h:394
Definition: pdsp_defs.h:406
Definition: pdsp_defs.h:400
Definition: SuperLU_MT_util.h:210
Definition: pdsp_defs.h:386
Definition: pdsp_defs.h:363
Definition: pdsp_defs.h:181
Definition: SuperLU_MT_util.h:189