Boost logo

Ublas :

Subject: Re: [ublas] Matrix view over a bunch of ublas::vector's
From: Nasos Iliopoulos (nasos_i_at_[hidden])
Date: 2010-06-24 13:43:34

Hi all,
I agree with Andrea and I suppose that a solution to such problems would come from a horizontal or vertical concatenation expression template. It shouldn't be very hard to develop.

Furthermore to Jesses' answer, one may want to take a look at the generalized_vector_of_vector, that I think can be operated through pointers to stored vectors (maybe it needs a dangerous hack there though). The latter may suffice for what dari wants to do.


> Hi guys,
> boost::ublas::assignement might not be an efficient choice, for it is
> meant to copy the values, if I'm not mistaken. If, as I have
> understood, the question is how to avoid the copy of this bunch of
> vectors, then I guess the solution is a suitable matrix adaptor that
> on-the-fly acts as a view.
> A similar issues arises whenever a plain double* array has to be
> converted on a boost::ublas::vector. In that case an adaptor is
> available (I guess not yet in the official distribution). Similarly, I
> suspect that the code should be something like:
> matrix_from_vectors< vect_type > m(n_vectors, a_list_of_vectors)
> Eventually, a storage specifier could say if the vectors are intended
> by rows or by columns. If the vectors are not stored toghether, it may
> look like:
> matrix_from_vectors< vect_type > m(n_vectors);
> m.row(0)=&v0;
> m.row(1)=&v1;
> ...
> so that internally only a pointer to the vector is stored. I think
> that the question is really interesting and a good solution might be
> useful for many.
> Andrea
> --
> Andrea Cassioli
> _______________________________________________
> ublas mailing list
> ublas_at_[hidden]
> Sent to: nasos_i_at_[hidden]
The New Busy is not the too busy. Combine all your e-mail accounts with Hotmail.