<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0">
  <channel>
    <title>MaplePrimes - answers and comments on Question, Algorithm used for singular value decomposition  in maple</title>
    <link>http://www.mapleprimes.com/questions/127901-Algorithm-Used-For-Singular-Value-Decomposition</link>
    <language>en-us</language>
    <copyright>2026 Maplesoft, A Division of Waterloo Maple Inc.</copyright>
    <generator>Maplesoft Document System</generator>
    <lastBuildDate>Fri, 12 Jun 2026 02:40:33 GMT</lastBuildDate>
    <pubDate>Fri, 12 Jun 2026 02:40:33 GMT</pubDate>
    <itunes:subtitle />
    <itunes:summary />
    <description>The latest answers and comments added to the Question, Algorithm used for singular value decomposition  in maple</description>
    <image>
      <url>http://www.mapleprimes.com/images/mapleprimeswhite.jpg</url>
      <title>MaplePrimes - answers and comments on Question, Algorithm used for singular value decomposition  in maple</title>
      <link>http://www.mapleprimes.com/questions/127901-Algorithm-Used-For-Singular-Value-Decomposition</link>
    </image>
    <item>
      <title>NAG</title>
      <link>http://www.mapleprimes.com/questions/127901-Algorithm-Used-For-Singular-Value-Decomposition?ref=Feed:MaplePrimes:Algorithm used for singular value decomposition  in maple:Comments#answer127904</link>
      <itunes:summary>&lt;p&gt;For a dense Matrix containing floats, if hardware precision is ok, it uses NAG routies F08KEF and F08MEF.&amp;nbsp; F08KEF reduces the Matrix to bidiagonal form using orthogonal matrices.&amp;nbsp; If only the singular values are required, F08MEF computes them using the differential qd algorithm.&amp;nbsp; See&lt;br&gt;&lt;a href="http://www.nag.com/numeric/Fl/manual/pdf/F08/f08kef.pdf"&gt;www.nag.com/numeric/Fl/manual/pdf/F08/f08kef.pdf&lt;/a&gt; and &lt;br&gt;&lt;a href="http://www.nag.com/numeric/Fl/manual/pdf/F08/f08mef.pdf"&gt;www.nag.com/numeric/Fl/manual/pdf/F08/f08mef.pdf&lt;/a&gt;.&lt;/p&gt;</itunes:summary>
      <description>&lt;p&gt;For a dense Matrix containing floats, if hardware precision is ok, it uses NAG routies F08KEF and F08MEF.&amp;nbsp; F08KEF reduces the Matrix to bidiagonal form using orthogonal matrices.&amp;nbsp; If only the singular values are required, F08MEF computes them using the differential qd algorithm.&amp;nbsp; See&lt;br&gt;&lt;a href="http://www.nag.com/numeric/Fl/manual/pdf/F08/f08kef.pdf"&gt;www.nag.com/numeric/Fl/manual/pdf/F08/f08kef.pdf&lt;/a&gt; and &lt;br&gt;&lt;a href="http://www.nag.com/numeric/Fl/manual/pdf/F08/f08mef.pdf"&gt;www.nag.com/numeric/Fl/manual/pdf/F08/f08mef.pdf&lt;/a&gt;.&lt;/p&gt;</description>
      <guid>127904</guid>
      <pubDate>Mon, 21 Nov 2011 06:44:26 Z</pubDate>
      <itunes:author>Robert Israel</itunes:author>
      <author>Robert Israel</author>
    </item>
    <item>
      <title>NAG &amp; CLAPACK</title>
      <link>http://www.mapleprimes.com/questions/127901-Algorithm-Used-For-Singular-Value-Decomposition?ref=Feed:MaplePrimes:Algorithm used for singular value decomposition  in maple:Comments#answer127905</link>
      <itunes:summary>&lt;p&gt;See the documentation of the NAG Fortran Library function &lt;a href="http://nag.com/numeric/fl/nagdoc_fl23/xhtml/F08/f08mef.xml"&gt;f08mef&lt;/a&gt;. This is like CLAPACK's &lt;a href="http://www.netlib.org/lapack/double/dbdsqr.f"&gt;dbdsqr&lt;/a&gt; function. It's documentation mentions the (QR based, or differential QD based) algorithms used.&lt;/p&gt;
&lt;p&gt;You can see which NAG routine is used by LinearAlgebra, from userinfo messages.&lt;/p&gt;
&lt;pre&gt;&amp;gt; infolevel[LinearAlgebra]:=1:

