diff --git a/CHOLMOD/Doc/ChangeLog b/CHOLMOD/Doc/ChangeLog index 4967579772..9addb64ea2 100644 --- a/CHOLMOD/Doc/ChangeLog +++ b/CHOLMOD/Doc/ChangeLog @@ -1,4 +1,9 @@ -Jan 7, 2017: version 3.0.4 +Jan 19, 2015: version 3.0.5 + + * minor bug fix to cholmod_symmetry.c for the 'quick return' + (option == 0). + +Jan 7, 2015: version 3.0.4 * serious bug fix to supernodal factorization. The bug was introduced in CHOLMOD v3.0.0 when the GPU acceleration was given a major update. diff --git a/CHOLMOD/Doc/UserGuide.pdf b/CHOLMOD/Doc/UserGuide.pdf index 58e61d8de8..63e89f0f4b 100644 Binary files a/CHOLMOD/Doc/UserGuide.pdf and b/CHOLMOD/Doc/UserGuide.pdf differ diff --git a/CHOLMOD/Doc/UserGuide.tex b/CHOLMOD/Doc/UserGuide.tex index 0260448e4b..66f49cd0e2 100644 --- a/CHOLMOD/Doc/UserGuide.tex +++ b/CHOLMOD/Doc/UserGuide.tex @@ -21,7 +21,7 @@ \title{User Guide for CHOLMOD: a sparse Cholesky factorization and modification package} -\date{VERSION 3.0.4, Jan 7, 2015} +\date{VERSION 3.0.5, Jan 19, 2015} \maketitle %------------------------------------------------------------------------------- @@ -47,7 +47,7 @@ \end{abstract} %------------------------------------------------------------------------------- -CHOLMOD Copyright\copyright 2005-2014 by Timothy A. Davis. Portions are also +CHOLMOD Copyright\copyright 2005-2015 by Timothy A. Davis. Portions are also copyrighted by William W. Hager (the {\tt Modify} Module), and the University of Florida (the {\tt Partition} and {\tt Core} Modules). All Rights Reserved. Some of CHOLMOD's Modules are distributed under the GNU diff --git a/CHOLMOD/Include/cholmod_core.h b/CHOLMOD/Include/cholmod_core.h index 1912c2efda..42c4e59c92 100644 --- a/CHOLMOD/Include/cholmod_core.h +++ b/CHOLMOD/Include/cholmod_core.h @@ -250,7 +250,7 @@ #define CHOLMOD_VER_CODE(main,sub) ((main) * 1000 + (sub)) #define CHOLMOD_MAIN_VERSION 3 #define CHOLMOD_SUB_VERSION 0 -#define CHOLMOD_SUBSUB_VERSION 4 +#define CHOLMOD_SUBSUB_VERSION 5 #define CHOLMOD_VERSION \ CHOLMOD_VER_CODE(CHOLMOD_MAIN_VERSION,CHOLMOD_SUB_VERSION) diff --git a/CHOLMOD/MATLAB/Test/cholmod_test.m b/CHOLMOD/MATLAB/Test/cholmod_test.m index 1dded814ec..0d281e24f4 100644 --- a/CHOLMOD/MATLAB/Test/cholmod_test.m +++ b/CHOLMOD/MATLAB/Test/cholmod_test.m @@ -106,7 +106,7 @@ function cholmod_test (nmat, do_diary) do_metis = 0 ; end -tt = 34 ; +tt = 35 ; h = waitbar (0.5/tt, 'CHOLMOD demo:') ; @@ -167,6 +167,7 @@ function cholmod_test (nmat, do_diary) ltest ; waitbar (32/tt, h, 'CHOLMOD ltest') ; lxtest ; waitbar (33/tt, h, 'CHOLMOD lxtest') ; + test29 ; waitbar (34/tt, h, 'CHOLMOD test29') ; waitbar (tt/tt, h, 'CHOLMOD test done') ; fprintf ('=============================================================\n'); diff --git a/CHOLMOD/MATLAB/Test/test29.m b/CHOLMOD/MATLAB/Test/test29.m new file mode 100644 index 0000000000..4fbc1f6f24 --- /dev/null +++ b/CHOLMOD/MATLAB/Test/test29.m @@ -0,0 +1,141 @@ +function test29 +%TEST29 test spsym +% Example: +% spsym +% See also cholmod_test + +% Copyright 2015, Timothy A. Davis, http://www.suitesparse.com + +rand ('state', 0) ; + +r = zeros (0,2) ; +for n = 0:5 + + % real unsymmetric, diagonal all nonzero + A = sparse (rand (n,n)) ; + r = [r ; test_spsym(A)] ; + + % real symmetric, diagonal all nonzero + A = A+A' ; + r = [r ; test_spsym(A)] ; + + % real unsymmetric, diagonal all nonzero + A (2,1) = 0 ; + r = [r ; test_spsym(A)] ; + + % real symmetric, diagonal all zero + A = sparse (n,n) ; + r = [r ; test_spsym(A)] ; + + % real symmetric, diagonal all nonzero + A = speye (n,n) ; + r = [r ; test_spsym(A)] ; + + % real symmetric, diagonal mostly nonzero + A (2,2) = 0 ; + r = [r ; test_spsym(A)] ; + + % real rectangular, or square unsymmetric + for m = 0:5 + A = sparse (rand (n,m)) ; + r = [r ; test_spsym(A)] ; + end + + % skew symmetric when n > 1 + A = tril (sparse (rand (n,n)), -1) ; + A = A-A' ; + c = test_spsym(A) ; + r = [r ; c ] ; + + % complex Hermitian (when n > 1) + A = sparse (rand (n,n)) + 1i * sparse (rand (n,n)) ; + A = A+A' ; + c = test_spsym(A) ; + r = [r ; c ] ; + + % complex Hermitian but with non-positive diagonal (when n > 1) + A (3,3) = -1 ; + c = test_spsym(A) ; + r = [r ; c] ; + +end + +r = unique (r, 'rows') ; +rtrue = [ + 1 1 + 2 2 + 3 2 + 4 2 + 5 2 + 6 6 + 7 7 ] ; +if (~isequal (r, rtrue)) + error ('failed. Incomplete test cases') ; +end + +% test with the UF sparse matrix collection +r = zeros (0,2) ; +index = UFget ; +for i = [168 27 2137 56 231 1621 -1621] ; + Prob = UFget (abs (i),index) + A = Prob.A ; + if (i < 0) + % UF collection does not contain any matrices for which spsym(A) = 4. + % (complex Hermitian with zero nonpos. diagonal). So make one. + fprintf ('setting A (5,5) = 0\n') ; + A (5,5) = 0 ; + end + c = test_spsym (A) ; + c + fprintf ('full test:') ; print_result (c (1)) ; + fprintf ('quick test:') ; print_result (c (2)) ; + r = [r ; c] ; +end + +r = unique (r, 'rows') ; +if (~isequal (r, rtrue)) + error ('failed. Incomplete test cases') ; +end + +%------------------------------------------------------------------------------- + +function r = test_spsym (A) +s1 = spsym (A) ; +s2 = get_symmetry (A) ; +if (s1 ~= s2) + error ('failed!') +end +s3 = spsym (A,0) ; +s4 = get_symmetry (A,0) ; +if (s3 ~= s1 || s4 ~= s1) + error ('failed!') +end +s5 = spsym (A,1) ; +s6 = get_symmetry (A,1) ; +if (s5 ~= s6) + error ('failed!') +end +r = [s1 s5] ; % r(1) is the full test, r(2) is the quick test + +%------------------------------------------------------------------------------- + +function print_result (s) +switch (s) +case 1 + fprintf ('rectangular\n') ; +case 2 + fprintf ('unsymmetric (or not Cholesky candidate for quick test)\n') ; +case 3 + fprintf ('symmetric, but with one or more A(j,j) <= 0\n') ; +case 4 + fprintf ('Hermitian, but with one or more A(j,j) <= 0 or with nonzero imaginary part\n') ; +case 5 + fprintf ('skew symmetric\n') ; +case 6 + fprintf ('symmetric with real positive diagonal\n') ; +case 7 + fprintf ('Hermitian with real positive diagonal\n') ; +otherwise + error ('unknown result') ; +end + diff --git a/CHOLMOD/Makefile b/CHOLMOD/Makefile index dd08f74744..5412c0bb93 100644 --- a/CHOLMOD/Makefile +++ b/CHOLMOD/Makefile @@ -2,7 +2,7 @@ # CHOLMOD Makefile #------------------------------------------------------------------------------- -VERSION = 3.0.3 +VERSION = 3.0.5 # Note: If you do not have METIS, or do not wish to use it in CHOLMOD, you must # compile CHOLMOD with the -DNPARTITION flag. diff --git a/CHOLMOD/MatrixOps/cholmod_symmetry.c b/CHOLMOD/MatrixOps/cholmod_symmetry.c index 6bda9dcebd..3bae8c7bdc 100644 --- a/CHOLMOD/MatrixOps/cholmod_symmetry.c +++ b/CHOLMOD/MatrixOps/cholmod_symmetry.c @@ -441,7 +441,7 @@ int CHOLMOD(symmetry) /* quick return if not Cholesky candidate */ /* ------------------------------------------------------------------ */ - if (option < 1 && (!posdiag || nzdiag < ncol)) + if (option < 1 && (!posdiag || nzdiag <= j)) { /* Diagonal entry not present, or present but negative or with * nonzero imaginary part. Quick return for option 0. */ diff --git a/CHOLMOD/Tcov/Makefile b/CHOLMOD/Tcov/Makefile index 05a03d28f5..37274af008 100644 --- a/CHOLMOD/Tcov/Makefile +++ b/CHOLMOD/Tcov/Makefile @@ -23,6 +23,9 @@ CC = gcc # to test with everthing C = $(CC) $(CF) $(CHOLMOD_CONFIG) $(NANTESTS) +# default LAPACK and BLAS from SuiteSparse_config.mk: + LIB = $(METIS) -lm $(LAPACK) $(BLAS) + # optimized LAPACK and BLAS # LIB = $(METIS) -lm $(LAPACK) $(BLAS) $(XERBLA) -L/shared/apps/rhel-6.2/intel/ics-2013/lib/intel64 -liomp5 @@ -31,7 +34,7 @@ C = $(CC) $(CF) $(CHOLMOD_CONFIG) $(NANTESTS) # LIB = $(METIS) -lm -llapack_plain -lblas_plain -lgfortran -lgfortranbegin # LIB = $(METIS) -lm -llapack -lblas -lgfortran -lgfortranbegin # Linux: - LIB = $(METIS) -lm -llapack_plain -lblas_plain -lgfortran -lgfortranbegin -lpthread -lrt +# LIB = $(METIS) -lm -llapack_plain -lblas_plain -lgfortran -lgfortranbegin -lpthread -lrt # Mac: # LIB = $(METIS) -lm -llapack -lblas -lgfortran -lgfortranbegin -lpthread diff --git a/CHOLMOD/Tcov/tmp/.gitignore b/CHOLMOD/Tcov/tmp/.gitignore new file mode 100644 index 0000000000..5e7d2734cf --- /dev/null +++ b/CHOLMOD/Tcov/tmp/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/CHOLMOD/Tcov/tmp/.gitkeep b/CHOLMOD/Tcov/tmp/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/CHOLMOD/Valgrind/tmp/.gitignore b/CHOLMOD/Valgrind/tmp/.gitignore new file mode 100644 index 0000000000..5e7d2734cf --- /dev/null +++ b/CHOLMOD/Valgrind/tmp/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/CHOLMOD/Valgrind/tmp/.gitkeep b/CHOLMOD/Valgrind/tmp/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/CSparse/MATLAB/UFget/MM/.gitignore b/CSparse/MATLAB/UFget/MM/.gitignore new file mode 100644 index 0000000000..5e7d2734cf --- /dev/null +++ b/CSparse/MATLAB/UFget/MM/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/CSparse/MATLAB/UFget/MM/.gitkeep b/CSparse/MATLAB/UFget/MM/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/CSparse/MATLAB/UFget/RB/.gitignore b/CSparse/MATLAB/UFget/RB/.gitignore new file mode 100644 index 0000000000..5e7d2734cf --- /dev/null +++ b/CSparse/MATLAB/UFget/RB/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/CSparse/MATLAB/UFget/RB/.gitkeep b/CSparse/MATLAB/UFget/RB/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/CSparse/MATLAB/UFget/svd/.gitignore b/CSparse/MATLAB/UFget/svd/.gitignore new file mode 100644 index 0000000000..5e7d2734cf --- /dev/null +++ b/CSparse/MATLAB/UFget/svd/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/CSparse/MATLAB/UFget/svd/.gitkeep b/CSparse/MATLAB/UFget/svd/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/CXSparse/MATLAB/UFget/MM/.gitignore b/CXSparse/MATLAB/UFget/MM/.gitignore new file mode 100644 index 0000000000..5e7d2734cf --- /dev/null +++ b/CXSparse/MATLAB/UFget/MM/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/CXSparse/MATLAB/UFget/MM/.gitkeep b/CXSparse/MATLAB/UFget/MM/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/CXSparse/MATLAB/UFget/RB/.gitignore b/CXSparse/MATLAB/UFget/RB/.gitignore new file mode 100644 index 0000000000..5e7d2734cf --- /dev/null +++ b/CXSparse/MATLAB/UFget/RB/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/CXSparse/MATLAB/UFget/RB/.gitkeep b/CXSparse/MATLAB/UFget/RB/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/CXSparse/MATLAB/UFget/svd/.gitignore b/CXSparse/MATLAB/UFget/svd/.gitignore new file mode 100644 index 0000000000..5e7d2734cf --- /dev/null +++ b/CXSparse/MATLAB/UFget/svd/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/CXSparse/MATLAB/UFget/svd/.gitkeep b/CXSparse/MATLAB/UFget/svd/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/ChangeLog b/ChangeLog index 4133256748..e915ffecca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +Mar 24, 2015: SuiteSparse version 4.4.4 + + * CHOLMOD version number corrected. In 4.4.3, the CHOLMOD_SUBSUB_VERSION + string was left at '4' (it should have been '5', for CHOLMOD 3.0.5). + This version of SuiteSparse corrects this glitch. + * Minor changes to comments in SuiteSparse_config. + * SPQR version 2.0.1 released (minor update to documentation) + +Jan 19, 2015: SuiteSparse version 4.4.3 + + * CHOLMOD 3.0.5: minor bug fix to MatrixOps/cholmod_symmetry + Jan 7, 2015: SuiteSparse version 4.4.2 * CHOLMOD 3.0.4: serious bug fix in supernodal factorization, diff --git a/README.txt b/README.txt index c29777c569..8b5f561922 100644 --- a/README.txt +++ b/README.txt @@ -1,6 +1,6 @@ SuiteSparse: A Suite of Sparse matrix packages at http://www.suitesparse.com -Jan 7, 2015. SuiteSparse VERSION 4.4.2 +March 24, 2015. SuiteSparse VERSION 4.4.4 ------------------ SuiteSparse/README diff --git a/SPQR/Demo/Makefile b/SPQR/Demo/Makefile index c432e979d5..4df7c33e4f 100644 --- a/SPQR/Demo/Makefile +++ b/SPQR/Demo/Makefile @@ -195,7 +195,7 @@ purge: distclean - $(RM) -r *.dot pfile tfile distclean: clean - - $(RM) qrdemo qrdemo_gpu qrdemoc qrsimple qrsimplec + - $(RM) qrdemo qrdemo_gpu qrdemoc qrsimple qrsimplec X.mtx - $(RM) -r *.dSYM gpu_results.txt qrdemo_gpu2 qrdemo_gpu3 clean: diff --git a/SPQR/Demo/README.txt b/SPQR/Demo/README.txt index b6a63d01e9..29a4c4b13c 100644 --- a/SPQR/Demo/README.txt +++ b/SPQR/Demo/README.txt @@ -31,6 +31,7 @@ demo_colamd*.sh scripts for running the GPU demo with COLAMD demo_metis*.sh scripts for running the GPU demo with METIS go*.m MATLAB scripts for testing the GPU version qrdemo_gpu*.cpp GPU demos +qrdemo_gpu.out output of qrdemo_gpu.cpp -------------------------------------------------------------------------------- diff --git a/SPQR/Demo/qrdemo_gpu.out b/SPQR/Demo/qrdemo_gpu.out new file mode 100644 index 0000000000..afa9eeba04 --- /dev/null +++ b/SPQR/Demo/qrdemo_gpu.out @@ -0,0 +1,18 @@ +./qrdemo_gpu ../Matrix/west0067.mtx 2 +available GPU memory: 11160.8 MB, warmup time: 0.376328 +Matrix 67-by-67 nnz: 294 + +norm(Ax-b): 4.6e-17 +norm(A'(Ax-b)) 1.6e-14 rank: 67 of 67 +./qrdemo_gpu ../Matrix/lp_e226_transposed.mtx 2 +available GPU memory: 11160.8 MB, warmup time: 0.372199 +Matrix 472-by-223 nnz: 2768 + +norm(Ax-b): 9.2e+00 +norm(A'(Ax-b)) 2.1e-10 rank: 223 of 223 +./qrdemo_gpu ../Matrix/lp_e226_transposed.mtx 6 +available GPU memory: 11160.8 MB, warmup time: 0.36664 +Matrix 472-by-223 nnz: 2768 + +norm(Ax-b): 9.2e+00 +norm(A'(Ax-b)) 4.4e-10 rank: 223 of 223 diff --git a/SPQR/Doc/ChangeLog b/SPQR/Doc/ChangeLog index 467d30e88c..da9e153e6d 100644 --- a/SPQR/Doc/ChangeLog +++ b/SPQR/Doc/ChangeLog @@ -1,3 +1,7 @@ +Mar 24, 2015: version 2.0.1 + + * minor changes to documentation + Oct 17, 2014: version 2.0.0 * MAJOR UPDATE: added GPU support. Up to 11x faster than CPU version. diff --git a/SPQR/Doc/qrgpu_paper.pdf b/SPQR/Doc/qrgpu_paper.pdf index 89297dd1cf..632cfb2f69 100644 Binary files a/SPQR/Doc/qrgpu_paper.pdf and b/SPQR/Doc/qrgpu_paper.pdf differ diff --git a/SPQR/Doc/spqr_user_guide.pdf b/SPQR/Doc/spqr_user_guide.pdf index 3e0702ee4c..bc316525ab 100644 Binary files a/SPQR/Doc/spqr_user_guide.pdf and b/SPQR/Doc/spqr_user_guide.pdf differ diff --git a/SPQR/Doc/spqr_user_guide.tex b/SPQR/Doc/spqr_user_guide.tex index 0345c53842..60aa6f6e79 100644 --- a/SPQR/Doc/spqr_user_guide.tex +++ b/SPQR/Doc/spqr_user_guide.tex @@ -29,7 +29,7 @@ Science Foundation, under grants 0203270, 0620286, and 0619080.}, Sencer Nuri Yeralan, and Sanjay Ranka} -\date{VERSION 2.0.0, Oct 17, 2014} +\date{VERSION 2.0.1, March 24, 2015} %------------------------------------------------------------------------------- \begin{document} @@ -902,10 +902,6 @@ \section{GPU acceleration} GPU acceleration is not yet available via the MATLAB mexFunction interface. We expect to include this in a future release. -This GPU acceleration in SuiteSparseQR has been heavily tested and we feel that -it is now polished enough to appear in SuiteSparse. However, we are also -actively developing this code, so future enhancements are expected. - For a detailed technical report on the GPU-accelerated algorithm, see \verb'qrgpu_paper.pdf' in the \verb'Doc' directory. diff --git a/SPQR/Include/SuiteSparseQR_definitions.h b/SPQR/Include/SuiteSparseQR_definitions.h index a76767f2fe..5a96fdbcf6 100644 --- a/SPQR/Include/SuiteSparseQR_definitions.h +++ b/SPQR/Include/SuiteSparseQR_definitions.h @@ -59,11 +59,11 @@ #endif */ -#define SPQR_DATE "Oct 1, 2014" +#define SPQR_DATE "Mar 24, 2015" #define SPQR_VER_CODE(main,sub) ((main) * 1000 + (sub)) #define SPQR_MAIN_VERSION 2 #define SPQR_SUB_VERSION 0 -#define SPQR_SUBSUB_VERSION 0 +#define SPQR_SUBSUB_VERSION 1 #define SPQR_VERSION SPQR_VER_CODE(SPQR_MAIN_VERSION,SPQR_SUB_VERSION) #endif diff --git a/SPQR/Makefile b/SPQR/Makefile index 06c3a658fc..a4af9fc668 100644 --- a/SPQR/Makefile +++ b/SPQR/Makefile @@ -2,7 +2,7 @@ # SuiteSparseQR Makefile #------------------------------------------------------------------------------- -VERSION = 2.0.0 +VERSION = 2.0.1 include ../SuiteSparse_config/SuiteSparse_config.mk diff --git a/SPQR/README.txt b/SPQR/README.txt index c9a8bc7906..4d748118f0 100644 --- a/SPQR/README.txt +++ b/SPQR/README.txt @@ -1,13 +1,15 @@ -SuiteSparseQR Copyright (c) 2008-2013, Timothy A. Davis, -GPU modules Copyright (c) 2013, Timothy A. Davis, Sencer Nuri Yeralan, +SuiteSparseQR Copyright (c) 2008-2015, Timothy A. Davis, +GPU modules Copyright (c) 2015, Timothy A. Davis, Sencer Nuri Yeralan, and Sanjay Ranka. http://www.suitesparse.com -NOTE: Version 2.0.0 of SuiteSparseQR is an alpha release. This package -adds a major new feature: support for GPU computing. - SuiteSparseQR is a multithreaded, multifrontal, rank-revealing sparse QR -factorization method. +factorization method, with optional GPU acceleration using NVIDIA GPUs. + +Version 2.0.1 of SuiteSparseQR is an major release, with support for GPU +computing. See SPQR/Demo/qrdemo_gpu.cpp, and do 'make gpu' in SPQR/Demo to +test it (compare your output with SPQR/Demo/qrdemo_gpu.out. For more +extensive tests, see SPQR/Demo/go*.m. QUICK START FOR MATLAB USERS (on Windows, Linux, Solaris, or the Mac OS): To compile and test the MATLAB mexFunctions, do this in the MATLAB command window: diff --git a/SPQR/Tcov/Makefile b/SPQR/Tcov/Makefile index 23249c1f72..4d01962f33 100644 --- a/SPQR/Tcov/Makefile +++ b/SPQR/Tcov/Makefile @@ -2,7 +2,7 @@ # SuiteSparseQR/Tcov/Makefile #=============================================================================== -# This test requires METIS +# This test requires METIS, and it only works on Linux. # run statement-coverage test without Valgrind default: $(METIS) go @@ -24,12 +24,12 @@ CF = -pg \ # Use the standard reference BLAS, and LAPACK, both compiled with -g, # for best diagnostics. Also, some BLAS (such as the Goto BLAS) cause # problems for Valgrind (using instructions that Valgrind doesn't understand). - FLIB = -llapack_plain -lblas_plain -lgfortran +# FLIB = -llapack_plain -lblas_plain -lgfortran # FLIB = -llapack_plain -lblas_plain -lgfortran -lg2c # This can be used, but severe valgrind failures may occur in the BLAS, # because of how the BLAS is optimized: -# FLIB = $(LAPACK) $(BLAS) + FLIB = $(LAPACK) $(BLAS) #------------------------------------------------------------------------------- diff --git a/SPQR/Tcov/qrtest.cpp b/SPQR/Tcov/qrtest.cpp index b4e074fe7c..68d022841c 100644 --- a/SPQR/Tcov/qrtest.cpp +++ b/SPQR/Tcov/qrtest.cpp @@ -804,10 +804,14 @@ double erand (double range) Complex erand (Complex range) { + /* Complex x ; x.real ( ) = xrand ( ) ; x.imag ( ) = xrand ( ) ; return (range * x) ; + */ + Complex i = Complex (0,1) ; + return (range * (xrand ( ) + i * xrand ( ))) ; } diff --git a/SuiteSparse_config/Makefile b/SuiteSparse_config/Makefile index daf155986e..474cf8a436 100644 --- a/SuiteSparse_config/Makefile +++ b/SuiteSparse_config/Makefile @@ -2,7 +2,7 @@ # SuiteSparse_config Makefile #------------------------------------------------------------------------------- -VERSION = 4.4.0 +VERSION = 4.4.4 default: ccode diff --git a/SuiteSparse_config/README.txt b/SuiteSparse_config/README.txt index 586a4250c7..38202d4582 100644 --- a/SuiteSparse_config/README.txt +++ b/SuiteSparse_config/README.txt @@ -1,4 +1,4 @@ -SuiteSparse_config, 2014, Timothy A. Davis, http://www.suitesparse.com +SuiteSparse_config, 2015, Timothy A. Davis, http://www.suitesparse.com (formerly the UFconfig package) This directory contains a default SuiteSparse_config.mk file, which @@ -12,11 +12,11 @@ The various config file versions are: SuiteSparse_config_Mac.mk for Mac SuiteSparse_config.mk the actual one in use -To use a GPU for CHOLMOD, using gcc, do this: +To use a GPU for CHOLMOD and SPQR, using gcc, do this: cp SuiteSparse_config_GPU_gcc.mk SuiteSparse_config.mk -To use a GPU for CHOLMOD, using icc and the Intel MKL, do this: +To use a GPU for CHOLMOD and SPQR, using icc and the Intel MKL, do this: cp SuiteSparse_config_GPU_icc.mk SuiteSparse_config.mk @@ -24,7 +24,7 @@ To compile SuiteSparse for the Mac, do this: cp SuiteSparse_config_Mac.mk SuiteSparse_config.mk -To use a GPU for CHOLMOD, using icc and the Intel MKL, +To use a GPU for CHOLMOD and SPQR, using icc and the Intel MKL, and for a system with 10 cores, do this cp SuiteSparse_config_GPU_icc10.mk SuiteSparse_config.mk diff --git a/SuiteSparse_config/SuiteSparse_config.h b/SuiteSparse_config/SuiteSparse_config.h index e14a171d3f..682968f214 100644 --- a/SuiteSparse_config/SuiteSparse_config.h +++ b/SuiteSparse_config/SuiteSparse_config.h @@ -189,14 +189,14 @@ int SuiteSparse_divcomplex * BTF version 1.2.1 * CAMD version 2.4.1 * CCOLAMD version 2.9.1 - * CHOLMOD version 3.0.3 + * CHOLMOD version 3.0.5 * COLAMD version 2.9.1 * CSparse version 3.1.4 * CXSparse version 3.1.4 * KLU version 1.3.2 * LDL version 2.2.1 * RBio version 2.2.1 - * SPQR version 2.0.0 + * SPQR version 2.0.1 * GPUQREngine version 1.0.0 * SuiteSparse_GPURuntime version 1.0.0 * UMFPACK version 5.7.1 @@ -233,11 +233,11 @@ int SuiteSparse_version /* returns SUITESPARSE_VERSION */ */ #define SUITESPARSE_HAS_VERSION_FUNCTION -#define SUITESPARSE_DATE "Jan 7, 2015" +#define SUITESPARSE_DATE "Mar 24, 2015" #define SUITESPARSE_VER_CODE(main,sub) ((main) * 1000 + (sub)) #define SUITESPARSE_MAIN_VERSION 4 #define SUITESPARSE_SUB_VERSION 4 -#define SUITESPARSE_SUBSUB_VERSION 2 +#define SUITESPARSE_SUBSUB_VERSION 4 #define SUITESPARSE_VERSION \ SUITESPARSE_VER_CODE(SUITESPARSE_MAIN_VERSION,SUITESPARSE_SUB_VERSION) diff --git a/SuiteSparse_demo.m b/SuiteSparse_demo.m index ea5a775e0c..2dd77e2646 100644 --- a/SuiteSparse_demo.m +++ b/SuiteSparse_demo.m @@ -4,10 +4,10 @@ function SuiteSparse_demo (matrixpath, dopause) % Example: % SuiteSparse_demo % -% See also umfpack, cholmod, amd, camd, colamd, ccolamd, btf, klu, +% See also umfpack, cholmod, amd, camd, colamd, ccolamd, btf, klu, spqr, % CSparse, CXSparse, ldlsparse -% Copyright 2013, Timothy A. Davis, http://www.suitesparse.com. +% Copyright 2015, Timothy A. Davis, http://www.suitesparse.com. if (nargin < 1 || isempty (matrixpath) || ~ischar (matrixpath)) try diff --git a/SuiteSparse_install.m b/SuiteSparse_install.m index be28a55a7f..073b3430d7 100644 --- a/SuiteSparse_install.m +++ b/SuiteSparse_install.m @@ -38,10 +38,10 @@ function SuiteSparse_install (do_demo) % % This script installs the full-featured CXSparse rather than CSparse. % -% Copyright 1990-2014, Timothy A. Davis, http://www.suitesparse.com. +% Copyright 1990-2015, Timothy A. Davis, http://www.suitesparse.com. % In collaboration with Patrick Amestoy, Yanqing Chen, Iain Duff, John Gilbert, -% Steve Hadfield, William Hager, Stefan Larimore, Leslie Foster, -% Eka Palamadai Natarajan, Esmond Ng, and Siva Rajamanickam. +% Steve Hadfield, William Hager, Stefan Larimore, Leslie Foster, Eka Palamadai +% Natarajan, Esmond Ng, Siva Rajamanickam, Nuri Yeralan, and Sanjay Ranka. %------------------------------------------------------------------------------- % initializations diff --git a/SuiteSparse_test.m b/SuiteSparse_test.m index f9d230d456..e1a4913a81 100644 --- a/SuiteSparse_test.m +++ b/SuiteSparse_test.m @@ -10,7 +10,7 @@ % % See also SuiteSparse_install, SuiteSparse_demo. -% Copyright 1990-2013, Timothy A. Davis, http://www.suitesparse.com. +% Copyright 1990-2015, Timothy A. Davis, http://www.suitesparse.com. help SuiteSparse_test diff --git a/UFget/MM/.gitignore b/UFget/MM/.gitignore new file mode 100644 index 0000000000..5e7d2734cf --- /dev/null +++ b/UFget/MM/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/UFget/MM/.gitkeep b/UFget/MM/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/UFget/RB/.gitignore b/UFget/RB/.gitignore new file mode 100644 index 0000000000..5e7d2734cf --- /dev/null +++ b/UFget/RB/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/UFget/RB/.gitkeep b/UFget/RB/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/UFget/svd/.gitignore b/UFget/svd/.gitignore new file mode 100644 index 0000000000..5e7d2734cf --- /dev/null +++ b/UFget/svd/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/UFget/svd/.gitkeep b/UFget/svd/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/UMFPACK/Demo/tmp/.gitignore b/UMFPACK/Demo/tmp/.gitignore new file mode 100644 index 0000000000..5e7d2734cf --- /dev/null +++ b/UMFPACK/Demo/tmp/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/UMFPACK/Demo/tmp/.gitkeep b/UMFPACK/Demo/tmp/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/UMFPACK/Tcov/Out/.gitignore b/UMFPACK/Tcov/Out/.gitignore new file mode 100644 index 0000000000..5e7d2734cf --- /dev/null +++ b/UMFPACK/Tcov/Out/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/UMFPACK/Tcov/Out/.gitkeep b/UMFPACK/Tcov/Out/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000