From: Kris T. <kri...@cs...> - 2005-07-18 17:00:06
|
Hi I'm new to vxl, but am wondering if it would be possible to use some of the VNL routines with my own vector and matrix classes. I know, I'm asking too much... I realise that this will involve some work but would like to ask for some suggestions. I suppose the easiest way to go would be to make sure that my classes provide the same interface as vnl_vector and vnl_matrix, and then typedef vnl_vector etc. Somewhat cleaner would be to derive vnl_vector from my classes from my own classes. Or some wrapper classes as suggested in Numerical Recipes for C++ (see http://www.numerical-recipes.com/cpppages/chap1sel.pdf p.29 et al) A longer route (but in the end more satisfying) would be to template the vnl routines in terms of vector and matrix classes (which still need to have the correct interface). A lot of trouble with instanstations then of course. Why? Obviously because I have a lot of work done using my own classes. Kris Thielemans Hammersmith Imanet, part of GE Healthcare Cyclotron Building Hammersmith Hospital Du Cane Road London W12 ONN, United Kingdom web site address: http://www.hammersmithimanet.com/~kris ------------------------------------------- NOTE: My inbox has a SPAM filter that automatically throws away suspect messages. If you expect a reply and don't get one, your message might have been wrongly classified. |
From: Ian S. <ian...@st...> - 2005-07-19 12:43:37
|
Kris Thielemans wrote: > Hi > > I'm new to vxl, but am wondering if it would be possible to use some of the > VNL routines with my own vector and matrix classes. I know, I'm asking too > much... > > I realise that this will involve some work but would like to ask for some > suggestions. > > I suppose the easiest way to go would be to make sure that my classes > provide the same interface as vnl_vector and vnl_matrix, and then typedef > vnl_vector etc. Somewhat cleaner would be to derive vnl_vector from my > classes from my own classes. Or some wrapper classes as suggested in > Numerical Recipes for C++ > (see http://www.numerical-recipes.com/cpppages/chap1sel.pdf p.29 et al) You can use vnl_vector_ref and vnl_matrix_ref to wrap an existing array of numbers in the types vnl expects. Alternatively, you could wrap the data of a vnl_vector in your own classes. > A longer route (but in the end more satisfying) would be to template the vnl > routines in terms of vector and matrix classes (which still need to have the > correct interface). A lot of trouble with instanstations then of course. Sounds horrendous. |