Mentions légales du service

Skip to content
Snippets Groups Projects
Commit cec2d4a6 authored by Mathieu Faverge's avatar Mathieu Faverge
Browse files

Factorize code

parent dc4b62db
No related branches found
No related tags found
No related merge requests found
This commit is part of merge request !78. Comments created here will be created in the context of that merge request.
......@@ -63,44 +63,7 @@
******************************************************************************/
int MORSE_zLapack_to_Tile( MORSE_Complex64_t *Af77, int LDA, MORSE_desc_t *A )
{
MORSE_context_t *morse;
MORSE_sequence_t *sequence = NULL;
MORSE_request_t request;
MORSE_desc_t *B;
int status;
morse = morse_context_self();
if (morse == NULL) {
morse_fatal_error("MORSE_zLapack_to_Tile", "MORSE not initialized");
return MORSE_ERR_NOT_INITIALIZED;
}
/* Check descriptor for correctness */
if (morse_desc_check( A ) != MORSE_SUCCESS) {
morse_error("MORSE_zLapack_to_Tile", "invalid descriptor");
return MORSE_ERR_ILLEGAL_VALUE;
}
/* Create the B descriptor to handle the Lapack format matrix */
MORSE_Desc_Create_User( &B, Af77, MorseComplexDouble, A->mb, A->nb, A->bsiz,
LDA, A->n, 0, 0, A->m, A->n, 1, 1,
morse_getaddr_cm, morse_getblkldd_cm, NULL );
/* Start the computation */
morse_sequence_create( morse, &sequence );
morse_pzlacpy( MorseUpperLower, B, A, sequence, &request );
MORSE_Desc_Flush( B, sequence );
MORSE_Desc_Flush( A, sequence );
morse_sequence_wait( morse, sequence );
/* Destroy temporary B descriptor */
MORSE_Desc_Destroy( &B );
status = sequence->status;
morse_sequence_destroy( morse, sequence );
return status;
return MORSE_Lapack_to_Tile( Af77, LDA, A );
}
/**
......@@ -140,41 +103,5 @@ int MORSE_zLapack_to_Tile( MORSE_Complex64_t *Af77, int LDA, MORSE_desc_t *A )
******************************************************************************/
int MORSE_zTile_to_Lapack( MORSE_desc_t *A, MORSE_Complex64_t *Af77, int LDA )
{
MORSE_context_t *morse;
MORSE_sequence_t *sequence = NULL;
MORSE_request_t request;
MORSE_desc_t *B;
int status;
morse = morse_context_self();
if (morse == NULL) {
morse_fatal_error("MORSE_zTile_to_Lapack", "MORSE not initialized");
return MORSE_ERR_NOT_INITIALIZED;
}
/* Check descriptor for correctness */
if (morse_desc_check( A ) != MORSE_SUCCESS) {
morse_error("MORSE_zTile_to_Lapack", "invalid descriptor");
return MORSE_ERR_ILLEGAL_VALUE;
}
/* Create the B descriptor to handle the Lapack format matrix */
MORSE_Desc_Create_User( &B, Af77, MorseComplexDouble, A->mb, A->nb, A->bsiz,
LDA, A->n, 0, 0, A->m, A->n, 1, 1,
morse_getaddr_cm, morse_getblkldd_cm, NULL );
/* Start the computation */
morse_sequence_create( morse, &sequence );
morse_pzlacpy( MorseUpperLower, A, B, sequence, &request );
MORSE_Desc_Flush( A, sequence );
MORSE_Desc_Flush( B, sequence );
morse_sequence_wait( morse, sequence );
MORSE_Desc_Destroy( &B );
status = sequence->status;
morse_sequence_destroy( morse, sequence );
return status;
return MORSE_Tile_to_Lapack( A, Af77, LDA );
}
......@@ -57,10 +57,10 @@
*****************************************************************************/
int MORSE_Lapack_to_Tile(void *Af77, int LDA, MORSE_desc_t *A)
{
MORSE_context_t *morse;
MORSE_context_t *morse;
MORSE_sequence_t *sequence = NULL;
MORSE_request_t request;
MORSE_desc_t B;
MORSE_request_t request;
MORSE_desc_t *B;
int status;
morse = morse_context_self();
......@@ -75,27 +75,25 @@ int MORSE_Lapack_to_Tile(void *Af77, int LDA, MORSE_desc_t *A)
}
/* Create the B descriptor to handle the Lapack format matrix */
B = morse_desc_init_user(
A->dtyp, A->mb, A->nb, A->bsiz,
LDA, A->n, 0, 0, A->m, A->n, 1, 1,
morse_getaddr_cm, morse_getblkldd_cm, NULL );
B.mat = Af77;
B.styp = MorseCM;
MORSE_Desc_Create_User( &B, Af77, A->dtyp, A->mb, A->nb, A->bsiz,
LDA, A->n, 0, 0, A->m, A->n, 1, 1,
morse_getaddr_cm, morse_getblkldd_cm, NULL );
RUNTIME_desc_create( &B );
/* Start the computation */
morse_sequence_create( morse, &sequence );
morse_sequence_create(morse, &sequence);
morse_pzlacpy( MorseUpperLower, B, A, sequence, &request );
morse_pzlacpy( MorseUpperLower, &B, A, sequence, &request );
MORSE_Desc_Flush( B, sequence );
MORSE_Desc_Flush( A, sequence );
RUNTIME_desc_flush( &B, sequence );
RUNTIME_desc_flush( A, sequence );
RUNTIME_sequence_wait( morse, sequence );
morse_sequence_wait( morse, sequence );
RUNTIME_desc_destroy( &B );
/* Destroy temporary B descriptor */
MORSE_Desc_Destroy( &B );
status = sequence->status;
morse_sequence_destroy(morse, sequence);
morse_sequence_destroy( morse, sequence );
return status;
}
......@@ -124,10 +122,10 @@ int MORSE_Lapack_to_Tile(void *Af77, int LDA, MORSE_desc_t *A)
*****************************************************************************/
int MORSE_Tile_to_Lapack(MORSE_desc_t *A, void *Af77, int LDA)
{
MORSE_context_t *morse;
MORSE_context_t *morse;
MORSE_sequence_t *sequence = NULL;
MORSE_request_t request;
MORSE_desc_t B;
MORSE_request_t request;
MORSE_desc_t *B;
int status;
morse = morse_context_self();
......@@ -142,25 +140,23 @@ int MORSE_Tile_to_Lapack(MORSE_desc_t *A, void *Af77, int LDA)
}
/* Create the B descriptor to handle the Lapack format matrix */
B = morse_desc_init_user(
A->dtyp, A->mb, A->nb, A->bsiz,
LDA, A->n, 0, 0, A->m, A->n, 1, 1,
morse_getaddr_cm, morse_getblkldd_cm, NULL );
B.mat = Af77;
B.styp = MorseCM;
MORSE_Desc_Create_User( &B, Af77, MorseComplexDouble, A->mb, A->nb, A->bsiz,
LDA, A->n, 0, 0, A->m, A->n, 1, 1,
morse_getaddr_cm, morse_getblkldd_cm, NULL );
RUNTIME_desc_create( &B );
/* Start the computation */
morse_sequence_create( morse, &sequence );
morse_sequence_create(morse, &sequence);
morse_pzlacpy( MorseUpperLower, A, &B, sequence, &request );
morse_pzlacpy( MorseUpperLower, A, B, sequence, &request );
RUNTIME_desc_flush( A, sequence );
RUNTIME_desc_flush( &B, sequence );
RUNTIME_sequence_wait( morse, sequence );
MORSE_Desc_Flush( A, sequence );
MORSE_Desc_Flush( B, sequence );
RUNTIME_desc_destroy( &B );
morse_sequence_wait( morse, sequence );
MORSE_Desc_Destroy( &B );
status = sequence->status;
morse_sequence_destroy(morse, sequence);
morse_sequence_destroy( morse, sequence );
return status;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment