Skip to content

Commit

Permalink
v2.4.0
Browse files Browse the repository at this point in the history
  • Loading branch information
DrTimothyAldenDavis committed Oct 19, 2019
1 parent 1e14dcd commit 3453475
Show file tree
Hide file tree
Showing 439 changed files with 5,721 additions and 32,751 deletions.
4 changes: 2 additions & 2 deletions AMD/Demo/amd_demo.out
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
AMD version 2.0, date: Nov 29, 2006
AMD version 2.0, date: Dec 12, 2006
AMD demo, with the 24-by-24 Harwell/Boeing matrix, can_24:

amd version 2.0, Nov 29, 2006: approximate minimum degree ordering:
amd version 2.0, Dec 12, 2006: 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)
Expand Down
2 changes: 1 addition & 1 deletion AMD/Demo/amd_demo2.out
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
AMD demo, with a jumbled version of the 24-by-24
Harwell/Boeing matrix, can_24:

amd version 2.0, Nov 29, 2006: approximate minimum degree ordering:
amd version 2.0, Dec 12, 2006: 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)
Expand Down
4 changes: 2 additions & 2 deletions AMD/Demo/amd_l_demo.out
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
AMD version 2.0, date: Nov 29, 2006
AMD version 2.0, date: Dec 12, 2006
AMD demo, with the 24-by-24 Harwell/Boeing matrix, can_24:

amd version 2.0, Nov 29, 2006: approximate minimum degree ordering:
amd version 2.0, Dec 12, 2006: 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)
Expand Down
Binary file modified AMD/Doc/AMD_UserGuide.pdf
Binary file not shown.
6 changes: 3 additions & 3 deletions AMD/Doc/AMD_UserGuide.tex
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
This work was supported by the EPSRC under grant GR/R46441.
}}

\date{Nov 29, 2006}
\date{Dec 12, 2006}
\maketitle

%------------------------------------------------------------------------------
Expand Down Expand Up @@ -1176,11 +1176,11 @@ \section{The AMD routines}
* Versions 1.1 and earlier of AMD do not include a #define'd version number.
*/
#define AMD_DATE "Nov 29, 2006"
#define AMD_DATE "Dec 12, 2006"
#define AMD_VERSION_CODE(main,sub) ((main) * 1000 + (sub))
#define AMD_MAIN_VERSION 2
#define AMD_SUB_VERSION 0
#define AMD_SUBSUB_VERSION 3
#define AMD_SUBSUB_VERSION 4
#define AMD_VERSION AMD_VERSION_CODE(AMD_MAIN_VERSION,AMD_SUB_VERSION)
#ifdef __cplusplus
Expand Down
4 changes: 4 additions & 0 deletions AMD/Doc/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
Dec 12, 2006, version 2.0.4

* minor MATLAB code cleanup

Nov 29, 2006, version 2.0.3

* changed MATLAB function name to amd2, so as not to conflict with
Expand Down
4 changes: 2 additions & 2 deletions AMD/Include/amd.h
Original file line number Diff line number Diff line change
Expand Up @@ -398,11 +398,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 "Nov 29, 2006"
#define AMD_DATE "Dec 12, 2006"
#define AMD_VERSION_CODE(main,sub) ((main) * 1000 + (sub))
#define AMD_MAIN_VERSION 2
#define AMD_SUB_VERSION 0
#define AMD_SUBSUB_VERSION 3
#define AMD_SUBSUB_VERSION 4
#define AMD_VERSION AMD_VERSION_CODE(AMD_MAIN_VERSION,AMD_SUB_VERSION)

