1June 30, 2020: no change to version number 2 3 * minor update to MATLAB tests: no change to compiled library, 4 so version number remains 3.0.14. 5 * replaced UFget with ssget in MATLAB tests 6 7Feb 20, 2020: version 3.0.14 8 9 * minor update to cholmod_check to print a matrix 10 11Dec 20, 2018: version 3.0.13 12 13 * bug fix to cholmod_core.h: so that a CUDA include file is properly 14 included in a C++ caller; also required for SPQR. 15 16Mar 12, 2018: version 3.0.12 17 18 * bug fix to cholmod_rowcolcounts.c (int overflow was possible) 19 20May 4, 2016: version 3.0.11 21 22 * minor changes to Makefile 23 24Apr 1, 2016: version 3.0.10 25 26 * licensing simplified (no other change); refer to CHOLMOD/Doc/License.txt 27 28Feb 1, 2016: version 3.0.9 29 30 * update to Makefiles 31 * minor change to CHOLMOD/Check/cholmod_write.c, when compiling with 32 certain modules disabled. 33 * more verbose error reporting 34 * Demos now compile with MatrixOps module disabled, but they don't 35 compute all residuals (requires the CHOLMOD/MatrixOps package) 36 37Jan 30, 2016: version 3.0.8 38 39 * better Makefiles for creating and installing shared libraries 40 * CHOLMOD now uses METIS 5.1.0, which is distributed with SuiteSparse 41 * correction to mexFunctions required for MATLAB R2015b, 42 for sparse empty matrices and NULL mxGetPr 43 44Jan 1, 2016: version 3.0.7 45 46 * modified Makefile to create shared libraries 47 No change to C code except version number 48 49July 14, 2015: version 3.0.6 50 51 * disabling of MatrixOps, Modify, and Supernodal modules didn't work 52 properly. 53 * added MATLAB interface for row add/delete (lurowmod mexFunction) 54 55Jan 19, 2015: version 3.0.5 56 57 * minor bug fix to cholmod_symmetry.c for the 'quick return' 58 (option == 0). 59 60Jan 7, 2015: version 3.0.4 61 62 * serious bug fix to supernodal factorization. The bug was introduced in 63 CHOLMOD v3.0.0 when the GPU acceleration was given a major update. 64 The bug can cause a segfault, whether or not the GPU is used. 65 66Oct 23, 2014: version 3.0.3 67 68 * minor fix for CHOLMOD/Supernodal/cholmod_super_symbolic.c (was using a 69 non-ANSI C method to declare and initialize a variable). 70 * added additional paper in CHOLMOD/Doc 71 72Oct 10, 2014: version 3.0.2 73 74 * changes to accomodate GPU-accelerated SPQR 75 * added CHOLMOD/Include/cholmod_function.h for backward compatibility 76 for function pointers (moved from Common to SuiteSparse_config, 77 as of v2.2.0) 78 79July 18, 2014: version 3.0.1 80 81 * minor correction to 3.0.0 Beta build process, to compile SPQR when 82 CHOLMOD is compiled on the GPU 83 * added cholmod_rowfac_mask2 function for LPDASA 84 * to test the GPU, use 'make big' in CHOLMOD/Demo. You will need to first 85 download the GHS_psdef/audikw_1.mtx from the UF collection: 86 http://www.cise.ufl.edu/research/sparse/matrices/GHS_psdef/audikw_1.html 87 88March 26, 2014: version 3.0.0 (beta) 89 90 * major update to GPU acceleration. Released at NVIDIA GTC 2014. 91 92July 31, 2013: version 2.2.0 93 94 * modified the CHOLMOD Common so that it is the same size regardless 95 of whether or not the GPU is used. 96 * changed malloc, printf, hypot, and divcomplex pointers to use 97 SuiteSparse_config. Removed CHOLMOD Common-> function pointers. 98 99Apr 25, 2013: version 2.1.2 100 101 * minor update for CHOLMOD/Cholesky/*solve*.c: 102 version 2.1.0 broke the Microsoft Visual C/C++ compiler 103 104Apr 16, 2013: version 2.1.1 105 106 * bug fix to Lib/Makefile and Demo/Makefile, to handle -DNCAMD correctly. 107 * changes to Supernodal/t_cholmod_gpu.c: to fix a GPU memory leak, 108 to fix the statistics on TRSM timing, and to reduce CPU-GPU memory 109 traffic. 110 * added cholmod_version function. 111 112Mar 27, 2013: version 2.1.0 113 114 * added the -DNCAMD option. Formerly, the -DNPARTITION option disabled 115 both METIS and the interface to CAMD, CCOLAMD, and CSYMAMD. 116 Now, -DNPARTITION controls just whether or not the interface to 117 METIS is compiled. The new -DNCAMD option controls whether or not 118 the interfaces to CAMD, CCOLAMD, and CSYMAMD are compiled. 119 Both features remain in the Partition Module, as in prior versions. 120 * added cholmod_lsolve_pattern and modified cholmod_row_lsubtree, 121 to compute nonzero pattern of L\b where b is sparse 122 * added cholmod_solve2 and cholmod_ensure_dense, so that repeated 123 forward/backsolves can be done without the need to malloc/free, 124 memory on each solve. Also provides the option for solving for 125 a subset of the solution vector x (via the Bset and Xset 126 parameters to cholmod_solve2). The last option required an IPerm 127 member to be added to the Cholesky factorization object. It is only 128 allocated and used if cholmod_solve2 solves with Bset. 129 130Jun 20, 2012: verison 2.0.1 131 132 * minor update for Windows (removed filesep, compiler port fix) 133 * minor changes to format of User Guide 134 * bug fix for GPU code (singular case) 135 136Jun 1, 2012: version 2.0.0 137 138 * changed from UFconfig to SuiteSparse_config 139 * added interface to CUDA BLAS 140 141Dec 7, 2011: version 1.7.4 142 143 * fixed the Makefile to better align with CFLAGS and other standards 144 * Makefile now detects whether or not METIS is present, and 145 sets -DNPARTITION if it is not 146 147Jan 25, 2011: version 1.7.3 148 149 * minor fix to "make install" 150 * minor change to Core/cholmod_memory.c, rename "I" which conflicts with 151 a predefined token in some compilers 152 153Nov 30, 2009: version 1.7.2 154 155 * added "make install" and "make uninstall" 156 * fixed interface to 64-bit BLAS for MATLAB 7.8 157 158Sept 30, 2008, version 1.7.1 159 160 * bug fix to cholmod_symmetry; it reported incorrectly if the matrix 161 had a zero-free diagonal or not. No effect on the use of CHOLMOD in 162 MATLAB. No effect on the mwrite function, either, which uses 163 cholmod_symmetry. Note that the number of nonzeros on the diagonal was 164 (and still is) correctly computed. Only effect is on the 165 UF_Index.cholcand statistic reported in the UFget index, and on the web 166 pages, for the UF Sparse Matrix Collection (the UF_Index.cholcand 167 field). This affects the output of spsym. 168 169Sept 20, 2008, version 1.7.0 170 171 * update for SuiteSparseQR: 172 173 - add SuiteSparseQR knobs and stats to CHOLMOD Common 174 - SuiteSparseQR uses CHOLMOD for its multifrontal symbolic analysis 175 - changed (char *) input parameters to (const char *), to avoid 176 spurious compiler warnings when C++ calls C. 177 - minor change to the AMD backup strategy in cholmod_analyze, to better 178 suit SuiteSparseQR 179 - modified cholmod_analyze and cholmod_super_symbolic, 180 to add "for_cholesky" parameter; new function cholmod_analyze_p2. 181 This parameter is false for SuiteSparseQR. 182 - minor correction to comments in cholmod_postorder.c 183 - performance enhancement to supernodal symbolic analysis, when 184 A or AA' is fairly dense 185 186Nov 1, 2007, version 1.6.0 187 188 * minor lint cleanup (no bugs) 189 190 * new CHOLMOD_CLEAR_FLAG macro, which speeds up the calls to 191 cholmod_clear_flag, avoiding the function call if not needed. Note 192 that this leads to untested lines in the Tcov test, but the lines of 193 the macro are tested in several places, just not everywhere it appers. 194 195 * port to MATLAB 7.5 (mex -lmwblas option now required for Linux) 196 197 * minor bug fix to cholmod_add.c to avoid potential Int overflow 198 199 * extra option added to cholmod2 mexFunction 200 201 * sparse2 mexFunction modified to ensure nnz(A) == nzmax(A) always holds 202 (It didn't in v1.5.0 if numerically zero entries were dropped in A). 203 204 * correction to Help comments for spsym function 205 206 * bug fix to cholmod_symmetry.c: determination of Hermitian vs non-Hermitian 207 matrices was incorrect if the diagonal was imaginary. 208 209 * performance fix for cholmod_nesdis.c and nesdis mexFunction 210 211May 31, 2007, version 1.5.0 212 213 * 64-bit MATLAB interface 214 215 * MATLAB interface back-ported to MATLAB 6.1. 216 217 * bug fix: solving Dx=b using a supernodal factorization, in 218 cholmod_l_solve, when sizeof(UF_long) > sizeof(BLAS integer) 219 220 * changes to Makefiles to reflect directory changes in COLAMD and CCOLAMD 221 v2.7.0 directory structure (CHOLMOD v1.5 requires v2.7.0 of those 222 two packages) 223 224 * update to Modify/cholmod_updown.c, to allow input vector R to be packed 225 or unpacked. 226 227 * bug fix to Tcov/huge.c test code, for 64-bit case (this has no effect 228 on the CHOLMOD library itself, just the test code) 229 230Dec 12, 2006, version 1.4.0 231 232 * added support for large files (larger than 2GB) 233 234 * minor MATLAB cleanup 235 236 * renamed MATLAB function from cholmod to cholmod2, to avoid filename clash 237 with itself (the built-in version of cholmod). 238 239Dec 2, 2006, version 1.3.0 240 241 * Major modification to cholmod_read.c; now fully supports all forms of the 242 Matrix Market format. Added cholmod_read_dense and cholmod_read_matrix 243 functions to cholmod_read.c. Major changes to mread MATLAB function. 244 Added Common->prefer_binary option for cholmod_read. 245 246 * Added cholmod_write.c (cholmod_write_sparse and cholmod_write_dense 247 functions). Added mwrite MATLAB function. 248 249 * Added 2nd output argument to sparse2 (Z, binary pattern of explicit 250 zero entries). 251 252 * Added the function cholmod_symmetry to the MatrixOps module. 253 Added spsym MATLAB function. 254 255 * 2nd argument to cholmod_triplet_to_sparse changed from int to size_t. 256 257 * minor correction to cholmod_analyze_ordering, cholmod_dense.c 258 259 * minor change to cholmod_rowfac.c, cholmod_solve.c, ... 260 to allow for easier testing. 261 262Sept 28, 2006, version 1.2.1 263 264 * bug fix to cholmod_matlab.c, when working with sparse INT64 matrices 265 in the "sparse2" function 266 267Aug 31, 2006, version 1.2 268 269 * Common->default_nesdis parameter and Common->called_nd statistic added. 270 Otherwise, no change to user interface. v1.2 is fully upward 271 compatible with v1.1 (even binary compatible). 272 273 * non-supernodal Lx=b and L'x=b solves simplified, slight increase in 274 performance. 275 276 * update/downdate performance improved. 277 278 * ordering options and output statistics added to MATLAB/cholmod 279 mexFunction. 280 281July 27, 2006, version 1.1.1 282 283 * bug fix for cholmod_rowfac_mask, for the complex case. Has no 284 effect on MATLAB. 285 286June 27, 2006: 287 288 * trivial changes to nested dissection code, and cholmod_read.c (for 289 debugging, and to add explicit typecasts so compilers don't complain). 290 291May, 2006: 292 293 * Added new routines for LPDASA: cholmod_rowfac_mask, cholmod_updown_mask. 294 Added cholmod_collapse_septree. Added nd_oksep, nd_components 295 parameters to Common. 296 297Apr 30, 2006: version 1.1 298 299 * added interface to CAMD. cholmod_nested_dissection can now call 300 CCOLAMD, CSYMAMD, and CAMD. Common->nd_camd usage extended. 301 New argument added to nesdis mexFunction. New cholmod_camd function 302 added. No other changes to CHOLMOD user interface. 303 304 * more careful integer overflow checks. Added non-user-callable functions 305 to add and multiply size_t integers, with overflow checks. 306 307 * added Common->no_workspace_reallocate 308 309 * flop count is now correct for A*A' case (Common->rowfacfl). 310 311Jan 18, 2006: version 1.0.2 312 313 * bug fix: MATLAB interface incorrect for full logical matrices. 314 315 * Tcov tests modified to generate fewer intentional nan's, to make it 316 easier to look for errors in BLAS libraries that incorrectly 317 generate nan's. 318 319Dec 16, 2005: version 1.0.1 320 321 * bug fix: cholmod_amd allocated too small of a workspace when ordering A*A' 322 323Dec 8, 2005: version 1.0 324 325 * no real changes. Version 1.0 is the same as version 0.8. Version 1.0 is 326 simply the formal stable release. 327 328 * known issue: the floating point operation count, Common->rowfacfl, is 329 statistic is incorrect when factorizing A*A'. This will be fixed in 330 version 1.1. 331 332Nov 15, 2005: version 0.8 333 334 * bug fix in t_cholmod_super_numeric, for [R,p]=chol(A) usage. 335 336 * Common->quick_return_if_not_posdef added. 337 338 * Added cholmod_row_lsubtree (required for LPDASA) 339 340 * bug fix: cholmod_rcond returned sqrt(1/cond) for an LL' factorization; 341 1/cond is required. 342 343 * new statistics added: flop counts for cholmod_rowfac, # of factor column 344 reallocations, # of factor reallocations due to column reallocations, 345 and # of times the (non-default) bounds on diag(L) are hit. 346 347 * factor column reallocation skipped if space already big enough. 348 349 * bug fix: cholmod_copy_factor did not copy L->is_monotonic. 350 351 * bug fix: cholmod_change_factor (diagonal entry was wrong in one case) 352 353 * rcond added to cholmod mexFunction ([x,rcond] = cholmod(A,b)). 354 355 * cholmod_rowadd, cholmod_rowdel modified. rowdel no longer removes 356 entries from the matrix; it sets them to zero instead. 357 358Oct 10, 2005: version 0.7 359 360 * minor changes: minor change to Check/cholmod_check.c (coerce 361 sizeof(...) to (int) when printing. Less strict check on A->p for 362 unpacked matrices) , removed a few unused variables in 363 Check/cholmod_read.c and Demo/cholmod*demo.c, changed "exit(0)" to 364 "return(0)" in Demo/cholmod_simple.c. Changed Makefile so that "." is 365 not assumed to be on the $path. Added Cygwin to architecture detection 366 in Include/cholmod_blas.h. Added cparent and cmember to nesdis.m. 367 Space for future expansion added to cholmod_common. 368 369 * removed "rowmark" from the Modify module, which affects how partial 370 updates to Lx=b solves are done during update/downdate. Should only 371 affect LPDASA. 372 373 * added CHOLMOD_SUBSUB_VERSION 374 375Aug 31, 2005: version 0.6 released. 376