12 #ifndef __SUPERLU_zDEFS
13 #define __SUPERLU_zDEFS
34 #define MAX_LOOKAHEADS 50
36 int_t **Lrowind_bc_ptr;
38 int_t **Ufstnz_br_ptr;
95 int_t **ut_sendx_plist;
145 int *ptr_to_ibuf, *ptr_to_dbuf;
148 int *X_to_B_iSendCnt;
149 int *X_to_B_vSendCnt;
165 int_t num_diag_procs, *diag_procs, *diag_len;
168 int_t *A_colind_gsmv;
225 double *,
double *,
int_t *);
228 double,
double,
char *);
233 double,
double,
char *);
355 #ifdef USE_VENDOR_BLAS
356 extern int zgemm_(
const char*,
const char*,
const int*,
const int*,
const int*,
361 extern int ztrsm_(
char*,
char*,
char*,
char*,
int*,
int*,
363 int*,
int,
int,
int,
int);
367 extern int zgemm_(
const char*,
const char*,
const int*,
const int*,
const int*,
373 extern int ztrsm_(
char*,
char*,
char*,
char*,
int*,
int*,
void * duser_malloc_dist(int_t bytes, int_t which_end)
Definition: dmemory.c:20
int zgemv_(char *, int *, int *, doublecomplex *, doublecomplex *a, int *, doublecomplex *, int *, doublecomplex *, doublecomplex *, int *)
Definition: zgemv.c:9
void zSolveFinalize(superlu_options_t *options, SOLVEstruct_t *SOLVEstruct)
Release the resources used for the solution phase.
Definition: pzutil.c:479
int zcreate_matrix_dat(SuperMatrix *, int, doublecomplex **, int *, doublecomplex **, int *, FILE *, gridinfo_t *)
void zGenXtrue_dist(int_t, int_t, doublecomplex *, int_t)
Definition: zutil.c:284
void zCopy_CompCol_Matrix_dist(SuperMatrix *, SuperMatrix *)
Copy matrix A into matrix B.
Definition: zutil.c:112
void PrintDoublecomplex(char *, int_t, doublecomplex *)
Definition: zutil.c:344
void zCreate_Dense_Matrix_dist(SuperMatrix *, int_t, int_t, doublecomplex *, int_t, Stype_t, Dtype_t, Mtype_t)
Definition: zutil.c:217
float zdist_psymbtonum(fact_t fact, int_t n, SuperMatrix *A, ScalePermstruct_t *ScalePermstruct, Pslu_freeable_t *Pslu_freeable, LUstruct_t *LUstruct, gridinfo_t *grid)
Definition: pzsymbfact_distdata.c:1176
doublecomplex * val_tosend
Definition: superlu_zdefs.h:133
Definition: superlu_defs.h:250
Definition: psymbfact.h:47
void pzgsrfs(int_t n, SuperMatrix *A, double anorm, LUstruct_t *LUstruct, ScalePermstruct_t *ScalePermstruct, gridinfo_t *grid, doublecomplex *B, int_t ldb, doublecomplex *X, int_t ldx, int nrhs, SOLVEstruct_t *SOLVEstruct, double *berr, SuperLUStat_t *stat, int *info)
Definition: pzgsrfs.c:106
int_t * extern_start
Definition: superlu_zdefs.h:122
void zfill_dist(doublecomplex *, int_t, doublecomplex)
Fills a doublecomplex precision array with a given value.
Definition: zutil.c:311
Definition: superlu_defs.h:501
double pzlangs(char *norm, SuperMatrix *A, gridinfo_t *grid)
Definition: pzlangs.c:54
doublecomplex ** Unzval_br_ptr
Definition: superlu_zdefs.h:39
int_t TotalIndSend
Definition: superlu_zdefs.h:135
int ztrsv_(char *, char *, char *, int *, doublecomplex *, int *, doublecomplex *, int *)
Definition: ztrsv.c:9
int sp_zgemv_dist(char *, doublecomplex, SuperMatrix *, doublecomplex *, int, doublecomplex, doublecomplex *, int)
Definition: zsp_blas2.c:385
doublecomplex * val_torecv
Definition: superlu_zdefs.h:134
Definition: util_dist.h:72
double * doubleMalloc_dist(int_t n)
Definition: dmemory.c:142
int zcreate_matrix(SuperMatrix *, int, doublecomplex **, int *, doublecomplex **, int *, FILE *, gridinfo_t *)
Definition: zcreate_matrix.c:55
Definition: supermatrix.h:44
void zCreate_SuperNode_Matrix_dist(SuperMatrix *, int_t, int_t, int_t, doublecomplex *, int_t *, int_t *, int_t *, int_t *, int_t *, Stype_t, Dtype_t, Mtype_t)
Definition: zutil.c:256
fact_t
Definition: superlu_enum_consts.h:17
int zgemm_(const char *, const char *, const int *, const int *, const int *, const doublecomplex *, const doublecomplex *, const int *, const doublecomplex *, const int *, const doublecomplex *, doublecomplex *, const int *)
void zPrint_CompCol_Matrix_dist(SuperMatrix *)
Definition: zutil.c:132
int sp_ztrsv_dist(char *, char *, char *, SuperMatrix *, SuperMatrix *, doublecomplex *, int *)
Definition: zsp_blas2.c:84
int ztrsm_(char *, char *, char *, char *, int *, int *, doublecomplex *, doublecomplex *, int *, doublecomplex *, int *)
Definition: ztrsm.c:13
Stype_t
Definition: supermatrix.h:12
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)
Definition: pzgsrfs_ABXglobal.c:111
void zPrint_Dense_Matrix_dist(SuperMatrix *)
Definition: zutil.c:156
void zinf_norm_error_dist(int_t, int_t, doublecomplex *, int_t, doublecomplex *, int_t, gridinfo_t *)
Check the inf-norm of the error vector.
Definition: zutil.c:321
doublecomplex ** Lnzval_bc_ptr
Definition: superlu_zdefs.h:37
Definition: superlu_ddefs.h:25
void pzgsmv(int_t abs, SuperMatrix *A_internal, gridinfo_t *grid, pzgsmv_comm_t *gsmv_comm, doublecomplex x[], doublecomplex ax[])
Definition: pzgsmv.c:224
void zreadhb_dist(int, FILE *, int_t *, int_t *, int_t *, doublecomplex **, int_t **, int_t **)
Definition: zreadhb.c:95
int_t * ptr_ind_tosend
Definition: superlu_zdefs.h:125
int file_PrintDoublecomplex(FILE *fp, char *, int_t, doublecomplex *)
Definition: zutil.c:353
void LUstructFree(LUstruct_t *)
Deallocate LUstruct.
Definition: util.c:205
void Destroy_LU(int_t, gridinfo_t *, LUstruct_t *)
Destroy distributed L & U matrices.
Definition: util.c:101
int zSolveInit(superlu_options_t *options, SuperMatrix *A, int_t perm_r[], int_t perm_c[], int_t nrhs, LUstruct_t *LUstruct, gridinfo_t *grid, SOLVEstruct_t *SOLVEstruct)
Initialize the data structure for the solution phase.
Definition: pzutil.c:392
Definition: superlu_ddefs.h:162
void pzinf_norm_error(int iam, int_t n, int_t nrhs, doublecomplex x[], int_t ldx, doublecomplex xtrue[], int_t ldxtrue, gridinfo_t *grid)
Check the inf-norm of the error vector.
Definition: pzutil.c:498
#define NBUFFERS
Definition: superlu_defs.h:100
Definition: superlu_defs.h:355
doublecomplex * doublecomplexMalloc_dist(int_t)
Definition: zmemory.c:141
pzgsmv_comm_t * gsmv_comm
Definition: superlu_zdefs.h:166
int_t * ind_tosend
Definition: superlu_zdefs.h:123
void zreadrb_dist(FILE *, int *, int *, int *, doublecomplex **, int **, int **)
Definition: zreadrb.c:281
void zPrintUblocks(int, int_t, gridinfo_t *, Glu_persist_t *, LocalLU_t *)
Print the blocks in the factored matrix U.
Definition: zutil.c:414
void zreadtriple(FILE *, int_t *, int_t *, int_t *, doublecomplex **, int_t **, int_t **)
Definition: zreadtriple.c:24
void zCreate_CompCol_Matrix_dist(SuperMatrix *, int_t, int_t, int_t, doublecomplex *, int_t *, int_t *, Stype_t, Dtype_t, Mtype_t)
Definition: zutil.c:27
int_t pzgstrf(superlu_options_t *options, int m, int n, double anorm, LUstruct_t *LUstruct, gridinfo_t *grid, SuperLUStat_t *stat, int *info)
Definition: pzgstrf_irecv.c:179
Definition: superlu_defs.h:227
int pzCompRow_loc_to_CompCol_global(int_t need_value, SuperMatrix *A, gridinfo_t *grid, SuperMatrix *GA)
Gather A from the distributed compressed row format to global A in compressed column format...
Definition: pzutil.c:18
int_t * ind_torecv
Definition: superlu_zdefs.h:124
int * RecvCounts
Definition: superlu_zdefs.h:131
void pzgsequ(SuperMatrix *A, double *r, double *c, double *rowcnd, double *colcnd, double *amax, int_t *info, gridinfo_t *grid)
Definition: pzgsequ.c:75
Definition: superlu_defs.h:305
Definition: superlu_zdefs.h:121
void pzgssvx_ABglobal(superlu_options_t *options, SuperMatrix *A, ScalePermstruct_t *ScalePermstruct, doublecomplex B[], int ldb, int nrhs, gridinfo_t *grid, LUstruct_t *LUstruct, double *berr, SuperLUStat_t *stat, int *info)
Definition: pzgssvx_ABglobal.c:454
void duser_free_dist(int_t bytes, int_t which_end)
Definition: dmemory.c:39
float pzdistribute(fact_t fact, int_t n, SuperMatrix *A, ScalePermstruct_t *ScalePermstruct, Glu_freeable_t *Glu_freeable, LUstruct_t *LUstruct, gridinfo_t *grid)
Definition: pzdistribute.c:309
void pzgstrs(int_t n, LUstruct_t *LUstruct, ScalePermstruct_t *ScalePermstruct, gridinfo_t *grid, doublecomplex *B, int_t m_loc, int_t fst_row, int_t ldb, int nrhs, SOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, int *info)
Definition: pzgstrs.c:456
void zlsum_bmod(doublecomplex *lsum, doublecomplex *x, doublecomplex *xk, int nrhs, int_t k, int_t *bmod, int_t *Urbs, Ucb_indptr_t **Ucb_indptr, int_t **Ucb_valptr, int_t *xsup, gridinfo_t *grid, LocalLU_t *Llu, MPI_Request send_req[], SuperLUStat_t *stat)
Definition: pzgstrs_lsum.c:212
float zdistribute(fact_t, int_t, SuperMatrix *, Glu_freeable_t *, LUstruct_t *, gridinfo_t *)
Definition: zdistribute.c:50
doublecomplex * ujrow
Definition: superlu_zdefs.h:50
#define MAX_LOOKAHEADS
Definition: superlu_zdefs.h:34
Definition: superlu_ddefs.h:142
Mtype_t
Definition: supermatrix.h:32
int pzgsmv_AXglobal(int_t m, int_t update[], doublecomplex val[], int_t bindx[], doublecomplex X[], doublecomplex ax[])
Definition: pzgsmv_AXglobal.c:248
void pzgstrs_Bglobal(int_t n, LUstruct_t *LUstruct, gridinfo_t *grid, doublecomplex *B, int_t ldb, int nrhs, SuperLUStat_t *stat, int *info)
Definition: pzgstrs_Bglobal.c:93
int static_schedule(superlu_options_t *options, int m, int n, LUstruct_t *LUstruct, gridinfo_t *grid, SuperLUStat_t *stat, int_t *perm_c_supno, int_t *iperm_c_supno, int *info)
Definition: static_schedule.c:36
double zlangs_dist(char *, SuperMatrix *)
Definition: zlangs.c:51
int zcreate_matrix_rb(SuperMatrix *, int, doublecomplex **, int *, doublecomplex **, int *, FILE *, gridinfo_t *)
int sp_zgemm_dist(char *, int, doublecomplex, SuperMatrix *, doublecomplex *, int, doublecomplex, doublecomplex *, int)
Definition: zsp_blas3.c:114
int zgeru_(int *, int *, doublecomplex *, doublecomplex *, int *, doublecomplex *, int *, doublecomplex *, int *)
Definition: zgeru.c:9
void zlaqgs_dist(SuperMatrix *, double *, double *, double, double, double, char *)
Definition: zlaqgs.c:72
void pzgsmv_finalize(pzgsmv_comm_t *gsmv_comm)
Definition: pzgsmv.c:363
void zldperm_dist(int_t, int_t, int_t, int_t[], int_t[], doublecomplex[], int_t *, double[], double[])
Definition: zldperm_dist.c:84
int int_t
Definition: superlu_defs.h:37
void pzlaqgs(SuperMatrix *A, double *r, double *c, double rowcnd, double colcnd, double amax, char *equed)
Definition: pzlaqgs.c:74
int_t pxgstrs_init(int_t, int_t, int_t, int_t, int_t[], int_t[], gridinfo_t *grid, Glu_persist_t *, SOLVEstruct_t *)
Definition: util.c:415
void zPrintLblocks(int, int_t, gridinfo_t *, Glu_persist_t *, LocalLU_t *)
Print the blocks in the factored matrix L.
Definition: zutil.c:365
void zallocateA_dist(int_t, int_t, doublecomplex **, int_t **, int_t **)
Definition: zmemory.c:133
void zCompRow_to_CompCol_dist(int_t, int_t, int_t, doublecomplex *, int_t *, int_t *, doublecomplex **, int_t **, int_t **)
Convert a row compressed storage into a column compressed storage.
Definition: zutil.c:74
void LUstructInit(const int_t, LUstruct_t *)
Allocate storage in LUstruct.
Definition: util.c:192
void zlsum_fmod(doublecomplex *lsum, doublecomplex *x, doublecomplex *xk, doublecomplex *rtemp, int nrhs, int knsupc, int_t k, int_t *fmod, int_t nlb, int_t lptr, int_t luptr, int_t *xsup, gridinfo_t *grid, LocalLU_t *Llu, MPI_Request send_req[], SuperLUStat_t *stat)
Definition: pzgstrs_lsum.c:44
Definition: superlu_ddefs.h:35
int pzgsmv_AXglobal_setup(SuperMatrix *A, Glu_persist_t *Glu_persist, gridinfo_t *grid, int_t *m, int_t *update[], doublecomplex *val[], int_t *bindx[], int_t *mv_sup_to_proc)
Definition: pzgsmv_AXglobal.c:22
Dtype_t
Definition: supermatrix.h:25
void pzgsmv_init(SuperMatrix *A, int_t *row_to_proc, gridinfo_t *grid, pzgsmv_comm_t *gsmv_comm)
Definition: pzgsmv.c:16
int_t TotalValSend
Definition: superlu_zdefs.h:137
Definitions which are precision-neutral.
void zCreate_CompRowLoc_Matrix_dist(SuperMatrix *, int_t, int_t, int_t, int_t, int_t, doublecomplex *, int_t *, int_t *, Stype_t, Dtype_t, Mtype_t)
Definition: zutil.c:48
Definition: superlu_defs.h:531
void pxgstrs_finalize(pxgstrs_comm_t *)
Definition: util.c:542
int_t zQuerySpace_dist(int_t, LUstruct_t *, gridinfo_t *, SuperLUStat_t *, mem_usage_t *)
Definition: zmemory.c:62
Definition: superlu_ddefs.h:113
int pzPermute_Dense_Matrix(int_t fst_row, int_t m_loc, int_t row_to_proc[], int_t perm[], doublecomplex X[], int ldx, doublecomplex B[], int ldb, int nrhs, gridinfo_t *grid)
Permute the distributed dense matrix: B <= perm(X). perm[i] = j means the i-th row of X is in the j-t...
Definition: pzutil.c:280
void pzgssvx(superlu_options_t *options, SuperMatrix *A, ScalePermstruct_t *ScalePermstruct, doublecomplex B[], int ldb, int nrhs, gridinfo_t *grid, LUstruct_t *LUstruct, SOLVEstruct_t *SOLVEstruct, double *berr, SuperLUStat_t *stat, int *info)
Definition: pzgssvx.c:485
void zCopy_Dense_Matrix_dist(int_t, int_t, doublecomplex *, int_t, doublecomplex *, int_t)
Definition: zutil.c:236
int_t * ptr_ind_torecv
Definition: superlu_zdefs.h:127
int zPrint_CompRowLoc_Matrix_dist(SuperMatrix *)
Definition: zutil.c:173
int * SendCounts
Definition: superlu_zdefs.h:129
Definition: dcomplex.h:19
void zgsequ_dist(SuperMatrix *, double *, double *, double *, double *, double *, int_t *)
Definition: zgsequ.c:74
double * doubleCalloc_dist(int_t n)
Definition: dmemory.c:149
void zFillRHS_dist(char *, int_t, doublecomplex *, int_t, SuperMatrix *, doublecomplex *, int_t)
Let rhs[i] = sum of i-th row of A, so the solution vector is all 1's.
Definition: zutil.c:298
int pzgsmv_AXglobal_abs(int_t m, int_t update[], doublecomplex val[], int_t bindx[], doublecomplex X[], double ax[])
Definition: pzgsmv_AXglobal.c:278
doublecomplex * doublecomplexCalloc_dist(int_t)
Definition: zmemory.c:148