From: jhrwalter (walter_at_[hidden])
Date: 2001-12-07 02:44:16


--- In boost_at_y..., Toon Knapen <toon.knapen_at_s...> wrote:
> jhrwalter wrote:
>
> >>Does the sparse matrix also support COO (coordinate) and
> >>most important CSC (compressed sparse row or Harwell-Boeing)
> >>format ?
> >
> > No. Our base containers vector, matrix, sparse_vector and
> > sparse_matrix were designed to use std::vector and std::map as
> > storage and prove interoperability. CRS and CCS storage formats
have
> > to be implemented. With regard to COO I'm unsure.
> >
>
> I've been looking at the code to see how COO and CSC could be added.
>
> As for the COO, you are right that it is not necessary. The current
> compressed_array could be used.
 
Hm. I'll have to think about that.
 
> Most important though is that we prefer
> to first construct the structure of the matrix and later fill in
the
> values. The speedup by constructing the structure first exactly
comes
> from that the internal array do not need to be sorted the whole
time.
> Where you sort the compressed_array now the whole time, I would
like to
> delay this sorting. This way it's more efficient.

compressed_array has a range insert member. Doesn't it suffice?
 
> After having built up the structure, the matrix would also need a
> constructor that takes the structure as an argument (not only as a
> template argument).
>
> An option would be to add some members to work in non-sorted mode.
For
> instance a member function add_nnz(size_type, size_type) or just
> add_nnz(size_type) that would add the entry but not force that
data_
> would be sorted as a post-condition. When the structure is used to
> construct another structure (like CSC) or used within a matrix
> constructor, the sort would be triggered. This sort can also be
> triggered by any call to any of the other member functions of the
> object but this might be inefficient.
 
Sorry, you've lost me. Are you talking about extending/changing
existing sparse matrix formats or about new CRS and CCS formats here?
 
Regards
 
Joerg