00001
00017
00020 #define plasma_zdesc_alloc( descA, mb, nb, lm, ln, i, j, m, n, free) \
00021 descA = plasma_desc_init( \
00022 PlasmaComplexDouble, (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_zooplap2tile( descA, A, mb, nb, lm, ln, i, j, m, n, free) \
00031 descA = plasma_desc_init( \
00032 PlasmaComplexDouble, (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_pzlapack_to_tile, \
00041 PLASMA_Complex64_t*, (A), \
00042 int, (lm), \
00043 PLASMA_desc, (descA), \
00044 PLASMA_sequence*, sequence, \
00045 PLASMA_request*, &request);
00046
00047 #define plasma_ziplap2tile( descA, A, mb, nb, lm, ln, i, j, m, n) \
00048 descA = plasma_desc_init( \
00049 PlasmaComplexDouble, (mb), (nb), ((mb)*(nb)), \
00050 (lm), (ln), (i), (j), (m), (n)); \
00051 descA.mat = A; \
00052 PLASMA_zgecfi_Async((lm), (ln), (A), PlasmaCM, (mb), (nb), \
00053 PlasmaCCRB, (mb), (nb), sequence, &request);
00054
00055
00056
00057 #define plasma_zooptile2lap( descA, A, mb, nb, lm, ln) \
00058 plasma_parallel_call_5(plasma_pztile_to_lapack, \
00059 PLASMA_desc, (descA), \
00060 PLASMA_Complex64_t*, (A), \
00061 int, (lm), \
00062 PLASMA_sequence*, sequence, \
00063 PLASMA_request*, &request);
00064
00065 #define plasma_ziptile2lap( descA, A, mb, nb, lm, ln) \
00066 PLASMA_zgecfi_Async((lm), (ln), (A), PlasmaCCRB, (mb), (nb), \
00067 PlasmaCM, (mb), (nb), sequence, &request);
00068
00069
00072 void plasma_pzaxpy (plasma_context_t *plasma);
00073 void plasma_pzgelqf (plasma_context_t *plasma);
00074 void plasma_pzgemm (plasma_context_t *plasma);
00075 void plasma_pzgeqrf (plasma_context_t *plasma);
00076 void plasma_pzgetmi2(plasma_context_t *plasma);
00077 void plasma_pzgetrf (plasma_context_t *plasma);
00078 #ifdef COMPLEX
00079 void plasma_pzhemm (plasma_context_t *plasma);
00080 void plasma_pzherk (plasma_context_t *plasma);
00081 void plasma_pzher2k (plasma_context_t *plasma);
00082 #endif
00083 void plasma_pzlacpy (plasma_context_t *plasma);
00084 void plasma_pzlag2c (plasma_context_t *plasma);
00085 void plasma_pzlange (plasma_context_t *plasma);
00086 #ifdef COMPLEX
00087 void plasma_pzlanhe (plasma_context_t *plasma);
00088 #endif
00089 void plasma_pzlansy (plasma_context_t *plasma);
00090 void plasma_pzpack (plasma_context_t *plasma);
00091 void plasma_pzplghe (plasma_context_t *plasma);
00092 void plasma_pzplgsy (plasma_context_t *plasma);
00093 void plasma_pzplrnt (plasma_context_t *plasma);
00094 void plasma_pzpotrf (plasma_context_t *plasma);
00095 void plasma_pzshift (plasma_context_t *plasma);
00096 void plasma_pzsymm (plasma_context_t *plasma);
00097 void plasma_pzsyrk (plasma_context_t *plasma);
00098 void plasma_pzsyr2k (plasma_context_t *plasma);
00099 void plasma_pztrmm (plasma_context_t *plasma);
00100 void plasma_pztrsm (plasma_context_t *plasma);
00101 void plasma_pztrsmpl(plasma_context_t *plasma);
00102 void plasma_pzunglq (plasma_context_t *plasma);
00103 void plasma_pzungqr (plasma_context_t *plasma);
00104 void plasma_pzungqrrh(plasma_context_t *plasma);
00105 void plasma_pzunmlq (plasma_context_t *plasma);
00106 void plasma_pzunmqr (plasma_context_t *plasma);
00107 void plasma_pzunpack(plasma_context_t *plasma);
00108
00109
00112 int plasma_zshift(plasma_context_t *plasma, int m, int n, PLASMA_Complex64_t *A,
00113 int nprob, int me, int ne, int L,
00114 PLASMA_sequence *sequence, PLASMA_request *request);
00115
00116
00119 void plasma_pzaxpy_quark(PLASMA_Complex64_t alpha, PLASMA_desc A, PLASMA_desc B, PLASMA_sequence *sequence, PLASMA_request *request);
00120 void plasma_pzgelqf_quark(PLASMA_desc A, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00121 void plasma_pzgelqfrh_quark(PLASMA_desc A, PLASMA_desc T, int BS, PLASMA_sequence *sequence, PLASMA_request *request);
00122 void plasma_pzgemm_quark(PLASMA_enum transA, PLASMA_enum transB, PLASMA_Complex64_t alpha, PLASMA_desc A, PLASMA_desc B, PLASMA_Complex64_t beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);
00123 void plasma_pzgeqrf_quark(PLASMA_desc A, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00124 void plasma_pzgeqrfrh_quark(PLASMA_desc A, PLASMA_desc T, int BS, PLASMA_sequence *sequence, PLASMA_request *request);
00125 void plasma_pzgetmi2_quark(PLASMA_enum idep, PLASMA_enum odep, PLASMA_enum storev, int m, int n, int mb, int nb, PLASMA_Complex64_t *A, PLASMA_sequence *sequence, PLASMA_request *request);
00126 void plasma_pzgetrf_quark(PLASMA_desc A, PLASMA_desc L, int *IPIV, PLASMA_sequence *sequence, PLASMA_request *request);
00127 #ifdef COMPLEX
00128 void plasma_pzhemm_quark(PLASMA_enum side, PLASMA_enum uplo, PLASMA_Complex64_t alpha, PLASMA_desc A, PLASMA_desc B, PLASMA_Complex64_t beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);
00129 void plasma_pzherk_quark(PLASMA_enum uplo, PLASMA_enum trans, double alpha, PLASMA_desc A, double beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);
00130 void plasma_pzher2k_quark(PLASMA_enum uplo, PLASMA_enum trans, PLASMA_Complex64_t alpha, PLASMA_desc A, PLASMA_desc B, double beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);
00131 #endif
00132 void plasma_pzlacpy_quark(PLASMA_enum uplo, PLASMA_desc A, PLASMA_desc B, PLASMA_sequence *sequence, PLASMA_request *request);
00133 void plasma_pzlag2c_quark(PLASMA_desc A, PLASMA_desc SB, PLASMA_sequence *sequence, PLASMA_request *request);
00134 void plasma_pzlange_quark(PLASMA_enum norm, PLASMA_desc A, double *work, double *result, PLASMA_sequence *sequence, PLASMA_request *request);
00135 #ifdef COMPLEX
00136 void plasma_pzlanhe_quark(PLASMA_enum norm, PLASMA_enum uplo, PLASMA_desc A, double *work, double *result, PLASMA_sequence *sequence, PLASMA_request *request);
00137 #endif
00138 void plasma_pzlansy_quark(PLASMA_enum norm, PLASMA_enum uplo, PLASMA_desc A, double *work, double *result, PLASMA_sequence *sequence, PLASMA_request *request);
00139 void plasma_pzlauum_quark(PLASMA_enum uplo, PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request);
00140 void plasma_pzplghe_quark(double bump, PLASMA_desc A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request);
00141 void plasma_pzplgsy_quark(PLASMA_Complex64_t bump, PLASMA_desc A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request );
00142 void plasma_pzplrnt_quark(PLASMA_desc A, unsigned long long int seed, PLASMA_sequence *sequence, PLASMA_request *request );
00143 void plasma_pzpotrf_quark(PLASMA_enum uplo, PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request);
00144 void plasma_pzshift_quark(int, int, int, PLASMA_Complex64_t *, int *, int, int, PLASMA_sequence*, PLASMA_request*);
00145 void plasma_pzsymm_quark(PLASMA_enum side, PLASMA_enum uplo, PLASMA_Complex64_t alpha, PLASMA_desc A, PLASMA_desc B, PLASMA_Complex64_t beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);
00146 void plasma_pzsyrk_quark(PLASMA_enum uplo, PLASMA_enum trans, PLASMA_Complex64_t alpha, PLASMA_desc A, PLASMA_Complex64_t beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);
00147 void plasma_pzsyr2k_quark(PLASMA_enum uplo, PLASMA_enum trans, PLASMA_Complex64_t alpha, PLASMA_desc A, PLASMA_desc B, PLASMA_Complex64_t beta, PLASMA_desc C, PLASMA_sequence *sequence, PLASMA_request *request);
00148 void plasma_pztrmm_quark(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, PLASMA_Complex64_t alpha, PLASMA_desc A, PLASMA_desc B, PLASMA_sequence *sequence, PLASMA_request *request);
00149 void plasma_pztrsm_quark(PLASMA_enum side, PLASMA_enum uplo, PLASMA_enum transA, PLASMA_enum diag, PLASMA_Complex64_t alpha, PLASMA_desc A, PLASMA_desc B, PLASMA_sequence *sequence, PLASMA_request *request);
00150 void plasma_pztrsmpl_quark(PLASMA_desc A, PLASMA_desc B, PLASMA_desc L, int *IPIV, PLASMA_sequence *sequence, PLASMA_request *request);
00151 void plasma_pztrtri_quark(PLASMA_enum uplo, PLASMA_enum diag, PLASMA_desc A, PLASMA_sequence *sequence, PLASMA_request *request);
00152 void plasma_pzungqr_quark(PLASMA_desc A, PLASMA_desc Q, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00153 void plasma_pzungqrrh_quark(PLASMA_desc A, PLASMA_desc Q, PLASMA_desc T, int BS, PLASMA_sequence *sequence, PLASMA_request *request);
00154 void plasma_pzunglq_quark(PLASMA_desc A, PLASMA_desc Q, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00155 void plasma_pzunglqrh_quark(PLASMA_desc A, PLASMA_desc Q, PLASMA_desc T, int BS, PLASMA_sequence *sequence, PLASMA_request *request);
00156 void plasma_pzunmqr_quark(PLASMA_desc A, PLASMA_desc B, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00157 void plasma_pzunmqrrh_quark(PLASMA_desc A, PLASMA_desc B, PLASMA_desc T, int BS, PLASMA_sequence *sequence, PLASMA_request *request);
00158 void plasma_pzunmlq_quark(PLASMA_desc A, PLASMA_desc B, PLASMA_desc T, PLASMA_sequence *sequence, PLASMA_request *request);
00159 void plasma_pzunmlqrh_quark(PLASMA_desc A, PLASMA_desc B, PLASMA_desc T, int BS, PLASMA_sequence *sequence, PLASMA_request *request);