diff --git a/compute/pzgelqf_param.c b/compute/pzgelqf_param.c index bfe2c6d7342caa2b5c2d85f40a4056a98c41d990..4ab23160fb6e5b6ced1d4cc67bcd8fadcd58019a 100644 --- a/compute/pzgelqf_param.c +++ b/compute/pzgelqf_param.c @@ -83,8 +83,7 @@ void morse_pzgelqf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A, /* Initialisation of tiles */ - tiles = (int*)malloc((qrtree->mt)*sizeof(int)); - memset( tiles, 0, (qrtree->mt)*sizeof(int) ); + tiles = (int*)calloc(qrtree->mt, sizeof(int)); ws_worker *= sizeof(MORSE_Complex64_t); ws_host *= sizeof(MORSE_Complex64_t); @@ -140,9 +139,9 @@ void morse_pzgelqf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A, } /* Setting the order of the tiles */ - libhqr_treewalk(qrtree, k, tiles); + libhqr_walk_stepk( qrtree, k, tiles + (k+1) ); - for (i = k; i < A->nt-1; i++) { + for (i = k+1; i < A->nt; i++) { n = tiles[i]; p = qrtree->currpiv(qrtree, k, n); diff --git a/compute/pzgeqrf_param.c b/compute/pzgeqrf_param.c index feba0f364e0baf3139e8399e5ba0a7b40c09785b..945a07029ea0865a843836704f59d5c5c12e0e88 100644 --- a/compute/pzgeqrf_param.c +++ b/compute/pzgeqrf_param.c @@ -83,8 +83,7 @@ void morse_pzgeqrf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A, /* Initialisation of tiles */ - tiles = (int*)malloc((qrtree->mt)*sizeof(int)); - memset( tiles, 0, (qrtree->mt)*sizeof(int) ); + tiles = (int*)calloc(qrtree->mt, sizeof(int)); ws_worker *= sizeof(MORSE_Complex64_t); ws_host *= sizeof(MORSE_Complex64_t); @@ -139,9 +138,9 @@ void morse_pzgeqrf_param( const libhqr_tree_t *qrtree, MORSE_desc_t *A, } /* Setting the order of the tiles */ - libhqr_treewalk(qrtree, k, tiles); + libhqr_walk_stepk( qrtree, k, tiles + (k+1) ); - for (i = k; i < A->mt-1; i++) { + for (i = k+1; i < A->mt; i++) { m = tiles[i]; p = qrtree->currpiv(qrtree, k, m); diff --git a/compute/pzunglq_param.c b/compute/pzunglq_param.c index 91aad1791060ff1e2084772eff4f962abac1247f..4a5d7c21c60ea1bdf92997eb166cb630c612057e 100644 --- a/compute/pzunglq_param.c +++ b/compute/pzunglq_param.c @@ -79,8 +79,7 @@ void morse_pzunglq_param(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_des /* Initialisation of tiles */ - tiles = (int*)malloc((qrtree->mt)*sizeof(int)); - memset( tiles, 0, (qrtree->mt)*sizeof(int) ); + tiles = (int*)calloc( qrtree->mt, sizeof(int)); ws_worker *= sizeof(MORSE_Complex64_t); ws_host *= sizeof(MORSE_Complex64_t); @@ -96,9 +95,9 @@ void morse_pzunglq_param(const libhqr_tree_t *qrtree, MORSE_desc_t *A, MORSE_des ldak = BLKLDD(A, k); /* Setting the order of the tiles*/ - libhqr_treewalk(qrtree, k, tiles); + libhqr_walk_stepk(qrtree, k, tiles + (k+1)); - for (i = A->nt-2; i >= k; i--) { + for (i = A->nt-1; i > k; i--) { n = tiles[i]; p = qrtree->currpiv(qrtree, k, n); diff --git a/compute/pzungqr_param.c b/compute/pzungqr_param.c index eaa3b753d3347a07caebda51f19c635c4d68443c..d5a3169d71614a6413a9f91934a8c96a22f1e33d 100644 --- a/compute/pzungqr_param.c +++ b/compute/pzungqr_param.c @@ -85,8 +85,7 @@ void morse_pzungqr_param(const libhqr_tree_t *qrtree, /* Initialisation of tiles */ - tiles = (int*)malloc((qrtree->mt)*sizeof(int)); - memset( tiles, 0, (qrtree->mt)*sizeof(int) ); + tiles = (int*)calloc(qrtree->mt, sizeof(int)); ws_worker *= sizeof(MORSE_Complex64_t); ws_host *= sizeof(MORSE_Complex64_t); @@ -99,9 +98,9 @@ void morse_pzungqr_param(const libhqr_tree_t *qrtree, tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb; /* Setting the order of tiles */ - libhqr_treewalk(qrtree, k, tiles); + libhqr_walk_stepk(qrtree, k, tiles + (k+1)); - for (i = Q->mt - 2; i >= k; i--) { + for (i = Q->mt-1; i > k; i--) { m = tiles[i]; p = qrtree->currpiv(qrtree, k, m); diff --git a/compute/pzunmlq_param.c b/compute/pzunmlq_param.c index 1763d7fadbe8489939f11c8134ea9ae63ed4f48c..10731ba0534956c130c39c442850cb7e5e365084 100644 --- a/compute/pzunmlq_param.c +++ b/compute/pzunmlq_param.c @@ -81,8 +81,7 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree, #endif /* Initialisation of tiles */ - tiles = (int*)malloc((qrtree->mt)*sizeof(int)); - memset( tiles, 0, (qrtree->mt)*sizeof(int) ); + tiles = (int*)calloc( qrtree->mt, sizeof(int) ); ws_worker *= sizeof(MORSE_Complex64_t); ws_host *= sizeof(MORSE_Complex64_t); @@ -134,9 +133,9 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree, } /* Setting the order of the tiles*/ - libhqr_treewalk(qrtree, k, tiles); + libhqr_walk_stepk(qrtree, k, tiles + (k+1)); - for (i = k; i < A->nt-1; i++) { + for (i = k+1; i < A->nt; i++) { m = tiles[i]; p = qrtree->currpiv(qrtree, k, m); @@ -187,9 +186,9 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree, ldak = BLKLDD(A, k); /* Setting the order of the tiles*/ - libhqr_treewalk(qrtree, k, tiles); + libhqr_walk_stepk(qrtree, k, tiles + (k+1)); - for (i = A->nt-2; i >= k; i--) { + for (i = A->nt-1; i > k; i--) { m = tiles[i]; p = qrtree->currpiv(qrtree, k, m); @@ -272,9 +271,9 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree, ldak = BLKLDD(A, k); /* Setting the order of the tiles*/ - libhqr_treewalk(qrtree, k, tiles); + libhqr_walk_stepk(qrtree, k, tiles + (k+1)); - for (i = A->nt-2; i >= k; i--) { + for (i = A->nt-1; i > k; i--) { n = tiles[i]; p = qrtree->currpiv(qrtree, k, n); @@ -389,9 +388,9 @@ void morse_pzunmlq_param(const libhqr_tree_t *qrtree, } } /* Setting the order of tiles */ - libhqr_treewalk(qrtree, k, tiles); + libhqr_walk_stepk(qrtree, k, tiles + (k+1)); - for (i = k; i < A->nt-1; i++) { + for (i = k+1; i < A->nt; i++) { n = tiles[i]; p = qrtree->currpiv(qrtree, k, n); diff --git a/compute/pzunmqr_param.c b/compute/pzunmqr_param.c index ab5f3a7fb39a4fec9d8486fa75b4c76d9598ea11..6dc3e7dacb25e2516d2c8f887a0f79243216e253 100644 --- a/compute/pzunmqr_param.c +++ b/compute/pzunmqr_param.c @@ -81,8 +81,7 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree, /* Initialisation of tiles */ - tiles = (int*)malloc((qrtree->mt)*sizeof(int)); - memset( tiles, 0, (qrtree->mt)*sizeof(int) ); + tiles = (int*)calloc( qrtree->mt, sizeof(int) ); ws_worker *= sizeof(MORSE_Complex64_t); ws_host *= sizeof(MORSE_Complex64_t); @@ -133,9 +132,9 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree, } } /* Setting the order of the tiles*/ - libhqr_treewalk(qrtree, k, tiles); + libhqr_walk_stepk(qrtree, k, tiles + (k+1)); - for (i = k; i < B->mt-1; i++) { + for (i = k+1; i < B->mt; i++) { m = tiles[i]; p = qrtree->currpiv(qrtree, k, m); @@ -182,9 +181,9 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree, tempkn = k == A->nt-1 ? A->n-k*A->nb : A->nb; /* Setting the order of the tiles*/ - libhqr_treewalk(qrtree, k, tiles); + libhqr_walk_stepk(qrtree, k, tiles + (k+1)); - for (i = B->mt-2; i >= k; i--) { + for (i = B->mt-1; i > k; i--) { m = tiles[i]; p = qrtree->currpiv(qrtree, k, m); @@ -269,9 +268,9 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree, tempkn = k == A->nt-1 ? A->n - k*A->nb : A->nb; /* Setting the order of tiles */ - libhqr_treewalk(qrtree, k, tiles); + libhqr_walk_stepk(qrtree, k, tiles + (k+1)); - for (i = B->nt-2; i >= k; i--) { + for (i = B->nt-1; i > k; i--) { n = tiles[i]; p = qrtree->currpiv(qrtree, k, n); @@ -388,9 +387,9 @@ void morse_pzunmqr_param(const libhqr_tree_t *qrtree, } } /* Setting the order of tiles */ - libhqr_treewalk(qrtree, k, tiles); + libhqr_walk_stepk(qrtree, k, tiles + (k+1)); - for (i = k; i < B->nt-1; i++) { + for (i = k+1; i < B->nt; i++) { n = tiles[i]; p = qrtree->currpiv(qrtree, k, n); diff --git a/hqr b/hqr index d11ed5ef457af3ebb6556e8ec2b4c3744e8688c0..95de89897e6221e48e29b34bc47b8a1ba92621e7 160000 --- a/hqr +++ b/hqr @@ -1 +1 @@ -Subproject commit d11ed5ef457af3ebb6556e8ec2b4c3744e8688c0 +Subproject commit 95de89897e6221e48e29b34bc47b8a1ba92621e7 diff --git a/testing/testing_zgels_hqr.c b/testing/testing_zgels_hqr.c index fd9de27534e894a87d9671c0a01adb6bfd2118e8..b155ffb9ba5bb51a870d1fc744934598dac082e6 100644 --- a/testing/testing_zgels_hqr.c +++ b/testing/testing_zgels_hqr.c @@ -77,8 +77,8 @@ int testing_zgels_hqr(int argc, char **argv) int llvl = atoi(argv[7]); int hlvl = atoi(argv[8]); int domino = atoi(argv[9]); - libhqr_tree_t qrtree; - libhqr_tiledesc_t matrix; + libhqr_tree_t qrtree; + libhqr_matrix_t matrix; int K = min(M, N); double eps; @@ -117,7 +117,7 @@ int testing_zgels_hqr(int argc, char **argv) matrix.nodes = 1; matrix.p = 1; - libhqr_hqr_init( &qrtree, + libhqr_init_hqr( &qrtree, ( M >= N ) ? LIBHQR_QR : LIBHQR_LQ, &matrix, llvl, hlvl, qr_a, qr_p, domino, 0); @@ -322,7 +322,7 @@ int testing_zgels_hqr(int argc, char **argv) } } - libhqr_matrix_finalize( &qrtree ); + libhqr_finalize( &qrtree ); free(A1); free(A2); free(B1); free(B2); free(Q); MORSE_Dealloc_Workspace( &TS ); diff --git a/testing/testing_zgels_systolic.c b/testing/testing_zgels_systolic.c index fce16bfc8fa637f8616d1da1b2475345567ca569..a3d78696d71884f572906859820abb29d840ea14 100644 --- a/testing/testing_zgels_systolic.c +++ b/testing/testing_zgels_systolic.c @@ -71,8 +71,8 @@ int testing_zgels_systolic(int argc, char **argv) int LDB = max( max( atoi(argv[4]), M ), N ); int p = atoi(argv[5]); int q = atoi(argv[6]); - libhqr_tree_t qrtree; - libhqr_tiledesc_t matrix; + libhqr_tree_t qrtree; + libhqr_matrix_t matrix; int K = min(M, N); double eps; @@ -111,9 +111,9 @@ int testing_zgels_systolic(int argc, char **argv) matrix.nodes = 1; matrix.p = 1; - libhqr_systolic_init( &qrtree, - ( M >= N ) ? LIBHQR_QR : LIBHQR_LQ, - &matrix, p, q ); + libhqr_init_sys( &qrtree, + ( M >= N ) ? LIBHQR_QR : LIBHQR_LQ, + &matrix, p, q ); /* Initialize A1 and A2 */ LAPACKE_zlarnv_work(IONE, ISEED, LDAxN, A1); @@ -320,7 +320,7 @@ int testing_zgels_systolic(int argc, char **argv) } } - libhqr_matrix_finalize( &qrtree ); + libhqr_finalize( &qrtree ); free(A1); free(A2); free(B1); free(B2); free(Q); MORSE_Dealloc_Workspace( &TS );