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