Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CHOLMOD 5.1.0, ready for beta release #526

Merged
merged 92 commits into from
Nov 25, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
bfe5142
cholmod_check and cholmod_read: handle float
DrTimothyAldenDavis Nov 7, 2023
381d5df
CHOLMOD:Check, all methods drafted for single
DrTimothyAldenDavis Nov 7, 2023
8d4467b
comments
DrTimothyAldenDavis Nov 7, 2023
2b32f90
CHOLMOD:Cholesky: rcond, resymbol
DrTimothyAldenDavis Nov 7, 2023
255f6ba
CHOLMOD:Cholesky cleanup (solve methods not yet done)
DrTimothyAldenDavis Nov 8, 2023
c3b59c8
CHOLMOD:MatrixOps
DrTimothyAldenDavis Nov 9, 2023
5559c95
solve
DrTimothyAldenDavis Nov 9, 2023
20bdb57
CHOLMOD:Cholesky, spsolve
DrTimothyAldenDavis Nov 9, 2023
fc5f938
cleanup
DrTimothyAldenDavis Nov 9, 2023
b203b04
cleanup
DrTimothyAldenDavis Nov 9, 2023
1a1a8de
cleanup
DrTimothyAldenDavis Nov 9, 2023
aa8af7d
comments cleanup
DrTimothyAldenDavis Nov 9, 2023
21ea681
comments cleanup
DrTimothyAldenDavis Nov 9, 2023
cd27e7c
sdmult
DrTimothyAldenDavis Nov 10, 2023
447d7b8
vertcat
DrTimothyAldenDavis Nov 10, 2023
7eb16ef
comments
DrTimothyAldenDavis Nov 10, 2023
099c09e
testing
DrTimothyAldenDavis Nov 10, 2023
2e141c1
cholmod_symmetry
DrTimothyAldenDavis Nov 10, 2023
6400e0e
SuiteSparse_config: BLAS/LAPACK wrappers
DrTimothyAldenDavis Nov 10, 2023
a905787
CHOLMOD: Check, Partition
DrTimothyAldenDavis Nov 10, 2023
570bfac
supernodal factorization
DrTimothyAldenDavis Nov 10, 2023
5168955
supernodal solve
DrTimothyAldenDavis Nov 10, 2023
7322019
CHOLMOD:rowadd
DrTimothyAldenDavis Nov 10, 2023
f6db9cc
CHOLMOD update/downdate
DrTimothyAldenDavis Nov 11, 2023
bcbfa00
todo
DrTimothyAldenDavis Nov 11, 2023
dbb844a
CHOLMOD: cholmod_s_simple demo works
DrTimothyAldenDavis Nov 11, 2023
00e67e5
remove demo outout
DrTimothyAldenDavis Nov 11, 2023
7e9eb47
print solution in simple demo
DrTimothyAldenDavis Nov 11, 2023
c85fc68
CHOLMOD demo
DrTimothyAldenDavis Nov 11, 2023
e8731e1
readme
DrTimothyAldenDavis Nov 11, 2023
573ed66
turn off debug mode in CHOLMOD
DrTimothyAldenDavis Nov 11, 2023
dfc33e8
turn off debug
DrTimothyAldenDavis Nov 11, 2023
81707ec
demos
DrTimothyAldenDavis Nov 12, 2023
1b87334
demos and testing
DrTimothyAldenDavis Nov 12, 2023
54dca86
input/output designations
DrTimothyAldenDavis Nov 12, 2023
3186f47
Tcov
DrTimothyAldenDavis Nov 12, 2023
8045f66
testing
DrTimothyAldenDavis Nov 13, 2023
739cf8f
check
DrTimothyAldenDavis Nov 13, 2023
003a4b9
testing
DrTimothyAldenDavis Nov 14, 2023
ed048ab
syntax
DrTimothyAldenDavis Nov 14, 2023
6f6ce05
typo
DrTimothyAldenDavis Nov 14, 2023
c45f6c0
debug
DrTimothyAldenDavis Nov 14, 2023
09582ab
test coverage
DrTimothyAldenDavis Nov 14, 2023
6b33574
testing
DrTimothyAldenDavis Nov 14, 2023
cf90a44
test coverage: 1602 remain
DrTimothyAldenDavis Nov 15, 2023
de05d6f
cleanup
DrTimothyAldenDavis Nov 15, 2023
415c8df
testing
DrTimothyAldenDavis Nov 15, 2023
919de30
cleanup
DrTimothyAldenDavis Nov 15, 2023
a518df5
cleanup and todos
DrTimothyAldenDavis Nov 15, 2023
b5cd6d8
gotcha
DrTimothyAldenDavis Nov 15, 2023
f794810
cleanup
DrTimothyAldenDavis Nov 15, 2023
9ea4ef9
cleanup
DrTimothyAldenDavis Nov 15, 2023
9ad4f4c
overflow tests
DrTimothyAldenDavis Nov 15, 2023
f6e580d
better handling of size_t for workspace size
DrTimothyAldenDavis Nov 16, 2023
a4d4838
testing: cat, dense, dtype
DrTimothyAldenDavis Nov 16, 2023
4d00014
testing
DrTimothyAldenDavis Nov 16, 2023
a5d69d7
testing to/from conversions
DrTimothyAldenDavis Nov 16, 2023
b0f8415
.
DrTimothyAldenDavis Nov 16, 2023
b6ed7c9
bug fix: CHOLMOD/Supernodal, change p to pf
DrTimothyAldenDavis Nov 16, 2023
77613b8
disable development debug flag
DrTimothyAldenDavis Nov 16, 2023
6dd2c2f
better handling of integer overflow; more testing
DrTimothyAldenDavis Nov 17, 2023
d13933e
testing
DrTimothyAldenDavis Nov 17, 2023
8988af5
testing: band_nnz, and more
DrTimothyAldenDavis Nov 17, 2023
9f71cf9
testing
DrTimothyAldenDavis Nov 17, 2023
ebcae01
mode=2 option for cholmod_submatrix
DrTimothyAldenDavis Nov 18, 2023
230a236
add FLAME string; fix typo
DrTimothyAldenDavis Nov 19, 2023
71d818d
SuiteSparse_config tests
DrTimothyAldenDavis Nov 19, 2023
3e4198a
cholmod_descendant_score tests
DrTimothyAldenDavis Nov 19, 2023
4365108
submatrix tests
DrTimothyAldenDavis Nov 19, 2023
6d87646
.
DrTimothyAldenDavis Nov 19, 2023
34fa900
testing cholmod_solve
DrTimothyAldenDavis Nov 19, 2023
0998f87
solve2: Bset ignored for sys=P or Pt
DrTimothyAldenDavis Nov 19, 2023
2b8b9a6
README for v5.1
DrTimothyAldenDavis Nov 19, 2023
36e1d42
debug defn
DrTimothyAldenDavis Nov 19, 2023
4618c4e
supernodal with singular matrix
DrTimothyAldenDavis Nov 20, 2023
a85fd04
full test coverage
DrTimothyAldenDavis Nov 21, 2023
16882fb
test cleanup
DrTimothyAldenDavis Nov 21, 2023
63604e3
cleanup
DrTimothyAldenDavis Nov 21, 2023
73cdd1d
MATLAB interface working
DrTimothyAldenDavis Nov 21, 2023
8ca8c9e
draft MATLAB interface (just cholmod2)
DrTimothyAldenDavis Nov 22, 2023
57eed5c
revise demos, and cleanup
DrTimothyAldenDavis Nov 23, 2023
ec961d9
MATLAB interface, and tests
DrTimothyAldenDavis Nov 23, 2023
54dfe8c
demos
DrTimothyAldenDavis Nov 23, 2023
787a49e
cleanup
DrTimothyAldenDavis Nov 23, 2023
19fad18
set default to BLAS64 (temporarily)
DrTimothyAldenDavis Nov 23, 2023
1273ef4
BLAS benchmarks
DrTimothyAldenDavis Nov 24, 2023
b17d606
results
DrTimothyAldenDavis Nov 24, 2023
31728fc
cleanup: turn off blas_dump (see blasdev2 branch instead)
DrTimothyAldenDavis Nov 24, 2023
3de81d5
MATLAB interface cleanup
DrTimothyAldenDavis Nov 24, 2023
8a0bfa6
.
DrTimothyAldenDavis Nov 24, 2023
3223ee1
user guide
DrTimothyAldenDavis Nov 25, 2023
c62ea0f
set BLAS 32/64-bit option back to default
DrTimothyAldenDavis Nov 25, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions AMD/Source/amd_order.c
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,9 @@ int AMD_order
return (AMD_INVALID) ;
}

