PLASMA  2.4.5
PLASMA - Parallel Linear Algebra for Scalable Multi-core Architectures
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
compute_d.h
Go to the documentation of this file.
1 
17 /***************************************************************************/
20 #define plasma_ddesc_alloc( descA, mb, nb, lm, ln, i, j, m, n, free) \
21  descA = plasma_desc_init( \
22  PlasmaRealDouble, (mb), (nb), ((mb)*(nb)), \
23  (m), (n), (i), (j), (m), (n)); \
24  if ( plasma_desc_mat_alloc( &(descA) ) ) { \
25  plasma_error( __func__, "plasma_shared_alloc() failed"); \
26  {free;}; \
27  return PLASMA_ERR_OUT_OF_RESOURCES; \
28  }
29 
30 #define plasma_dooplap2tile( descA, A, mb, nb, lm, ln, i, j, m, n, free) \
31  descA = plasma_desc_init( \
32  PlasmaRealDouble, (mb), (nb), ((mb)*(nb)), \
33  (lm), (ln), (i), (j), (m), (n)); \
34  if ( plasma_desc_mat_alloc( &(descA) ) ) { \
35  plasma_error( __func__, "plasma_shared_alloc() failed"); \
36  {free;}; \
37  return PLASMA_ERR_OUT_OF_RESOURCES; \
38  } \
39  plasma_parallel_call_5( \
40  plasma_pdlapack_to_tile, \
41  double*, (A), \
42  int, (lm), \
43  PLASMA_desc, (descA), \
44  PLASMA_sequence*, sequence, \
45  PLASMA_request*, &request);
46 
47 #define plasma_diplap2tile( descA, A, mb, nb, lm, ln, i, j, m, n) \
48  descA = plasma_desc_init( \
49  PlasmaRealDouble, (mb), (nb), ((mb)*(nb)), \
50  (lm), (ln), (i), (j), (m), (n)); \
51  descA.mat = A; \
52  PLASMA_dgecfi_Async((lm), (ln), (A), PlasmaCM, (mb), (nb), \
53  PlasmaCCRB, (mb), (nb), sequence, &request);
54 
55 
56 
57 #define plasma_dooptile2lap( descA, A, mb, nb, lm, ln) \
58  plasma_parallel_call_5(plasma_pdtile_to_lapack, \
59  PLASMA_desc, (descA), \
60  double*, (A), \
61  int, (lm), \
62  PLASMA_sequence*, sequence, \
63  PLASMA_request*, &request);
64 
65 #define plasma_diptile2lap( descA, A, mb, nb, lm, ln) \
66  PLASMA_dgecfi_Async((lm), (ln), (A), PlasmaCCRB, (mb), (nb), \
67  PlasmaCM, (mb), (nb), sequence, &request);
68 
69 /***************************************************************************/
79 #ifdef COMPLEX
83 #endif
87 #ifdef COMPLEX
89 #endif
110 
111 /***************************************************************************/
114 int plasma_dshift(plasma_context_t *plasma, int m, int n, double *A,
115  int nprob, int me, int ne, int L,
116  PLASMA_sequence *sequence, PLASMA_request *request);
117 
118 /***************************************************************************/
121 void plasma_pdgeadd_quark(double alpha, PLASMA_desc A, PLASMA_desc B, PLASMA_sequence *sequence, PLASMA_request *request);
128 void plasma_pdgemm_quark(PLASMA_enum transA, PLASMA_enum transB, double alpha, PLASMA_desc A, PLASMA_desc B, double beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);
134 void plasma_pdgetmi2_quark(PLASMA_enum idep, PLASMA_enum odep, PLASMA_enum storev, int m, int n, int mb, int nb, double *A, PLASMA_sequence *sequence, PLASMA_request *request);
139 #ifdef COMPLEX
140 void plasma_pdsymm_quark(PLASMA_enum side, PLASMA_enum uplo, double alpha, PLASMA_desc A, PLASMA_desc B, double beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);
141 void plasma_pdsyrk_quark(PLASMA_enum uplo, PLASMA_enum trans, double alpha, PLASMA_desc A, double beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);
143 #endif
145 void plasma_pdgbrdb_quark(PLASMA_enum uplo, PLASMA_desc A, double *D, double *E, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
146 void plasma_pdsbrdt_quark(PLASMA_enum uplo, PLASMA_desc A, double *D, double *E, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
149 void plasma_pdlange_quark(PLASMA_enum norm, PLASMA_desc A, double *work, double *result, PLASMA_sequence *sequence, PLASMA_request *request);
150 #ifdef COMPLEX
151 void plasma_pdlansy_quark(PLASMA_enum norm, PLASMA_enum uplo, PLASMA_desc A, double *work, double *result, PLASMA_sequence *sequence, PLASMA_request *request);
152 #endif
153 void plasma_pdlansy_quark(PLASMA_enum norm, PLASMA_enum uplo, PLASMA_desc A, double *work, double *result, PLASMA_sequence *sequence, PLASMA_request *request);
154 void plasma_pdlaset_quark( PLASMA_enum uplo, double alpha, double beta, PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request);
155 void plasma_pdlaset2_quark(PLASMA_enum uplo, double alpha, PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request);
156 void plasma_pdlaswp_quark(PLASMA_desc B, int *IPIV, int inc, PLASMA_sequence *sequence, PLASMA_request *request);
157 void plasma_pdlaswpc_quark(PLASMA_desc B, int *IPIV, int inc, PLASMA_sequence *sequence, PLASMA_request *request);
159 void plasma_pdplgsy_quark(double bump, PLASMA_desc A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request);
160 void plasma_pdplgsy_quark(double bump, PLASMA_desc A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request );
161 void plasma_pdplrnt_quark(PLASMA_desc A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request );
163 void plasma_pdshift_quark(int, int, int, double *, int *, int, int, PLASMA_sequence*, PLASMA_request*);
164 void plasma_pdsymm_quark(PLASMA_enum side, PLASMA_enum uplo, double alpha, PLASMA_desc A, PLASMA_desc B, double beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);
165 void plasma_pdsyrk_quark(PLASMA_enum uplo, PLASMA_enum trans, double alpha, PLASMA_desc A, double beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);