![]() |
Prev | Next |
pattern = module_ref sparse_rc()
pattern.resize(nr, nc, nnz)
pattern.nr()
pattern.nc()
pattern.nnz()
pattern.put(k, r, c)
row = pattern.row()
col = pattern.col()
row_major = pattern.row_major()
col_major = pattern.col_major()
sparse_rc pattern
It is used to hold a sparsity pattern for a matrix.
The sparsity
pattern
is const
except during its constructor, resize
, and put
.
int nr
It specifies the number of rows in the sparsity pattern.
The function call nr()
returns the value of
nr
.
int nc
It specifies the number of columns in the sparsity pattern.
The function call nc()
returns the value of
nc
.
int nnz
It specifies the number of possibly non-zero
index pairs in the sparsity pattern.
The function call nnz()
returns the value of
nnz
.
row
and
col
vectors should be assigned using put
.
row[k] = r
col[k] = c
(The name set
is used by Cppad, but not used here,
because set
it is a built-in name in Python.)
int k
and must be less than
nnz
.
int r
It specifies the value assigned to
row[k]
and must
be less than
nr
.
int c
It specifies the value assigned to
col[k]
and must
be less than
nc
.
vec_int row
and its size is
nnz
.
For
k = 0, ..., nnz-1
,
row[k]
is the row index for the k
-th possibly non-zero
entry in the matrix.
vec_int col
and its size is
nnz
.
For
k = 0, ..., nnz-1
,
col[k]
is the column index for the k
-th possibly non-zero
entry in the matrix.
vec_int row_major
and its size
nnz
.
It sorts the sparsity pattern in row-major order.
To be specific,
col[ row_major[k] ] <= col[ row_major[k+1] ]
and if
col[ row_major[k] ] == col[ row_major[k+1] ]
,
row[ row_major[k] ] < row[ row_major[k+1] ]
This routine generates an assert if there are two entries with the same
row and column values (if NDEBUG
is not defined).
vec_int col_major
and its size
nnz
.
It sorts the sparsity pattern in column-major order.
To be specific,
row[ col_major[k] ] <= row[ col_major[k+1] ]
and if
row[ col_major[k] ] == row[ col_major[k+1] ]
,
col[ col_major[k] ] < col[ col_major[k+1] ]
This routine generates an assert if there are two entries with the same
row and column values (if NDEBUG
is not defined).