[Insight-developers] [Insight-users] Replacing Sparse Matrix Linear Solver : due to Licensing issues
Bill Lorensen
bill.lorensen at gmail.com
Mon Feb 1 08:41:48 EST 2010
Eigen is LGPLv3. We just had a long discussion on the VTK developers
list about it. They claim the license is BSD friendly for template
code. They have a special FAQ )(multi-page) just to clarify the
license issues (
http://eigen.tuxfamily.org/index.php?title=Licensing_FAQ ).
I don't agree that the license is BSD and company friendly. I hate to
repeat the VTK discussion here since it's already over 40 e-mail
exchanges in a couple of days.
Bill
On Mon, Feb 1, 2010 at 2:36 AM, Tom Vercauteren
<tom.vercauteren at gmail.com> wrote:
> Hi Luis,
>
> Some time ago I started listing potential linear algebra alternatives
> on the wiki for ITK 4:
> http://www.itk.org/Wiki/ITK_Release_4.0#3rd_Party_Libraries
>
> The best option I found is definitely eigen:
> http://eigen.tuxfamily.org/index.php?title=Main_Page
>
> I has almost everything we need:
> - Support for both dense and sparse matrix algorithms (including least squares)
> - Faster than mkl in some cases
> - Actively maintained c++ code written from scratch with no fortran
> dependency ;)
> - Include wrappers for third party libraries such as superlu mentioned by Arnaud
> - compatible with BSD
> http://eigen.tuxfamily.org/index.php?title=Licensing_FAQ#Using_Eigen_in_BSD-licensed_software
> - Using cmake and ctest for unit testing
> - Used by some large projects (e.g. official linear algebra package for kde)
> - etc.
>
> It might be a good time to start experiencing with it.
>
> Regards,
> Tom
>
> On Sun, Jan 31, 2010 at 22:28, Arnaud Gelas
> <arnaud_gelas at hms.harvard.edu> wrote:
>> 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
>>
>>
>> _____________________________________
>> 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://www.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-users
>>
>>
> _______________________________________________
> 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
>
More information about the Insight-developers
mailing list