#ifdef __cplusplus
Expand Down
10 changes: 6 additions & 4 deletions AMD/MATLAB/Contents.m
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
%Contents of the AMD sparse matrix ordering package:
%
% amd2 p = amd2 (A), the approximate minimum degree ordering of A
% amd_demo a demo of amd2, using the can_24 matrix
% amd_make to compile amd2 for use in MATLAB
% can_24.mat a sample sparse matrix from the Harwell/Boeing collection
% amd2 - p = amd2 (A), the approximate minimum degree ordering of A
% amd_demo - a demo of amd2, using the can_24 matrix
% amd_make - to compile amd2 for use in MATLAB
%
% See also: amd, amd2, colamd, symamd, colmmd, symmmd, umfpack
%
% Note that amd2 and the built-in amd function in MATLAB 7.3 and later are one
% and the same.
%
% Example:
% p = amd2 (A) ;
%
% --------------------------------------------------------------------------
% AMD Version 2.0, Copyright (c) 2006 by Timothy A. Davis,
% Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License.
Expand Down
4 changes: 2 additions & 2 deletions AMD/MATLAB/amd2.m
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
function [p, Info] = amd2 (A, Control) %#ok
%AMD2 Approximate minimum degree permutation.
%AMD2 p = amd2 (A), the approximate minimum degree ordering of A
% P = AMD2 (S) returns the approximate minimum degree permutation vector for
% the sparse matrix C = S+S'. The Cholesky factorization of C (P,P), or
% S (P,P), tends to be sparser than that of C or S. AMD tends to be faster
Expand Down Expand Up @@ -64,7 +64,7 @@
% See also AMD, COLMMD, COLAMD, COLPERM, SYMAMD, SYMMMD, SYMRCM.

% --------------------------------------------------------------------------
% AMD Version 2.0, Copyright (c) 2006 by Timothy A. Davis,
% Copyright 2006 by Timothy A. Davis,
% Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License.
% email: davis at cise.ufl.edu CISE Department, Univ. of Florida.
% web: http://www.cise.ufl.edu/research/sparse/amd
Expand Down
11 changes: 7 additions & 4 deletions AMD/MATLAB/amd_demo.m
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
function amd_demo
% AMD DEMO
%AMD_DEMO a demo of amd2, using the can_24 matrix
%
% A demo of AMD for MATLAB.
%
% Example:
% amd_demo
%
% --------------------------------------------------------------------------
% AMD Version 2.0, Copyright (c) 2006 by Timothy A. Davis,
% Copyright 2006 by Timothy A. Davis,
% Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License.
% email: davis at cise.ufl.edu CISE Department, Univ. of Florida.
% web: http://www.cise.ufl.edu/research/sparse/amd
Expand Down Expand Up @@ -38,7 +41,7 @@
% order the matrix. Note that the Info argument is optional.
fprintf ('\nIf the next step fails, then you have\n') ;
fprintf ('not yet compiled the AMD mexFunction.\n') ;
[p, Info] = amd2 (A) ;
[p, Info] = amd2 (A) ; %#ok

% order again, but this time print some statistics
[p, Info] = amd2 (A, [10 1 1]) ;
Expand Down Expand Up @@ -78,7 +81,7 @@
fprintf ('number of nonzeros in L (including diagonal): %d\n', lnz2) ;
fprintf ('floating point operation count for chol (A (p,p)): %d\n\n', fl2) ;

if (lnz2 ~= lnz | fl ~= fl2)
if (lnz2 ~= lnz || fl ~= fl2)
fprintf ('Note that the nonzero and flop counts from AMD are slight\n') ;
fprintf ('upper bounds. This is due to the approximate minimum degree\n');
fprintf ('method used, in conjunction with "mass elimination".\n') ;
Expand Down
89 changes: 61 additions & 28 deletions AMD/MATLAB/amd_demo.m.out
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@

amd_demo
AMD Approximate minimum degree permutation.
P = AMD (S) returns the approximate minimum degree permutation vector for
AMD2 p = amd2 (A), the approximate minimum degree ordering of A
P = AMD2 (S) returns the approximate minimum degree permutation vector for
the sparse matrix C = S+S'. The Cholesky factorization of C (P,P), or
S (P,P), tends to be sparser than that of C or S. AMD tends to be faster
than SYMMMD and SYMAMD, and tends to return better orderings than SYMMMD.
S must be square. If S is full, amd(S) is equivalent to amd(sparse(S)).

Usage: P = amd (S) ; % finds the ordering
[P, Info] = amd (S, Control) ; % optional parameters & statistics
Control = amd ; % returns default parameters
amd ; % prints default parameters.
Note that the built-in AMD routine in MATLAB is identical to AMD2,
except that AMD in MATLAB allows for a struct input to set the parameters.

Usage: P = amd2 (S) ; % finds the ordering
[P, Info] = amd2 (S, Control) ; % optional parameters & statistics
Control = amd2 ; % returns default parameters
amd2 ; % prints default parameters.

