[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## [Help-gsl] Vector and matrix views

**From**: |
Dimitris Papavasiliou |

**Subject**: |
[Help-gsl] Vector and matrix views |

**Date**: |
Thu, 08 Dec 2005 02:17:26 +0200 |

**User-agent**: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050513 Debian/1.7.8-1 |

Hi all,

`I need to quickly and efficiently create a gsl vector/matrix from a C
``array but doing something like
`
+====
gsl_vector_view v_view;
gsl_vector *v;
v_view = gsl_vector_view_from_array(array, n);
v = &v_view.vector;
+====

`tends to get tedious and bloat functions where many vectors are
``manipulated. Also using &v_view.vector to refer to the vector is ugly
``and makes to code less readable.
`
Would something like this work
+====
gsl_vector v; /* a struct, not a pointer */
v = gsl_vector_view_from_array(array, n).vector;
+====

`I know this looks ugly too but hidden behind a macro it would be ok.
``Would this work correctly? I've tried it and it seems to work but I'd
``like to make sure. If it works then maybe it would be useful as a macro
``in GSL itself
`

`#define gsl_vector_from_array(array, n)
``gsl_vector_view_from_array((array), (n)).vector
`
and similarly for const, matrices, etc.

`On a side note: why do views have a separate struct with only one
``member? I've read in an old message in the archive that this is so in
``order to make const vectors work but I can't imagine how keeping a
``struct with one member is any different than keeping the member itself.
``If it is't too much trouble could someone please explain?
`

`I'm asking because, if you use the GSL to do calculations with
``matrices/vectors which need to be stored in C arrays (so that they can
``be passed to opengl for example) keeping an extra struct for each
``vector/matrix can be anoying in complex computations. In fact this is
``what kept me from using the GSL when I first discovered it half a year
``ago. Let me say though, after all that whining that I was otherwise
``thrilled with it as this is a pretty amazing library design-wise and
``even used its ODE solvers with no problems in a cloth simulation.
`
Dimitris P.

**[Help-gsl] Vector and matrix views**,
*Dimitris Papavasiliou* **<=**