![]() |
Prev | Next | sparse_rc_xam.cpp | Headings |
# include <cstdio> # include <string> # include <cppad/swig/cppad_swig.hpp> bool sparse_rc_xam(void) { using cppad_swig::a_double; using cppad_swig::vec_bool; using cppad_swig::vec_int; using cppad_swig::vec_double; using cppad_swig::vec_a_double; using cppad_swig::a_fun; using cppad_swig::sparse_rc; using cppad_swig::sparse_rcv; using cppad_swig::sparse_jac_work; using cppad_swig::sparse_hes_work; using std::string; // // initialize return variable bool ok = true; //------------------------------------------------------------------------ // // create a sparsity pattern sparse_rc pattern = cppad_swig::sparse_rc(); // int nr = 6; int nc = 5; int nnz = 4; // // resize pattern.resize(nr, nc, nnz); // ok = ok && pattern.nr() == nr ; ok = ok && pattern.nc() == nc ; ok = ok && pattern.nnz() == nnz ; // // indices corresponding to upper-diagonal for(int k = 0; k < nnz; k++) { pattern.put(k, k, k+1); } // // row and column indices vec_int row = pattern.row(); vec_int col = pattern.col(); // // check row and column indices for(int k = 0; k < nnz; k++) { ok = ok && row[k] == k; ok = ok && col[k] == k+1; } // // For this case, row_major and col_major order are same as original order vec_int row_major = pattern.row_major(); vec_int col_major = pattern.col_major(); for(int k = 0; k < nnz; k++) { ok = ok && row_major[k] == k; ok = ok && col_major[k] == k; } // return( ok ); }