Control (1); If S is n-by-n, then rows/columns with more than
max (16, (Control (1))* sqrt(n)) entries in S+S' are considered
Expand Down Expand Up @@ -50,32 +52,22 @@ amd_demo
of the approximate degree update used, and because "dense" rows/columns
do not take part in the post-order. It well-suited for a subsequent
"chol", however. If you require a precise elimination tree post-ordering,
then do:
then see the example below:

Example:

P = amd (S) ;
P = amd2 (S) ;
C = spones (S) + spones (S') ; % skip this if S already symmetric
[ignore, Q] = sparsfun ('symetree', C (P,P)) ;
[ignore, Q] = etree (C (P,P)) ;
P = P (Q) ;

--------------------------------------------------------------------------
AMD Version 2.0, Copyright (c) 2006 by Timothy A. Davis,
Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License.
email: davis at cise.ufl.edu CISE Department, Univ. of Florida.
web: http://www.cise.ufl.edu/research/sparse/amd
--------------------------------------------------------------------------

Acknowledgements: This work was supported by the National Science
Foundation, under grants ASC-9111263, DMS-9223088, and CCR-0203270.

See also COLMMD, COLAMD, COLPERM, SYMAMD, SYMMMD, SYMRCM.


See also AMD, COLMMD, COLAMD, COLPERM, SYMAMD, SYMMMD, SYMRCM.


If the next step fails, then you have
not yet compiled the AMD mexFunction.

amd version 2.0, May 5, 2006: approximate minimum degree ordering:
amd version 2.0, Dec 12, 2006: 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)
Expand Down Expand Up @@ -117,10 +109,51 @@ Permutation vector:
23 21 11 24 13 6 17 9 15 5 16 8 2 10 14 18 1 3 4 7 12 19 22 20

Analyze A(p,p) with MATLAB's symbfact routine:
predicted nonzeros: 120
predicted flops: 656
predicted height: 16
predicted front size: 7

