GNU Octave  3.8.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Macros | Functions
dmperm.cc File Reference
#include "defun-dld.h"
#include "error.h"
#include "gripes.h"
#include "oct-obj.h"
#include "utils.h"
#include "oct-sparse.h"
#include "ov-re-sparse.h"
#include "ov-cx-sparse.h"
#include "SparseQR.h"
#include "SparseCmplxQR.h"
Include dependency graph for dmperm.cc:

Go to the source code of this file.

Macros

#define CXSPARSE_NAME(name)   cs_di ## name

Functions

 DEFUN_DLD (dmperm, args, nargout,"-*- texinfo -*-\n\ @deftypefn {Loadable Function} {@var{p} =} dmperm (@var{S})\n\ @deftypefnx {Loadable Function} {[@var{p}, @var{q}, @var{r}, @var{S}] =} dmperm (@var{S})\n\ \n\ @cindex Dulmage-Mendelsohn decomposition\n\ Perform a Dulmage-Mendelsohn permutation of the sparse matrix @var{S}.\n\ With a single output argument @code{dmperm} performs the row permutations\n\ @var{p} such that @code{@var{S}(@var{p},:)} has no zero elements on the\n\ diagonal.\n\ \n\ Called with two or more output arguments, returns the row and column\n\ permutations, such that @code{@var{S}(@var{p}, @var{q})} is in block\n\ triangular form. The values of @var{r} and @var{S} define the boundaries\n\ of the blocks. If @var{S} is square then @code{@var{r} == @var{S}}.\n\ \n\ The method used is described in: A. Pothen & C.-J. Fan. @cite{Computing the\n\ Block Triangular Form of a Sparse Matrix}. ACM Trans. Math. Software,\n\ 16(4):303-324, 1990.\n\ @seealso{colamd, ccolamd}\n\ @end deftypefn")
 DEFUN_DLD (sprank, args, nargout,"-*- texinfo -*-\n\ @deftypefn {Loadable Function} {@var{p} =} sprank (@var{S})\n\ @cindex structural rank\n\ \n\ Calculate the structural rank of the sparse matrix @var{S}. Note that\n\ only the structure of the matrix is used in this calculation based on\n\ a Dulmage-Mendelsohn permutation to block triangular form. As such the\n\ numerical rank of the matrix @var{S} is bounded by\n\ @code{sprank (@var{S}) >= rank (@var{S})}. Ignoring floating point errors\n\ @code{sprank (@var{S}) == rank (@var{S})}.\n\ @seealso{dmperm}\n\ @end deftypefn")
static octave_value_list dmperm_internal (bool rank, const octave_value arg, int nargout)
static RowVector put_int (octave_idx_type *p, octave_idx_type n)

Macro Definition Documentation

#define CXSPARSE_NAME (   name)    cs_di ## name

Definition at line 43 of file dmperm.cc.

Referenced by dmperm_internal().

Function Documentation

DEFUN_DLD ( dmperm  ,
args  ,
nargout   
)

Definition at line 134 of file dmperm.cc.

References dmperm_internal(), error(), and print_usage().

DEFUN_DLD ( sprank  ,
args  ,
nargout   
)

Definition at line 190 of file dmperm.cc.

References dmperm_internal(), error(), and print_usage().

static octave_value_list dmperm_internal ( bool  rank,
const octave_value  arg,
int  nargout 
)
static
static RowVector put_int ( octave_idx_type p,
octave_idx_type  n 
)
static

Definition at line 47 of file dmperm.cc.

References Array< T >::xelem().

Referenced by dmperm_internal().