Boost logo

Ublas :

From: Leon Gu (leongu_at_[hidden])
Date: 2008-08-20 16:39:53


the boost assignment library might be helpful.

an example:

#include <boost/assign/std/vector.hpp>
std::vector<float> v;
v += 13.7,15.8,38.1;
bounded_vector<float, 3> u;
std::copy(v.begin(), v.end(), u.begin());

Leon

Rob McDonald wrote:
> I would like to be able to have a bounded_vector<double, 3> which I can
> instantiate something like this...
>
> typedef bounded_vector<double, 3> vect;
> vect v = vect(0.0, 1.23, 3.45);
>
> This requires a new constructor of the form
>
> bounded_vector(T x, T y, T z);
>
> Since constructors and the equals operator aren't inherited, I can't
> just implement this one constructor. And, while I'm at it, I may as
> well keep the code generic to type, but specific to 3 elements...
>
> So, I've copied the code for a bounded_vector from vector.hpp. So far,
> all I've really done is change the template parameter N to a 3. At this
> point, I can't figure out how to implement my desired constructor...
>
> I need to either 1) access the data directly or 2) use the available
> interface.
>
> I poked around in the source such that 'data () [i] =' looked like it
> might be promising, but that doesn't seem to work. No combinations of
> 'this(i) =' or what not have worked either.
>
> For 1), I haven't been able to figure out for sure where the data is
> really stored and if I have access permissions to it.
>
> For 2), I haven't been able to figure out how to access the overloaded
> () operator in the constructor.
>
> Here is one of many failed attempts:
>
> BOOST_UBLAS_INLINE
> bounded_vector3 (T x, T y, T z):vector_type(3){
> data () [0] = x;
> data () [1] = y;
> data () [2] = z;
> }
>
> After I get that working, I have another similar challenge...
>
> I would like to be able to assign one of these vectors with a comma
> delimited list. This is currently done in Blitz++, and I am migrating
> some code from Blitz to boost::ublas.
>
> So, I want to be able to do this....
>
> vect v;
> v = (1.2), (3.5), (7.8); // I'm not sure if the () are significant.
>
> Any help will be greatly appreciated,
>
> Rob
>
>
> _______________________________________________
> ublas mailing list
> ublas_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/ublas
>