CHOLMOD version 1.1.0, May 5, 2006: : status: OK
Architecture: Linux
sizeof(int): 4
sizeof(UF_long): 4
sizeof(void *): 4
sizeof(double): 8
sizeof(Int): 4 (CHOLMOD's basic integer)
sizeof(BLAS_INT): 4 (integer used in the BLAS)
Results from most recent analysis:
Cholesky flop count: 656
Nonzeros in L: 120
memory blocks in use: 3
memory in use (MB): 0.0
peak memory usage (MB): 0.0
maxrank: update/downdate rank: 8
supernodal control: 1 40 (supernodal if flops/lnz >= 40)
nmethods=0: default strategy: Try user permutation if given. Try AMD.
Select best ordering tried.
method 0: user permutation (if given)
method 1: AMD (or COLAMD if factorizing AA')
prune_dense: for pruning dense nodes: 10
a dense node has degree >= max(16,(10)*sqrt(n))
OK

CHOLMOD version 1.1.0, May 5, 2006: : status: OK
Architecture: Linux
sizeof(int): 4
sizeof(UF_long): 4
sizeof(void *): 4
sizeof(double): 8
sizeof(Int): 4 (CHOLMOD's basic integer)
sizeof(BLAS_INT): 4 (integer used in the BLAS)
memory blocks in use: 0
memory in use (MB): 0.0
peak memory usage (MB): 0.0
maxrank: update/downdate rank: 8
supernodal control: 1 40 (supernodal if flops/lnz >= 40)
nmethods=0: default strategy: Try user permutation if given. Try AMD.
Select best ordering tried.
method 0: user permutation (if given)
method 1: AMD (or COLAMD if factorizing AA')
prune_dense: for pruning dense nodes: 10
a dense node has degree >= max(16,(10)*sqrt(n))
OK
number of nonzeros in L (including diagonal): 120
floating point operation count for chol (A (p,p)): 656

Expand Down
9 changes: 7 additions & 2 deletions AMD/MATLAB/amd_make.m
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
function amd_make
% AMD_MAKE: compiles the AMD mexFunction for MATLAB
%AMD_MAKE to compile amd2 for use in MATLAB
%
% Example:
% amd_make
%
% See also amd, amd2.
%
% --------------------------------------------------------------------------
% AMD Version 2.0, Copyright (c) 2006 by Timothy A. Davis,
% Copyright 2006 by Timothy A. Davis,
% Patrick R. Amestoy, and Iain S. Duff. See ../README.txt for License.
% email: davis at cise.ufl.edu CISE Department, Univ. of Florida.
% web: http://www.cise.ufl.edu/research/sparse/amd
Expand Down
4 changes: 4 additions & 0 deletions BTF/Doc/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
Dec 12, 2006: version 0.11

* minor MATLAB cleanup

Apr 30, 2006:

* minor editing of comments. dmperm.c moved to MATLAB directory, since
Expand Down
4 changes: 2 additions & 2 deletions BTF/Include/btf.h
Original file line number Diff line number Diff line change
Expand Up @@ -206,10 +206,10 @@ int btf_order /* returns number of blocks found */
* #endif
*/

#define BTF_DATE "May 5, 2006"
#define BTF_DATE "Dec 12, 2006"
#define BTF_VERSION_CODE(main,sub) ((main) * 1000 + (sub))
#define BTF_MAIN_VERSION 0
#define BTF_SUB_VERSION 9
#define BTF_SUB_VERSION 11
#define BTF_VERSION BTF_VERSION_CODE(BTF_MAIN_VERSION,BTF_SUB_VERSION)

#ifdef __cplusplus
Expand Down
21 changes: 21 additions & 0 deletions BTF/MATLAB/Contents.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
% BTF ordering toolbox, including test codes
%
% Primary functions:
%
% maxtrans - finds a permutation of the columns of a sparse matrix
% strongcomp - Find a symmetric permutation to upper block triangular form.
%
% helper and test functions:
%
% checkbtf - ensure A(p,q) is in BTF form
% drawbtf - plot the BTF form of a matrix
% td - test script for BTF
% toobig - list of matrices that are too big for dmperm
% trav - exhaustive test script for BTF
% dp - dmperm on a sparse matrix
%
% Example:
% Match = maxtrans (A)
% [p,q,r] = strongcomp (A)

% Copyright 2006, Timothy A. Davis, University of Florida
File renamed without changes.
18 changes: 10 additions & 8 deletions BTF/MATLAB/checkbtf.m
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
function checkbtf (A, p, q, r)
% checkbtf (A, p, q, r)
%CHECKBTF ensure A(p,q) is in BTF form
%
% A(p,q) is in BTF form, r the block boundaries
%
% [p,q,r] = dmperm (A) for example
% Example:
% [p,q,r] = dmperm (A)
% checkbtf (A, p, q, r)
%
% See also drawbtf, maxtrans, strongcomp.

% Copyright 2006, Timothy A. Davis, University of Florida

[m n] = size (A) ;
if (m ~= n)
Expand All @@ -21,24 +27,20 @@ function checkbtf (A, p, q, r)
nblocks = length (r) - 1 ;

if (r (1) ~= 1)
r
error ('r(1) not one') ;
end

if (r (end) ~= n+1)
r
error ('r(end) not n+1') ;
end

if (nblocks < 1 | nblocks > n)
nblocks
n
if (nblocks < 1 || nblocks > n)
error ('nblocks wrong') ;
end

nblocks = length (r) - 1 ;
rdiff = r (2:(nblocks+1)) - r (1:nblocks) ;
if (any (rdiff < 1) | any (rdiff > n))
if (any (rdiff < 1) || any (rdiff > n))
error ('r bad')
end

9 changes: 9 additions & 0 deletions BTF/MATLAB/dp.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
function [p,q,cp,ssize] = dp (A) %#ok
%DP dmperm on a sparse matrix
% Example:
% [p,q,cp,ssize] = dp (A)
% See also dmperm, strongcomp, maxtrans

% Copyright 2006, Timothy A. Davis, University of Florida

error ('dp mexFunction not found') ;
10 changes: 8 additions & 2 deletions BTF/MATLAB/drawbtf.m
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
function drawbtf (A, p, q, r)
% drawbtf (A, p, q, r)
%DRAWBTF plot the BTF form of a matrix
%
% A(p,q) is in BTF form, r the block boundaries
%
% [p,q,r] = dmperm (A) for example
% Example:
% [p,q,r] = dmperm (A)
% drawbtf (A, p, q, r)
%
% See also checkbtf, maxtrans, strongcomp.

% Copyright 2006, Timothy A. Davis, University of Florida

nblocks = length (r) - 1 ;

Expand Down
Loading

0 comments on commit 3453475

Please sign in to comment.