I need to pass a gsl_vector
to a function that expects a C style array, and vice versa.
The slow approach (which involves a deep copy) should be:
const size_t n = 4;
gsl_vector gx; // initialize and fill
gsl_vector gy; // initialize
double in[n], out[n];
for(size_t i = 0; i < n; ++i)
in[i] = gsl_vector_get(gx, i);
func(in, out, n);
for(size_t i = 0; i < n; ++i)
gsl_vector_set(gy, i, out[i]);
.
Can I do:
const size_t n = 4;
gsl_vector gx; // initialize and fill
gsl_vector gy; // initialize
func(gx.data, gy.data, n);