[IPOL discuss] SVD for IPOL: which library, and how?

Pascal Monasse monasse at imagine.enpc.fr
Fri Apr 1 13:29:18 CEST 2011


Hi David,

The starting point of this discussion (not on this list) was precisely the 
fact that we cannot include the numerical recipes code, which we used up to 
now.

Pascal

On Friday, April 01, 2011 12:30:39 pm David.Tschumperle at greyc.ensicaen.fr 
wrote:
> Hi.
> 
> There is one SVD available freely in the CImg Library (
> http://cimg.sourceforge.net).
> It is based on the code from the Numerical Recipies. As CImg is a single
> header, you don't need
> to install binaries or library files to make it working nicely.
> 
> David.
> 
> 2011/4/1 Pascal Monasse <monasse at imagine.enpc.fr>
> 
> > Hi all,
> > 
> > First, I really regret to have to add a library dependency for such a
> > small part of the algorithm (SVD), but I could not find an independent
> > and free implementation, and it seems too complex to do it right by
> > ourselves without a
> > significant effort.
> > 
> > Now, two of the solutions, LAPACK and GSL, would need to be installed
> > (they are not by default on general purpose linux distributions), with
> > difficulties
> > for Mac and Windows users. They are also too large to be included in the
> > source code.
> > 
> > The advantage I see with eigen, apart from the clean interface, is that
> > it is
> > not too large to be included in the tarball, though it is still almost
> > 3MB. On
> > top of that, it is composed of only header files, so no build is
> > necessary and
> > no library is created. If we isolate the footprint of eigen from our main
> > code, with a minimal interface to it, it should be easy for a user to
> > replace
> > it with his preferred alternative while allowing easily a first test
> > without
> > trouble.
> > 
> > Best,
> > Pascal
> > 
> > On Friday, April 01, 2011 10:59:05 am Pierre Moulon wrote:
> > > Hi all,
> > > 
> > > My opinion (from an integration side).
> > > 
> > > Lapack and GSL need to be compiled as a library and linked to the code
> > > in order to be used.
> > > They are huge and take a long time to compile. On linux they are
> > > already compiled on the machine so it's easy to use them.
> > > On windows we have to use pre-compiled libraries (so we have to add in
> > 
> > the
> > 
> > > archive the .lib and .dll => Does we want to add 32/64 bits version....
> > 
> > ?)
> > 
> > > For Eigen, we use it add a header library.
> > > So when you compile your application the matrix liibrary and related
> > > fonction will be compiled on the fly. It makes the compilation more
> > > easy because the process is the same for all the platform.
> > > 
> > > I think Pascal "black box" idea is a good one.
> > > => So code could be personalized for own purpose if someone want to do
> > 
> > it.
> > 
> > > A default solution is purposed by the way of (Eigen, ...).
> > > 
> > > PS : I add the reference over Eigen http://eigen.tuxfamily.org/
> > > 
> > > Regards,
> > > Pierre
> > 
> > _______________________________________________
> > discuss mailing list
> > discuss at list.ipol.im
> > http://tools.ipol.im/mailman/listinfo/discuss


More information about the discuss mailing list