Prev Next

@(@\newcommand{\B}[1]{ {\bf #1} } \newcommand{\R}[1]{ {\rm #1} }@)@
Sparsity Patterns

Syntax
pattern   = cppad_py.sparse_rc()
pattern.resize(nrncnnz)
nr        = pattern.nr()
nc        = pattern.nc()
nnz       = pattern.nnz()
pattern.put(krc)
row       = pattern.row()
col       = pattern.col()
row_major = pattern.row_major()
col_major = pattern.col_major()

pattern
This result is used to hold a sparsity pattern for a matrix. It is constant except during the resize and put operations.

nr
This argument is a non-negative int and is the number of rows in the sparsity pattern. The function nr() returns the value of nr in the previous resize operation.

nc
This argument is a non-negative int and is the number of columns in the sparsity pattern. The function nc() returns the value of nc in the previous resize operation.

nnz
This argument is a non-negative int and 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 current sparsity pattern is lost and a new one is started with the specified parameters. After each resize, the elements in the row and col vectors should be assigned using put.

put
This function sets the values
     
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.)

k
This argument is a non-negative int and must be less than nnz .

r
This argument is a non-negative int and must be less than nr . It specifies the value assigned to row[k] .

c
This argument is a non-negative int and must be less than nc . It specifies the value assigned to col[k] .

row
This result is a numpy vector with int elements 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.

col
This result is a numpy vector with int elements 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.

row_major
This result is a numpy vector with int elements and its size nnz . It sorts the sparsity pattern in row-major order. To be specific,
     
colrow_major[k] ] <= colrow_major[k+1] ]
and if colrow_major[k] ] == colrow_major[k+1] ] ,
     
rowrow_major[k] ] < rowrow_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).

col_major
This result is a numpy vector with int elements and its size nnz . It sorts the sparsity pattern in column-major order. To be specific,
     
rowcol_major[k] ] <= rowcol_major[k+1] ]
and if rowcol_major[k] ] == rowcol_major[k+1] ] ,
     
colcol_major[k] ] < colcol_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).

Example
sparse_rc_xam.py
Input File: lib/python/sparse_rc.py