[ITK-dev] efficiency of vnl_matrix

Jian Cheng jian.cheng.1983 at gmail.com
Thu Mar 12 21:56:15 EDT 2015


Hi,

I agree with Brian.
Everyone who uses ITK with vnl_matrix will finally realize vnl_matrix is
very inefficient, then will try to make it efficient, by using backend
blas/lapack api, or using other efficient matrix libs. Thus it is better
to make only one efficient way in ITK for everyone.
This numerical lib is fundamental for many applications. Thus we need
more discussions before doing anything.

For (2), it is possible and needs less effort. We have two ways.
a) Do not touch vnl_matrix class, just make some external functions
using blas/lapack api to work on the data pointer stored in vnl_matrix
objects. This is the way I have done.
b) Put those functions into vnl_matrix member functions. Thus change the
implementation of vnl_matrix, but do not change its api.

For (3), we have two ways.
a) remove vnl_matrix everywhere and replace it using eigen or armadillo.
As we discussed in previous emails, some people already did this in
their own ITK classes.
b) Still use vnl_matrix, but change its implementation by using
eigen/armadillo, without changing the api of vnl_matrix. 

best,
Jian Cheng

On 03/12/2015 08:08 PM, brian avants wrote:
>
> All fantastic directions to explore. +We all could benefit from this
> fundamental improvement in numerics.  my guess: (1) and (2) from
> Matt's previous email are likely to stick, with relatively low
> effort.   Other stuff ... Only if some individual takes it personally.
> We at penn, uva, uiowa are (likely) to help on this.  Keep us apprised.
>
>



More information about the Insight-developers mailing list