Ejemplo n.º 1
0
static inline
int writemm( char const* const filename, matrix_t* AA, char const * const comment, enum sparse_matrix_file_format_t ext ) {
  // make sure we're in the right format (COO) and base 0
  int ret;
  if (( ret = convert_matrix( AA, SM_COO, FIRST_INDEX_ZERO ) ) != 0 )
    return ret;
  assert( AA->format == SM_COO );
  assert( AA->base == FIRST_INDEX_ZERO );

  assert( AA->sym == SM_UNSYMMETRIC );
  assert( AA->data_type == REAL_DOUBLE );

  // copy data into the BeBOP format
  struct sparse_matrix_t A;
  struct coo_matrix_t Acoo;
  A.format = COO;
  A.repr = &Acoo;
  Acoo.m = AA->m;
  Acoo.n = AA->n;
  Acoo.nnz = AA->nz;
  Acoo.II = ( signed int* ) AA->ii;
  Acoo.JJ = ( signed int* ) AA->jj;
  Acoo.val = AA->dd;
  Acoo.index_base = ZERO;
  Acoo.symmetry_type = UNSYMMETRIC;
  Acoo.value_type = REAL;
  Acoo.ownership = USER_DEALLOCATES; // don't let BeBOP blow away our data

  save_sparse_matrix( filename, &A, ext );
  return 0; // success
}
Ejemplo n.º 2
0
 void save(Archive& ar, const unsigned Integer) const {
   save_sparse_matrix(ar, reduce_A_);
   save_vector(ar, W_);
   ar & R_;
   ar & G_;
   ar & C_;
   ar & ins_;
   ar & iter_;
   ar & time_;
 }