&amp;gt; LinearAlgebra:-SingularValues(&amp;lt;&amp;gt;):
SingularValues: calling external function
SingularValues: NAG hw_f08kef
SingularValues: NAG hw_f08mef
&lt;/pre&gt;
&lt;p&gt;Maple also ships with precompiled external libraries (shared objects clapack.dll or libclapack.so) containing the double-precision real and complex (dxxxx and zxxxx) routines from versions 3.0 of CLAPACK. If you want another routine from that library, you can call it yourself using the &lt;a href="http://www.maplesoft.com/support/help/Maple/view.aspx?path=external_calling"&gt;external-calling&lt;/a&gt; mechanism. (See &lt;a href="http://www.mapleprimes.com/posts/102172-Selected-Eigenvectors"&gt;here&lt;/a&gt; for an example of such user-defined wrapperless external-calling to CLAPACK from Maple.)&lt;/p&gt;
&lt;p&gt;You can use &lt;a href="http://www.netlib.org/lapack/lug/node53.html"&gt;these&lt;/a&gt; notes to help decide which CLAPACK function you'd like to use for singular value computation. Note that function dbdsdc for the divide and conquer algorithm is already avaliable in version 3.0. So you could call that directly from stock, shipped Maple, using define_external.&lt;/p&gt;
&lt;p&gt;If you are interested in getting more state-of-the-art, then you could consider &lt;a href="http://www.netlib.org/lapack/#_lapack_version_3_2"&gt;LAPACK 3.2.x&lt;/a&gt; or higher. See these release notes, and in particular &lt;a href="http://www.netlib.org/lapack/lapack-3.2.html#2"&gt;section 2&lt;/a&gt; for items 2.5 and 2.10 and the relevent &lt;a href="http://www.netlib.org/lapack/lapack-3.2.html#4"&gt;references&lt;/a&gt; [5],[6]. Note that v.3.2.1 is avaliable aready as &lt;a href="http://www.netlib.org/clapack/"&gt;CLAPACK&lt;/a&gt; (which you can obtain as source or may be even precompiled). If you build such a more recent version of (C)LAPACK yourself (compiling, linking as shared dynamic library with appropriate exports, etc) then you would again be able to call its functions directly using the wrapperless forms of define_external.&lt;/p&gt;
&lt;!--break--&gt;
&lt;p&gt;acer&lt;/p&gt;</itunes:summary>
      <description>&lt;p&gt;See the documentation of the NAG Fortran Library function &lt;a href="http://nag.com/numeric/fl/nagdoc_fl23/xhtml/F08/f08mef.xml"&gt;f08mef&lt;/a&gt;. This is like CLAPACK's &lt;a href="http://www.netlib.org/lapack/double/dbdsqr.f"&gt;dbdsqr&lt;/a&gt; function. It's documentation mentions the (QR based, or differential QD based) algorithms used.&lt;/p&gt;
&lt;p&gt;You can see which NAG routine is used by LinearAlgebra, from userinfo messages.&lt;/p&gt;
&lt;pre&gt;&amp;gt; infolevel[LinearAlgebra]:=1:

&amp;gt; LinearAlgebra:-SingularValues(&amp;lt;&amp;gt;):
SingularValues: calling external function
SingularValues: NAG hw_f08kef
SingularValues: NAG hw_f08mef
&lt;/pre&gt;
&lt;p&gt;Maple also ships with precompiled external libraries (shared objects clapack.dll or libclapack.so) containing the double-precision real and complex (dxxxx and zxxxx) routines from versions 3.0 of CLAPACK. If you want another routine from that library, you can call it yourself using the &lt;a href="http://www.maplesoft.com/support/help/Maple/view.aspx?path=external_calling"&gt;external-calling&lt;/a&gt; mechanism. (See &lt;a href="http://www.mapleprimes.com/posts/102172-Selected-Eigenvectors"&gt;here&lt;/a&gt; for an example of such user-defined wrapperless external-calling to CLAPACK from Maple.)&lt;/p&gt;
&lt;p&gt;You can use &lt;a href="http://www.netlib.org/lapack/lug/node53.html"&gt;these&lt;/a&gt; notes to help decide which CLAPACK function you'd like to use for singular value computation. Note that function dbdsdc for the divide and conquer algorithm is already avaliable in version 3.0. So you could call that directly from stock, shipped Maple, using define_external.&lt;/p&gt;
&lt;p&gt;If you are interested in getting more state-of-the-art, then you could consider &lt;a href="http://www.netlib.org/lapack/#_lapack_version_3_2"&gt;LAPACK 3.2.x&lt;/a&gt; or higher. See these release notes, and in particular &lt;a href="http://www.netlib.org/lapack/lapack-3.2.html#2"&gt;section 2&lt;/a&gt; for items 2.5 and 2.10 and the relevent &lt;a href="http://www.netlib.org/lapack/lapack-3.2.html#4"&gt;references&lt;/a&gt; [5],[6]. Note that v.3.2.1 is avaliable aready as &lt;a href="http://www.netlib.org/clapack/"&gt;CLAPACK&lt;/a&gt; (which you can obtain as source or may be even precompiled). If you build such a more recent version of (C)LAPACK yourself (compiling, linking as shared dynamic library with appropriate exports, etc) then you would again be able to call its functions directly using the wrapperless forms of define_external.&lt;/p&gt;
&lt;!--break--&gt;
&lt;p&gt;acer&lt;/p&gt;</description>
      <guid>127905</guid>
      <pubDate>Mon, 21 Nov 2011 07:31:42 Z</pubDate>
      <itunes:author>acer</itunes:author>
      <author>acer</author>
    </item>
  </channel>
</rss>