diff --git a/compute/pzlatms.c b/compute/pzlatms.c index 7a1334d9d479ba16df52429219644160fb8bd4be..ab0cbe473a3e2f647d295fd47ce1cf18fdbc2200 100644 --- a/compute/pzlatms.c +++ b/compute/pzlatms.c @@ -181,7 +181,7 @@ void chameleon_pzlatms( cham_dist_t idist, unsigned long long int seed, cham_sym /* U is of size A->m by min(A->m, A->n) */ chameleon_zdesc_copy_and_restrict( A, &descU, A->m, minmn ); - chameleon_pzplrnt( &descU, seed, sequence, request ); + chameleon_pzplrnt( &descU, descU.m, 0, 0, seed, sequence, request ); /* Shift the seed to generate the next random unitary matrix */ #if !defined(CHAMELEON_SIMULATION) @@ -257,7 +257,7 @@ void chameleon_pzlatms( cham_dist_t idist, unsigned long long int seed, cham_sym /* V is of size min(A->m, A->n) by A->n */ chameleon_zdesc_copy_and_restrict( A, &descV, minmn, A->n ); - chameleon_pzplrnt( &descV, seed, sequence, request ); + chameleon_pzplrnt( &descV, descV.m, 0, 0, seed, sequence, request ); /* Apply a QR factorization */ mat.mt = descV.mt; diff --git a/compute/pzplghe.c b/compute/pzplghe.c index d20b36a617cc1e88b79d6df68bf884fdfcbf92c4..7a1f03120228e8b2e4189f15d783e6ff936395f2 100644 --- a/compute/pzplghe.c +++ b/compute/pzplghe.c @@ -28,7 +28,7 @@ * chameleon_pzplghe - Generate a random hermitian (positive definite if 'bump' is large enough) half-matrix by tiles. */ void chameleon_pzplghe( double bump, cham_uplo_t uplo, CHAM_desc_t *A, - unsigned long long int seed, + int bigM, int m0, int n0, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request ) { CHAM_context_t *chamctxt; @@ -56,7 +56,7 @@ void chameleon_pzplghe( double bump, cham_uplo_t uplo, CHAM_desc_t *A, INSERT_TASK_zplghe( &options, bump, tempmm, tempnn, A(m, n), - A->m, m*A->mb, n*A->nb, seed ); + bigM, m*A->mb + m0, n*A->nb + n0, seed ); } } break; @@ -72,7 +72,7 @@ void chameleon_pzplghe( double bump, cham_uplo_t uplo, CHAM_desc_t *A, INSERT_TASK_zplghe( &options, bump, tempmm, tempnn, A(m, n), - A->m, m*A->mb, n*A->nb, seed ); + bigM, m*A->mb + m0, n*A->nb + n0, seed ); } } break; @@ -89,7 +89,7 @@ void chameleon_pzplghe( double bump, cham_uplo_t uplo, CHAM_desc_t *A, INSERT_TASK_zplghe( &options, bump, tempmm, tempnn, A(m, n), - A->m, m*A->mb, n*A->nb, seed ); + bigM, m*A->mb + m0, n*A->nb + n0, seed ); } } } diff --git a/compute/pzplgsy.c b/compute/pzplgsy.c index 726543b5ac29735f2df0e6bf347109efd6a34ea8..b9a03562030a64d726f37f42d5af988d875f44bf 100644 --- a/compute/pzplgsy.c +++ b/compute/pzplgsy.c @@ -28,7 +28,7 @@ * chameleon_pzplgsy - Generate a random symmetric (positive definite if 'bump' is large enough) half-matrix by tiles. */ void chameleon_pzplgsy( CHAMELEON_Complex64_t bump, cham_uplo_t uplo, CHAM_desc_t *A, - unsigned long long int seed, + int bigM, int m0, int n0, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request ) { CHAM_context_t *chamctxt; @@ -56,7 +56,7 @@ void chameleon_pzplgsy( CHAMELEON_Complex64_t bump, cham_uplo_t uplo, CHAM_desc_ INSERT_TASK_zplgsy( &options, bump, tempmm, tempnn, A(m, n), - A->m, m*A->mb, n*A->nb, seed ); + bigM, m*A->mb + m0, n*A->nb + n0, seed ); } } break; @@ -72,7 +72,7 @@ void chameleon_pzplgsy( CHAMELEON_Complex64_t bump, cham_uplo_t uplo, CHAM_desc_ INSERT_TASK_zplgsy( &options, bump, tempmm, tempnn, A(m, n), - A->m, m*A->mb, n*A->nb, seed ); + bigM, m*A->mb + m0, n*A->nb + n0, seed ); } } break; @@ -89,7 +89,7 @@ void chameleon_pzplgsy( CHAMELEON_Complex64_t bump, cham_uplo_t uplo, CHAM_desc_ INSERT_TASK_zplgsy( &options, bump, tempmm, tempnn, A(m, n), - A->m, m*A->mb, n*A->nb, seed ); + bigM, m*A->mb + m0, n*A->nb + n0, seed ); } } } diff --git a/compute/pzplrnt.c b/compute/pzplrnt.c index 77845a2ed94dabe157e729e1fd017e35f807cede..a0d08d9bea95ba87abe5c833efa04f6f286949a1 100644 --- a/compute/pzplrnt.c +++ b/compute/pzplrnt.c @@ -28,8 +28,9 @@ /** * chameleon_pzplghe - Generate a random matrix by tiles. */ -void chameleon_pzplrnt( CHAM_desc_t *A, unsigned long long int seed, - RUNTIME_sequence_t *sequence, RUNTIME_request_t *request ) +void chameleon_pzplrnt( CHAM_desc_t *A, + int bigM, int m0, int n0, unsigned long long int seed, + RUNTIME_sequence_t *sequence, RUNTIME_request_t *request ) { CHAM_context_t *chamctxt; RUNTIME_option_t options; @@ -52,7 +53,7 @@ void chameleon_pzplrnt( CHAM_desc_t *A, unsigned long long int seed, INSERT_TASK_zplrnt( &options, tempmm, tempnn, A(m, n), - A->m, m*A->mb, n*A->nb, seed ); + bigM, m*A->mb + m0, n*A->nb + n0, seed ); } } RUNTIME_options_finalize(&options, chamctxt); diff --git a/compute/zplghe.c b/compute/zplghe.c index 28f849ea49bcfed4bb915e9712f07253875784b6..ea6a7364f76463233cc13d3f799834a1d82ce51e 100644 --- a/compute/zplghe.c +++ b/compute/zplghe.c @@ -270,7 +270,7 @@ int CHAMELEON_zplghe_Tile_Async( double bump, if (chameleon_min( A->m, A->n ) == 0) return CHAMELEON_SUCCESS; - chameleon_pzplghe( bump, uplo, A, seed, sequence, request ); + chameleon_pzplghe( bump, uplo, A, A->m, A->i, A->j, seed, sequence, request ); return CHAMELEON_SUCCESS; } diff --git a/compute/zplgsy.c b/compute/zplgsy.c index c09673df742f391d0c5f5615a5f44d8121bd17e2..2f592151779d658e7caca905922c17a8a8923e63 100644 --- a/compute/zplgsy.c +++ b/compute/zplgsy.c @@ -272,7 +272,7 @@ int CHAMELEON_zplgsy_Tile_Async( CHAMELEON_Complex64_t bump, if (chameleon_min( A->m, A->n ) == 0) return CHAMELEON_SUCCESS; - chameleon_pzplgsy( bump, uplo, A, seed, sequence, request ); + chameleon_pzplgsy( bump, uplo, A, A->m, A->i, A->j, seed, sequence, request ); return CHAMELEON_SUCCESS; } diff --git a/compute/zplrnt.c b/compute/zplrnt.c index 272e5b4a814008c532ec2b715e8e1999f026aa31..4f25f18a008b184134444bf122addb0f30891803 100644 --- a/compute/zplrnt.c +++ b/compute/zplrnt.c @@ -261,7 +261,7 @@ int CHAMELEON_zplrnt_Tile_Async( CHAM_desc_t *A, if (chameleon_min( A->m, A->n ) == 0) return CHAMELEON_SUCCESS; - chameleon_pzplrnt( A, seed, sequence, request ); + chameleon_pzplrnt( A, A->m, A->i, A->j, seed, sequence, request ); return CHAMELEON_SUCCESS; } diff --git a/control/compute_z.h b/control/compute_z.h index acc3c54458b4d0462be8adbe6f20404daa5cd643..0e3dc6ae213c42a1c2e9a40fee0724c671606895 100644 --- a/control/compute_z.h +++ b/control/compute_z.h @@ -97,9 +97,9 @@ void chameleon_pzlaswp(CHAM_desc_t *B, int *IPIV, int inc, RUNTIME_sequence_t *s void chameleon_pzlaswpc(CHAM_desc_t *B, int *IPIV, int inc, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); void chameleon_pzlatms( cham_dist_t idist, unsigned long long int seed, cham_sym_t sym, double *D, int mode, double cond, double dmax, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request ); void chameleon_pzlauum(cham_uplo_t uplo, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); -void chameleon_pzplghe(double bump, cham_uplo_t uplo, CHAM_desc_t *A, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request ); -void chameleon_pzplgsy(CHAMELEON_Complex64_t bump, cham_uplo_t uplo, CHAM_desc_t *A, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request ); -void chameleon_pzplrnt(CHAM_desc_t *A, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request ); +void chameleon_pzplghe(double bump, cham_uplo_t uplo, CHAM_desc_t *A, int bigM, int m0, int n0, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request ); +void chameleon_pzplgsy(CHAMELEON_Complex64_t bump, cham_uplo_t uplo, CHAM_desc_t *A, int bigM, int m0, int n0, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request ); +void chameleon_pzplrnt(CHAM_desc_t *A, int bigM, int m0, int n0, unsigned long long int seed, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request ); void chameleon_pzplrnk(int K, CHAM_desc_t *C, unsigned long long int seedA, unsigned long long int seedB, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request ); void chameleon_pzpotrf(cham_uplo_t uplo, CHAM_desc_t *A, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request); void chameleon_pzpotrimm(cham_uplo_t uplo, CHAM_desc_t *A, CHAM_desc_t *B, CHAM_desc_t *C, RUNTIME_sequence_t *sequence, RUNTIME_request_t *request);