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_s.h
Go to the documentation of this file.
1 
17 /***************************************************************************/
20 #define plasma_sdesc_alloc( descA, mb, nb, lm, ln, i, j, m, n, free) \
21  descA = plasma_desc_init( \
22  PlasmaRealFloat, (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_sooplap2tile( descA, A, mb, nb, lm, ln, i, j, m, n, free) \
31  descA = plasma_desc_init( \
32  PlasmaRealFloat, (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_pslapack_to_tile, \
41  float*, (A), \
42  int, (lm), \
43  PLASMA_desc, (descA), \
44  PLASMA_sequence*, sequence, \
45  PLASMA_request*, &request);
46 
47 #define plasma_siplap2tile( descA, A, mb, nb, lm, ln, i, j, m, n) \
48  descA = plasma_desc_init( \
49  PlasmaRealFloat, (mb), (nb), ((mb)*(nb)), \
50  (lm), (ln), (i), (j), (m), (n)); \
51  descA.mat = A; \
52  PLASMA_sgecfi_Async((lm), (ln), (A), PlasmaCM, (mb), (nb), \
53  PlasmaCCRB, (mb), (nb), sequence, &request);
54 
55 
56 
57 #define plasma_sooptile2lap( descA, A, mb, nb, lm, ln) \
58  plasma_parallel_call_5(plasma_pstile_to_lapack, \
59  PLASMA_desc, (descA), \
60  float*, (A), \
61  int, (lm), \
62  PLASMA_sequence*, sequence, \
63  PLASMA_request*, &request);
64 
65 #define plasma_siptile2lap( descA, A, mb, nb, lm, ln) \
66  PLASMA_sgecfi_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_sshift(plasma_context_t *plasma, int m, int n, float *A,
115  int nprob, int me, int ne, int L,
116  PLASMA_sequence *sequence, PLASMA_request *request);
117 
118 /***************************************************************************/
121 void plasma_psgeadd_quark(float alpha, PLASMA_desc A, PLASMA_desc B, PLASMA_sequence *sequence, PLASMA_request *request);
128 void plasma_psgemm_quark(PLASMA_enum transA, PLASMA_enum transB, float alpha, PLASMA_desc A, PLASMA_desc B, float beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);
134 void plasma_psgetmi2_quark(PLASMA_enum idep, PLASMA_enum odep, PLASMA_enum storev, int m, int n, int mb, int nb, float *A, PLASMA_sequence *sequence, PLASMA_request *request);
139 #ifdef COMPLEX
141 void plasma_pssyrk_quark(PLASMA_enum uplo, PLASMA_enum trans, float alpha, PLASMA_desc A, float beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);
143 #endif
145 void plasma_psgbrdb_quark(PLASMA_enum uplo, PLASMA_desc A, float *D, float *E, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
146 void plasma_pssbrdt_quark(PLASMA_enum uplo, PLASMA_desc A, float *D, float *E, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
149 void plasma_pslange_quark(PLASMA_enum norm, PLASMA_desc A, float *work, float *result, PLASMA_sequence *sequence, PLASMA_request *request);
150 #ifdef COMPLEX
151 void plasma_pslansy_quark(PLASMA_enum norm, PLASMA_enum uplo, PLASMA_desc A, float *work, float *result, PLASMA_sequence *sequence, PLASMA_request *request);
152 #endif
153 void plasma_pslansy_quark(PLASMA_enum norm, PLASMA_enum uplo, PLASMA_desc A, float *work, float *result, PLASMA_sequence *sequence, PLASMA_request *request);
154 void plasma_pslaset_quark( PLASMA_enum uplo, float alpha, float beta, PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request);
155 void plasma_pslaset2_quark(PLASMA_enum uplo, float alpha, PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request);
156 void plasma_pslaswp_quark(PLASMA_desc B, int *IPIV, int inc, PLASMA_sequence *sequence, PLASMA_request *request);
157 void plasma_pslaswpc_quark(PLASMA_desc B, int *IPIV, int inc, PLASMA_sequence *sequence, PLASMA_request *request);
159 void plasma_psplgsy_quark(float bump, PLASMA_desc A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request);
160 void plasma_psplgsy_quark(float bump, PLASMA_desc A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request );
161 void plasma_psplrnt_quark(PLASMA_desc A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request );
163 void plasma_psshift_quark(int, int, int, float *, int *, int, int, PLASMA_sequence*, PLASMA_request*);
165 void plasma_pssyrk_quark(PLASMA_enum uplo, PLASMA_enum trans, float alpha, PLASMA_desc A, float beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);