Hi.<div><br></div><div>There is one SVD available freely in the CImg Library (<a href="http://cimg.sourceforge.net">http://cimg.sourceforge.net</a>).</div><div>It is based on the code from the Numerical Recipies. As CImg is a single header, you don&#39;t need</div>
<div>to install binaries or library files to make it working nicely.</div><div><br></div><div>David.</div><div><br></div><div><div class="gmail_quote">2011/4/1 Pascal Monasse <span dir="ltr">&lt;<a href="mailto:monasse@imagine.enpc.fr">monasse@imagine.enpc.fr</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hi all,<br>
<br>
First, I really regret to have to add a library dependency for such a small<br>
part of the algorithm (SVD), but I could not find an independent and free<br>
implementation, and it seems too complex to do it right by ourselves without a<br>
significant effort.<br>
<br>
Now, two of the solutions, LAPACK and GSL, would need to be installed (they<br>
are not by default on general purpose linux distributions), with difficulties<br>
for Mac and Windows users. They are also too large to be included in the<br>
source code.<br>
<br>
The advantage I see with eigen, apart from the clean interface, is that it is<br>
not too large to be included in the tarball, though it is still almost 3MB. On<br>
top of that, it is composed of only header files, so no build is necessary and<br>
no library is created. If we isolate the footprint of eigen from our main<br>
code, with a minimal interface to it, it should be easy for a user to replace<br>
it with his preferred alternative while allowing easily a first test without<br>
trouble.<br>
<br>
Best,<br>
Pascal<br>
<br>
On Friday, April 01, 2011 10:59:05 am Pierre Moulon wrote:<br>
&gt; Hi all,<br>
&gt;<br>
&gt; My opinion (from an integration side).<br>
&gt;<br>
&gt; Lapack and GSL need to be compiled as a library and linked to the code in<br>
&gt; order to be used.<br>
&gt; They are huge and take a long time to compile. On linux they are already<br>
&gt; compiled on the machine so it&#39;s easy to use them.<br>
&gt; On windows we have to use pre-compiled libraries (so we have to add in the<br>
&gt; archive the .lib and .dll =&gt; Does we want to add 32/64 bits version.... ?)<br>
&gt;<br>
&gt; For Eigen, we use it add a header library.<br>
&gt; So when you compile your application the matrix liibrary and related<br>
&gt; fonction will be compiled on the fly. It makes the compilation more easy<br>
&gt; because the process is the same for all the platform.<br>
&gt;<br>
&gt; I think Pascal &quot;black box&quot; idea is a good one.<br>
&gt; =&gt; So code could be personalized for own purpose if someone want to do it.<br>
&gt; A default solution is purposed by the way of (Eigen, ...).<br>
&gt;<br>
&gt; PS : I add the reference over Eigen <a href="http://eigen.tuxfamily.org/" target="_blank">http://eigen.tuxfamily.org/</a><br>
&gt;<br>
&gt; Regards,<br>
&gt; Pierre<br>
_______________________________________________<br>
discuss mailing list<br>
<a href="mailto:discuss@list.ipol.im">discuss@list.ipol.im</a><br>
<a href="http://tools.ipol.im/mailman/listinfo/discuss" target="_blank">http://tools.ipol.im/mailman/listinfo/discuss</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>-----------------------------------------------------------------------------<br>David Tschumperlé<br>CNRS Researcher<br>GREYC (UMR-CNRS 6072)         E-mail: <a href="mailto:David.Tschumperle@greyc.ensicaen.fr">David.Tschumperle@greyc.ensicaen.fr</a><br>
6, Bd du Marechal Juin        Tel: +33 (0)2-31-45-29-24<br>F-14050 CAEN Cedex            Fax: +33 (0)2-31-45-26-98<br>France                        <a href="http://www.greyc.ensicaen.fr/~dtschump">http://www.greyc.ensicaen.fr/~dtschump</a><br>
-----------------------------------------------------------------------------<br><br>
</div>