Hi Luis,

A short term solution would be to replace (if that possible) the code for solving sparse linear system with existing sparse direct solution from VNL (vnl_sparse_lu). Note that the mesh parameterization can easily change to use vnl_sparse_lu by default.
Is vnl_sparse_lu  ok (in terms of license)?
Can Code/Numerics/FEM/itkFEMLinearSystemWrapperVNL.h use vnl_sparse_lu instead?

A longer term solution would be to start using specialized sparse libraries (which are more efficient than vnl for these problems). Here, I cite some of them  
 * SuiteSparse (LGPL): the most complete (and as far as I know the most efficient) solution http://www.cise.ufl.edu/research/sparse/SuiteSparse/ 
 * TAUCS (MIT License): sparse direct solver http://code.google.com/p/taucs/
 * SuperLU (License): LU decomposition http://crd.lbl.gov/~xiaoye/SuperLU/

Arnaud

On Jan 31, 2010, at 2:50 PM, Luis Ibanez wrote:

The "toms" incident seems to be behind us now.
The code has been removed from the VXL version
that is carried by ITK.


However, as a secondary effect,

Bill found out that the "lsqr" libraries inside VXL are
also copyrighted by ACM and therefore subject to
their non-commercial license.


         Therefore,    they must go.


As opposed to "toms", however, this code is actually
used in ITK.

The lsqr code from the directory:

   Utilities/vxl/v3p/netlib/linalg/lsqr.c

is used by VXL in

   Utilities/vxl/core/vnl/algo/vnl_lsqr.h

that in turn is used by ITK in:

Code/Numerics/FEM/itkFEMLinearSystemWrapperVNL.h
Testing/Code/Review/itkQuadEdgeMeshLinearParameterizationTest.cxx

After a (non exhaustive) Google search for
open source implementations of sparse matrix
linear solvers with licenses compatible with
the BSD license.

We end up with :

    http://sourceforge.net/projects/sparse/files/
    http://sparse.sourceforge.net/index.html

    "Sparse 1.4"
    by  Kenneth Kundert.
    that is distributed under BSD license.


It turned out that VXL already carries (a version)
of this library under:

        Utilities/vxl/v3p/netlib/sparse

Ironically,...
still under the Evil "netlib" label...

(we will come back to that later...)

---

We are currently experimenting with replacing
the vnl_lsqr solver with another one based on
the Sparse library.

Given that this is an issue of copyright infringement,
we will have to do the replacement even if the new
library is not technically better than the lsqr one.


At this point, the only places where we anticipate
to see any effect is the FEM registration algorithm,
which is the only code in ITK that uses the FEM
solver classes.


If you have any experience with using the Sparse
library we will appreciate your advice and help.


If you are aware of any other options on Open
Source sparse matrix linear solvers, with BSD
compatible licenses, please let us know.


    Thanks


           Luis
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://kitware.com/products/protraining.html

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://www.itk.org/mailman/listinfo/insight-developers