MIDAPACK - MIcrowave Data Analysis PACKage
1.1b
Parallel software tools for high performance CMB DA analysis
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Groups
Pages
mapmat.h
Go to the documentation of this file.
1
13
#define NONE 0
14
#define RING 1
15
#define BUTTERFLY 2
16
#define NONBLOCKING 3
17
#define NOEMPTY 4
18
#define ALLTOALLV 5
19
#define ALLREDUCE 6
20
#define SEQ 0
21
#define OMP 1
22
#define GPU 2
23
24
25
29
typedef
struct
{
30
int
flag
;
// flag for communication scheme (NONE, RING, BUTTERFLY ...)
31
int
m
;
// number local rows
32
int
nnz
;
// number non-zero per rows
33
int
*
indices
;
// column indices tab; size = m * nnz; can be a global or local numbering
34
double
*
values
;
// non-zero values tab; size = m * nnz
35
//--------local shaping---------------
36
int
lcount
;
37
int
*
lindices
;
// local indices tab (monotony with global numbering); size = lcount
38
#ifdef W_MPI
39
MPI_Comm
comm
;
// MPI communicator
40
//--------com shaping-----------------
41
int
*
com_indices
, com_count;
// communicated indices tab, and size
42
int
steps
;
// number of steps in the communication scheme
43
int
*
nS
, *nR;
// number of indices (to send and to receive); size = steps
44
int
**R, **
S
;
// sending or receiving indices tab
45
#endif
46
}
Mat
;
47
48
49
int
MatInit
(
Mat
*A,
int
m,
int
nnz,
int
*indices,
double
*values,
int
flag
50
#ifdef W_MPI
51
, MPI_Comm comm
52
#endif
53
);
54
55
void
MatSetIndices
(
Mat
*A,
int
m,
int
nnz,
int
*indices);
56
57
void
MatSetValues
(
Mat
*A,
int
m,
int
nnz,
double
*values);
58
59
void
MatFree
(
Mat
*A);
60
61
int
MatLocalShape
(
Mat
*A,
int
sflag);
62
63
#if W_MPI
64
int
MatComShape
(
Mat
*A,
int
flag, MPI_Comm comm);
65
#endif
66
67
int
MatVecProd
(
Mat
*A,
double
*x,
double
*y,
int
pflag);
68
69
int
TrMatVecProd
(
Mat
*A,
double
*y,
double
* x,
int
pflag);
70
71
72
#if W_MPI
73
int
TrMatVecProd_Naive
(
Mat
*A,
double
*y,
double
* x,
int
pflag);
74
#endif
75
76
int
MatLoad
(
Mat
*A,
char
*filename);
77
78
int
MatSave
(
Mat
*A,
char
* filename);
79
80
#if W_MPI
81
int
MatInfo
(
Mat
*A,
int
master,
char
* filename);
82
#endif
83
84
int
greedyreduce
(
Mat
*A,
double
* x);
85
86
87
// Doxygen definitions
88
src
mapmat
mapmat.h
Generated on Wed Jul 10 2013 14:51:21 for MIDAPACK - MIcrowave Data Analysis PACKage by
1.8.1.1