PLASMA 2.3.1

/home/mathieu/ICL/Plasma/svn/trunk/tools/plasma_2.4.0/control/compute_s.h

00001 
00017 /***************************************************************************/
00020 #define plasma_sdesc_alloc( descA, mb, nb, lm, ln, i, j, m, n, free)   \
00021     descA = plasma_desc_init(                                          \
00022         PlasmaRealFloat, (mb), (nb), ((mb)*(nb)),                  \
00023         (m), (n), (i), (j), (m), (n));                                 \
00024     if ( plasma_desc_mat_alloc( &(descA) ) ) {                         \
00025         plasma_error( __func__, "plasma_shared_alloc() failed");       \
00026         {free;};                                                       \
00027         return PLASMA_ERR_OUT_OF_RESOURCES;                            \
00028     }
00029 
00030 #define plasma_sooplap2tile( descA, A, mb, nb, lm, ln, i, j, m, n, free) \
00031     descA = plasma_desc_init(                                           \
00032         PlasmaRealFloat, (mb), (nb), ((mb)*(nb)),                   \
00033         (lm), (ln), (i), (j), (m), (n));                                  \
00034     if ( plasma_desc_mat_alloc( &(descA) ) ) {                          \
00035         plasma_error( __func__, "plasma_shared_alloc() failed");        \
00036         {free;};                                                        \
00037         return PLASMA_ERR_OUT_OF_RESOURCES;                             \
00038     }                                                                   \
00039     plasma_parallel_call_5(                                             \
00040         plasma_pslapack_to_tile,                                        \
00041         float*, (A),                                       \
00042         int,                 (lm),                                      \
00043         PLASMA_desc,         (descA),                                   \
00044         PLASMA_sequence*,    sequence,                                  \
00045         PLASMA_request*,     &request);
00046 
00047 #define plasma_siplap2tile( descA, A, mb, nb, lm, ln, i, j, m, n)     \
00048     descA = plasma_desc_init(                                         \
00049         PlasmaRealFloat, (mb), (nb), ((mb)*(nb)),                 \
00050         (lm), (ln), (i), (j), (m), (n));                              \
00051     descA.mat = A;                                                    \
00052     PLASMA_sgecfi_Async((lm), (ln), (A), PlasmaCM, (mb), (nb),        \
00053                         PlasmaCCRB, (mb), (nb), sequence, &request);
00054 
00055 
00056 
00057 #define plasma_sooptile2lap( descA, A, mb, nb, lm, ln)  \
00058     plasma_parallel_call_5(plasma_pstile_to_lapack,     \
00059         PLASMA_desc,         (descA),                   \
00060         float*, (A),                       \
00061         int,                 (lm),                      \
00062         PLASMA_sequence*,    sequence,                  \
00063         PLASMA_request*,     &request);
00064 
00065 #define plasma_siptile2lap( descA, A, mb, nb, lm, ln)                   \
00066     PLASMA_sgecfi_Async((lm), (ln), (A), PlasmaCCRB, (mb), (nb),        \
00067                         PlasmaCM, (mb), (nb), sequence, &request);
00068 
00069 /***************************************************************************/
00072 void plasma_psaxpy  (plasma_context_t *plasma);
00073 void plasma_psgelqf (plasma_context_t *plasma);
00074 void plasma_psgemm  (plasma_context_t *plasma);
00075 void plasma_psgeqrf (plasma_context_t *plasma);
00076 void plasma_psgerbb (plasma_context_t *plasma);
00077 void plasma_psgetmi2(plasma_context_t *plasma);
00078 void plasma_psgetrf_incpiv(plasma_context_t *plasma);
00079 #ifdef COMPLEX
00080 void plasma_pssymm  (plasma_context_t *plasma);
00081 void plasma_pssyrk  (plasma_context_t *plasma);
00082 void plasma_pssyr2k (plasma_context_t *plasma);
00083 #endif
00084 void plasma_pslacpy (plasma_context_t *plasma);
00085 void plasma_pslag2d (plasma_context_t *plasma);
00086 void plasma_pslange (plasma_context_t *plasma);
00087 #ifdef COMPLEX
00088 void plasma_pslansy (plasma_context_t *plasma);
00089 #endif
00090 void plasma_pslansy (plasma_context_t *plasma);
00091 void plasma_pspack  (plasma_context_t *plasma);
00092 void plasma_psplgsy (plasma_context_t *plasma);
00093 void plasma_psplgsy (plasma_context_t *plasma);
00094 void plasma_psplrnt (plasma_context_t *plasma);
00095 void plasma_pspotrf (plasma_context_t *plasma);
00096 void plasma_psshift (plasma_context_t *plasma);
00097 void plasma_pssymm  (plasma_context_t *plasma);
00098 void plasma_pssyrk  (plasma_context_t *plasma);
00099 void plasma_pssyr2k (plasma_context_t *plasma);
00100 void plasma_pstrmm  (plasma_context_t *plasma);
00101 void plasma_pstrsm  (plasma_context_t *plasma);
00102 void plasma_pstrsmpl(plasma_context_t *plasma);
00103 void plasma_psorglq (plasma_context_t *plasma);
00104 void plasma_psorgqr (plasma_context_t *plasma);
00105 void plasma_psorgqrrh(plasma_context_t *plasma);
00106 void plasma_psormlq (plasma_context_t *plasma);
00107 void plasma_psormqr (plasma_context_t *plasma);
00108 void plasma_psunpack(plasma_context_t *plasma);
00109 
00110 /***************************************************************************/
00113 int plasma_sshift(plasma_context_t *plasma, int m, int n, float *A,
00114                   int nprob, int me, int ne, int L,
00115                   PLASMA_sequence *sequence, PLASMA_request *request);
00116 
00117 /***************************************************************************/
00120 void plasma_psaxpy_quark(float alpha, PLASMA_desc A, PLASMA_desc B, PLASMA_sequence *sequence, PLASMA_request *request);
00121 void plasma_psbarrier_tl2pnl_quark(PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request);
00122 void plasma_psbarrier_pnl2tl_quark(PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request);
00123 void plasma_psgelqf_quark(PLASMA_desc A, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00124 void plasma_psgelqfrh_quark(PLASMA_desc A, PLASMA_desc T, int BS, PLASMA_sequence *sequence, PLASMA_request *request);
00125 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);
00126 void plasma_psgeqrf_quark(PLASMA_desc A, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00127 void plasma_psgeqrfrh_quark(PLASMA_desc A, PLASMA_desc T, int BS, PLASMA_sequence *sequence, PLASMA_request *request);
00128 void plasma_psgerbh_quark(PLASMA_desc A, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00129 void plasma_psgerbb_quark(PLASMA_desc A, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00130 void plasma_psgerbbrh_quark(PLASMA_desc A, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00131 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);
00132 void plasma_psgetrf_incpiv_quark(PLASMA_desc A, PLASMA_desc L, int *IPIV, PLASMA_sequence *sequence, PLASMA_request *request);
00133 void plasma_psgetrf_reclap_quark(PLASMA_desc A, int *IPIV, PLASMA_sequence *sequence, PLASMA_request *request);
00134 void plasma_psgetrf_rectil_quark(PLASMA_desc A, int *IPIV, PLASMA_sequence *sequence, PLASMA_request *request);
00135 #ifdef COMPLEX
00136 void plasma_pssygst_quark(PLASMA_enum itype, PLASMA_enum uplo, PLASMA_desc A, PLASMA_desc B, PLASMA_sequence *sequence, PLASMA_request *request);
00137 void plasma_pssymm_quark(PLASMA_enum side, PLASMA_enum uplo, float alpha, PLASMA_desc A, PLASMA_desc B, float beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);
00138 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);
00139 void plasma_pssyr2k_quark(PLASMA_enum uplo, PLASMA_enum trans, float alpha, PLASMA_desc A, PLASMA_desc B, float beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);
00140 void plasma_pssyrbt_quark(PLASMA_enum uplo, PLASMA_desc A, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00141 void plasma_psgbrdb_quark(PLASMA_enum uplo, PLASMA_desc A, float *D, float *E, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00142 void plasma_pssbrdt_quark(PLASMA_enum uplo, PLASMA_desc A, float *D, float *E, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00143 #endif
00144 void plasma_pslacpy_quark(PLASMA_enum uplo, PLASMA_desc A, PLASMA_desc B, PLASMA_sequence *sequence, PLASMA_request *request);
00145 void plasma_pslag2d_quark(PLASMA_desc A, PLASMA_desc SB, PLASMA_sequence *sequence, PLASMA_request *request);
00146 void plasma_pslange_quark(PLASMA_enum norm, PLASMA_desc A, float *work, float *result, PLASMA_sequence *sequence, PLASMA_request *request);
00147 #ifdef COMPLEX
00148 void plasma_pslansy_quark(PLASMA_enum norm, PLASMA_enum uplo, PLASMA_desc A, float *work, float *result, PLASMA_sequence *sequence, PLASMA_request *request);
00149 #endif
00150 void plasma_pslansy_quark(PLASMA_enum norm, PLASMA_enum uplo, PLASMA_desc A, float *work, float *result, PLASMA_sequence *sequence, PLASMA_request *request);
00151 void plasma_pslaset_quark( PLASMA_enum uplo, float alpha, float beta, PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request);
00152 void plasma_pslaset2_quark(PLASMA_enum uplo, float alpha,                          PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request);
00153 void plasma_pslaswp_quark(PLASMA_desc B, int *IPIV, int inc, PLASMA_sequence *sequence, PLASMA_request *request);
00154 void plasma_pslauum_quark(PLASMA_enum uplo, PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request);
00155 void plasma_psplgsy_quark(float bump, PLASMA_desc A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request);
00156 void plasma_psplgsy_quark(float bump, PLASMA_desc A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request );
00157 void plasma_psplrnt_quark(PLASMA_desc A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request );
00158 void plasma_pspotrf_quark(PLASMA_enum uplo, PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request);
00159 void plasma_psshift_quark(int, int, int, float *, int *, int, int, PLASMA_sequence*, PLASMA_request*);
00160 void plasma_pssymm_quark(PLASMA_enum side, PLASMA_enum uplo, float alpha, PLASMA_desc A, PLASMA_desc B, float beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);
00161 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);
00162 void plasma_pssyr2k_quark(PLASMA_enum uplo, PLASMA_enum trans, float alpha, PLASMA_desc A, PLASMA_desc B, float beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);
00163 void plasma_pstrmm_quark(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, float alpha, PLASMA_desc A, PLASMA_desc B, PLASMA_sequence *sequence, PLASMA_request *request);
00164 void plasma_pstrsm_quark(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, float alpha, PLASMA_desc A, PLASMA_desc B, PLASMA_sequence *sequence, PLASMA_request *request);
00165 void plasma_pstrsmpl_quark(PLASMA_desc A, PLASMA_desc B, PLASMA_desc L, int *IPIV, PLASMA_sequence *sequence, PLASMA_request *request);
00166 void plasma_pstrtri_quark(PLASMA_enum uplo, PLASMA_enum diag, PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request);
00167 void plasma_psorgbr_quark(PLASMA_enum side, PLASMA_desc A, PLASMA_desc O, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00168 void plasma_psorgbrrh_quark(PLASMA_enum side, PLASMA_desc A, PLASMA_desc O, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00169 void plasma_psorgqr_quark(PLASMA_desc A, PLASMA_desc Q, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00170 void plasma_psorgqrrh_quark(PLASMA_desc A, PLASMA_desc Q, PLASMA_desc T, int BS, PLASMA_sequence *sequence, PLASMA_request *request);
00171 void plasma_psorglq_quark(PLASMA_desc A, PLASMA_desc Q, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00172 void plasma_psorglqrh_quark(PLASMA_desc A, PLASMA_desc Q, PLASMA_desc T, int BS, PLASMA_sequence *sequence, PLASMA_request *request);
00173 void plasma_psorgtr_quark(PLASMA_enum uplo, PLASMA_desc A, PLASMA_desc Q, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00174 void plasma_psormqr_quark(PLASMA_enum side, PLASMA_enum trans, PLASMA_desc A, PLASMA_desc B, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00175 void plasma_psormqrrh_quark(PLASMA_enum side, PLASMA_enum trans, PLASMA_desc A, PLASMA_desc B, PLASMA_desc T, int BS, PLASMA_sequence *sequence, PLASMA_request *request);
00176 void plasma_psormlq_quark(PLASMA_enum side, PLASMA_enum trans, PLASMA_desc A, PLASMA_desc B, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00177 void plasma_psormlqrh_quark(PLASMA_enum side, PLASMA_enum trans, PLASMA_desc A, PLASMA_desc B, PLASMA_desc T, int BS, PLASMA_sequence *sequence, PLASMA_request *request);
 All Data Structures