1 # ifndef CPPAD_CORE_SUBGRAPH_SPARSITY_HPP
2 # define CPPAD_CORE_SUBGRAPH_SPARSITY_HPP
165 template <
typename Base>
166 template <
typename BoolVector,
typename SizeVector>
168 const BoolVector& select_domain ,
169 const BoolVector& select_range ,
188 size_t nr = dep_taddr_.size();
189 size_t nc = ind_taddr_.size();
190 size_t nnz = row.
size();
192 { pattern_out.
resize(nc, nr, nnz);
193 for(
size_t k = 0; k < nnz; k++)
194 pattern_out.
set(k, col[k], row[k]);
197 { pattern_out.
resize(nr, nc, nnz);
198 for(
size_t k = 0; k < nnz; k++)
199 pattern_out.
set(k, row[k], col[k]);
void subgraph_sparsity(const BoolVector &select_domain, const BoolVector &select_range, bool transpose, sparse_rc< SizeVector > &pattern_out)
Subgraph sparsity patterns.
sparsity pattern for a matrix with indices of type size_t
size_t size(void) const
current number of elements in this vector.
void resize(size_t nr, size_t nc, size_t nnz)
resize
#define CPPAD_ASSERT_UNKNOWN(exp)
Check that exp is true, if not terminate execution.
void subgraph_sparsity(const player< Base > *play, subgraph_info &sub_info, const vector< size_t > &dep_taddr, const BoolVector &select_domain, const BoolVector &select_range, pod_vector< size_t > &row_out, pod_vector< size_t > &col_out)
Compute dependency sparsity pattern for an ADFun<Base> function.
File used to define the ADFun<Base> class.
void set(size_t k, size_t r, size_t c)
set row and column for a possibly non-zero element
Compute dependency sparsity pattern using subgraph technique.