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