![]() |
Prev | Next |
pattern = cppad_py::sparse_rc()
pattern.resize(nr, nc, nnz)
nr = pattern.nr()
nc = pattern.nc()
nnz = 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 the resize
and put
operations.
int nr
is non-negative, and specifies
the number of rows in the sparsity pattern.
The function nr()
returns the value of
nr
in the previous resize
operation.
int nc
is non-negative, and specifies
the number of columns in the sparsity pattern.
The function nc()
returns the value of
nc
in the previous resize
operation.
int nnz
It is the number of possibly non-zero
index pairs in the sparsity pattern.
The function nnz()
returns the value of
nnz
in the previous resize
operation.
resize
, the elements in the
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
is non-negative,
and must be less than
nnz
.
int r
is non-negative, and must be less than
nr
.
It specifies the value assigned to
row[k]
and must
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).