From efef210b6f1b5b29dc59742da0d56cb90971eda4 Mon Sep 17 00:00:00 2001 From: Florent Pruvost <florent.pruvost@inria.fr> Date: Fri, 9 Sep 2016 15:57:42 +0000 Subject: [PATCH] chameleon: merge plghe2/plgsy2 routines with plghe/plgsy --- compute/CMakeLists.txt | 4 - compute/pzplghe.c | 68 +++-- compute/pzplghe2.c | 93 ------- compute/pzplgsy.c | 59 ++++- compute/pzplgsy2.c | 88 ------- compute/zplghe.c | 53 ++-- compute/zplghe2.c | 268 -------------------- compute/zplgsy.c | 43 ++-- compute/zplgsy2.c | 267 ------------------- compute/zplrnt.c | 12 +- control/compute_z.h | 6 +- control/morse_zf77.c | 24 +- control/morse_zf90.F90 | 36 ++- docs/texinfo/chapters/using.texi | 13 +- example/basic_zposv/zposv_morse_functions.c | 2 +- example/basic_zposv/zposv_users_functions.c | 2 +- example/lapack_to_morse/step1.c | 2 +- example/lapack_to_morse/step2.c | 2 +- example/lapack_to_morse/step3.c | 2 +- example/lapack_to_morse/step4.c | 2 +- example/lapack_to_morse/step5.c | 2 +- example/lapack_to_morse/step6.c | 2 +- example/link_chameleon/link_chameleon.c | 2 +- example/out_of_core/out_of_core.c | 2 +- include/morse_z.h | 18 +- testing/testing_zhemm.c | 2 +- testing/testing_zher2k.c | 2 +- testing/testing_zherk.c | 2 +- testing/testing_zposv.c | 8 +- testing/testing_zpotri.c | 2 +- testing/testing_zsymm.c | 2 +- testing/testing_zsyr2k.c | 2 +- testing/testing_zsyrk.c | 2 +- timing/time_zposv.c | 2 +- timing/time_zposv_tile.c | 2 +- timing/time_zpotrf.c | 2 +- timing/time_zpotrf_tile.c | 2 +- timing/time_zpotri_tile.c | 2 +- timing/time_zpotrs_tile.c | 2 +- timing/time_zsytrf_tile.c | 2 +- timing/time_ztrsm.c | 2 +- 41 files changed, 242 insertions(+), 868 deletions(-) delete mode 100644 compute/pzplghe2.c delete mode 100644 compute/pzplgsy2.c delete mode 100644 compute/zplghe2.c delete mode 100644 compute/zplgsy2.c diff --git a/compute/CMakeLists.txt b/compute/CMakeLists.txt index b6174a90d..784b42d1f 100644 --- a/compute/CMakeLists.txt +++ b/compute/CMakeLists.txt @@ -97,9 +97,7 @@ set(ZSRC pzlaset.c pzlauum.c pzplghe.c - pzplghe2.c pzplgsy.c - pzplgsy2.c pzplrnt.c pzpotrf.c pzsytrf.c @@ -135,9 +133,7 @@ set(ZSRC zlaset.c zlauum.c zplghe.c - zplghe2.c zplgsy.c - zplgsy2.c zplrnt.c zposv.c zsysv.c diff --git a/compute/pzplghe.c b/compute/pzplghe.c index 4ad0c6244..068ca66cb 100644 --- a/compute/pzplghe.c +++ b/compute/pzplghe.c @@ -3,7 +3,7 @@ * @copyright (c) 2009-2014 The University of Tennessee and The University * of Tennessee Research Foundation. * All rights reserved. - * @copyright (c) 2012-2014 Inria. All rights reserved. + * @copyright (c) 2012-2016 Inria. All rights reserved. * @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -17,12 +17,15 @@ * Univ. of California Berkeley and Univ. of Colorado Denver * * @version 2.5.0 - * @comment This file has been automatically generated + * @comment This file is a copy from pzplghe.c + * wich has been automatically generated * from Plasma 2.5.0 for MORSE 1.0.0 * @author Mathieu Faverge * @author Emmanuel Agullo * @author Cedric Castagnede - * @date 2010-11-15 + * @author Rade Mathis + * @author Florent Pruvost + * @date 2016-08-01 * @precisions normal z -> c * **/ @@ -30,10 +33,11 @@ #define A(m,n) A, m, n /***************************************************************************//** - * morse_pzplghe - Generate a random hermitian (positive definite if 'bump' is large enough) matrix by tiles. + * morse_pzplghe - Generate a random hermitian (positive definite if 'bump' is large enough) half-matrix by tiles. **/ -void morse_pzplghe( double bump, MORSE_desc_t *A, unsigned long long int seed, - MORSE_sequence_t *sequence, MORSE_request_t *request ) +void morse_pzplghe( double bump, MORSE_enum uplo, MORSE_desc_t *A, + unsigned long long int seed, + MORSE_sequence_t *sequence, MORSE_request_t *request ) { MORSE_context_t *morse; MORSE_option_t options; @@ -48,18 +52,50 @@ void morse_pzplghe( double bump, MORSE_desc_t *A, unsigned long long int seed, RUNTIME_options_init(&options, morse, sequence, request); for (m = 0; m < A->mt; m++) { - tempmm = m == A->mt-1 ? A->m-m*A->mb : A->mb; - ldam = BLKLDD(A, m); + tempmm = m == A->mt-1 ? A->m-m*A->mb : A->mb; + ldam = BLKLDD(A, m); - for (n = 0; n < A->nt; n++) { - tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; + /* + * MorseLower + */ + if (uplo == MorseLower) { + for (n = 0; n <= m; n++) { + tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; - MORSE_TASK_zplghe( - &options, - bump, tempmm, tempnn, A(m, n), ldam, - A->m, m*A->mb, n*A->nb, seed ); - - } + options.priority = m + n; + MORSE_TASK_zplghe( + &options, + bump, tempmm, tempnn, A(m, n), ldam, + A->m, m*A->mb, n*A->nb, seed ); + } + } + /* + * MorseUpper + */ + else if (uplo == MorseUpper) { + for (n = m; n < A->nt; n++) { + tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; + + options.priority = m + n; + MORSE_TASK_zplghe( + &options, + bump, tempmm, tempnn, A(m, n), ldam, + A->m, m*A->mb, n*A->nb, seed ); + } + } + /* + * MorseUpperLower + */ + else { + for (n = 0; n < A->nt; n++) { + tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; + + MORSE_TASK_zplghe( + &options, + bump, tempmm, tempnn, A(m, n), ldam, + A->m, m*A->mb, n*A->nb, seed ); + } + } } RUNTIME_options_finalize(&options, morse); MORSE_TASK_dataflush_all(); diff --git a/compute/pzplghe2.c b/compute/pzplghe2.c deleted file mode 100644 index 558a7f615..000000000 --- a/compute/pzplghe2.c +++ /dev/null @@ -1,93 +0,0 @@ -/** - * - * @copyright (c) 2009-2014 The University of Tennessee and The University - * of Tennessee Research Foundation. - * All rights reserved. - * @copyright (c) 2012-2016 Inria. All rights reserved. - * @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. - * - **/ - -/** - * - * @file pzplghe2.c - * - * MORSE auxiliary routines - * MORSE is a software package provided by Univ. of Tennessee, - * Univ. of California Berkeley and Univ. of Colorado Denver - * - * @version 2.5.0 - * @comment This file is a copy from pzplghe.c - * wich has been automatically generated - * from Plasma 2.5.0 for MORSE 1.0.0 - * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede - * @author Rade Mathis - * @date 2016-08-01 - * @precisions normal z -> c - * - **/ -#include "control/common.h" - -#define A(m,n) A, m, n -/***************************************************************************//** - * morse_pzplghe - Generate a random hermitian (positive definite if 'bump' is large enough) half-matrix by tiles. - **/ -void morse_pzplghe2( double bump, MORSE_desc_t *A, unsigned long long int seed, - MORSE_enum uplo, MORSE_sequence_t *sequence, - MORSE_request_t *request ) -{ - MORSE_context_t *morse; - MORSE_option_t options; - - int m, n; - int ldam; - int tempmm, tempnn; - - morse = morse_context_self(); - if (sequence->status != MORSE_SUCCESS) - return; - RUNTIME_options_init(&options, morse, sequence, request); - - /* - * MorseLower - */ - if (uplo == MorseLower) { - for (m = 0; m < A->mt; m++) { - tempmm = m == A->mt-1 ? A->m-m*A->mb : A->mb; - ldam = BLKLDD(A, m); - - for (n = 0; n <= m; n++) { - tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; - - options.priority = m + n; - MORSE_TASK_zplghe( - &options, - bump, tempmm, tempnn, A(m, n), ldam, - A->m, m*A->mb, n*A->nb, seed ); - } - } - } - /* - * MorseUpper - */ - else { - for (m = 0; m < A->mt; m++) { - tempmm = m == A->mt-1 ? A->m-m*A->mb : A->mb; - ldam = BLKLDD(A, m); - - for (n = m; n < A->nt; n++) { - tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; - - options.priority = m + n; - MORSE_TASK_zplghe( - &options, - bump, tempmm, tempnn, A(m, n), ldam, - A->m, m*A->mb, n*A->nb, seed ); - } - } - } - RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); -} diff --git a/compute/pzplgsy.c b/compute/pzplgsy.c index 0a1f2883c..9e0ae59de 100644 --- a/compute/pzplgsy.c +++ b/compute/pzplgsy.c @@ -3,7 +3,7 @@ * @copyright (c) 2009-2014 The University of Tennessee and The University * of Tennessee Research Foundation. * All rights reserved. - * @copyright (c) 2012-2014 Inria. All rights reserved. + * @copyright (c) 2012-2016 Inria. All rights reserved. * @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -17,12 +17,15 @@ * Univ. of California Berkeley and Univ. of Colorado Denver * * @version 2.5.0 - * @comment This file has been automatically generated + * @comment This file is a copy of pzplgsy.c, + wich has been automatically generated * from Plasma 2.5.0 for MORSE 1.0.0 * @author Mathieu Faverge * @author Emmanuel Agullo * @author Cedric Castagnede - * @date 2010-11-15 + * @author Rade Mathis + * @author Florent Pruvost + * @date 2016-08-01 * @precisions normal z -> c d s * **/ @@ -30,9 +33,10 @@ #define A(m,n) A, m, n /***************************************************************************//** - * morse_pzplgsy - Generate a random symmetric (positive definite if 'bump' is large enough) matrix by tiles. + * morse_pzplgsy - Generate a random symmetric (positive definite if 'bump' is large enough) half-matrix by tiles. **/ -void morse_pzplgsy( MORSE_Complex64_t bump, MORSE_desc_t *A, unsigned long long int seed, +void morse_pzplgsy( MORSE_Complex64_t bump, MORSE_enum uplo, MORSE_desc_t *A, + unsigned long long int seed, MORSE_sequence_t *sequence, MORSE_request_t *request ) { MORSE_context_t *morse; @@ -51,13 +55,46 @@ void morse_pzplgsy( MORSE_Complex64_t bump, MORSE_desc_t *A, unsigned long long tempmm = m == A->mt-1 ? A->m-m*A->mb : A->mb; ldam = BLKLDD(A, m); - for (n = 0; n < A->nt; n++) { - tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; + /* + * MorseLower + */ + if (uplo == MorseLower) { + for (n = 0; n <= m; n++) { + tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; - MORSE_TASK_zplgsy( - &options, - bump, tempmm, tempnn, A(m, n), ldam, - A->m, m*A->mb, n*A->nb, seed ); + options.priority = m + n; + MORSE_TASK_zplgsy( + &options, + bump, tempmm, tempnn, A(m, n), ldam, + A->m, m*A->mb, n*A->nb, seed ); + } + } + /* + * MorseUpper + */ + else if (uplo == MorseUpper) { + for (n = m; n < A->nt; n++) { + tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; + + options.priority = m + n; + MORSE_TASK_zplgsy( + &options, + bump, tempmm, tempnn, A(m, n), ldam, + A->m, m*A->mb, n*A->nb, seed ); + } + } + /* + * MorseUpperLower + */ + else { + for (n = 0; n < A->nt; n++) { + tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; + + MORSE_TASK_zplgsy( + &options, + bump, tempmm, tempnn, A(m, n), ldam, + A->m, m*A->mb, n*A->nb, seed ); + } } } RUNTIME_options_finalize(&options, morse); diff --git a/compute/pzplgsy2.c b/compute/pzplgsy2.c deleted file mode 100644 index 1277bc92a..000000000 --- a/compute/pzplgsy2.c +++ /dev/null @@ -1,88 +0,0 @@ -/** - * - * @copyright (c) 2009-2014 The University of Tennessee and The University - * of Tennessee Research Foundation. - * All rights reserved. - * @copyright (c) 2012-2016 Inria. All rights reserved. - * @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. - * - **/ - -/** - * - * @file pzplgsy2.c - * - * MORSE auxiliary routines - * MORSE is a software package provided by Univ. of Tennessee, - * Univ. of California Berkeley and Univ. of Colorado Denver - * - * @version 2.5.0 - * @comment This file is a copy of pzplgsy.c, - wich has been automatically generated - * from Plasma 2.5.0 for MORSE 1.0.0 - * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede - * @author Rade Mathis - * @date 2016-08-01 - * @precisions normal z -> c d s - * - **/ -#include "control/common.h" - -#define A(m,n) A, m, n -/***************************************************************************//** - * morse_pzplgsy2 - Generate a random symmetric (positive definite if 'bump' is large enough) half-matrix by tiles. - **/ -void morse_pzplgsy2( MORSE_Complex64_t bump, MORSE_desc_t *A, - unsigned long long int seed, MORSE_enum uplo, - MORSE_sequence_t *sequence, MORSE_request_t *request ) -{ - MORSE_context_t *morse; - MORSE_option_t options; - - int m, n; - int ldam; - int tempmm, tempnn; - - morse = morse_context_self(); - if (sequence->status != MORSE_SUCCESS) - return; - RUNTIME_options_init(&options, morse, sequence, request); - - for (m = 0; m < A->mt; m++) { - tempmm = m == A->mt-1 ? A->m-m*A->mb : A->mb; - ldam = BLKLDD(A, m); - - /* - * MorseLower - */ - if (uplo == MorseLower) { - for (n = 0; n <= m; n++) { - tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; - - options.priority = m + n; - MORSE_TASK_zplgsy( - &options, - bump, tempmm, tempnn, A(m, n), ldam, - A->m, m*A->mb, n*A->nb, seed ); - } - } - /* - * MorseUpper - */ - else { - for (n = m; n < A->nt; n++) { - tempnn = n == A->nt-1 ? A->n-n*A->nb : A->nb; - - options.priority = m + n; - MORSE_TASK_zplgsy( - &options, - bump, tempmm, tempnn, A(m, n), ldam, - A->m, m*A->mb, n*A->nb, seed ); - } - } - } - RUNTIME_options_finalize(&options, morse); - MORSE_TASK_dataflush_all(); -} diff --git a/compute/zplghe.c b/compute/zplghe.c index b446437f1..9929737c3 100644 --- a/compute/zplghe.c +++ b/compute/zplghe.c @@ -3,7 +3,7 @@ * @copyright (c) 2009-2014 The University of Tennessee and The University * of Tennessee Research Foundation. * All rights reserved. - * @copyright (c) 2012-2014 Inria. All rights reserved. + * @copyright (c) 2012-2016 Inria. All rights reserved. * @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -17,12 +17,15 @@ * Univ. of California Berkeley and Univ. of Colorado Denver * * @version 2.5.0 - * @comment This file has been automatically generated + * @comment This file is a copy of zplghe.c + * wich has been automatically generated * from Plasma 2.5.0 for MORSE 1.0.0 * @author Mathieu Faverge * @author Emmanuel Agullo * @author Cedric Castagnede - * @date 2010-11-15 + * @author Rade Mathis + * @author Florent Pruvost + * @date 2016-08-01 * @precisions normal z -> c * **/ @@ -32,7 +35,7 @@ * * @ingroup MORSE_Complex64_t * - * MORSE_zplghe - Generate a random hermitian (positive definite if 'bump' is large enough) matrix by tiles. + * MORSE_zplghe - Generate a random hermitian (positive definite if 'bump' is large enough) half-matrix by tiles. * ******************************************************************************* * @@ -43,6 +46,9 @@ * @param[in] N * The order of the matrix A. N >= 0. * + * @param[in] uplo + * The part of the Matrix wich will be generated. + * * @param[out] A * On exit, The random hermitian matrix A generated. * @@ -65,13 +71,12 @@ * @sa MORSE_cplghe * @sa MORSE_dplghe * @sa MORSE_splghe - * @sa MORSE_zplrnt - * @sa MORSE_zplgsy + * @sa MORSE_zplghe * ******************************************************************************/ -int MORSE_zplghe( double bump, int N, - MORSE_Complex64_t *A, int LDA, - unsigned long long int seed ) +int MORSE_zplghe( double bump, MORSE_enum uplo, int N, + MORSE_Complex64_t *A, int LDA, + unsigned long long int seed ) { int NB; int status; @@ -112,7 +117,7 @@ int MORSE_zplghe( double bump, int N, morse_zdesc_alloc(descA, NB, NB, LDA, N, 0, 0, N, N, morse_desc_mat_free(&descA)); /* Call the tile interface */ - MORSE_zplghe_Tile_Async( bump, &descA, seed, sequence, &request ); + MORSE_zplghe_Tile_Async( bump, uplo, &descA, seed, sequence, &request ); morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); morse_sequence_wait(morse, sequence); @@ -128,7 +133,7 @@ int MORSE_zplghe( double bump, int N, * * @ingroup MORSE_Complex64_t_Tile * - * MORSE_zplghe_Tile - Generate a random hermitian (positive definite if 'bump' is large enough) matrix by tiles. + * MORSE_zplghe_Tile - Generate a random hermitian (positive definite if 'bump' is large enough) half-matrix by tiles. * Tile equivalent of MORSE_zplghe(). * Operates on matrices stored by tiles. * All matrices are passed through descriptors. @@ -140,6 +145,9 @@ int MORSE_zplghe( double bump, int N, * The value to add to the diagonal to be sure * to have a positive definite matrix. * + * @param[in] uplo + * The part of the Matrix wich will be generated. + * * @param[in] A * On exit, The random hermitian matrix A generated. * @@ -158,12 +166,11 @@ int MORSE_zplghe( double bump, int N, * @sa MORSE_cplghe_Tile * @sa MORSE_dplghe_Tile * @sa MORSE_splghe_Tile - * @sa MORSE_zplrnt_Tile - * @sa MORSE_zplgsy_Tile + * @sa MORSE_zplghe_Tile * ******************************************************************************/ -int MORSE_zplghe_Tile( double bump, MORSE_desc_t *A, - unsigned long long int seed ) +int MORSE_zplghe_Tile( double bump, MORSE_enum uplo, MORSE_desc_t *A, + unsigned long long int seed ) { MORSE_context_t *morse; MORSE_sequence_t *sequence = NULL; @@ -176,7 +183,7 @@ int MORSE_zplghe_Tile( double bump, MORSE_desc_t *A, return MORSE_ERR_NOT_INITIALIZED; } morse_sequence_create(morse, &sequence); - MORSE_zplghe_Tile_Async( bump, A, seed, sequence, &request ); + MORSE_zplghe_Tile_Async( bump, uplo, A, seed, sequence, &request ); morse_sequence_wait(morse, sequence); status = sequence->status; morse_sequence_destroy(morse, sequence); @@ -187,7 +194,7 @@ int MORSE_zplghe_Tile( double bump, MORSE_desc_t *A, * * @ingroup MORSE_Complex64_t_Tile_Async * - * MORSE_zplghe_Tile_Async - Generate a random hermitian (positive definite if 'bump' is large enough) matrix by tiles. + * MORSE_zplghe_Tile_Async - Generate a random hermitian (positive definite if 'bump' is large enough) half-matrix by tiles. * Non-blocking equivalent of MORSE_zplghe_Tile(). * May return before the computation is finished. * Allows for pipelining of operations at runtime. @@ -209,14 +216,14 @@ int MORSE_zplghe_Tile( double bump, MORSE_desc_t *A, * @sa MORSE_dplghe_Tile_Async * @sa MORSE_splghe_Tile_Async * @sa MORSE_zplghe_Tile_Async - * @sa MORSE_zplgsy_Tile_Async * ******************************************************************************/ -int MORSE_zplghe_Tile_Async( double bump, - MORSE_desc_t *A, +int MORSE_zplghe_Tile_Async( double bump, + MORSE_enum uplo, + MORSE_desc_t *A, unsigned long long int seed, - MORSE_sequence_t *sequence, - MORSE_request_t *request) + MORSE_sequence_t *sequence, + MORSE_request_t *request ) { MORSE_context_t *morse; @@ -254,7 +261,7 @@ int MORSE_zplghe_Tile_Async( double bump, if (min( A->m, A->n ) == 0) return MORSE_SUCCESS; - morse_pzplghe(bump, A, seed, sequence, request); + morse_pzplghe(bump, uplo, A, seed, sequence, request); return MORSE_SUCCESS; } diff --git a/compute/zplghe2.c b/compute/zplghe2.c deleted file mode 100644 index 25c87ac43..000000000 --- a/compute/zplghe2.c +++ /dev/null @@ -1,268 +0,0 @@ -/** - * - * @copyright (c) 2009-2014 The University of Tennessee and The University - * of Tennessee Research Foundation. - * All rights reserved. - * @copyright (c) 2012-2016 Inria. All rights reserved. - * @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. - * - **/ - -/** - * - * @file zplghe2.c - * - * MORSE computational routines - * MORSE is a software package provided by Univ. of Tennessee, - * Univ. of California Berkeley and Univ. of Colorado Denver - * - * @version 2.5.0 - * @comment This file is a copy of zplghe.c - * wich has been automatically generated - * from Plasma 2.5.0 for MORSE 1.0.0 - * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede - * @author Rade Mathis - * @date 2016-08-01 - * @precisions normal z -> c - * - **/ -#include "control/common.h" - -/***************************************************************************//** - * - * @ingroup MORSE_Complex64_t - * - * MORSE_zplghe2 - Generate a random hermitian (positive definite if 'bump' is large enough) half-matrix by tiles. - * - ******************************************************************************* - * - * @param[in] bump - * The value to add to the diagonal to be sure - * to have a positive definite matrix. - * - * @param[in] N - * The order of the matrix A. N >= 0. - * - * @param[out] A - * On exit, The random hermitian matrix A generated. - * - * @param[in] LDA - * The leading dimension of the array A. LDA >= max(1,M). - * - * @param[in] seed - * The seed used in the random generation. - * - * @param[in] uplo - * The part of the Matrix wich will be generated. - * - ******************************************************************************* - * - * @return - * \retval MORSE_SUCCESS successful exit - * \retval <0 if -i, the i-th argument had an illegal value - * - ******************************************************************************* - * - * @sa MORSE_zplghe2_Tile - * @sa MORSE_zplghe2_Tile_Async - * @sa MORSE_cplghe2 - * @sa MORSE_dplghe2 - * @sa MORSE_splghe2 - * @sa MORSE_zplgsy2 - * - ******************************************************************************/ -int MORSE_zplghe2( double bump, int N, - MORSE_Complex64_t *A, int LDA, - unsigned long long int seed, MORSE_enum uplo ) -{ - int NB; - int status; - MORSE_context_t *morse; - MORSE_sequence_t *sequence = NULL; - MORSE_request_t request = MORSE_REQUEST_INITIALIZER; - MORSE_desc_t descA; - - morse = morse_context_self(); - if (morse == NULL) { - morse_fatal_error("MORSE_zplghe2", "MORSE not initialized"); - return MORSE_ERR_NOT_INITIALIZED; - } - /* Check input arguments */ - if (N < 0) { - morse_error("MORSE_zplghe2", "illegal value of N"); - return -2; - } - if (LDA < max(1, N)) { - morse_error("MORSE_zplghe2", "illegal value of LDA"); - return -4; - } - /* Quick return */ - if (max(0, N) == 0) - return MORSE_SUCCESS; - - /* Tune NB depending on M, N & NRHS; Set NBNB */ - status = morse_tune(MORSE_FUNC_ZGEMM, N, N, 0); - if (status != MORSE_SUCCESS) { - morse_error("MORSE_zplghe2", "morse_tune() failed"); - return status; - } - - /* Set NT */ - NB = MORSE_NB; - morse_sequence_create(morse, &sequence); - - morse_zdesc_alloc(descA, NB, NB, LDA, N, 0, 0, N, N, morse_desc_mat_free(&descA)); - - /* Call the tile interface */ - MORSE_zplghe2_Tile_Async( bump, &descA, seed, uplo, sequence, &request ); - - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - morse_sequence_wait(morse, sequence); - morse_desc_mat_free(&descA); - - status = sequence->status; - morse_sequence_destroy(morse, sequence); - - return status; -} - -/***************************************************************************//** - * - * @ingroup MORSE_Complex64_t_Tile - * - * MORSE_zplghe2_Tile - Generate a random hermitian (positive definite if 'bump' is large enough) half-matrix by tiles. - * Tile equivalent of MORSE_zplghe2(). - * Operates on matrices stored by tiles. - * All matrices are passed through descriptors. - * All dimensions are taken from the descriptors. - * - ******************************************************************************* - * - * @param[in] bump - * The value to add to the diagonal to be sure - * to have a positive definite matrix. - * - * @param[in] A - * On exit, The random hermitian matrix A generated. - * - * @param[in] seed - * The seed used in the random generation. - * - * @param[in] uplo - * The part of the Matrix wich will be generated. - * - ******************************************************************************* - * - * @return - * \retval MORSE_SUCCESS successful exit - * - ******************************************************************************* - * - * @sa MORSE_zplghe2 - * @sa MORSE_zplghe2_Tile_Async - * @sa MORSE_cplghe2_Tile - * @sa MORSE_dplghe2_Tile - * @sa MORSE_splghe2_Tile - * @sa MORSE_zplgsy2_Tile - * - ******************************************************************************/ -int MORSE_zplghe2_Tile( double bump, MORSE_desc_t *A, - unsigned long long int seed, MORSE_enum uplo ) -{ - MORSE_context_t *morse; - MORSE_sequence_t *sequence = NULL; - MORSE_request_t request = MORSE_REQUEST_INITIALIZER; - int status; - - morse = morse_context_self(); - if (morse == NULL) { - morse_fatal_error("MORSE_zplghe2_Tile", "MORSE not initialized"); - return MORSE_ERR_NOT_INITIALIZED; - } - morse_sequence_create(morse, &sequence); - MORSE_zplghe2_Tile_Async( bump, A, seed, uplo, sequence, &request ); - morse_sequence_wait(morse, sequence); - status = sequence->status; - morse_sequence_destroy(morse, sequence); - return status; -} - -/***************************************************************************//** - * - * @ingroup MORSE_Complex64_t_Tile_Async - * - * MORSE_zplghe2_Tile_Async - Generate a random hermitian (positive definite if 'bump' is large enough) half-matrix by tiles. - * Non-blocking equivalent of MORSE_zplghe2_Tile(). - * May return before the computation is finished. - * Allows for pipelining of operations at runtime. - * - ******************************************************************************* - * - * @param[in] sequence - * Identifies the sequence of function calls that this call belongs to - * (for completion checks and exception handling purposes). - * - * @param[out] request - * Identifies this function call (for exception handling purposes). - * - ******************************************************************************* - * - * @sa MORSE_zplghe2 - * @sa MORSE_zplghe2_Tile - * @sa MORSE_cplghe2_Tile_Async - * @sa MORSE_dplghe2_Tile_Async - * @sa MORSE_splghe2_Tile_Async - * @sa MORSE_zplghe2_Tile_Async - * @sa MORSE_zplgsy2_Tile_Async - * - ******************************************************************************/ -int MORSE_zplghe2_Tile_Async( double bump, - MORSE_desc_t *A, - unsigned long long int seed, - MORSE_enum uplo, - MORSE_sequence_t *sequence, - MORSE_request_t *request ) -{ - MORSE_context_t *morse; - - morse = morse_context_self(); - if (morse == NULL) { - morse_fatal_error("MORSE_zplghe2_Tile", "MORSE not initialized"); - return MORSE_ERR_NOT_INITIALIZED; - } - if (sequence == NULL) { - morse_fatal_error("MORSE_zplghe2_Tile", "NULL sequence"); - return MORSE_ERR_UNALLOCATED; - } - if (request == NULL) { - morse_fatal_error("MORSE_zplghe2_Tile", "NULL request"); - return MORSE_ERR_UNALLOCATED; - } - /* Check sequence status */ - if (sequence->status == MORSE_SUCCESS) - request->status = MORSE_SUCCESS; - else - return morse_request_fail(sequence, request, MORSE_ERR_SEQUENCE_FLUSHED); - - /* Check descriptors for correctness */ - if (morse_desc_check(A) != MORSE_SUCCESS) { - morse_error("MORSE_zplghe2_Tile", "invalid descriptor"); - return morse_request_fail(sequence, request, MORSE_ERR_ILLEGAL_VALUE); - } - /* Check input arguments */ - if (A->nb != A->mb) { - morse_error("MORSE_zplghe2_Tile", "only square tiles supported"); - return morse_request_fail(sequence, request, MORSE_ERR_ILLEGAL_VALUE); - } - - /* Quick return */ - if (min( A->m, A->n ) == 0) - return MORSE_SUCCESS; - - - morse_pzplghe2(bump, A, seed, uplo, sequence, request); - - return MORSE_SUCCESS; -} diff --git a/compute/zplgsy.c b/compute/zplgsy.c index bbf5aaa48..f61ee0d83 100644 --- a/compute/zplgsy.c +++ b/compute/zplgsy.c @@ -3,7 +3,7 @@ * @copyright (c) 2009-2014 The University of Tennessee and The University * of Tennessee Research Foundation. * All rights reserved. - * @copyright (c) 2012-2014 Inria. All rights reserved. + * @copyright (c) 2012-2016 Inria. All rights reserved. * @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. * **/ @@ -17,12 +17,15 @@ * Univ. of California Berkeley and Univ. of Colorado Denver * * @version 2.5.0 - * @comment This file has been automatically generated + * @comment This file is a copy of zplgsy.c, + * wich has been automatically generated * from Plasma 2.5.0 for MORSE 1.0.0 * @author Mathieu Faverge * @author Emmanuel Agullo * @author Cedric Castagnede - * @date 2010-11-15 + * @author Rade Mathis + * @author Florent Pruvost + * @date 2016-08-01 * @precisions normal z -> c d s * **/ @@ -32,7 +35,7 @@ * * @ingroup MORSE_Complex64_t * - * MORSE_zplgsy - Generate a random symmetric (positive definite if 'bump' is large enough) matrix by tiles. + * MORSE_zplgsy - Generate a random symmetric (positive definite if 'bump' is large enough) half-matrix by tiles. * ******************************************************************************* * @@ -43,6 +46,9 @@ * @param[in] N * The order of the matrix A. N >= 0. * + * @param[in] uplo + * The half of the matrix that will be generated. + * * @param[out] A * On exit, The random hermitian matrix A generated. * @@ -65,11 +71,10 @@ * @sa MORSE_cplgsy * @sa MORSE_dplgsy * @sa MORSE_splgsy - * @sa MORSE_zplrnt * @sa MORSE_zplgsy * ******************************************************************************/ -int MORSE_zplgsy( MORSE_Complex64_t bump, int N, +int MORSE_zplgsy( MORSE_Complex64_t bump, MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA, unsigned long long int seed ) { @@ -112,7 +117,7 @@ int MORSE_zplgsy( MORSE_Complex64_t bump, int N, morse_zdesc_alloc(descA, NB, NB, LDA, N, 0, 0, N, N, morse_desc_mat_free(&descA)); /* Call the tile interface */ - MORSE_zplgsy_Tile_Async( bump, &descA, seed, sequence, &request ); + MORSE_zplgsy_Tile_Async( bump, uplo, &descA, seed, sequence, &request ); morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); morse_sequence_wait(morse, sequence); @@ -128,7 +133,7 @@ int MORSE_zplgsy( MORSE_Complex64_t bump, int N, * * @ingroup MORSE_Complex64_t_Tile * - * MORSE_zplgsy_Tile - Generate a random symmetric (positive definite if 'bump' is large enough) matrix by tiles. + * MORSE_zplgsy_Tile - Generate a random symmetric (positive definite if 'bump' is large enough) half-matrix by tiles. * Tile equivalent of MORSE_zplgsy(). * Operates on matrices stored by tiles. * All matrices are passed through descriptors. @@ -140,6 +145,9 @@ int MORSE_zplgsy( MORSE_Complex64_t bump, int N, * The value to add to the diagonal to be sure * to have a positive definite matrix. * + * @param[in] uplo + * The half of the matrix that will be generated. + * * @param[in] A * On exit, The random hermitian matrix A generated. * @@ -158,11 +166,11 @@ int MORSE_zplgsy( MORSE_Complex64_t bump, int N, * @sa MORSE_cplgsy_Tile * @sa MORSE_dplgsy_Tile * @sa MORSE_splgsy_Tile - * @sa MORSE_zplrnt_Tile * @sa MORSE_zplgsy_Tile * ******************************************************************************/ -int MORSE_zplgsy_Tile( MORSE_Complex64_t bump, MORSE_desc_t *A, +int MORSE_zplgsy_Tile( MORSE_Complex64_t bump, MORSE_enum uplo, + MORSE_desc_t *A, unsigned long long int seed ) { MORSE_context_t *morse; @@ -176,7 +184,7 @@ int MORSE_zplgsy_Tile( MORSE_Complex64_t bump, MORSE_desc_t *A, return MORSE_ERR_NOT_INITIALIZED; } morse_sequence_create(morse, &sequence); - MORSE_zplgsy_Tile_Async( bump, A, seed, sequence, &request ); + MORSE_zplgsy_Tile_Async( bump, uplo, A, seed, sequence, &request ); morse_sequence_wait(morse, sequence); status = sequence->status; morse_sequence_destroy(morse, sequence); @@ -187,7 +195,7 @@ int MORSE_zplgsy_Tile( MORSE_Complex64_t bump, MORSE_desc_t *A, * * @ingroup MORSE_Complex64_t_Tile_Async * - * MORSE_zplgsy_Tile_Async - Generate a random symmetric (positive definite if 'bump' is large enough) matrix by tiles. + * MORSE_zplgsy_Tile_Async - Generate a random symmetric (positive definite if 'bump' is large enough) half-matrix by tiles. * Non-blocking equivalent of MORSE_zplgsy_Tile(). * May return before the computation is finished. * Allows for pipelining of operations at runtime. @@ -212,11 +220,12 @@ int MORSE_zplgsy_Tile( MORSE_Complex64_t bump, MORSE_desc_t *A, * @sa MORSE_zplgsy_Tile_Async * ******************************************************************************/ -int MORSE_zplgsy_Tile_Async( MORSE_Complex64_t bump, - MORSE_desc_t *A, +int MORSE_zplgsy_Tile_Async( MORSE_Complex64_t bump, + MORSE_enum uplo, + MORSE_desc_t *A, unsigned long long int seed, - MORSE_sequence_t *sequence, - MORSE_request_t *request) + MORSE_sequence_t *sequence, + MORSE_request_t *request ) { MORSE_context_t *morse; @@ -254,7 +263,7 @@ int MORSE_zplgsy_Tile_Async( MORSE_Complex64_t bump, if (min( A->m, A->n ) == 0) return MORSE_SUCCESS; - morse_pzplgsy(bump, A, seed, sequence, request); + morse_pzplgsy(bump, uplo, A, seed, sequence, request); return MORSE_SUCCESS; } diff --git a/compute/zplgsy2.c b/compute/zplgsy2.c deleted file mode 100644 index 0fce99c8e..000000000 --- a/compute/zplgsy2.c +++ /dev/null @@ -1,267 +0,0 @@ -/** - * - * @copyright (c) 2009-2014 The University of Tennessee and The University - * of Tennessee Research Foundation. - * All rights reserved. - * @copyright (c) 2012-2016 Inria. All rights reserved. - * @copyright (c) 2012-2014 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved. - * - **/ - -/** - * - * @file zplgsy2.c - * - * MORSE computational routines - * MORSE is a software package provided by Univ. of Tennessee, - * Univ. of California Berkeley and Univ. of Colorado Denver - * - * @version 2.5.0 - * @comment This file is a copy of zplgsy.c, - * wich has been automatically generated - * from Plasma 2.5.0 for MORSE 1.0.0 - * @author Mathieu Faverge - * @author Emmanuel Agullo - * @author Cedric Castagnede - * @author Rade Mathis - * @date 2016-08-01 - * @precisions normal z -> c d s - * - **/ -#include "control/common.h" - -/***************************************************************************//** - * - * @ingroup MORSE_Complex64_t - * - * MORSE_zplgsy2 - Generate a random symmetric (positive definite if 'bump' is large enough) half-matrix by tiles. - * - ******************************************************************************* - * - * @param[in] bump - * The value to add to the diagonal to be sure - * to have a positive definite matrix. - * - * @param[in] N - * The order of the matrix A. N >= 0. - * - * @param[out] A - * On exit, The random hermitian matrix A generated. - * - * @param[in] LDA - * The leading dimension of the array A. LDA >= max(1,M). - * - * @param[in] seed - * The seed used in the random generation. - * - * @param[in] uplo - * The half of the matrix that will be generated. - * - ******************************************************************************* - * - * @return - * \retval MORSE_SUCCESS successful exit - * \retval <0 if -i, the i-th argument had an illegal value - * - ******************************************************************************* - * - * @sa MORSE_zplgsy2_Tile - * @sa MORSE_zplgsy2_Tile_Async - * @sa MORSE_cplgsy2 - * @sa MORSE_dplgsy2 - * @sa MORSE_splgsy2 - * @sa MORSE_zplgsy2 - * - ******************************************************************************/ -int MORSE_zplgsy2( MORSE_Complex64_t bump, int N, - MORSE_Complex64_t *A, int LDA, - unsigned long long int seed, MORSE_enum uplo ) -{ - int NB; - int status; - MORSE_context_t *morse; - MORSE_sequence_t *sequence = NULL; - MORSE_request_t request = MORSE_REQUEST_INITIALIZER; - MORSE_desc_t descA; - - morse = morse_context_self(); - if (morse == NULL) { - morse_fatal_error("MORSE_zplgsy2", "MORSE not initialized"); - return MORSE_ERR_NOT_INITIALIZED; - } - /* Check input arguments */ - if (N < 0) { - morse_error("MORSE_zplgsy2", "illegal value of N"); - return -2; - } - if (LDA < max(1, N)) { - morse_error("MORSE_zplgsy2", "illegal value of LDA"); - return -4; - } - /* Quick return */ - if (max(0, N) == 0) - return MORSE_SUCCESS; - - /* Tune NB depending on M, N & NRHS; Set NBNB */ - status = morse_tune(MORSE_FUNC_ZGEMM, N, N, 0); - if (status != MORSE_SUCCESS) { - morse_error("MORSE_zplgsy2", "morse_tune() failed"); - return status; - } - - /* Set NT */ - NB = MORSE_NB; - morse_sequence_create(morse, &sequence); - - morse_zdesc_alloc(descA, NB, NB, LDA, N, 0, 0, N, N, morse_desc_mat_free(&descA)); - - /* Call the tile interface */ - MORSE_zplgsy2_Tile_Async( bump, &descA, seed, uplo, sequence, &request ); - - morse_zooptile2lap(descA, A, NB, NB, LDA, N, sequence, &request); - morse_sequence_wait(morse, sequence); - morse_desc_mat_free(&descA); - - status = sequence->status; - morse_sequence_destroy(morse, sequence); - - return status; -} - -/***************************************************************************//** - * - * @ingroup MORSE_Complex64_t_Tile - * - * MORSE_zplgsy2_Tile - Generate a random symmetric (positive definite if 'bump' is large enough) half-matrix by tiles. - * Tile equivalent of MORSE_zplgsy2(). - * Operates on matrices stored by tiles. - * All matrices are passed through descriptors. - * All dimensions are taken from the descriptors. - * - ******************************************************************************* - * - * @param[in] bump - * The value to add to the diagonal to be sure - * to have a positive definite matrix. - * - * @param[in] A - * On exit, The random hermitian matrix A generated. - * - * @param[in] seed - * The seed used in the random generation. - * - * @param[in] uplo - * The half of the matrix that will be generated. - * - ******************************************************************************* - * - * @return - * \retval MORSE_SUCCESS successful exit - * - ******************************************************************************* - * - * @sa MORSE_zplgsy2 - * @sa MORSE_zplgsy2_Tile_Async - * @sa MORSE_cplgsy2_Tile - * @sa MORSE_dplgsy2_Tile - * @sa MORSE_splgsy2_Tile - * @sa MORSE_zplgsy2_Tile - * - ******************************************************************************/ -int MORSE_zplgsy2_Tile( MORSE_Complex64_t bump, MORSE_desc_t *A, - unsigned long long int seed, MORSE_enum uplo ) -{ - MORSE_context_t *morse; - MORSE_sequence_t *sequence = NULL; - MORSE_request_t request = MORSE_REQUEST_INITIALIZER; - int status; - - morse = morse_context_self(); - if (morse == NULL) { - morse_fatal_error("MORSE_zplgsy2_Tile", "MORSE not initialized"); - return MORSE_ERR_NOT_INITIALIZED; - } - morse_sequence_create(morse, &sequence); - MORSE_zplgsy2_Tile_Async( bump, A, seed, uplo, sequence, &request ); - morse_sequence_wait(morse, sequence); - status = sequence->status; - morse_sequence_destroy(morse, sequence); - return status; -} - -/***************************************************************************//** - * - * @ingroup MORSE_Complex64_t_Tile_Async - * - * MORSE_zplgsy2_Tile_Async - Generate a random symmetric (positive definite if 'bump' is large enough) half-matrix by tiles. - * Non-blocking equivalent of MORSE_zplgsy2_Tile(). - * May return before the computation is finished. - * Allows for pipelining of operations at runtime. - * - ******************************************************************************* - * - * @param[in] sequence - * Identifies the sequence of function calls that this call belongs to - * (for completion checks and exception handling purposes). - * - * @param[out] request - * Identifies this function call (for exception handling purposes). - * - ******************************************************************************* - * - * @sa MORSE_zplgsy - * @sa MORSE_zplgsy_Tile - * @sa MORSE_cplgsy_Tile_Async - * @sa MORSE_dplgsy_Tile_Async - * @sa MORSE_splgsy_Tile_Async - * @sa MORSE_zplgsy_Tile_Async - * @sa MORSE_zplgsy_Tile_Async - * - ******************************************************************************/ -int MORSE_zplgsy2_Tile_Async( MORSE_Complex64_t bump, - MORSE_desc_t *A, - unsigned long long int seed, - MORSE_enum uplo, - MORSE_sequence_t *sequence, - MORSE_request_t *request ) -{ - MORSE_context_t *morse; - - morse = morse_context_self(); - if (morse == NULL) { - morse_fatal_error("MORSE_zplgsy2_Tile", "MORSE not initialized"); - return MORSE_ERR_NOT_INITIALIZED; - } - if (sequence == NULL) { - morse_fatal_error("MORSE_zplgsy2_Tile", "NULL sequence"); - return MORSE_ERR_UNALLOCATED; - } - if (request == NULL) { - morse_fatal_error("MORSE_zplgsy2_Tile", "NULL request"); - return MORSE_ERR_UNALLOCATED; - } - /* Check sequence status */ - if (sequence->status == MORSE_SUCCESS) - request->status = MORSE_SUCCESS; - else - return morse_request_fail(sequence, request, MORSE_ERR_SEQUENCE_FLUSHED); - - /* Check descriptors for correctness */ - if (morse_desc_check(A) != MORSE_SUCCESS) { - morse_error("MORSE_zplgsy2_Tile", "invalid descriptor"); - return morse_request_fail(sequence, request, MORSE_ERR_ILLEGAL_VALUE); - } - /* Check input arguments */ - if (A->nb != A->mb) { - morse_error("MORSE_zplgsy2_Tile", "only square tiles supported"); - return morse_request_fail(sequence, request, MORSE_ERR_ILLEGAL_VALUE); - } - - /* Quick return */ - if (min( A->m, A->n ) == 0) - return MORSE_SUCCESS; - - morse_pzplgsy2(bump, A, seed, uplo, sequence, request); - - return MORSE_SUCCESS; -} diff --git a/compute/zplrnt.c b/compute/zplrnt.c index b2d2d89cb..5410719a6 100644 --- a/compute/zplrnt.c +++ b/compute/zplrnt.c @@ -69,8 +69,8 @@ * ******************************************************************************/ int MORSE_zplrnt( int M, int N, - MORSE_Complex64_t *A, int LDA, - unsigned long long int seed ) + MORSE_Complex64_t *A, int LDA, + unsigned long long int seed ) { int NB; int status; @@ -161,7 +161,7 @@ int MORSE_zplrnt( int M, int N, * ******************************************************************************/ int MORSE_zplrnt_Tile( MORSE_desc_t *A, - unsigned long long int seed ) + unsigned long long int seed ) { MORSE_context_t *morse; MORSE_sequence_t *sequence = NULL; @@ -211,9 +211,9 @@ int MORSE_zplrnt_Tile( MORSE_desc_t *A, * ******************************************************************************/ int MORSE_zplrnt_Tile_Async( MORSE_desc_t *A, - unsigned long long int seed, - MORSE_sequence_t *sequence, - MORSE_request_t *request) + unsigned long long int seed, + MORSE_sequence_t *sequence, + MORSE_request_t *request) { MORSE_context_t *morse; diff --git a/control/compute_z.h b/control/compute_z.h index 8bcb0bc26..cf34dcd1a 100644 --- a/control/compute_z.h +++ b/control/compute_z.h @@ -124,11 +124,9 @@ void morse_pzlaswp(MORSE_desc_t *B, int *IPIV, int inc, MORSE_sequence_t *sequen void morse_pzlaswpc(MORSE_desc_t *B, int *IPIV, int inc, MORSE_sequence_t *sequence, MORSE_request_t *request); void morse_pzlauum(MORSE_enum uplo, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request); #ifdef COMPLEX -void morse_pzplghe(double bump, MORSE_desc_t *A, unsigned long long int seed, MORSE_sequence_t *sequence, MORSE_request_t *request); -void morse_pzplghe2(double bump, MORSE_desc_t *A, unsigned long long int seed, MORSE_enum uplo, MORSE_sequence_t *sequence, MORSE_request_t *request ); +void morse_pzplghe(double bump, MORSE_enum uplo, MORSE_desc_t *A, unsigned long long int seed, MORSE_sequence_t *sequence, MORSE_request_t *request ); #endif -void morse_pzplgsy(MORSE_Complex64_t bump, MORSE_desc_t *A, unsigned long long int seed, MORSE_sequence_t *sequence, MORSE_request_t *request ); -void morse_pzplgsy2(MORSE_Complex64_t bump, MORSE_desc_t *A, unsigned long long int seed, MORSE_enum uplo, MORSE_sequence_t *sequence, MORSE_request_t *request ); +void morse_pzplgsy(MORSE_Complex64_t bump, MORSE_enum uplo, MORSE_desc_t *A, unsigned long long int seed, MORSE_sequence_t *sequence, MORSE_request_t *request ); void morse_pzplrnt(MORSE_desc_t *A, unsigned long long int seed, MORSE_sequence_t *sequence, MORSE_request_t *request ); void morse_pzpotrf(MORSE_enum uplo, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request); void morse_pzpotrimm(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_desc_t *C, MORSE_sequence_t *sequence, MORSE_request_t *request); diff --git a/control/morse_zf77.c b/control/morse_zf77.c index 338743a56..b98cd09f9 100644 --- a/control/morse_zf77.c +++ b/control/morse_zf77.c @@ -429,12 +429,12 @@ void MORSE_ZLAUUM(MORSE_enum *uplo, int *N, MORSE_Complex64_t *A, int *LDA, int { *info = MORSE_zlauum(*uplo, *N, A, *LDA); } #ifdef COMPLEX -void MORSE_ZPLGHE(double *bump, int *N, MORSE_Complex64_t *A, int *LDA, unsigned long long int *seed, int *info) -{ *info = MORSE_zplghe(*bump, *N, A, *LDA, *seed); } +void MORSE_ZPLGHE(double *bump, MORSE_enum *uplo, int *N, MORSE_Complex64_t *A, int *LDA, unsigned long long int *seed, int *info) +{ *info = MORSE_zplghe(*bump, *uplo, *N, A, *LDA, *seed); } #endif -void MORSE_ZPLGSY(MORSE_Complex64_t *bump, int *N, MORSE_Complex64_t *A, int *LDA, unsigned long long int *seed, int *info) -{ *info = MORSE_zplgsy(*bump, *N, A, *LDA, *seed); } +void MORSE_ZPLGSY(MORSE_Complex64_t *bump, MORSE_enum *uplo, int *N, MORSE_Complex64_t *A, int *LDA, unsigned long long int *seed, int *info) +{ *info = MORSE_zplgsy(*bump, *uplo, *N, A, *LDA, *seed); } void MORSE_ZPLRNT(int *M, int *N, MORSE_Complex64_t *A, int *LDA, unsigned long long int *seed, int *info) { *info = MORSE_zplrnt(*M, *N, A, *LDA, *seed); } @@ -619,12 +619,12 @@ void MORSE_ZLAUUM_TILE(MORSE_enum *uplo, MORSE_desc_t *A, int *info) { *info = MORSE_zlauum_Tile(*uplo, A); } #ifdef COMPLEX -void MORSE_ZPLGHE_TILE(double *bump, MORSE_desc_t *A, unsigned long long int *seed, int *info) -{ *info = MORSE_zplghe_Tile(*bump, A, *seed); } +void MORSE_ZPLGHE_TILE(double *bump, MORSE_enum *uplo, MORSE_desc_t *A, unsigned long long int *seed, int *info) +{ *info = MORSE_zplghe_Tile(*bump, *uplo, A, *seed); } #endif -void MORSE_ZPLGSY_TILE(MORSE_Complex64_t *bump, MORSE_desc_t *A, unsigned long long int *seed, int *info) -{ *info = MORSE_zplgsy_Tile(*bump, A, *seed); } +void MORSE_ZPLGSY_TILE(MORSE_Complex64_t *bump, MORSE_enum *uplo, MORSE_desc_t *A, unsigned long long int *seed, int *info) +{ *info = MORSE_zplgsy_Tile(*bump, *uplo, A, *seed); } void MORSE_ZPLRNT_TILE(MORSE_desc_t *A, unsigned long long int *seed, int *info) { *info = MORSE_zplrnt_Tile(A, *seed); } @@ -809,12 +809,12 @@ void MORSE_ZLAUUM_TILE_ASYNC(MORSE_enum *uplo, MORSE_desc_t *A, MORSE_sequence_t { *info = MORSE_zlauum_Tile_Async(*uplo, A, sequence, request); } #ifdef COMPLEX -void MORSE_ZPLGHE_TILE_ASYNC(double *bump, MORSE_desc_t *A, unsigned long long int *seed, MORSE_sequence_t *sequence, MORSE_request_t * *request, int *info) -{ *info = MORSE_zplghe_Tile_Async(*bump, A, *seed, sequence, *request); } +void MORSE_ZPLGHE_TILE_ASYNC(double *bump, MORSE_enum *uplo, MORSE_desc_t *A, unsigned long long int *seed, MORSE_sequence_t *sequence, MORSE_request_t * *request, int *info) +{ *info = MORSE_zplghe_Tile_Async(*bump, *uplo, A, *seed, sequence, *request); } #endif -void MORSE_ZPLGSY_TILE_ASYNC(MORSE_Complex64_t *bump, MORSE_desc_t *A, unsigned long long int *seed, MORSE_sequence_t *sequence, MORSE_request_t * *request, int *info) -{ *info = MORSE_zplgsy_Tile_Async(*bump, A, *seed, sequence, *request); } +void MORSE_ZPLGSY_TILE_ASYNC(MORSE_Complex64_t *bump, MORSE_enum *uplo, MORSE_desc_t *A, unsigned long long int *seed, MORSE_sequence_t *sequence, MORSE_request_t * *request, int *info) +{ *info = MORSE_zplgsy_Tile_Async(*bump, *uplo, A, *seed, sequence, *request); } void MORSE_ZPLRNT_TILE_ASYNC(MORSE_desc_t *A, unsigned long long int *seed, MORSE_sequence_t *sequence, MORSE_request_t * *request, int *info) { *info = MORSE_zplrnt_Tile_Async(A, *seed, sequence, *request); } diff --git a/control/morse_zf90.F90 b/control/morse_zf90.F90 index e544868ba..78c4631dd 100644 --- a/control/morse_zf90.F90 +++ b/control/morse_zf90.F90 @@ -774,12 +774,13 @@ module morse_z #if defined(PRECISION_z) || defined(PRECISION_c) interface - function MORSE_zplghe_c(bump,N,A,LDA,seed) & + function MORSE_zplghe_c(bump,uplo,N,A,LDA,seed) & & bind(c, name='MORSE_zplghe') use iso_c_binding implicit none integer(kind=c_int) :: MORSE_zplghe_c real(kind=c_double), value :: bump + integer(kind=c_int), value :: uplo integer(kind=c_int), value :: N type(c_ptr), value :: A integer(kind=c_int), value :: LDA @@ -789,12 +790,13 @@ module morse_z #endif interface - function MORSE_zplgsy_c(bump,N,A,LDA,seed) & + function MORSE_zplgsy_c(bump,uplo,N,A,LDA,seed) & & bind(c, name='MORSE_zplgsy') use iso_c_binding implicit none integer(kind=c_int) :: MORSE_zplgsy_c complex(kind=c_double_complex), value :: bump + integer(kind=c_int), value :: uplo integer(kind=c_int), value :: N type(c_ptr), value :: A integer(kind=c_int), value :: LDA @@ -1600,12 +1602,13 @@ module morse_z #if defined(PRECISION_z) || defined(PRECISION_c) interface - function MORSE_zplghe_Tile_c(bump,A,seed) & + function MORSE_zplghe_Tile_c(bump,uplo,A,seed) & & bind(c, name='MORSE_zplghe_Tile') use iso_c_binding implicit none integer(kind=c_int) :: MORSE_zplghe_Tile_c real(kind=c_double), value :: bump + integer(kind=c_int), value :: uplo type(c_ptr), value :: A integer(kind=c_long_long), value :: seed end function MORSE_zplghe_Tile_c @@ -1613,12 +1616,13 @@ module morse_z #endif interface - function MORSE_zplgsy_Tile_c(bump,A,seed) & + function MORSE_zplgsy_Tile_c(bump,uplo,A,seed) & & bind(c, name='MORSE_zplgsy_Tile') use iso_c_binding implicit none integer(kind=c_int) :: MORSE_zplgsy_Tile_c complex(kind=c_double_complex), value :: bump + integer(kind=c_int), value :: uplo type(c_ptr), value :: A integer(kind=c_long_long), value :: seed end function MORSE_zplgsy_Tile_c @@ -2415,12 +2419,13 @@ module morse_z #if defined(PRECISION_z) || defined(PRECISION_c) interface - function MORSE_zplghe_Tile_Async_c(bump,A,seed,sequence,request) & + function MORSE_zplghe_Tile_Async_c(bump,uplo,A,seed,sequence,request) & & bind(c, name='MORSE_zplghe_Tile_Async') use iso_c_binding implicit none integer(kind=c_int) :: MORSE_zplghe_Tile_Async_c real(kind=c_double), value :: bump + integer(kind=c_int), value :: uplo type(c_ptr), value :: A integer(kind=c_long_long), value :: seed type(c_ptr), value :: sequence @@ -2430,12 +2435,13 @@ module morse_z #endif interface - function MORSE_zplgsy_Tile_Async_c(bump,A,seed,sequence,request) & + function MORSE_zplgsy_Tile_Async_c(bump,uplo,A,seed,sequence,request) & & bind(c, name='MORSE_zplgsy_Tile_Async') use iso_c_binding implicit none integer(kind=c_int) :: MORSE_zplgsy_Tile_Async_c complex(kind=c_double_complex), value :: bump + integer(kind=c_int), value :: uplo type(c_ptr), value :: A integer(kind=c_long_long), value :: seed type(c_ptr), value :: sequence @@ -3472,11 +3478,12 @@ module morse_z end subroutine MORSE_zlauum #if defined(PRECISION_z) || defined(PRECISION_c) - subroutine MORSE_zplghe(bump,N,A,LDA,seed,info) + subroutine MORSE_zplghe(bump,uplo,N,A,LDA,seed,info) use iso_c_binding implicit none integer(kind=c_int), intent(out) :: info real(kind=c_double), intent(in) :: bump + integer(kind=c_int), intent(in) :: uplo integer(kind=c_int), intent(in) :: N integer(kind=c_int), intent(in) :: LDA integer(kind=c_long_long), intent(in) :: seed @@ -3485,11 +3492,12 @@ module morse_z end subroutine MORSE_zplghe #endif - subroutine MORSE_zplgsy(bump,N,A,LDA,seed,info) + subroutine MORSE_zplgsy(bump,uplo,N,A,LDA,seed,info) use iso_c_binding implicit none integer(kind=c_int), intent(out) :: info complex(kind=c_double_complex), intent(in) :: bump + integer(kind=c_int), intent(in) :: uplo integer(kind=c_int), intent(in) :: N integer(kind=c_int), intent(in) :: LDA integer(kind=c_long_long), intent(in) :: seed @@ -4207,22 +4215,24 @@ module morse_z end subroutine MORSE_zlauum_Tile #if defined(PRECISION_z) || defined(PRECISION_c) - subroutine MORSE_zplghe_Tile(bump,A,seed,info) + subroutine MORSE_zplghe_Tile(bump,uplo,A,seed,info) use iso_c_binding implicit none integer(kind=c_int), intent(out) :: info real(kind=c_double), intent(in) :: bump + integer(kind=c_int), intent(in) :: uplo integer(kind=c_long_long), intent(in) :: seed type(c_ptr), value :: A ! Arg managed by MORSE: opaque to Fortran info = MORSE_zplghe_Tile_c(bump,A,seed) end subroutine MORSE_zplghe_Tile #endif - subroutine MORSE_zplgsy_Tile(bump,A,seed,info) + subroutine MORSE_zplgsy_Tile(bump,uplo,A,seed,info) use iso_c_binding implicit none integer(kind=c_int), intent(out) :: info complex(kind=c_double_complex), intent(in) :: bump + integer(kind=c_int), intent(in) :: uplo integer(kind=c_long_long), intent(in) :: seed type(c_ptr), value :: A ! Arg managed by MORSE: opaque to Fortran info = MORSE_zplgsy_Tile_c(bump,A,seed) @@ -4931,11 +4941,12 @@ module morse_z end subroutine MORSE_zlauum_Tile_Async #if defined(PRECISION_z) || defined(PRECISION_c) - subroutine MORSE_zplghe_Tile_Async(bump,A,seed,sequence,request,info) + subroutine MORSE_zplghe_Tile_Async(bump,uplo,A,seed,sequence,request,info) use iso_c_binding implicit none integer(kind=c_int), intent(out) :: info real(kind=c_double), intent(in) :: bump + integer(kind=c_int), intent(in) :: uplo integer(kind=c_long_long), intent(in) :: seed type(c_ptr), value :: A ! Arg managed by MORSE: opaque to Fortran type(c_ptr), value :: sequence ! Arg managed by MORSE: opaque to Fortran @@ -4944,11 +4955,12 @@ module morse_z end subroutine MORSE_zplghe_Tile_Async #endif - subroutine MORSE_zplgsy_Tile_Async(bump,A,seed,sequence,request,info) + subroutine MORSE_zplgsy_Tile_Async(bump,uplo,A,seed,sequence,request,info) use iso_c_binding implicit none integer(kind=c_int), intent(out) :: info complex(kind=c_double_complex), intent(in) :: bump + integer(kind=c_int), intent(in) :: uplo integer(kind=c_long_long), intent(in) :: seed type(c_ptr), value :: A ! Arg managed by MORSE: opaque to Fortran type(c_ptr), value :: sequence ! Arg managed by MORSE: opaque to Fortran diff --git a/docs/texinfo/chapters/using.texi b/docs/texinfo/chapters/using.texi index f42acdb6b..c8bb2125c 100644 --- a/docs/texinfo/chapters/using.texi +++ b/docs/texinfo/chapters/using.texi @@ -949,11 +949,12 @@ int MORSE_zlaset(MORSE_enum uplo, int M, int N, MORSE_Complex64_t alpha, int MORSE_zlauum(MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA); #ifdef COMPLEX -int MORSE_zplghe( double bump, int N, MORSE_Complex64_t *A, int LDA, +int MORSE_zplghe( double bump, MORSE_enum uplo, int N, + MORSE_Complex64_t *A, int LDA, unsigned long long int seed ); #endif -int MORSE_zplgsy( MORSE_Complex64_t bump, int N, +int MORSE_zplgsy( MORSE_Complex64_t bump, MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA, unsigned long long int seed ); @@ -1102,11 +1103,11 @@ int MORSE_zlaset_Tile(MORSE_enum uplo, MORSE_Complex64_t alpha, int MORSE_zlauum_Tile(MORSE_enum uplo, MORSE_desc_t *A); #ifdef COMPLEX -int MORSE_zplghe_Tile(double bump, MORSE_desc_t *A, +int MORSE_zplghe_Tile(double bump, MORSE_enum uplo, MORSE_desc_t *A, unsigned long long int seed); #endif -int MORSE_zplgsy_Tile(MORSE_Complex64_t bump, MORSE_desc_t *A, +int MORSE_zplgsy_Tile(MORSE_Complex64_t bump, MORSE_enum uplo, MORSE_desc_t *A, unsigned long long int seed ); int MORSE_zplrnt_Tile(MORSE_desc_t *A, unsigned long long int seed ); @@ -1284,13 +1285,13 @@ int MORSE_zlauum_Tile_Async(MORSE_enum uplo, MORSE_desc_t *A, MORSE_request_t *request); #ifdef COMPLEX -int MORSE_zplghe_Tile_Async(double bump, MORSE_desc_t *A, +int MORSE_zplghe_Tile_Async(double bump, MORSE_enum uplo, MORSE_desc_t *A, unsigned long long int seed, MORSE_sequence_t *sequence, MORSE_request_t *request ); #endif -int MORSE_zplgsy_Tile_Async(MORSE_Complex64_t bump, MORSE_desc_t *A, +int MORSE_zplgsy_Tile_Async(MORSE_Complex64_t bump, MORSE_enum uplo, MORSE_desc_t *A, unsigned long long int seed, MORSE_sequence_t *sequence, MORSE_request_t *request ); diff --git a/example/basic_zposv/zposv_morse_functions.c b/example/basic_zposv/zposv_morse_functions.c index cc53929f1..a12805578 100644 --- a/example/basic_zposv/zposv_morse_functions.c +++ b/example/basic_zposv/zposv_morse_functions.c @@ -68,7 +68,7 @@ int main(int argc, char *argv[]) { NB, NB, NB*NB, N, N, 0, 0, N, N, 1, 1); /* generate A matrix with random values such that it is hermitian */ - MORSE_zplghe_Tile( (double)N, descA, 51 ); + MORSE_zplghe_Tile( (double)N, MorseUpperLower, descA, 51 ); /* generate RHS */ MORSE_Desc_Create(&descB, NULL, MorseComplexDouble, diff --git a/example/basic_zposv/zposv_users_functions.c b/example/basic_zposv/zposv_users_functions.c index b8580db53..c717deb63 100644 --- a/example/basic_zposv/zposv_users_functions.c +++ b/example/basic_zposv/zposv_users_functions.c @@ -98,7 +98,7 @@ int main(int argc, char *argv[]) { user_getrankof_2d); /* generate A matrix with random values such that it is hermitian */ - MORSE_zplghe_Tile( (double)N, descA, 51 ); + MORSE_zplghe_Tile( (double)N, MorseUpperLower, descA, 51 ); /* generate RHS */ MORSE_Desc_Create(&descB, NULL, MorseComplexDouble, diff --git a/example/lapack_to_morse/step1.c b/example/lapack_to_morse/step1.c index 24ff72645..cb87ad8ea 100644 --- a/example/lapack_to_morse/step1.c +++ b/example/lapack_to_morse/step1.c @@ -105,7 +105,7 @@ int main(int argc, char *argv[]) { PASTE_CODE_ALLOCATE_MATRIX( Acpy, double, N, N ); /* generate A matrix with random values such that it is spd */ - MORSE_dplgsy( (double)N, N, A, N, 51 ); + MORSE_dplgsy( (double)N, MorseUpperLower, N, A, N, 51 ); /* generate RHS */ MORSE_dplrnt( N, NRHS, B, N, 5673 ); diff --git a/example/lapack_to_morse/step2.c b/example/lapack_to_morse/step2.c index 540c437f8..9f211fe4f 100644 --- a/example/lapack_to_morse/step2.c +++ b/example/lapack_to_morse/step2.c @@ -148,7 +148,7 @@ int main(int argc, char *argv[]) { * precise partitionning called 2D cyclic (see the documentation) */ /* generate A matrix with random values such that it is spd */ - MORSE_dplgsy_Tile( (double)N, descA, 51 ); + MORSE_dplgsy_Tile( (double)N, MorseUpperLower, descA, 51 ); /* generate RHS */ MORSE_dplrnt_Tile( descB, 5673 ); diff --git a/example/lapack_to_morse/step3.c b/example/lapack_to_morse/step3.c index 4677bd55f..f9237f7f5 100644 --- a/example/lapack_to_morse/step3.c +++ b/example/lapack_to_morse/step3.c @@ -131,7 +131,7 @@ int main(int argc, char *argv[]) { NB, NB, NB*NB, N, N, 0, 0, N, N, 1, 1); /* generate A matrix with random values such that it is spd */ - MORSE_dplgsy_Tile( (double)N, descA, 51 ); + MORSE_dplgsy_Tile( (double)N, MorseUpperLower, descA, 51 ); /* generate RHS */ MORSE_dplrnt_Tile( descB, 5673 ); diff --git a/example/lapack_to_morse/step4.c b/example/lapack_to_morse/step4.c index 0e57339ed..269a7caf8 100644 --- a/example/lapack_to_morse/step4.c +++ b/example/lapack_to_morse/step4.c @@ -111,7 +111,7 @@ int main(int argc, char *argv[]) { NB, NB, NB*NB, N, N, 0, 0, N, N, 1, 1); /* generate A matrix with random values such that it is spd */ - MORSE_dplgsy_Tile( (double)N, descA, 51 ); + MORSE_dplgsy_Tile( (double)N, MorseUpperLower, descA, 51 ); /* generate RHS */ MORSE_dplrnt_Tile( descB, 5673 ); diff --git a/example/lapack_to_morse/step5.c b/example/lapack_to_morse/step5.c index 7017277ab..3177f09fb 100644 --- a/example/lapack_to_morse/step5.c +++ b/example/lapack_to_morse/step5.c @@ -115,7 +115,7 @@ int main(int argc, char *argv[]) { NB, NB, NB*NB, N, N, 0, 0, N, N, 1, 1); /* generate A matrix with random values such that it is spd */ - MORSE_dplgsy_Tile( (double)N, descA, 51 ); + MORSE_dplgsy_Tile( (double)N, MorseUpperLower, descA, 51 ); /* generate RHS */ MORSE_dplrnt_Tile( descB, 5673 ); diff --git a/example/lapack_to_morse/step6.c b/example/lapack_to_morse/step6.c index a9755768b..325a0fd8b 100644 --- a/example/lapack_to_morse/step6.c +++ b/example/lapack_to_morse/step6.c @@ -137,7 +137,7 @@ int main(int argc, char *argv[]) { GRID_P, GRID_Q); /* generate A matrix with random values such that it is spd */ - MORSE_dplgsy_Tile( (double)N, descA, 51 ); + MORSE_dplgsy_Tile( (double)N, MorseUpperLower, descA, 51 ); /* generate RHS */ MORSE_dplrnt_Tile( descB, 5673 ); diff --git a/example/link_chameleon/link_chameleon.c b/example/link_chameleon/link_chameleon.c index d13e2b1da..b38b12d50 100644 --- a/example/link_chameleon/link_chameleon.c +++ b/example/link_chameleon/link_chameleon.c @@ -273,7 +273,7 @@ int main(int argc, char *argv[]) { PASTE_CODE_ALLOCATE_MATRIX( Acpy, double, N, N ); /* generate A matrix with random values such that it is spd */ - MORSE_dplgsy( (double)N, N, A, N, 51 ); + MORSE_dplgsy( (double)N, MorseUpperLower, N, A, N, 51 ); /* generate RHS */ MORSE_dplrnt( N, NRHS, B, N, 5673 ); diff --git a/example/out_of_core/out_of_core.c b/example/out_of_core/out_of_core.c index 7f95bf6c5..cf468ad45 100644 --- a/example/out_of_core/out_of_core.c +++ b/example/out_of_core/out_of_core.c @@ -112,7 +112,7 @@ int main(int argc, char *argv[]) { NB, NB, NB*NB, N, N, 0, 0, N, N, 1, 1); /* generate A matrix with random values such that it is spd */ - MORSE_dplgsy_Tile( (double)N, descA, 51 ); + MORSE_dplgsy_Tile( (double)N, MorseUpperLower, descA, 51 ); /* generate RHS */ MORSE_dplrnt_Tile( descB, 5673 ); diff --git a/include/morse_z.h b/include/morse_z.h index aa9b0c7f1..8335b8925 100644 --- a/include/morse_z.h +++ b/include/morse_z.h @@ -86,11 +86,9 @@ int MORSE_zlaset(MORSE_enum uplo, int M, int N, MORSE_Complex64_t alpha, MORSE_C //int MORSE_zlaswpc(int N, MORSE_Complex64_t *A, int LDA, int K1, int K2, int *IPIV, int INCX); int MORSE_zlauum(MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA); #ifdef COMPLEX -int MORSE_zplghe( double bump, int N, MORSE_Complex64_t *A, int LDA, unsigned long long int seed ); -int MORSE_zplghe2( double bump, int N, MORSE_Complex64_t *A, int LDA, unsigned long long int seed, MORSE_enum uplo ); +int MORSE_zplghe( double bump, MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA, unsigned long long int seed ); #endif -int MORSE_zplgsy( MORSE_Complex64_t bump, int N, MORSE_Complex64_t *A, int LDA, unsigned long long int seed ); -int MORSE_zplgsy2( MORSE_Complex64_t bump, int N, MORSE_Complex64_t *A, int LDA, unsigned long long int seed, MORSE_enum uplo ); +int MORSE_zplgsy( MORSE_Complex64_t bump, MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA, unsigned long long int seed ); int MORSE_zplrnt( int M, int N, MORSE_Complex64_t *A, int LDA, unsigned long long int seed ); int MORSE_zposv(MORSE_enum uplo, int N, int NRHS, MORSE_Complex64_t *A, int LDA, MORSE_Complex64_t *B, int LDB); int MORSE_zpotrf(MORSE_enum uplo, int N, MORSE_Complex64_t *A, int LDA); @@ -164,11 +162,9 @@ int MORSE_zlaset_Tile(MORSE_enum uplo, MORSE_Complex64_t alpha, MORSE_Complex64_ //int MORSE_zlaswpc_Tile(MORSE_desc_t *A, int K1, int K2, int *IPIV, int INCX); int MORSE_zlauum_Tile(MORSE_enum uplo, MORSE_desc_t *A); #ifdef COMPLEX -int MORSE_zplghe_Tile(double bump, MORSE_desc_t *A, unsigned long long int seed ); -int MORSE_zplghe2_Tile(double bump, MORSE_desc_t *A, unsigned long long int seed, MORSE_enum uplo); +int MORSE_zplghe_Tile(double bump, MORSE_enum uplo, MORSE_desc_t *A, unsigned long long int seed ); #endif -int MORSE_zplgsy_Tile(MORSE_Complex64_t bump, MORSE_desc_t *A, unsigned long long int seed ); -int MORSE_zplgsy2_Tile(MORSE_Complex64_t bump, MORSE_desc_t *A, unsigned long long int seed, MORSE_enum uplo ); +int MORSE_zplgsy_Tile(MORSE_Complex64_t bump, MORSE_enum uplo, MORSE_desc_t *A, unsigned long long int seed ); int MORSE_zplrnt_Tile(MORSE_desc_t *A, unsigned long long int seed ); int MORSE_zposv_Tile(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B); int MORSE_zpotrf_Tile(MORSE_enum uplo, MORSE_desc_t *A); @@ -239,11 +235,9 @@ int MORSE_zlaset_Tile_Async(MORSE_enum uplo, MORSE_Complex64_t alpha, MORSE_Comp //int MORSE_zlaswpc_Tile_Async(MORSE_desc_t *A, int K1, int K2, int *IPIV, int INCX, MORSE_sequence_t *sequence, MORSE_request_t *request); int MORSE_zlauum_Tile_Async(MORSE_enum uplo, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request); #ifdef COMPLEX -int MORSE_zplghe_Tile_Async(double bump, MORSE_desc_t *A, unsigned long long int seed, MORSE_sequence_t *sequence, MORSE_request_t *request ); -int MORSE_zplghe2_Tile_Async(double bump, MORSE_desc_t *A, unsigned long long int seed, MORSE_enum uplo, MORSE_sequence_t *sequence, MORSE_request_t *request ); +int MORSE_zplghe_Tile_Async(double bump, MORSE_enum uplo, MORSE_desc_t *A, unsigned long long int seed, MORSE_sequence_t *sequence, MORSE_request_t *request ); #endif -int MORSE_zplgsy_Tile_Async(MORSE_Complex64_t bump, MORSE_desc_t *A, unsigned long long int seed, MORSE_sequence_t *sequence, MORSE_request_t *request ); -int MORSE_zplgsy2_Tile_Async(MORSE_Complex64_t bump, MORSE_desc_t *A, unsigned long long int seed, MORSE_enum uplo, MORSE_sequence_t *sequence, MORSE_request_t *request ); +int MORSE_zplgsy_Tile_Async(MORSE_Complex64_t bump, MORSE_enum uplo, MORSE_desc_t *A, unsigned long long int seed, MORSE_sequence_t *sequence, MORSE_request_t *request ); int MORSE_zplrnt_Tile_Async(MORSE_desc_t *A, unsigned long long int seed, MORSE_sequence_t *sequence, MORSE_request_t *request ); int MORSE_zposv_Tile_Async(MORSE_enum uplo, MORSE_desc_t *A, MORSE_desc_t *B, MORSE_sequence_t *sequence, MORSE_request_t *request); int MORSE_zpotrf_Tile_Async(MORSE_enum uplo, MORSE_desc_t *A, MORSE_sequence_t *sequence, MORSE_request_t *request); diff --git a/testing/testing_zhemm.c b/testing/testing_zhemm.c index 83f4927e5..c0659d888 100644 --- a/testing/testing_zhemm.c +++ b/testing/testing_zhemm.c @@ -102,7 +102,7 @@ int testing_zhemm(int argc, char **argv) */ /* Initialize A */ - MORSE_zplghe( (double)0., MNmax, A, LDA, 51 ); + MORSE_zplghe( (double)0., MorseUpperLower, MNmax, A, LDA, 51 ); /* Initialize B */ LAPACKE_zlarnv_work(IONE, ISEED, LDBxN, B); diff --git a/testing/testing_zher2k.c b/testing/testing_zher2k.c index 117150f82..750622248 100644 --- a/testing/testing_zher2k.c +++ b/testing/testing_zher2k.c @@ -107,7 +107,7 @@ int testing_zher2k(int argc, char **argv) LAPACKE_zlarnv_work(IONE, ISEED, LDBxK, B); /* Initialize C */ - MORSE_zplghe( (double)0., N, C, LDC, 51 ); + MORSE_zplghe( (double)0., MorseUpperLower, N, C, LDC, 51 ); for (u=0; u<2; u++) { for (t=0; t<3; t++) { diff --git a/testing/testing_zherk.c b/testing/testing_zherk.c index a3aeb4820..5805e00ea 100644 --- a/testing/testing_zherk.c +++ b/testing/testing_zherk.c @@ -101,7 +101,7 @@ int testing_zherk(int argc, char **argv) LAPACKE_zlarnv_work(IONE, ISEED, LDAxK, A); /* Initialize C */ - MORSE_zplgsy( (double)0., N, C, LDC, 51 ); + MORSE_zplgsy( (double)0., MorseUpperLower, N, C, LDC, 51 ); for (u=0; u<2; u++) { for (t=0; t<3; t++) { diff --git a/testing/testing_zposv.c b/testing/testing_zposv.c index e439f0957..f7fc89af6 100644 --- a/testing/testing_zposv.c +++ b/testing/testing_zposv.c @@ -210,8 +210,8 @@ int testing_zposv(int argc, char **argv) * TESTING ZPOSV */ - /* Initialize A1 and A2 for Symmetric Positif Matrix */ - MORSE_zplghe( (double)N, N, A1, LDA, 51 ); + /* Initialize A1 and A2 for Symmetric Positive Matrix */ + MORSE_zplghe( (double)N, MorseUpperLower, N, A1, LDA, 51 ); MORSE_zlacpy( MorseUpperLower, N, N, A1, LDA, A2, LDA ); /* Initialize B1 and B2 */ @@ -250,7 +250,7 @@ int testing_zposv(int argc, char **argv) */ /* Initialize A1 and A2 for Symmetric Positif Matrix */ - MORSE_zplghe( (double)N, N, A1, LDA, 51 ); + MORSE_zplghe( (double)N, MorseUpperLower, N, A1, LDA, 51 ); MORSE_zlacpy( MorseUpperLower, N, N, A1, LDA, A2, LDA ); /* Initialize B1 and B2 */ @@ -290,7 +290,7 @@ int testing_zposv(int argc, char **argv) */ /* Initialize A1 and A2 for Symmetric Positif Matrix */ - MORSE_zplghe( (double)N, N, A1, LDA, 51 ); + MORSE_zplghe( (double)N, MorseUpperLower, N, A1, LDA, 51 ); MORSE_zlacpy( MorseUpperLower, N, N, A1, LDA, A2, LDA ); /* Initialize B1 and B2 */ diff --git a/testing/testing_zpotri.c b/testing/testing_zpotri.c index ec0c4991e..22c42b565 100644 --- a/testing/testing_zpotri.c +++ b/testing/testing_zpotri.c @@ -213,7 +213,7 @@ int testing_zpotri(int argc, char **argv) */ /* Initialize A1 and A2 for Symmetric Positif Matrix */ - MORSE_zplghe( (double)N, N, A1, LDA, 51 ); + MORSE_zplghe( (double)N, MorseUpperLower, N, A1, LDA, 51 ); MORSE_zlacpy( MorseUpperLower, N, N, A1, LDA, A2, LDA ); printf("\n"); diff --git a/testing/testing_zsymm.c b/testing/testing_zsymm.c index 54fb4b34d..ca66d4a43 100644 --- a/testing/testing_zsymm.c +++ b/testing/testing_zsymm.c @@ -102,7 +102,7 @@ int testing_zsymm(int argc, char **argv) */ /* Initialize A */ - MORSE_zplgsy( (double)0., MNmax, A, LDA, 51 ); + MORSE_zplgsy( (double)0., MorseUpperLower, MNmax, A, LDA, 51 ); /* Initialize B */ LAPACKE_zlarnv_work(IONE, ISEED, LDBxN, B); diff --git a/testing/testing_zsyr2k.c b/testing/testing_zsyr2k.c index 1c440504a..366e9b1ad 100644 --- a/testing/testing_zsyr2k.c +++ b/testing/testing_zsyr2k.c @@ -107,7 +107,7 @@ int testing_zsyr2k(int argc, char **argv) LAPACKE_zlarnv_work(IONE, ISEED, LDBxK, B); /* Initialize C */ - MORSE_zplgsy( (double)0., N, C, LDC, 51 ); + MORSE_zplgsy( (double)0., MorseUpperLower, N, C, LDC, 51 ); for (u=0; u<2; u++) { for (t=0; t<2; t++) { diff --git a/testing/testing_zsyrk.c b/testing/testing_zsyrk.c index 0db367d1d..1f63117cf 100644 --- a/testing/testing_zsyrk.c +++ b/testing/testing_zsyrk.c @@ -101,7 +101,7 @@ int testing_zsyrk(int argc, char **argv) LAPACKE_zlarnv_work(IONE, ISEED, LDAxK, A); /* Initialize C */ - MORSE_zplgsy( (double)0., N, C, LDC, 51 ); + MORSE_zplgsy( (double)0., MorseUpperLower, N, C, LDC, 51 ); for (u=0; u<2; u++) { for (t=0; t<2; t++) { diff --git a/timing/time_zposv.c b/timing/time_zposv.c index 69b73daa0..979a2f530 100644 --- a/timing/time_zposv.c +++ b/timing/time_zposv.c @@ -38,7 +38,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) PASTE_CODE_ALLOCATE_MATRIX( X, 1, MORSE_Complex64_t, LDB, NRHS ); /* Initialiaze Data */ - MORSE_zplghe((double)N, N, A, LDA, 51 ); + MORSE_zplghe((double)N, MorseUpperLower, N, A, LDA, 51 ); MORSE_zplrnt( N, NRHS, X, LDB, 5673 ); /* Save A and b */ diff --git a/timing/time_zposv_tile.c b/timing/time_zposv_tile.c index 0670620fa..205e06ae8 100644 --- a/timing/time_zposv_tile.c +++ b/timing/time_zposv_tile.c @@ -39,7 +39,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) PASTE_CODE_ALLOCATE_MATRIX_TILE( descB, check, MORSE_Complex64_t, MorseComplexDouble, LDB, N, NRHS ); /* Initialize AT and bT for Symmetric Positif Matrix */ - MORSE_zplghe_Tile((double)N, descA, 51 ); + MORSE_zplghe_Tile((double)N, MorseUpperLower, descA, 51 ); MORSE_zplrnt_Tile( descX, 7732 ); /* Save AT and bT for check */ diff --git a/timing/time_zpotrf.c b/timing/time_zpotrf.c index 18ffaeebd..0f4d46619 100644 --- a/timing/time_zpotrf.c +++ b/timing/time_zpotrf.c @@ -37,7 +37,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) PASTE_CODE_ALLOCATE_MATRIX( A, 1, MORSE_Complex64_t, LDA, N ); /* Initialiaze Data */ - MORSE_zplghe( (double)N, N, A, LDA, 51 ); + MORSE_zplghe( (double)N, MorseUpperLower, N, A, LDA, 51 ); /* Save A and b */ PASTE_CODE_ALLOCATE_COPY( A2, check, MORSE_Complex64_t, A, LDA, N ); diff --git a/timing/time_zpotrf_tile.c b/timing/time_zpotrf_tile.c index 11dedafb3..14fdc32fc 100644 --- a/timing/time_zpotrf_tile.c +++ b/timing/time_zpotrf_tile.c @@ -37,7 +37,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) PASTE_CODE_ALLOCATE_MATRIX_TILE( descB, check, MORSE_Complex64_t, MorseComplexDouble, LDB, N, NRHS ); PASTE_CODE_ALLOCATE_MATRIX_TILE( descAC, check, MORSE_Complex64_t, MorseComplexDouble, LDA, N, N ); PASTE_CODE_ALLOCATE_MATRIX_TILE( descX, check, MORSE_Complex64_t, MorseComplexDouble, LDB, N, NRHS ); - MORSE_zplghe_Tile( (double)N, descA, 51 ); + MORSE_zplghe_Tile( (double)N, MorseUpperLower, descA, 51 ); /* Save A for check */ if (check == 1){ diff --git a/timing/time_zpotri_tile.c b/timing/time_zpotri_tile.c index 8941c0608..a8e8bcab4 100644 --- a/timing/time_zpotri_tile.c +++ b/timing/time_zpotri_tile.c @@ -42,7 +42,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) * It's done in static to avoid having the same sequence than one * the function we want to trace */ - MORSE_zplghe_Tile( (double)N, descA, 51 ); + MORSE_zplghe_Tile( (double)N, MorseUpperLower, descA, 51 ); /* MORSE ZPOTRF / ZTRTRI / ZLAUUM */ /* diff --git a/timing/time_zpotrs_tile.c b/timing/time_zpotrs_tile.c index bf7a813a1..c50e86b05 100644 --- a/timing/time_zpotrs_tile.c +++ b/timing/time_zpotrs_tile.c @@ -38,7 +38,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) PASTE_CODE_ALLOCATE_MATRIX_TILE( descB, check, MORSE_Complex64_t, MorseComplexDouble, LDB, N, NRHS ); PASTE_CODE_ALLOCATE_MATRIX_TILE( descAC, check, MORSE_Complex64_t, MorseComplexDouble, LDA, N, N ); PASTE_CODE_ALLOCATE_MATRIX_TILE( descX, check, MORSE_Complex64_t, MorseComplexDouble, LDB, N, NRHS ); - MORSE_zplghe_Tile( (double)N, descA, 51 ); + MORSE_zplghe_Tile( (double)N, MorseUpperLower, descA, 51 ); /* Save A for check */ if (check == 1){ diff --git a/timing/time_zsytrf_tile.c b/timing/time_zsytrf_tile.c index 26b9f0852..6c1d880ed 100644 --- a/timing/time_zsytrf_tile.c +++ b/timing/time_zsytrf_tile.c @@ -37,7 +37,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) PASTE_CODE_ALLOCATE_MATRIX_TILE( descB, check, MORSE_Complex64_t, MorseComplexDouble, LDB, N, NRHS ); PASTE_CODE_ALLOCATE_MATRIX_TILE( descAC, check, MORSE_Complex64_t, MorseComplexDouble, LDA, N, N ); PASTE_CODE_ALLOCATE_MATRIX_TILE( descX, check, MORSE_Complex64_t, MorseComplexDouble, LDB, N, NRHS ); - MORSE_zplgsy_Tile( (double)N, descA, 51 ); + MORSE_zplgsy_Tile( (double)N, MorseUpperLower, descA, 51 ); /* Save A for check */ if (check == 1){ diff --git a/timing/time_ztrsm.c b/timing/time_ztrsm.c index 0b579f4f6..1216bb197 100644 --- a/timing/time_ztrsm.c +++ b/timing/time_ztrsm.c @@ -39,7 +39,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_) PASTE_CODE_ALLOCATE_MATRIX( B2, check, MORSE_Complex64_t, LDB, NRHS); /* Initialiaze Data */ - MORSE_zplgsy( (MORSE_Complex64_t)N, N, A, LDA, 453 ); + MORSE_zplgsy( (MORSE_Complex64_t)N, MorseUpperLower, N, A, LDA, 453 ); MORSE_zplrnt( N, NRHS, B, LDB, 5673 ); LAPACKE_zlarnv_work(1, ISEED, 1, &alpha); alpha = 10.; /*alpha * N / 2.;*/ -- GitLab