diff --git a/testing/testing_zhemm.c b/testing/testing_zhemm.c index b89b2bb3ce1d32f322547ec4a91f500e9fa3a088..3fd659ffbf22e87381233e49cbe708678cad02ce 100644 --- a/testing/testing_zhemm.c +++ b/testing/testing_zhemm.c @@ -137,7 +137,7 @@ testing_zhemm_std( run_arg_list_t *args, int check ) double bump = testing_dalea(); /* Descriptors */ - int Am; + int An; CHAMELEON_Complex64_t *A, *B, *C, *Cinit; bump = run_arg_get_double( args, "bump", bump ); @@ -147,20 +147,15 @@ testing_zhemm_std( run_arg_list_t *args, int check ) CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb ); /* Calculate the dimensions according to the side */ - if ( side == ChamLeft ) { - Am = M; - } - else { - Am = N; - } + An = ( side == ChamLeft ) ? M : N; /* Create the matrices */ - A = malloc( LDA*Am*sizeof(CHAMELEON_Complex64_t) ); + A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) ); B = malloc( LDB*N *sizeof(CHAMELEON_Complex64_t) ); C = malloc( LDC*N *sizeof(CHAMELEON_Complex64_t) ); /* Fills the matrix with random values */ - CHAMELEON_zplghe( bump, uplo, N, A, LDA, seedA ); + CHAMELEON_zplghe( bump, uplo, An, A, LDA, seedA ); CHAMELEON_zplrnt( M, N, B, LDB, seedB ); CHAMELEON_zplrnt( M, N, C, LDC, seedC ); diff --git a/testing/testing_zher2k.c b/testing/testing_zher2k.c index 79509cd0809c5fbf7493c5e36edeb7685c53bb3a..3cde6694aa05b9fdc93f8ab3d8c26bddcebbeb5f 100644 --- a/testing/testing_zher2k.c +++ b/testing/testing_zher2k.c @@ -139,7 +139,7 @@ testing_zher2k_std( run_arg_list_t *args, int check ) double bump = testing_dalea(); /* Descriptors */ - int Am, An; + int Am, An, Bm, Bn; CHAMELEON_Complex64_t *A, *B, *C, *Cinit; bump = run_arg_get_double( args, "bump", bump ); @@ -152,20 +152,24 @@ testing_zher2k_std( run_arg_list_t *args, int check ) if ( trans == ChamNoTrans ) { Am = N; An = K; + Bm = N; + Bn = K; } else { Am = K; An = N; + Bm = K; + Bn = N; } /* Create the matrices */ A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) ); - B = malloc( LDB*An*sizeof(CHAMELEON_Complex64_t) ); + B = malloc( LDB*Bn*sizeof(CHAMELEON_Complex64_t) ); C = malloc( LDC*N *sizeof(CHAMELEON_Complex64_t) ); /* Fill the matrix with random values */ - CHAMELEON_zplrnt( Am, An, B, LDA, seedA ); - CHAMELEON_zplrnt( K, An, B, LDB, seedB ); + CHAMELEON_zplrnt( Am, An, A, LDA, seedA ); + CHAMELEON_zplrnt( Bm, Bn, B, LDB, seedB ); CHAMELEON_zplghe( bump, uplo, N, C, LDC, seedC ); /* Calculate the product */ @@ -179,7 +183,7 @@ testing_zher2k_std( run_arg_list_t *args, int check ) Cinit = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) ); CHAMELEON_zplghe( bump, uplo, N, Cinit, LDC, seedC ); - hres += check_zsyrk_std( args, ChamHermitian, uplo, trans, N, K, alpha, A, B, LDA, beta, Cinit, C, LDC ); + hres += check_zsyrk_std( args, ChamHermitian, uplo, trans, N, K, alpha, A, LDA, B, LDB, beta, Cinit, C, LDC ); free( Cinit ); } diff --git a/testing/testing_zherk.c b/testing/testing_zherk.c index 83ade364b25c4e19b90d1ddad0e11a257bc44f10..7cc8dbe298c16c40e599c30940ab389ecad17559 100644 --- a/testing/testing_zherk.c +++ b/testing/testing_zherk.c @@ -162,14 +162,14 @@ testing_zherk_std( run_arg_list_t *args, int check ) testing_start( &test_data ); hres = CHAMELEON_zherk( uplo, trans, N, K, alpha, A, LDA, beta, C, LDC ); test_data.hres = hres; - testing_stop( &test_data, flops_zherk( K, N ) ); + testing_stop( &test_data, flops_zherk( N, K ) ); /* Checks the solution */ if ( check ) { Cinit = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) ); CHAMELEON_zplghe( bump, uplo, N, Cinit, LDC, seedC ); - hres += check_zsyrk_std( args, ChamHermitian, uplo, trans, N, K, alpha, A, NULL, LDA, beta, Cinit, C, LDC ); + hres += check_zsyrk_std( args, ChamHermitian, uplo, trans, N, K, alpha, A, LDA, NULL, LDA, beta, Cinit, C, LDC ); free( Cinit ); } @@ -199,7 +199,7 @@ testing_zherk_init( void ) test_zherk.output = zherk_output; test_zherk.outchk = zherk_outchk; test_zherk.fptr_desc = testing_zherk_desc; - test_zherk.fptr_std = NULL; + test_zherk.fptr_std = testing_zherk_std; test_zherk.next = NULL; testing_register( &test_zherk ); diff --git a/testing/testing_zposv.c b/testing/testing_zposv.c index 89eaf2c77ac7fc6ae42acea0eb4c48c608cd6ec3..f193f45f28beb96fa278fb0ef6b8b9f6355116de 100644 --- a/testing/testing_zposv.c +++ b/testing/testing_zposv.c @@ -127,7 +127,7 @@ testing_zposv_std( run_arg_list_t *args, int check ) CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb ); /* Creates the matrices */ - A = malloc( LDA*N*sizeof(CHAMELEON_Complex64_t) ); + A = malloc( LDA*N *sizeof(CHAMELEON_Complex64_t) ); X = malloc( LDB*NRHS*sizeof(CHAMELEON_Complex64_t) ); /* Fills the matrix with random values */ @@ -148,7 +148,7 @@ testing_zposv_std( run_arg_list_t *args, int check ) /* Check the factorization */ CHAMELEON_zplghe( (double)N, uplo, N, A0, LDA, seedA ); - hres += check_zxxtrf_std( args, ChamHermitian, uplo, N, NRHS, A0, A, LDA ); + hres += check_zxxtrf_std( args, ChamHermitian, uplo, N, N, A0, A, LDA ); /* Check the solve */ CHAMELEON_zplrnt( N, NRHS, B, LDB, seedB ); diff --git a/testing/testing_zpotrs.c b/testing/testing_zpotrs.c index 5d6d95ec62d747bcd8ab0278d0ac794b907cf431..2130c207985dc0dce635574da38c16fba460762f 100644 --- a/testing/testing_zpotrs.c +++ b/testing/testing_zpotrs.c @@ -157,7 +157,7 @@ testing_t test_zpotrs; const char *zpotrs_params[] = { "mtxfmt", "nb", "uplo", "n", "nrhs", "lda", "ldb", "seedA", "seedB", NULL }; const char *zpotrs_output[] = { NULL }; -const char *zpotrs_outchk[] = { "RETURN", NULL }; +const char *zpotrs_outchk[] = { "||A||", "||A-fact(A)||", "||X||", "||B||", "||Ax-b||", "||Ax-b||/N/eps/(||A||||x||+||b||", "RETURN", NULL }; /** * @brief Testing registration function diff --git a/testing/testing_zsymm.c b/testing/testing_zsymm.c index f87066a874863646f478a512ae5e527d82db09bb..5e2bb66ce1162f28b10c9029d1d607088dacd256 100644 --- a/testing/testing_zsymm.c +++ b/testing/testing_zsymm.c @@ -137,7 +137,7 @@ testing_zsymm_std( run_arg_list_t *args, int check ) double bump = testing_dalea(); /* Descriptors */ - int Am; + int An; CHAMELEON_Complex64_t *A, *B, *C, *Cinit; bump = run_arg_get_double( args, "bump", bump ); @@ -147,26 +147,21 @@ testing_zsymm_std( run_arg_list_t *args, int check ) CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb ); /* Calculate the dimensions according to the side */ - if ( side == ChamLeft ) { - Am = M; - } - else { - Am = N; - } + An = ( side == ChamLeft ) ? M : N; /* Create the matrices */ - A = malloc( LDA*Am*sizeof(CHAMELEON_Complex64_t) ); - B = malloc( LDB*N*sizeof(CHAMELEON_Complex64_t) ); - C = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) ); + A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) ); + B = malloc( LDB*N *sizeof(CHAMELEON_Complex64_t) ); + C = malloc( LDC*N *sizeof(CHAMELEON_Complex64_t) ); /* Fills the matrix with random values */ - CHAMELEON_zplgsy( bump, uplo, N, A, LDA, seedA ); + CHAMELEON_zplgsy( bump, uplo, An, A, LDA, seedA ); CHAMELEON_zplrnt( M, N, B, LDB, seedB ); CHAMELEON_zplrnt( M, N, C, LDC, seedC ); /* Calculates the product */ testing_start( &test_data ); - hres = CHAMELEON_zsymm( side, uplo, Am, N, alpha, A, LDA, B, LDB, beta, C, LDC ); + hres = CHAMELEON_zsymm( side, uplo, M, N, alpha, A, LDA, B, LDB, beta, C, LDC ); test_data.hres = hres; testing_stop( &test_data, flops_zsymm( side, M, N ) ); diff --git a/testing/testing_zsyr2k.c b/testing/testing_zsyr2k.c index 1db847448215cc36c36887e438c7d3c2bed9ec40..4a30d91154ccc419c147844ba8e00cb2e8a389ae 100644 --- a/testing/testing_zsyr2k.c +++ b/testing/testing_zsyr2k.c @@ -139,7 +139,7 @@ testing_zsyr2k_std( run_arg_list_t *args, int check ) double bump = testing_dalea(); /* Descriptors */ - int Am, An; + int Am, An, Bm, Bn; CHAMELEON_Complex64_t *A, *B, *C, *Cinit; bump = run_arg_get_double( args, "bump", bump ); @@ -152,34 +152,38 @@ testing_zsyr2k_std( run_arg_list_t *args, int check ) if ( trans == ChamNoTrans ) { Am = N; An = K; + Bm = N; + Bn = K; } else { Am = K; An = N; + Bm = K; + Bn = N; } /* Create the matrices */ A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) ); - B = malloc( LDB*An*sizeof(CHAMELEON_Complex64_t) ); + B = malloc( LDB*Bn*sizeof(CHAMELEON_Complex64_t) ); C = malloc( LDC*N *sizeof(CHAMELEON_Complex64_t) ); /* Fill the matrix with random values */ CHAMELEON_zplrnt( Am, An, A, LDA, seedA ); - CHAMELEON_zplrnt( Am, An, B, LDB, seedB ); + CHAMELEON_zplrnt( Bm, Bn, B, LDB, seedB ); CHAMELEON_zplgsy( bump, uplo, N, C, LDC, seedC ); /* Calculate the product */ testing_start( &test_data ); hres = CHAMELEON_zsyr2k( uplo, trans, N, K, alpha, A, LDA, B, LDB, beta, C, LDC ); test_data.hres = hres; - testing_stop( &test_data, flops_zher2k( K, N ) ); + testing_stop( &test_data, flops_zher2k( N, K ) ); /* Check the solution */ if ( check ) { Cinit = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) ); CHAMELEON_zplgsy( bump, uplo, N, Cinit, LDC, seedC ); - hres += check_zsyrk_std( args, ChamSymmetric, uplo, trans, N, K, alpha, A, B, LDA, beta, Cinit, C, LDC ); + hres += check_zsyrk_std( args, ChamSymmetric, uplo, trans, N, K, alpha, A, LDA, B, LDB, beta, Cinit, C, LDC ); free( Cinit ); } @@ -196,7 +200,7 @@ const char *zsyr2k_params[] = { "mtxfmt", "nb", "trans", "uplo", "n", "k" "lda", "ldb", "ldc", "alpha", "beta", "seedA", "seedB", "seedC", "bump", NULL }; const char *zsyr2k_output[] = { NULL }; -const char *zsyr2k_outchk[] = { "RETURN", NULL }; +const char *zsyr2k_outchk[] = { "||A||", "||B||", "||C||", "||R||", "RETURN", NULL }; /** * @brief Testing registration function diff --git a/testing/testing_zsyrk.c b/testing/testing_zsyrk.c index 87be0bd64561a4cff298d4ce36b3b3fb1be252b8..ccf584bbe131ccde677fe2f30e2f6d10bf5b3e5d 100644 --- a/testing/testing_zsyrk.c +++ b/testing/testing_zsyrk.c @@ -168,7 +168,7 @@ testing_zsyrk_std( run_arg_list_t *args, int check ) Cinit = malloc( LDC*N*sizeof(CHAMELEON_Complex64_t) ); CHAMELEON_zplgsy( bump, uplo, N, Cinit, LDC, seedC ); - hres += check_zsyrk_std( args, ChamSymmetric, uplo, trans, N, K, alpha, A, NULL, LDA, beta, Cinit, C, LDC ); + hres += check_zsyrk_std( args, ChamSymmetric, uplo, trans, N, K, alpha, A, LDA, NULL, LDA, beta, Cinit, C, LDC ); free( Cinit ); } diff --git a/testing/testing_ztrmm.c b/testing/testing_ztrmm.c index 9809931fc2d5bf586bcabb1e9ed549e1b40ea6dc..3cc1506d6613c3e21507d8fcb8728bd8267b7031 100644 --- a/testing/testing_ztrmm.c +++ b/testing/testing_ztrmm.c @@ -40,7 +40,7 @@ testing_ztrmm_desc( run_arg_list_t *args, int check ) cham_diag_t diag = run_arg_get_diag( args, "diag", ChamNonUnit ); int N = run_arg_get_int( args, "N", 1000 ); int M = run_arg_get_int( args, "M", N ); - int LDA = run_arg_get_int( args, "LDA", N ); + int LDA = run_arg_get_int( args, "LDA", ( side == ChamLeft ) ? M : N ); int LDB = run_arg_get_int( args, "LDB", M ); CHAMELEON_Complex64_t alpha = testing_zalea(); int seedA = run_arg_get_int( args, "seedA", random() ); @@ -56,12 +56,10 @@ testing_ztrmm_desc( run_arg_list_t *args, int check ) /* Calculates the dimensions according to the side */ if ( side == ChamLeft ) { - LDA = M; CHAMELEON_Desc_Create( &descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, M, 0, 0, M, M, P, Q ); } else { - LDA = N; CHAMELEON_Desc_Create( &descA, (void*)(-mtxfmt), ChamComplexDouble, nb, nb, nb * nb, LDA, N, 0, 0, N, N, P, Q ); } @@ -120,14 +118,14 @@ testing_ztrmm_std( run_arg_list_t *args, int check ) cham_diag_t diag = run_arg_get_diag( args, "diag", ChamNonUnit ); int N = run_arg_get_int( args, "N", 1000 ); int M = run_arg_get_int( args, "M", N ); - int LDA = run_arg_get_int( args, "LDA", N ); + int LDA = run_arg_get_int( args, "LDA", ( side == ChamLeft ) ? M : N ); int LDB = run_arg_get_int( args, "LDB", M ); CHAMELEON_Complex64_t alpha = testing_zalea(); int seedA = run_arg_get_int( args, "seedA", random() ); int seedB = run_arg_get_int( args, "seedB", random() ); /* Descriptors */ - int An; + int An; CHAMELEON_Complex64_t *A, *B, *Binit; alpha = run_arg_get_complex64( args, "alpha", alpha ); @@ -135,19 +133,11 @@ testing_ztrmm_std( run_arg_list_t *args, int check ) CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb ); /* Calculates the dimensions according to the side */ - if ( side == ChamLeft ) { - An = M; - LDA = M; - A = malloc( LDA*N *sizeof(CHAMELEON_Complex64_t) ); - } - else { - An = N; - LDA = N; - A = malloc( LDA*N *sizeof(CHAMELEON_Complex64_t) ); - } + An = ( side == ChamLeft ) ? M : N; /* Creates the matrices */ - B = malloc( LDB*N*sizeof(CHAMELEON_Complex64_t) ); + A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) ); + B = malloc( LDB*N *sizeof(CHAMELEON_Complex64_t) ); /* Fills the matrix with random values */ CHAMELEON_zplrnt( An, An, A, LDA, seedA ); @@ -155,7 +145,7 @@ testing_ztrmm_std( run_arg_list_t *args, int check ) /* Calculates the product */ testing_start( &test_data ); - hres = CHAMELEON_ztrmm( side, uplo, trans, diag, N, M, alpha, A, LDA, B, LDB ); + hres = CHAMELEON_ztrmm( side, uplo, trans, diag, M, N, alpha, A, LDA, B, LDB ); test_data.hres = hres; testing_stop( &test_data, flops_ztrmm( side, N, M ) ); @@ -164,7 +154,7 @@ testing_ztrmm_std( run_arg_list_t *args, int check ) Binit = malloc( LDB*N*sizeof(CHAMELEON_Complex64_t) ); CHAMELEON_zplrnt( M, N, Binit, LDB, seedB ); - hres += check_ztrmm_std( args, CHECK_TRMM, side, uplo, trans, diag, N, M, alpha, A, LDA, B, Binit, LDB ); + hres += check_ztrmm_std( args, CHECK_TRMM, side, uplo, trans, diag, M, N, alpha, A, LDA, B, Binit, LDB ); free( Binit ); } diff --git a/testing/testing_ztrsm.c b/testing/testing_ztrsm.c index 89cd4f73354a488301ab2d5b266f7726b1626996..fb683176a07f0bb56866c133a9f6d8f0ead681fe 100644 --- a/testing/testing_ztrsm.c +++ b/testing/testing_ztrsm.c @@ -112,8 +112,8 @@ testing_ztrsm_std( run_arg_list_t *args, int check ) cham_diag_t diag = run_arg_get_diag( args, "diag", ChamNonUnit ); int N = run_arg_get_int( args, "N", 1000 ); int M = run_arg_get_int( args, "M", N ); - int Ak = ( side == ChamLeft ) ? M : N; - int LDA = run_arg_get_int( args, "LDA", Ak ); + int An = ( side == ChamLeft ) ? M : N; + int LDA = run_arg_get_int( args, "LDA", An ); int LDB = run_arg_get_int( args, "LDB", M ); CHAMELEON_Complex64_t alpha = testing_zalea(); int seedA = run_arg_get_int( args, "seedA", random() ); @@ -127,7 +127,7 @@ testing_ztrsm_std( run_arg_list_t *args, int check ) CHAMELEON_Set( CHAMELEON_TILE_SIZE, nb ); /* Creates the matrices */ - A = malloc( LDA*Ak*sizeof(CHAMELEON_Complex64_t) ); + A = malloc( LDA*An*sizeof(CHAMELEON_Complex64_t) ); B = malloc( LDB*N *sizeof(CHAMELEON_Complex64_t) ); /* Fills the matrix with random values */ @@ -137,7 +137,7 @@ testing_ztrsm_std( run_arg_list_t *args, int check ) /* Calculates the product */ testing_start( &test_data ); - hres = CHAMELEON_ztrsm( side, uplo, trans, diag, N, M, alpha, A, LDA, B, LDB ); + hres = CHAMELEON_ztrsm( side, uplo, trans, diag, M, N, alpha, A, LDA, B, LDB ); test_data.hres = hres; testing_stop( &test_data, flops_ztrsm( side, M, N ) );