<br><br>The offending LSQR files have finally been removed from ITK.<br><br><br>They have been replaced with a C++ manual translation of the<br>Fortran 90 implementation of an improved LSQR algorithm.<br><br><br>-----<br><br>
<br>The commit message describe the changes:<br><br><a href="http://public.kitware.com/cgi-bin/viewcvs.cgi/Utilities/vxl/core/vnl/algo/vnl_lsqr.cxx?root=Insight&amp;view=log">http://public.kitware.com/cgi-bin/viewcvs.cgi/Utilities/vxl/core/vnl/algo/vnl_lsqr.cxx?root=Insight&amp;view=log</a><br>
<br><pre class="vc_log">BUG: Removing the lsqr.c, lsqr.f, lsqr.h and lsqr.P that implemented the Linear Solver<br>     algorithm LSQR described in the paper:<br><br>        &quot;LSQR for overdetermined or underdetermined sparse systems of linear equations,<br>
         sparse least squares problems, and damped sparse least squares problems&quot;<br>         by      C.C. Paige and M.A. Saunders<br>         ACM TOMS 8 (1982) 195-209<br><br>     The files had to be replaced because their copyright is held by ACM and<br>
     they are distributed under a license that is incompatible with the BSD<br>     license used by ITK.<br><br>                      <a href="http://calgo.acm.org/583.gz">http://calgo.acm.org/583.gz</a><br><br>         <a href="http://www.acm.org/publications/policies/softwarecrnotice">http://www.acm.org/publications/policies/softwarecrnotice</a><br>
<br><br>     The code is now replaced with an implementation taken from:<br><br>               <a href="http://www.stanford.edu/group/SOL/software.html">http://www.stanford.edu/group/SOL/software.html</a><br><br>       <a href="http://www.stanford.edu/group/SOL/software/lsqr/f90/lsqrf90-v2.zip">http://www.stanford.edu/group/SOL/software/lsqr/f90/lsqrf90-v2.zip</a><br>
<br>     The Fortran90 (2) implementation (that is distributed under a BSD license)<br>     was manually converted to C++ in the file lsqrBase.h, lsqrBase.cxx and then<br>     specialized for vnl_matrices in the files lsqrVNL.h and lsqrVNL.cxx.<br>
</pre><br>-----------------------------------------------------------<br><br>The following files changed:<br><br>Utilities/vxl/core/vnl/algo/CMakeLists.txt<br>new revision: 1.10; previous revision: 1.9<br><br>Utilities/vxl/core/vnl/algo/vnl_lsqr.cxx<br>
new revision: 1.5; previous revision: 1.4<br><br>Utilities/vxl/core/vnl/algo/vnl_lsqr.h<br>new revision: 1.5; previous revision: 1.4<br><br>Utilities/vxl/v3p/netlib/CMakeLists.txt<br>new revision: 1.29; previous revision: 1.28<br>
<br>Utilities/vxl/v3p/netlib/v3p_netlib_prototypes.h<br>new revision: 1.5; previous revision: 1.4<br><br>Utilities/vxl/v3p/netlib/linalg/lsqr.P<br>new revision: delete; previous revision: 1.2<br><br>Utilities/vxl/v3p/netlib/linalg/lsqr.c<br>
new revision: delete; previous revision: 1.2<br><br>Utilities/vxl/v3p/netlib/linalg/lsqr.f<br>new revision: delete; previous revision: 1.2<br><br>Utilities/vxl/v3p/netlib/linalg/lsqr.h<br>new revision: delete; previous revision: 1.2<br>
<br>Utilities/vxl/v3p/netlib/linalg/lsqrBase.cxx<br>initial revision: 1.1<br><br>Utilities/vxl/v3p/netlib/linalg/lsqrBase.h<br>initial revision: 1.1<br><br>Utilities/vxl/v3p/netlib/tests/CMakeLists.txt<br>new revision: 1.12; previous revision: 1.11<br>
<br><br>------<br><br>Please note that the new lsqrBase class provide <br>an API improved over the vnl_lsqr class. If you <br>ever need to control a linear solver closely, you <br>may want to work directly with the lsqrBase and<br>
lsqrVNL classes.<br><br><br>------<br><br>We anticipate to see this week the usual quirks <br>with some compilers, and hope to stabilize the<br>Dashboard by Tuesday or Wednesday.<br><br><br>Once the Dashboard is stable we will tag and<br>
cut the release:    ITK 3.18.<br><br><br>Please let us know if you have any questions<br>or concerns with this agenda.<br><br><br>     Thanks<br><br><br>            Luis<br><br><br>-------------------------------------------------------------------------------------<br>
<div class="gmail_quote">On Fri, Apr 2, 2010 at 10:30 AM, Luis Ibanez <span dir="ltr">&lt;<a href="mailto:luis.ibanez@kitware.com">luis.ibanez@kitware.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
A quick update on the status of the LSQR code issue.<br>
<br>
<br>
1) We contacted Professor Michael Saunders (Stanford)<br>
    regarding the lsqr method currently available in vxl,<br>
    that was taken from the <a href="http://netlib.org" target="_blank">netlib.org</a> site.<br>
<br>
    He indicated that a BSD-licensed version of this code<br>
    is available in the web site:<br>
<br>
    <a href="http://www.stanford.edu/group/SOL/software.html" target="_blank">http://www.stanford.edu/group/SOL/software.html</a><br>
<br>
    (Just as Tom Vercauteren had pointed out).<br>
<br>
<br>
2) We have not received any answer from the editor of<br>
    ACM TOMS, nor from the contact person at ACM on<br>
    licensing issues.<br>
<br>
<br>
3) Following the advice of Professor Saunders, we are<br>
    adopting the Fortran90 (2) version of the lsqr solver<br>
    available at the SOL web site.<br>
<br>
<br>
4) We are currently converting this code to C++.<br>
    This is being done in the following NAMICSandbox<br>
    directory:<br>
<br>
<a href="http://svn.na-mic.org/NAMICSandBox/trunk/SparseLinearSolverConversion/" target="_blank">http://svn.na-mic.org/NAMICSandBox/trunk/SparseLinearSolverConversion/</a><br>
<br>
<br>
<br>
The current plan is<br>
<br>
   A) To finish this conversion to C++<br>
   B) Integrate the resulting class as a linear solver in ITK<br>
   C) Cut the release ITK 3.18.<br>
<br>
<br>
All comments are welcome,<br>
<br>
<br>
    Thanks<br>
<font color="#888888"><br>
<br>
         Luis<br>
</font></blockquote></div><br>