Return values
SCOTCH mapView
returns 0 if the data has been successfully written to
stream
,
and 1 else.
7.7
Graph ordering routines
The first routine provides high-level functionality and frees the user from the burden
of calling in sequence several of the low-level routines described afterward.
7.7.1
SCOTCH graphOrder
Synopsis
int SCOTCH graphOrder (const SCOTCH Graph *
grafptr,
const SCOTCH Strat *
straptr,
SCOTCH Num *
permtab,
SCOTCH Num *
peritab,
SCOTCH Num *
cblkptr,
SCOTCH Num *
rangtab,
SCOTCH Num *
treetab)
scotchfgraphorder (doubleprecision (*)
grafdat,
doubleprecision (*)
stradat,
integer*
num
(*)
permtab,
integer*
num
(*)
peritab,
integer*
num
cblknbr,
integer*
num
(*)
rangtab,
integer*
num
(*)
treetab,
integer
ierr)
Description
The
SCOTCH graphOrder
routine computes a block ordering of the unknowns
of the symmetric sparse matrix the adjacency structure of which is represented
by the source graph structure pointed to by
grafptr
, using the ordering
strategy pointed to by
stratptr
, and returns ordering data in the scalar
pointed to by
cblkptr
and the four arrays
permtab
,
peritab
,
rangtab
and
treetab
.
The
permtab
,
peritab
,
rangtab
and
treetab
arrays should have been pre-
viously allocated, of a size sufficient to hold as many
SCOTCH Num
integers as
there are vertices in the source graph, plus one in the case of
rangtab
. Any
of the five output fields can be set to
NULL
if the corresponding information is
not needed. Since, in Fortran, there is no null reference, passing a reference
to
grafptr
in these fields will have the same effect.
On return,
permtab
holds the direct permutation of the unknowns, that is,
vertex
i
of the original graph has index
permtab[
i
]
in the reordered graph,
while
peritab
holds the inverse permutation, that is, vertex
i
in the reordered
graph had index
peritab[
i
]
in the original graph. All of these indices are
numbered according to the base value of the source graph: permutation indices
are numbered from
baseval
to
vertnbr
+
baseval
−
1, that is, from 0 to
89