diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..172cd84d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,184 @@ +# Ignore these files: +*.o +*.so.* +*.so +*.dylib +*.a +*.obj +*.ln +*.bb +*.bbg +*.da +*.tcov +*.gcov +gmon.out +*.bak +*.d +*.gcda +*.gcno +*.aux +*.bbl +*.blg +*.log +*.toc +*.dvi +*.lof +*.lot +*.dll +*.dSYM +my_*.out +*.gcda +*.gcno +*.mex* +*.profile +*.swp + +# ignore these specific programs in the Package/Demo directories +AMD/Demo/amd_demo +AMD/Demo/amd_demo2 +AMD/Demo/amd_l_demo +AMD/Demo/amd_simple +CAMD/Demo/camd_demo +CAMD/Demo/camd_demo2 +CAMD/Demo/camd_l_demo +CAMD/Demo/camd_simple +CCOLAMD/Demo/ccolamd_example +CCOLAMD/Demo/ccolamd_l_example +CHOLMOD/Demo/cholmod_demo +CHOLMOD/Demo/cholmod_l_demo +CHOLMOD/Demo/cholmod_simple +CHOLMOD/Demo/timelog.m +COLAMD/Demo/colamd_example +COLAMD/Demo/colamd_l_example +CSparse/Demo/cs_demo1 +CSparse/Demo/cs_demo2 +CSparse/Demo/cs_demo3 +CXSparse/Demo/cs_ci_demo1 +CXSparse/Demo/cs_ci_demo2 +CXSparse/Demo/cs_ci_demo3 +CXSparse/Demo/cs_cl_demo1 +CXSparse/Demo/cs_cl_demo2 +CXSparse/Demo/cs_cl_demo3 +CXSparse/Demo/cs_demo1 +CXSparse/Demo/cs_demo2 +CXSparse/Demo/cs_demo3 +CXSparse/Demo/cs_di_demo1 +CXSparse/Demo/cs_di_demo2 +CXSparse/Demo/cs_di_demo3 +CXSparse/Demo/cs_dl_demo1 +CXSparse/Demo/cs_dl_demo2 +CXSparse/Demo/cs_dl_demo3 +CXSparse/Demo/cs_idemo +CXSparse/Demo/cs_ldemo +KLU/Demo/klu_simple +KLU/Demo/kludemo +KLU/Demo/kluldemo +LDL/Demo/ldlamd +LDL/Demo/ldllamd +LDL/Demo/ldllmain +LDL/Demo/ldllsimple +LDL/Demo/ldlmain +LDL/Demo/ldlsimple +RBio/Demo/RBdemo +RBio/Demo/temp.rb +SPQR/Demo/qrdemo +SPQR/Demo/qrsimple +SPQR/Demo/qrsimplec +SPQR/Demo/C.mtx +SPQR/Demo/E.txt +SPQR/Demo/R.mtx +SPQR/Demo/X.mtx +SPQR/Demo/gpu_results.txt +SPQR/Demo/qrdemo_gpu +SPQR/Demo/qrdemo_gpu2 +SPQR/Demo/qrdemo_gpu3 +UMFPACK/Demo/numeric.umf +UMFPACK/Demo/symbolic.umf +UMFPACK/Demo/umfpack_di_demo +UMFPACK/Demo/umfpack_dl_demo +UMFPACK/Demo/umfpack_simple +UMFPACK/Demo/umfpack_zi_demo +UMFPACK/Demo/umfpack_zl_demo + +# ignore these specific programs in the Package/Tcov directories +CHOLMOD/Tcov/cl +CHOLMOD/Tcov/clread +CHOLMOD/Tcov/cm +CHOLMOD/Tcov/cmread +CHOLMOD/Tcov/covs.out +CHOLMOD/Tcov/ldemo +CHOLMOD/Tcov/ldemo.c +CHOLMOD/Tcov/temp*.mtx +CHOLMOD/Tcov/timelog.m +CHOLMOD/Tcov/l_*.c +CHOLMOD/Tcov/z_*.c +CHOLMOD/Tcov/zz_*.c +CHOLMOD/Tcov/zl_*.c +CHOLMOD/Tcov/zdemo +CHOLMOD/Tcov/zdemo.c + +CSparse/Tcov/cov.out +CSparse/Tcov/cov.sort +CSparse/Tcov/cover.out +CSparse/Tcov/covs.out +CSparse/Tcov/cs_*.c +CSparse/Tcov/cstcov_test +CSparse/Tcov/*.out +CSparse/Tcov/cs_demo1 +CSparse/Tcov/cs_demo2 +CSparse/Tcov/cs_demo3 + +CXSparse/Tcov/cov.out +CXSparse/Tcov/cov.sort +CXSparse/Tcov/cover.out +CXSparse/Tcov/covs.out +CXSparse/Tcov/cs_*.c +CXSparse/Tcov/cs*_ci.c +CXSparse/Tcov/cs*_cl.c +CXSparse/Tcov/cs*_di.c +CXSparse/Tcov/cs*_dl.c +CXSparse/Tcov/*.out +CXSparse/Tcov/cs_demo1_ci +CXSparse/Tcov/cs_demo1_cl +CXSparse/Tcov/cs_demo1_di +CXSparse/Tcov/cs_demo1_dl +CXSparse/Tcov/cs_demo2_ci +CXSparse/Tcov/cs_demo2_cl +CXSparse/Tcov/cs_demo2_di +CXSparse/Tcov/cs_demo2_dl +CXSparse/Tcov/cs_demo3_ci +CXSparse/Tcov/cs_demo3_cl +CXSparse/Tcov/cs_demo3_di +CXSparse/Tcov/cs_demo3_dl +CXSparse/Tcov/cs_idemo +CXSparse/Tcov/cs_ldemo +CXSparse/Tcov/cstcov_test_ci +CXSparse/Tcov/cstcov_test_cl +CXSparse/Tcov/cstcov_test_di +CXSparse/Tcov/cstcov_test_dl + +KLU/Tcov/cov_*.c +KLU/Tcov/klutest +KLU/Tcov/klultest +KLU/Tcov/*.out + +SPQR/Tcov/X.mtx +SPQR/Tcov/gpu_results.txt +SPQR/Tcov/gpuqrengine_demo +SPQR/Tcov/qrdemo_gpu +SPQR/Tcov/qrtest +SPQR/Tcov/qrtest_out.txt +SPQR/Tcov/troll.m +SPQR/Tcov/cov.out + +UMFPACK/Tcov/covall_err.out +UMFPACK/Tcov/cover.out + +# ignore these specific files in the Package/MATLAB directories +MATLAB_Tools/spqr_rank/save_samples_demo_spqr_rank.mat +CXSparse/MATLAB/CSparse/cs_cl_*.c +CXSparse/MATLAB/Test/cs_*.c + +# Do not ignore this file +!.gitignore + diff --git a/AMD/Demo/amd_demo.out b/AMD/Demo/amd_demo.out index 3ce8a8213..823a875af 100644 --- a/AMD/Demo/amd_demo.out +++ b/AMD/Demo/amd_demo.out @@ -1,7 +1,7 @@ -AMD version 2.4.3, date: Jan 30, 2016 +AMD version 2.4.4, date: Feb 1, 2016 AMD demo, with the 24-by-24 Harwell/Boeing matrix, can_24: -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -115,7 +115,7 @@ Plot of input matrix pattern: 23: . . . . . . X . . . . X X . . . . . . . . . . X return value from amd_order: 0 (should be 0) -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 24 nz, number of nonzeros in A: 160 diff --git a/AMD/Demo/amd_demo2.out b/AMD/Demo/amd_demo2.out index 5241647fd..73be9409d 100644 --- a/AMD/Demo/amd_demo2.out +++ b/AMD/Demo/amd_demo2.out @@ -1,7 +1,7 @@ AMD demo, with a jumbled version of the 24-by-24 Harwell/Boeing matrix, can_24: -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -144,7 +144,7 @@ Plot of symmetric matrix to be ordered by amd_order: 23: . . . . . . X . . . . X X . . . . . . . . . . X return value from amd_order: 1 (should be 1) -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 24 nz, number of nonzeros in A: 102 diff --git a/AMD/Demo/amd_l_demo.out b/AMD/Demo/amd_l_demo.out index 60f38bac4..f7fb1dfd6 100644 --- a/AMD/Demo/amd_l_demo.out +++ b/AMD/Demo/amd_l_demo.out @@ -1,7 +1,7 @@ -AMD version 2.4.3, date: Jan 30, 2016 +AMD version 2.4.4, date: Feb 1, 2016 AMD demo, with the 24-by-24 Harwell/Boeing matrix, can_24: -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -115,7 +115,7 @@ Plot of input matrix pattern: 23: . . . . . . X . . . . X X . . . . . . . . . . X return value from amd_l_order: 0 (should be 0) -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 24 nz, number of nonzeros in A: 160 diff --git a/AMD/Doc/AMD_UserGuide.pdf b/AMD/Doc/AMD_UserGuide.pdf index cdddb673f..cf4dced3d 100644 Binary files a/AMD/Doc/AMD_UserGuide.pdf and b/AMD/Doc/AMD_UserGuide.pdf differ diff --git a/AMD/Doc/AMD_UserGuide.tex b/AMD/Doc/AMD_UserGuide.tex index 5e41583d5..b1ebab4c5 100644 --- a/AMD/Doc/AMD_UserGuide.tex +++ b/AMD/Doc/AMD_UserGuide.tex @@ -32,7 +32,7 @@ This work was supported by the EPSRC under grant GR/R46441. }} -\date{VERSION 2.4.3, Jan 30, 2016} +\date{VERSION 2.4.4, Feb 1, 2016} \maketitle %------------------------------------------------------------------------------ diff --git a/AMD/Doc/ChangeLog b/AMD/Doc/ChangeLog index 6efb43723..bf181372b 100644 --- a/AMD/Doc/ChangeLog +++ b/AMD/Doc/ChangeLog @@ -1,3 +1,7 @@ +Feb 1, 2016: version 2.4.4 + + * update to Makefiles + Jan 30, 2016: version 2.4.3 * modifications to Makefiles diff --git a/AMD/Include/amd.h b/AMD/Include/amd.h index 17c0edb6d..8c4b69a10 100644 --- a/AMD/Include/amd.h +++ b/AMD/Include/amd.h @@ -386,11 +386,11 @@ void amd_l_info (double Info [ ]) ; * Versions 1.1 and earlier of AMD do not include a #define'd version number. */ -#define AMD_DATE "Jan 30, 2016" +#define AMD_DATE "Feb 1, 2016" #define AMD_VERSION_CODE(main,sub) ((main) * 1000 + (sub)) #define AMD_MAIN_VERSION 2 #define AMD_SUB_VERSION 4 -#define AMD_SUBSUB_VERSION 3 +#define AMD_SUBSUB_VERSION 4 #define AMD_VERSION AMD_VERSION_CODE(AMD_MAIN_VERSION,AMD_SUB_VERSION) #ifdef __cplusplus diff --git a/AMD/Lib/Makefile b/AMD/Lib/Makefile index f4f479e0b..fbbc19324 100644 --- a/AMD/Lib/Makefile +++ b/AMD/Lib/Makefile @@ -3,16 +3,19 @@ #------------------------------------------------------------------------------- LIBRARY = libamd -VERSION = 2.4.3 +VERSION = 2.4.4 SO_VERSION = 2 default: library - $(MAKE) install INSTALL=$(CURDIR)/../.. \ - INSTALL_DOC=$(CURDIR)/../../doc include ../../SuiteSparse_config/SuiteSparse_config.mk -library: $(AR_TARGET) $(SO_TARGET) +# AMD depends on SuiteSparse_config +LDLIBS += -lsuitesparseconfig + +# compile and install in SuiteSparse/lib +library: + $(MAKE) install INSTALL=$(SUITESPARSE) C = $(CC) $(CF) -I../Include -I../../SuiteSparse_config @@ -33,6 +36,7 @@ INC = ../Include/amd.h ../Include/amd_internal.h \ AMDI = $(addsuffix .o, $(subst amd_,amd_i_,$(AMD))) AMDL = $(addsuffix .o, $(subst amd_,amd_l_,$(AMD))) +OBJ = $(AMDI) $(AMDL) #------------------------------------------------------------------------------- # compile each int and long routine (with no real/complex version) @@ -45,16 +49,13 @@ amd_l_%.o: ../Source/amd_%.c $(INC) $(C) -DDLONG -c $< -o $@ #------------------------------------------------------------------------------- -# Create the static and shared libraries (C versions only) +# Create the static library (C versions only) #------------------------------------------------------------------------------- -$(AR_TARGET): $(AMDI) $(AMDL) +$(AR_TARGET): $(OBJ) $(ARCHIVE) $@ $^ - $(RANLIB) $@ -$(SO_TARGET): $(AMDI) $(AMDL) - $(CC) $(SO_OPTS) $^ -o $@ - #------------------------------------------------------------------------------- # compile the Fortran versions and the libamdf77.a library (static only) #------------------------------------------------------------------------------- @@ -78,14 +79,13 @@ libamdf77.a: $(AMDF77) #------------------------------------------------------------------------------- # install AMD -install: $(INSTALL_LIB)/$(SO_TARGET) +install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) -$(INSTALL_LIB)/$(SO_TARGET): $(SO_TARGET) +$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) @mkdir -p $(INSTALL_LIB) @mkdir -p $(INSTALL_INCLUDE) @mkdir -p $(INSTALL_DOC) - $(CP) $(SO_TARGET) $(INSTALL_LIB) - $(SO_INSTALL_NAME) $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/$(SO_TARGET) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) $(CP) ../Include/amd.h $(INSTALL_INCLUDE) diff --git a/AMD/Makefile b/AMD/Makefile index f0dbb2791..4ec4ad2af 100644 --- a/AMD/Makefile +++ b/AMD/Makefile @@ -2,6 +2,9 @@ # AMD Makefile #------------------------------------------------------------------------------ +SUITESPARSE ?= $(realpath $(CURDIR)/..) +export SUITESPARSE + default: all include ../SuiteSparse_config/SuiteSparse_config.mk diff --git a/BTF/Doc/ChangeLog b/BTF/Doc/ChangeLog index e21b5c923..61d91f5f7 100644 --- a/BTF/Doc/ChangeLog +++ b/BTF/Doc/ChangeLog @@ -1,3 +1,7 @@ +Feb 1, 2016: version 1.2.4 + + * update to Makefiles + Jan 30, 2016: version 1.2.3 * modifications to Makefiles diff --git a/BTF/Include/btf.h b/BTF/Include/btf.h index 621c0ffff..c055249b9 100644 --- a/BTF/Include/btf.h +++ b/BTF/Include/btf.h @@ -254,11 +254,11 @@ SuiteSparse_long btf_l_order (SuiteSparse_long, SuiteSparse_long *, * #endif */ -#define BTF_DATE "Jan 30, 2016" +#define BTF_DATE "Feb 1, 2016" #define BTF_VERSION_CODE(main,sub) ((main) * 1000 + (sub)) #define BTF_MAIN_VERSION 1 #define BTF_SUB_VERSION 2 -#define BTF_SUBSUB_VERSION 3 +#define BTF_SUBSUB_VERSION 4 #define BTF_VERSION BTF_VERSION_CODE(BTF_MAIN_VERSION,BTF_SUB_VERSION) #ifdef __cplusplus diff --git a/BTF/Lib/Makefile b/BTF/Lib/Makefile index 17fff8642..29a8afa4d 100644 --- a/BTF/Lib/Makefile +++ b/BTF/Lib/Makefile @@ -3,16 +3,21 @@ #------------------------------------------------------------------------------- LIBRARY = libbtf -VERSION = 1.2.3 +VERSION = 1.2.4 SO_VERSION = 1 default: library - $(MAKE) install INSTALL=$(CURDIR)/../.. \ - INSTALL_DOC=$(CURDIR)/../../doc + +include ../../SuiteSparse_config/SuiteSparse_config.mk + +# BTF depends on SuiteSparse_config +LDLIBS += -lsuitesparseconfig ccode: all -include ../../SuiteSparse_config/SuiteSparse_config.mk +# compile and install in SuiteSparse/lib +library: + $(MAKE) install INSTALL=$(SUITESPARSE) # for testing only: # TEST = -DTESTING @@ -25,8 +30,6 @@ I = -I../Include -I../../SuiteSparse_config all: library -library: $(AR_TARGET) $(SO_TARGET) - OBJ = btf_order.o btf_maxtrans.o btf_strongcomp.o \ btf_l_order.o btf_l_maxtrans.o btf_l_strongcomp.o @@ -34,9 +37,6 @@ $(AR_TARGET): $(OBJ) $(ARCHIVE) $@ $^ - $(RANLIB) $@ -$(SO_TARGET): $(OBJ) - $(CC) $(SO_OPTS) $^ -o $@ - $(OBJ): $(INC) #------------------------------------------------------------------------------- @@ -64,14 +64,13 @@ btf_l_strongcomp.o: ../Source/btf_strongcomp.c #------------------------------------------------------------------------------- # install BTF -install: $(INSTALL_LIB)/$(SO_TARGET) +install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) -$(INSTALL_LIB)/$(SO_TARGET): $(SO_TARGET) +$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) @mkdir -p $(INSTALL_LIB) @mkdir -p $(INSTALL_INCLUDE) @mkdir -p $(INSTALL_DOC) - $(CP) $(SO_TARGET) $(INSTALL_LIB) - $(SO_INSTALL_NAME) $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/$(SO_TARGET) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) $(CP) ../Include/btf.h $(INSTALL_INCLUDE) diff --git a/BTF/Makefile b/BTF/Makefile index e132d32ca..39438a642 100644 --- a/BTF/Makefile +++ b/BTF/Makefile @@ -2,6 +2,9 @@ # BTF Makefile #------------------------------------------------------------------------------ +SUITESPARSE ?= $(realpath $(CURDIR)/..) +export SUITESPARSE + default: library include ../SuiteSparse_config/SuiteSparse_config.mk diff --git a/CAMD/Demo/camd_demo.out b/CAMD/Demo/camd_demo.out index a07050898..fe0065ad5 100644 --- a/CAMD/Demo/camd_demo.out +++ b/CAMD/Demo/camd_demo.out @@ -1,7 +1,7 @@ -CAMD version 2.4, date: Jan 30, 2016 +CAMD version 2.4, date: Feb 1, 2016 CAMD demo, with the 24-by-24 Harwell/Boeing matrix, can_24: -camd version 2.4, Jan 30, 2016: approximate minimum degree ordering: +camd version 2.4, Feb 1, 2016: approximate minimum degree ordering: dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -115,7 +115,7 @@ Plot of input matrix pattern: 23: . . . . . . X . . . . X X . . . . . . . . . . X return value from camd_order: 0 (should be 0) -CAMD version 2.4.3, Jan 30, 2016, results: +CAMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 24 nz, number of nonzeros in A: 160 diff --git a/CAMD/Demo/camd_demo2.out b/CAMD/Demo/camd_demo2.out index ef06e2fdf..addc095f3 100644 --- a/CAMD/Demo/camd_demo2.out +++ b/CAMD/Demo/camd_demo2.out @@ -1,7 +1,7 @@ CAMD demo, with a jumbled version of the 24-by-24 Harwell/Boeing matrix, can_24: -camd version 2.4, Jan 30, 2016: approximate minimum degree ordering: +camd version 2.4, Feb 1, 2016: approximate minimum degree ordering: dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -144,7 +144,7 @@ Plot of symmetric matrix to be ordered by camd_order: 23: . . . . . . X . . . . X X . . . . . . . . . . X return value from camd_order: 1 (should be 1) -CAMD version 2.4.3, Jan 30, 2016, results: +CAMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 24 nz, number of nonzeros in A: 102 diff --git a/CAMD/Demo/camd_l_demo.out b/CAMD/Demo/camd_l_demo.out index 7219b0c95..c203375c1 100644 --- a/CAMD/Demo/camd_l_demo.out +++ b/CAMD/Demo/camd_l_demo.out @@ -1,7 +1,7 @@ -CAMD version 2.4, date: Jan 30, 2016 +CAMD version 2.4, date: Feb 1, 2016 CAMD demo, with the 24-by-24 Harwell/Boeing matrix, can_24: -camd version 2.4, Jan 30, 2016: approximate minimum degree ordering: +camd version 2.4, Feb 1, 2016: approximate minimum degree ordering: dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -115,7 +115,7 @@ Plot of input matrix pattern: 23: . . . . . . X . . . . X X . . . . . . . . . . X return value from camd_l_order: 0 (should be 0) -CAMD version 2.4.3, Jan 30, 2016, results: +CAMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 24 nz, number of nonzeros in A: 160 diff --git a/CAMD/Doc/CAMD_UserGuide.pdf b/CAMD/Doc/CAMD_UserGuide.pdf index 23b8746d2..36d9a6bd5 100644 Binary files a/CAMD/Doc/CAMD_UserGuide.pdf and b/CAMD/Doc/CAMD_UserGuide.pdf differ diff --git a/CAMD/Doc/CAMD_UserGuide.tex b/CAMD/Doc/CAMD_UserGuide.tex index 7c0459037..68ce78784 100644 --- a/CAMD/Doc/CAMD_UserGuide.tex +++ b/CAMD/Doc/CAMD_UserGuide.tex @@ -34,7 +34,7 @@ This work was supported by the EPSRC under grant GR/R46441. }} -\date{VERSION 2.4.3, Jan 30, 2016} +\date{VERSION 2.4.4, Feb 1, 2016} \maketitle %------------------------------------------------------------------------------ diff --git a/CAMD/Doc/ChangeLog b/CAMD/Doc/ChangeLog index 7dce5be10..e4d4c9e6b 100644 --- a/CAMD/Doc/ChangeLog +++ b/CAMD/Doc/ChangeLog @@ -1,3 +1,7 @@ +Feb 1, 2016: version 2.4.4 + + * update to Makefiles + Jan 30, 2016: version 2.4.3 * modifications to Makefiles diff --git a/CAMD/Include/camd.h b/CAMD/Include/camd.h index d357b7270..c92e0411c 100644 --- a/CAMD/Include/camd.h +++ b/CAMD/Include/camd.h @@ -393,11 +393,11 @@ void camd_l_info (double Info [ ]) ; * #endif */ -#define CAMD_DATE "Jan 30, 2016" +#define CAMD_DATE "Feb 1, 2016" #define CAMD_VERSION_CODE(main,sub) ((main) * 1000 + (sub)) #define CAMD_MAIN_VERSION 2 #define CAMD_SUB_VERSION 4 -#define CAMD_SUBSUB_VERSION 3 +#define CAMD_SUBSUB_VERSION 4 #define CAMD_VERSION CAMD_VERSION_CODE(CAMD_MAIN_VERSION,CAMD_SUB_VERSION) #ifdef __cplusplus diff --git a/CAMD/Lib/Makefile b/CAMD/Lib/Makefile index b31a674cf..1eb04b208 100644 --- a/CAMD/Lib/Makefile +++ b/CAMD/Lib/Makefile @@ -3,16 +3,19 @@ #------------------------------------------------------------------------------- LIBRARY = libcamd -VERSION = 2.4.3 +VERSION = 2.4.4 SO_VERSION = 2 default: library - $(MAKE) install INSTALL=$(CURDIR)/../.. \ - INSTALL_DOC=$(CURDIR)/../../doc include ../../SuiteSparse_config/SuiteSparse_config.mk -library: $(AR_TARGET) $(SO_TARGET) +# CAMD depends on SuiteSparse_config +LDLIBS += -lsuitesparseconfig + +# compile and install in SuiteSparse/lib +library: + $(MAKE) install INSTALL=$(SUITESPARSE) C = $(CC) $(CF) -I../Include -I../../SuiteSparse_config @@ -32,6 +35,7 @@ INC = ../Include/camd.h ../Include/camd_internal.h \ CAMDI = $(addsuffix .o, $(subst camd_,camd_i_,$(CAMD))) CAMDL = $(addsuffix .o, $(subst camd_,camd_l_,$(CAMD))) +OBJ = $(CAMDI) $(CAMDL) #------------------------------------------------------------------------------- # compile each int and long routine (with no real/complex version) @@ -47,26 +51,22 @@ camd_l_%.o: ../Source/camd_%.c $(INC) # Create the static and shared libraries (C versions only) #------------------------------------------------------------------------------- -$(AR_TARGET): $(CAMDI) $(CAMDL) +$(AR_TARGET): $(OBJ) $(ARCHIVE) $@ $^ - $(RANLIB) $@ -$(SO_TARGET): $(CAMDI) $(CAMDL) - $(CC) $(SO_OPTS) $^ -o $@ - #------------------------------------------------------------------------------- # install (shared C version only) #------------------------------------------------------------------------------- # install CAMD -install: $(INSTALL_LIB)/$(SO_TARGET) +install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) -$(INSTALL_LIB)/$(SO_TARGET): $(SO_TARGET) +$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) @mkdir -p $(INSTALL_LIB) @mkdir -p $(INSTALL_INCLUDE) @mkdir -p $(INSTALL_DOC) - $(CP) $(SO_TARGET) $(INSTALL_LIB) - $(SO_INSTALL_NAME) $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/$(SO_TARGET) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) $(CP) ../Include/camd.h $(INSTALL_INCLUDE) diff --git a/CAMD/Makefile b/CAMD/Makefile index 37b5230fe..cd6d5abcd 100644 --- a/CAMD/Makefile +++ b/CAMD/Makefile @@ -2,6 +2,9 @@ # CAMD Makefile #------------------------------------------------------------------------------ +SUITESPARSE ?= $(realpath $(CURDIR)/..) +export SUITESPARSE + default: all include ../SuiteSparse_config/SuiteSparse_config.mk diff --git a/CCOLAMD/Demo/ccolamd_example.out b/CCOLAMD/Demo/ccolamd_example.out index 2d60c1c3d..7da87e260 100644 --- a/CCOLAMD/Demo/ccolamd_example.out +++ b/CCOLAMD/Demo/ccolamd_example.out @@ -15,7 +15,7 @@ Column 3, with 2 entries: row 1 row 3 -ccolamd version 2.9, Jan 30, 2016: OK. +ccolamd version 2.9, Feb 1, 2016: OK. ccolamd: number of dense or empty rows ignored: 0 ccolamd: number of dense or empty columns ignored: 0 ccolamd: number of garbage collections performed: 0 @@ -38,7 +38,7 @@ Column 3, with 1 entries: row 4 Column 4, with 0 entries: -csymamd version 2.9, Jan 30, 2016: OK. +csymamd version 2.9, Feb 1, 2016: OK. csymamd: number of dense or empty rows ignored: 0 csymamd: number of dense or empty columns ignored: 0 csymamd: number of garbage collections performed: 0 diff --git a/CCOLAMD/Demo/ccolamd_l_example.out b/CCOLAMD/Demo/ccolamd_l_example.out index 70ba420ff..d7f129b77 100644 --- a/CCOLAMD/Demo/ccolamd_l_example.out +++ b/CCOLAMD/Demo/ccolamd_l_example.out @@ -15,7 +15,7 @@ Column 3, with 2 entries: row 1 row 3 -ccolamd version 2.9, Jan 30, 2016: OK. +ccolamd version 2.9, Feb 1, 2016: OK. ccolamd: number of dense or empty rows ignored: 0 ccolamd: number of dense or empty columns ignored: 0 ccolamd: number of garbage collections performed: 0 @@ -38,7 +38,7 @@ Column 3, with 1 entries: row 4 Column 4, with 0 entries: -csymamd version 2.9, Jan 30, 2016: OK. +csymamd version 2.9, Feb 1, 2016: OK. csymamd: number of dense or empty rows ignored: 0 csymamd: number of dense or empty columns ignored: 0 csymamd: number of garbage collections performed: 0 diff --git a/CCOLAMD/Doc/ChangeLog b/CCOLAMD/Doc/ChangeLog index f9c035884..08727e515 100644 --- a/CCOLAMD/Doc/ChangeLog +++ b/CCOLAMD/Doc/ChangeLog @@ -1,3 +1,7 @@ +Feb 1, 2016: version 2.9.4 + + * update to Makefiles + Jan 30, 2016: version 2.9.3 * modifications to Makefiles diff --git a/CCOLAMD/Include/ccolamd.h b/CCOLAMD/Include/ccolamd.h index 9243e23d1..a48c4de08 100644 --- a/CCOLAMD/Include/ccolamd.h +++ b/CCOLAMD/Include/ccolamd.h @@ -42,11 +42,11 @@ extern "C" { * #endif */ -#define CCOLAMD_DATE "Jan 30, 2016" +#define CCOLAMD_DATE "Feb 1, 2016" #define CCOLAMD_VERSION_CODE(main,sub) ((main) * 1000 + (sub)) #define CCOLAMD_MAIN_VERSION 2 #define CCOLAMD_SUB_VERSION 9 -#define CCOLAMD_SUBSUB_VERSION 3 +#define CCOLAMD_SUBSUB_VERSION 4 #define CCOLAMD_VERSION \ CCOLAMD_VERSION_CODE(CCOLAMD_MAIN_VERSION,CCOLAMD_SUB_VERSION) diff --git a/CCOLAMD/Lib/Makefile b/CCOLAMD/Lib/Makefile index cea7a4560..48ba1a679 100644 --- a/CCOLAMD/Lib/Makefile +++ b/CCOLAMD/Lib/Makefile @@ -3,15 +3,20 @@ #------------------------------------------------------------------------------- LIBRARY = libccolamd -VERSION = 2.9.3 +VERSION = 2.9.4 SO_VERSION = 2 default: library - $(MAKE) install INSTALL=$(CURDIR)/../.. \ - INSTALL_DOC=$(CURDIR)/../../doc include ../../SuiteSparse_config/SuiteSparse_config.mk +# CCOLAMD depends on SuiteSparse_config +LDLIBS += -lsuitesparseconfig + +# compile and install in SuiteSparse/lib +library: + $(MAKE) install INSTALL=$(SUITESPARSE) + I = -I../Include -I../../SuiteSparse_config INC = ../Include/ccolamd.h ../../SuiteSparse_config/SuiteSparse_config.h @@ -31,13 +36,8 @@ $(AR_TARGET): $(OBJ) $(ARCHIVE) $@ $^ - $(RANLIB) $@ -$(SO_TARGET): $(OBJ) - $(CC) $(SO_OPTS) $^ -o $@ - ccode: library -library: $(AR_TARGET) $(SO_TARGET) - clean: - $(RM) -r $(CLEAN) @@ -47,14 +47,13 @@ distclean: clean - $(RM) -r $(PURGE) # install CCOLAMD -install: $(INSTALL_LIB)/$(SO_TARGET) +install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) -$(INSTALL_LIB)/$(SO_TARGET): $(SO_TARGET) +$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) @mkdir -p $(INSTALL_LIB) @mkdir -p $(INSTALL_INCLUDE) @mkdir -p $(INSTALL_DOC) - $(CP) $(SO_TARGET) $(INSTALL_LIB) - $(SO_INSTALL_NAME) $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/$(SO_TARGET) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) $(CP) ../Include/ccolamd.h $(INSTALL_INCLUDE) diff --git a/CCOLAMD/Makefile b/CCOLAMD/Makefile index 68f30756a..f04181d60 100644 --- a/CCOLAMD/Makefile +++ b/CCOLAMD/Makefile @@ -2,6 +2,9 @@ # CCOLAMD Makefile #------------------------------------------------------------------------------ +SUITESPARSE ?= $(realpath $(CURDIR)/..) +export SUITESPARSE + default: all include ../SuiteSparse_config/SuiteSparse_config.mk diff --git a/CHOLMOD/Check/cholmod_write.c b/CHOLMOD/Check/cholmod_write.c index eb578f9fd..516c0d3ba 100644 --- a/CHOLMOD/Check/cholmod_write.c +++ b/CHOLMOD/Check/cholmod_write.c @@ -22,6 +22,7 @@ #ifndef NCHECK +#include "cholmod_config.h" #include "cholmod_internal.h" #include "cholmod_check.h" #include "cholmod_matrixops.h" diff --git a/CHOLMOD/Core/cholmod_error.c b/CHOLMOD/Core/cholmod_error.c index e14887ae8..19bd47a0c 100644 --- a/CHOLMOD/Core/cholmod_error.c +++ b/CHOLMOD/Core/cholmod_error.c @@ -55,15 +55,33 @@ int CHOLMOD(error) { if (status > 0 && Common->print > 1) { - SuiteSparse_config.printf_func ("CHOLMOD warning: %s\n", - message) ; + SuiteSparse_config.printf_func ("CHOLMOD warning:") ; + if (message != NULL) + { + SuiteSparse_config.printf_func (" %s.", message) ; + } + if (file != NULL) + { + SuiteSparse_config.printf_func (" file: %s", file) ; + SuiteSparse_config.printf_func (" line: %d", line) ; + } + SuiteSparse_config.printf_func ("\n") ; fflush (stdout) ; fflush (stderr) ; } else if (Common->print > 0) { - SuiteSparse_config.printf_func ("CHOLMOD error: %s\n", - message) ; + SuiteSparse_config.printf_func ("CHOLMOD error:") ; + if (message != NULL) + { + SuiteSparse_config.printf_func (" %s.", message) ; + } + if (file != NULL) + { + SuiteSparse_config.printf_func (" file: %s", file) ; + SuiteSparse_config.printf_func (" line: %d", line) ; + } + SuiteSparse_config.printf_func ("\n") ; fflush (stdout) ; fflush (stderr) ; } diff --git a/CHOLMOD/Demo/cholmod_demo.c b/CHOLMOD/Demo/cholmod_demo.c index ead395a94..ca313092a 100644 --- a/CHOLMOD/Demo/cholmod_demo.c +++ b/CHOLMOD/Demo/cholmod_demo.c @@ -59,7 +59,7 @@ int main (int argc, char **argv) anz, axbnorm, rnorm2, resid2, rcond ; FILE *f ; cholmod_sparse *A ; - cholmod_dense *X = NULL, *B, *W, *R ; + cholmod_dense *X = NULL, *B, *W, *R = NULL ; double one [2], zero [2], minusone [2], beta [2], xlnz ; cholmod_common Common, *cm ; cholmod_factor *L ; @@ -137,10 +137,13 @@ int main (int argc, char **argv) fclose (ff) ; ff = NULL ; } - anorm = cholmod_norm_sparse (A, 0, cm) ; xtype = A->xtype ; + anorm = 1 ; +#ifndef NMATRIXOPS + anorm = cholmod_norm_sparse (A, 0, cm) ; printf ("norm (A,inf) = %g\n", anorm) ; printf ("norm (A,1) = %g\n", cholmod_norm_sparse (A, 1, cm)) ; +#endif cholmod_print_sparse (A, "A", cm) ; if (A->nrow > A->ncol) @@ -191,8 +194,11 @@ int main (int argc, char **argv) #endif cholmod_print_dense (B, "B", cm) ; + bnorm = 1 ; +#ifndef NMATRIXOPS bnorm = cholmod_norm_dense (B, 0, cm) ; /* max norm */ printf ("bnorm %g\n", bnorm) ; +#endif /* ---------------------------------------------------------------------- */ /* analyze and factorize */ @@ -265,6 +271,7 @@ int main (int argc, char **argv) for (method = 0 ; method <= 3 ; method++) { double x = n ; + resid [method] = -1 ; /* not yet computed */ if (method == 0) { @@ -433,7 +440,9 @@ int main (int argc, char **argv) fclose (timelog) ; } +#ifndef NMATRIXOPS resid [3] = resid [3] / cholmod_norm_dense (X, 1, cm) ; +#endif cholmod_free_dense (&Ywork, cm) ; cholmod_free_dense (&Ework, cm) ; @@ -449,6 +458,7 @@ int main (int argc, char **argv) if (method < 3) { +#ifndef NMATRIXOPS if (A->stype == 0) { @@ -457,6 +467,7 @@ int main (int argc, char **argv) W = cholmod_allocate_dense (A->ncol, 1, A->ncol, xtype, cm) ; cholmod_sdmult (A, 2, one, zero, X, W, cm) ; /* R = B - beta*X */ + cholmod_free_dense (&R, cm) ; R = cholmod_zeros (n, 1, xtype, cm) ; Rx = R->x ; Xx = X->x ; @@ -483,14 +494,19 @@ int main (int argc, char **argv) else { /* Ax=b was factorized and solved, R = B-A*X */ + cholmod_free_dense (&R, cm) ; R = cholmod_copy_dense (B, cm) ; cholmod_sdmult (A, 0, minusone, one, X, R, cm) ; } + rnorm = -1 ; + xnorm = 1 ; rnorm = cholmod_norm_dense (R, 0, cm) ; /* max abs. entry */ xnorm = cholmod_norm_dense (X, 0, cm) ; /* max abs. entry */ - axbnorm = (anorm * xnorm + bnorm + ((n == 0) ? 1 : 0)) ; resid [method] = rnorm / axbnorm ; +#else + printf ("residual not computed (requires CHOLMOD/MatrixOps)\n") ; +#endif } } @@ -501,6 +517,7 @@ int main (int argc, char **argv) /* ---------------------------------------------------------------------- */ resid2 = -1 ; +#ifndef NMATRIXOPS if (A->stype != 0 && A->xtype == CHOLMOD_REAL) { cholmod_dense *R2 ; @@ -518,11 +535,13 @@ int main (int argc, char **argv) cholmod_free_dense (&R, cm) ; /* compute the new residual, R = B-A*X */ + cholmod_free_dense (&R, cm) ; R = cholmod_copy_dense (B, cm) ; cholmod_sdmult (A, 0, minusone, one, X, R, cm) ; rnorm2 = cholmod_norm_dense (R, 0, cm) ; resid2 = rnorm2 / axbnorm ; } +#endif cholmod_free_dense (&R, cm) ; diff --git a/CHOLMOD/Demo/cholmod_l_demo.c b/CHOLMOD/Demo/cholmod_l_demo.c index 786eb3574..de55c4adb 100644 --- a/CHOLMOD/Demo/cholmod_l_demo.c +++ b/CHOLMOD/Demo/cholmod_l_demo.c @@ -58,7 +58,7 @@ int main (int argc, char **argv) anz, axbnorm, rnorm2, resid2, rcond ; FILE *f ; cholmod_sparse *A ; - cholmod_dense *X = NULL, *B, *W, *R ; + cholmod_dense *X = NULL, *B, *W, *R = NULL ; double one [2], zero [2], minusone [2], beta [2], xlnz ; cholmod_common Common, *cm ; cholmod_factor *L ; @@ -142,9 +142,12 @@ int main (int argc, char **argv) fclose (ff) ; ff = NULL ; } + anorm = 1 ; +#ifndef NMATRIXOPS anorm = cholmod_l_norm_sparse (A, 0, cm) ; printf ("norm (A,inf) = %g\n", anorm) ; printf ("norm (A,1) = %g\n", cholmod_l_norm_sparse (A, 1, cm)) ; +#endif if (prefer_zomplex && A->xtype == CHOLMOD_COMPLEX) { @@ -261,8 +264,11 @@ int main (int argc, char **argv) #endif cholmod_l_print_dense (B, "B", cm) ; + bnorm = 1 ; +#ifndef NMATRIXOPS bnorm = cholmod_l_norm_dense (B, 0, cm) ; /* max norm */ printf ("bnorm %g\n", bnorm) ; +#endif /* ---------------------------------------------------------------------- */ /* analyze and factorize */ @@ -515,7 +521,9 @@ int main (int argc, char **argv) fclose (timelog) ; } +#ifndef NMATRIXOPS resid [3] = resid [3] / cholmod_l_norm_dense (X, 1, cm) ; +#endif cholmod_l_free_dense (&Ywork, cm) ; cholmod_l_free_dense (&Ework, cm) ; @@ -531,6 +539,7 @@ int main (int argc, char **argv) if (method < 3) { +#ifndef NMATRIXOPS if (A->stype == 0) { /* (AA'+beta*I)x=b is the linear system that was solved */ @@ -538,6 +547,7 @@ int main (int argc, char **argv) W = cholmod_l_allocate_dense (A->ncol, 1, A->ncol, xtype, cm) ; cholmod_l_sdmult (A, 2, one, zero, X, W, cm) ; /* R = B - beta*X */ + cholmod_l_free_dense (&R, cm) ; R = cholmod_l_zeros (n, 1, xtype, cm) ; Rx = R->x ; Rz = R->z ; @@ -576,6 +586,7 @@ int main (int argc, char **argv) else { /* Ax=b was factorized and solved, R = B-A*X */ + cholmod_l_free_dense (&R, cm) ; R = cholmod_l_copy_dense (B, cm) ; cholmod_l_sdmult (A, 0, minusone, one, X, R, cm) ; } @@ -584,6 +595,9 @@ int main (int argc, char **argv) axbnorm = (anorm * xnorm + bnorm + ((n == 0) ? 1 : 0)) ; resid [method] = rnorm / axbnorm ; +#else + printf ("residual not computed (requires CHOLMOD/MatrixOps)\n") ; +#endif } } @@ -594,6 +608,7 @@ int main (int argc, char **argv) /* ---------------------------------------------------------------------- */ resid2 = -1 ; +#ifndef NMATRIXOPS if (A->stype != 0 && A->xtype == CHOLMOD_REAL) { cholmod_dense *R2 ; @@ -611,11 +626,13 @@ int main (int argc, char **argv) cholmod_l_free_dense (&R, cm) ; /* compute the new residual, R = B-A*X */ + cholmod_l_free_dense (&R, cm) ; R = cholmod_l_copy_dense (B, cm) ; cholmod_l_sdmult (A, 0, minusone, one, X, R, cm) ; rnorm2 = cholmod_l_norm_dense (R, 0, cm) ; resid2 = rnorm2 / axbnorm ; } +#endif cholmod_l_free_dense (&R, cm) ; diff --git a/CHOLMOD/Demo/cholmod_simple.c b/CHOLMOD/Demo/cholmod_simple.c index fa60641ff..baba01235 100644 --- a/CHOLMOD/Demo/cholmod_simple.c +++ b/CHOLMOD/Demo/cholmod_simple.c @@ -36,9 +36,13 @@ int main (void) cholmod_factorize (A, L, &c) ; /* factorize */ x = cholmod_solve (CHOLMOD_A, L, b, &c) ; /* solve Ax=b */ r = cholmod_copy_dense (b, &c) ; /* r = b */ +#ifndef NMATRIXOPS cholmod_sdmult (A, 0, m1, one, x, r, &c) ; /* r = r-Ax */ printf ("norm(b-Ax) %8.1e\n", cholmod_norm_dense (r, 0, &c)) ; /* print norm(r) */ +#else + printf ("residual norm not computed (requires CHOLMOD/MatrixOps)\n") ; +#endif cholmod_free_factor (&L, &c) ; /* free matrices */ cholmod_free_sparse (&A, &c) ; cholmod_free_dense (&r, &c) ; diff --git a/CHOLMOD/Doc/CHOLMOD_UserGuide.pdf b/CHOLMOD/Doc/CHOLMOD_UserGuide.pdf index 3c2512d84..79c95301f 100644 Binary files a/CHOLMOD/Doc/CHOLMOD_UserGuide.pdf and b/CHOLMOD/Doc/CHOLMOD_UserGuide.pdf differ diff --git a/CHOLMOD/Doc/CHOLMOD_UserGuide.tex b/CHOLMOD/Doc/CHOLMOD_UserGuide.tex index b528652a5..8b1e03734 100644 --- a/CHOLMOD/Doc/CHOLMOD_UserGuide.tex +++ b/CHOLMOD/Doc/CHOLMOD_UserGuide.tex @@ -21,7 +21,7 @@ \title{User Guide for CHOLMOD: a sparse Cholesky factorization and modification package} -\date{VERSION 3.0.8, Jan 30, 2016} +\date{VERSION 3.0.9, Feb 1, 2016} \maketitle %------------------------------------------------------------------------------- @@ -2164,9 +2164,9 @@ \subsection{{\tt cholmod\_version}: return current CHOLMOD version} No CHOLMOD routines print anything, except for the {\tt cholmod\_print\_*} routines in the {\tt Check} Module, and the {\tt cholmod\_error} routine. The -{\tt Common->print\_function} is a pointer to {\tt printf} by default; +{\tt SuiteSparse\_config.printf\_function} is a pointer to {\tt printf} by default; you can redirect the output of CHOLMOD by redefining this pointer. -If {\tt Common->print\_function} is {\tt NULL}, CHOLMOD does not print anything. +If the function pointer is {\tt NULL}, CHOLMOD does not print anything. The {\tt Common->print} parameter determines how much detail is printed. Each value of {\tt Common->print} listed below also prints the items listed diff --git a/CHOLMOD/Doc/ChangeLog b/CHOLMOD/Doc/ChangeLog index 8b4869f55..26defc6bc 100644 --- a/CHOLMOD/Doc/ChangeLog +++ b/CHOLMOD/Doc/ChangeLog @@ -1,3 +1,12 @@ +Feb 1, 2016: version 3.0.9 + + * update to Makefiles + * minor change to CHOLMOD/Check/cholmod_write.c, when compiling with + -DNGPL + * more verbose error reporting + * Demos now compile with -DNGPL, but they don't compute all residuals + (requires the GPL CHOLMOD/MatrixOps package) + Jan 30, 2016: version 3.0.8 * better Makefiles for creating and installing shared libraries diff --git a/CHOLMOD/Include/cholmod_core.h b/CHOLMOD/Include/cholmod_core.h index d64149b43..6ce301c2f 100644 --- a/CHOLMOD/Include/cholmod_core.h +++ b/CHOLMOD/Include/cholmod_core.h @@ -246,11 +246,11 @@ #define CHOLMOD_HAS_VERSION_FUNCTION -#define CHOLMOD_DATE "Jan 30, 2016" +#define CHOLMOD_DATE "Feb 1, 2016" #define CHOLMOD_VER_CODE(main,sub) ((main) * 1000 + (sub)) #define CHOLMOD_MAIN_VERSION 3 #define CHOLMOD_SUB_VERSION 0 -#define CHOLMOD_SUBSUB_VERSION 8 +#define CHOLMOD_SUBSUB_VERSION 9 #define CHOLMOD_VERSION \ CHOLMOD_VER_CODE(CHOLMOD_MAIN_VERSION,CHOLMOD_SUB_VERSION) diff --git a/CHOLMOD/Lib/Makefile b/CHOLMOD/Lib/Makefile index 314b9439d..65e1e33cd 100644 --- a/CHOLMOD/Lib/Makefile +++ b/CHOLMOD/Lib/Makefile @@ -1,19 +1,35 @@ #=============================================================================== -# CHOLOMD/Lib/Makefile: for compiling the CHOLMOD library +# CHOLMOD/Lib/Makefile: for compiling the CHOLMOD library #=============================================================================== LIBRARY = libcholmod -VERSION = 3.0.8 +VERSION = 3.0.9 SO_VERSION = 3 default: library - $(MAKE) install INSTALL=$(CURDIR)/../.. \ - INSTALL_DOC=$(CURDIR)/../../doc ccode: all include ../../SuiteSparse_config/SuiteSparse_config.mk +# CHOLMOD depends on AMD, SuiteSparse_config, LAPACK, BLAS, +# and optionally METIS, CAMD, and CCOLAMD if the Partition Module is in use +LDLIBS += -lamd -lcolamd -lsuitesparseconfig \ + $(LIB_WITH_PARTITION) $(LAPACK) $(BLAS) + +SO_OPTS += $(CFOPENMP) + +#------------------------------------------------------------------------------- +# With the CUDA BLAS: +ifneq ($(GPU_CONFIG),) +LDLIBS += $(CUDART_LIB) $(CUBLAS_LIB) +endif +#------------------------------------------------------------------------------- + +# compile and install in SuiteSparse/lib +library: + $(MAKE) install INSTALL=$(SUITESPARSE) + #------------------------------------------------------------------------------- I = -I../../AMD/Include -I../../AMD/Source -I../../COLAMD/Include \ @@ -26,8 +42,6 @@ C = $(CC) $(CF) $(CHOLMOD_CONFIG) $(CONFIG_PARTITION) all: library -library: $(AR_TARGET) $(SO_TARGET) - purge: distclean distclean: clean @@ -142,9 +156,6 @@ $(AR_TARGET): $(OBJ) $(ARCHIVE) $@ $^ - $(RANLIB) $@ -$(SO_TARGET): $(OBJ) - $(CC) $(SO_OPTS) $^ -o $@ - $(OBJ): $(INC) #------------------------------------------------------------------------------- @@ -522,14 +533,13 @@ cholmod_l_gpu.o: ../GPU/cholmod_gpu.c #------------------------------------------------------------------------------- # install CHOLMOD -install: $(INSTALL_LIB)/$(SO_TARGET) +install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) -$(INSTALL_LIB)/$(SO_TARGET): $(SO_TARGET) +$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) @mkdir -p $(INSTALL_LIB) @mkdir -p $(INSTALL_INCLUDE) @mkdir -p $(INSTALL_DOC) - $(CP) $(SO_TARGET) $(INSTALL_LIB) - $(SO_INSTALL_NAME) $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/$(SO_TARGET) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) $(CP) ../Include/cholmod*.h $(INSTALL_INCLUDE) diff --git a/CHOLMOD/Makefile b/CHOLMOD/Makefile index 4aa3e326d..bdbf59e61 100644 --- a/CHOLMOD/Makefile +++ b/CHOLMOD/Makefile @@ -2,6 +2,9 @@ # CHOLMOD Makefile #------------------------------------------------------------------------------- +SUITESPARSE ?= $(realpath $(CURDIR)/..) +export SUITESPARSE + default: all include ../SuiteSparse_config/SuiteSparse_config.mk diff --git a/COLAMD/Demo/colamd_example.out b/COLAMD/Demo/colamd_example.out index e6478fd07..d2fbc298c 100644 --- a/COLAMD/Demo/colamd_example.out +++ b/COLAMD/Demo/colamd_example.out @@ -15,7 +15,7 @@ Column 3, with 2 entries: row 1 row 3 -colamd version 2.9, Jan 30, 2016: OK. +colamd version 2.9, Feb 1, 2016: OK. colamd: number of dense or empty rows ignored: 0 colamd: number of dense or empty columns ignored: 0 colamd: number of garbage collections performed: 0 @@ -38,7 +38,7 @@ Column 3, with 1 entries: row 4 Column 4, with 0 entries: -symamd version 2.9, Jan 30, 2016: OK. +symamd version 2.9, Feb 1, 2016: OK. symamd: number of dense or empty rows ignored: 0 symamd: number of dense or empty columns ignored: 0 symamd: number of garbage collections performed: 0 diff --git a/COLAMD/Demo/colamd_l_example.out b/COLAMD/Demo/colamd_l_example.out index b9d6f99a8..ce864b199 100644 --- a/COLAMD/Demo/colamd_l_example.out +++ b/COLAMD/Demo/colamd_l_example.out @@ -15,7 +15,7 @@ Column 3, with 2 entries: row 1 row 3 -colamd version 2.9, Jan 30, 2016: OK. +colamd version 2.9, Feb 1, 2016: OK. colamd: number of dense or empty rows ignored: 0 colamd: number of dense or empty columns ignored: 0 colamd: number of garbage collections performed: 0 @@ -38,7 +38,7 @@ Column 3, with 1 entries: row 4 Column 4, with 0 entries: -symamd version 2.9, Jan 30, 2016: OK. +symamd version 2.9, Feb 1, 2016: OK. symamd: number of dense or empty rows ignored: 0 symamd: number of dense or empty columns ignored: 0 symamd: number of garbage collections performed: 0 diff --git a/COLAMD/Doc/ChangeLog b/COLAMD/Doc/ChangeLog index b1114ad3a..349e6b9cb 100644 --- a/COLAMD/Doc/ChangeLog +++ b/COLAMD/Doc/ChangeLog @@ -1,3 +1,7 @@ +Feb 1, 2016: version 2.9.4 + + * update to Makefiles + Jan 30, 2016: version 2.9.3 * modifications to Makefiles diff --git a/COLAMD/Include/colamd.h b/COLAMD/Include/colamd.h index 7db144eb8..2d7b454ba 100644 --- a/COLAMD/Include/colamd.h +++ b/COLAMD/Include/colamd.h @@ -77,11 +77,11 @@ extern "C" { * Versions 2.3 and earlier of COLAMD do not include a #define'd version number. */ -#define COLAMD_DATE "Jan 30, 2016" +#define COLAMD_DATE "Feb 1, 2016" #define COLAMD_VERSION_CODE(main,sub) ((main) * 1000 + (sub)) #define COLAMD_MAIN_VERSION 2 #define COLAMD_SUB_VERSION 9 -#define COLAMD_SUBSUB_VERSION 3 +#define COLAMD_SUBSUB_VERSION 4 #define COLAMD_VERSION \ COLAMD_VERSION_CODE(COLAMD_MAIN_VERSION,COLAMD_SUB_VERSION) diff --git a/COLAMD/Lib/Makefile b/COLAMD/Lib/Makefile index 97b4f450f..38d5d1566 100644 --- a/COLAMD/Lib/Makefile +++ b/COLAMD/Lib/Makefile @@ -3,15 +3,20 @@ #------------------------------------------------------------------------------- LIBRARY = libcolamd -VERSION = 2.9.3 +VERSION = 2.9.4 SO_VERSION = 2 default: library - $(MAKE) install INSTALL=$(CURDIR)/../.. \ - INSTALL_DOC=$(CURDIR)/../../doc include ../../SuiteSparse_config/SuiteSparse_config.mk +# COLAMD depends on SuiteSparse_config +LDLIBS += -lsuitesparseconfig + +# compile and install in SuiteSparse/lib +library: + $(MAKE) install INSTALL=$(SUITESPARSE) + I = -I../Include -I../../SuiteSparse_config INC = ../Include/colamd.h ../../SuiteSparse_config/SuiteSparse_config.h @@ -31,13 +36,8 @@ $(AR_TARGET): $(OBJ) $(ARCHIVE) $@ $^ - $(RANLIB) $@ -$(SO_TARGET): $(OBJ) - $(CC) $(SO_OPTS) $^ -o $@ - ccode: library -library: $(AR_TARGET) $(SO_TARGET) - clean: - $(RM) -r $(CLEAN) @@ -47,14 +47,13 @@ distclean: clean - $(RM) -r $(PURGE) # install COLAMD -install: $(INSTALL_LIB)/$(SO_TARGET) +install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) -$(INSTALL_LIB)/$(SO_TARGET): $(SO_TARGET) +$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) @mkdir -p $(INSTALL_LIB) @mkdir -p $(INSTALL_INCLUDE) @mkdir -p $(INSTALL_DOC) - $(CP) $(SO_TARGET) $(INSTALL_LIB) - $(SO_INSTALL_NAME) $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/$(SO_TARGET) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) $(CP) ../Include/colamd.h $(INSTALL_INCLUDE) diff --git a/COLAMD/Makefile b/COLAMD/Makefile index e0bcd04a3..cefc4257c 100644 --- a/COLAMD/Makefile +++ b/COLAMD/Makefile @@ -2,6 +2,9 @@ # COLAMD Makefile #------------------------------------------------------------------------------ +SUITESPARSE ?= $(realpath $(CURDIR)/..) +export SUITESPARSE + default: all include ../SuiteSparse_config/SuiteSparse_config.mk diff --git a/CSparse/Demo/Makefile b/CSparse/Demo/Makefile index 84d43aa70..3f02e020c 100644 --- a/CSparse/Demo/Makefile +++ b/CSparse/Demo/Makefile @@ -2,7 +2,7 @@ CF = $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -O I = -I../Include LDLIBS += -lm -CS = $(LDFLAGS) -L../Lib -lcsparse $(LDLIBS) +CS = $(LDFLAGS) ../Lib/libcsparse.a $(LDLIBS) all: lib cs_demo1 cs_demo2 cs_demo3 - ./cs_demo1 < ../Matrix/t1 diff --git a/CSparse/Doc/ChangeLog b/CSparse/Doc/ChangeLog index 12aa9a41a..e48da6297 100644 --- a/CSparse/Doc/ChangeLog +++ b/CSparse/Doc/ChangeLog @@ -1,3 +1,7 @@ +Feb 1, 2016: version 3.1.7 + + * update to Makefiles + Jan 30, 2016: version 3.1.6 * correction to Makefiles diff --git a/CSparse/Include/cs.h b/CSparse/Include/cs.h index 3d3719778..3abc86193 100644 --- a/CSparse/Include/cs.h +++ b/CSparse/Include/cs.h @@ -10,8 +10,8 @@ #endif #define CS_VER 3 /* CSparse Version */ #define CS_SUBVER 1 -#define CS_SUBSUB 6 -#define CS_DATE "Jan 30, 2016" /* CSparse release date */ +#define CS_SUBSUB 7 +#define CS_DATE "Feb 1, 2016" /* CSparse release date */ #define CS_COPYRIGHT "Copyright (c) Timothy A. Davis, 2006-2016" #ifdef MATLAB_MEX_FILE diff --git a/CSparse/Lib/Makefile b/CSparse/Lib/Makefile index c54ed2663..ec57e71e0 100644 --- a/CSparse/Lib/Makefile +++ b/CSparse/Lib/Makefile @@ -9,18 +9,12 @@ # To run a demo using the library # cd ../Demo ; make # -# To install CSparse for all users, do this in the command line: -# make install -# Once you do this, you can just compile your program with: -# cc myprogram.c -lcsparse -# where myprogram.c needs to have the line: -# #include "cs.h" -# See Demo/cs_demo1.c for an example, which can now be compiled with -# cc cs_demo1.c -o cs_demo1 -lcsparse +# For system-wide installation, I recommend that you install CXSparse instead. +# The CSparse library is meant for personal experimentation. The 'make +# install' in this Makefile only installs a static compiled library in +# CSparse/Lib. It does not install it for system-wide usage. LIBRARY = libcsparse -VERSION = 3.1.6 -SO_VERSION = 3 CF = $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -O -fPIC I = -I../Include @@ -28,46 +22,9 @@ RANLIB = ranlib ARCHIVE = $(AR) $(ARFLAGS) CP = cp -f -# how to build/install shared and static libraries for Mac and Linux: -# For "make install" and "make uninstall" -ifeq ($(wildcard $(INSTALL)),) - # default location is /usr/local/lib and /usr/local/include - INSTALL = /usr/local -endif -INSTALL_LIB = $(INSTALL)/lib -INSTALL_INCLUDE = $(INSTALL)/include -INSTALL_DOC = /usr/share/doc/CSparse-$(VERSION) -ifeq ($(OS),Windows_NT) - # Windows (untested) - AR_TARGET = $(LIBRARY).lib - SO_PLAIN = $(LIBRARY).dll - SO_MAIN = $(LIBRARY).$(SO_VERSION).dll - SO_TARGET = $(LIBRARY).$(VERSION).dll - SO_INSTALL_NAME = echo -else - # Mac or Linux/Unix - UNAME := $(shell uname) - AR_TARGET = $(LIBRARY).a - ifeq ($(UNAME),Darwin) - # Mac - SO_PLAIN = $(LIBRARY).dylib - SO_MAIN = $(LIBRARY).$(SO_VERSION).dylib - SO_TARGET = $(LIBRARY).$(VERSION).dylib - SO_OPTS = -dynamiclib -compatibility_version $(VERSION) \ - -current_version $(VERSION) \ - -shared -undefined dynamic_lookup - SO_INSTALL_NAME = install_name_tool -id - else - # Linux and other variants of Unix - SO_PLAIN = $(LIBRARY).so - SO_MAIN = $(LIBRARY).so.$(SO_VERSION) - SO_TARGET = $(LIBRARY).so.$(VERSION) - SO_OPTS = -shared -lm -Wl,-soname -Wl,$(SO_MAIN) - SO_INSTALL_NAME = echo - endif -endif +AR_TARGET = $(LIBRARY).a -all: $(AR_TARGET) $(SO_TARGET) +all: install CS = cs_add.o cs_amd.o cs_chol.o cs_cholsol.o cs_counts.o cs_cumsum.o \ cs_droptol.o cs_dropzeros.o cs_dupl.o cs_entry.o \ @@ -88,33 +45,11 @@ $(AR_TARGET): $(CS) $(ARCHIVE) $@ $^ - $(RANLIB) $@ -$(SO_TARGET): $(CS) - $(CC) $(SO_OPTS) $^ -o $@ - -# install CSparse -install: $(INSTALL_LIB)/$(SO_TARGET) - -$(INSTALL_LIB)/$(SO_TARGET): $(SO_TARGET) - @mkdir -p $(INSTALL_LIB) - @mkdir -p $(INSTALL_INCLUDE) - @mkdir -p $(INSTALL_DOC) - $(CP) $(SO_TARGET) $(INSTALL_LIB) - $(SO_INSTALL_NAME) $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/$(SO_TARGET) - ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) - ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) - $(CP) ../Include/cs.h $(INSTALL_INCLUDE) - $(CP) ../README.txt $(INSTALL_DOC)/CSPARSE_README.txt - chmod 755 $(INSTALL_LIB)/$(SO_TARGET) - chmod 644 $(INSTALL_INCLUDE)/cs.h - chmod 644 $(INSTALL_DOC)/CSPARSE_README.txt +# install CSparse in this directory +install: $(AR_TARGET) # uninstall CSparse -uninstall: - $(RM) $(INSTALL_LIB)/$(SO_TARGET) - $(RM) $(INSTALL_LIB)/$(SO_PLAIN) - $(RM) $(INSTALL_LIB)/$(SO_MAIN) - $(RM) $(INSTALL_INCLUDE)/cs.h - $(RM) $(INSTALL_DOC)/CSPARSE_README.txt +uninstall: purge clean: - $(RM) *.o diff --git a/CSparse/README.txt b/CSparse/README.txt index fd378ebb8..b27f35b86 100644 --- a/CSparse/README.txt +++ b/CSparse/README.txt @@ -1,5 +1,5 @@ CSparse: a Concise Sparse Matrix package. -VERSION 3.1.6, Copyright (c) 2006-2016, Timothy A. Davis. +VERSION 3.1.7, Copyright (c) 2006-2016, Timothy A. Davis. http://www.suitesparse.com Refer to "Direct Methods for Sparse Linear Systems," Timothy A. Davis, diff --git a/CXSparse/Demo/cs_demo.out b/CXSparse/Demo/cs_demo.out index 356ceff2f..280dc6b50 100644 --- a/CXSparse/Demo/cs_demo.out +++ b/CXSparse/Demo/cs_demo.out @@ -1,15 +1,24 @@ -( cd ../Lib ; /Applications/Xcode.app/Contents/Developer/usr/bin/make ) -/Applications/Xcode.app/Contents/Developer/usr/bin/make install INSTALL=/Users/davis/sparse/SuiteSparse/CXSparse/Lib/../.. +make[1]: Entering directory `/research/davis/sparse/SuiteSparse/CXSparse/Demo' +( cd ../Lib ; make ) +make[2]: Entering directory `/research/davis/sparse/SuiteSparse/CXSparse/Lib' +make install INSTALL=/research/davis/sparse/SuiteSparse +make[3]: Entering directory `/research/davis/sparse/SuiteSparse/CXSparse/Lib' make[3]: Nothing to be done for `install'. -( cd ../../SuiteSparse_config ; /Applications/Xcode.app/Contents/Developer/usr/bin/make ) -/Applications/Xcode.app/Contents/Developer/usr/bin/make install INSTALL=/Users/davis/sparse/SuiteSparse/SuiteSparse_config/.. +make[3]: Leaving directory `/research/davis/sparse/SuiteSparse/CXSparse/Lib' +make[2]: Leaving directory `/research/davis/sparse/SuiteSparse/CXSparse/Lib' +( cd ../../SuiteSparse_config ; make ) +make[2]: Entering directory `/research/davis/sparse/SuiteSparse/SuiteSparse_config' +make install INSTALL=/research/davis/sparse/SuiteSparse +make[3]: Entering directory `/research/davis/sparse/SuiteSparse/SuiteSparse_config' make[3]: Nothing to be done for `install'. +make[3]: Leaving directory `/research/davis/sparse/SuiteSparse/SuiteSparse_config' +make[2]: Leaving directory `/research/davis/sparse/SuiteSparse/SuiteSparse_config' ./cs_idemo < ../Matrix/t2 --- cs_idemo, size of CS_INT: 4 T: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : (3, 3.14159) 1 0 : (3.1, 42) @@ -23,7 +32,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 2 1 : (1.7, 1) Treal: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : 3 1 0 : 3.1 @@ -37,7 +46,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 2 1 : 1.7 Timag: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : 3.14159 1 0 : 42 @@ -51,7 +60,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 2 1 : 1 A: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106.075 col 0 : locations 0 to 2 1 : (3.1, 42) @@ -69,7 +78,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 1 : (0.9, 99) C1 = real(A): -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 11.1 col 0 : locations 0 to 2 1 : 3.1 @@ -87,7 +96,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 1 : 0.9 C2 = imag(A): -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106 col 0 : locations 0 to 2 1 : 42 @@ -105,7 +114,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 1 : 99 A1: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 11.1 col 0 : locations 0 to 2 1 : (3.1, 0) @@ -123,7 +132,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 1 : (0.9, 0) A2: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106 col 0 : locations 0 to 2 1 : (0, 42) @@ -141,7 +150,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 1 : (0, 99) B = conj(A): -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106.075 col 0 : locations 0 to 2 1 : (3.1, -42) @@ -162,7 +171,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 --- cs_ldemo, size of CS_INT: 8 T: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : (3, 3.14159) 1 0 : (3.1, 42) @@ -176,7 +185,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 2 1 : (1.7, 1) Treal: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : 3 1 0 : 3.1 @@ -190,7 +199,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 2 1 : 1.7 Timag: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : 3.14159 1 0 : 42 @@ -204,7 +213,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 2 1 : 1 A: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106.075 col 0 : locations 0 to 2 1 : (3.1, 42) @@ -222,7 +231,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 1 : (0.9, 99) C1 = real(A): -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 11.1 col 0 : locations 0 to 2 1 : 3.1 @@ -240,7 +249,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 1 : 0.9 C2 = imag(A): -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106 col 0 : locations 0 to 2 1 : 42 @@ -258,7 +267,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 1 : 99 A1: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 11.1 col 0 : locations 0 to 2 1 : (3.1, 0) @@ -276,7 +285,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 1 : (0.9, 0) A2: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106 col 0 : locations 0 to 2 1 : (0, 42) @@ -294,7 +303,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 1 : (0, 99) B = conj(A): -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106.075 col 0 : locations 0 to 2 1 : (3.1, -42) @@ -312,7 +321,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 1 : (0.9, -99) ./cs_demo1 < ../Matrix/t1 T: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : 3 1 0 : 3.1 @@ -325,7 +334,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 0 0 : 4.5 2 1 : 1.7 A: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 11.1 col 0 : locations 0 to 2 1 : 3.1 @@ -342,7 +351,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 3 : 1 1 : 0.9 AT: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 7.7 col 0 : locations 0 to 1 0 : 4.5 @@ -359,7 +368,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 1 : 0.4 3 : 1 D: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 16 nnz: 16, 1-norm: 139.58 col 0 : locations 0 to 3 1 : 13.95 @@ -397,8 +406,8 @@ LU amd(A'*A) time: 0.00 resid: 1.53e-17 zero entries dropped: 71 tiny entries dropped: 10 blocks: 38 singletons: 37 structural rank: 183 -QR natural time: 0.00 resid: 1.42e-27 -QR amd(A'*A) time: 0.00 resid: 3.35e-28 +QR natural time: 0.00 resid: 6.62e-28 +QR amd(A'*A) time: 0.00 resid: 4.62e-28 LU natural time: 0.00 resid: 6.20e-28 LU amd(A+A') time: 0.00 resid: 1.55e-27 LU amd(S'*S) time: 0.00 resid: 6.98e-28 @@ -407,8 +416,8 @@ LU amd(A'*A) time: 0.00 resid: 6.98e-28 --- Matrix: 67-by-67, nnz: 294 (sym: 0: nnz 0), norm: 6.14e+00 blocks: 2 singletons: 1 structural rank: 67 -QR natural time: 0.00 resid: 5.19e-17 -QR amd(A'*A) time: 0.00 resid: 3.25e-17 +QR natural time: 0.00 resid: 3.33e-17 +QR amd(A'*A) time: 0.00 resid: 5.84e-17 LU natural time: 0.00 resid: 3.89e-17 LU amd(A+A') time: 0.00 resid: 2.27e-17 LU amd(S'*S) time: 0.00 resid: 1.95e-17 @@ -417,8 +426,8 @@ LU amd(A'*A) time: 0.00 resid: 2.60e-17 --- Matrix: 27-by-51, nnz: 102 (sym: 0: nnz 0), norm: 3.43e+00 blocks: 1 singletons: 0 structural rank: 27 -QR natural time: 0.00 resid: 3.85e-16 -QR amd(A'*A) time: 0.00 resid: 1.50e-16 +QR natural time: 0.00 resid: 2.25e-16 +QR amd(A'*A) time: 0.00 resid: 1.61e-16 ./cs_demo2 < ../Matrix/ash219 --- Matrix: 219-by-85, nnz: 438 (sym: 0: nnz 0), norm: 9.00e+00 @@ -429,14 +438,14 @@ QR amd(A'*A) time: 0.00 resid: 1.61e-02 --- Matrix: 492-by-490, nnz: 49920 (sym: 0: nnz 0), norm: 9.29e-01 blocks: 10 singletons: 8 structural rank: 448 -QR natural time: 0.06 resid: nan -QR amd(A'*A) time: 0.05 resid: nan +QR natural time: 0.03 resid: nan +QR amd(A'*A) time: 0.03 resid: nan ./cs_demo2 < ../Matrix/bcsstk01 --- Matrix: 48-by-48, nnz: 224 (sym: -1: nnz 400), norm: 3.57e+09 blocks: 1 singletons: 0 structural rank: 48 -QR natural time: 0.00 resid: 3.65e-19 -QR amd(A'*A) time: 0.00 resid: 4.02e-19 +QR natural time: 0.00 resid: 3.15e-19 +QR amd(A'*A) time: 0.00 resid: 2.55e-19 LU natural time: 0.00 resid: 2.17e-19 LU amd(A+A') time: 0.00 resid: 1.87e-19 LU amd(S'*S) time: 0.00 resid: 2.38e-19 @@ -453,36 +462,36 @@ numeric chol time 0.00 solve chol time 0.00 original: resid: 2.55e-19 update: time: 0.00 -update: time: 0.00 (incl solve) resid: 3.52e-18 -rechol: time: 0.00 (incl solve) resid: 2.93e-18 +update: time: 0.00 (incl solve) resid: 9.66e-19 +rechol: time: 0.00 (incl solve) resid: 1.55e-18 downdate: time: 0.00 -downdate: time: 0.00 (incl solve) resid: 4.32e-17 +downdate: time: 0.00 (incl solve) resid: 3.74e-17 ./cs_demo2 < ../Matrix/bcsstk16 --- Matrix: 4884-by-4884, nnz: 147631 (sym: -1: nnz 290378), norm: 7.01e+09 blocks: 75 singletons: 74 structural rank: 4884 -QR amd(A'*A) time: 0.55 resid: 2.01e-22 -LU amd(A+A') time: 0.27 resid: 1.10e-22 -LU amd(S'*S) time: 0.27 resid: 1.28e-22 -LU amd(A'*A) time: 0.28 resid: 1.78e-22 -Chol amd(A+A') time: 0.08 resid: 1.19e-22 +QR amd(A'*A) time: 0.32 resid: 9.72e-23 +LU amd(A+A') time: 0.21 resid: 1.10e-22 +LU amd(S'*S) time: 0.22 resid: 1.28e-22 +LU amd(A'*A) time: 0.23 resid: 1.78e-22 +Chol amd(A+A') time: 0.07 resid: 1.19e-22 ./cs_demo3 < ../Matrix/bcsstk16 --- Matrix: 4884-by-4884, nnz: 147631 (sym: -1: nnz 290378), norm: 7.01e+09 chol then update/downdate amd(A+A') -symbolic chol time 0.01 -numeric chol time 0.08 +symbolic chol time 0.00 +numeric chol time 0.06 solve chol time 0.00 original: resid: 1.19e-22 update: time: 0.00 -update: time: 0.00 (incl solve) resid: 1.71e-23 -rechol: time: 0.07 (incl solve) resid: 1.61e-23 +update: time: 0.00 (incl solve) resid: 1.12e-23 +rechol: time: 0.06 (incl solve) resid: 1.17e-23 downdate: time: 0.00 -downdate: time: 0.00 (incl solve) resid: 1.24e-21 +downdate: time: 0.00 (incl solve) resid: 4.09e-22 ./cs_di_demo1 < ../Matrix/t1 T: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : 3 1 0 : 3.1 @@ -495,7 +504,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 0 0 : 4.5 2 1 : 1.7 A: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 11.1 col 0 : locations 0 to 2 1 : 3.1 @@ -512,7 +521,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 3 : 1 1 : 0.9 AT: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 7.7 col 0 : locations 0 to 1 0 : 4.5 @@ -529,7 +538,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 1 : 0.4 3 : 1 D: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 16 nnz: 16, 1-norm: 139.58 col 0 : locations 0 to 3 1 : 13.95 @@ -567,8 +576,8 @@ LU amd(A'*A) time: 0.00 resid: 1.53e-17 zero entries dropped: 71 tiny entries dropped: 10 blocks: 38 singletons: 37 structural rank: 183 -QR natural time: 0.00 resid: 1.42e-27 -QR amd(A'*A) time: 0.00 resid: 3.35e-28 +QR natural time: 0.00 resid: 6.62e-28 +QR amd(A'*A) time: 0.00 resid: 4.62e-28 LU natural time: 0.00 resid: 6.20e-28 LU amd(A+A') time: 0.00 resid: 1.55e-27 LU amd(S'*S) time: 0.00 resid: 6.98e-28 @@ -577,8 +586,8 @@ LU amd(A'*A) time: 0.00 resid: 6.98e-28 --- Matrix: 67-by-67, nnz: 294 (sym: 0: nnz 0), norm: 6.14e+00 blocks: 2 singletons: 1 structural rank: 67 -QR natural time: 0.00 resid: 5.19e-17 -QR amd(A'*A) time: 0.00 resid: 3.25e-17 +QR natural time: 0.00 resid: 3.33e-17 +QR amd(A'*A) time: 0.00 resid: 5.84e-17 LU natural time: 0.00 resid: 3.89e-17 LU amd(A+A') time: 0.00 resid: 2.27e-17 LU amd(S'*S) time: 0.00 resid: 1.95e-17 @@ -587,8 +596,8 @@ LU amd(A'*A) time: 0.00 resid: 2.60e-17 --- Matrix: 27-by-51, nnz: 102 (sym: 0: nnz 0), norm: 3.43e+00 blocks: 1 singletons: 0 structural rank: 27 -QR natural time: 0.00 resid: 3.85e-16 -QR amd(A'*A) time: 0.00 resid: 1.50e-16 +QR natural time: 0.00 resid: 2.25e-16 +QR amd(A'*A) time: 0.00 resid: 1.61e-16 ./cs_di_demo2 < ../Matrix/ash219 --- Matrix: 219-by-85, nnz: 438 (sym: 0: nnz 0), norm: 9.00e+00 @@ -599,14 +608,14 @@ QR amd(A'*A) time: 0.00 resid: 1.61e-02 --- Matrix: 492-by-490, nnz: 49920 (sym: 0: nnz 0), norm: 9.29e-01 blocks: 10 singletons: 8 structural rank: 448 -QR natural time: 0.04 resid: nan -QR amd(A'*A) time: 0.06 resid: nan +QR natural time: 0.02 resid: nan +QR amd(A'*A) time: 0.04 resid: nan ./cs_di_demo2 < ../Matrix/bcsstk01 --- Matrix: 48-by-48, nnz: 224 (sym: -1: nnz 400), norm: 3.57e+09 blocks: 1 singletons: 0 structural rank: 48 -QR natural time: 0.00 resid: 3.65e-19 -QR amd(A'*A) time: 0.00 resid: 4.02e-19 +QR natural time: 0.00 resid: 3.15e-19 +QR amd(A'*A) time: 0.00 resid: 2.55e-19 LU natural time: 0.00 resid: 2.17e-19 LU amd(A+A') time: 0.00 resid: 1.87e-19 LU amd(S'*S) time: 0.00 resid: 2.38e-19 @@ -623,36 +632,36 @@ numeric chol time 0.00 solve chol time 0.00 original: resid: 2.55e-19 update: time: 0.00 -update: time: 0.00 (incl solve) resid: 3.52e-18 -rechol: time: 0.00 (incl solve) resid: 2.93e-18 +update: time: 0.00 (incl solve) resid: 9.66e-19 +rechol: time: 0.00 (incl solve) resid: 1.55e-18 downdate: time: 0.00 -downdate: time: 0.00 (incl solve) resid: 4.32e-17 +downdate: time: 0.00 (incl solve) resid: 3.74e-17 ./cs_di_demo2 < ../Matrix/bcsstk16 --- Matrix: 4884-by-4884, nnz: 147631 (sym: -1: nnz 290378), norm: 7.01e+09 blocks: 75 singletons: 74 structural rank: 4884 -QR amd(A'*A) time: 0.55 resid: 2.01e-22 -LU amd(A+A') time: 0.28 resid: 1.10e-22 -LU amd(S'*S) time: 0.33 resid: 1.28e-22 -LU amd(A'*A) time: 0.30 resid: 1.78e-22 -Chol amd(A+A') time: 0.09 resid: 1.19e-22 +QR amd(A'*A) time: 0.32 resid: 9.72e-23 +LU amd(A+A') time: 0.21 resid: 1.10e-22 +LU amd(S'*S) time: 0.22 resid: 1.28e-22 +LU amd(A'*A) time: 0.23 resid: 1.78e-22 +Chol amd(A+A') time: 0.06 resid: 1.19e-22 ./cs_di_demo3 < ../Matrix/bcsstk16 --- Matrix: 4884-by-4884, nnz: 147631 (sym: -1: nnz 290378), norm: 7.01e+09 chol then update/downdate amd(A+A') symbolic chol time 0.01 -numeric chol time 0.08 +numeric chol time 0.05 solve chol time 0.00 original: resid: 1.19e-22 update: time: 0.00 -update: time: 0.00 (incl solve) resid: 1.71e-23 -rechol: time: 0.08 (incl solve) resid: 1.61e-23 +update: time: 0.00 (incl solve) resid: 1.12e-23 +rechol: time: 0.07 (incl solve) resid: 1.17e-23 downdate: time: 0.00 -downdate: time: 0.00 (incl solve) resid: 1.24e-21 +downdate: time: 0.00 (incl solve) resid: 4.09e-22 ./cs_dl_demo1 < ../Matrix/t1 T: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : 3 1 0 : 3.1 @@ -665,7 +674,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 0 0 : 4.5 2 1 : 1.7 A: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 11.1 col 0 : locations 0 to 2 1 : 3.1 @@ -682,7 +691,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 3 : 1 1 : 0.9 AT: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 7.7 col 0 : locations 0 to 1 0 : 4.5 @@ -699,7 +708,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 1 : 0.4 3 : 1 D: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 16 nnz: 16, 1-norm: 139.58 col 0 : locations 0 to 3 1 : 13.95 @@ -737,18 +746,18 @@ LU amd(A'*A) time: 0.00 resid: 1.53e-17 zero entries dropped: 71 tiny entries dropped: 10 blocks: 38 singletons: 37 structural rank: 183 -QR natural time: 0.00 resid: 1.42e-27 -QR amd(A'*A) time: 0.00 resid: 3.35e-28 +QR natural time: 0.00 resid: 6.62e-28 +QR amd(A'*A) time: 0.00 resid: 4.62e-28 LU natural time: 0.00 resid: 6.20e-28 -LU amd(A+A') time: 0.00 resid: 1.55e-27 +LU amd(A+A') time: 0.01 resid: 1.55e-27 LU amd(S'*S) time: 0.00 resid: 6.98e-28 LU amd(A'*A) time: 0.00 resid: 6.98e-28 ./cs_dl_demo2 < ../Matrix/west0067 --- Matrix: 67-by-67, nnz: 294 (sym: 0: nnz 0), norm: 6.14e+00 blocks: 2 singletons: 1 structural rank: 67 -QR natural time: 0.00 resid: 5.19e-17 -QR amd(A'*A) time: 0.00 resid: 3.25e-17 +QR natural time: 0.00 resid: 3.33e-17 +QR amd(A'*A) time: 0.00 resid: 5.84e-17 LU natural time: 0.00 resid: 3.89e-17 LU amd(A+A') time: 0.00 resid: 2.27e-17 LU amd(S'*S) time: 0.00 resid: 1.95e-17 @@ -757,8 +766,8 @@ LU amd(A'*A) time: 0.00 resid: 2.60e-17 --- Matrix: 27-by-51, nnz: 102 (sym: 0: nnz 0), norm: 3.43e+00 blocks: 1 singletons: 0 structural rank: 27 -QR natural time: 0.00 resid: 3.85e-16 -QR amd(A'*A) time: 0.00 resid: 1.50e-16 +QR natural time: 0.00 resid: 2.25e-16 +QR amd(A'*A) time: 0.00 resid: 1.61e-16 ./cs_dl_demo2 < ../Matrix/ash219 --- Matrix: 219-by-85, nnz: 438 (sym: 0: nnz 0), norm: 9.00e+00 @@ -769,14 +778,14 @@ QR amd(A'*A) time: 0.00 resid: 1.61e-02 --- Matrix: 492-by-490, nnz: 49920 (sym: 0: nnz 0), norm: 9.29e-01 blocks: 10 singletons: 8 structural rank: 448 -QR natural time: 0.04 resid: nan -QR amd(A'*A) time: 0.06 resid: nan +QR natural time: 0.02 resid: nan +QR amd(A'*A) time: 0.04 resid: nan ./cs_dl_demo2 < ../Matrix/bcsstk01 --- Matrix: 48-by-48, nnz: 224 (sym: -1: nnz 400), norm: 3.57e+09 blocks: 1 singletons: 0 structural rank: 48 -QR natural time: 0.00 resid: 3.65e-19 -QR amd(A'*A) time: 0.00 resid: 4.02e-19 +QR natural time: 0.00 resid: 3.15e-19 +QR amd(A'*A) time: 0.00 resid: 2.55e-19 LU natural time: 0.00 resid: 2.17e-19 LU amd(A+A') time: 0.00 resid: 1.87e-19 LU amd(S'*S) time: 0.00 resid: 2.38e-19 @@ -793,36 +802,36 @@ numeric chol time 0.00 solve chol time 0.00 original: resid: 2.55e-19 update: time: 0.00 -update: time: 0.00 (incl solve) resid: 3.52e-18 -rechol: time: 0.00 (incl solve) resid: 2.93e-18 +update: time: 0.00 (incl solve) resid: 9.66e-19 +rechol: time: 0.00 (incl solve) resid: 1.55e-18 downdate: time: 0.00 -downdate: time: 0.00 (incl solve) resid: 4.32e-17 +downdate: time: 0.00 (incl solve) resid: 3.74e-17 ./cs_dl_demo2 < ../Matrix/bcsstk16 --- Matrix: 4884-by-4884, nnz: 147631 (sym: -1: nnz 290378), norm: 7.01e+09 blocks: 75 singletons: 74 structural rank: 4884 -QR amd(A'*A) time: 0.58 resid: 2.01e-22 -LU amd(A+A') time: 0.28 resid: 1.10e-22 -LU amd(S'*S) time: 0.29 resid: 1.28e-22 -LU amd(A'*A) time: 0.34 resid: 1.78e-22 -Chol amd(A+A') time: 0.11 resid: 1.19e-22 +QR amd(A'*A) time: 0.33 resid: 9.72e-23 +LU amd(A+A') time: 0.20 resid: 1.10e-22 +LU amd(S'*S) time: 0.22 resid: 1.28e-22 +LU amd(A'*A) time: 0.22 resid: 1.78e-22 +Chol amd(A+A') time: 0.07 resid: 1.19e-22 ./cs_dl_demo3 < ../Matrix/bcsstk16 --- Matrix: 4884-by-4884, nnz: 147631 (sym: -1: nnz 290378), norm: 7.01e+09 chol then update/downdate amd(A+A') symbolic chol time 0.01 -numeric chol time 0.09 +numeric chol time 0.06 solve chol time 0.00 original: resid: 1.19e-22 update: time: 0.00 -update: time: 0.00 (incl solve) resid: 1.71e-23 -rechol: time: 0.09 (incl solve) resid: 1.61e-23 +update: time: 0.00 (incl solve) resid: 1.12e-23 +rechol: time: 0.06 (incl solve) resid: 1.17e-23 downdate: time: 0.00 -downdate: time: 0.00 (incl solve) resid: 1.24e-21 +downdate: time: 0.00 (incl solve) resid: 4.09e-22 ./cs_ci_demo1 < ../Matrix/t2 T: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : (3, 3.14159) 1 0 : (3.1, 42) @@ -835,7 +844,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 0 0 : (4.5, 6) 2 1 : (1.7, 1) A: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106.075 col 0 : locations 0 to 2 1 : (3.1, 42) @@ -852,7 +861,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 3 : (1, 7) 1 : (0.9, 99) AT: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 144.296 col 0 : locations 0 to 1 0 : (4.5, -6) @@ -869,7 +878,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 1 : (0.4, -2.71828) 3 : (1, -7) D: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 16 nnz: 16, 1-norm: 25308.3 col 0 : locations 0 to 3 1 : (265.95, 170.4) @@ -895,12 +904,12 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 --- Matrix: 4-by-4, nnz: 10 (sym: 0: nnz 0), norm: 1.06e+02 blocks: 1 singletons: 0 structural rank: 4 -QR natural time: 0.00 resid: 1.95e-17 -QR amd(A'*A) time: 0.00 resid: 3.09e-17 -LU natural time: 0.00 resid: 7.38e-18 -LU amd(A+A') time: 0.00 resid: 5.40e-18 -LU amd(S'*S) time: 0.00 resid: 3.84e-18 -LU amd(A'*A) time: 0.00 resid: 5.40e-18 +QR natural time: 0.00 resid: 2.10e-17 +QR amd(A'*A) time: 0.00 resid: 2.51e-17 +LU natural time: 0.00 resid: 5.25e-18 +LU amd(A+A') time: 0.00 resid: 3.65e-18 +LU amd(S'*S) time: 0.00 resid: 6.90e-18 +LU amd(A'*A) time: 0.00 resid: 3.65e-18 ./cs_ci_demo2 < ../Matrix/t3 --- Matrix: 3-by-4, nnz: 12 (sym: 0: nnz 0), norm: 3.06e+00 @@ -923,58 +932,58 @@ Chol amd(A+A') time: 0.00 (failed) --- Matrix: 67-by-67, nnz: 294 (sym: 0: nnz 0), norm: 6.17e+00 blocks: 2 singletons: 1 structural rank: 67 -QR natural time: 0.00 resid: 7.86e-17 -QR amd(A'*A) time: 0.00 resid: 1.13e-16 -LU natural time: 0.00 resid: 6.30e-17 -LU amd(A+A') time: 0.00 resid: 5.29e-17 -LU amd(S'*S) time: 0.00 resid: 5.28e-17 -LU amd(A'*A) time: 0.00 resid: 4.33e-17 +QR natural time: 0.00 resid: 7.53e-17 +QR amd(A'*A) time: 0.00 resid: 1.15e-16 +LU natural time: 0.00 resid: 5.44e-17 +LU amd(A+A') time: 0.00 resid: 8.06e-17 +LU amd(S'*S) time: 0.00 resid: 6.73e-17 +LU amd(A'*A) time: 0.00 resid: 3.80e-17 ./cs_ci_demo2 < ../Matrix/c_mbeacxc --- Matrix: 492-by-490, nnz: 49920 (sym: 0: nnz 0), norm: 9.29e-01 blocks: 10 singletons: 8 structural rank: 448 -QR natural time: 0.14 resid: nan -QR amd(A'*A) time: 0.15 resid: nan +QR natural time: 0.06 resid: nan +QR amd(A'*A) time: 0.08 resid: nan ./cs_ci_demo2 < ../Matrix/young1c --- Matrix: 841-by-841, nnz: 4089 (sym: 0: nnz 0), norm: 7.30e+02 blocks: 1 singletons: 0 structural rank: 841 -QR natural time: 0.01 resid: 1.76e-16 -QR amd(A'*A) time: 0.01 resid: 1.36e-16 -LU natural time: 0.01 resid: 1.56e-16 -LU amd(A+A') time: 0.01 resid: 3.55e-16 -LU amd(S'*S) time: 0.00 resid: 2.93e-16 -LU amd(A'*A) time: 0.00 resid: 2.93e-16 +QR natural time: 0.00 resid: 1.71e-16 +QR amd(A'*A) time: 0.00 resid: 1.43e-16 +LU natural time: 0.01 resid: 1.43e-16 +LU amd(A+A') time: 0.00 resid: 3.18e-16 +LU amd(S'*S) time: 0.00 resid: 3.16e-16 +LU amd(A'*A) time: 0.01 resid: 3.16e-16 ./cs_ci_demo2 < ../Matrix/qc324 --- Matrix: 324-by-324, nnz: 26730 (sym: 0: nnz 0), norm: 1.71e+00 blocks: 1 singletons: 0 structural rank: 324 -QR natural time: 0.02 resid: 9.31e-17 -QR amd(A'*A) time: 0.03 resid: 9.34e-17 -LU natural time: 0.01 resid: 4.32e-17 -LU amd(A+A') time: 0.01 resid: 3.99e-17 -LU amd(S'*S) time: 0.01 resid: 4.00e-17 -LU amd(A'*A) time: 0.01 resid: 4.00e-17 +QR natural time: 0.01 resid: 9.24e-17 +QR amd(A'*A) time: 0.02 resid: 8.71e-17 +LU natural time: 0.00 resid: 3.70e-17 +LU amd(A+A') time: 0.01 resid: 5.05e-17 +LU amd(S'*S) time: 0.00 resid: 3.70e-17 +LU amd(A'*A) time: 0.01 resid: 3.70e-17 ./cs_ci_demo2 < ../Matrix/neumann --- Matrix: 1600-by-1600, nnz: 7840 (sym: 0: nnz 0), norm: 1.41e+01 blocks: 1 singletons: 0 structural rank: 1600 -QR amd(A'*A) time: 0.02 resid: 8.80e-16 -LU amd(A+A') time: 0.00 resid: 4.59e-16 -LU amd(S'*S) time: 0.01 resid: 4.56e-16 -LU amd(A'*A) time: 0.01 resid: 4.56e-16 +QR amd(A'*A) time: 0.01 resid: 1.18e-15 +LU amd(A+A') time: 0.00 resid: 3.55e-16 +LU amd(S'*S) time: 0.00 resid: 4.03e-16 +LU amd(A'*A) time: 0.00 resid: 4.03e-16 ./cs_ci_demo2 < ../Matrix/c4 --- Matrix: 4-by-4, nnz: 10 (sym: -1: nnz 16), norm: 7.37e+01 blocks: 1 singletons: 0 structural rank: 4 QR natural time: 0.00 resid: 5.98e-17 QR amd(A'*A) time: 0.00 resid: 5.98e-17 -LU natural time: 0.00 resid: 4.59e-17 -LU amd(A+A') time: 0.00 resid: 4.59e-17 -LU amd(S'*S) time: 0.00 resid: 4.59e-17 -LU amd(A'*A) time: 0.00 resid: 4.59e-17 -Chol natural time: 0.00 resid: 9.17e-17 -Chol amd(A+A') time: 0.00 resid: 9.17e-17 +LU natural time: 0.00 resid: 4.73e-17 +LU amd(A+A') time: 0.00 resid: 4.73e-17 +LU amd(S'*S) time: 0.00 resid: 4.73e-17 +LU amd(A'*A) time: 0.00 resid: 4.73e-17 +Chol natural time: 0.00 resid: 6.88e-17 +Chol amd(A+A') time: 0.00 resid: 6.88e-17 ./cs_ci_demo3 < ../Matrix/c4 --- Matrix: 4-by-4, nnz: 10 (sym: -1: nnz 16), norm: 7.37e+01 @@ -983,22 +992,22 @@ chol then update/downdate amd(A+A') symbolic chol time 0.00 numeric chol time 0.00 solve chol time 0.00 -original: resid: 9.17e-17 +original: resid: 6.88e-17 update: time: 0.00 -update: time: 0.00 (incl solve) resid: 7.03e-17 -rechol: time: 0.00 (incl solve) resid: 4.83e-17 +update: time: 0.00 (incl solve) resid: 6.49e-17 +rechol: time: 0.00 (incl solve) resid: 6.49e-17 downdate: time: 0.00 -downdate: time: 0.00 (incl solve) resid: 9.17e-17 +downdate: time: 0.00 (incl solve) resid: 5.85e-17 ./cs_ci_demo2 < ../Matrix/mhd1280b --- Matrix: 1280-by-1280, nnz: 11963 (sym: -1: nnz 22646), norm: 8.00e+01 tiny entries dropped: 66 blocks: 20 singletons: 14 structural rank: 1280 -QR amd(A'*A) time: 0.00 resid: 5.96e-25 +QR amd(A'*A) time: 0.00 resid: 4.15e-25 LU amd(A+A') time: 0.00 resid: 2.33e-25 -LU amd(S'*S) time: 0.00 resid: 2.45e-25 -LU amd(A'*A) time: 0.00 resid: 2.45e-25 -Chol amd(A+A') time: 0.00 resid: 1.58e-25 +LU amd(S'*S) time: 0.01 resid: 3.96e-25 +LU amd(A'*A) time: 0.00 resid: 3.96e-25 +Chol amd(A+A') time: 0.00 resid: 1.69e-25 ./cs_ci_demo3 < ../Matrix/mhd1280b --- Matrix: 1280-by-1280, nnz: 12029 (sym: -1: nnz 22778), norm: 8.00e+01 @@ -1007,15 +1016,15 @@ chol then update/downdate amd(A+A') symbolic chol time 0.00 numeric chol time 0.00 solve chol time 0.00 -original: resid: 2.14e-25 +original: resid: 1.69e-25 update: time: 0.00 -update: time: 0.00 (incl solve) resid: 2.14e-25 -rechol: time: 0.00 (incl solve) resid: 2.14e-25 +update: time: 0.00 (incl solve) resid: 1.75e-25 +rechol: time: 0.00 (incl solve) resid: 1.71e-25 downdate: time: 0.00 -downdate: time: 0.00 (incl solve) resid: 6.54e-25 +downdate: time: 0.00 (incl solve) resid: 5.85e-25 ./cs_cl_demo1 < ../Matrix/t2 T: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : (3, 3.14159) 1 0 : (3.1, 42) @@ -1028,7 +1037,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 0 0 : (4.5, 6) 2 1 : (1.7, 1) A: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106.075 col 0 : locations 0 to 2 1 : (3.1, 42) @@ -1045,7 +1054,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 3 : (1, 7) 1 : (0.9, 99) AT: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 10 nnz: 10, 1-norm: 144.296 col 0 : locations 0 to 1 0 : (4.5, -6) @@ -1062,7 +1071,7 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 1 : (0.4, -2.71828) 3 : (1, -7) D: -CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 +CXSparse Version 3.1.7, Feb 1, 2016. Copyright (c) Timothy A. Davis, 2006-2016 4-by-4, nzmax: 16 nnz: 16, 1-norm: 25308.3 col 0 : locations 0 to 3 1 : (265.95, 170.4) @@ -1088,12 +1097,12 @@ CXSparse Version 3.1.6, Jan 30, 2016. Copyright (c) Timothy A. Davis, 2006-2016 --- Matrix: 4-by-4, nnz: 10 (sym: 0: nnz 0), norm: 1.06e+02 blocks: 1 singletons: 0 structural rank: 4 -QR natural time: 0.00 resid: 1.95e-17 -QR amd(A'*A) time: 0.00 resid: 3.09e-17 -LU natural time: 0.00 resid: 7.38e-18 -LU amd(A+A') time: 0.00 resid: 5.40e-18 -LU amd(S'*S) time: 0.00 resid: 3.84e-18 -LU amd(A'*A) time: 0.00 resid: 5.40e-18 +QR natural time: 0.00 resid: 2.10e-17 +QR amd(A'*A) time: 0.00 resid: 2.51e-17 +LU natural time: 0.00 resid: 5.25e-18 +LU amd(A+A') time: 0.00 resid: 3.65e-18 +LU amd(S'*S) time: 0.00 resid: 6.90e-18 +LU amd(A'*A) time: 0.00 resid: 3.65e-18 ./cs_cl_demo2 < ../Matrix/t3 --- Matrix: 3-by-4, nnz: 12 (sym: 0: nnz 0), norm: 3.06e+00 @@ -1116,58 +1125,58 @@ Chol amd(A+A') time: 0.00 (failed) --- Matrix: 67-by-67, nnz: 294 (sym: 0: nnz 0), norm: 6.17e+00 blocks: 2 singletons: 1 structural rank: 67 -QR natural time: 0.00 resid: 7.86e-17 -QR amd(A'*A) time: 0.00 resid: 1.13e-16 -LU natural time: 0.00 resid: 6.30e-17 -LU amd(A+A') time: 0.00 resid: 5.29e-17 -LU amd(S'*S) time: 0.00 resid: 5.28e-17 -LU amd(A'*A) time: 0.00 resid: 4.33e-17 +QR natural time: 0.00 resid: 7.53e-17 +QR amd(A'*A) time: 0.00 resid: 1.15e-16 +LU natural time: 0.00 resid: 5.44e-17 +LU amd(A+A') time: 0.00 resid: 8.06e-17 +LU amd(S'*S) time: 0.00 resid: 6.73e-17 +LU amd(A'*A) time: 0.00 resid: 3.80e-17 ./cs_cl_demo2 < ../Matrix/c_mbeacxc --- Matrix: 492-by-490, nnz: 49920 (sym: 0: nnz 0), norm: 9.29e-01 blocks: 10 singletons: 8 structural rank: 448 -QR natural time: 0.14 resid: nan -QR amd(A'*A) time: 0.15 resid: nan +QR natural time: 0.07 resid: nan +QR amd(A'*A) time: 0.07 resid: nan ./cs_cl_demo2 < ../Matrix/young1c --- Matrix: 841-by-841, nnz: 4089 (sym: 0: nnz 0), norm: 7.30e+02 blocks: 1 singletons: 0 structural rank: 841 -QR natural time: 0.01 resid: 1.76e-16 -QR amd(A'*A) time: 0.01 resid: 1.36e-16 -LU natural time: 0.01 resid: 1.56e-16 -LU amd(A+A') time: 0.01 resid: 3.55e-16 -LU amd(S'*S) time: 0.00 resid: 2.93e-16 -LU amd(A'*A) time: 0.00 resid: 2.93e-16 +QR natural time: 0.00 resid: 1.71e-16 +QR amd(A'*A) time: 0.00 resid: 1.43e-16 +LU natural time: 0.01 resid: 1.43e-16 +LU amd(A+A') time: 0.00 resid: 3.18e-16 +LU amd(S'*S) time: 0.00 resid: 3.16e-16 +LU amd(A'*A) time: 0.01 resid: 3.16e-16 ./cs_cl_demo2 < ../Matrix/qc324 --- Matrix: 324-by-324, nnz: 26730 (sym: 0: nnz 0), norm: 1.71e+00 blocks: 1 singletons: 0 structural rank: 324 -QR natural time: 0.02 resid: 9.31e-17 -QR amd(A'*A) time: 0.03 resid: 9.34e-17 -LU natural time: 0.01 resid: 4.32e-17 -LU amd(A+A') time: 0.01 resid: 3.99e-17 -LU amd(S'*S) time: 0.01 resid: 4.00e-17 -LU amd(A'*A) time: 0.01 resid: 4.00e-17 +QR natural time: 0.01 resid: 9.24e-17 +QR amd(A'*A) time: 0.01 resid: 8.71e-17 +LU natural time: 0.01 resid: 3.70e-17 +LU amd(A+A') time: 0.01 resid: 5.05e-17 +LU amd(S'*S) time: 0.00 resid: 3.70e-17 +LU amd(A'*A) time: 0.01 resid: 3.70e-17 ./cs_cl_demo2 < ../Matrix/neumann --- Matrix: 1600-by-1600, nnz: 7840 (sym: 0: nnz 0), norm: 1.41e+01 blocks: 1 singletons: 0 structural rank: 1600 -QR amd(A'*A) time: 0.02 resid: 8.80e-16 -LU amd(A+A') time: 0.01 resid: 4.59e-16 -LU amd(S'*S) time: 0.01 resid: 4.56e-16 -LU amd(A'*A) time: 0.01 resid: 4.56e-16 +QR amd(A'*A) time: 0.01 resid: 1.18e-15 +LU amd(A+A') time: 0.00 resid: 3.55e-16 +LU amd(S'*S) time: 0.00 resid: 4.03e-16 +LU amd(A'*A) time: 0.01 resid: 4.03e-16 ./cs_cl_demo2 < ../Matrix/c4 --- Matrix: 4-by-4, nnz: 10 (sym: -1: nnz 16), norm: 7.37e+01 blocks: 1 singletons: 0 structural rank: 4 QR natural time: 0.00 resid: 5.98e-17 QR amd(A'*A) time: 0.00 resid: 5.98e-17 -LU natural time: 0.00 resid: 4.59e-17 -LU amd(A+A') time: 0.00 resid: 4.59e-17 -LU amd(S'*S) time: 0.00 resid: 4.59e-17 -LU amd(A'*A) time: 0.00 resid: 4.59e-17 -Chol natural time: 0.00 resid: 9.17e-17 -Chol amd(A+A') time: 0.00 resid: 9.17e-17 +LU natural time: 0.00 resid: 4.73e-17 +LU amd(A+A') time: 0.00 resid: 4.73e-17 +LU amd(S'*S) time: 0.00 resid: 4.73e-17 +LU amd(A'*A) time: 0.00 resid: 4.73e-17 +Chol natural time: 0.00 resid: 6.88e-17 +Chol amd(A+A') time: 0.00 resid: 6.88e-17 ./cs_cl_demo3 < ../Matrix/c4 --- Matrix: 4-by-4, nnz: 10 (sym: -1: nnz 16), norm: 7.37e+01 @@ -1176,22 +1185,22 @@ chol then update/downdate amd(A+A') symbolic chol time 0.00 numeric chol time 0.00 solve chol time 0.00 -original: resid: 9.17e-17 +original: resid: 6.88e-17 update: time: 0.00 -update: time: 0.00 (incl solve) resid: 7.03e-17 -rechol: time: 0.00 (incl solve) resid: 4.83e-17 +update: time: 0.00 (incl solve) resid: 6.49e-17 +rechol: time: 0.00 (incl solve) resid: 6.49e-17 downdate: time: 0.00 -downdate: time: 0.00 (incl solve) resid: 9.17e-17 +downdate: time: 0.00 (incl solve) resid: 5.85e-17 ./cs_cl_demo2 < ../Matrix/mhd1280b --- Matrix: 1280-by-1280, nnz: 11963 (sym: -1: nnz 22646), norm: 8.00e+01 tiny entries dropped: 66 blocks: 20 singletons: 14 structural rank: 1280 -QR amd(A'*A) time: 0.00 resid: 5.96e-25 +QR amd(A'*A) time: 0.00 resid: 4.15e-25 LU amd(A+A') time: 0.00 resid: 2.33e-25 -LU amd(S'*S) time: 0.00 resid: 2.45e-25 -LU amd(A'*A) time: 0.00 resid: 2.45e-25 -Chol amd(A+A') time: 0.00 resid: 1.58e-25 +LU amd(S'*S) time: 0.01 resid: 3.96e-25 +LU amd(A'*A) time: 0.00 resid: 3.96e-25 +Chol amd(A+A') time: 0.00 resid: 1.69e-25 ./cs_cl_demo3 < ../Matrix/mhd1280b --- Matrix: 1280-by-1280, nnz: 12029 (sym: -1: nnz 22778), norm: 8.00e+01 @@ -1200,9 +1209,10 @@ chol then update/downdate amd(A+A') symbolic chol time 0.00 numeric chol time 0.00 solve chol time 0.00 -original: resid: 2.14e-25 +original: resid: 1.69e-25 update: time: 0.00 -update: time: 0.00 (incl solve) resid: 2.14e-25 -rechol: time: 0.00 (incl solve) resid: 2.14e-25 +update: time: 0.00 (incl solve) resid: 1.75e-25 +rechol: time: 0.00 (incl solve) resid: 1.71e-25 downdate: time: 0.00 -downdate: time: 0.00 (incl solve) resid: 6.54e-25 +downdate: time: 0.00 (incl solve) resid: 5.85e-25 +make[1]: Leaving directory `/research/davis/sparse/SuiteSparse/CXSparse/Demo' diff --git a/CXSparse/Doc/ChangeLog b/CXSparse/Doc/ChangeLog index 12aa9a41a..e48da6297 100644 --- a/CXSparse/Doc/ChangeLog +++ b/CXSparse/Doc/ChangeLog @@ -1,3 +1,7 @@ +Feb 1, 2016: version 3.1.7 + + * update to Makefiles + Jan 30, 2016: version 3.1.6 * correction to Makefiles diff --git a/CXSparse/Include/cs.h b/CXSparse/Include/cs.h index e3b7e8781..48b4c8a8d 100644 --- a/CXSparse/Include/cs.h +++ b/CXSparse/Include/cs.h @@ -44,8 +44,8 @@ extern "C" { #define CS_VER 3 /* CXSparse Version */ #define CS_SUBVER 1 -#define CS_SUBSUB 6 -#define CS_DATE "Jan 30, 2016" /* CXSparse release date */ +#define CS_SUBSUB 7 +#define CS_DATE "Feb 1, 2016" /* CXSparse release date */ #define CS_COPYRIGHT "Copyright (c) Timothy A. Davis, 2006-2016" #define CXSPARSE diff --git a/CXSparse/Lib/Makefile b/CXSparse/Lib/Makefile index d35fb3595..5a3e4f5eb 100644 --- a/CXSparse/Lib/Makefile +++ b/CXSparse/Lib/Makefile @@ -2,27 +2,25 @@ # CXSparse Lib/Makefile #------------------------------------------------------------------------------- -# NOTE: you should do "make install" on either CSparse or CXSparse, but -# not both. This is because both use the same name for the include file, cs.h. -# CXSparse is a superset of CSparse, so any package that relies on CSparse can -# rely on CXSparse instead, with no change to its code. - LIBRARY = libcxsparse -VERSION = 3.1.6 +VERSION = 3.1.7 SO_VERSION = 3 default: library - $(MAKE) install INSTALL=$(CURDIR)/../.. \ - INSTALL_DOC=$(CURDIR)/../../doc include ../../SuiteSparse_config/SuiteSparse_config.mk +# CXSparse depends on SuiteSparse_config +LDLIBS += -lsuitesparseconfig + +# compile and install in SuiteSparse/lib +library: + $(MAKE) install INSTALL=$(SUITESPARSE) + I = -I../../SuiteSparse_config -I../Include all: library -library: $(AR_TARGET) $(SO_TARGET) - CS_SOURCE = cs_add.c cs_amd.c cs_chol.c cs_cholsol.c cs_counts.c cs_cumsum.c \ cs_droptol.c cs_dropzeros.c cs_dupl.c cs_entry.c \ cs_etree.c cs_fkeep.c cs_gaxpy.c cs_happly.c cs_house.c cs_ipvec.c \ @@ -104,9 +102,6 @@ $(AR_TARGET): $(CS) $(ARCHIVE) $@ $^ - $(RANLIB) $@ -$(SO_TARGET): $(CS) - $(CC) $(SO_OPTS) $^ -o $@ - clean: - $(RM) -r $(CLEAN) @@ -116,14 +111,13 @@ distclean: clean - $(RM) -r $(PURGE) # install CXSparse -install: $(INSTALL_LIB)/$(SO_TARGET) +install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) -$(INSTALL_LIB)/$(SO_TARGET): $(SO_TARGET) +$(INSTALL_LIB)/$(SO_TARGET): $(CS) @mkdir -p $(INSTALL_LIB) @mkdir -p $(INSTALL_INCLUDE) @mkdir -p $(INSTALL_DOC) - $(CP) $(SO_TARGET) $(INSTALL_LIB) - $(SO_INSTALL_NAME) $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/$(SO_TARGET) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) $(CP) ../Include/cs.h $(INSTALL_INCLUDE) diff --git a/CXSparse/Makefile b/CXSparse/Makefile index 487b9115a..dd041afe7 100644 --- a/CXSparse/Makefile +++ b/CXSparse/Makefile @@ -2,6 +2,9 @@ # CXSparse Makefile #------------------------------------------------------------------------------ +SUITESPARSE ?= $(realpath $(CURDIR)/..) +export SUITESPARSE + default: C include ../SuiteSparse_config/SuiteSparse_config.mk diff --git a/CXSparse_newfiles/Include/cs.h b/CXSparse_newfiles/Include/cs.h index e3b7e8781..48b4c8a8d 100644 --- a/CXSparse_newfiles/Include/cs.h +++ b/CXSparse_newfiles/Include/cs.h @@ -44,8 +44,8 @@ extern "C" { #define CS_VER 3 /* CXSparse Version */ #define CS_SUBVER 1 -#define CS_SUBSUB 6 -#define CS_DATE "Jan 30, 2016" /* CXSparse release date */ +#define CS_SUBSUB 7 +#define CS_DATE "Feb 1, 2016" /* CXSparse release date */ #define CS_COPYRIGHT "Copyright (c) Timothy A. Davis, 2006-2016" #define CXSPARSE diff --git a/CXSparse_newfiles/Lib/Makefile b/CXSparse_newfiles/Lib/Makefile index d35fb3595..5a3e4f5eb 100644 --- a/CXSparse_newfiles/Lib/Makefile +++ b/CXSparse_newfiles/Lib/Makefile @@ -2,27 +2,25 @@ # CXSparse Lib/Makefile #------------------------------------------------------------------------------- -# NOTE: you should do "make install" on either CSparse or CXSparse, but -# not both. This is because both use the same name for the include file, cs.h. -# CXSparse is a superset of CSparse, so any package that relies on CSparse can -# rely on CXSparse instead, with no change to its code. - LIBRARY = libcxsparse -VERSION = 3.1.6 +VERSION = 3.1.7 SO_VERSION = 3 default: library - $(MAKE) install INSTALL=$(CURDIR)/../.. \ - INSTALL_DOC=$(CURDIR)/../../doc include ../../SuiteSparse_config/SuiteSparse_config.mk +# CXSparse depends on SuiteSparse_config +LDLIBS += -lsuitesparseconfig + +# compile and install in SuiteSparse/lib +library: + $(MAKE) install INSTALL=$(SUITESPARSE) + I = -I../../SuiteSparse_config -I../Include all: library -library: $(AR_TARGET) $(SO_TARGET) - CS_SOURCE = cs_add.c cs_amd.c cs_chol.c cs_cholsol.c cs_counts.c cs_cumsum.c \ cs_droptol.c cs_dropzeros.c cs_dupl.c cs_entry.c \ cs_etree.c cs_fkeep.c cs_gaxpy.c cs_happly.c cs_house.c cs_ipvec.c \ @@ -104,9 +102,6 @@ $(AR_TARGET): $(CS) $(ARCHIVE) $@ $^ - $(RANLIB) $@ -$(SO_TARGET): $(CS) - $(CC) $(SO_OPTS) $^ -o $@ - clean: - $(RM) -r $(CLEAN) @@ -116,14 +111,13 @@ distclean: clean - $(RM) -r $(PURGE) # install CXSparse -install: $(INSTALL_LIB)/$(SO_TARGET) +install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) -$(INSTALL_LIB)/$(SO_TARGET): $(SO_TARGET) +$(INSTALL_LIB)/$(SO_TARGET): $(CS) @mkdir -p $(INSTALL_LIB) @mkdir -p $(INSTALL_INCLUDE) @mkdir -p $(INSTALL_DOC) - $(CP) $(SO_TARGET) $(INSTALL_LIB) - $(SO_INSTALL_NAME) $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/$(SO_TARGET) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) $(CP) ../Include/cs.h $(INSTALL_INCLUDE) diff --git a/CXSparse_newfiles/Makefile b/CXSparse_newfiles/Makefile index 487b9115a..dd041afe7 100644 --- a/CXSparse_newfiles/Makefile +++ b/CXSparse_newfiles/Makefile @@ -2,6 +2,9 @@ # CXSparse Makefile #------------------------------------------------------------------------------ +SUITESPARSE ?= $(realpath $(CURDIR)/..) +export SUITESPARSE + default: C include ../SuiteSparse_config/SuiteSparse_config.mk diff --git a/ChangeLog b/ChangeLog index 71a6c6d66..160a74fee 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +Feb 1, 2016: SuiteSparse 4.5.1 + + * update to Makefiles. Version 4.5.0 is broken on the Mac. + That version also compiles *.so libraries on Linux with + underlinked dependencies to other libraries in SuiteSparse. + For example, AMD requires SuiteSparse_config. The links to + required libraries are now explicitly included in each library, + in SuiteSparse 4.5.1. + * minor change to CHOLMOD/Check/cholmod_write.c, when compiling with + -DNGPL + Jan 30, 2016: SuiteSparse 4.5.0 * better Makefiles for creating and installing shared libraries diff --git a/GPUQREngine/Doc/ChangeLog b/GPUQREngine/Doc/ChangeLog index 9739dc21a..fbcc476e5 100644 --- a/GPUQREngine/Doc/ChangeLog +++ b/GPUQREngine/Doc/ChangeLog @@ -1,3 +1,7 @@ +Feb 1, 2016: version 1.0.3 + + * update to Makefiles + Jan 30, 2016: version 1.0.2 * modifications to Makefiles diff --git a/GPUQREngine/Include/GPUQREngine.hpp b/GPUQREngine/Include/GPUQREngine.hpp index 51741a0fa..06851a9b3 100644 --- a/GPUQREngine/Include/GPUQREngine.hpp +++ b/GPUQREngine/Include/GPUQREngine.hpp @@ -47,11 +47,11 @@ Int *GPUQREngine_FindStaircase ); // Version information: -#define GPUQRENGINE_DATE "Jan 30, 2016" +#define GPUQRENGINE_DATE "Feb 1, 2016" #define GPUQRENGINE_VER_CODE(main,sub) ((main) * 1000 + (sub)) #define GPUQRENGINE_MAIN_VERSION 1 #define GPUQRENGINE_SUB_VERSION 0 -#define GPUQRENGINE_SUBSUB_VERSION 2 +#define GPUQRENGINE_SUBSUB_VERSION 3 #define GPUQRENGINE_VERSION \ GPUQRENGINE_VER_CODE(GPUQRENGINE_MAIN_VERSION,GPUQRENGINE_SUB_VERSION) diff --git a/GPUQREngine/Lib/Makefile b/GPUQREngine/Lib/Makefile index b21630a8b..f22531bb6 100644 --- a/GPUQREngine/Lib/Makefile +++ b/GPUQREngine/Lib/Makefile @@ -3,17 +3,22 @@ #------------------------------------------------------------------------------- LIBRARY = libGPUQREngine -VERSION = 1.0.2 +VERSION = 1.0.3 SO_VERSION = 1 default: library - $(MAKE) install INSTALL=$(CURDIR)/../.. \ - INSTALL_DOC=$(CURDIR)/../../doc ccode: all include ../../SuiteSparse_config/SuiteSparse_config.mk +# GPUQREngine depends on SuiteSparse_config, CUDA, and SuiteSparse_GPURuntime +LDLIBS += -lSuiteSparse_GPURuntime -lsuitesparseconfig $(CUDART_LIB) + +# compile and install in SuiteSparse/lib +library: + $(MAKE) install INSTALL=$(SUITESPARSE) + OBJS = GPUQREngine_GraphVizHelper.o \ GPUQREngine_Internal.o \ GPUQREngine_ExpertDense.o \ @@ -42,9 +47,6 @@ OBJS = GPUQREngine_GraphVizHelper.o \ TaskDescriptor_flops.o \ GPUQREngine_UberKernel.o -# LIBS = $(CUDART_LIB) \ -# ../../SuiteSparse_GPURuntime/Lib/libSuiteSparse_GPURuntime.a - INC = -I../../SuiteSparse_GPURuntime/Include -I../Include \ -I../../SuiteSparse_config @@ -99,8 +101,7 @@ H3 = \ ../../SuiteSparse_GPURuntime/Include/SuiteSparseGPU_macros.hpp \ ../../SuiteSparse_GPURuntime/Include/SuiteSparseGPU_Runtime.hpp \ ../../SuiteSparse_GPURuntime/Include/SuiteSparseGPU_Workspace.hpp \ - ../../SuiteSparse_GPURuntime/Include/SuiteSparseGPU_workspace_macros.hpp \ - Makefile + ../../SuiteSparse_GPURuntime/Include/SuiteSparseGPU_workspace_macros.hpp H += $(H3) H2 += $(H3) @@ -111,8 +112,6 @@ C = $(NVCC) $(NVCCFLAGS) $(INC) all: library -library: $(AR_TARGET) $(SO_TARGET) - clean: $(RM) -r $(CLEAN) @@ -125,20 +124,16 @@ $(AR_TARGET): $(OBJS) $(ARCHIVE) $@ $^ - $(RANLIB) $@ -$(SO_TARGET): $(OBJS) - $(CC) $(SO_OPTS) $^ -o $@ - #------------------------------------------------------------------------------- # install GPUQREngine. Note that the include files are not installed. -install: $(INSTALL_LIB)/$(SO_TARGET) +install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) -$(INSTALL_LIB)/$(SO_TARGET): $(SO_TARGET) +$(INSTALL_LIB)/$(SO_TARGET): $(OBJS) @mkdir -p $(INSTALL_LIB) @mkdir -p $(INSTALL_INCLUDE) @mkdir -p $(INSTALL_DOC) - $(CP) $(SO_TARGET) $(INSTALL_LIB) - $(SO_INSTALL_NAME) $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/$(SO_TARGET) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) $(CP) ../README.txt $(INSTALL_DOC)/GPUQRENGINE_README.txt diff --git a/GPUQREngine/Makefile b/GPUQREngine/Makefile index 6281ecc32..189484efe 100644 --- a/GPUQREngine/Makefile +++ b/GPUQREngine/Makefile @@ -2,6 +2,9 @@ # GPUQREngine Makefile #------------------------------------------------------------------------------- +SUITESPARSE ?= $(realpath $(CURDIR)/..) +export SUITESPARSE + # default is 'library' since there is no demo program default: library diff --git a/GPUQREngine/README.txt b/GPUQREngine/README.txt index 9024e0856..39c062845 100644 --- a/GPUQREngine/README.txt +++ b/GPUQREngine/README.txt @@ -2,8 +2,6 @@ GPUQREngine Copyright (c) 2013, Timothy A. Davis, Sencer Nuri Yeralan, and Sanjay Ranka. http://www.suitesparse.com -GPUQREngine VERSION 1.0.2 - GPUQREngine is a gpu-accelerated QR factorization engine supporting SuiteSparseQR. diff --git a/KLU/Doc/ChangeLog b/KLU/Doc/ChangeLog index 5bccaeac1..64fc9b8a8 100644 --- a/KLU/Doc/ChangeLog +++ b/KLU/Doc/ChangeLog @@ -1,3 +1,7 @@ +Feb 1, 2016: version 1.3.6 + + * update to Makefiles + Jan 30, 2016: version 1.3.5 * modifications to Makefiles diff --git a/KLU/Doc/KLU_UserGuide.pdf b/KLU/Doc/KLU_UserGuide.pdf index 662b321fb..08077c5ed 100644 Binary files a/KLU/Doc/KLU_UserGuide.pdf and b/KLU/Doc/KLU_UserGuide.pdf differ diff --git a/KLU/Doc/KLU_UserGuide.tex b/KLU/Doc/KLU_UserGuide.tex index c056229dd..a40bffabf 100644 --- a/KLU/Doc/KLU_UserGuide.tex +++ b/KLU/Doc/KLU_UserGuide.tex @@ -26,7 +26,7 @@ } \and Eka Palamadai Natarajan} -\date{VERSION 1.3.5, Jan 30, 2016} +\date{VERSION 1.3.6, Feb 1, 2016} \maketitle %------------------------------------------------------------------------------ diff --git a/KLU/Include/klu.h b/KLU/Include/klu.h index ec774dd33..ecf9629c8 100644 --- a/KLU/Include/klu.h +++ b/KLU/Include/klu.h @@ -819,11 +819,11 @@ void *klu_l_realloc (size_t, size_t, size_t, void *, klu_l_common *) ; * #endif */ -#define KLU_DATE "Jan 30, 2016" +#define KLU_DATE "Feb 1, 2016" #define KLU_VERSION_CODE(main,sub) ((main) * 1000 + (sub)) #define KLU_MAIN_VERSION 1 #define KLU_SUB_VERSION 3 -#define KLU_SUBSUB_VERSION 5 +#define KLU_SUBSUB_VERSION 6 #define KLU_VERSION KLU_VERSION_CODE(KLU_MAIN_VERSION,KLU_SUB_VERSION) #ifdef __cplusplus diff --git a/KLU/Lib/Makefile b/KLU/Lib/Makefile index d85784489..8ded04bfc 100644 --- a/KLU/Lib/Makefile +++ b/KLU/Lib/Makefile @@ -3,32 +3,35 @@ #------------------------------------------------------------------------------- LIBRARY = libklu -VERSION = 1.3.5 +VERSION = 1.3.6 SO_VERSION = 1 default: library - $(MAKE) install INSTALL=$(CURDIR)/../.. \ - INSTALL_DOC=$(CURDIR)/../../doc ccode: all include ../../SuiteSparse_config/SuiteSparse_config.mk +# KLU depends on BTF, AMD, COLAMD, and SuiteSparse_config +LDLIBS += -lamd -lcolamd -lbtf -lsuitesparseconfig + +# compile and install in SuiteSparse/lib +library: + $(MAKE) install INSTALL=$(SUITESPARSE) + # for testing only: # TEST = -DTESTING C = $(CC) $(CF) INC = ../Include/klu.h ../Include/klu_internal.h ../Include/klu_version.h \ - ../../SuiteSparse_config/SuiteSparse_config.h Makefile + ../../SuiteSparse_config/SuiteSparse_config.h I = -I../../AMD/Include -I../../COLAMD/Include -I../../BTF/Include \ -I../Include -I../../SuiteSparse_config all: library -library: $(AR_TARGET) $(SO_TARGET) - KLU_D = klu_d.o klu_d_kernel.o klu_d_dump.o \ klu_d_factor.o klu_d_free_numeric.o klu_d_solve.o \ klu_d_scale.o klu_d_refactor.o \ @@ -61,9 +64,6 @@ $(AR_TARGET): $(OBJ) $(ARCHIVE) $@ $^ - $(RANLIB) $@ -$(SO_TARGET): $(OBJ) - $(CC) $(SO_OPTS) $^ -o $@ - $(OBJ): $(INC) #------------------------------------------------------------------------------- @@ -261,14 +261,13 @@ klu_l_memory.o: ../Source/klu_memory.c #------------------------------------------------------------------------------- # install KLU -install: $(INSTALL_LIB)/$(SO_TARGET) +install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) -$(INSTALL_LIB)/$(SO_TARGET): $(SO_TARGET) +$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) @mkdir -p $(INSTALL_LIB) @mkdir -p $(INSTALL_INCLUDE) @mkdir -p $(INSTALL_DOC) - $(CP) $(SO_TARGET) $(INSTALL_LIB) - $(SO_INSTALL_NAME) $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/$(SO_TARGET) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) $(CP) ../Include/klu.h $(INSTALL_INCLUDE) diff --git a/KLU/Makefile b/KLU/Makefile index 8f8d62f0c..85287841a 100644 --- a/KLU/Makefile +++ b/KLU/Makefile @@ -2,6 +2,9 @@ # KLU Makefile #------------------------------------------------------------------------------ +SUITESPARSE ?= $(realpath $(CURDIR)/..) +export SUITESPARSE + default: all include ../SuiteSparse_config/SuiteSparse_config.mk diff --git a/KLU/Tcov/Makefile b/KLU/Tcov/Makefile index 423170ea4..787c0a062 100644 --- a/KLU/Tcov/Makefile +++ b/KLU/Tcov/Makefile @@ -27,7 +27,7 @@ C = $(CC) $(CF) LDLIBS = -L../../lib -lamd -lcolamd -lcholmod -lcamd -lccolamd \ -lmetis -lsuitesparseconfig \ $(LAPACK) $(BLAS) $(CUDART_LIB) $(CUBLAS_LIB) -lm -lrt \ - -Wl,-rpath=$(SUITESPARSE)/lib + -Wl,-rpath=$(SUITESPARSE)/lib -lstdc++ I = -I../../include -I../Include -I../User -I../../BTF/Include @@ -42,13 +42,13 @@ valgrind: purge klutest klultest - ./coverage libs: + ( cd ../../SuiteSparse_config && $(MAKE) TCOV=yes) ( cd ../../AMD && $(MAKE) library TCOV=yes) ( cd ../../COLAMD && $(MAKE) library TCOV=yes) ( cd ../../CAMD && $(MAKE) library TCOV=yes) ( cd ../../CCOLAMD && $(MAKE) library TCOV=yes) ( cd ../.. && $(MAKE) metis ) ( cd ../../CHOLMOD && $(MAKE) library TCOV=yes) - ( cd ../../SuiteSparse_config && $(MAKE) TCOV=yes) purge: distclean diff --git a/LDL/Demo/ldlamd.out b/LDL/Demo/ldlamd.out index 6cf4b302a..aa61f24b7 100644 --- a/LDL/Demo/ldlamd.out +++ b/LDL/Demo/ldlamd.out @@ -6,7 +6,7 @@ name: Dense/0 n: 0 entries: 0 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -14,7 +14,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 0 @@ -37,7 +37,7 @@ name: Dense/0 n: 0 entries: 0 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -45,7 +45,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 0 @@ -68,7 +68,7 @@ name: Dense/1 n: 1 entries: 1 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -76,7 +76,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 1 nz, number of nonzeros in A: 1 @@ -119,7 +119,7 @@ name: Dense/1 n: 1 entries: 2 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -127,7 +127,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 1 nz, number of nonzeros in A: 1 @@ -170,7 +170,7 @@ name: Dense/2 n: 2 entries: 4 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -178,7 +178,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 2 nz, number of nonzeros in A: 4 @@ -221,7 +221,7 @@ name: Dense/2 n: 2 entries: 5 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -229,7 +229,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 2 nz, number of nonzeros in A: 4 @@ -272,7 +272,7 @@ name: Dense/3 n: 3 entries: 9 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -280,7 +280,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 3 nz, number of nonzeros in A: 9 @@ -323,7 +323,7 @@ name: Dense/3 n: 3 entries: 11 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -331,7 +331,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 3 nz, number of nonzeros in A: 9 @@ -374,7 +374,7 @@ name: HB/can_24 n: 24 entries: 160 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -382,7 +382,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 24 nz, number of nonzeros in A: 160 @@ -425,7 +425,7 @@ name: HB/can_24 n: 24 entries: 188 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -433,7 +433,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 24 nz, number of nonzeros in A: 160 @@ -476,7 +476,7 @@ name: FIDAP/ex5 n: 27 entries: 279 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -484,7 +484,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 27 nz, number of nonzeros in A: 279 @@ -527,7 +527,7 @@ name: FIDAP/ex5 n: 27 entries: 325 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -535,7 +535,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 27 nz, number of nonzeros in A: 279 @@ -578,7 +578,7 @@ name: HB/bcsstk01 n: 48 entries: 400 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -586,7 +586,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 48 nz, number of nonzeros in A: 400 @@ -629,7 +629,7 @@ name: HB/bcsstk01 n: 48 entries: 472 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -637,7 +637,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 48 nz, number of nonzeros in A: 400 @@ -680,7 +680,7 @@ name: HB/bcsstm01 n: 48 entries: 24 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -688,7 +688,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 48 nz, number of nonzeros in A: 24 @@ -731,7 +731,7 @@ name: HB/bcsstm01 n: 48 entries: 26 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -739,7 +739,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 48 nz, number of nonzeros in A: 24 @@ -782,7 +782,7 @@ name: Pothen/mesh1e1 n: 48 entries: 306 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -790,7 +790,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 48 nz, number of nonzeros in A: 306 @@ -833,7 +833,7 @@ name: Pothen/mesh1e1 n: 48 entries: 359 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -841,7 +841,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 48 nz, number of nonzeros in A: 306 @@ -884,7 +884,7 @@ name: Bai/bfwb62 n: 62 entries: 342 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -892,7 +892,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 62 nz, number of nonzeros in A: 342 @@ -935,7 +935,7 @@ name: Bai/bfwb62 n: 62 entries: 407 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -943,7 +943,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 62 nz, number of nonzeros in A: 342 @@ -986,7 +986,7 @@ name: HB/bcsstk02 n: 66 entries: 4356 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -994,7 +994,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 66 nz, number of nonzeros in A: 4356 @@ -1037,7 +1037,7 @@ name: HB/bcsstk02 n: 66 entries: 5175 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -1045,7 +1045,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 66 nz, number of nonzeros in A: 4356 @@ -1088,7 +1088,7 @@ name: HB/bcsstm02 n: 66 entries: 66 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -1096,7 +1096,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 66 nz, number of nonzeros in A: 66 @@ -1139,7 +1139,7 @@ name: HB/bcsstm02 n: 66 entries: 72 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -1147,7 +1147,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 4 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 66 nz, number of nonzeros in A: 66 diff --git a/LDL/Demo/ldllamd.out b/LDL/Demo/ldllamd.out index 6ed033c02..4a2dceb1a 100644 --- a/LDL/Demo/ldllamd.out +++ b/LDL/Demo/ldllamd.out @@ -6,7 +6,7 @@ name: Dense/0 n: 0 entries: 0 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -14,7 +14,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 0 @@ -37,7 +37,7 @@ name: Dense/0 n: 0 entries: 0 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -45,7 +45,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 0 @@ -68,7 +68,7 @@ name: Dense/1 n: 1 entries: 1 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -76,7 +76,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 1 nz, number of nonzeros in A: 1 @@ -119,7 +119,7 @@ name: Dense/1 n: 1 entries: 2 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -127,7 +127,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 1 nz, number of nonzeros in A: 1 @@ -170,7 +170,7 @@ name: Dense/2 n: 2 entries: 4 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -178,7 +178,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 2 nz, number of nonzeros in A: 4 @@ -221,7 +221,7 @@ name: Dense/2 n: 2 entries: 5 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -229,7 +229,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 2 nz, number of nonzeros in A: 4 @@ -272,7 +272,7 @@ name: Dense/3 n: 3 entries: 9 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -280,7 +280,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 3 nz, number of nonzeros in A: 9 @@ -323,7 +323,7 @@ name: Dense/3 n: 3 entries: 11 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -331,7 +331,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 3 nz, number of nonzeros in A: 9 @@ -374,7 +374,7 @@ name: HB/can_24 n: 24 entries: 160 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -382,7 +382,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 24 nz, number of nonzeros in A: 160 @@ -425,7 +425,7 @@ name: HB/can_24 n: 24 entries: 188 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -433,7 +433,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 24 nz, number of nonzeros in A: 160 @@ -476,7 +476,7 @@ name: FIDAP/ex5 n: 27 entries: 279 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -484,7 +484,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 27 nz, number of nonzeros in A: 279 @@ -527,7 +527,7 @@ name: FIDAP/ex5 n: 27 entries: 325 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -535,7 +535,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 27 nz, number of nonzeros in A: 279 @@ -578,7 +578,7 @@ name: HB/bcsstk01 n: 48 entries: 400 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -586,7 +586,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 48 nz, number of nonzeros in A: 400 @@ -629,7 +629,7 @@ name: HB/bcsstk01 n: 48 entries: 472 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -637,7 +637,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 48 nz, number of nonzeros in A: 400 @@ -680,7 +680,7 @@ name: HB/bcsstm01 n: 48 entries: 24 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -688,7 +688,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 48 nz, number of nonzeros in A: 24 @@ -731,7 +731,7 @@ name: HB/bcsstm01 n: 48 entries: 26 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -739,7 +739,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 48 nz, number of nonzeros in A: 24 @@ -782,7 +782,7 @@ name: Pothen/mesh1e1 n: 48 entries: 306 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -790,7 +790,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 48 nz, number of nonzeros in A: 306 @@ -833,7 +833,7 @@ name: Pothen/mesh1e1 n: 48 entries: 359 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -841,7 +841,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 48 nz, number of nonzeros in A: 306 @@ -884,7 +884,7 @@ name: Bai/bfwb62 n: 62 entries: 342 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -892,7 +892,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 62 nz, number of nonzeros in A: 342 @@ -935,7 +935,7 @@ name: Bai/bfwb62 n: 62 entries: 407 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -943,7 +943,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 62 nz, number of nonzeros in A: 342 @@ -986,7 +986,7 @@ name: HB/bcsstk02 n: 66 entries: 4356 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -994,7 +994,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 66 nz, number of nonzeros in A: 4356 @@ -1037,7 +1037,7 @@ name: HB/bcsstk02 n: 66 entries: 5175 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -1045,7 +1045,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 66 nz, number of nonzeros in A: 4356 @@ -1088,7 +1088,7 @@ name: HB/bcsstm02 n: 66 entries: 66 -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -1096,7 +1096,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK n, dimension of A: 66 nz, number of nonzeros in A: 66 @@ -1139,7 +1139,7 @@ name: HB/bcsstm02 n: 66 entries: 72 (jumbled version) -------------------------------------------------------- -AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering +AMD version 2.4.4, Feb 1, 2016: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -1147,7 +1147,7 @@ AMD version 2.4.3, Jan 30, 2016: approximate minimum degree ordering size of AMD integer: 8 -AMD version 2.4.3, Jan 30, 2016, results: +AMD version 2.4.4, Feb 1, 2016, results: status: OK, but jumbled n, dimension of A: 66 nz, number of nonzeros in A: 66 diff --git a/LDL/Doc/ChangeLog b/LDL/Doc/ChangeLog index 622a3693f..9c057cf1a 100644 --- a/LDL/Doc/ChangeLog +++ b/LDL/Doc/ChangeLog @@ -1,3 +1,7 @@ +Feb 1, 2016: version 2.2.4 + + * update to Makefiles + Jan 30, 2016: version 2.2.3 * modifications to Makefiles diff --git a/LDL/Doc/ldl_userguide.pdf b/LDL/Doc/ldl_userguide.pdf index 60efc2cca..f5c5fbdd8 100644 Binary files a/LDL/Doc/ldl_userguide.pdf and b/LDL/Doc/ldl_userguide.pdf differ diff --git a/LDL/Doc/ldl_userguide.tex b/LDL/Doc/ldl_userguide.tex index b75c934b0..f4bf298ed 100644 --- a/LDL/Doc/ldl_userguide.tex +++ b/LDL/Doc/ldl_userguide.tex @@ -24,7 +24,7 @@ University and the SciDAC program). }} -\date{VERSION 2.2.3, Jan 30 2016} +\date{VERSION 2.2.4, Feb 1, 2016} \maketitle diff --git a/LDL/Include/ldl.h b/LDL/Include/ldl.h index 84f83ffbb..b7478e9cf 100644 --- a/LDL/Include/ldl.h +++ b/LDL/Include/ldl.h @@ -103,10 +103,10 @@ SuiteSparse_long ldl_l_valid_matrix ( SuiteSparse_long n, /* === LDL version ========================================================== */ /* ========================================================================== */ -#define LDL_DATE "Jan 30, 2016" +#define LDL_DATE "Feb 1, 2016" #define LDL_VERSION_CODE(main,sub) ((main) * 1000 + (sub)) #define LDL_MAIN_VERSION 2 #define LDL_SUB_VERSION 2 -#define LDL_SUBSUB_VERSION 3 +#define LDL_SUBSUB_VERSION 4 #define LDL_VERSION LDL_VERSION_CODE(LDL_MAIN_VERSION,LDL_SUB_VERSION) diff --git a/LDL/Lib/Makefile b/LDL/Lib/Makefile index 29c2071fe..3d0657c21 100644 --- a/LDL/Lib/Makefile +++ b/LDL/Lib/Makefile @@ -3,23 +3,26 @@ #------------------------------------------------------------------------------- LIBRARY = libldl -VERSION = 2.2.3 +VERSION = 2.2.4 SO_VERSION = 2 default: library - $(MAKE) install INSTALL=$(CURDIR)/../.. \ - INSTALL_DOC=$(CURDIR)/../../doc include ../../SuiteSparse_config/SuiteSparse_config.mk +# LDL depends on SuiteSparse_config +LDLIBS += -lsuitesparseconfig + +# compile and install in SuiteSparse/lib +library: + $(MAKE) install INSTALL=$(SUITESPARSE) + I = -I../../SuiteSparse_config -I../Include C = $(CC) $(CF) $(I) all: library -library: $(AR_TARGET) $(SO_TARGET) - OBJ = ldl.o ldll.o ldl.o: ../Source/ldl.c ../Include/ldl.h @@ -32,9 +35,6 @@ $(AR_TARGET): $(OBJ) $(ARCHIVE) $@ $^ - $(RANLIB) $@ -$(SO_TARGET): $(OBJ) - $(CC) $(SO_OPTS) $^ -o $@ - distclean: purge purge: clean @@ -44,14 +44,13 @@ clean: - $(RM) -r $(CLEAN) # install LDL -install: $(INSTALL_LIB)/$(SO_TARGET) +install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) -$(INSTALL_LIB)/$(SO_TARGET): $(SO_TARGET) +$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) @mkdir -p $(INSTALL_LIB) @mkdir -p $(INSTALL_INCLUDE) @mkdir -p $(INSTALL_DOC) - $(CP) $(SO_TARGET) $(INSTALL_LIB) - $(SO_INSTALL_NAME) $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/$(SO_TARGET) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) $(CP) ../Include/ldl.h $(INSTALL_INCLUDE) diff --git a/LDL/Makefile b/LDL/Makefile index 139e2cc0e..d871035ac 100644 --- a/LDL/Makefile +++ b/LDL/Makefile @@ -2,6 +2,9 @@ # LDL Makefile #------------------------------------------------------------------------------ +SUITESPARSE ?= $(realpath $(CURDIR)/..) +export SUITESPARSE + default: all include ../SuiteSparse_config/SuiteSparse_config.mk diff --git a/MATLAB_Tools/spqr_rank/save_samples_demo_spqr_rank.mat b/MATLAB_Tools/spqr_rank/save_samples_demo_spqr_rank.mat deleted file mode 100644 index 4d18eeccc..000000000 Binary files a/MATLAB_Tools/spqr_rank/save_samples_demo_spqr_rank.mat and /dev/null differ diff --git a/Makefile b/Makefile index e1500a884..9bd7bf67a 100644 --- a/Makefile +++ b/Makefile @@ -13,16 +13,16 @@ include SuiteSparse_config/SuiteSparse_config.mk go: metis ( cd SuiteSparse_config && $(MAKE) ) ( cd AMD && $(MAKE) ) - ( cd CAMD && $(MAKE) ) - ( cd COLAMD && $(MAKE) ) ( cd BTF && $(MAKE) ) - ( cd KLU && $(MAKE) ) - ( cd LDL && $(MAKE) ) + ( cd CAMD && $(MAKE) ) ( cd CCOLAMD && $(MAKE) ) - ( cd UMFPACK && $(MAKE) ) + ( cd COLAMD && $(MAKE) ) ( cd CHOLMOD && $(MAKE) ) ( cd CSparse && $(MAKE) ) ( cd CXSparse && $(MAKE) ) + ( cd LDL && $(MAKE) ) + ( cd KLU && $(MAKE) ) + ( cd UMFPACK && $(MAKE) ) ( cd RBio && $(MAKE) ) ifneq ($(GPU_CONFIG),) ( cd SuiteSparse_GPURuntime && $(MAKE) ) @@ -37,17 +37,17 @@ endif install: metis ( cd SuiteSparse_config && $(MAKE) install ) ( cd AMD && $(MAKE) install ) - ( cd CAMD && $(MAKE) install ) - ( cd COLAMD && $(MAKE) install ) ( cd BTF && $(MAKE) install ) - ( cd KLU && $(MAKE) install ) - ( cd LDL && $(MAKE) install ) + ( cd CAMD && $(MAKE) install ) ( cd CCOLAMD && $(MAKE) install ) - ( cd UMFPACK && $(MAKE) install ) + ( cd COLAMD && $(MAKE) install ) ( cd CHOLMOD && $(MAKE) install ) ( cd CXSparse && $(MAKE) install ) + ( cd LDL && $(MAKE) install ) + ( cd KLU && $(MAKE) install ) + ( cd UMFPACK && $(MAKE) install ) ( cd RBio && $(MAKE) install ) -ifneq ($(GPU_CONFIG),) +ifneq (,$(GPU_CONFIG)) ( cd SuiteSparse_GPURuntime && $(MAKE) install ) ( cd GPUQREngine && $(MAKE) install ) endif @@ -56,14 +56,14 @@ endif # ( cd SKYLINE_SVD && $(MAKE) install ) $(CP) README.txt $(INSTALL_DOC)/SuiteSparse_README.txt chmod 644 $(INSTALL_DOC)/SuiteSparse_README.txt -ifneq ($(wildcard metis-5.1.0),) - # install METIS - $(CP) lib/libmetis.* $(INSTALL_LIB) - $(CP) metis-5.1.0/manual/manual.pdf $(INSTALL_DOC)/METIS_manual.pdf - $(CP) metis-5.1.0/README.txt $(INSTALL_DOC)/METIS_README.txt +ifeq (,$(MY_METIS_LIB)) + # install METIS from SuiteSparse/metis-5.1.0 + - $(CP) lib/libmetis.* $(INSTALL_LIB) + - $(CP) metis-5.1.0/manual/manual.pdf $(INSTALL_DOC)/METIS_manual.pdf + - $(CP) metis-5.1.0/README.txt $(INSTALL_DOC)/METIS_README.txt # the following is needed only on the Mac, so *.dylib is hardcoded: - - $(SO_INSTALL_NAME) $(INSTALL_LIB)/libmetis.dylib $(INSTALL_LIB)/libmetis.dylib - $(CP) include/metis.h $(INSTALL_INCLUDE) + $(SO_INSTALL_NAME) $(INSTALL_LIB)/libmetis.dylib $(INSTALL_LIB)/libmetis.dylib + - $(CP) include/metis.h $(INSTALL_INCLUDE) chmod 755 $(INSTALL_LIB)/libmetis.* chmod 644 $(INSTALL_INCLUDE)/metis.h chmod 644 $(INSTALL_DOC)/METIS_manual.pdf @@ -84,15 +84,16 @@ uninstall: ( cd CCOLAMD && $(MAKE) uninstall ) ( cd UMFPACK && $(MAKE) uninstall ) ( cd CHOLMOD && $(MAKE) uninstall ) - ( cd CXSparse && $(MAKE) uninstall ) ( cd CSparse && $(MAKE) uninstall ) + ( cd CXSparse && $(MAKE) uninstall ) ( cd RBio && $(MAKE) uninstall ) ( cd SuiteSparse_GPURuntime && $(MAKE) uninstall ) ( cd GPUQREngine && $(MAKE) uninstall ) ( cd SPQR && $(MAKE) uninstall ) # ( cd PIRO_BAND && $(MAKE) uninstall ) # ( cd SKYLINE_SVD && $(MAKE) uninstall ) -ifneq ($(wildcard metis-5.1.0),) +ifeq (,$(MY_METIS_LIB)) + # uninstall METIS, which came from SuiteSparse/metis-5.1.0 $(RM) $(INSTALL_LIB)/libmetis.* $(RM) $(INSTALL_INCLUDE)/metis.h $(RM) $(INSTALL_DOC)/METIS_manual.pdf @@ -114,7 +115,7 @@ library: metis ( cd CSparse && $(MAKE) library ) ( cd CXSparse && $(MAKE) library ) ( cd RBio && $(MAKE) library ) -ifneq ($(GPU_CONFIG),) +ifneq (,$(GPU_CONFIG)) ( cd SuiteSparse_GPURuntime && $(MAKE) library ) ( cd GPUQREngine && $(MAKE) library ) endif @@ -146,7 +147,7 @@ purge: # - ( cd PIRO_BAND && $(MAKE) purge ) # - ( cd SKYLINE_SVD && $(MAKE) purge ) - $(RM) MATLAB_Tools/*/*.mex* MATLAB_Tools/spok/private/*.mex* - - $(RM) include/* bin/* lib/* doc/* + - $(RM) -r include/* bin/* lib/* share/* # Remove all files not in the original distribution, but keep the libraries clean: @@ -188,6 +189,7 @@ distclean: purge # Note that the CXSparse directory should initially not exist. cx: ( cd CSparse ; $(MAKE) purge ) + ( cd SuiteSparse_config && $(MAKE) ) ( cd CXSparse_newfiles ; tar cfv - * | gzip -9 > ../CXSparse_newfiles.tar.gz ) ./CSparse_to_CXSparse CSparse CXSparse CXSparse_newfiles.tar.gz ( cd CXSparse/Demo ; $(MAKE) ) @@ -200,8 +202,8 @@ cx: cov: purge ( cd CXSparse && $(MAKE) cov ) ( cd CSparse && $(MAKE) cov ) - ( cd KLU && $(MAKE) cov ) ( cd CHOLMOD && $(MAKE) cov ) + ( cd KLU && $(MAKE) cov ) ( cd SPQR && $(MAKE) cov ) ( cd UMFPACK && $(MAKE) cov ) # ( cd PIRO_BAND && $(MAKE) cov ) @@ -212,18 +214,16 @@ cov: purge metis: include/metis.h # Install the shared version of METIS in SuiteSparse/lib. -# The SO_INSTALL_NAME is only needed on the Mac, so *.dylib is hardcoded +# The SO_INSTALL_NAME commmand is only needed on the Mac, so *.dylib is +# hardcoded below. include/metis.h: -ifneq ($(wildcard metis-5.1.0),) +ifeq (,$(MY_METIS_LIB)) - ( cd metis-5.1.0 && $(MAKE) config shared=1 prefix=$(SUITESPARSE) ) - ( cd metis-5.1.0 && $(MAKE) ) - ( cd metis-5.1.0 && $(MAKE) install ) - $(SO_INSTALL_NAME) $(SUITESPARSE)/lib/libmetis.dylib \ $(SUITESPARSE)/lib/libmetis.dylib else - # METIS 5.1.0 not present, put in a place-holder that disables its use - # in SuiteSparse - echo "/* METIS 5.1.0 not installed for use in SuiteSparse */" > include/metis.h - echo "#define NPARTITION" >> include/metis.h + @echo 'Using pre-installed METIS 5.1.0 library at ' '[$(MY_METIS_LIB)]' endif diff --git a/RBio/Doc/ChangeLog b/RBio/Doc/ChangeLog index 43832c4a9..524c124e9 100644 --- a/RBio/Doc/ChangeLog +++ b/RBio/Doc/ChangeLog @@ -1,3 +1,7 @@ +Feb 1, 2016: version 2.2.4 + + * update to Makefiles + Jan 30, 2016: version 2.2.3 * modifications to Makefiles diff --git a/RBio/Include/RBio.h b/RBio/Include/RBio.h index 3adb26334..ea43245ff 100644 --- a/RBio/Include/RBio.h +++ b/RBio/Include/RBio.h @@ -86,11 +86,11 @@ extern "C" { #define RBIO_VALUE_IOERROR (-94) /* I/O error: numerical values */ #define RBIO_FILE_IOERROR (-95) /* I/O error: cannot read/write the file */ -#define RBIO_DATE "Jan 30, 2016" +#define RBIO_DATE "Feb 1, 2016" #define RBIO_VER_CODE(main,sub) ((main) * 1000 + (sub)) #define RBIO_MAIN_VERSION 2 #define RBIO_SUB_VERSION 2 -#define RBIO_SUBSUB_VERSION 3 +#define RBIO_SUBSUB_VERSION 4 #define RBIO_VERSION RBIO_VER_CODE(RBIO_MAIN_VERSION,RBIO_SUB_VERSION) diff --git a/RBio/Lib/Makefile b/RBio/Lib/Makefile index 6ad59c0b4..5456b70d0 100644 --- a/RBio/Lib/Makefile +++ b/RBio/Lib/Makefile @@ -3,25 +3,28 @@ #=============================================================================== LIBRARY = librbio -VERSION = 2.2.3 +VERSION = 2.2.4 SO_VERSION = 2 default: library - $(MAKE) install INSTALL=$(CURDIR)/../.. \ - INSTALL_DOC=$(CURDIR)/../../doc ccode: all include ../../SuiteSparse_config/SuiteSparse_config.mk +# RBio depends on SuiteSparse_config +LDLIBS += -lsuitesparseconfig + +# compile and install in SuiteSparse/lib +library: + $(MAKE) install INSTALL=$(SUITESPARSE) + C = $(CC) $(CF) I = -I../Include -I../../SuiteSparse_config all: library -library: $(AR_TARGET) $(SO_TARGET) - purge: distclean distclean: clean @@ -42,9 +45,6 @@ $(AR_TARGET): $(OBJ) $(ARCHIVE) $@ $^ - $(RANLIB) $@ -$(SO_TARGET): $(OBJ) - $(CC) $(SO_OPTS) $^ -o $@ - #------------------------------------------------------------------------------- # 64-bit long version (default) @@ -58,14 +58,13 @@ RBio_i.o: ../Source/RBio.c #------------------------------------------------------------------------------- # install RBio -install: $(INSTALL_LIB)/$(SO_TARGET) +install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) -$(INSTALL_LIB)/$(SO_TARGET): $(SO_TARGET) +$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) @mkdir -p $(INSTALL_LIB) @mkdir -p $(INSTALL_INCLUDE) @mkdir -p $(INSTALL_DOC) - $(CP) $(SO_TARGET) $(INSTALL_LIB) - $(SO_INSTALL_NAME) $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/$(SO_TARGET) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) $(CP) ../Include/RBio.h $(INSTALL_INCLUDE) diff --git a/RBio/Makefile b/RBio/Makefile index 4c7b26927..2abf4c189 100644 --- a/RBio/Makefile +++ b/RBio/Makefile @@ -2,6 +2,9 @@ # RBio Makefile #------------------------------------------------------------------------------- +SUITESPARSE ?= $(realpath $(CURDIR)/..) +export SUITESPARSE + default: all include ../SuiteSparse_config/SuiteSparse_config.mk diff --git a/README.txt b/README.txt index 2237f1844..ad94378b6 100644 --- a/README.txt +++ b/README.txt @@ -1,6 +1,6 @@ SuiteSparse: A Suite of Sparse matrix packages at http://www.suitesparse.com -Jan 30, 2016. SuiteSparse VERSION 4.5.0 +Feb 1, 2016. SuiteSparse VERSION 4.5.1 ------------------ SuiteSparse/README @@ -154,9 +154,14 @@ in the metis-5.1.0 directory. Its use is optional, so you can remove it before compiling SuiteSparse, if you desire. The use of METIS will improve the ordering quality. METIS has been slightly modified for use in SuiteSparse; see the metis-5.1.0/README.txt file for details. SuiteSparse can use the -unmodified METIS 5.1.0, however. Use 'make METIS_PATH=/my/stuff/metis-5.1.0'. -If you want to use METIS in MATLAB, however, you must use the version provided -here, with SuiteSparse. +unmodified METIS 5.1.0, however. To use your own copy of METIS, or a +pre-installed copy of METIS use 'make MY_METIS_LIB=-lmymetis' or +'make MY_METIS_LIB=/my/stuff/metis-5.1.0/whereeveritis/libmetis.so + MY_METIS_INC=/my/stuff/metis-5.1.0/include'. +If you want to use METIS in MATLAB, however, you MUST use the version provided +here, in SuiteSparse/metis-5.1.0. The MATLAB interface to METIS required some +small changes in METIS itself to get it to work. The original METIS 5.1.0 +will segfault MATLAB. Refer to each package for license, copyright, and author information. All codes are authored or co-authored by Timothy A. Davis. @@ -185,8 +190,8 @@ your library search patch, you can do the following (for example): cc myprogram.c -I$(S)/include -lumfpack -lamd -lcholmod -lsuitesparseconfig -lm Do 'make install' if you want to install the libraries and include files in -/usr/local/lib and /usr/local/include, and the documentation in -/usr/share/doc/suitesparse-VERSION. +SuiteSparse/lib and SuiteSparse/include, and the documentation in +SuiteSparse/doc/suitesparse-VERSION. This will work on Linux/Unix and the Mac. It should automatically detect if you have the Intel compilers or not, and whether or not you have CUDA. If this fails, see the SuiteSparse_config/SuiteSparse_config.mk file. There are many @@ -195,13 +200,16 @@ edit that file. For example, to compile with your own BLAS: make BLAS=-lmyblaslibraryhere -To list the primary configuration options (but not compile anything), do: +To list all configuration options (but not compile anything), do: make config +Any parameter you see in the output of 'make config' with an equal sign +can be modified at the 'make' command line. + If you do "make install" by itself, then the packages are all installed in -/usr/local/lib (libraries), /usr/local/include (include *.h files), and -/usr/share/doc/suitesparse-VERSION (documentation). If you want to install +SuiteSparse/lib (libraries), SuiteSparse/include (include *.h files), and +SuiteSparse/doc/suitesparse-VERSION (documentation). If you want to install elsewhere, do: make install INSTALL=/my/path @@ -220,6 +228,13 @@ includes in /usr/local/lib and /usr/local/include, do: which copies the documentation to /tmp/doc where you can then remove it later. +Both the static (*.a) and shared (*.so) libraries are compiled. The *.a +libraries are left in the package Lib folder (AMD/Lib/libamd.a for example). +The main exception to this rule is the SuiteSparse_config library, which is in +SuiteSparse/libsuiteSparseconfig.a. SuiteSparse_config is required by all +packages. The (extremely) optional xerbla library is also an exception, but it +is highly unlikely that you need that library. + The 'make uninstall' takes the same command-line arguments. ---------------------------------- @@ -237,13 +252,11 @@ Step-by-step details: This is optionally used by SuiteSparseQR. Refer to the User Guide in SuiteSparse/SPQR/Doc/spqr_user_guide.pdf for details. -(3) Make other changes to SuiteSparse_config/SuiteSparse_config.mk as needed, - or determine what other command line options you need for 'make'. All - options can be set at the 'make' command line without the need to edit this - file. Browse that file to see what options you can control. If you - choose different options and wish to recompile, be sure to do 'make - distclean' in this directory first, to remove all files not in the - original distribution. +(3) Determine what other command line options you need for 'make'. All options + can be set at the 'make' command line without the need to edit this file. + Browse that file to see what options you can control. If you choose + different options and wish to recompile, be sure to do 'make distclean' in + this directory first, to remove all files not in the original distribution. (4) Type "make" in this directory. All packages will be be compiled. METIS 5.1.0 will be compiled if you have it (note that METIS require CMake to @@ -259,16 +272,20 @@ Step-by-step details: and the compiled libraries are copied into SuiteSparse/lib. Documentation is copied into SuiteSparse/doc. + NOTE: on Linux, you may see some errors when you compile METIS + ('make: *** No rule to make target 'w'.). You can safely ignore those + errors. + (6) To install, type "make install". This will place copies of all - libraries in /usr/local/lib, and all include files in /usr/local/include, - and all documentation in /usr/share/doc/suitesparse-VERSION. You can - change the install location by editting SuiteSparse_config.mk. You can - also do "make install INSTALL=/my/path" which puts the libraries in - /my/path/lib and the include files in /my/path/include. These directories - need not already exist. + libraries in SuiteSparse/lib, and all include files in SuiteSparse/include, + and all documentation in SuiteSparse/doc/suitesparse-VERSION. You can + change the install location by "make install INSTALL=/my/path" which puts + the libraries in /my/path/lib, the include files in /my/path/include, and + documentation in /my/path/doc. These directories are created if they do + not already exist. (7) To uninstall, type "make uninstall", which reverses "make install" - by removing the SuiteSparse libraries from /usr/local/lib, the - include files from /usr/local/include, and the documentaion from - /usr/share/doc. + by removing the SuiteSparse libraries, include files, and documentation + from the place they were installed. If you pass INSTALL_***= options + to 'make install', you must pass the same to 'make uninstall'. diff --git a/SPQR/Demo/Makefile b/SPQR/Demo/Makefile index a5882bf07..14326838e 100644 --- a/SPQR/Demo/Makefile +++ b/SPQR/Demo/Makefile @@ -27,7 +27,7 @@ CLIB = $(LDFLAGS) -L../../lib -lspqr -lsuitesparseconfig -lcholmod -lamd \ # use the BLAS and LAPACK defined by SuiteSparse_config.mk; do not use valgrind FLIB = $(LAPACK) $(BLAS) -V = +V = # To use Valgrind and the plain BLAS and plain LAPACK (non-optimized): # FLIB = -lgfortran -llapack_plain -lblas_plain -lg2c @@ -159,7 +159,8 @@ INC = ../Include/spqr.hpp ../Include/SuiteSparseQR_C.h \ I = -I../../include $(I_WITH_SPQRGPU) -C = $(CXX) $(CF) $(SPQR_CONFIG) $(CONFIG_PARTITION) $(CONFIG_GPU) $(I) +C = $(CXX) $(CF) $(SPQR_CONFIG) $(CONFIG_PARTITION) $(CONFIG_GPU) $(I) \ + $(CHOLMOD_CONFIG) LIBS = $(CLIB) $(FLIB) $(TBB) $(GPULIB) @@ -204,7 +205,7 @@ qrdemoc: qrdemoc.o $(INC) $(C) -o qrdemoc qrdemoc.o $(LIBS) qrsimplec.o: qrsimplec.c $(INC) - $(CC) $(CF) $(SPQR_CONFIG) -ansi $(I) -c $< + $(CC) $(CF) $(SPQR_CONFIG) $(CHOLMOD_CONFIG) -ansi $(I) -c $< qrsimplec: qrsimplec.o $(INC) $(C) -o qrsimplec qrsimplec.o $(LIBS) diff --git a/SPQR/Demo/qrdemo.cpp b/SPQR/Demo/qrdemo.cpp index 764a53474..3f76d974f 100644 --- a/SPQR/Demo/qrdemo.cpp +++ b/SPQR/Demo/qrdemo.cpp @@ -37,6 +37,7 @@ void check_residual // get the rank(A) estimate rnk = cc->SPQR_istat [4] ; +#ifndef NMATRIXOPS // anorm = norm (A,1) ; anorm = cholmod_l_norm_sparse (A, 1, cc) ; @@ -63,6 +64,10 @@ void check_residual "rel. norm(A'(Ax-b)) %8.1e\n", rnorm, rnk, atrnorm) ; cholmod_l_free_dense (&r, cc) ; cholmod_l_free_dense (&atr, cc) ; +#else + printf ("relative norm(Ax-b): not computed (requires CHOLMOD/MatrixOps)\n"); + printf ("rank: %6ld\n", rnk) ; +#endif } // ============================================================================= diff --git a/SPQR/Demo/qrsimple.cpp b/SPQR/Demo/qrsimple.cpp index 27330ccc6..647ca357f 100644 --- a/SPQR/Demo/qrsimple.cpp +++ b/SPQR/Demo/qrsimple.cpp @@ -10,7 +10,7 @@ int main (int argc, char **argv) { cholmod_common Common, *cc ; cholmod_sparse *A ; - cholmod_dense *X, *B, *Residual ; + cholmod_dense *X, *B, *Residual = NULL ; double rnorm, one [2] = {1,0}, minusone [2] = {-1,0} ; int mtype ; @@ -28,11 +28,15 @@ int main (int argc, char **argv) // X = A\B X = SuiteSparseQR (A, B, cc) ; +#ifndef NMATRIXOPS // rnorm = norm (B-A*X) Residual = cholmod_l_copy_dense (B, cc) ; cholmod_l_sdmult (A, 0, minusone, one, X, Residual, cc) ; rnorm = cholmod_l_norm_dense (Residual, 2, cc) ; printf ("2-norm of residual: %8.1e\n", rnorm) ; +#else + printf ("2-norm of residual: not computed (requires CHOLMOD/MatrixOps)\n") ; +#endif printf ("rank %ld\n", cc->SPQR_istat [4]) ; // free everything and finish CHOLMOD diff --git a/SPQR/Demo/qrsimplec.c b/SPQR/Demo/qrsimplec.c index 4596bb904..5fabe2593 100644 --- a/SPQR/Demo/qrsimplec.c +++ b/SPQR/Demo/qrsimplec.c @@ -10,7 +10,7 @@ int main (int argc, char **argv) { cholmod_common Common, *cc ; cholmod_sparse *A ; - cholmod_dense *X, *B, *Residual ; + cholmod_dense *X, *B, *Residual = NULL ; double rnorm, one [2] = {1,0}, minusone [2] = {-1,0} ; int mtype ; @@ -28,11 +28,15 @@ int main (int argc, char **argv) /* X = A\B */ X = SuiteSparseQR_C_backslash_default (A, B, cc) ; +#ifndef NMATRIXOPS /* rnorm = norm (B-A*X) */ Residual = cholmod_l_copy_dense (B, cc) ; cholmod_l_sdmult (A, 0, minusone, one, X, Residual, cc) ; rnorm = cholmod_l_norm_dense (Residual, 2, cc) ; printf ("2-norm of residual: %8.1e\n", rnorm) ; +#else + printf ("2-norm of residual: not computed (requires CHOLMOD/MatrixOps)\n") ; +#endif printf ("rank %ld\n", cc->SPQR_istat [4]) ; /* free everything and finish CHOLMOD */ diff --git a/SPQR/Doc/ChangeLog b/SPQR/Doc/ChangeLog index 80c1b2d0c..dbb5c4c21 100644 --- a/SPQR/Doc/ChangeLog +++ b/SPQR/Doc/ChangeLog @@ -1,3 +1,10 @@ +Feb 1, 2016: version 2.0.5 + + * update to Makefiles + * better error handling when -DNGPL is used in CHOLMOD. + SuiteSparseQR requires the CHOLMOD/Supernodal module. This is now + checked both at compile time and at run time. + Jan 30, 2016: versions 2.0.4 * modifications to Makefiles diff --git a/SPQR/Doc/spqr_user_guide.pdf b/SPQR/Doc/spqr_user_guide.pdf index a9d051904..d6be318d6 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 56e78548d..831bd8599 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.4, Jan 30, 2016} +\date{VERSION 2.0.5, Feb 1, 2016} %------------------------------------------------------------------------------- \begin{document} diff --git a/SPQR/Include/SuiteSparseQR_definitions.h b/SPQR/Include/SuiteSparseQR_definitions.h index 02e66b180..f8101f41e 100644 --- a/SPQR/Include/SuiteSparseQR_definitions.h +++ b/SPQR/Include/SuiteSparseQR_definitions.h @@ -59,11 +59,11 @@ #endif */ -#define SPQR_DATE "Jan 30, 2016" +#define SPQR_DATE "Feb 1, 2016" #define SPQR_VER_CODE(main,sub) ((main) * 1000 + (sub)) #define SPQR_MAIN_VERSION 2 #define SPQR_SUB_VERSION 0 -#define SPQR_SUBSUB_VERSION 4 +#define SPQR_SUBSUB_VERSION 5 #define SPQR_VERSION SPQR_VER_CODE(SPQR_MAIN_VERSION,SPQR_SUB_VERSION) #endif diff --git a/SPQR/Lib/Makefile b/SPQR/Lib/Makefile index 7088062ae..d6d56f5aa 100644 --- a/SPQR/Lib/Makefile +++ b/SPQR/Lib/Makefile @@ -3,28 +3,25 @@ #=============================================================================== LIBRARY = libspqr -VERSION = 2.0.4 +VERSION = 2.0.5 SO_VERSION = 2 default: library - $(MAKE) install INSTALL=$(CURDIR)/../.. \ - INSTALL_DOC=$(CURDIR)/../../doc ccode: all include ../../SuiteSparse_config/SuiteSparse_config.mk -#------------------------------------------------------------------------------- +# SPQR depends on CHOLMOD, AMD, COLAMD, LAPACK, the BLAS and SuiteSparse_config +LDLIBS += -lamd -lcolamd -lcholmod -lsuitesparseconfig $(LAPACK) $(BLAS) -# no statement coverage, high optimization -# CF = -O3 \ -# -Wall -W -Wshadow -Winline -Wno-unused-parameter \ -# -Wredundant-decls -Wdisabled-optimization \ -# -ansi -fexceptions +# compile and install in SuiteSparse/lib +library: + $(MAKE) install INSTALL=$(SUITESPARSE) -all: library +#------------------------------------------------------------------------------- -library: $(AR_TARGET) $(SO_TARGET) +all: library purge: distclean @@ -36,7 +33,7 @@ clean: INC = ../Include/spqr.hpp ../Include/SuiteSparseQR_C.h \ ../Include/SuiteSparseQR_definitions.h \ - ../Include/SuiteSparseQR.hpp Makefile + ../Include/SuiteSparseQR.hpp OBJ = \ spqr_rmap.o \ @@ -96,7 +93,12 @@ ifneq ($(GPU_CONFIG),) -I../../GPUQREngine/Include $(CUDA_INC) endif -C = $(CXX) $(CF) $(SPQR_CONFIG) $(CONFIG_PARTITION) $(I) +C = $(CXX) $(CF) $(SPQR_CONFIG) $(CHOLMOD_CONFIG) $(CONFIG_PARTITION) $(I) + +ifneq ($(GPU_CONFIG),) + LDLIBS += $(CUDART_LIB) $(CUBLAS_LIB) \ + -lSuiteSparse_GPURuntime -lGPUQREngine +endif #------------------------------------------------------------------------------- @@ -104,9 +106,6 @@ $(AR_TARGET): $(OBJ) $(ARCHIVE) $@ $^ - $(RANLIB) $@ -$(SO_TARGET): $(OBJ) - $(CC) $(SO_OPTS) $^ -o $@ - #------------------------------------------------------------------------------- spqr_1colamd.o: ../Source/spqr_1colamd.cpp @@ -241,14 +240,13 @@ spqrgpu_computeFrontStaging.o: ../SPQRGPU/spqrgpu_computeFrontStaging.cpp #------------------------------------------------------------------------------- # install SPQR -install: $(INSTALL_LIB)/$(SO_TARGET) +install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) -$(INSTALL_LIB)/$(SO_TARGET): $(SO_TARGET) +$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) @mkdir -p $(INSTALL_LIB) @mkdir -p $(INSTALL_INCLUDE) @mkdir -p $(INSTALL_DOC) - $(CP) $(SO_TARGET) $(INSTALL_LIB) - $(SO_INSTALL_NAME) $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/$(SO_TARGET) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) $(CP) ../Include/SuiteSparseQR.hpp $(INSTALL_INCLUDE) diff --git a/SPQR/Makefile b/SPQR/Makefile index 34017866a..8dab11af0 100644 --- a/SPQR/Makefile +++ b/SPQR/Makefile @@ -2,6 +2,9 @@ # SuiteSparseQR Makefile #------------------------------------------------------------------------------- +SUITESPARSE ?= $(realpath $(CURDIR)/..) +export SUITESPARSE + default: all include ../SuiteSparse_config/SuiteSparse_config.mk diff --git a/SPQR/Source/spqr_analyze.cpp b/SPQR/Source/spqr_analyze.cpp index 881a5ac51..426d99b42 100644 --- a/SPQR/Source/spqr_analyze.cpp +++ b/SPQR/Source/spqr_analyze.cpp @@ -8,6 +8,10 @@ #include "spqr.hpp" +#ifdef NSUPERNODAL +#error "SuiteSparseQR requires the CHOLMOD/Supernodal module" +#endif + // ============================================================================= #define FREE_WORK \ @@ -314,6 +318,15 @@ spqr_symbolic *spqr_analyze return (NULL) ; } + if (Sc == NULL || !(Sc->is_super) || !(Sc->is_ll)) + { + cholmod_l_free_factor (&Sc, cc) ; + FREE_WORK ; + ERROR (CHOLMOD_INVALID, + "SuiteSparseQR requires the CHOLMOD/Supernodal module") ; + return (NULL) ; + } + ASSERT (Sc != NULL && Sc->is_ll && Sc->is_super) ; // ------------------------------------------------------------------------- diff --git a/SuiteSparse_GPURuntime/Doc/ChangeLog b/SuiteSparse_GPURuntime/Doc/ChangeLog index e0bfc1445..cb8c100ab 100644 --- a/SuiteSparse_GPURuntime/Doc/ChangeLog +++ b/SuiteSparse_GPURuntime/Doc/ChangeLog @@ -1,3 +1,7 @@ +Feb 1, 2016: version 1.0.3 + + * update to Makefiles + Jan 30, 2016: version 1.0.2 * modifications to Makefiles diff --git a/SuiteSparse_GPURuntime/Include/SuiteSparseGPU_Runtime.hpp b/SuiteSparse_GPURuntime/Include/SuiteSparseGPU_Runtime.hpp index 0de78ad7a..616a4bc9b 100644 --- a/SuiteSparse_GPURuntime/Include/SuiteSparseGPU_Runtime.hpp +++ b/SuiteSparse_GPURuntime/Include/SuiteSparseGPU_Runtime.hpp @@ -21,11 +21,11 @@ class Workspace; #include "SuiteSparseGPU_Workspace.hpp" // Version information: -#define SUITESPARSE_GPURUNTIME_DATE "Jan 30, 2016" +#define SUITESPARSE_GPURUNTIME_DATE "Feb 1, 2016" #define SUITESPARSE_GPURUNTIME_VER_CODE(main,sub) ((main) * 1000 + (sub)) #define SUITESPARSE_GPURUNTIME_MAIN_VERSION 1 #define SUITESPARSE_GPURUNTIME_SUB_VERSION 0 -#define SUITESPARSE_GPURUNTIME_SUBSUB_VERSION 2 +#define SUITESPARSE_GPURUNTIME_SUBSUB_VERSION 3 #define SUITESPARSE_GPURUNTIME_VERSION \ SUITESPARSE_GPURUNTIME_VER_CODE(SUITESPARSE_GPURUNTIME_MAIN_VERSION,SUITESPARSE_GPURUNTIME_SUB_VERSION) diff --git a/SuiteSparse_GPURuntime/Lib/Makefile b/SuiteSparse_GPURuntime/Lib/Makefile index e21ce350a..4da8153e3 100644 --- a/SuiteSparse_GPURuntime/Lib/Makefile +++ b/SuiteSparse_GPURuntime/Lib/Makefile @@ -3,30 +3,33 @@ #------------------------------------------------------------------------------- LIBRARY = libSuiteSparse_GPURuntime -VERSION = 1.0.2 +VERSION = 1.0.3 SO_VERSION = 1 default: library - $(MAKE) install INSTALL=$(CURDIR)/../.. \ - INSTALL_DOC=$(CURDIR)/../../doc include ../../SuiteSparse_config/SuiteSparse_config.mk +# SuiteSparse_GPURuntime depends on SuiteSparse_config and CUDA +LDLIBS += -lsuitesparseconfig $(CUDART_LIB) + +# compile and install in SuiteSparse/lib +library: + $(MAKE) install INSTALL=$(SUITESPARSE) + OBJS = SuiteSparseGPU_Workspace.o \ SuiteSparseGPU_Workspace_cpuAllocators.o \ SuiteSparseGPU_Workspace_gpuAllocators.o \ SuiteSparseGPU_Workspace_transfer.o INC = -I../Include -I../../SuiteSparse_config -LIBS = $(CUDART_LIB) H = \ ../Include/SuiteSparseGPU_Workspace.hpp \ ../Include/SuiteSparseGPU_debug.hpp \ ../Include/SuiteSparseGPU_macros.hpp \ ../Include/SuiteSparseGPU_workspace_macros.hpp \ - ../Include/SuiteSparseGPU_Runtime.hpp \ - Makefile + ../Include/SuiteSparseGPU_Runtime.hpp #------------------------------------------------------------------------------- @@ -36,8 +39,6 @@ runtime: library lib: library -library: $(AR_TARGET) $(SO_TARGET) - clean: $(RM) -r $(CLEAN) @@ -50,9 +51,6 @@ $(AR_TARGET): $(OBJS) $(ARCHIVE) $@ $^ - $(RANLIB) $@ -$(SO_TARGET): $(OBJS) - $(CC) $(SO_OPTS) $^ -o $@ - #------------------------------------------------------------------------------- SuiteSparseGPU_Workspace.o: ../Source/SuiteSparseGPU_Workspace.cpp $(H) @@ -70,14 +68,13 @@ SuiteSparseGPU_Workspace_transfer.o: ../Source/SuiteSparseGPU_Workspace_transfer #------------------------------------------------------------------------------- # install SuiteSparse_GPURuntime (just the library, not the include files) -install: $(INSTALL_LIB)/$(SO_TARGET) +install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) -$(INSTALL_LIB)/$(SO_TARGET): $(SO_TARGET) +$(INSTALL_LIB)/$(SO_TARGET): $(OBJS) @mkdir -p $(INSTALL_LIB) @mkdir -p $(INSTALL_INCLUDE) @mkdir -p $(INSTALL_DOC) - $(CP) $(SO_TARGET) $(INSTALL_LIB) - $(SO_INSTALL_NAME) $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/$(SO_TARGET) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) $(CP) ../README.txt $(INSTALL_DOC)/GPURUNTIME_README.txt diff --git a/SuiteSparse_GPURuntime/Makefile b/SuiteSparse_GPURuntime/Makefile index 994b7ce24..099948f16 100644 --- a/SuiteSparse_GPURuntime/Makefile +++ b/SuiteSparse_GPURuntime/Makefile @@ -2,6 +2,9 @@ # SuiteSparse_GPURuntime Makefile #------------------------------------------------------------------------------- +SUITESPARSE ?= $(realpath $(CURDIR)/..) +export SUITESPARSE + default: all include ../SuiteSparse_config/SuiteSparse_config.mk diff --git a/SuiteSparse_config/Makefile b/SuiteSparse_config/Makefile index 70ebdf6ab..2f53093fc 100644 --- a/SuiteSparse_config/Makefile +++ b/SuiteSparse_config/Makefile @@ -2,32 +2,35 @@ # SuiteSparse_config Makefile #------------------------------------------------------------------------------- +SUITESPARSE ?= $(realpath $(CURDIR)/..) +export SUITESPARSE + # version of SuiteSparse_config is also version of SuiteSparse meta-package LIBRARY = libsuitesparseconfig -VERSION = 4.5.0 +VERSION = 4.5.1 SO_VERSION = 4 default: library - $(MAKE) install INSTALL=$(CURDIR)/.. INSTALL_DOC=$(CURDIR)/../doc include SuiteSparse_config.mk ccode: all -all: $(AR_TARGET) $(SO_TARGET) +all: library + +# compile and install in SuiteSparse/lib +library: $(AR_TARGET) + $(MAKE) install INSTALL=$(SUITESPARSE) -library: $(AR_TARGET) $(SO_TARGET) +OBJ = SuiteSparse_config.o SuiteSparse_config.o: SuiteSparse_config.c SuiteSparse_config.h $(CC) $(CF) -c SuiteSparse_config.c -$(AR_TARGET): SuiteSparse_config.o +$(AR_TARGET): $(OBJ) $(ARCHIVE) $(AR_TARGET) SuiteSparse_config.o $(RANLIB) $(AR_TARGET) -$(SO_TARGET): SuiteSparse_config.o - $(CC) $(SO_OPTS) $^ -o $@ - distclean: purge purge: clean @@ -39,14 +42,13 @@ clean: - $(RM) -r $(CLEAN) # install SuiteSparse_config -install: $(INSTALL_LIB)/$(SO_TARGET) +install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) -$(INSTALL_LIB)/$(SO_TARGET): $(SO_TARGET) +$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) @mkdir -p $(INSTALL_LIB) @mkdir -p $(INSTALL_INCLUDE) @mkdir -p $(INSTALL_DOC) - $(CP) $(SO_TARGET) $(INSTALL_LIB) - $(SO_INSTALL_NAME) $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/$(SO_TARGET) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) $(CP) SuiteSparse_config.h $(INSTALL_INCLUDE) diff --git a/SuiteSparse_config/SuiteSparse_config.h b/SuiteSparse_config/SuiteSparse_config.h index 10b464de6..c4b4cfcf3 100644 --- a/SuiteSparse_config/SuiteSparse_config.h +++ b/SuiteSparse_config/SuiteSparse_config.h @@ -184,24 +184,24 @@ int SuiteSparse_divcomplex * * SuiteSparse contains the following packages: * - * SuiteSparse_config version 4.5.0 (version always the same as SuiteSparse) - * AMD version 2.4.3 - * BTF version 1.2.3 - * CAMD version 2.4.3 - * CCOLAMD version 2.9.3 - * CHOLMOD version 3.0.8 - * COLAMD version 2.9.3 - * CSparse version 3.1.6 - * CXSparse version 3.1.6 - * GPUQREngine version 1.0.2 - * KLU version 1.3.5 - * LDL version 2.2.3 - * RBio version 2.2.3 - * SPQR version 2.0.4 - * SuiteSparse_GPURuntime version 1.0.2 + * SuiteSparse_config version 4.5.1 (version always the same as SuiteSparse) + * AMD version 2.4.4 + * BTF version 1.2.4 + * CAMD version 2.4.4 + * CCOLAMD version 2.9.4 + * CHOLMOD version 3.0.9 + * COLAMD version 2.9.4 + * CSparse version 3.1.7 + * CXSparse version 3.1.7 + * GPUQREngine version 1.0.3 + * KLU version 1.3.6 + * LDL version 2.2.4 + * RBio version 2.2.4 + * SPQR version 2.0.5 + * SuiteSparse_GPURuntime version 1.0.3 * UMFPACK version 5.7.3 * MATLAB_Tools various packages & M-files - * xerbla version 1.0.1 + * xerbla version 1.0.2 * * Other package dependencies: * BLAS required by CHOLMOD and UMFPACK diff --git a/SuiteSparse_config/SuiteSparse_config.mk b/SuiteSparse_config/SuiteSparse_config.mk index a4d8ec4bc..91a424bd9 100644 --- a/SuiteSparse_config/SuiteSparse_config.mk +++ b/SuiteSparse_config/SuiteSparse_config.mk @@ -5,7 +5,7 @@ # This file contains all configuration settings for all packages in SuiteSparse, # except for CSparse (which is stand-alone) and the packages in MATLAB_Tools. -SUITESPARSE_VERSION = 4.5.0 +SUITESPARSE_VERSION = 4.5.1 #=============================================================================== # Options you can change without editing this file: @@ -31,7 +31,31 @@ SUITESPARSE_VERSION = 4.5.0 # Most Makefiles are in SuiteSparse/Pkg/Lib or SuiteSparse/Pkg/Demo, so # the top-level of SuiteSparse is in ../.. unless otherwise specified. - SUITESPARSE ?= $(CURDIR)/../.. + # This is true for all but the SuiteSparse_config package. + SUITESPARSE ?= $(realpath $(CURDIR)/../..) + + #--------------------------------------------------------------------------- + # installation location + #--------------------------------------------------------------------------- + + # For "make install" and "make uninstall", the default location is + # SuiteSparse/lib, SuiteSparse/include, and + # SuiteSparse/share/doc/suitesparse-x.y.z + # If you do this: + # make install INSTALL=/usr/local + # then the libraries are installed in /usr/local/lib, include files in + # /usr/local/include, and documentation in + # /usr/local/share/doc/suitesparse-x.y.z. + # You can instead specify the install location of each of these 3 components + # separately, via (for example): + # make install INSTALL_LIB=/yada/mylibs INSTALL_INCLUDE=/yoda/myinc \ + # INSTALL_DOC=/solo/mydox + # which puts the libraries in /yada/mylibs, include files in /yoda/myinc, + # and documentation in /solo/mydox. + INSTALL ?= $(SUITESPARSE) + INSTALL_LIB ?= $(INSTALL)/lib + INSTALL_INCLUDE ?= $(INSTALL)/include + INSTALL_DOC ?= $(INSTALL)/share/doc/suitesparse-$(SUITESPARSE_VERSION) #--------------------------------------------------------------------------- # optimization level @@ -52,8 +76,11 @@ SUITESPARSE_VERSION = 4.5.0 AUTOCC = no CC = gcc CXX = g++ - BLAS = -lrefblas -lgfortran + BLAS = -lrefblas -lgfortran -lstdc++ LAPACK = -llapack + CFLAGS += --coverage + OPTIMIZATION = -g + LDFLAGS += --coverage endif #--------------------------------------------------------------------------- @@ -109,6 +136,7 @@ SUITESPARSE_VERSION = 4.5.0 # It places its shared *.so libraries in SuiteSparse/lib. # Linux also requires the -lrt library (see below) LDLIBS ?= -lm + LDFLAGS += -L$(INSTALL_LIB) # See http://www.openblas.net for a recent and freely available optimzed # BLAS. LAPACK is at http://www.netlib.org/lapack/ . You can use the @@ -137,8 +165,7 @@ SUITESPARSE_VERSION = 4.5.0 endif # For ACML, use this instead: - ## BLAS = -lacml -lgfortran - ## LAPACK = + # make BLAS='-lacml -lgfortran' #--------------------------------------------------------------------------- # shell commands @@ -160,17 +187,6 @@ SUITESPARSE_VERSION = 4.5.0 F77 ?= gfortran F77FLAGS ?= $(FFLAGS) $(OPTIMIZATION) - #--------------------------------------------------------------------------- - # installation location - #--------------------------------------------------------------------------- - - # For "make install" and "make uninstall", default location is - # /usr/local/lib, /usr/local/include, and /usr/share/doc/suitesparse-x.y.z - INSTALL ?= /usr/local - INSTALL_LIB ?= $(INSTALL)/lib - INSTALL_INCLUDE ?= $(INSTALL)/include - INSTALL_DOC ?= /usr/share/doc/suitesparse-$(SUITESPARSE_VERSION) - #--------------------------------------------------------------------------- # NVIDIA CUDA configuration for CHOLMOD and SPQR #--------------------------------------------------------------------------- @@ -215,16 +231,6 @@ SUITESPARSE_VERSION = 4.5.0 -gencode=arch=compute_50,code=compute_50 endif - #--------------------------------------------------------------------------- - # METIS configuration - #--------------------------------------------------------------------------- - - # Most packages are built in SuiteSparse/PackageName/Lib, so this is a - # relative path to SuiteSparse/metis-5.1.0. If you use a pre-installed - # copy of METIS, you can use it instead via 'make METIS=/my/metis-5.1.0'. - - METIS_PATH ?= $(SUITESPARSE)/metis-5.1.0 - #--------------------------------------------------------------------------- # UMFPACK configuration: #--------------------------------------------------------------------------- @@ -238,14 +244,14 @@ SUITESPARSE_VERSION = 4.5.0 # -DNRECIPROCAL do not multiply by the reciprocal # -DNO_DIVIDE_BY_ZERO do not divide by zero # -DNCHOLMOD do not use CHOLMOD as a ordering method. If -DNCHOLMOD is - # included in UMFPACK_CONFIG, then UMFPACK does not rely on + # included in UMFPACK_CONFIG, then UMFPACK does not rely on # CHOLMOD, CAMD, CCOLAMD, COLAMD, and METIS. UMFPACK_CONFIG ?= # For example, uncomment this line to compile UMFPACK without CHOLMOD: # UMFPACK_CONFIG = -DNCHOLMOD - # or use 'make UMFPACK_CONFIG=-DCHOLMOD' + # or use 'make UMFPACK_CONFIG=-DNCHOLMOD' #--------------------------------------------------------------------------- # CHOLMOD configuration @@ -296,7 +302,7 @@ SUITESPARSE_VERSION = 4.5.0 # -DNPARTITION do not include the CHOLMOD partition module # -DNEXPERT do not include the functions in SuiteSparseQR_expert.cpp # -DHAVE_TBB enable the use of Intel's Threading Building Blocks - # -DGPU_BLAS enable the use of the CUDA BLAS + # -DGPU_BLAS enable the use of the CUDA BLAS SPQR_CONFIG ?= $(GPU_CONFIG) @@ -333,7 +339,7 @@ SUITESPARSE_VERSION = 4.5.0 ifeq ($(UNAME),Linux) # add the realtime library, librt, and SuiteSparse/lib - LDLIBS += -lrt -Wl,-rpath=$(SUITESPARSE)/lib + LDLIBS += -lrt -Wl,-rpath=$(INSTALL_LIB) endif #--------------------------------------------------------------------------- @@ -447,42 +453,73 @@ else SO_PLAIN = $(LIBRARY).so SO_MAIN = $(LIBRARY).so.$(SO_VERSION) SO_TARGET = $(LIBRARY).so.$(VERSION) - SO_OPTS += -shared -Wl,-soname -Wl,$(SO_MAIN) + SO_OPTS += -shared -Wl,-soname -Wl,$(SO_MAIN) -Wl,--no-undefined # Linux/Unix *.so files can be moved without modification: SO_INSTALL_NAME = echo endif endif #=============================================================================== -# Configure METIS for the CHOLMOD/Partition module +# Configure CHOLMOD/Partition module with METIS, CAMD, and CCOLAMD #=============================================================================== -# the optional CHOLMOD Partition module requires METIS, CAMD, and CCOLAMD. -# CAMD and CCOLAMD can be installed without METIS, but are optional. +# By default, SuiteSparse uses METIS 5.1.0 in the SuiteSparse/metis-5.1.0 +# directory. SuiteSparse's interface to METIS is only through the +# SuiteSparse/CHOLMOD/Partition module, which also requires SuiteSparse/CAMD +# and SuiteSparse/CCOLAMD. +# +# If you wish to use your own pre-installed copy of METIS, use the MY_METIS_LIB +# and MY_METIS_INC options passed to 'make'. For example: +# make MY_METIS_LIB=-lmetis +# make MY_METIS_LIB=/home/myself/mylibraries/libmetis.so +# make MY_METIS_LIB='-L/home/myself/mylibraries -lmetis' +# If you need to tell the compiler where to find the metis.h include file, +# then add MY_METIS_INC=/home/myself/metis-5.1.0/include as well, which points +# to the directory containing metis.h. If metis.h is already installed in +# a location known to the compiler (/usr/local/include/metis.h for example) +# then you do not need to add MY_METIS_INC. + I_WITH_PARTITION = LIB_WITH_PARTITION = CONFIG_PARTITION = -DNPARTITION -DNCAMD # check if CAMD/CCOLAMD and METIS are requested and available ifeq (,$(findstring -DNCAMD, $(CHOLMOD_CONFIG))) - # CAMD and CCOLAMD are requested. See if they are available - ifeq (../../CAMD, $(wildcard ../../CAMD)) - ifeq (../../CCOLAMD, $(wildcard ../../CCOLAMD)) + # CAMD and CCOLAMD are requested. See if they are available in + # SuiteSparse/CAMD and SuiteSparse/CCOLAMD + ifneq (, $(wildcard $(SUITESPARSE)/CAMD)) + ifneq (, $(wildcard $(SUITESPARSE)/CCOLAMD)) # CAMD and CCOLAMD are requested and available LIB_WITH_PARTITION = -lccolamd -lcamd - I_WITH_PARTITION = -I../../CCOLAMD/Include -I../../CAMD/Include + I_WITH_PARTITION = -I$(SUITESPARSE)/CCOLAMD/Include -I$(SUITESPARSE)/CAMD/Include CONFIG_PARTITION = -DNPARTITION # check if METIS is requested and available ifeq (,$(findstring -DNPARTITION, $(CHOLMOD_CONFIG))) - # METIS is requested. See if it is available - ifeq ($(METIS_PATH), $(wildcard $(METIS_PATH))) - # METIS is available - ifeq ($(UNAME), Darwin) - LIB_WITH_PARTITION += ../../lib/libmetis.dylib - else - LIB_WITH_PARTITION += -lmetis + # METIS is requested. See if it is available. + ifneq (,$(MY_METIS_LIB)) + # METIS 5.1.0 is provided elsewhere, and we are not using + # SuiteSparse/metis-5.1.0. To do so, we link with + # $(MY_METIS_LIB) and add the -I$(MY_METIS_INC) option for + # the compiler. The latter can be empty if you have METIS + # installed in a place where the compiler can find the + # metis.h include file by itself without any -I option + # (/usr/local/include/metis.h for example). + LIB_WITH_PARTITION += $(MY_METIS_LIB) + ifneq (,$(MY_METIS_INC)) + I_WITH_PARTITION += -I$(MY_METIS_INC) endif - I_WITH_PARTITION += -I$(METIS_PATH)/include CONFIG_PARTITION = + else + # see if METIS is in SuiteSparse/metis-5.1.0 + ifneq (, $(wildcard $(SUITESPARSE)/metis-5.1.0)) + # SuiteSparse/metis5.1.0 is available + ifeq ($(UNAME), Darwin) + LIB_WITH_PARTITION += $(SUITESPARSE)/lib/libmetis.dylib + else + LIB_WITH_PARTITION += -lmetis + endif + I_WITH_PARTITION += -I$(SUITESPARSE)/metis-5.1.0/include + CONFIG_PARTITION = + endif endif endif endif @@ -520,7 +557,6 @@ config: @echo 'Optimization level: OPTIMIZATION= ' '$(OPTIMIZATION)' @echo 'BLAS library: BLAS= ' '$(BLAS)' @echo 'LAPACK library: LAPACK= ' '$(LAPACK)' - @echo 'METIS path: METIS_PATH= ' '$(METIS_PATH)' @echo 'Intel TBB library: TBB= ' '$(TBB)' @echo 'Other libraries: LDLIBS= ' '$(LDLIBS)' @echo 'static library: AR_TARGET= ' '$(AR_TARGET)' @@ -551,6 +587,14 @@ config: @echo 'SuiteSparseQR config: SPQR_CONFIG= ' '$(SPQR_CONFIG)' @echo 'CUDA library: CUDART_LIB= ' '$(CUDART_LIB)' @echo 'CUBLAS library: CUBLAS_LIB= ' '$(CUBLAS_LIB)' + @echo 'METIS and CHOLMOD/Partition configuration:' + @echo 'Your METIS library: MY_METIS_LIB= ' '$(MY_METIS_LIB)' + @echo 'Your metis.h is in: MY_METIS_INC= ' '$(MY_METIS_INC)' + @echo 'METIS is used via the CHOLMOD/Partition module, configured as follows.' + @echo 'If the next line has -DNPARTITION then METIS will not be used:' + @echo 'CHOLMOD Partition config: ' '$(CONFIG_PARTITION)' + @echo 'CHOLMOD Partition libs: ' '$(LIB_WITH_PARTITION)' + @echo 'CHOLMOD Partition include:' '$(I_WITH_PARTITION)' ifeq ($(TCOV),yes) @echo 'TCOV=yes, for extensive testing only (gcc, g++, vanilla BLAS)' endif diff --git a/SuiteSparse_config/xerbla/Makefile b/SuiteSparse_config/xerbla/Makefile index d76e45d5e..420c50e88 100644 --- a/SuiteSparse_config/xerbla/Makefile +++ b/SuiteSparse_config/xerbla/Makefile @@ -4,13 +4,16 @@ USE_FORTRAN = 0 # USE_FORTRAN = 1 -VERSION = 1.0.1 +VERSION = 1.0.2 SO_VERSION = 1 -default: - $(MAKE) install INSTALL=$(CURDIR)/../.. +default: library -all: ccode fortran +# compile and install in SuiteSparse/lib +library: + $(MAKE) install INSTALL=$(SUITESPARSE) + +all: library ifeq ($(USE_FORTRAN),0) LIBRARY = libcerbla @@ -28,9 +31,9 @@ else DEPENDS = xerbla.f endif -ccode: $(AR_TARGET) $(SO_TARGET) +ccode: all -fortran: ccode +fortran: all $(AR_TARGET): $(DEPENDS) $(COMPILE) @@ -38,20 +41,16 @@ $(AR_TARGET): $(DEPENDS) - $(RANLIB) $(AR_TARGET) - $(RM) xerbla.o -$(SO_TARGET): $(DEPENDS) - $(COMPILE) - $(CC) $(SO_OPTS) xerbla.o -o $@ - - $(RM) xerbla.o - # install libcerbla / libxerbla -install: $(INSTALL_LIB)/$(SO_TARGET) +install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) -$(INSTALL_LIB)/$(SO_TARGET): $(SO_TARGET) +$(INSTALL_LIB)/$(SO_TARGET): $(DEPENDS) @mkdir -p $(INSTALL_LIB) @mkdir -p $(INSTALL_INCLUDE) @mkdir -p $(INSTALL_DOC) - $(CP) $(SO_TARGET) $(INSTALL_LIB) - $(SO_INSTALL_NAME) $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/$(SO_TARGET) + $(COMPILE) + $(CC) $(SO_OPTS) xerbla.o -o $@ + - $(RM) xerbla.o ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) $(CP) xerbla.h $(INSTALL_INCLUDE) diff --git a/UMFPACK/Demo/Makefile b/UMFPACK/Demo/Makefile index 5002ee401..ce11b4201 100644 --- a/UMFPACK/Demo/Makefile +++ b/UMFPACK/Demo/Makefile @@ -17,33 +17,23 @@ include ../../SuiteSparse_config/SuiteSparse_config.mk #------------------------------------------------------------------------------- # UMFPACK optionally uses the CHOLMOD Partition module -CONFIG1 = -DNCHOLMOD LIB_WITH_CHOLMOD = ifeq (,$(findstring -DNCHOLMOD, $(UMFPACK_CONFIG))) - # CHOLMOD is requested. See if it is available - ifeq (../../CHOLMOD, $(wildcard ../../CHOLMOD)) - ifeq (../../COLAMD, $(wildcard ../../COLAMD)) - # CHOLMOD and COLAMD are available - CONFIG1 = - LIB_WITH_CHOLMOD = -lcholmod -lcolamd - endif - endif + LIB_WITH_CHOLMOD = $(LIB_WITH_PARTITION) $(CUBLAS_LIB) $(CUDART_LIB) endif #------------------------------------------------------------------------------- -C = $(CC) $(CF) $(UMFPACK_CONFIG) $(CONFIG1) $(CONFIG_PARTITION) \ +C = $(CC) $(CF) $(UMFPACK_CONFIG) $(CONFIG_PARTITION) \ -I../../include -LIBS = -L../../lib -lumfpack -lamd -lsuitesparseconfig \ - $(LIB_WITH_CHOLMOD) \ - $(LAPACK) $(BLAS) $(LDLIBS) \ - $(LIB_WITH_PARTITION) $(CUBLAS_LIB) $(CUDART_LIB) +LIBS = $(LDLIBS) -L../../lib -lumfpack -lamd -lsuitesparseconfig \ + $(LIB_WITH_CHOLMOD) $(LAPACK) $(BLAS) libs: metis ( cd ../../SuiteSparse_config ; $(MAKE) ) - ( cd ../Lib ; $(MAKE) ) ( cd ../../AMD ; $(MAKE) library ) + ( cd ../Lib ; $(MAKE) ) - ( cd ../../CHOLMOD && $(MAKE) library ) - ( cd ../../COLAMD && $(MAKE) library ) - ( cd ../../CCOLAMD ; $(MAKE) library ) diff --git a/UMFPACK/Demo/umfpack_di_demo.out b/UMFPACK/Demo/umfpack_di_demo.out index f1b5269ed..2264385e1 100644 --- a/UMFPACK/Demo/umfpack_di_demo.out +++ b/UMFPACK/Demo/umfpack_di_demo.out @@ -1,5 +1,5 @@ -UMFPACK V5.7 (Jan 30, 2016) demo: _di_ version +UMFPACK V5.7 (Feb 1, 2016) demo: _di_ version UMFPACK: Copyright (c) 2005-2013 by Timothy A. Davis. All Rights Reserved. @@ -38,9 +38,9 @@ UMFPACK License: and a notice that the code was modified is included. Availability: http://www.suitesparse.com -UMFPACK V5.7.3 (Jan 30, 2016): OK +UMFPACK V5.7.4 (Feb 1, 2016): OK -UMFPACK V5.7.3 (Jan 30, 2016), Control: +UMFPACK V5.7.4 (Feb 1, 2016), Control: Matrix entry defined as: double Int (generic integer) defined as: int @@ -70,8 +70,8 @@ UMFPACK V5.7.3 (Jan 30, 2016), Control: The following options can only be changed at compile-time: 8: BLAS library used: Fortran BLAS. size of BLAS integer: 4 compiled for ANSI C - no timer used. - computer/operating system: Mac + POSIX C clock_getttime. + computer/operating system: Linux size of int: 4 SuiteSparse_long: 8 Int: 4 pointer: 8 double: 8 Entry: 8 (in bytes) @@ -191,7 +191,7 @@ Numeric factorization of A: Numeric object: largest actual frontal matrix size: 4 memory defragmentations: 1 memory reallocations: 1 - costly memory reallocations: 1 + costly memory reallocations: 0 entries in compressed pattern (L and U): 2 number of nonzeros in L (excl diag): 4 number of entries stored in L (excl diag): 2 @@ -279,12 +279,12 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double Int (generic integer) defined as: int BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -352,8 +352,9 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: numerical values stored in Numeric object: 9 numeric factorization defragmentations: 1 numeric factorization reallocations: 1 - costly numeric factorization reallocations: 1 + costly numeric factorization reallocations: 0 numeric factorization wallclock time (sec): 0.00 + numeric factorization mflops (wallclock): 0.00 solve flops: 1.19000e+02 iterative refinement steps taken: 0 @@ -367,7 +368,7 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: UMFPACK: Copyright (c) 2005-2013 by Timothy A. Davis. All Rights Reserved. -UMFPACK V5.7.3 (Jan 30, 2016): OK +UMFPACK V5.7.4 (Feb 1, 2016): OK x (solution of Ax=b): dense vector, n = 5. @@ -383,7 +384,7 @@ maxnorm of residual: 1.06581e-14 UMFPACK: Copyright (c) 2005-2013 by Timothy A. Davis. All Rights Reserved. -UMFPACK V5.7.3 (Jan 30, 2016): OK +UMFPACK V5.7.4 (Feb 1, 2016): OK determinant: (1.14) * 10^(2) @@ -397,12 +398,12 @@ x (solution of Ax=b, solve is split into 3 steps): dense vector, n = 5. maxnorm of residual: 1.06581e-14 -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double Int (generic integer) defined as: int BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -470,8 +471,9 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: numerical values stored in Numeric object: 9 numeric factorization defragmentations: 1 numeric factorization reallocations: 1 - costly numeric factorization reallocations: 1 + costly numeric factorization reallocations: 0 numeric factorization wallclock time (sec): 0.00 + numeric factorization mflops (wallclock): 0.00 solve flops: 1.11000e+02 iterative refinement steps taken: 0 @@ -625,12 +627,12 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double Int (generic integer) defined as: int BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -872,12 +874,12 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double Int (generic integer) defined as: int BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -1263,12 +1265,12 @@ Freeing numeric object: Loading numeric object: Done loading numeric object -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double Int (generic integer) defined as: int BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -1361,12 +1363,12 @@ maxnorm of residual: 3.55271e-15 Solving C'x=b again, using umfpack_di_wsolve instead: -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double Int (generic integer) defined as: int BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -1459,4 +1461,4 @@ maxnorm of residual: 3.55271e-15 umfpack_di_demo complete. -Total time: 0.00 seconds (CPU time), 0.00 seconds (wallclock time) +Total time: 0.01 seconds (CPU time), 0.01 seconds (wallclock time) diff --git a/UMFPACK/Demo/umfpack_dl_demo.out b/UMFPACK/Demo/umfpack_dl_demo.out index 548789130..ad3d343b1 100644 --- a/UMFPACK/Demo/umfpack_dl_demo.out +++ b/UMFPACK/Demo/umfpack_dl_demo.out @@ -1,5 +1,5 @@ -UMFPACK V5.7 (Jan 30, 2016) demo: _dl_ version +UMFPACK V5.7 (Feb 1, 2016) demo: _dl_ version UMFPACK: Copyright (c) 2005-2013 by Timothy A. Davis. All Rights Reserved. @@ -38,9 +38,9 @@ UMFPACK License: and a notice that the code was modified is included. Availability: http://www.suitesparse.com -UMFPACK V5.7.3 (Jan 30, 2016): OK +UMFPACK V5.7.4 (Feb 1, 2016): OK -UMFPACK V5.7.3 (Jan 30, 2016), Control: +UMFPACK V5.7.4 (Feb 1, 2016), Control: Matrix entry defined as: double Int (generic integer) defined as: SuiteSparse_long @@ -70,8 +70,8 @@ UMFPACK V5.7.3 (Jan 30, 2016), Control: The following options can only be changed at compile-time: 8: BLAS library used: Fortran BLAS. size of BLAS integer: 4 compiled for ANSI C - no timer used. - computer/operating system: Mac + POSIX C clock_getttime. + computer/operating system: Linux size of int: 4 SuiteSparse_long: 8 Int: 8 pointer: 8 double: 8 Entry: 8 (in bytes) @@ -191,7 +191,7 @@ Numeric factorization of A: Numeric object: largest actual frontal matrix size: 4 memory defragmentations: 1 memory reallocations: 1 - costly memory reallocations: 1 + costly memory reallocations: 0 entries in compressed pattern (L and U): 2 number of nonzeros in L (excl diag): 4 number of entries stored in L (excl diag): 2 @@ -279,12 +279,12 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double Int (generic integer) defined as: SuiteSparse_long BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -352,8 +352,9 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: numerical values stored in Numeric object: 9 numeric factorization defragmentations: 1 numeric factorization reallocations: 1 - costly numeric factorization reallocations: 1 + costly numeric factorization reallocations: 0 numeric factorization wallclock time (sec): 0.00 + numeric factorization mflops (wallclock): 0.00 solve flops: 1.19000e+02 iterative refinement steps taken: 0 @@ -367,7 +368,7 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: UMFPACK: Copyright (c) 2005-2013 by Timothy A. Davis. All Rights Reserved. -UMFPACK V5.7.3 (Jan 30, 2016): OK +UMFPACK V5.7.4 (Feb 1, 2016): OK x (solution of Ax=b): dense vector, n = 5. @@ -383,7 +384,7 @@ maxnorm of residual: 1.06581e-14 UMFPACK: Copyright (c) 2005-2013 by Timothy A. Davis. All Rights Reserved. -UMFPACK V5.7.3 (Jan 30, 2016): OK +UMFPACK V5.7.4 (Feb 1, 2016): OK determinant: (1.14) * 10^(2) @@ -397,12 +398,12 @@ x (solution of Ax=b, solve is split into 3 steps): dense vector, n = 5. maxnorm of residual: 1.06581e-14 -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double Int (generic integer) defined as: SuiteSparse_long BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -470,8 +471,9 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: numerical values stored in Numeric object: 9 numeric factorization defragmentations: 1 numeric factorization reallocations: 1 - costly numeric factorization reallocations: 1 + costly numeric factorization reallocations: 0 numeric factorization wallclock time (sec): 0.00 + numeric factorization mflops (wallclock): 0.00 solve flops: 1.11000e+02 iterative refinement steps taken: 0 @@ -538,7 +540,7 @@ Numeric factorization of modified A: Numeric object: largest actual frontal matrix size: 4 memory defragmentations: 1 memory reallocations: 1 - costly memory reallocations: 1 + costly memory reallocations: 0 entries in compressed pattern (L and U): 2 number of nonzeros in L (excl diag): 4 number of entries stored in L (excl diag): 2 @@ -625,12 +627,12 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double Int (generic integer) defined as: SuiteSparse_long BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -698,7 +700,7 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: numerical values stored in Numeric object: 8 numeric factorization defragmentations: 1 numeric factorization reallocations: 1 - costly numeric factorization reallocations: 1 + costly numeric factorization reallocations: 0 numeric factorization wallclock time (sec): 0.00 solve flops: 1.17000e+02 @@ -784,7 +786,7 @@ Numeric factorization of completely modified A: Numeric object: largest actual frontal matrix size: 4 memory defragmentations: 1 memory reallocations: 1 - costly memory reallocations: 1 + costly memory reallocations: 0 entries in compressed pattern (L and U): 2 number of nonzeros in L (excl diag): 4 number of entries stored in L (excl diag): 2 @@ -872,12 +874,12 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double Int (generic integer) defined as: SuiteSparse_long BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -945,7 +947,7 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: numerical values stored in Numeric object: 9 numeric factorization defragmentations: 1 numeric factorization reallocations: 1 - costly numeric factorization reallocations: 1 + costly numeric factorization reallocations: 0 numeric factorization wallclock time (sec): 0.00 solve flops: 1.19000e+02 @@ -1263,12 +1265,12 @@ Freeing numeric object: Loading numeric object: Done loading numeric object -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double Int (generic integer) defined as: SuiteSparse_long BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -1361,12 +1363,12 @@ maxnorm of residual: 3.55271e-15 Solving C'x=b again, using umfpack_dl_wsolve instead: -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double Int (generic integer) defined as: SuiteSparse_long BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -1459,4 +1461,4 @@ maxnorm of residual: 3.55271e-15 umfpack_dl_demo complete. -Total time: 0.00 seconds (CPU time), 0.00 seconds (wallclock time) +Total time: 0.01 seconds (CPU time), 0.01 seconds (wallclock time) diff --git a/UMFPACK/Demo/umfpack_zi_demo.out b/UMFPACK/Demo/umfpack_zi_demo.out index 7b5d90d89..cde29a156 100644 --- a/UMFPACK/Demo/umfpack_zi_demo.out +++ b/UMFPACK/Demo/umfpack_zi_demo.out @@ -1,5 +1,5 @@ -UMFPACK V5.7 (Jan 30, 2016) demo: _zi_ version +UMFPACK V5.7 (Feb 1, 2016) demo: _zi_ version UMFPACK: Copyright (c) 2005-2013 by Timothy A. Davis. All Rights Reserved. @@ -38,9 +38,9 @@ UMFPACK License: and a notice that the code was modified is included. Availability: http://www.suitesparse.com -UMFPACK V5.7.3 (Jan 30, 2016): OK +UMFPACK V5.7.4 (Feb 1, 2016): OK -UMFPACK V5.7.3 (Jan 30, 2016), Control: +UMFPACK V5.7.4 (Feb 1, 2016), Control: Matrix entry defined as: double complex Int (generic integer) defined as: int @@ -70,8 +70,8 @@ UMFPACK V5.7.3 (Jan 30, 2016), Control: The following options can only be changed at compile-time: 8: BLAS library used: Fortran BLAS. size of BLAS integer: 4 compiled for ANSI C - no timer used. - computer/operating system: Mac + POSIX C clock_getttime. + computer/operating system: Linux size of int: 4 SuiteSparse_long: 8 Int: 4 pointer: 8 double: 8 Entry: 16 (in bytes) @@ -191,7 +191,7 @@ Numeric factorization of A: Numeric object: largest actual frontal matrix size: 4 memory defragmentations: 1 memory reallocations: 1 - costly memory reallocations: 1 + costly memory reallocations: 0 entries in compressed pattern (L and U): 2 number of nonzeros in L (excl diag): 4 number of entries stored in L (excl diag): 2 @@ -279,12 +279,12 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double complex Int (generic integer) defined as: int BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -352,8 +352,9 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: numerical values stored in Numeric object: 9 numeric factorization defragmentations: 1 numeric factorization reallocations: 1 - costly numeric factorization reallocations: 1 + costly numeric factorization reallocations: 0 numeric factorization wallclock time (sec): 0.00 + numeric factorization mflops (wallclock): 0.01 solve flops: 1.02800e+03 iterative refinement steps taken: 1 @@ -367,7 +368,7 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: UMFPACK: Copyright (c) 2005-2013 by Timothy A. Davis. All Rights Reserved. -UMFPACK V5.7.3 (Jan 30, 2016): OK +UMFPACK V5.7.4 (Feb 1, 2016): OK x (solution of Ax=b): dense vector, n = 5. @@ -383,7 +384,7 @@ maxnorm of residual: 1.77636e-15 UMFPACK: Copyright (c) 2005-2013 by Timothy A. Davis. All Rights Reserved. -UMFPACK V5.7.3 (Jan 30, 2016): OK +UMFPACK V5.7.4 (Feb 1, 2016): OK determinant: (-1.7814+ (2.3784)i) * 10^(2) @@ -397,12 +398,12 @@ x (solution of Ax=b, solve is split into 3 steps): dense vector, n = 5. maxnorm of residual: 1.77636e-14 -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double complex Int (generic integer) defined as: int BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -470,8 +471,9 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: numerical values stored in Numeric object: 9 numeric factorization defragmentations: 1 numeric factorization reallocations: 1 - costly numeric factorization reallocations: 1 + costly numeric factorization reallocations: 0 numeric factorization wallclock time (sec): 0.00 + numeric factorization mflops (wallclock): 0.01 solve flops: 4.80000e+02 iterative refinement steps taken: 0 @@ -625,12 +627,12 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double complex Int (generic integer) defined as: int BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -784,7 +786,7 @@ Numeric factorization of completely modified A: Numeric object: largest actual frontal matrix size: 4 memory defragmentations: 1 memory reallocations: 1 - costly memory reallocations: 1 + costly memory reallocations: 0 entries in compressed pattern (L and U): 2 number of nonzeros in L (excl diag): 4 number of entries stored in L (excl diag): 2 @@ -872,12 +874,12 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double complex Int (generic integer) defined as: int BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -945,7 +947,7 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: numerical values stored in Numeric object: 9 numeric factorization defragmentations: 1 numeric factorization reallocations: 1 - costly numeric factorization reallocations: 1 + costly numeric factorization reallocations: 0 numeric factorization wallclock time (sec): 0.00 solve flops: 5.23000e+02 @@ -1082,7 +1084,7 @@ Numeric factorization of C: Numeric object: largest actual frontal matrix size: 4 memory defragmentations: 1 memory reallocations: 1 - costly memory reallocations: 0 + costly memory reallocations: 1 entries in compressed pattern (L and U): 2 number of nonzeros in L (excl diag): 3 number of entries stored in L (excl diag): 2 @@ -1263,12 +1265,12 @@ Freeing numeric object: Loading numeric object: Done loading numeric object -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double complex Int (generic integer) defined as: int BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -1336,7 +1338,7 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: numerical values stored in Numeric object: 9 numeric factorization defragmentations: 1 numeric factorization reallocations: 1 - costly numeric factorization reallocations: 0 + costly numeric factorization reallocations: 1 numeric factorization wallclock time (sec): 0.00 solve flops: 4.80000e+02 @@ -1361,12 +1363,12 @@ maxnorm of residual: 4.88498e-15 Solving C'x=b again, using umfpack_zi_wsolve instead: -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double complex Int (generic integer) defined as: int BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -1434,7 +1436,7 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: numerical values stored in Numeric object: 9 numeric factorization defragmentations: 1 numeric factorization reallocations: 1 - costly numeric factorization reallocations: 0 + costly numeric factorization reallocations: 1 numeric factorization wallclock time (sec): 0.00 solve flops: 4.80000e+02 @@ -1459,4 +1461,4 @@ maxnorm of residual: 4.88498e-15 umfpack_zi_demo complete. -Total time: 0.00 seconds (CPU time), 0.00 seconds (wallclock time) +Total time: 0.01 seconds (CPU time), 0.01 seconds (wallclock time) diff --git a/UMFPACK/Demo/umfpack_zl_demo.out b/UMFPACK/Demo/umfpack_zl_demo.out index 8e4f0e8c0..dcd9dabc3 100644 --- a/UMFPACK/Demo/umfpack_zl_demo.out +++ b/UMFPACK/Demo/umfpack_zl_demo.out @@ -1,5 +1,5 @@ -UMFPACK V5.7 (Jan 30, 2016) demo: _zl_ version +UMFPACK V5.7 (Feb 1, 2016) demo: _zl_ version UMFPACK: Copyright (c) 2005-2013 by Timothy A. Davis. All Rights Reserved. @@ -38,9 +38,9 @@ UMFPACK License: and a notice that the code was modified is included. Availability: http://www.suitesparse.com -UMFPACK V5.7.3 (Jan 30, 2016): OK +UMFPACK V5.7.4 (Feb 1, 2016): OK -UMFPACK V5.7.3 (Jan 30, 2016), Control: +UMFPACK V5.7.4 (Feb 1, 2016), Control: Matrix entry defined as: double complex Int (generic integer) defined as: SuiteSparse_long @@ -70,8 +70,8 @@ UMFPACK V5.7.3 (Jan 30, 2016), Control: The following options can only be changed at compile-time: 8: BLAS library used: Fortran BLAS. size of BLAS integer: 4 compiled for ANSI C - no timer used. - computer/operating system: Mac + POSIX C clock_getttime. + computer/operating system: Linux size of int: 4 SuiteSparse_long: 8 Int: 8 pointer: 8 double: 8 Entry: 16 (in bytes) @@ -191,7 +191,7 @@ Numeric factorization of A: Numeric object: largest actual frontal matrix size: 4 memory defragmentations: 1 memory reallocations: 1 - costly memory reallocations: 1 + costly memory reallocations: 0 entries in compressed pattern (L and U): 2 number of nonzeros in L (excl diag): 4 number of entries stored in L (excl diag): 2 @@ -279,12 +279,12 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double complex Int (generic integer) defined as: SuiteSparse_long BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -352,8 +352,9 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: numerical values stored in Numeric object: 9 numeric factorization defragmentations: 1 numeric factorization reallocations: 1 - costly numeric factorization reallocations: 1 + costly numeric factorization reallocations: 0 numeric factorization wallclock time (sec): 0.00 + numeric factorization mflops (wallclock): 0.02 solve flops: 1.02800e+03 iterative refinement steps taken: 1 @@ -367,7 +368,7 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: UMFPACK: Copyright (c) 2005-2013 by Timothy A. Davis. All Rights Reserved. -UMFPACK V5.7.3 (Jan 30, 2016): OK +UMFPACK V5.7.4 (Feb 1, 2016): OK x (solution of Ax=b): dense vector, n = 5. @@ -383,7 +384,7 @@ maxnorm of residual: 1.77636e-15 UMFPACK: Copyright (c) 2005-2013 by Timothy A. Davis. All Rights Reserved. -UMFPACK V5.7.3 (Jan 30, 2016): OK +UMFPACK V5.7.4 (Feb 1, 2016): OK determinant: (-1.7814+ (2.3784)i) * 10^(2) @@ -397,12 +398,12 @@ x (solution of Ax=b, solve is split into 3 steps): dense vector, n = 5. maxnorm of residual: 1.77636e-14 -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double complex Int (generic integer) defined as: SuiteSparse_long BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -470,8 +471,9 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: numerical values stored in Numeric object: 9 numeric factorization defragmentations: 1 numeric factorization reallocations: 1 - costly numeric factorization reallocations: 1 + costly numeric factorization reallocations: 0 numeric factorization wallclock time (sec): 0.00 + numeric factorization mflops (wallclock): 0.02 solve flops: 4.80000e+02 iterative refinement steps taken: 0 @@ -538,7 +540,7 @@ Numeric factorization of modified A: Numeric object: largest actual frontal matrix size: 4 memory defragmentations: 1 memory reallocations: 1 - costly memory reallocations: 1 + costly memory reallocations: 0 entries in compressed pattern (L and U): 2 number of nonzeros in L (excl diag): 3 number of entries stored in L (excl diag): 1 @@ -625,12 +627,12 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double complex Int (generic integer) defined as: SuiteSparse_long BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -698,7 +700,7 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: numerical values stored in Numeric object: 8 numeric factorization defragmentations: 1 numeric factorization reallocations: 1 - costly numeric factorization reallocations: 1 + costly numeric factorization reallocations: 0 numeric factorization wallclock time (sec): 0.00 solve flops: 5.15000e+02 @@ -784,7 +786,7 @@ Numeric factorization of completely modified A: Numeric object: largest actual frontal matrix size: 4 memory defragmentations: 1 memory reallocations: 1 - costly memory reallocations: 1 + costly memory reallocations: 0 entries in compressed pattern (L and U): 2 number of nonzeros in L (excl diag): 4 number of entries stored in L (excl diag): 2 @@ -872,12 +874,12 @@ diagonal of U: dense vector, n = 5. Numeric object: OK -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double complex Int (generic integer) defined as: SuiteSparse_long BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -945,7 +947,7 @@ UMFPACK V5.7.3 (Jan 30, 2016), Info: numerical values stored in Numeric object: 9 numeric factorization defragmentations: 1 numeric factorization reallocations: 1 - costly numeric factorization reallocations: 1 + costly numeric factorization reallocations: 0 numeric factorization wallclock time (sec): 0.00 solve flops: 5.23000e+02 @@ -1263,12 +1265,12 @@ Freeing numeric object: Loading numeric object: Done loading numeric object -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double complex Int (generic integer) defined as: SuiteSparse_long BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -1361,12 +1363,12 @@ maxnorm of residual: 4.88498e-15 Solving C'x=b again, using umfpack_zl_wsolve instead: -UMFPACK V5.7.3 (Jan 30, 2016), Info: +UMFPACK V5.7.4 (Feb 1, 2016), Info: matrix entry defined as: double complex Int (generic integer) defined as: SuiteSparse_long BLAS library used: Fortran BLAS. size of BLAS integer: 4 MATLAB: no. - CPU timer: none. + CPU timer: POSIX C clock_getttime ( ) routine. number of rows in matrix A: 5 number of columns in matrix A: 5 entries in matrix A: 12 @@ -1459,4 +1461,4 @@ maxnorm of residual: 4.88498e-15 umfpack_zl_demo complete. -Total time: 0.00 seconds (CPU time), 0.00 seconds (wallclock time) +Total time: 0.01 seconds (CPU time), 0.01 seconds (wallclock time) diff --git a/UMFPACK/Doc/ChangeLog b/UMFPACK/Doc/ChangeLog index 2bc006d36..38544841b 100644 --- a/UMFPACK/Doc/ChangeLog +++ b/UMFPACK/Doc/ChangeLog @@ -1,3 +1,7 @@ +Feb 1, 2016: version 5.7.4 + + * update to Makefiles + Jan 30, 2016: version 5.7.3 * better Makefiles for creating and installing shared libraries diff --git a/UMFPACK/Doc/UMFPACK_QuickStart.pdf b/UMFPACK/Doc/UMFPACK_QuickStart.pdf index ef9309c9c..d0d043e43 100644 Binary files a/UMFPACK/Doc/UMFPACK_QuickStart.pdf and b/UMFPACK/Doc/UMFPACK_QuickStart.pdf differ diff --git a/UMFPACK/Doc/UMFPACK_QuickStart.tex b/UMFPACK/Doc/UMFPACK_QuickStart.tex index d466dc129..82007d750 100644 --- a/UMFPACK/Doc/UMFPACK_QuickStart.tex +++ b/UMFPACK/Doc/UMFPACK_QuickStart.tex @@ -18,7 +18,7 @@ \author{Timothy A. Davis \\ DrTimothyAldenDavis@gmail.com, http://www.suitesparse.com} \title{UMFPACK Quick Start Guide} -\date{VERSION 5.7.3, Jan 30, 2016} +\date{VERSION 5.7.4, Feb 1, 2016} \maketitle %------------------------------------------------------------------------------- diff --git a/UMFPACK/Doc/UMFPACK_UserGuide.pdf b/UMFPACK/Doc/UMFPACK_UserGuide.pdf index 1ae568837..4f8226c93 100644 Binary files a/UMFPACK/Doc/UMFPACK_UserGuide.pdf and b/UMFPACK/Doc/UMFPACK_UserGuide.pdf differ diff --git a/UMFPACK/Doc/UMFPACK_UserGuide.stex b/UMFPACK/Doc/UMFPACK_UserGuide.stex index 06db83029..315f7d147 100644 --- a/UMFPACK/Doc/UMFPACK_UserGuide.stex +++ b/UMFPACK/Doc/UMFPACK_UserGuide.stex @@ -20,7 +20,7 @@ \author{Timothy A. Davis \\ DrTimothyAldenDavis@gmail.com, http://www.suitesparse.com} \title{UMFPACK User Guide} -\date{VERSION 5.7.3, Jan 30, 2016} +\date{VERSION 5.7.4, Feb 1, 2016} \maketitle %------------------------------------------------------------------------------- diff --git a/UMFPACK/Include/umfpack.h b/UMFPACK/Include/umfpack.h index 7357a9d12..3b9282e12 100644 --- a/UMFPACK/Include/umfpack.h +++ b/UMFPACK/Include/umfpack.h @@ -95,7 +95,7 @@ extern "C" { /* Version, copyright, and license */ /* -------------------------------------------------------------------------- */ -#define UMFPACK_VERSION "UMFPACK V5.7.3 (Jan 30, 2016)" +#define UMFPACK_VERSION "UMFPACK V5.7.4 (Feb 1, 2016)" #define UMFPACK_COPYRIGHT \ "UMFPACK: Copyright (c) 2005-2013 by Timothy A. Davis. All Rights Reserved.\n" @@ -161,11 +161,11 @@ extern "C" { * above. */ -#define UMFPACK_DATE "Jan 30, 2016" +#define UMFPACK_DATE "Feb 1, 2016" #define UMFPACK_VER_CODE(main,sub) ((main) * 1000 + (sub)) #define UMFPACK_MAIN_VERSION 5 #define UMFPACK_SUB_VERSION 7 -#define UMFPACK_SUBSUB_VERSION 3 +#define UMFPACK_SUBSUB_VERSION 4 #define UMFPACK_VER UMFPACK_VER_CODE(UMFPACK_MAIN_VERSION,UMFPACK_SUB_VERSION) /* -------------------------------------------------------------------------- */ diff --git a/UMFPACK/Lib/Makefile b/UMFPACK/Lib/Makefile index fed564807..776a630f3 100644 --- a/UMFPACK/Lib/Makefile +++ b/UMFPACK/Lib/Makefile @@ -3,21 +3,28 @@ #------------------------------------------------------------------------------- LIBRARY = libumfpack -VERSION = 5.7.3 +VERSION = 5.7.4 SO_VERSION = 5 default: library - $(MAKE) install INSTALL=$(CURDIR)/../.. \ - INSTALL_DOC=$(CURDIR)/../../doc include ../../SuiteSparse_config/SuiteSparse_config.mk +# UMFPACK depends on AMD, SuiteSparse_config, LAPACK, and the BLAS. +# It optionally relies on CHOLMOD +LDLIBS += -lamd -lsuitesparseconfig $(LAPACK) $(BLAS) + +# compile and install in SuiteSparse/lib +library: + $(MAKE) install INSTALL=$(SUITESPARSE) + # UMFPACK can use CHOLMOD by default as an ordering option ifneq (,$(findstring -DNCHOLMOD, $(UMFPACK_CONFIG))) I = -I../Include -I../Source -I../../AMD/Include -I../../SuiteSparse_config else I = -I../Include -I../Source -I../../AMD/Include \ -I../../SuiteSparse_config -I../../CHOLMOD/Include + LDLIBS += -lcholmod endif C = $(CC) $(CF) $(UMFPACK_CONFIG) $(I) @@ -261,17 +268,10 @@ umfpack_gn_%.o: ../Source/umfpack_%.c $(INC) OBJ = $(II) $(LL) $(GN) $(DI) $(DL) $(ZI) $(ZL) -library: $(AR_TARGET) $(SO_TARGET) - -so: $(SO_TARGET) - $(AR_TARGET): $(OBJ) $(ARCHIVE) $@ $^ - $(RANLIB) $@ -$(SO_TARGET): $(OBJ) - $(CC) $(SO_OPTS) $^ -o $@ - #------------------------------------------------------------------------------- # Remove all but the files in the original distribution #------------------------------------------------------------------------------- @@ -286,14 +286,13 @@ clean: #------------------------------------------------------------------------------- # install UMFPACK -install: $(INSTALL_LIB)/$(SO_TARGET) +install: $(AR_TARGET) $(INSTALL_LIB)/$(SO_TARGET) -$(INSTALL_LIB)/$(SO_TARGET): $(SO_TARGET) +$(INSTALL_LIB)/$(SO_TARGET): $(OBJ) @mkdir -p $(INSTALL_LIB) @mkdir -p $(INSTALL_INCLUDE) @mkdir -p $(INSTALL_DOC) - $(CP) $(SO_TARGET) $(INSTALL_LIB) - $(SO_INSTALL_NAME) $(INSTALL_LIB)/$(SO_TARGET) $(INSTALL_LIB)/$(SO_TARGET) + $(CC) $(SO_OPTS) $^ -o $@ $(LDLIBS) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_PLAIN) ) ( cd $(INSTALL_LIB) ; ln -sf $(SO_TARGET) $(SO_MAIN) ) $(CP) ../Include/umfpack*.h $(INSTALL_INCLUDE) diff --git a/UMFPACK/Makefile b/UMFPACK/Makefile index 158ba7935..e021d688d 100644 --- a/UMFPACK/Makefile +++ b/UMFPACK/Makefile @@ -2,7 +2,8 @@ # UMFPACK Makefile #------------------------------------------------------------------------------- -# UMFPACK requires the AMD package to be in ../AMD +SUITESPARSE ?= $(realpath $(CURDIR)/..) +export SUITESPARSE default: all @@ -62,7 +63,7 @@ lib: library # statement coverage (requires Linux; takes a lot of time and disk space) cov: purge - ( cd Tcov ; ./DO.all $(TCOV_TMP) ) + ( cd Tcov ; $(MAKE) ) # install UMFPACK install: diff --git a/UMFPACK/Tcov/Make.1 b/UMFPACK/Tcov/Make.1 index d6bb55de2..d03f67636 100644 --- a/UMFPACK/Tcov/Make.1 +++ b/UMFPACK/Tcov/Make.1 @@ -2,10 +2,17 @@ # no BLAS, test for integer overflow. #=============================================================================== +INSTALL ?= /garbage +INSTALL_LIB = $(INSTALL)/lib +INSTALL_INCLUDE = $(INSTALL)/include +INSTALL_DOC = $(INSTALL)/doc + CC = gcc CF = -O0 -g --coverage -fPIC -fopenmp +LDFLAGS = --coverage UMFPACK_CONFIG = -DNBLAS -DTEST_FOR_INTEGER_OVERFLOW -DTESTING -LDLIBS = -llapack -lrefblas -lgfortran -lm -lrt -Wl,-rpath=lib $(LIB2) +LDLIBS = -L$(INSTALL)/lib -llapack -lrefblas -lgfortran -lm -lrt \ + -Wl,-rpath=lib $(LIB2) -lgcov ifneq ($(CUDA),no) CUDA_PATH = $(shell which nvcc 2>/dev/null | sed "s/\/bin\/nvcc//") @@ -27,11 +34,6 @@ SO_TARGET = $(LIBRARY).so.$(VERSION) SO_OPTS = -shared -Wl,-soname -Wl,$(SO_MAIN) SO_INSTALL_NAME = echo -INSTALL ?= /garbage -INSTALL_LIB = $(INSTALL)/lib -INSTALL_INCLUDE = $(INSTALL)/include -INSTALL_DOC = $(INSTALL)/doc - #=============================================================================== CLEAN = *.o *.obj *.ln *.bb *.bbg *.da *.c.tcov *.c.gcov gmon.out diff --git a/UMFPACK/Tcov/Make.2 b/UMFPACK/Tcov/Make.2 index f5f2a9c84..cb8a21a6d 100644 --- a/UMFPACK/Tcov/Make.2 +++ b/UMFPACK/Tcov/Make.2 @@ -2,10 +2,17 @@ # BLAS, no test for integer overflow. #=============================================================================== +INSTALL ?= /garbage +INSTALL_LIB = $(INSTALL)/lib +INSTALL_INCLUDE = $(INSTALL)/include +INSTALL_DOC = $(INSTALL)/doc + CC = gcc CF = -O0 -g --coverage -fPIC -fopenmp +LDFLAGS = --coverage UMFPACK_CONFIG = -DTESTING -LDLIBS = -llapack -lrefblas -lgfortran -lm -lrt -Wl,-rpath=lib +LDLIBS = -L$(INSTALL)/lib -llapack -lrefblas -lgfortran -lm -lrt \ + -Wl,-rpath=lib -lgcov ifneq ($(CUDA),no) CUDA_PATH = $(shell which nvcc 2>/dev/null | sed "s/\/bin\/nvcc//") @@ -27,11 +34,6 @@ SO_TARGET = $(LIBRARY).so.$(VERSION) SO_OPTS = -shared -Wl,-soname -Wl,$(SO_MAIN) SO_INSTALL_NAME = echo -INSTALL ?= /garbage -INSTALL_LIB = $(INSTALL)/lib -INSTALL_INCLUDE = $(INSTALL)/include -INSTALL_DOC = $(INSTALL)/doc - #=============================================================================== CLEAN = *.o *.obj *.ln *.bb *.bbg *.da *.c.tcov *.c.gcov gmon.out diff --git a/UMFPACK/Tcov/Make.3 b/UMFPACK/Tcov/Make.3 index afcc652e8..4888f4149 100644 --- a/UMFPACK/Tcov/Make.3 +++ b/UMFPACK/Tcov/Make.3 @@ -2,10 +2,16 @@ # no BLAS, test for integer overflow. #=============================================================================== +INSTALL ?= /garbage +INSTALL_LIB = $(INSTALL)/lib +INSTALL_INCLUDE = $(INSTALL)/include +INSTALL_DOC = $(INSTALL)/doc + CC = gcc CF = -O3 -fPIC -fopenmp UMFPACK_CONFIG = -DNBLAS -DTEST_FOR_INTEGER_OVERFLOW -DTESTING -LDLIBS = -llapack -lrefblas -lgfortran -lm -lrt -Wl,-rpath=lib +LDLIBS = -L$(INSTALL)/lib -llapack -lrefblas -lgfortran -lm -lrt \ + -Wl,-rpath=lib ifneq ($(CUDA),no) CUDA_PATH = $(shell which nvcc 2>/dev/null | sed "s/\/bin\/nvcc//") @@ -27,11 +33,6 @@ SO_TARGET = $(LIBRARY).so.$(VERSION) SO_OPTS = -shared -Wl,-soname -Wl,$(SO_MAIN) SO_INSTALL_NAME = echo -INSTALL ?= /garbage -INSTALL_LIB = $(INSTALL)/lib -INSTALL_INCLUDE = $(INSTALL)/include -INSTALL_DOC = $(INSTALL)/doc - #=============================================================================== CLEAN = *.o *.obj *.ln *.bb *.bbg *.da *.c.tcov *.c.gcov gmon.out diff --git a/UMFPACK/Tcov/Make.4 b/UMFPACK/Tcov/Make.4 index 8baaf5f20..b97ffd792 100644 --- a/UMFPACK/Tcov/Make.4 +++ b/UMFPACK/Tcov/Make.4 @@ -2,10 +2,16 @@ # BLAS, no test for integer overflow. #=============================================================================== +INSTALL ?= /garbage +INSTALL_LIB = $(INSTALL)/lib +INSTALL_INCLUDE = $(INSTALL)/include +INSTALL_DOC = $(INSTALL)/doc + CC = gcc CF = -O3 -fPIC -fopenmp UMFPACK_CONFIG = -DTESTING -LDLIBS = -llapack -lrefblas -lgfortran -lm -lrt -Wl,-rpath=lib +LDLIBS = -L$(INSTALL)/lib -llapack -lrefblas -lgfortran -lm -lrt \ + -Wl,-rpath=lib ifneq ($(CUDA),no) CUDA_PATH = $(shell which nvcc 2>/dev/null | sed "s/\/bin\/nvcc//") @@ -27,11 +33,6 @@ SO_TARGET = $(LIBRARY).so.$(VERSION) SO_OPTS = -shared -Wl,-soname -Wl,$(SO_MAIN) SO_INSTALL_NAME = echo -INSTALL ?= /garbage -INSTALL_LIB = $(INSTALL)/lib -INSTALL_INCLUDE = $(INSTALL)/include -INSTALL_DOC = $(INSTALL)/doc - #=============================================================================== CLEAN = *.o *.obj *.ln *.bb *.bbg *.da *.c.tcov *.c.gcov gmon.out diff --git a/UMFPACK/Tcov/Make.5 b/UMFPACK/Tcov/Make.5 index 05de6d627..1774a0b08 100644 --- a/UMFPACK/Tcov/Make.5 +++ b/UMFPACK/Tcov/Make.5 @@ -2,10 +2,17 @@ # no BLAS, test for integer overflow. No reciprocal #=============================================================================== +INSTALL ?= /garbage +INSTALL_LIB = $(INSTALL)/lib +INSTALL_INCLUDE = $(INSTALL)/include +INSTALL_DOC = $(INSTALL)/doc + CC = gcc CF = -O0 -g --coverage -fPIC -fopenmp +LDFLAGS = --coverage UMFPACK_CONFIG = -DNBLAS -DTEST_FOR_INTEGER_OVERFLOW -DTESTING -DNRECIPROCAL -LDLIBS = -llapack -lrefblas -lgfortran -lm -lrt -Wl,-rpath=lib +LDLIBS = -L$(INSTALL)/lib -llapack -lrefblas -lgfortran -lm -lrt \ + -Wl,-rpath=lib -lgcov ifneq ($(CUDA),no) CUDA_PATH = $(shell which nvcc 2>/dev/null | sed "s/\/bin\/nvcc//") @@ -27,11 +34,6 @@ SO_TARGET = $(LIBRARY).so.$(VERSION) SO_OPTS = -shared -Wl,-soname -Wl,$(SO_MAIN) SO_INSTALL_NAME = echo -INSTALL ?= /garbage -INSTALL_LIB = $(INSTALL)/lib -INSTALL_INCLUDE = $(INSTALL)/include -INSTALL_DOC = $(INSTALL)/doc - #=============================================================================== CLEAN = *.o *.obj *.ln *.bb *.bbg *.da *.c.tcov *.c.gcov gmon.out diff --git a/UMFPACK/Tcov/Make.6 b/UMFPACK/Tcov/Make.6 index b0ccbe844..d73b3e5c5 100644 --- a/UMFPACK/Tcov/Make.6 +++ b/UMFPACK/Tcov/Make.6 @@ -2,10 +2,17 @@ # BLAS, no test for integer overflow. No timers #=============================================================================== +INSTALL ?= /garbage +INSTALL_LIB = $(INSTALL)/lib +INSTALL_INCLUDE = $(INSTALL)/include +INSTALL_DOC = $(INSTALL)/doc + CC = gcc CF = -O0 -g --coverage -fPIC -fopenmp +LDFLAGS = --coverage UMFPACK_CONFIG = -DTESTING -DNTIMER -LDLIBS = -llapack -lrefblas -lgfortran -lm -lrt -Wl,-rpath=lib +LDLIBS = -L$(INSTALL)/lib -llapack -lrefblas -lgfortran -lm -lrt \ + -Wl,-rpath=lib -lgcov ifneq ($(CUDA),no) CUDA_PATH = $(shell which nvcc 2>/dev/null | sed "s/\/bin\/nvcc//") @@ -27,11 +34,6 @@ SO_TARGET = $(LIBRARY).so.$(VERSION) SO_OPTS = -shared -Wl,-soname -Wl,$(SO_MAIN) SO_INSTALL_NAME = echo -INSTALL ?= /garbage -INSTALL_LIB = $(INSTALL)/lib -INSTALL_INCLUDE = $(INSTALL)/include -INSTALL_DOC = $(INSTALL)/doc - #=============================================================================== CLEAN = *.o *.obj *.ln *.bb *.bbg *.da *.c.tcov *.c.gcov gmon.out diff --git a/UMFPACK/Tcov/Make.7 b/UMFPACK/Tcov/Make.7 index 782727d4d..2f7ad3386 100644 --- a/UMFPACK/Tcov/Make.7 +++ b/UMFPACK/Tcov/Make.7 @@ -2,10 +2,17 @@ # no BLAS, test for integer overflow. No divide by zero. #=============================================================================== +INSTALL ?= /garbage +INSTALL_LIB = $(INSTALL)/lib +INSTALL_INCLUDE = $(INSTALL)/include +INSTALL_DOC = $(INSTALL)/doc + CC = gcc CF = -O0 -g --coverage -fPIC -fopenmp +LDFLAGS = --coverage UMFPACK_CONFIG = -DNBLAS -DTEST_FOR_INTEGER_OVERFLOW -DTESTING -DNO_DIVIDE_BY_ZERO -LDLIBS = -llapack -lrefblas -lgfortran -lm -lrt -Wl,-rpath=lib +LDLIBS = -L$(INSTALL)/lib -llapack -lrefblas -lgfortran -lm -lrt \ + -Wl,-rpath=lib -lgcov ifneq ($(CUDA),no) CUDA_PATH = $(shell which nvcc 2>/dev/null | sed "s/\/bin\/nvcc//") @@ -27,11 +34,6 @@ SO_TARGET = $(LIBRARY).so.$(VERSION) SO_OPTS = -shared -Wl,-soname -Wl,$(SO_MAIN) SO_INSTALL_NAME = echo -INSTALL ?= /garbage -INSTALL_LIB = $(INSTALL)/lib -INSTALL_INCLUDE = $(INSTALL)/include -INSTALL_DOC = $(INSTALL)/doc - #=============================================================================== CLEAN = *.o *.obj *.ln *.bb *.bbg *.da *.c.tcov *.c.gcov gmon.out diff --git a/UMFPACK/Tcov/Make.8 b/UMFPACK/Tcov/Make.8 index 3aba99e28..80e29fc53 100644 --- a/UMFPACK/Tcov/Make.8 +++ b/UMFPACK/Tcov/Make.8 @@ -2,10 +2,17 @@ # BLAS, no test for integer overflow. #=============================================================================== +INSTALL ?= /garbage +INSTALL_LIB = $(INSTALL)/lib +INSTALL_INCLUDE = $(INSTALL)/include +INSTALL_DOC = $(INSTALL)/doc + CC = gcc CF = -O0 -g --coverage -fPIC -fopenmp +LDFLAGS = --coverage UMFPACK_CONFIG = -DTESTING -DNO_DIVIDE_BY_ZERO -LDLIBS = -llapack -lrefblas -lgfortran -lm -lrt -Wl,-rpath=lib +LDLIBS = -L$(INSTALL)/lib -llapack -lrefblas -lgfortran -lm -lrt \ + -Wl,-rpath=lib -lgcov ifneq ($(CUDA),no) CUDA_PATH = $(shell which nvcc 2>/dev/null | sed "s/\/bin\/nvcc//") @@ -27,11 +34,6 @@ SO_TARGET = $(LIBRARY).so.$(VERSION) SO_OPTS = -shared -Wl,-soname -Wl,$(SO_MAIN) SO_INSTALL_NAME = echo -INSTALL ?= /garbage -INSTALL_LIB = $(INSTALL)/lib -INSTALL_INCLUDE = $(INSTALL)/include -INSTALL_DOC = $(INSTALL)/doc - #=============================================================================== CLEAN = *.o *.obj *.ln *.bb *.bbg *.da *.c.tcov *.c.gcov gmon.out diff --git a/UMFPACK/Tcov/Makefile b/UMFPACK/Tcov/Makefile index a8e3f41dc..b2bf9886f 100644 --- a/UMFPACK/Tcov/Makefile +++ b/UMFPACK/Tcov/Makefile @@ -6,6 +6,8 @@ include ../../SuiteSparse_config/SuiteSparse_config.mk linux: distclean # ( cd ../.. && $(MAKE) purge ) ( cd ../.. && $(MAKE) metis ) + ( cd ../../SuiteSparse_config && $(MAKE) TCOV=yes ) + ( cd ../../AMD && $(MAKE) TCOV=yes ) ( cd ../../CAMD && $(MAKE) TCOV=yes ) ( cd ../../COLAMD && $(MAKE) TCOV=yes ) ( cd ../../CCOLAMD && $(MAKE) TCOV=yes ) diff --git a/UMFPACK/Tcov/Makefile.di b/UMFPACK/Tcov/Makefile.di index db5aa980f..06eb9b668 100644 --- a/UMFPACK/Tcov/Makefile.di +++ b/UMFPACK/Tcov/Makefile.di @@ -17,12 +17,12 @@ run: prog prog: ( cd SuiteSparse_config ; $(MAKE) ) - ( cd UMFPACK ; $(MAKE) library ) ( cd AMD ; $(MAKE) library ) + ( cd UMFPACK ; $(MAKE) library ) $(CC) $(KIND) $(CF) $(UMFPACK_CONFIG) -IUMFPACK/Source -IAMD/Include \ -Iinclude -o ut ut.c UMFPACK/Lib/*.o \ SuiteSparse_config/*.o AMD/Lib/*.o \ - -Llib -lcholmod -lcolamd -lmetis -lccolamd -lcamd \ + -Llib -lcholmod -lcolamd -lmetis -lccolamd -lcamd -lsuitesparseconfig \ $(LDLIBS) utcov: diff --git a/UMFPACK/Tcov/Makefile.dl b/UMFPACK/Tcov/Makefile.dl index ab2e222b0..a89d0f512 100644 --- a/UMFPACK/Tcov/Makefile.dl +++ b/UMFPACK/Tcov/Makefile.dl @@ -17,12 +17,12 @@ run: prog prog: ( cd SuiteSparse_config ; $(MAKE) ) - ( cd UMFPACK ; $(MAKE) library ) ( cd AMD ; $(MAKE) library ) + ( cd UMFPACK ; $(MAKE) library ) $(CC) $(KIND) $(CF) $(UMFPACK_CONFIG) -IUMFPACK/Source -IAMD/Include \ -Iinclude -o ut ut.c UMFPACK/Lib/*.o \ SuiteSparse_config/*.o AMD/Lib/*.o \ - -Llib -lcholmod -lcolamd -lmetis -lccolamd -lcamd \ + -Llib -lcholmod -lcolamd -lmetis -lccolamd -lcamd -lsuitesparseconfig \ $(LDLIBS) utcov: diff --git a/UMFPACK/Tcov/Makefile.zi b/UMFPACK/Tcov/Makefile.zi index f4aadc2bb..c84e1d036 100644 --- a/UMFPACK/Tcov/Makefile.zi +++ b/UMFPACK/Tcov/Makefile.zi @@ -17,12 +17,12 @@ run: prog prog: ( cd SuiteSparse_config ; $(MAKE) ) - ( cd UMFPACK ; $(MAKE) library ) ( cd AMD ; $(MAKE) library ) + ( cd UMFPACK ; $(MAKE) library ) $(CC) $(KIND) $(CF) $(UMFPACK_CONFIG) -IUMFPACK/Source -IAMD/Include \ -Iinclude -o ut ut.c UMFPACK/Lib/*.o \ SuiteSparse_config/*.o AMD/Lib/*.o \ - -Llib -lcholmod -lcolamd -lmetis -lccolamd -lcamd \ + -Llib -lcholmod -lcolamd -lmetis -lccolamd -lcamd -lsuitesparseconfig \ $(LDLIBS) utcov: diff --git a/UMFPACK/Tcov/Makefile.zl b/UMFPACK/Tcov/Makefile.zl index 8fd679d8f..2bb54716f 100644 --- a/UMFPACK/Tcov/Makefile.zl +++ b/UMFPACK/Tcov/Makefile.zl @@ -17,12 +17,12 @@ run: prog prog: ( cd SuiteSparse_config ; $(MAKE) ) - ( cd UMFPACK ; $(MAKE) library ) ( cd AMD ; $(MAKE) library ) + ( cd UMFPACK ; $(MAKE) library ) $(CC) $(KIND) $(CF) $(UMFPACK_CONFIG) -IUMFPACK/Source -IAMD/Include \ -Iinclude -o ut ut.c UMFPACK/Lib/*.o \ SuiteSparse_config/*.o AMD/Lib/*.o \ - -Llib -lcholmod -lcolamd -lmetis -lccolamd -lcamd \ + -Llib -lcholmod -lcolamd -lmetis -lccolamd -lcamd -lsuitesparseconfig \ $(LDLIBS) utcov: diff --git a/doc/.gitignore b/doc/.gitignore deleted file mode 100644 index 5e7d2734c..000000000 --- a/doc/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -# Ignore everything in this directory -* -# Except this file -!.gitignore diff --git a/metis-5.1.0/README.txt b/metis-5.1.0/README.txt index ad795c4ff..a29199e9e 100644 --- a/metis-5.1.0/README.txt +++ b/metis-5.1.0/README.txt @@ -5,33 +5,36 @@ SuiteSparse can work with the unmodified version of METIS 5.1.0. These changes are optional, unless you want to use METIS in MATLAB. -(1) The integer type, idx_t, has been set to 64 bits -in metis-5.1.0 include/metis.h. This is the primary change. -If you compile SuiteSparse with the original METIS, it will -work but SuiteSparse will be unable to use METIS on the very -largest matrices. - -(2) with this change to 64 bit integers, a compiler warning -is generated in two files, regarding the use of abs and iabs. -These two files (balance.c and parmetis.c) have been modified -to avoid that warning. - -(3) modified the memory manager to use the MATLAB malloc, -calloc, realloc, and free equivalents when compiling METIS -for MATLAB (GKlib/GKlib.h). Disabled the internal signal -handling of METIS. Has no effect on the compiled -libmetis.so (libmetis.dylib on the Mac). This has no -effect on programs outside of MATLAB, but only when METIS -is used inside a MATLAB mexFunction. - -(4) modified many *.c and *.h files to remove C++ comments -of the form "//". These cause some C compilers to break -(in particular, the C compiler flags used by the MATLAB -mex command on Linux). +(1) In metis-5.1.0/include/metis.h, the default integer size has been changed + from 32 bits to 64 (IDXTYPEWIDTH). METIS 5.1.0 gives this flexility to the + user, asking the user to modify this file. That has been done here. You + may instead use the original METIS 5.1.0, with 32-bit integers. When + compiled, SuiteSparse will properly detect the size of the METIS idx_t, and + it will work gracefully with both versions. The only constraint is that + SuiteSparse will not be able to use METIS on the largest problems, if you + limit its version of METIS to 32-bit integers. + +(2) The files b64.c, rw.c, seq.c, timers.c, in metis-5.1.0/GKlib, and the files + coarsen.c, fm.c, macros.h, mcutil.c, mincon.c, ometis.c, in + metis-5.1.0/libmetis had C++ style comments (//) which break some C + compilers (the MATLAB mex command on Linux, in particular). They have been + removed. If your compiler is OK with //-style comments, then this fix + is optional. + +(3) The files metis-5.1.0/GKlib/GKLib.h and metis-5.1.0/GKlib/memory.c have + been modified to disable the signal-handing in METIS when used via the + MATLAB interface to METIS in CHOLMOD/MATLAB. These signals are used when + METIS runs out of memory, but they break MATLAB (you will get a segfault). + This change is essential if METIS is to be used in MATLAB. + +(4) The abs and iabs functions in the original metis-5.1.0/libmetis/parmetis.c + and metis-5.1.0/libmetis/balance.c give compiler warnings when IDXTYPEWIDTH + is 64, so they have been replaced with a type-agnostic macro, ABS. This is + just a compiler warning, so the fix is optional. See http://glaros.dtc.umn.edu/gkhome/metis/metis/overview for the primary distrubtion of METIS, by George Karypis University of Minnesota. -Tim Davis, Jan 30, 2016, Texas A&M University +Tim Davis, Feb 1, 2016, Texas A&M University diff --git a/metis-5.1.0/include/metis.h b/metis-5.1.0/include/metis.h index d6237aa69..a295fa925 100644 --- a/metis-5.1.0/include/metis.h +++ b/metis-5.1.0/include/metis.h @@ -7,24 +7,39 @@ \version\verbatim $Id$\endverbatim -------------------------------------------------------------------------------- -This file appears as SuiteSparse/metis-5.1.0/metis.h. This copy of metis-5.1.0 -is unchanged from the original distribution, with the exception of this file, -and minor modifications in libmetis/parmetis.c and libmetis/balance.c to -avoid a compiler warning. - -The default integer size has been changed from 32 bits to 64 (IDXTYPEWIDTH). -Modified by Tim Davis, Jan 11, 2016, for SuiteSparse 4.5.0 (and subsequent -versions). You may use the original METIS 5.1.0, with 32-bit integers. When -compiled, SuiteSparse will properly detect the size of the METIS idx_t, and it -will work with both versions. The only constraint is that SuiteSparse will not -be able to use METIS on the largest problems, if you limit its version of METIS -to 32-bit integers. - -The abs and iabs functions in the original libmetis/parmetis.c and -libmetis/balance.c give compiler warnings with this change, so they have been -replaced with a type-agnostic macro, ABS. - -Tim Davis, Jan 30, 2016, Texas A&M University +This file appears as SuiteSparse/metis-5.1.0/include/metis.h. This copy of +SuiteSparse/metis-5.1.0 is changed from the original metis-5.1.0 distribution: + +(1) In metis-5.1.0/include/metis.h, the default integer size has been changed + from 32 bits to 64 (IDXTYPEWIDTH). METIS 5.1.0 gives this flexility to the + user, asking the user to modify this file. That has been done here. You + may instead use the original METIS 5.1.0, with 32-bit integers. When + compiled, SuiteSparse will properly detect the size of the METIS idx_t, and + it will work gracefully with both versions. The only constraint is that + SuiteSparse will not be able to use METIS on the largest problems, if you + limit its version of METIS to 32-bit integers. + +(2) The files b64.c, rw.c, seq.c, timers.c, in metis-5.1.0/GKlib, and the files + coarsen.c, fm.c, macros.h, mcutil.c, mincon.c, ometis.c, in + metis-5.1.0/libmetis had C++ style comments (//) which break some C + compilers (the MATLAB mex command on Linux, in particular). They have been + removed. If your compiler is OK with //-style comments, then this fix + is optional. + +(3) The files metis-5.1.0/GKlib/GKLib.h and metis-5.1.0/GKlib/memory.c have + been modified to disable the signal-handing in METIS when used via the + MATLAB interface to METIS in CHOLMOD/MATLAB. These signals are used when + METIS runs out of memory, but they break MATLAB (you will get a segfault). + This change is essential if METIS is to be used in MATLAB. + +(4) The abs and iabs functions in the original metis-5.1.0/libmetis/parmetis.c + and metis-5.1.0/libmetis/balance.c give compiler warnings when IDXTYPEWIDTH + is 64, so they have been replaced with a type-agnostic macro, ABS. This is + just a compiler warning, so the fix is optional. + +If these changes do not affect you then you can use the original METIS 5.1.0. + +Tim Davis, Feb 1, 2016, Texas A&M University -------------------------------------------------------------------------------- */ diff --git a/share/.gitignore b/share/.gitignore new file mode 100644 index 000000000..b04cc4f1e --- /dev/null +++ b/share/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore