diff --git a/CHOLMOD/CMakeLists.txt b/CHOLMOD/CMakeLists.txt index fcbc5c425..aff0c7a25 100644 --- a/CHOLMOD/CMakeLists.txt +++ b/CHOLMOD/CMakeLists.txt @@ -15,7 +15,7 @@ cmake_minimum_required ( VERSION 3.22 ) set ( CHOLMOD_DATE "Nov 12, 2022" ) set ( CHOLMOD_VERSION_MAJOR 4 ) set ( CHOLMOD_VERSION_MINOR 0 ) -set ( CHOLMOD_VERSION_SUB 0 ) +set ( CHOLMOD_VERSION_SUB 1 ) message ( STATUS "Building CHOLMOD version: v" ${CHOLMOD_VERSION_MAJOR}. diff --git a/CHOLMOD/Doc/ChangeLog b/CHOLMOD/Doc/ChangeLog index 864aec531..3f7995fc5 100644 --- a/CHOLMOD/Doc/ChangeLog +++ b/CHOLMOD/Doc/ChangeLog @@ -1,3 +1,7 @@ +Nov 12, 2022: version 4.0.1 + + * BLAS definitions: no longer exposed to the user application + Nov 12, 2022: version 4.0.0 * using CMake build system diff --git a/CHOLMOD/Doc/cholmod_version.tex b/CHOLMOD/Doc/cholmod_version.tex index 194eb45b9..0daae1043 100644 --- a/CHOLMOD/Doc/cholmod_version.tex +++ b/CHOLMOD/Doc/cholmod_version.tex @@ -1,2 +1,2 @@ % version of SuiteSparse/CHOLMOD -\date{VERSION 4.0.0, Nov 12, 2022} +\date{VERSION 4.0.1, Nov 12, 2022} diff --git a/CHOLMOD/Include/cholmod.h b/CHOLMOD/Include/cholmod.h index 4769b3024..d0c8981b5 100644 --- a/CHOLMOD/Include/cholmod.h +++ b/CHOLMOD/Include/cholmod.h @@ -100,7 +100,7 @@ #define CHOLMOD_DATE "Nov 12, 2022" #define CHOLMOD_MAIN_VERSION 4 #define CHOLMOD_SUB_VERSION 0 -#define CHOLMOD_SUBSUB_VERSION 0 +#define CHOLMOD_SUBSUB_VERSION 1 /* make it easy for C++ programs to include CHOLMOD */ #ifdef __cplusplus diff --git a/CHOLMOD/Include/cholmod_internal.h b/CHOLMOD/Include/cholmod_internal.h index 379be06e6..763f020b2 100644 --- a/CHOLMOD/Include/cholmod_internal.h +++ b/CHOLMOD/Include/cholmod_internal.h @@ -30,6 +30,7 @@ #ifndef CHOLMOD_INTERNAL_H #define CHOLMOD_INTERNAL_H +#define SUITESPARSE_BLAS_DEFINITIONS #include "cholmod.h" /* ========================================================================== */ diff --git a/CHOLMOD/Tcov/cm.h b/CHOLMOD/Tcov/cm.h index c47a46bdf..b8655544f 100644 --- a/CHOLMOD/Tcov/cm.h +++ b/CHOLMOD/Tcov/cm.h @@ -8,6 +8,7 @@ //------------------------------------------------------------------------------ +#define SUITESPARSE_BLAS_DEFINITIONS #include "cholmod.h" #include #include diff --git a/ChangeLog b/ChangeLog index 722a3bf06..ae3f43462 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Nov 12, 2022: SuiteSparse 6.0.1 + + * BLAS: C prototypes for the Fortan BLAS were unintentionally exposed to + the user application. Removed. If you want to use them, see the + instructions in SuiteSparse_config.h. + Nov 12, 2022: SuiteSparse 6.0.0 * major update: using CMake build system for all packages diff --git a/GraphBLAS/CMakeLists.txt b/GraphBLAS/CMakeLists.txt index c0126928c..19edda97b 100644 --- a/GraphBLAS/CMakeLists.txt +++ b/GraphBLAS/CMakeLists.txt @@ -76,7 +76,6 @@ endif ( ) option ( NOPENMP "ON: do not use OpenMP. OFF (default): use OpenMP" off ) if ( NOPENMP ) # OpenMP has been disabled. - set ( OPENMP_FOUND false ) else ( ) find_package ( OpenMP ) diff --git a/README.md b/README.md index 7e8cd7b6c..43cdce36c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ SuiteSparse: A Suite of Sparse matrix packages at http://suitesparse.com ----------------------------------------------------------------------------- -Nov 12, 2022. SuiteSparse VERSION 6.0.0 +Nov 12, 2022. SuiteSparse VERSION 6.0.1 SuiteSparse is a set of sparse-matrix-related packages written or co-authored by Tim Davis, available at https://github.com/DrTimothyAldenDavis/SuiteSparse . diff --git a/SPQR/CMakeLists.txt b/SPQR/CMakeLists.txt index 2e9f3cb8e..af5ec8de6 100644 --- a/SPQR/CMakeLists.txt +++ b/SPQR/CMakeLists.txt @@ -16,7 +16,7 @@ cmake_minimum_required ( VERSION 3.22 ) set ( SPQR_DATE "Nov 12, 2022" ) set ( SPQR_VERSION_MAJOR 3 ) set ( SPQR_VERSION_MINOR 0 ) -set ( SPQR_VERSION_SUB 0 ) +set ( SPQR_VERSION_SUB 1 ) message ( STATUS "Building SPQR version: v" ${SPQR_VERSION_MAJOR}. diff --git a/SPQR/Doc/ChangeLog b/SPQR/Doc/ChangeLog index 98a4ea95a..35a430381 100644 --- a/SPQR/Doc/ChangeLog +++ b/SPQR/Doc/ChangeLog @@ -1,3 +1,7 @@ +Nov 12, 2022: version 3.0.1 + + * BLAS definitions: no longer exposed to the user application + Nov 12, 2022: version 3.0.0 * using CMake build system diff --git a/SPQR/Doc/spqr_version.tex b/SPQR/Doc/spqr_version.tex index 9a3e397e3..cdd59169e 100644 --- a/SPQR/Doc/spqr_version.tex +++ b/SPQR/Doc/spqr_version.tex @@ -1,2 +1,2 @@ % version of SuiteSparse/SPQR -\date{VERSION 3.0.0, Nov 12, 2022} +\date{VERSION 3.0.1, Nov 12, 2022} diff --git a/SPQR/Include/SuiteSparseQR_definitions.h b/SPQR/Include/SuiteSparseQR_definitions.h index 764aa9376..d8cd08be8 100644 --- a/SPQR/Include/SuiteSparseQR_definitions.h +++ b/SPQR/Include/SuiteSparseQR_definitions.h @@ -65,7 +65,7 @@ #define SPQR_DATE "Nov 12, 2022" #define SPQR_MAIN_VERSION 3 #define SPQR_SUB_VERSION 0 -#define SPQR_SUBSUB_VERSION 0 +#define SPQR_SUBSUB_VERSION 1 #define SPQR_VER_CODE(main,sub) ((main) * 1000 + (sub)) #define SPQR_VERSION SPQR_VER_CODE(SPQR_MAIN_VERSION,SPQR_SUB_VERSION) diff --git a/SPQR/Include/spqr.hpp b/SPQR/Include/spqr.hpp index 47386b9b7..adba2a977 100644 --- a/SPQR/Include/spqr.hpp +++ b/SPQR/Include/spqr.hpp @@ -15,6 +15,7 @@ // include files // ----------------------------------------------------------------------------- +#define SUITESPARSE_BLAS_DEFINITIONS #include "SuiteSparseQR.hpp" #include #include diff --git a/SPQR/Tcov/qrtestc.c b/SPQR/Tcov/qrtestc.c index 12b358b40..33377bcdb 100644 --- a/SPQR/Tcov/qrtestc.c +++ b/SPQR/Tcov/qrtestc.c @@ -10,7 +10,6 @@ /* Test the C wrapper functions. */ #include "SuiteSparseQR_C.h" -#define int64_t int64_t #define MAX(a,b) (((a) > (b)) ? (a) : (b)) diff --git a/SuiteSparse_config/CMakeLists.txt b/SuiteSparse_config/CMakeLists.txt index caa903787..bf526e51c 100644 --- a/SuiteSparse_config/CMakeLists.txt +++ b/SuiteSparse_config/CMakeLists.txt @@ -17,7 +17,7 @@ cmake_minimum_required ( VERSION 3.22 ) set ( SUITESPARSE_DATE "Nov 12, 2022" ) set ( SUITESPARSE_VERSION_MAJOR 6 ) set ( SUITESPARSE_VERSION_MINOR 0 ) -set ( SUITESPARSE_VERSION_SUB 0 ) +set ( SUITESPARSE_VERSION_SUB 1 ) message ( STATUS "Building SuiteSparse_config version: v" ${SUITESPARSE_VERSION_MAJOR}. diff --git a/SuiteSparse_config/Config/SuiteSparse_config.h.in b/SuiteSparse_config/Config/SuiteSparse_config.h.in index 1b5876acd..c9cf2188c 100644 --- a/SuiteSparse_config/Config/SuiteSparse_config.h.in +++ b/SuiteSparse_config/Config/SuiteSparse_config.h.in @@ -8,12 +8,12 @@ //------------------------------------------------------------------------------ -// Configuration file for SuiteSparse: a Suite of Sparse matrix packages (AMD, -// COLAMD, CCOLAMD, CAMD, CHOLMOD, UMFPACK, CXSparse, SuiteSparseQR, ...). +// Configuration file for SuiteSparse: a Suite of Sparse matrix packages: AMD, +// COLAMD, CCOLAMD, CAMD, CHOLMOD, UMFPACK, CXSparse, SuiteSparseQR, ParU, ... -// This file is configured by CMake to be specific to the C/C++ compiler and -// BLAS library being used for SuiteSparse. The original file is -// SuiteSparse_config/SuiteSparse_config.h.in. Do not edit the +// The SuiteSparse_config.h file is configured by CMake to be specific to the +// C/C++ compiler and BLAS library being used for SuiteSparse. The original +// file is SuiteSparse_config/SuiteSparse_config.h.in. Do not edit the // SuiteSparse_config.h file directly. #ifndef SUITESPARSE_CONFIG_H @@ -689,6 +689,20 @@ int SuiteSparse_version // returns SUITESPARSE_VERSION // See https://netlib.org/blas/ and https://netlib.org/lapack/ for the // definitions of the inputs/outputs of these functions. +// These prototypes need to be found by UMFPACK, CHOLMOD, and SPQR, and to do +// so, they need to appear in this public header to ensure the correct BLAS +// library and integer size is used. However, these definitions should not +// (normally) be exposed to the user application. + +// If a user application wishes to use these definitions, simply add + +// #define SUITESPARSE_BLAS_DEFINITIONS +// #include "SuiteSparse_config.h" + +// prior to #include'ing any SuiteSparse headers (amd.h, and so on). + +#if defined ( SUITESPARSE_BLAS_DEFINITIONS ) + void SUITESPARSE_BLAS_DGEMV // Y = alpha*A*x + beta*Y ( // input: @@ -709,15 +723,15 @@ void SUITESPARSE_BLAS_DGEMV // Y = alpha*A*x + beta*Y #define SUITESPARSE_BLAS_dgemv(trans,m,n,alpha,A,lda,X,incx,beta,Y,incy,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCY, incy, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCY_blas_int, incy, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_DGEMV (trans, &M, &N, alpha, A, &LDA, X, &INCX, \ - beta, Y, &INCY) ; \ + SUITESPARSE_BLAS_DGEMV (trans, &M_blas_int, &N_blas_int, alpha, A, \ + &LDA_blas_int, X, &INCX_blas_int, beta, Y, &INCY_blas_int) ; \ } \ } @@ -741,15 +755,15 @@ void SUITESPARSE_BLAS_ZGEMV // Y = alpha*A*X + beta*Y #define SUITESPARSE_BLAS_zgemv(trans,m,n,alpha,A,lda,X,incx,beta,Y,incy,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCY, incy, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCY_blas_int, incy, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_ZGEMV (trans, &M, &N, alpha, A, &LDA, X, &INCX, \ - beta, Y, &INCY) ; \ + SUITESPARSE_BLAS_ZGEMV (trans, &M_blas_int, &N_blas_int, alpha, A, \ + &LDA_blas_int, X, &INCX_blas_int, beta, Y, &INCY_blas_int) ; \ } \ } @@ -770,12 +784,13 @@ void SUITESPARSE_BLAS_DTRSV // solve Lx=b, Ux=b, L'x=b, or U'x=b #define SUITESPARSE_BLAS_dtrsv(uplo,trans,diag,n,A,lda,X,incx,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_DTRSV (uplo, trans, diag, &N, A, &LDA, X, &INCX) ; \ + SUITESPARSE_BLAS_DTRSV (uplo, trans, diag, &N_blas_int, A, \ + &LDA_blas_int, X, &INCX_blas_int) ; \ } \ } @@ -796,12 +811,13 @@ void SUITESPARSE_BLAS_ZTRSV // solve (L, L', L^H, U, U', or U^H)x=b #define SUITESPARSE_BLAS_ztrsv(uplo,trans,diag,n,A,lda,X,incx,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_ZTRSV (uplo, trans, diag, &N, A, &LDA, X, &INCX) ; \ + SUITESPARSE_BLAS_ZTRSV (uplo, trans, diag, &N_blas_int, A, \ + &LDA_blas_int, X, &INCX_blas_int) ; \ } \ } @@ -825,14 +841,14 @@ void SUITESPARSE_BLAS_DTRSM // solve LX=B, UX=B, L'X=B, or U'X=B #define SUITESPARSE_BLAS_dtrsm(side,uplo,transa,diag,m,n,alpha,A,lda,B,ldb,ok)\ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDB, ldb, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDB_blas_int, ldb, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_DTRSM (side, uplo, transa, diag, &M, &N, alpha, A, \ - &LDA, B, &LDB) ; \ + SUITESPARSE_BLAS_DTRSM (side, uplo, transa, diag, &M_blas_int, \ + &N_blas_int, alpha, A, &LDA_blas_int, B, &LDB_blas_int) ; \ } \ } @@ -856,14 +872,14 @@ void SUITESPARSE_BLAS_ZTRSM // solve (L, L', L^H, U, U', or U^H)X=B #define SUITESPARSE_BLAS_ztrsm(side,uplo,transa,diag,m,n,alpha,A,lda,B,ldb,ok)\ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDB, ldb, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDB_blas_int, ldb, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_ZTRSM (side, uplo, transa, diag, &M, &N, alpha, A, \ - &LDA, B, &LDB) ; \ + SUITESPARSE_BLAS_ZTRSM (side, uplo, transa, diag, &M_blas_int, \ + &N_blas_int, alpha, A, &LDA_blas_int, B, &LDB_blas_int) ; \ } \ } @@ -890,16 +906,17 @@ void SUITESPARSE_BLAS_DGEMM // C = alpha*A*B + beta*C #define SUITESPARSE_BLAS_dgemm(transa,transb,m,n,k,alpha,A,lda,B,ldb,beta, \ C,ldc,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (K, k, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDB, ldb, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDC, ldc, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (K_blas_int, k, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDB_blas_int, ldb, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDC_blas_int, ldc, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_DGEMM (transa, transb, &M, &N, &K, alpha, A, &LDA, \ - B, &LDB, beta, C, &LDC) ; \ + SUITESPARSE_BLAS_DGEMM (transa, transb, &M_blas_int, &N_blas_int, \ + &K_blas_int, alpha, A, &LDA_blas_int, B, &LDB_blas_int, beta, C, \ + &LDC_blas_int) ; \ } \ } @@ -926,16 +943,17 @@ void SUITESPARSE_BLAS_ZGEMM // C = alpha*A*B + beta*C #define SUITESPARSE_BLAS_zgemm(transa,transb,m,n,k,alpha,A,lda,B,ldb,beta, \ C,ldc,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (K, k, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDB, ldb, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDC, ldc, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (K_blas_int, k, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDB_blas_int, ldb, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDC_blas_int, ldc, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_ZGEMM (transa, transb, &M, &N, &K, alpha, A, &LDA, \ - B, &LDB, beta, C, &LDC) ; \ + SUITESPARSE_BLAS_ZGEMM (transa, transb, &M_blas_int, &N_blas_int, \ + &K_blas_int, alpha, A, &LDA_blas_int, B, &LDB_blas_int, beta, C, \ + &LDC_blas_int) ; \ } \ } @@ -958,14 +976,14 @@ void SUITESPARSE_BLAS_DSYRK // C = alpha*A*A' + beta*C, or A'A #define SUITESPARSE_BLAS_dsyrk(uplo,trans,n,k,alpha,A,lda,beta,C,ldc,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (K, k, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDC, ldc, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (K_blas_int, k, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDC_blas_int, ldc, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_DSYRK (uplo, trans, &N, &K, alpha, A, &LDA, \ - beta, C, &LDC) ; \ + SUITESPARSE_BLAS_DSYRK (uplo, trans, &N_blas_int, &K_blas_int, alpha, \ + A, &LDA_blas_int, beta, C, &LDC_blas_int) ; \ } \ } @@ -988,14 +1006,14 @@ void SUITESPARSE_BLAS_ZHERK // C = alpha*A*A^H + beta*C, or A^H*A #define SUITESPARSE_BLAS_zherk(uplo,trans,n,k,alpha,A,lda,beta,C,ldc,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (K, k, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDC, ldc, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (K_blas_int, k, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDC_blas_int, ldc, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_ZHERK (uplo, trans, &N, &K, alpha, A, &LDA, \ - beta, C, &LDC) ; \ + SUITESPARSE_BLAS_ZHERK (uplo, trans, &N_blas_int, &K_blas_int, alpha, \ + A, &LDA_blas_int, beta, C, &LDC_blas_int) ; \ } \ } @@ -1014,13 +1032,14 @@ void SUITESPARSE_LAPACK_DPOTRF // Cholesky factorization #define SUITESPARSE_LAPACK_dpotrf(uplo,n,A,lda,info,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ info = 1 ; \ if (ok) \ { \ SUITESPARSE_BLAS_INT LAPACK_Info = -999 ; \ - SUITESPARSE_LAPACK_DPOTRF (uplo, &N, A, &LDA, &LAPACK_Info) ; \ + SUITESPARSE_LAPACK_DPOTRF (uplo, &N_blas_int, A, &LDA_blas_int, \ + &LAPACK_Info) ; \ info = (Int) LAPACK_Info ; \ } \ } @@ -1040,13 +1059,14 @@ void SUITESPARSE_LAPACK_ZPOTRF // Cholesky factorization #define SUITESPARSE_LAPACK_zpotrf(uplo,n,A,lda,info,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ info = 1 ; \ if (ok) \ { \ SUITESPARSE_BLAS_INT LAPACK_Info = -999 ; \ - SUITESPARSE_LAPACK_ZPOTRF (uplo, &N, A, &LDA, &LAPACK_Info) ; \ + SUITESPARSE_LAPACK_ZPOTRF (uplo, &N_blas_int, A, &LDA_blas_int, \ + &LAPACK_Info) ; \ info = LAPACK_Info ; \ } \ } @@ -1064,11 +1084,11 @@ void SUITESPARSE_BLAS_DSCAL // Y = alpha*Y #define SUITESPARSE_BLAS_dscal(n,alpha,Y,incy,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCY, incy, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCY_blas_int, incy, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_DSCAL (&N, alpha, Y, &INCY) ; \ + SUITESPARSE_BLAS_DSCAL (&N_blas_int, alpha, Y, &INCY_blas_int) ; \ } \ } @@ -1085,11 +1105,11 @@ void SUITESPARSE_BLAS_ZSCAL // Y = alpha*Y #define SUITESPARSE_BLAS_zscal(n,alpha,Y,incy,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCY, incy, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCY_blas_int, incy, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_ZSCAL (&N, alpha, Y, &INCY) ; \ + SUITESPARSE_BLAS_ZSCAL (&N_blas_int, alpha, Y, &INCY_blas_int) ; \ } \ } @@ -1111,14 +1131,15 @@ void SUITESPARSE_BLAS_DGER // A = alpha*x*y' + A #define SUITESPARSE_BLAS_dger(m,n,alpha,X,incx,Y,incy,A,lda,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCY, incy, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCY_blas_int, incy, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_DGER (&M, &N, alpha, X, &INCX, Y, &INCY, A, &LDA) ; \ + SUITESPARSE_BLAS_DGER (&M_blas_int, &N_blas_int, alpha, X, \ + &INCX_blas_int, Y, &INCY_blas_int, A, &LDA_blas_int) ; \ } \ } @@ -1140,14 +1161,15 @@ void SUITESPARSE_BLAS_ZGERU // A = alpha*x*y' + A #define SUITESPARSE_BLAS_zgeru(m,n,alpha,X,incx,Y,incy,A,lda,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCY, incy, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCY_blas_int, incy, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_ZGERU (&M, &N, alpha, X, &INCX, Y, &INCY, A, &LDA) ; \ + SUITESPARSE_BLAS_ZGERU (&M_blas_int, &N_blas_int, alpha, X, \ + &INCX_blas_int, Y, &INCY_blas_int, A, &LDA_blas_int) ; \ } \ } @@ -1169,14 +1191,14 @@ void SUITESPARSE_LAPACK_DLARFT // T = block Householder factor #define SUITESPARSE_LAPACK_dlarft(direct,storev,n,k,V,ldv,Tau,T,ldt,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (K, k, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDV, ldv, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDT, ldt, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (K_blas_int, k, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDV_blas_int, ldv, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDT_blas_int, ldt, ok) ; \ if (ok) \ { \ - SUITESPARSE_LAPACK_DLARFT (direct, storev, &N, &K, V, &LDV, Tau, \ - T, &LDT) ; \ + SUITESPARSE_LAPACK_DLARFT (direct, storev, &N_blas_int, &K_blas_int, \ + V, &LDV_blas_int, Tau, T, &LDT_blas_int) ; \ } \ } @@ -1198,14 +1220,14 @@ void SUITESPARSE_LAPACK_ZLARFT // T = block Householder factor #define SUITESPARSE_LAPACK_zlarft(direct,storev,n,k,V,ldv,Tau,T,ldt,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (K, k, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDV, ldv, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDT, ldt, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (K_blas_int, k, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDV_blas_int, ldv, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDT_blas_int, ldt, ok) ; \ if (ok) \ { \ - SUITESPARSE_LAPACK_ZLARFT (direct, storev, &N, &K, V, &LDV, Tau, \ - T, &LDT) ; \ + SUITESPARSE_LAPACK_ZLARFT (direct, storev, &N_blas_int, &K_blas_int, \ + V, &LDV_blas_int, Tau, T, &LDT_blas_int) ; \ } \ } @@ -1236,17 +1258,18 @@ void SUITESPARSE_LAPACK_DLARFB // apply block Householder reflector #define SUITESPARSE_LAPACK_dlarfb(side,trans,direct,storev,m,n,k,V,ldv,T,ldt, \ C,ldc,Work,ldwork,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (K, k, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDV, ldv, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDT, ldt, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDC, ldc, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDWORK, ldwork, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (K_blas_int, k, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDV_blas_int, ldv, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDT_blas_int, ldt, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDC_blas_int, ldc, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDWORK_blas_int, ldwork, ok) ; \ if (ok) \ { \ - SUITESPARSE_LAPACK_DLARFB (side, trans, direct, storev, &M, &N, &K, \ - V, &LDV, T, &LDT, C, &LDC, Work, &LDWORK) ; \ + SUITESPARSE_LAPACK_DLARFB (side, trans, direct, storev, &M_blas_int, \ + &N_blas_int, &K_blas_int, V, &LDV_blas_int, T, &LDT_blas_int, C, \ + &LDC_blas_int, Work, &LDWORK_blas_int) ; \ } \ } @@ -1277,17 +1300,18 @@ void SUITESPARSE_LAPACK_ZLARFB // apply block Householder reflector #define SUITESPARSE_LAPACK_zlarfb(side,trans,direct,storev,m,n,k,V,ldv,T,ldt, \ C,ldc,Work,ldwork,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (K, k, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDV, ldv, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDT, ldt, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDC, ldc, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDWORK, ldwork, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (K_blas_int, k, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDV_blas_int, ldv, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDT_blas_int, ldt, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDC_blas_int, ldc, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDWORK_blas_int, ldwork, ok) ; \ if (ok) \ { \ - SUITESPARSE_LAPACK_ZLARFB (side, trans, direct, storev, &M, &N, &K, \ - V, &LDV, T, &LDT, C, &LDC, Work, &LDWORK) ; \ + SUITESPARSE_LAPACK_ZLARFB (side, trans, direct, storev, &M_blas_int, \ + &N_blas_int, &K_blas_int, V, &LDV_blas_int, T, &LDT_blas_int, C, \ + &LDC_blas_int, Work, &LDWORK_blas_int) ; \ } \ } @@ -1301,12 +1325,12 @@ double SUITESPARSE_BLAS_DNRM2 // vector 2-norm #define SUITESPARSE_BLAS_dnrm2(result,n,X,incx,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ result = 0 ; \ if (ok) \ { \ - result = SUITESPARSE_BLAS_DNRM2 (&N, X, &INCX) ; \ + result = SUITESPARSE_BLAS_DNRM2 (&N_blas_int, X, &INCX_blas_int) ; \ } \ } @@ -1320,12 +1344,12 @@ double SUITESPARSE_BLAS_DZNRM2 // vector 2-norm #define SUITESPARSE_BLAS_dznrm2(result,n,X,incx,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ result = 0 ; \ if (ok) \ { \ - result = SUITESPARSE_BLAS_DZNRM2 (&N, X, &INCX) ; \ + result = SUITESPARSE_BLAS_DZNRM2 (&N_blas_int, X, &INCX_blas_int) ; \ } \ } @@ -1344,11 +1368,12 @@ void SUITESPARSE_LAPACK_DLARFG // generate Householder reflector #define SUITESPARSE_LAPACK_dlarfg(n,alpha,X,incx,tau,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ if (ok) \ { \ - SUITESPARSE_LAPACK_DLARFG (&N, alpha, X, &INCX, tau) ; \ + SUITESPARSE_LAPACK_DLARFG (&N_blas_int, alpha, X, &INCX_blas_int, \ + tau) ; \ } \ } @@ -1367,11 +1392,12 @@ void SUITESPARSE_LAPACK_ZLARFG // generate Householder reflector #define SUITESPARSE_LAPACK_zlarfg(n,alpha,X,incx,tau,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ if (ok) \ { \ - SUITESPARSE_LAPACK_ZLARFG (&N, alpha, X, &INCX, tau) ; \ + SUITESPARSE_LAPACK_ZLARFG (&N_blas_int, alpha, X, &INCX_blas_int, \ + tau) ; \ } \ } @@ -1394,14 +1420,14 @@ void SUITESPARSE_LAPACK_DLARF // apply Householder reflector #define SUITESPARSE_LAPACK_dlarf(side,m,n,V,incv,tau,C,ldc,Work,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCV, incv, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDC, ldc, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCV_blas_int, incv, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDC_blas_int, ldc, ok) ; \ if (ok) \ { \ - SUITESPARSE_LAPACK_DLARF (side, &M, &N, V, &INCV, tau, C, &LDC, \ - Work) ; \ + SUITESPARSE_LAPACK_DLARF (side, &M_blas_int, &N_blas_int, V, \ + &INCV_blas_int, tau, C, &LDC_blas_int, Work) ; \ } \ } @@ -1424,17 +1450,19 @@ void SUITESPARSE_LAPACK_ZLARF // apply Householder reflector #define SUITESPARSE_LAPACK_zlarf(side,m,n,V,incv,tau,C,ldc,Work,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCV, incv, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDC, ldc, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCV_blas_int, incv, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDC_blas_int, ldc, ok) ; \ if (ok) \ { \ - SUITESPARSE_LAPACK_ZLARF (side, &M, &N, V, &INCV, tau, C, &LDC, \ - Work) ; \ + SUITESPARSE_LAPACK_ZLARF (side, &M_blas_int, &N_blas_int, V, \ + &INCV_blas_int, tau, C, &LDC_blas_int, Work) ; \ } \ } +#endif + //------------------------------------------------------------------------------ // SuiteSparse_BLAS_library: return name of BLAS library found //------------------------------------------------------------------------------ diff --git a/SuiteSparse_config/SuiteSparse_config.h b/SuiteSparse_config/SuiteSparse_config.h index d105dc5d4..00beef1a1 100644 --- a/SuiteSparse_config/SuiteSparse_config.h +++ b/SuiteSparse_config/SuiteSparse_config.h @@ -8,12 +8,12 @@ //------------------------------------------------------------------------------ -// Configuration file for SuiteSparse: a Suite of Sparse matrix packages (AMD, -// COLAMD, CCOLAMD, CAMD, CHOLMOD, UMFPACK, CXSparse, SuiteSparseQR, ...). +// Configuration file for SuiteSparse: a Suite of Sparse matrix packages: AMD, +// COLAMD, CCOLAMD, CAMD, CHOLMOD, UMFPACK, CXSparse, SuiteSparseQR, ParU, ... -// This file is configured by CMake to be specific to the C/C++ compiler and -// BLAS library being used for SuiteSparse. The original file is -// SuiteSparse_config/SuiteSparse_config.h.in. Do not edit the +// The SuiteSparse_config.h file is configured by CMake to be specific to the +// C/C++ compiler and BLAS library being used for SuiteSparse. The original +// file is SuiteSparse_config/SuiteSparse_config.h.in. Do not edit the // SuiteSparse_config.h file directly. #ifndef SUITESPARSE_CONFIG_H @@ -488,7 +488,7 @@ int SuiteSparse_version // returns SUITESPARSE_VERSION #define SUITESPARSE_DATE "Nov 12, 2022" #define SUITESPARSE_MAIN_VERSION 6 #define SUITESPARSE_SUB_VERSION 0 -#define SUITESPARSE_SUBSUB_VERSION 0 +#define SUITESPARSE_SUBSUB_VERSION 1 #define SUITESPARSE_VER_CODE(main,sub) ((main) * 1000 + (sub)) #define SUITESPARSE_VERSION \ @@ -689,6 +689,20 @@ int SuiteSparse_version // returns SUITESPARSE_VERSION // See https://netlib.org/blas/ and https://netlib.org/lapack/ for the // definitions of the inputs/outputs of these functions. +// These prototypes need to be found by UMFPACK, CHOLMOD, and SPQR, and to do +// so, they need to appear in this public header to ensure the correct BLAS +// library and integer size is used. However, these definitions should not +// (normally) be exposed to the user application. + +// If a user application wishes to use these definitions, simply add + +// #define SUITESPARSE_BLAS_DEFINITIONS +// #include "SuiteSparse_config.h" + +// prior to #include'ing any SuiteSparse headers (amd.h, and so on). + +#if defined ( SUITESPARSE_BLAS_DEFINITIONS ) + void SUITESPARSE_BLAS_DGEMV // Y = alpha*A*x + beta*Y ( // input: @@ -709,15 +723,15 @@ void SUITESPARSE_BLAS_DGEMV // Y = alpha*A*x + beta*Y #define SUITESPARSE_BLAS_dgemv(trans,m,n,alpha,A,lda,X,incx,beta,Y,incy,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCY, incy, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCY_blas_int, incy, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_DGEMV (trans, &M, &N, alpha, A, &LDA, X, &INCX, \ - beta, Y, &INCY) ; \ + SUITESPARSE_BLAS_DGEMV (trans, &M_blas_int, &N_blas_int, alpha, A, \ + &LDA_blas_int, X, &INCX_blas_int, beta, Y, &INCY_blas_int) ; \ } \ } @@ -741,15 +755,15 @@ void SUITESPARSE_BLAS_ZGEMV // Y = alpha*A*X + beta*Y #define SUITESPARSE_BLAS_zgemv(trans,m,n,alpha,A,lda,X,incx,beta,Y,incy,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCY, incy, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCY_blas_int, incy, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_ZGEMV (trans, &M, &N, alpha, A, &LDA, X, &INCX, \ - beta, Y, &INCY) ; \ + SUITESPARSE_BLAS_ZGEMV (trans, &M_blas_int, &N_blas_int, alpha, A, \ + &LDA_blas_int, X, &INCX_blas_int, beta, Y, &INCY_blas_int) ; \ } \ } @@ -770,12 +784,13 @@ void SUITESPARSE_BLAS_DTRSV // solve Lx=b, Ux=b, L'x=b, or U'x=b #define SUITESPARSE_BLAS_dtrsv(uplo,trans,diag,n,A,lda,X,incx,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_DTRSV (uplo, trans, diag, &N, A, &LDA, X, &INCX) ; \ + SUITESPARSE_BLAS_DTRSV (uplo, trans, diag, &N_blas_int, A, \ + &LDA_blas_int, X, &INCX_blas_int) ; \ } \ } @@ -796,12 +811,13 @@ void SUITESPARSE_BLAS_ZTRSV // solve (L, L', L^H, U, U', or U^H)x=b #define SUITESPARSE_BLAS_ztrsv(uplo,trans,diag,n,A,lda,X,incx,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_ZTRSV (uplo, trans, diag, &N, A, &LDA, X, &INCX) ; \ + SUITESPARSE_BLAS_ZTRSV (uplo, trans, diag, &N_blas_int, A, \ + &LDA_blas_int, X, &INCX_blas_int) ; \ } \ } @@ -825,14 +841,14 @@ void SUITESPARSE_BLAS_DTRSM // solve LX=B, UX=B, L'X=B, or U'X=B #define SUITESPARSE_BLAS_dtrsm(side,uplo,transa,diag,m,n,alpha,A,lda,B,ldb,ok)\ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDB, ldb, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDB_blas_int, ldb, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_DTRSM (side, uplo, transa, diag, &M, &N, alpha, A, \ - &LDA, B, &LDB) ; \ + SUITESPARSE_BLAS_DTRSM (side, uplo, transa, diag, &M_blas_int, \ + &N_blas_int, alpha, A, &LDA_blas_int, B, &LDB_blas_int) ; \ } \ } @@ -856,14 +872,14 @@ void SUITESPARSE_BLAS_ZTRSM // solve (L, L', L^H, U, U', or U^H)X=B #define SUITESPARSE_BLAS_ztrsm(side,uplo,transa,diag,m,n,alpha,A,lda,B,ldb,ok)\ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDB, ldb, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDB_blas_int, ldb, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_ZTRSM (side, uplo, transa, diag, &M, &N, alpha, A, \ - &LDA, B, &LDB) ; \ + SUITESPARSE_BLAS_ZTRSM (side, uplo, transa, diag, &M_blas_int, \ + &N_blas_int, alpha, A, &LDA_blas_int, B, &LDB_blas_int) ; \ } \ } @@ -890,16 +906,17 @@ void SUITESPARSE_BLAS_DGEMM // C = alpha*A*B + beta*C #define SUITESPARSE_BLAS_dgemm(transa,transb,m,n,k,alpha,A,lda,B,ldb,beta, \ C,ldc,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (K, k, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDB, ldb, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDC, ldc, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (K_blas_int, k, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDB_blas_int, ldb, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDC_blas_int, ldc, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_DGEMM (transa, transb, &M, &N, &K, alpha, A, &LDA, \ - B, &LDB, beta, C, &LDC) ; \ + SUITESPARSE_BLAS_DGEMM (transa, transb, &M_blas_int, &N_blas_int, \ + &K_blas_int, alpha, A, &LDA_blas_int, B, &LDB_blas_int, beta, C, \ + &LDC_blas_int) ; \ } \ } @@ -926,16 +943,17 @@ void SUITESPARSE_BLAS_ZGEMM // C = alpha*A*B + beta*C #define SUITESPARSE_BLAS_zgemm(transa,transb,m,n,k,alpha,A,lda,B,ldb,beta, \ C,ldc,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (K, k, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDB, ldb, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDC, ldc, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (K_blas_int, k, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDB_blas_int, ldb, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDC_blas_int, ldc, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_ZGEMM (transa, transb, &M, &N, &K, alpha, A, &LDA, \ - B, &LDB, beta, C, &LDC) ; \ + SUITESPARSE_BLAS_ZGEMM (transa, transb, &M_blas_int, &N_blas_int, \ + &K_blas_int, alpha, A, &LDA_blas_int, B, &LDB_blas_int, beta, C, \ + &LDC_blas_int) ; \ } \ } @@ -958,14 +976,14 @@ void SUITESPARSE_BLAS_DSYRK // C = alpha*A*A' + beta*C, or A'A #define SUITESPARSE_BLAS_dsyrk(uplo,trans,n,k,alpha,A,lda,beta,C,ldc,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (K, k, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDC, ldc, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (K_blas_int, k, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDC_blas_int, ldc, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_DSYRK (uplo, trans, &N, &K, alpha, A, &LDA, \ - beta, C, &LDC) ; \ + SUITESPARSE_BLAS_DSYRK (uplo, trans, &N_blas_int, &K_blas_int, alpha, \ + A, &LDA_blas_int, beta, C, &LDC_blas_int) ; \ } \ } @@ -988,14 +1006,14 @@ void SUITESPARSE_BLAS_ZHERK // C = alpha*A*A^H + beta*C, or A^H*A #define SUITESPARSE_BLAS_zherk(uplo,trans,n,k,alpha,A,lda,beta,C,ldc,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (K, k, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDC, ldc, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (K_blas_int, k, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDC_blas_int, ldc, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_ZHERK (uplo, trans, &N, &K, alpha, A, &LDA, \ - beta, C, &LDC) ; \ + SUITESPARSE_BLAS_ZHERK (uplo, trans, &N_blas_int, &K_blas_int, alpha, \ + A, &LDA_blas_int, beta, C, &LDC_blas_int) ; \ } \ } @@ -1014,13 +1032,14 @@ void SUITESPARSE_LAPACK_DPOTRF // Cholesky factorization #define SUITESPARSE_LAPACK_dpotrf(uplo,n,A,lda,info,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ info = 1 ; \ if (ok) \ { \ SUITESPARSE_BLAS_INT LAPACK_Info = -999 ; \ - SUITESPARSE_LAPACK_DPOTRF (uplo, &N, A, &LDA, &LAPACK_Info) ; \ + SUITESPARSE_LAPACK_DPOTRF (uplo, &N_blas_int, A, &LDA_blas_int, \ + &LAPACK_Info) ; \ info = (Int) LAPACK_Info ; \ } \ } @@ -1040,13 +1059,14 @@ void SUITESPARSE_LAPACK_ZPOTRF // Cholesky factorization #define SUITESPARSE_LAPACK_zpotrf(uplo,n,A,lda,info,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ info = 1 ; \ if (ok) \ { \ SUITESPARSE_BLAS_INT LAPACK_Info = -999 ; \ - SUITESPARSE_LAPACK_ZPOTRF (uplo, &N, A, &LDA, &LAPACK_Info) ; \ + SUITESPARSE_LAPACK_ZPOTRF (uplo, &N_blas_int, A, &LDA_blas_int, \ + &LAPACK_Info) ; \ info = LAPACK_Info ; \ } \ } @@ -1064,11 +1084,11 @@ void SUITESPARSE_BLAS_DSCAL // Y = alpha*Y #define SUITESPARSE_BLAS_dscal(n,alpha,Y,incy,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCY, incy, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCY_blas_int, incy, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_DSCAL (&N, alpha, Y, &INCY) ; \ + SUITESPARSE_BLAS_DSCAL (&N_blas_int, alpha, Y, &INCY_blas_int) ; \ } \ } @@ -1085,11 +1105,11 @@ void SUITESPARSE_BLAS_ZSCAL // Y = alpha*Y #define SUITESPARSE_BLAS_zscal(n,alpha,Y,incy,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCY, incy, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCY_blas_int, incy, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_ZSCAL (&N, alpha, Y, &INCY) ; \ + SUITESPARSE_BLAS_ZSCAL (&N_blas_int, alpha, Y, &INCY_blas_int) ; \ } \ } @@ -1111,14 +1131,15 @@ void SUITESPARSE_BLAS_DGER // A = alpha*x*y' + A #define SUITESPARSE_BLAS_dger(m,n,alpha,X,incx,Y,incy,A,lda,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCY, incy, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCY_blas_int, incy, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_DGER (&M, &N, alpha, X, &INCX, Y, &INCY, A, &LDA) ; \ + SUITESPARSE_BLAS_DGER (&M_blas_int, &N_blas_int, alpha, X, \ + &INCX_blas_int, Y, &INCY_blas_int, A, &LDA_blas_int) ; \ } \ } @@ -1140,14 +1161,15 @@ void SUITESPARSE_BLAS_ZGERU // A = alpha*x*y' + A #define SUITESPARSE_BLAS_zgeru(m,n,alpha,X,incx,Y,incy,A,lda,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCY, incy, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDA, lda, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCY_blas_int, incy, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDA_blas_int, lda, ok) ; \ if (ok) \ { \ - SUITESPARSE_BLAS_ZGERU (&M, &N, alpha, X, &INCX, Y, &INCY, A, &LDA) ; \ + SUITESPARSE_BLAS_ZGERU (&M_blas_int, &N_blas_int, alpha, X, \ + &INCX_blas_int, Y, &INCY_blas_int, A, &LDA_blas_int) ; \ } \ } @@ -1169,14 +1191,14 @@ void SUITESPARSE_LAPACK_DLARFT // T = block Householder factor #define SUITESPARSE_LAPACK_dlarft(direct,storev,n,k,V,ldv,Tau,T,ldt,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (K, k, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDV, ldv, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDT, ldt, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (K_blas_int, k, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDV_blas_int, ldv, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDT_blas_int, ldt, ok) ; \ if (ok) \ { \ - SUITESPARSE_LAPACK_DLARFT (direct, storev, &N, &K, V, &LDV, Tau, \ - T, &LDT) ; \ + SUITESPARSE_LAPACK_DLARFT (direct, storev, &N_blas_int, &K_blas_int, \ + V, &LDV_blas_int, Tau, T, &LDT_blas_int) ; \ } \ } @@ -1198,14 +1220,14 @@ void SUITESPARSE_LAPACK_ZLARFT // T = block Householder factor #define SUITESPARSE_LAPACK_zlarft(direct,storev,n,k,V,ldv,Tau,T,ldt,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (K, k, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDV, ldv, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDT, ldt, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (K_blas_int, k, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDV_blas_int, ldv, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDT_blas_int, ldt, ok) ; \ if (ok) \ { \ - SUITESPARSE_LAPACK_ZLARFT (direct, storev, &N, &K, V, &LDV, Tau, \ - T, &LDT) ; \ + SUITESPARSE_LAPACK_ZLARFT (direct, storev, &N_blas_int, &K_blas_int, \ + V, &LDV_blas_int, Tau, T, &LDT_blas_int) ; \ } \ } @@ -1236,17 +1258,18 @@ void SUITESPARSE_LAPACK_DLARFB // apply block Householder reflector #define SUITESPARSE_LAPACK_dlarfb(side,trans,direct,storev,m,n,k,V,ldv,T,ldt, \ C,ldc,Work,ldwork,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (K, k, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDV, ldv, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDT, ldt, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDC, ldc, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDWORK, ldwork, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (K_blas_int, k, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDV_blas_int, ldv, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDT_blas_int, ldt, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDC_blas_int, ldc, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDWORK_blas_int, ldwork, ok) ; \ if (ok) \ { \ - SUITESPARSE_LAPACK_DLARFB (side, trans, direct, storev, &M, &N, &K, \ - V, &LDV, T, &LDT, C, &LDC, Work, &LDWORK) ; \ + SUITESPARSE_LAPACK_DLARFB (side, trans, direct, storev, &M_blas_int, \ + &N_blas_int, &K_blas_int, V, &LDV_blas_int, T, &LDT_blas_int, C, \ + &LDC_blas_int, Work, &LDWORK_blas_int) ; \ } \ } @@ -1277,17 +1300,18 @@ void SUITESPARSE_LAPACK_ZLARFB // apply block Householder reflector #define SUITESPARSE_LAPACK_zlarfb(side,trans,direct,storev,m,n,k,V,ldv,T,ldt, \ C,ldc,Work,ldwork,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (K, k, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDV, ldv, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDT, ldt, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDC, ldc, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDWORK, ldwork, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (K_blas_int, k, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDV_blas_int, ldv, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDT_blas_int, ldt, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDC_blas_int, ldc, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDWORK_blas_int, ldwork, ok) ; \ if (ok) \ { \ - SUITESPARSE_LAPACK_ZLARFB (side, trans, direct, storev, &M, &N, &K, \ - V, &LDV, T, &LDT, C, &LDC, Work, &LDWORK) ; \ + SUITESPARSE_LAPACK_ZLARFB (side, trans, direct, storev, &M_blas_int, \ + &N_blas_int, &K_blas_int, V, &LDV_blas_int, T, &LDT_blas_int, C, \ + &LDC_blas_int, Work, &LDWORK_blas_int) ; \ } \ } @@ -1301,12 +1325,12 @@ double SUITESPARSE_BLAS_DNRM2 // vector 2-norm #define SUITESPARSE_BLAS_dnrm2(result,n,X,incx,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ result = 0 ; \ if (ok) \ { \ - result = SUITESPARSE_BLAS_DNRM2 (&N, X, &INCX) ; \ + result = SUITESPARSE_BLAS_DNRM2 (&N_blas_int, X, &INCX_blas_int) ; \ } \ } @@ -1320,12 +1344,12 @@ double SUITESPARSE_BLAS_DZNRM2 // vector 2-norm #define SUITESPARSE_BLAS_dznrm2(result,n,X,incx,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ result = 0 ; \ if (ok) \ { \ - result = SUITESPARSE_BLAS_DZNRM2 (&N, X, &INCX) ; \ + result = SUITESPARSE_BLAS_DZNRM2 (&N_blas_int, X, &INCX_blas_int) ; \ } \ } @@ -1344,11 +1368,12 @@ void SUITESPARSE_LAPACK_DLARFG // generate Householder reflector #define SUITESPARSE_LAPACK_dlarfg(n,alpha,X,incx,tau,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ if (ok) \ { \ - SUITESPARSE_LAPACK_DLARFG (&N, alpha, X, &INCX, tau) ; \ + SUITESPARSE_LAPACK_DLARFG (&N_blas_int, alpha, X, &INCX_blas_int, \ + tau) ; \ } \ } @@ -1367,11 +1392,12 @@ void SUITESPARSE_LAPACK_ZLARFG // generate Householder reflector #define SUITESPARSE_LAPACK_zlarfg(n,alpha,X,incx,tau,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCX, incx, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCX_blas_int, incx, ok) ; \ if (ok) \ { \ - SUITESPARSE_LAPACK_ZLARFG (&N, alpha, X, &INCX, tau) ; \ + SUITESPARSE_LAPACK_ZLARFG (&N_blas_int, alpha, X, &INCX_blas_int, \ + tau) ; \ } \ } @@ -1394,14 +1420,14 @@ void SUITESPARSE_LAPACK_DLARF // apply Householder reflector #define SUITESPARSE_LAPACK_dlarf(side,m,n,V,incv,tau,C,ldc,Work,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCV, incv, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDC, ldc, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCV_blas_int, incv, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDC_blas_int, ldc, ok) ; \ if (ok) \ { \ - SUITESPARSE_LAPACK_DLARF (side, &M, &N, V, &INCV, tau, C, &LDC, \ - Work) ; \ + SUITESPARSE_LAPACK_DLARF (side, &M_blas_int, &N_blas_int, V, \ + &INCV_blas_int, tau, C, &LDC_blas_int, Work) ; \ } \ } @@ -1424,17 +1450,19 @@ void SUITESPARSE_LAPACK_ZLARF // apply Householder reflector #define SUITESPARSE_LAPACK_zlarf(side,m,n,V,incv,tau,C,ldc,Work,ok) \ { \ - SUITESPARSE_TO_BLAS_INT (M, m, ok) ; \ - SUITESPARSE_TO_BLAS_INT (N, n, ok) ; \ - SUITESPARSE_TO_BLAS_INT (INCV, incv, ok) ; \ - SUITESPARSE_TO_BLAS_INT (LDC, ldc, ok) ; \ + SUITESPARSE_TO_BLAS_INT (M_blas_int, m, ok) ; \ + SUITESPARSE_TO_BLAS_INT (N_blas_int, n, ok) ; \ + SUITESPARSE_TO_BLAS_INT (INCV_blas_int, incv, ok) ; \ + SUITESPARSE_TO_BLAS_INT (LDC_blas_int, ldc, ok) ; \ if (ok) \ { \ - SUITESPARSE_LAPACK_ZLARF (side, &M, &N, V, &INCV, tau, C, &LDC, \ - Work) ; \ + SUITESPARSE_LAPACK_ZLARF (side, &M_blas_int, &N_blas_int, V, \ + &INCV_blas_int, tau, C, &LDC_blas_int, Work) ; \ } \ } +#endif + //------------------------------------------------------------------------------ // SuiteSparse_BLAS_library: return name of BLAS library found //------------------------------------------------------------------------------ diff --git a/UMFPACK/CMakeLists.txt b/UMFPACK/CMakeLists.txt index c3a0e07d1..8f746ec33 100644 --- a/UMFPACK/CMakeLists.txt +++ b/UMFPACK/CMakeLists.txt @@ -15,7 +15,7 @@ cmake_minimum_required ( VERSION 3.22 ) set ( UMFPACK_DATE "Nov 12, 2022" ) set ( UMFPACK_VERSION_MAJOR 6 ) set ( UMFPACK_VERSION_MINOR 0 ) -set ( UMFPACK_VERSION_SUB 0 ) +set ( UMFPACK_VERSION_SUB 1 ) message ( STATUS "Building UMFPACK version: v" ${UMFPACK_VERSION_MAJOR}. diff --git a/UMFPACK/Doc/ChangeLog b/UMFPACK/Doc/ChangeLog index 051bb2129..d40c1d0f0 100644 --- a/UMFPACK/Doc/ChangeLog +++ b/UMFPACK/Doc/ChangeLog @@ -1,3 +1,7 @@ +Nov 12, 2022: version 6.0.1 + + * BLAS definitions: no longer exposed to the user application + Nov 12, 2022: version 6.0.0 * using CMake build system diff --git a/UMFPACK/Doc/umfpack_version.tex b/UMFPACK/Doc/umfpack_version.tex index cf30e6113..9528c7c98 100644 --- a/UMFPACK/Doc/umfpack_version.tex +++ b/UMFPACK/Doc/umfpack_version.tex @@ -1,2 +1,2 @@ % version of SuiteSparse/UMFPACK -\date{VERSION 6.0.0, Nov 12, 2022} +\date{VERSION 6.0.1, Nov 12, 2022} diff --git a/UMFPACK/Include/umfpack.h b/UMFPACK/Include/umfpack.h index d05ab8459..c3053893c 100644 --- a/UMFPACK/Include/umfpack.h +++ b/UMFPACK/Include/umfpack.h @@ -85,7 +85,7 @@ extern "C" { #define UMFPACK_DATE "Nov 12, 2022" #define UMFPACK_MAIN_VERSION 6 #define UMFPACK_SUB_VERSION 0 -#define UMFPACK_SUBSUB_VERSION 0 +#define UMFPACK_SUBSUB_VERSION 1 #define UMFPACK_VER_CODE(main,sub) ((main) * 1000 + (sub)) #define UMFPACK_VER UMFPACK_VER_CODE(UMFPACK_MAIN_VERSION,UMFPACK_SUB_VERSION) diff --git a/UMFPACK/Source/umf_internal.h b/UMFPACK/Source/umf_internal.h index 28c2cef1d..d1fc1c336 100644 --- a/UMFPACK/Source/umf_internal.h +++ b/UMFPACK/Source/umf_internal.h @@ -91,6 +91,7 @@ /* -------------------------------------------------------------------------- */ /* stdio.h, stdlib.h, limits.h, and math.h, NDEBUG definition, assert.h */ +#define SUITESPARSE_BLAS_DEFINITIONS #include "amd_internal.h" /* -------------------------------------------------------------------------- */