On Mon, Apr 13, 2009 at 2:36 PM, James C. Sutherland <James.Sutherland@utah.edu> wrote:
I would like to avoid copying the data.  That could probably be done, but would not be a great solution.


Have a look at array adaptors.  For example,

   typedef boost::numeric::ublas::shallow_array_adaptor<double> ArrayAdaptor;
   typedef boost::numeric::ublas::vector<double,ArrayAdaptor>  VecType;

   vector<double> fieldValues;
   // ... initialize fieldValues ...

   VecType vec( npts, ArrayAdaptor(npts,fieldValues) );
   vector<double>::iterator ival = fieldValues.begin();
   for( VecType::iterator i=vec.begin(); i!=vec.end(); ++i, ++ival ){
     *i = *ival;
   }

Thanks for the suggestion, but how is this any different than copying the data?

In this case, the VecType object does not actually copy the data.

Oh, well then this might just do it.  Thanks for the pointer.

Jeremy