Boost logo

Ublas :

Subject: Re: [ublas] size1 and size2
From: Gunter Winkler (guwi17_at_[hidden])
Date: 2009-09-10 14:48:37


Hello all,

I suggest to only add new free functions because this can be easily done
in a separate header file like "matix_utils.hpp" and "vector_utils.hpp"

Am Thursday 10 September 2009 schrieb Marco Guazzone:
> On Thu, Sep 10, 2009 at 12:39 PM, Marco Guazzone
>
> <marco.guazzone_at_[hidden]> wrote:
> > On Thu, Sep 10, 2009 at 10:16 AM, Rutger ter Borg
<rutger_at_[hidden]> wrote:
> >> I would vote for col_size and row_size, or column_size and
> >> row_size. Having a "size" in the name is more consistent with STL.
> >
> > Good choice, maybe "cols_size" and "rows_size"?
>
> The same should apply to iterators. Something like:
>
> iterator1 ==> row_iterator
> iterator2 ==> column_iterator
> reverse_iterator1 ==> reverse_row_iterator

I'd try to stay close to MTL4 if possible.

lets summarize the need :

num_rows(MAT); num_cols(MAT); size(VEC);

maybe also: size<tag::row>(MAT); size<tag::column>(MAT)

What do you think about a similar approach for iterators. Sometime one
needs an "major" and "minor" iterator (no matter what the orientation
of the matrix is). Sometimes one needs an explicit row-iterator whose
value type is essentially a reference to a matrix row. (BTW. IMO the
original iterator design of uBLAS is very bad for non-dense matrices.)

maybe we start with:

miter = begin<tag::major>(MAT);
subiter = begin<tag::minor>(miter);

fastiter = begin<tag::nz>(MAT); // iterate over all non-zeros

(see also http://www.osl.iu.edu/research/mtl/mtl4/doc/iteration.html)

Will anyone take the task to provide a set of free functions that simply
call the existing member functions?

mfg
Gunter