cpp_sparse_rcv#

View page source

Sparse Matrices#

Syntax#

cppad_py::sparse_rcv matrix ( pattern )
nr = matrix.nr()
nc = matrix.nc()
nnz = matrix.nnz()
matrix.put ( k , v )
row = matrix.row()
col = matrix.col()
val = matrix.val()
row_major = matrix.row_major()
col_major = matrix.col_major()

pattern#

This argument has prototype

      const sparse_rc& pattern

It specifies the number of rows, number of columns and the possibly non-zero entries in the matrix .

matrix#

This is a sparse matrix object with the sparsity specified by pattern . Only the val vector can be changed. All other values returned by matrix are fixed during the constructor and constant there after. The val vector is only changed by the constructor and the set function.

nr#

This return value has prototype

      int nr

and is the number of rows in the matrix.

nc#

This return value has prototype

      int nc

and is the number of columns in the matrix.

nnz#

This return value has prototype

      int nnz

and is the number of possibly non-zero values in the matrix.

put#

This function sets the value

      val [ k ] = v

(The name set is used by CppAD, but not used here, because set it is a built-in name in Python.)

k#

This argument has type

      int k

and must be non-negative and less than nnz .

v#

This argument has type

      double v

It specifies the value assigned to val [ k ] .

row#

This result has type

      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.

col#

This result has type

      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.

val#

This result has type

      vec_double val

and its size is nnz . For k = 0, … , nnz -1 , val [ k ] is the value of the k-th possibly non-zero entry in the matrix (the value may be zero).

row_major#

This vector has prototype

      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).

col_major#

This vector has prototype

      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).

Example#

sparse_rcv_xam.cpp