47 #include "control/common.h"   111         MORSE_desc_t *
AUV, MORSE_desc_t *Ark,
   112         MORSE_desc_t *
BUV, MORSE_desc_t *Brk,
   114         MORSE_desc_t *
CUV, MORSE_desc_t *Crk,
   120     MORSE_context_t *morse;
   121     MORSE_sequence_t *sequence = NULL;
   122     MORSE_request_t request = MORSE_REQUEST_INITIALIZER;
   125     morse = morse_context_self();
   127         morse_fatal_error(
"MORSE_zgemm_Tile", 
"MORSE not initialized");
   128         return MORSE_ERR_NOT_INITIALIZED;
   130     morse_sequence_create(morse, &sequence);
   140     MORSE_Desc_Flush( 
AUV, sequence );
   141     MORSE_Desc_Flush( 
BUV, sequence );
   142     MORSE_Desc_Flush( 
CUV, sequence );
   143     MORSE_Desc_Flush( Ark, sequence );
   144     MORSE_Desc_Flush( Brk, sequence );
   145     MORSE_Desc_Flush( Crk, sequence );
   146     morse_sequence_wait(morse, sequence);
   154     status = sequence->status;
   155     morse_sequence_destroy(morse, sequence);
   178         MORSE_desc_t *
AUV, MORSE_desc_t *Ark,
   179         MORSE_desc_t *
BUV, MORSE_desc_t *Brk,
   181         MORSE_desc_t *
CUV, MORSE_desc_t *Crk,
   185         MORSE_sequence_t *sequence, MORSE_request_t *request)
   187     MORSE_context_t *morse;
   189     int Am, An, Ai, Aj, Amb, Anb;
   190     int Bm, Bn, Bi, Bj, Bmb, Bnb;
   192     morse = morse_context_self();
   194         morse_fatal_error(
"MORSE_zgemm_Tile_Async", 
"MORSE not initialized");
   195         return MORSE_ERR_NOT_INITIALIZED;
   197     if (sequence == NULL) {
   198         morse_fatal_error(
"MORSE_zgemm_Tile_Async", 
"NULL sequence");
   199         return MORSE_ERR_UNALLOCATED;
   201     if (request == NULL) {
   202         morse_fatal_error(
"MORSE_zgemm_Tile_Async", 
"NULL request");
   203         return MORSE_ERR_UNALLOCATED;
   206     if (sequence->status == MORSE_SUCCESS)
   207         request->status = MORSE_SUCCESS;
   209         return morse_request_fail(sequence, request, MORSE_ERR_SEQUENCE_FLUSHED);
   213           (morse_desc_check(
AUV) != MORSE_SUCCESS)
   214         ||(morse_desc_check(
BUV) != MORSE_SUCCESS)
   215         ||(morse_desc_check(
CUV) != MORSE_SUCCESS)
   216         ||(morse_desc_check(Ark) != MORSE_SUCCESS)
   217         ||(morse_desc_check(Brk) != MORSE_SUCCESS)
   218         ||(morse_desc_check(Crk) != MORSE_SUCCESS)
   221         morse_error(
"MORSE_zgemm_Tile_Async", 
"some invalid descriptors");
   222         return morse_request_fail(sequence, request, MORSE_ERR_ILLEGAL_VALUE);
   225     if ((transA != MorseNoTrans) && (transA != MorseTrans) && (transA != MorseConjTrans)) {
   226         morse_error(
"MORSE_zgemm_Tile_Async", 
"illegal value of transA");
   227         return morse_request_fail(sequence, request, -1);
   229     if ((transB != MorseNoTrans) && (transB != MorseTrans) && (transB != MorseConjTrans)) {
   230         morse_error(
"MORSE_zgemm_Tile_Async", 
"illegal value of transB");
   231         return morse_request_fail(sequence, request, -2);
   234     if ( transA == MorseNoTrans ) {
   250     if ( transB == MorseNoTrans ) {
   290     if (M == 0 || N == 0 ||
   291         ((alpha == 0.0 || K == 0) && beta == 1.0))
   293         return MORSE_SUCCESS;
   302     return MORSE_SUCCESS;
 
int HICMA_zgemm_Tile(MORSE_enum transA, MORSE_enum transB, double alpha, MORSE_desc_t *AUV, MORSE_desc_t *Ark, MORSE_desc_t *BUV, MORSE_desc_t *Brk, double beta, MORSE_desc_t *CUV, MORSE_desc_t *Crk, int rk, int maxrk, double acc)
 
void hicma_pzgemm(MORSE_enum transA, MORSE_enum transB, double alpha, MORSE_desc_t *AUV, MORSE_desc_t *Ark, MORSE_desc_t *BUV, MORSE_desc_t *Brk, double beta, MORSE_desc_t *CUV, MORSE_desc_t *Crk, MORSE_sequence_t *sequence, MORSE_request_t *request, int rk, int maxrk, double acc)
 
int HICMA_zgemm_Tile_Async(MORSE_enum transA, MORSE_enum transB, double alpha, MORSE_desc_t *AUV, MORSE_desc_t *Ark, MORSE_desc_t *BUV, MORSE_desc_t *Brk, double beta, MORSE_desc_t *CUV, MORSE_desc_t *Crk, int rk, int maxrk, double acc, MORSE_sequence_t *sequence, MORSE_request_t *request)