[eigen] is MAP oneway ? (urgent)

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Hi,

I have to write a function which is called by code which is
written in C-style (though compiled with g++).
It delivers me data in a C-array  (double*) and expects me
to modify this.

When I tried the following example, I was a bit surprised.
So, what does MAP do?


#include <iostream>
using std::cerr;  using std::endl;
#include <Eigen/Core>
// import most common Eigen types 
USING_PART_OF_NAMESPACE_EIGEN

int main() {
  double data[4] = {1, 2, 3, 4};
  
  VectorXd D = Eigen::Map<VectorXd>(data,4);
  cerr << "D before : " << D << endl;
  data[1]= 7;
  cerr << "D after  : " << D << endl;  // nothing has changed
}


So, do I have to copy all data from D.data() back to data?

Is there something like "overlaying" an Eigen-Vector onto some raw
C-array?

Many thanks for a quick hint,
Helmut.

-- 
Helmut Jarausch

Lehrstuhl fuer Numerische Mathematik
RWTH - Aachen University
D 52056 Aachen, Germany



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/