----------------------------------------------------------------- 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.