/* check if n or nz will cause size_t overflow */
if (((size_t) n) >= SIZE_T_MAX / sizeof (Int)
|| ((size_t) nz) >= SIZE_T_MAX / sizeof (Int))
/* check if n or nz will cause integer overflow */
if (((size_t) n) >= Int_MAX / sizeof (Int)
|| ((size_t) nz) >= Int_MAX / sizeof (Int))
{
if (info) Info [AMD_STATUS] = AMD_OUT_OF_MEMORY ;
return (AMD_OUT_OF_MEMORY) ; /* problem too large */
Expand Down
6 changes: 3 additions & 3 deletions CAMD/Source/camd_order.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,9 @@ int CAMD_order
return (CAMD_INVALID) ;
}

/* check if n or nz will cause size_t overflow */
if ((size_t) n >= SIZE_T_MAX / sizeof (Int)
|| (size_t) nz >= SIZE_T_MAX / sizeof (Int))
/* check if n or nz will cause integer overflow */
if (((size_t) n) >= Int_MAX / sizeof (Int)
|| ((size_t) nz) >= Int_MAX / sizeof (Int))
{
if (info) Info [CAMD_STATUS] = CAMD_OUT_OF_MEMORY ;
return (CAMD_OUT_OF_MEMORY) ; /* problem too large */
Expand Down
102 changes: 88 additions & 14 deletions CHOLMOD/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# SuiteSparse/CHOLMOD/CMakeLists.txt: cmake for CHOLMOD
#-------------------------------------------------------------------------------

# CHOLMOD: Copyright (c) 2005-2022, Timothy A. Davis.
# CHOLMOD: Copyright (c) 2005-2023, Timothy A. Davis.
# Copyright and license varies by module.

#-------------------------------------------------------------------------------
Expand All @@ -12,10 +12,10 @@
# cmake 3.22 is required to find the BLAS/LAPACK
cmake_minimum_required ( VERSION 3.22 )

set ( CHOLMOD_DATE "Oct 31, 2023" )
set ( CHOLMOD_DATE "Nov 30, 2023" )
set ( CHOLMOD_VERSION_MAJOR 5 )
set ( CHOLMOD_VERSION_MINOR 0 )
set ( CHOLMOD_VERSION_SUB 1 )
set ( CHOLMOD_VERSION_MINOR 1 )
set ( CHOLMOD_VERSION_SUB 0 )

message ( STATUS "Building CHOLMOD version: v"
${CHOLMOD_VERSION_MAJOR}.
Expand Down Expand Up @@ -616,9 +616,11 @@ endif ( )
# Demo library and programs
#-------------------------------------------------------------------------------

option ( DEMO "ON: Build the demo programs. OFF (default): do not build the demo programs." off )
option ( DEMO "ON: Build the demo programs. OFF (default): do not build the demo programs." on )
if ( DEMO )

enable_testing ( )

#---------------------------------------------------------------------------
# demo library
#---------------------------------------------------------------------------
Expand All @@ -629,9 +631,15 @@ if ( DEMO )
# Demo programs
#---------------------------------------------------------------------------

add_executable ( cholmod_demo "Demo/cholmod_demo.c" )
add_executable ( cholmod_l_demo "Demo/cholmod_l_demo.c" )
add_executable ( cholmod_simple "Demo/cholmod_simple.c" )
add_executable ( cholmod_di_demo "Demo/cholmod_di_demo.c" )
add_executable ( cholmod_dl_demo "Demo/cholmod_dl_demo.c" )
add_executable ( cholmod_si_demo "Demo/cholmod_si_demo.c" )
add_executable ( cholmod_sl_demo "Demo/cholmod_sl_demo.c" )

add_executable ( cholmod_di_simple "Demo/cholmod_di_simple.c" )
add_executable ( cholmod_dl_simple "Demo/cholmod_dl_simple.c" )
add_executable ( cholmod_si_simple "Demo/cholmod_si_simple.c" )
add_executable ( cholmod_sl_simple "Demo/cholmod_sl_simple.c" )

if ( NOT NFORTRAN )
add_executable ( readhb "Demo/readhb.f" )
Expand All @@ -640,18 +648,84 @@ if ( DEMO )
endif ( )

# Libraries required for Demo programs
target_link_libraries ( cholmod_demo PUBLIC CHOLMOD SuiteSparse::SuiteSparseConfig )
target_link_libraries ( cholmod_di_demo PUBLIC CHOLMOD SuiteSparse::SuiteSparseConfig )
if ( SUITESPARSE_CUDA )
target_link_libraries ( cholmod_di_demo PUBLIC CHOLMOD_CUDA )
endif ( )
target_link_libraries ( cholmod_si_demo PUBLIC CHOLMOD SuiteSparse::SuiteSparseConfig )
if ( SUITESPARSE_CUDA )
target_link_libraries ( cholmod_si_demo PUBLIC CHOLMOD_CUDA )
endif ( )
target_link_libraries ( cholmod_dl_demo PUBLIC CHOLMOD SuiteSparse::SuiteSparseConfig )
if ( SUITESPARSE_CUDA )
target_link_libraries ( cholmod_demo PUBLIC CHOLMOD_CUDA )
target_link_libraries ( cholmod_dl_demo PUBLIC CHOLMOD_CUDA )
endif ( )
target_link_libraries ( cholmod_l_demo PUBLIC CHOLMOD SuiteSparse::SuiteSparseConfig )
target_link_libraries ( cholmod_sl_demo PUBLIC CHOLMOD SuiteSparse::SuiteSparseConfig )
if ( SUITESPARSE_CUDA )
target_link_libraries ( cholmod_l_demo PUBLIC CHOLMOD_CUDA )
target_link_libraries ( cholmod_sl_demo PUBLIC CHOLMOD_CUDA )
endif ( )
target_link_libraries ( cholmod_simple PUBLIC CHOLMOD )

target_link_libraries ( cholmod_di_simple PUBLIC CHOLMOD SuiteSparse::SuiteSparseConfig )
if ( SUITESPARSE_CUDA )
target_link_libraries ( cholmod_di_simple PUBLIC CHOLMOD_CUDA )
endif ( )
target_link_libraries ( cholmod_si_simple PUBLIC CHOLMOD SuiteSparse::SuiteSparseConfig )
if ( SUITESPARSE_CUDA )
target_link_libraries ( cholmod_simple PUBLIC CHOLMOD_CUDA )
target_link_libraries ( cholmod_si_simple PUBLIC CHOLMOD_CUDA )
endif ( )
target_link_libraries ( cholmod_dl_simple PUBLIC CHOLMOD SuiteSparse::SuiteSparseConfig )
if ( SUITESPARSE_CUDA )
target_link_libraries ( cholmod_dl_simple PUBLIC CHOLMOD_CUDA )
endif ( )
target_link_libraries ( cholmod_sl_simple PUBLIC CHOLMOD SuiteSparse::SuiteSparseConfig )
if ( SUITESPARSE_CUDA )
target_link_libraries ( cholmod_sl_simple PUBLIC CHOLMOD_CUDA )
endif ( )

add_test ( NAME int32_double_bcsstk01
COMMAND cholmod_di_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/bcsstk01.tri )
add_test ( NAME int64_double_bcsstk01
COMMAND cholmod_dl_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/bcsstk01.tri )
add_test ( NAME int32_single_bcsstk01
COMMAND cholmod_si_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/bcsstk01.tri )
add_test ( NAME int64_single_bcsstk01
COMMAND cholmod_sl_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/bcsstk01.tri )

add_test ( NAME int32_double_lp_afiro
COMMAND cholmod_di_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/lp_afiro.tri )
add_test ( NAME int64_double_lp_afiro
COMMAND cholmod_dl_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/lp_afiro.tri )
add_test ( NAME int32_single_lp_afiro
COMMAND cholmod_si_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/lp_afiro.tri )
add_test ( NAME int64_single_lp_afiro
COMMAND cholmod_sl_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/lp_afiro.tri )

add_test ( NAME int32_double_can24
COMMAND cholmod_di_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/can___24.mtx )
add_test ( NAME int64_double_can24
COMMAND cholmod_dl_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/can___24.mtx )
add_test ( NAME int32_single_can24
COMMAND cholmod_si_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/can___24.mtx )
add_test ( NAME int64_single_can24
COMMAND cholmod_sl_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/can___24.mtx )

add_test ( NAME int32_double_complex
COMMAND cholmod_di_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/c.tri )
add_test ( NAME int64_double_complex
COMMAND cholmod_dl_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/c.tri )
add_test ( NAME int32_single_complex
COMMAND cholmod_si_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/c.tri )
add_test ( NAME int64_single_complex
COMMAND cholmod_sl_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/c.tri )

add_test ( NAME int32_double_supernodal
COMMAND cholmod_di_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/bcsstk02.tri )
add_test ( NAME int64_double_supernodal
COMMAND cholmod_dl_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/bcsstk02.tri )
add_test ( NAME int32_single_supernodal
COMMAND cholmod_si_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/bcsstk02.tri )
add_test ( NAME int64_single_supernodal
COMMAND cholmod_sl_demo ${CMAKE_SOURCE_DIR}/Demo/Matrix/bcsstk02.tri )

else ( )

Expand Down
Loading