-----------------------------------------------------------------
Contents
-----------------------------------------------------------------
(1) Introduction
(2) Requirements
(3) Installation
(4) Using the Matlab interface
(5) Output information
-----------------------------------------------------------------
1. Introduction
-----------------------------------------------------------------
hsl_mc73_order and hsl_mc73_fiedler provide the interfaces.
hsl_mc73_order gives three possible orders that are chosen by
specifying the value of job. In output hsl_mc73_order can return
two vectors perm and info (optional) . The third optional input
parameter W is a sparse matrix with the same pattern of A.
If present, in the computation the spectral ordering the Fiedler
vector of the weighted Laplacian of A is computed.
Only the absolute values of the entries of W are used.
The possible values for job are:
1 (Multilevel Sloan algorithm)
2 (Multilevel spectral ordering algorithm)
3 (Hybrid algorithm that refines the multilevel spectral ordering)
hsl_mc73_fiedler computes the approximate Fiedler vector without
sorting. If the adjacency graph has more than one component,
the approximate Fiedler vector for each component is computed and
the resulting Fiedler vectors agglomerated in the output arrays
fvector and list. If a component consists of a single vertex, it is
assigned a value 0 in the returned Fiedler vector. As for
hsl_mc73_order, the optional input parameter W is a sparse
matrix with the same pattern of A. If present, in the computation
the spectral ordering the Fiedler vector of the weighted Laplacian
of A is computed.
Only the absolute values of the entries of W are used.
-----------------------------------------------------------------
2. Requirements
-----------------------------------------------------------------
These instructions should work on Linux, Mac OS or Windows systems.
They have been tested using the six most recent releases of Matlab.
Please note that HSL software requires a Fortran compiler to be installed
that is compatible with Matlab. Please see
https://uk.mathworks.com/support/requirements/supported-compilers.html
and look up the requirements for your OS and version of Matlab.
The MATLAB environment variable must point to your system Matlab directory
(see INSTALL for further details)
-----------------------------------------------------------------
3. Installation
-----------------------------------------------------------------
Instructions for installing can be found in the file INSTALL.
-----------------------------------------------------------------
4. Using the Matlab interfaces
-----------------------------------------------------------------
HSL_MC73_ORDER
Call sequences
[perm, info] = hsl_mc73_order(A,job,W)
A input matrix
job select algorithm (optional):
job = 1 Multilevel Sloan algorithm,(default)
job = 2 Multilevel spectral ordering algorithm.
job = 3 Hybrid algorithm
W sparse matrix with the same pattern of A holding weights
(optional)
perm new ordering
info is a 1x1 structure (optional):
info.error: Negative values indicate an error
and positive values a warning.
They are printed when they occur.
info.components: holds the number of non-trivial
components (components with more
than one vertex) in the adjacency
graph of A.
info.rinfo: holds informations about wavefront,
semi-bandwith, and root mean square
wavefront (see hsl_mc73 spec).
If job = 1 the matrix W is not accessed.
For job=2 and job =3 weights can be used.
HSL_MC73_FIEDLER
Call sequences
[fvector, list, info] = hsl_mc73_fiedler(A,W)
A input matrix
W sparse matrix with the same pattern of A holding weights
(optional)
fvector is an array of size N (N order of A) that holds the
Fiedler vector of A. If the adjacency graph of A
has more than one component (see info(2)), the
Fiedler vector for each component is computed and
the resulting vectors agglomerated in fvector.
If a component consists of a single vertex, the
corresponding variable is assigned a value 0
in FVECTOR.
list is an array and size N. The number of the
component within the adjacency graph of A that
variable I belongs to is list(I), I = 1, ..., N.
If a component consists of a single vertex, the
corresponding entry in list is assigned a value 0.
info is a 1x1 structure (optional):
info.error: Negative values indicate an error
and positive values a warning.
They are printed when they occur.
info.components: holds the number of non-trivial
components (components with more
than one vertex) in the adjacency
graph of A.