Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.
Close
From: Luis Ibanez <luis.ibanez@ki...>  20100131 19:50:14

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 noncommercial 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 
Re: [Vxlusers] [Insightdevelopers] Replacing Sparse Matrix Linear
Solver : due to Licensing issues
From: Arnaud Gelas <arnaud_gelas@hm...>  20100131 21:28:14
Attachments:
Message as HTML

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 noncommercial 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 http://www.kitware.com > > Visit other Kitware opensource 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 ontopic 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/insightdevelopers 
From: Tom Vercauteren <tom.vercauteren@gm...>  20100201 07:36:46

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_BSDlicensed_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@...> 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 noncommercial 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 http://www.kitware.com > > Visit other Kitware opensource 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 ontopic 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/insightdevelopers > > > _____________________________________ > Powered by http://www.kitware.com > > Visit other Kitware opensource 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 ontopic 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/insightusers > > 
From: Peter Vanroose <peter_vanroose@ya...>  20100201 11:41:05

Just want to drop in here with a general remark about the vxl (or actually; vnl) design w.r.t. netlib and other 3rd party libraries: * There has never been a "hard" dependency on netlib (or whatever) external code library. We have deliberately kept those 3rd party code in a separate code branch "v3p". * vnl/algo is a "C++ compatibility layer" on top of this v3p stuff. It should at least be transparent to all vxl code using vnl/algo when one of the underlying implementations changes. All such implementation stuff is only present in files core/vnl/algo/*.cxx and .txx (21 of them currently). Search for "#include <vnl/algo/vnl_netlib.h>" to locate all dependencies.  Peter.  __________________________________________________ Använder du Yahoo!? Är du trött på spam? Yahoo! Epost har det bästa spamskyddet som finns http://se.mail.yahoo.com 
From: Osama Masoud <osama.masoud@gm...>  20100201 16:00:40
Attachments:
Message as HTML

Is the issue here the avoidance of using any library that has a nonfree license? If so, the polygon clipping library used in vgl (see vgl/internals/gpc.h) looks like another one. osama On Mon, Feb 1, 2010 at 5:40 AM, Peter Vanroose <peter_vanroose@...>wrote: > Just want to drop in here with a general remark about the vxl (or actually; > vnl) design w.r.t. netlib and other 3rd party libraries: > > * There has never been a "hard" dependency on netlib (or whatever) external > code library. We have deliberately kept those 3rd party code in a separate > code branch "v3p". > * vnl/algo is a "C++ compatibility layer" on top of this v3p stuff. > It should at least be transparent to all vxl code using vnl/algo when one > of the underlying implementations changes. All such implementation stuff is > only present in files core/vnl/algo/*.cxx and .txx (21 of them currently). > Search for "#include <vnl/algo/vnl_netlib.h>" to locate all dependencies. > >  Peter. > > > 
From: Ian Scott <ian.scott@st...>  20100201 16:19:36

On 01/02/2010 15:36, Osama Masoud wrote: > Is the issue here the avoidance of using any library that has a nonfree > license? Sortof. > If so, the polygon clipping library used in vgl > (see vgl/internals/gpc.h) looks like another one. We are aware and have dealt with that issue in the repository  see the VXL commit logs and vxlmaintainers archive for details. There is need to trouble ITK with this, as I don't believe they use vgl. Ian. > osama > > On Mon, Feb 1, 2010 at 5:40 AM, Peter Vanroose > <peter_vanroose@... <mailto:peter_vanroose@...>> wrote: > > Just want to drop in here with a general remark about the vxl (or > actually; vnl) design w.r.t. netlib and other 3rd party libraries: > > * There has never been a "hard" dependency on netlib (or whatever) > external code library. We have deliberately kept those 3rd party > code in a separate code branch "v3p". > * vnl/algo is a "C++ compatibility layer" on top of this v3p stuff. > It should at least be transparent to all vxl code using vnl/algo > when one of the underlying implementations changes. All such > implementation stuff is only present in files core/vnl/algo/*.cxx > and .txx (21 of them currently). > Search for "#include <vnl/algo/vnl_netlib.h>" to locate all > dependencies. > >  Peter. > > 
From: Bill Lorensen <bill.lorensen@gm...>  20100201 13:41:55

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 )(multipage) 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 email exchanges in a couple of days. Bill On Mon, Feb 1, 2010 at 2:36 AM, Tom Vercauteren <tom.vercauteren@...> 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_BSDlicensed_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@...> 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 noncommercial 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 http://www.kitware.com >> >> Visit other Kitware opensource 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 ontopic 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/insightdevelopers >> >> >> _____________________________________ >> Powered by http://www.kitware.com >> >> Visit other Kitware opensource 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 ontopic 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/insightusers >> >> > _______________________________________________ > Powered by http://www.kitware.com > > Visit other Kitware opensource 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 ontopic 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/insightdevelopers > 
From: Luis Ibanez <luis.ibanez@ki...>  20100201 20:49:02

I agree with Bill, Libraries with LGPL are not an option. At least not to be the primary support that is included with ITK. We could however support them as options that users can turn ON locally, just as we do with FFTW. Our immediate case, however is that we need to replace vnl_lsqr Right Now, with something that is it still a default option included with ITK. BTW: I have added to the proposal page: http://www.itk.org/Wiki/Proposals:Sparse_Linear_Solvers the link to your page: http://www.itk.org/Wiki/ITK_Release_4.0#3rd_Party_Libraries  I keep thinking that NSF/NASA/DOD/DOE + EU should fund the development of set of mathematical libraries to be released in the Public Domain. This is a matter of essential computing infrastructure. Thanks Luis  On Mon, Feb 1, 2010 at 8:41 AM, Bill Lorensen <bill.lorensen@...> wrote: > 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 )(multipage) 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 email > exchanges in a couple of days. > > Bill > > On Mon, Feb 1, 2010 at 2:36 AM, Tom Vercauteren > <tom.vercauteren@...> 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_BSDlicensed_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@...> 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 noncommercial 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 http://www.kitware.com >>> >>> Visit other Kitware opensource 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 ontopic 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/insightdevelopers >>> >>> >>> _____________________________________ >>> Powered by http://www.kitware.com >>> >>> Visit other Kitware opensource 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 ontopic 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/insightusers >>> >>> >> _______________________________________________ >> Powered by http://www.kitware.com >> >> Visit other Kitware opensource 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 ontopic 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/insightdevelopers >> > 
Re: [Vxlusers] [Insightdevelopers] Replacing Sparse Matrix Linear
Solver : due to Licensing issues
From: Luis Ibanez <luis.ibanez@ki...>  20100201 20:34:32

Hi Arnaud, Thanks a lot , all these suggestions are very useful. A) I'll give it a shot at using vnl_sparse_lu (I must first double check that is not encumbered by the ACM copyright/license absurd restrictions). B) About the alternative libraries: Thanks for gathering this list. B.1) SuiteSparse, since it is a LGPL libraries, is not an option. at least not for being a default ITK component. We could however, support it the way we support FFTW. An pass the licensing nightmare down to the users who enable that option. B.2) TAUCS, Looks like a good option. The MIT license is fully compatible with BSD. B.3) SuperLU, Reading its license, it turns out to be a standard BSD. So, this is also a good option. It looks like we should bring this discussion to the Wiki, I made a page for it at: http://www.itk.org/Wiki/Proposals:Sparse_Linear_Solvers That is linked from the 2010 Proposals Table: http://www.itk.org/Wiki/ITK_Oversight_Committee#2010 Let's gather more factors in the Wiki, so we can make an educated decision. Thanks, Luis  On Sun, Jan 31, 2010 at 4:28 PM, Arnaud Gelas <arnaud_gelas@...> 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 noncommercial 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 http://www.kitware.com > > Visit other Kitware opensource 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 ontopic 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/insightdevelopers > > 
Re: [Vxlusers] [Insightdevelopers] Replacing Sparse Matrix Linear
Solver : due to Licensing issues
From: Arnaud GELAS <arnaud_gelas@hm...>  20100201 21:08:49

Hi Luis, Great idea to start a wiki page! I'll edit it! Do you want to restrict this page to sparse linear solvers? What about sparse eigen decomposition? Sparse direct solver usually starts by reordering the matrix, then factorization (decomposition) part follows, and finally if you are willing to the linear system is solved. The reordering part is often performed by using METIS library (http://glaros.dtc.umn.edu/gkhome/views/metis). The license of the latest version (http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis5.0pre2.tar.gz) states: The METIS package is copyrighted by the Regents of the University of Minnesota. It can be freely used for educational and research purposes by nonprofit institutions and US government agencies only. Other organizations are allowed to use METIS only for evaluation purposes, and any further uses will require prior approval. The software may not be sold or redistributed without prior approval. One may make copies of the software for their use provided that the copies, are not sold or distributed, are used under the same terms and conditions.  An usual set up for taucs require metis, and link against metis... So, we should first check with people from TAUCS if metis is really required? (If we could skip the reordering part at the cost of lower performances). And if it can not be optionally replaced by boostBGL reordering algorithms (http://www.boost.org/doc/libs/1_41_0/libs/graph/doc/table_of_contents.html), or by another library BSD compliant? Arnaud On 02/01/2010 03:29 PM, Luis Ibanez wrote: > Hi Arnaud, > > Thanks a lot , all these suggestions are very useful. > > A) I'll give it a shot at using vnl_sparse_lu > > (I must first double check that is not encumbered > by the ACM copyright/license absurd restrictions). > > > B) About the alternative libraries: > Thanks for gathering this list. > > B.1) SuiteSparse, > since it is a LGPL libraries, is not an option. > at least not for being a default ITK component. > We could however, support it the way we support FFTW. > An pass the licensing nightmare down to the users who > enable that option. > > B.2) TAUCS, > Looks like a good option. > The MIT license is fully compatible with BSD. > > B.3) SuperLU, > Reading its license, it turns out to be a standard BSD. > So, this is also a good option. > > It looks like we should bring this discussion to the Wiki, > > I made a page for it at: > http://www.itk.org/Wiki/Proposals:Sparse_Linear_Solvers > > > That is linked from the 2010 Proposals Table: > http://www.itk.org/Wiki/ITK_Oversight_Committee#2010 > > > Let's gather more factors in the Wiki, so we can make > an educated decision. > > > Thanks, > > > Luis > > >  > On Sun, Jan 31, 2010 at 4:28 PM, Arnaud Gelas > <arnaud_gelas@...> 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 noncommercial 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 http://www.kitware.com >> >> Visit other Kitware opensource 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 ontopic 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/insightdevelopers >> >> >> 
Re: [Vxlusers] [Insightdevelopers] Replacing Sparse Matrix Linear
Solver : due to Licensing issues
From: Luis Ibanez <luis.ibanez@ki...>  20100201 21:24:58

Hi Arnaud, It makes sense to extend the page to cover all the functionalities that we may need in ITK. Please feel free to add eigen decomposition to the table. The license of METIS is not compatible with ITK. and by the way, it is poorly phrased. I would stay away from that software. If TAUCS requires METIS, then TAUCS is a nogo option as well. This is really a sad state of affairs. We should have Mathematical libraries in the Public Domain. If we don't find one, I guess we will have to write out one and dedicate it to the Public Domain. Luis  On Mon, Feb 1, 2010 at 4:08 PM, Arnaud GELAS <arnaud_gelas@...> wrote: > Hi Luis, > > Great idea to start a wiki page! I'll edit it! > > Do you want to restrict this page to sparse linear solvers? What about > sparse eigen decomposition? > > Sparse direct solver usually starts by reordering the matrix, then > factorization (decomposition) part follows, and finally if you are willing > to the linear system is solved. > The reordering part is often performed by using METIS library > (http://glaros.dtc.umn.edu/gkhome/views/metis). > The license of the latest version > (http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis5.0pre2.tar.gz) > states: > > The METIS package is copyrighted by the Regents of the University of > Minnesota. It can be freely used for educational and research purposes > by nonprofit institutions and US government agencies only. Other > organizations are allowed to use METIS only for evaluation purposes, > and any further uses will require prior approval. The software > may not be sold or redistributed without prior approval. One may > make copies of the software for their use provided that the copies, > are not sold or distributed, are used under the same terms and > conditions. > >  > > An usual set up for taucs require metis, and link against metis... > > So, we should first check with people from TAUCS if metis is really > required? > (If we could skip the reordering part at the cost of lower performances). > > And if it can not be optionally replaced by boostBGL reordering algorithms > (http://www.boost.org/doc/libs/1_41_0/libs/graph/doc/table_of_contents.html), > or by another library BSD compliant? > > Arnaud > > On 02/01/2010 03:29 PM, Luis Ibanez wrote: >> >> Hi Arnaud, >> >> Thanks a lot , all these suggestions are very useful. >> >> A) I'll give it a shot at using vnl_sparse_lu >> >> (I must first double check that is not encumbered >> by the ACM copyright/license absurd restrictions). >> >> >> B) About the alternative libraries: >> Thanks for gathering this list. >> >> B.1) SuiteSparse, >> since it is a LGPL libraries, is not an option. >> at least not for being a default ITK component. >> We could however, support it the way we support FFTW. >> An pass the licensing nightmare down to the users who >> enable that option. >> >> B.2) TAUCS, >> Looks like a good option. >> The MIT license is fully compatible with BSD. >> >> B.3) SuperLU, >> Reading its license, it turns out to be a standard BSD. >> So, this is also a good option. >> >> It looks like we should bring this discussion to the Wiki, >> >> I made a page for it at: >> http://www.itk.org/Wiki/Proposals:Sparse_Linear_Solvers >> >> >> That is linked from the 2010 Proposals Table: >> http://www.itk.org/Wiki/ITK_Oversight_Committee#2010 >> >> >> Let's gather more factors in the Wiki, so we can make >> an educated decision. >> >> >> Thanks, >> >> >> Luis >> >> >> >>  >> On Sun, Jan 31, 2010 at 4:28 PM, Arnaud Gelas >> <arnaud_gelas@...> 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 noncommercial 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 http://www.kitware.com >>> >>> Visit other Kitware opensource 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 ontopic 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/insightdevelopers >>> >>> >>> > > 