Boost logo

Boost Users :

From: Ronald Garcia (garcia_at_[hidden])
Date: 2008-06-18 12:51:01


Hi Joey,

I have looked at your self-contained example, so I get the gist of
what you're trying to do. Rather than assigning to the array view,
you can assign to an indices object and build the view after the
fact. Here's how to do the 2-dimensional case that you had commented
out:

                      //This doesn't work, but I would love a generic
version of this:

                      array_type::index_gen::gen_type<1,2>::type
myindices;
                      if (desired_slice [0] == -1)
                        myindices = indices [range ()][desired_slice
[1]];
                          else
                      if (desired_slice [1] == -1)
                        myindices = indices [desired_slice [0]][range
()];

                      array_type::const_array_view <1>::type OneDView
                        = multi_array[myindices];

                      ret_val = (OneDView [whichPosition]);

HTH,
ron

On Jun 14, 2008, at 10:32 AM, Joey Mukherjee wrote:

>
> I am trying to use boost::multi_array and want to create a view
> where I am
> lowering the number of dimensions, but I wish the dimension to be
> reduced
> to be decided at runtime.
>
> I have a vector of integers and this vector size is the same as the
> number
> of dimensions. If the vector [1] value is -1, then the first
> dimension
> will have all values (i.e. range ()), otherwise it will be a number
> indicating what slice to use.
>



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net